[−][src]Crate firm_construction
Lowers the output of the semantic analysis phase (AST, Type System, Type Analysis), into Firm for code generation.
Generated Labels
A dot (.
) is a valid character in an ASM label, but not in MiniJava
.
This is why it's used as a separator. As properties and methods live in
their own namespaces, fields have the additional segment .F.
, methods have
the additional segment .M.
.
Unused Struct Properties
While building the firm graph, identifiers are created for Firm entities
using CString
, which heap-allocates. However, firm only contains raw
pointers to the CString
instances, hence the CString
must be kept around
for the lifetime of the graph. Otherwise rust would de allocate the
CString
to early!
Re-exports
pub use asciifile; |
pub use parser; |
pub use strtab; |
pub use type_checking; |
pub use self::firm_program::*; |
pub use self::method_body_generator::MethodBodyGenerator; |
pub use self::program_generator::ProgramGenerator; |
pub use self::runtime::Runtime; |
Modules
ast | |
firm_program | |
method_body_generator | |
program_generator | |
ref_eq | |
runtime |
Structs
Options | Enable or disable behaviour during the lowering phase |
Enums
FirmError |