pub struct SeqIR {
pub program_name: String,
pub options: ProgramOptions,
pub channels: Vec<IRChannel>,
pub event_flags: Vec<IREventFlag>,
pub variables: Vec<IRVariable>,
pub state_sets: Vec<IRStateSet>,
pub entry_block: Option<IRBlock>,
pub exit_block: Option<IRBlock>,
}Expand description
Lowered IR — the intermediate representation between AST and Rust codegen.
IR is a simplified, flat representation of the SNL program:
- All names are resolved to indices
- All types are concrete
- No expression parsing needed (expressions stored as string fragments for now) Top-level IR for an entire SNL program.
Fields§
§program_name: String§options: ProgramOptions§channels: Vec<IRChannel>§event_flags: Vec<IREventFlag>§variables: Vec<IRVariable>§state_sets: Vec<IRStateSet>§entry_block: Option<IRBlock>§exit_block: Option<IRBlock>Trait Implementations§
Auto Trait Implementations§
impl Freeze for SeqIR
impl RefUnwindSafe for SeqIR
impl Send for SeqIR
impl Sync for SeqIR
impl Unpin for SeqIR
impl UnsafeUnpin for SeqIR
impl UnwindSafe for SeqIR
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more