| Assembler |
TOptional< TSRef< IAssemblerPass > > |
Assembler -------------------------- The assembler is responsible both for code-gen and linking (resolving any symbols between language objects). |
uLang/Toolchain/Toolchain.h |
|
| IrGenerator |
TOptional< TSRef< IIrGeneratorPass > > |
IR (Intermediate Representation) ---- The IrGenerator creates an intermediate representation intended for lenient analysis and code generation. |
uLang/Toolchain/Toolchain.h |
|
| LayerInjections |
SToolchainInjections |
API Layer Injections ------------ |
uLang/Toolchain/Toolchain.h |
|
| Parser |
TOptional< TSRef< IParserPass > > |
Parser ----------------------------- The parser is responsible for ingesting a source file, parsing and tokenizing it, and generating an abstract syntax tree (Vst) for the rest of the compiler to consume. |
uLang/Toolchain/Toolchain.h |
|
| PostIrFilters |
TSRefArray< IPostIrFilter > |
Post IR generation Filters ------------ This stage takes the generated IR, and performs operations on the result before passing along to the assembler. |
uLang/Toolchain/Toolchain.h |
|
| PostSemanticAnalysisFilters |
TSRefArray< IPostSemanticAnalysisFilter > |
Post Semantic Analysis Filters ------------ This stage takes the semantically analyzed AST, and performs operations on the result before passing along to the IR generator. |
uLang/Toolchain/Toolchain.h |
|
| PostVstFilters |
TSRefArray< IPostVstFilter > |
Post Vst Filters ------------------- The post Vst filters take an Vst, and transform it in any way it deems fit. |
uLang/Toolchain/Toolchain.h |
|
| SemanticAnalyzer |
TOptional< TSRef< ISemanticAnalyzerPass > > |
Semantic Analyzer --------------- The semantic analyzer consumes the generated and optimized VST, transforms it to an AST, and semantically analyzes the AST, annotating the AST with inferred types and other analysis products. |
uLang/Toolchain/Toolchain.h |
|