gruel_rir/lib.rs
1//! Gruel Intermediate Representation (RIR) - Untyped IR.
2//!
3//! RIR is the first IR in the Gruel compiler pipeline. It is generated from
4//! the AST and represents a lowered, linearized form of the program.
5//!
6//! Key characteristics:
7//! - Untyped: type information is not yet resolved
8//! - Per-file: generated for each source file
9//! - Dense encoding: instructions stored in arrays, referenced by index
10//!
11//! Inspired by Zig's ZIR (Zig Intermediate Representation).
12
13mod astgen;
14mod inst;
15
16pub use astgen::AstGen;
17pub use inst::{
18 FunctionSpan, Inst, InstData, InstRef, Rir, RirArgMode, RirCallArg, RirDirective,
19 RirFunctionView, RirParam, RirParamMode, RirPattern, RirPatternBinding, RirPrinter,
20};