Gyoji Compiler
|
Converts the strongly-typed syntax tree into the MIR representation. More...
Classes | |
class | FunctionDefinitionResolver |
Lowering for a function. More... | |
class | FunctionLabel |
A named label inside a scope. More... | |
class | FunctionPoint |
Location inside a specific basic block. More... | |
class | FunctionResolver |
Resolves all functions found in the MIR. More... | |
class | Scope |
Represents variable declarations, labels, and goto inside a lexical scope. More... | |
class | ScopeOperation |
Primitive operation in a scope. More... | |
class | ScopeTracker |
Tracks variables declared in each scope along with abels and goto statements in a highly simplified intermediate representation. More... | |
class | TypeResolver |
The TypeResolver is the lowering process for types. This function reads the result of a parse and produces the set of types defined or referenced by it. This is essentially the process of 'lowering' for types where each user-defined type is decomposed to a set of canonical primitive types specified by the language so that in the end, code-generation can operate only on those primitive types at the machine level. At the end of this, every type should be defined in terms of primitive types (u32, f32,...), composite types (flattened) and pointer types (represented as a u64). More... | |
Converts the strongly-typed syntax tree into the MIR representation.
This namespace covers the 'lowering' process for the compiler. This is the process of coverting the strongly-typed syntax tree into an intermediate representation (MIR) for the language. This stage applies most of the 'language' rules and ultimately creates a machine in the MIR representation that will safely carry out the intent as described in the syntax given for this particular program.