22 lines
961 B
Rust
22 lines
961 B
Rust
//! The middle of the compiler: analysis, simplification, optimization.
|
|
//!
|
|
//! For the moment, this module doesn't do much besides define an intermediate
|
|
//! representation for NGR programs that is a little easier to work with then
|
|
//! the structures we've built from the actual user syntax. For example, in the
|
|
//! IR syntax, function calls are simplified so that all their arguments are
|
|
//! either variables or constants, which can make reasoning about programs
|
|
//! (and implicit temporary variables) quite a bit easier.
|
|
//!
|
|
//! For the foreseeable future, this module will likely remain mostly empty
|
|
//! besides definitions, as we'll likely want to focus on just processing /
|
|
//! validating syntax, and then figuring out how to turn it into Cranelift
|
|
//! and object code. After that point, however, this will be the module to
|
|
//! come to for analysis and optimization work.
|
|
mod arbitrary;
|
|
pub mod ast;
|
|
mod eval;
|
|
mod strings;
|
|
mod top_level;
|
|
|
|
pub use ast::*;
|