12 Commits

Author SHA1 Message Date
9981c222eb Added desugar phase for converting cond into a chain of if's 2025-12-28 21:04:45 +03:00
d80caadc85 Added gensym, and phases in the desugar module for logical and & or 2025-12-28 21:04:45 +03:00
be0d479665 Added desugar steps to add (begin) wrappers around long lambda bodies, and rewrite internal (define) forms into letrec forms 2025-12-28 21:04:45 +03:00
4f1ad54596 Started work on the compiler, with a desugar phase 2025-12-28 21:04:45 +03:00
58277ad0a3 Complete reorganization: finally at a building state again 2025-12-28 21:04:45 +03:00
8e980a8f1b Reorganized basically everything, making way for the compiler 2025-12-28 21:04:45 +03:00
81c349c70a Added pretty-printing. 2025-12-28 21:04:45 +03:00
2f9501450f Reorganized the standard library a little more, moved the initialization code for the standard environment into a function. Making way for more organization changes to come 2025-12-28 21:04:45 +03:00
Emin Arslan
df0b3178f0 Improved the repl to return to evaluation upon error. Also added an exit command 2025-12-28 21:04:44 +03:00
Emin Arslan
f9e96b1bd4 General style changes, nothing major 2025-12-28 21:04:44 +03:00
Emin Arslan
354e9b355b Added bind-function primitive that allows us to define functions, also changed evaluation to allow for a persistent environment 2025-12-28 21:04:44 +03:00
Emin Arslan
4535d57d21 Initial state - basic lexer + parser + interpreter 2025-12-28 21:04:44 +03:00