Gyoji Compiler
Loading...
Searching...
No Matches
Classes
Gyoji::frontend::lowering Namespace Reference

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...
 

Detailed Description

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.