Commit graph

11 commits

Author SHA1 Message Date
9e643e6c6d Add compiler middle stage
The compiler middle stage takes high level nodes and produces code in
an intermediate representation more closely resembling assembly code.

Optimizations and the tools for making those are also included. It's
significantly easier to optimize IR than syntax trees or assembly.

Several things need cleaning up, in particular there are things in
jigs.lisp that really should be documented tools, not
jigs (specifically the compilation setup and finalization).
2025-06-26 13:41:43 +02:00
7703c71141 Add tool for quickly defining common PRINT-OBJECT methods 2025-06-26 12:44:43 +02:00
4011e3b0db Reorder loading of high-level.lisp 2025-06-21 21:02:58 +02:00
928cdfd318 Add user-side compiler's parser
It ingests tokens via a "token stream", and feeds out a node
tree. It's a mostly handwritten recursive descent parser with the
occasional Lisp macros for convenience.
2025-05-22 13:14:55 +02:00
38406c80ee Add various transformation rules 2025-05-22 13:14:55 +02:00
e6e2e94404 Add symbol table 2025-05-16 21:00:57 +02:00
5d0f4b4767 Move definition of REFERENCE classes to its own file
Dereferencing is still defined in high-level.lisp, this might change
in the future since I'm sort of restructuring a little bit.
2025-05-16 21:00:14 +02:00
e88e966521 Add mechanism for transforming objects to different types 2025-05-16 21:00:14 +02:00
3211f6d441 Add primitive tokenizer for USC 2025-05-16 12:31:18 +02:00
41bd413b4c Add LABEL class and replace uses of temporary strings with it 2025-05-08 19:10:38 +02:00
0a3675feac Turn the user-side compiler into a proper ASDF system 2025-05-03 12:22:56 +02:00