Commit graph

28 commits

Author SHA1 Message Date
Roman Godmaire
0af757fa27 test: additional test cases 2024-05-04 17:02:07 -04:00
Roman Godmaire
769cc61d48 feat: add list constructor 2024-05-04 16:52:55 -04:00
Roman Godmaire
c38576b667 refactor: extract env, macros, error, and remove expression
Rather than using expressions, we can instead just parse into nodes then
work with those instead.  Everything in this language is an Expression,
so there's no reason to differentiate between nodes and expressions.
2024-05-04 16:40:02 -04:00
Roman Godmaire
51095f77ed refactor: Extract Node enum to module 2024-05-04 15:23:06 -04:00
Roman Godmaire
5863da677f refactor: move lexer to parser module 2024-05-04 13:13:34 -04:00
Roman Godmaire
4808904571 refactor: prep for switching to Node in evaluator
Involves the following

1. Node True/False to Boolean
2. Removing parser tests
3. Other stuff
4. This is a bad commit
2024-05-04 08:08:37 -04:00
Roman Godmaire
040a2518cc fix: incorrect arg counting for modulo 2024-03-09 08:10:02 -05:00
Roman Godmaire
26ba457e8e chore: rename to mute 2024-03-09 07:55:17 -05:00
Roman Godmaire
282071efc1 fix: dynamic counting for modulo arg counts 2024-02-17 22:36:01 -05:00
Roman Godmaire
4a02f7cb95 refactor: use macro for arg counting 2024-02-17 22:16:51 -05:00
Roman Godmaire
c2b95dfee4 feat: ordering operators 2024-02-17 21:56:43 -05:00
Roman Godmaire
519fa4ee99 feat: display function 2024-02-17 21:14:31 -05:00
Roman Godmaire
ad66e839fa misc: remove unnecessary constants
This is premature optimization.
2024-02-17 07:13:15 -05:00
Roman Godmaire
1d16187846 fix: support truthy values
In scheme, everything except false is considered truthy.
2024-02-17 07:11:18 -05:00
Roman Godmaire
5637d256d2 feat: eq? operator 2024-02-17 07:06:08 -05:00
Roman Godmaire
fbd0070324 feat: not operator 2024-02-17 07:05:58 -05:00
Roman Godmaire
939bb15324 misc: display function as nebulous blob 2024-02-17 06:58:40 -05:00
Roman Godmaire
288e2f4feb fix: provide details on argument count errors 2024-02-17 06:58:22 -05:00
Roman Godmaire
4e7c8eba01 fix: don't panic on error in repl 2024-02-17 06:52:14 -05:00
Roman Godmaire
49e99b6fa4 feat: functions 2024-02-16 10:03:22 -05:00
Roman Godmaire
f5ac02aedb fix: nil and () are identical 2024-02-16 08:28:22 -05:00
Roman Godmaire
f93baad338 feat: if statements 2024-02-16 08:22:57 -05:00
Roman Godmaire
bd12bd998b lint: clippy 2024-02-16 07:32:25 -05:00
Roman Godmaire
75591cac9a Mal step 3 2023-09-19 10:15:40 -04:00
Roman Godmaire
dfeb5d1b45 refactor: Move expression to eval 2023-09-19 08:28:32 -04:00
Roman Godmaire
b9b833bf5c Mal step 2 2023-09-19 08:17:13 -04:00
Roman Godmaire
96f822ace8 Mal Step 1 2023-09-13 08:47:24 -04:00
Roman Godmaire
ac87083777 MAL Step 0 2023-09-12 07:21:51 -04:00