--- /dev/null
+# cache files for sublime text
+*.tmlanguage.cache
+*.tmPreferences.cache
+*.stTheme.cache
+
+# workspace files are user-specific
+*.sublime-workspace
+
+# project files should be checked into the repository, unless a significant
+# proportion of contributors will probably not be using SublimeText
+# *.sublime-project
+
+# sftp configuration file
+sftp-config.json
\ No newline at end of file
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
-iQIcBAABAgAGBQJVIWrYAAoJEJPB2e07PgbqkTcP+wfQUCdTBpwpbll0DKBIxH69
-79/ddLpdKLLPCMVzphun3p7XqfxK0haCx2wwhWsquv3dywPO0wpCT32vm2QHb0FM
-Di+aUbklJa54LOGg0ljeJ5MCB6OmL1E5tTIH+m/q0bfkdSpWKLglX3SfZskBgsxl
-/3D4OE0bmDoLPQIM+EtOW6kogD8i+0pWpUWoamR08iSpBb6PdlbdbAah2ocAeoS9
-pa8DB7g2412RS2nsxWfhD64hhNN/HaHWo/O/gO+FJOphqD/g++eUGxK3mB8W3NAM
-KOtenoLa89VhDxZWhgG+/RwW3iw2EIl4pn1QbIIjFy19r79JNuV4KDqqgUj4Ewgd
-qp5AZ6WWsUt7EWvDLxvXA9pVYci7ebNtkvNZvhwUQFABigCy2jjDVNzhPQBk9/Hw
-f4n2iZaNKVZhcyt6XQUffiQltLAmKEBpBKlInP5mH1gRoWhYCG2tzovGNK9HyoNh
-h1H27u6c4JBft6XokBjjWALZ4TfdpBefzhy7Mf+sidvVcOS1vpGiZ0V1CPuN659O
-Bx9Gn2FZasegjBkB+/qVpl7vF0yf5Sf2R8TvIpd1Ko5ox2XNntvE85tsTtAk1KQW
-hIzSvrFvs0en8u0dUr9NiuDzRr7w0vm68jrPIydzwuwAgreItIMF4rh/IrLDcpek
-VLxyM8rtpo+2kwBA4noV
-=sQZ7
+iQIcBAABAgAGBQJVIYqsAAoJEJPB2e07PgbqrMQP/3yMMqOhe505uOe+DyRx24if
+rYlkjCxUu70uDIYnpcWkB7ftxNQdDndCBUjaPcTnY/Bp6uRaR2ddl2WugTj5I0us
+D7AwkGpUKDKs/5wxypqZXUYWVe6WpvHhQao/E9XsIReA5WvCXbQGpx4++VB9IgOH
+5TD4q85EONdnpP0KY4FYF/UYhV/uSJjie0iYp0sNuse+VuMG/TE8/dM0q7aXCAkn
+wTqdjxQfOfjSNIsU9OYTkZ2vmtU6L0Bq8c1GHljalfEtOw1e/+9TlwbRCWqVQAsP
+BCTrtOu4zcSl0K6FbbwOY7jUFx0f9f9Mb0P63yEXbJ4znzG430KbHJLXG3TA4QmT
+eH6WtpX4C2uKkFbbKoqBx+ERPGcTZXbCdUYUleAhVHl5gDp836yPpv8AF+xj/Vxn
+1sJwW1FACmYRjluL+AInROUPv+GiCwvTQGlbqG1+vzEoqmuFpj6FtygMeYWGzapC
+RLmXxwTW4rIke58U9aBmXmUd9PEtgCLqEvk8jgS/6yRi0Y6Hy9wDHBFRt5NdWTSn
+DsxmDhh4pC8G64UNQ4SgvD88rpoL9assGLHyrJVhc1h+Rb6y3+3hF+k9CB1WMK+J
+PS8c7bD9ZvfVTzx9m386Ub5DgQqa8morniKD78pGnlXAomUBjzKBbYj+C1Red32b
+ipXmsgeapbRUk3YhDW9X
+=QRD0
-----END PGP SIGNATURE-----
```
```
size exec file contents
./
-7470 lisp-interpreter.pl eafc6eb3c8a5ceeea3da0352031a3251fba59e9a7889b285c5328fa8abd5b899|b5046b37cb23c0ae81cbffc09037a0762bab6df6e92b1cb162725eb40b7dc318
+353 .gitignore 40827a01fd527e4c1eb5aac49bef7b0f4a370e79e965fc3cec0f5791a0e431f5
+7657 lisp-interpreter.pl 5ecf8cdce9168ec3f7f60e2dbccc4a08fd3e873f5b55cc7b7052a20ddc2f9b4e|b1efd69cb929921991770f37578747e9cdd1c8e8d1e9716b4db35a5228de339a
```
#### Ignore
*******************************************************************/\r
\r
\r
-:- style_check.\r
+:- style_check([+singleton, +no_effect, +var_branches, +atom, +discontiguous, \r
+ +charset]).\r
\r
:- dynamic \r
bindings/1,\r
write('Welcome to Pro-Lisp!'),nl,\r
write('This is a miniscule Lisp interpreter, written in Prolog'),nl,\r
prompt(Old, '> '),\r
- prompts(Old1, Old2),\r
- prompts('> ', '> '),\r
+ % prompts(Old1, Old2),\r
+ % prompts('> ', '> '),\r
tidy_database,\r
repeat,\r
read_eval_print(Result),\r
Result = quit,\r
prompt(_, Old),\r
- prompts(Old1, Old2).\r
+ % prompts(Old1, Old2).\r
+ true.\r
\r
\r
tidy_database:-\r
% read a line of supposed Lisp code\r
\r
read_words(Words):-\r
- get0(C),\r
+ % get0(C),\r
+ get_code(C),\r
read_words(C, Words).\r
\r
read_words(C, []):-\r
!,\r
read_rest_of_word(Chars, LeftOver),\r
name(UCWord, [C|Chars]),\r
- ( atom(UCWord) -> lwrupr(Word, UCWord)\r
+ ( atom(UCWord) -> downcase_atom(UCWord, Word)\r
; \r
Word = UCWord),\r
read_words(LeftOver, Words).\r
\r
\r
read_rest_of_word(Chars, LeftOver):-\r
- get0(C),\r
+ % get0(C),\r
+ get_code(C),\r
read_rest_of_word(C, Chars, LeftOver).\r
\r
\r
writeTokenL([Token|TokenL]):-\r
atom(Token),\r
!,\r
- lwrupr(Token, UCToken),\r
- write(UCToken),\r
+ % lwrupr(Token, UCToken),\r
+ % write(UCToken),\r
+ downcase_atom(Token, LCToken),\r
+ write(LCToken),\r
write(' '),\r
writeTokenL(TokenL).\r
writeTokenL([Token|TokenL]):-\r