Expand description
This module contains the compiler implementation.
Note that these modules are public for documentation visiblility,
But should never be used outside of the module by common
or vm
.
Each step in the compiler pipeline turns one datatype into another.
loosely, starting with Source
(string + path):
- Tokens:
lex.rs
- Absrtact ST:
parse.rs
- Concrete ST:
desugar.rs
- Scoped ST:
hoist.rs
- Bytecode:
gen.rs
Note that more steps (e.g. ones applying typechecking operations, optimization passes, etc.) may be implemented in the future.
Re-exports§
pub use lex::lex;
pub use parse::parse;
pub use desugar::desugar;
pub use hoist::hoist;
pub use gen::gen;