Passes
The L compiler is currently a pass based compiler. The passes are currently approximately as follows:
- Lexical Analysis:
source code -> token stream
- Parsing:
token stream -> abstract syntax tree
- AST Lowering:
AST -> IR
- Typechecking:
IR -> Typed IR (TIR)
- TIR Lowering:
TIR -> Midlevel IR (MIR)
- MIR Lowering:
MIR -> LLVM IR
- Code Generation:
LLVM IR -> Output