Expand description
AST for the Allium specification language.
The parse tree uses a uniform block-item representation for declaration
bodies: every name: value, keyword: value and let name = value within
braces is a BlockItem. Semantic classification into entity fields vs
relationships vs derived values, or trigger types, happens in a later pass.
Expressions are fully typed — the parser produces the rich Expr tree
directly.
Structs§
- Block
Decl - A named or anonymous block:
entity User { ... },config { ... }, etc. - Block
Item - Cond
Branch - Default
Decl default [Type] name = value- Deferred
Decl deferred path.expression- Ident
- Join
Field - Module
- A parsed
.alliumfile. - Module
Decl module name- Named
Arg - Open
Question Decl open question "text"- Qualified
Name - String
Literal - UseDecl
use "path" as alias- Variant
Decl variant Name : Type { ... }