Skip to main contentModule ast
Source - BlockParamDecl
- FnDecl
- A function declaration (
fn name: <entry> stmts...). - Program
- Top-level program representation. Any leading
type declarations are
collected into structs; kind is the statement or function body. - SourcePosition
- SourceSpan
- StructDecl
- A nominal struct definition:
type Foo { a: 4, _: 5, b: 2 }. Field offsets
are the running byte sum (padding included); the struct size is the total. - StructFieldDecl
- One field of a
type Foo { ... } declaration. A field named _ is padding:
it advances the running offset by its byte size without naming a slot. - TupleField
- TypedAtom
- Atom
- Callee
- A direct function reference in textual QCode.
- CastOp
- ExprNode
- ExtractField
- FnKind
- GepField
- The field selector of a
gep(...) — by field name or by raw byte offset. - Label
- A branch target or label declaration — either a named label or a block address.
- ProgramKind
- Statement
- StructFieldType
- The declared type of a struct field: either a scalar of
n bytes, or a
pointer to a named (nominal) struct, written Foo*.
- BlockArgs
- Per-parameter arguments on a branch edge:
(param_name, value) in
declaration order. Empty unless the edge was written as
goto <block @v1=e1 @v2=e2>. - SwitchCase
- One
switch arm: (case value, target block, arguments on that edge).