Commit graph

57 commits

Author SHA1 Message Date
madmaurice ac1f8aef03 Implement dotimes and add tests 2021-04-10 01:16:03 +02:00
madmaurice f576081d22 Implement apply and rudimentary read-line 2021-04-10 00:17:54 +02:00
madmaurice c79b2aabf4 Fix 'and': return nil if it has no operands 2021-04-08 23:49:04 +02:00
madmaurice 6bff33af20 Fix parsing comment at end of file 2021-04-08 23:33:09 +02:00
madmaurice 4aaff13d91 Add debug mode for lexer 2021-04-08 23:32:53 +02:00
madmaurice 46d904535a Add implicit block to do macro 2021-04-08 21:53:21 +02:00
madmaurice 34d4de92f0 Implement macros catch and throw 2021-04-08 21:48:42 +02:00
madmaurice f50550f882 Catch rogue returns in top-level 2021-04-08 21:47:57 +02:00
madmaurice 8bdc8232f9 Add loop macro and a test 2021-04-07 23:31:28 +02:00
madmaurice a355528492 Implement block mechanism and macros block, return and return-from 2021-04-07 23:16:44 +02:00
madmaurice b930ed8eba Fix macros when and unless
Both support implicit progn, not just one expression.
2021-04-06 23:36:06 +02:00
madmaurice 5c37830ef4 Replace two checks with slurp_token 2021-04-06 23:34:16 +02:00
madmaurice 9cc16ed55a Add parser function to parse multiple expressions 2021-04-06 23:30:21 +02:00
madmaurice 42b5567c29 Utilize peek_token where possible 2021-04-06 23:17:38 +02:00
madmaurice cd769b36de Remove non standard range function
Let example define its own range function using do.
2021-04-06 22:11:52 +02:00
madmaurice 7ca4bad9b0 Implement do macro 2021-04-06 22:11:37 +02:00
madmaurice 1ff74f4f6c Fix grammar 2021-04-06 22:10:55 +02:00
madmaurice b14ed6d9d1 Add slurp_token for easier parsing 2021-04-06 21:11:13 +02:00
madmaurice 9c0db610bf Add range function and euler1 example 2021-04-05 04:04:23 +02:00
madmaurice 941bd17ac6 Add mod function 2021-04-05 03:50:48 +02:00
madmaurice 41984b0083 Float support 2021-04-05 03:50:33 +02:00
madmaurice 9d2665e2e8 Fix grammar 2021-04-05 03:18:53 +02:00
madmaurice 03dfa8f188 Implement let* 2021-04-05 03:06:44 +02:00
madmaurice 7f1283eecc Improve bool system
lisp has true in form of t and false in form of nil
2021-04-05 00:06:49 +02:00
madmaurice 61df548e00 Implement set 2021-04-04 23:13:17 +02:00
madmaurice 0ec88feeb6 Simplify parsing of identifiers 2021-04-04 22:55:26 +02:00
madmaurice 2d668371e2 Rework ctx system 2021-04-04 22:15:04 +02:00
madmaurice 4a42695a27 Add function filter and a test 2021-04-04 02:34:05 +02:00
madmaurice e163fdce59 Add when, unless 2021-04-04 01:53:18 +02:00
madmaurice 0b19227810 Add cond macro 2021-04-04 01:44:47 +02:00
madmaurice ed59a6a04e Improve macro parsing 2021-04-04 01:44:28 +02:00
madmaurice c909c8880d Fix typo 2021-04-04 01:44:05 +02:00
madmaurice abe30ac2b2 Add compile_file function 2021-04-04 01:17:18 +02:00
madmaurice 11ee4d006b Add some string functions 2021-04-03 18:47:45 +02:00
madmaurice b0d9bf447e Move length to multipurpose functions 2021-04-03 18:47:23 +02:00
madmaurice c575115f92 Add short notation for lists: '(1 2) == (list 1 2) 2021-04-03 18:09:20 +02:00
madmaurice b316404b2b Add cons, car, cdr 2021-04-03 18:05:59 +02:00
madmaurice 42f0e3bc99 Create a multipurpose equal 2021-04-02 20:52:57 +02:00
madmaurice 31e8c61d5e Add rudimentary support for keywords 2021-04-02 20:52:26 +02:00
madmaurice 7f38e74e78 Add map, reduce and equal for lists 2021-04-02 20:18:42 +02:00
madmaurice a6c609ff4c Add rudimentary support for lists 2021-04-02 20:01:57 +02:00
madmaurice 32d0313681 Fix progn and let 2021-04-02 20:00:51 +02:00
madmaurice a9b9d5efa1 Add length function for strings 2021-04-02 19:03:23 +02:00
madmaurice 31bab456b0 Add support for comments 2021-04-02 16:05:22 +02:00
madmaurice 106a58991d Add bitwise operations 2021-04-02 03:36:39 +02:00
madmaurice af9a6acd53 Add functions zerop, min and max 2021-04-02 03:36:26 +02:00
madmaurice 395c271243 Add logical operations 2021-04-02 03:35:59 +02:00
madmaurice 512977011b Reorder functions 2021-04-02 03:10:24 +02:00
madmaurice 855f4fef5f Add string comparison functions 2021-04-02 03:08:19 +02:00
madmaurice c536e969d6 Drop debug print 2021-04-02 02:46:33 +02:00