Skip to main content

Module ast

Module ast 

Source
Expand description

The typed AST over the rowan tree (docs/ROADMAP.md epic E1.2a, ADR-0007 decision 1).

The node structs and their mechanical accessors live in the generated module, written by cargo xtask codegen from family.ungram and committed; an xtask drift test keeps the two in sync. This module adds the hand-written layer the generator does not cover:

Every accessor walks child kinds and returns Option/empty iterators on a malformed tree — it never panics.

Structs§

ArrayType
A ArrayType node (family.ungram rule ArrayType).
AstChildren
An iterator over the children of a node that cast to N, in source order.
AttrBlock
A AttrBlock node (family.ungram rule AttrBlock).
AttrValue
A AttrValue node (family.ungram rule AttrValue).
Attribute
A Attribute node (family.ungram rule Attribute).
BinaryExpr
A BinaryExpr node (family.ungram rule BinaryExpr).
Bound
A Bound node (family.ungram rule Bound).
CommandDef
A CommandDef node (family.ungram rule CommandDef).
ComponentDef
A ComponentDef node (family.ungram rule ComponentDef).
ComponentLine
A ComponentLine node (family.ungram rule ComponentLine).
ConstDef
A ConstDef node (family.ungram rule ConstDef).
Constraint
A Constraint node (family.ungram rule Constraint).
DeploymentDef
A DeploymentDef node (family.ungram rule DeploymentDef).
DistributionDef
A DistributionDef node (family.ungram rule DistributionDef).
DottedName
A DottedName node (family.ungram rule DottedName).
EnumDef
A EnumDef node (family.ungram rule EnumDef).
EnumSetBit
A EnumSetBit node (family.ungram rule EnumSetBit).
EnumSetDef
A EnumSetDef node (family.ungram rule EnumSetDef).
EnumValue
A EnumValue node (family.ungram rule EnumValue).
ErrorNode
An error-recovery node wrapping the tokens the parser skipped (task E1.2c). The one node kind with no rule in family.ungram.
EventDef
A EventDef node (family.ungram rule EventDef).
FallibleType
A FallibleType node (family.ungram rule FallibleType).
FieldDef
A FieldDef node (family.ungram rule FieldDef).
FixedDef
A FixedDef node (family.ungram rule FixedDef).
Import
A Import node (family.ungram rule Import).
InitValue
A InitValue node (family.ungram rule InitValue).
InterfaceDef
A InterfaceDef node (family.ungram rule InterfaceDef).
Literal
A Literal node (family.ungram rule Literal).
LiteralExpr
A LiteralExpr node (family.ungram rule LiteralExpr).
MachineDef
A MachineDef node (family.ungram rule MachineDef).
MapType
A MapType node (family.ungram rule MapType).
MemberExpr
A MemberExpr node (family.ungram rule MemberExpr).
MemberLine
A MemberLine node (family.ungram rule MemberLine).
Name
A Name node (family.ungram rule Name).
OptionalType
A OptionalType node (family.ungram rule OptionalType).
PackageDecl
A PackageDecl node (family.ungram rule PackageDecl).
Param
A Param node (family.ungram rule Param).
ParamList
A ParamList node (family.ungram rule ParamList).
ParenExpr
A ParenExpr node (family.ungram rule ParenExpr).
PathExpr
A PathExpr node (family.ungram rule PathExpr).
PathType
A PathType node (family.ungram rule PathType).
PrefixExpr
A PrefixExpr node (family.ungram rule PrefixExpr).
PrimitiveType
A PrimitiveType node (family.ungram rule PrimitiveType).
QualifiedName
A QualifiedName node (family.ungram rule QualifiedName).
QueryDef
A QueryDef node (family.ungram rule QueryDef).
Reference
A Reference node (family.ungram rule Reference).
ReservedEntry
A ReservedEntry node (family.ungram rule ReservedEntry).
ReturnType
A ReturnType node (family.ungram rule ReturnType).
ServiceDef
A ServiceDef node (family.ungram rule ServiceDef).
SignalDef
A SignalDef node (family.ungram rule SignalDef).
SourceFile
A SourceFile node (family.ungram rule SourceFile).
StreamType
A StreamType node (family.ungram rule StreamType).
StructDef
A StructDef node (family.ungram rule StructDef).
SystemDef
A SystemDef node (family.ungram rule SystemDef).
Timing
A Timing node (family.ungram rule Timing).
TimingRange
A TimingRange node (family.ungram rule TimingRange).
TupleField
A TupleField node (family.ungram rule TupleField).
TupleType
A TupleType node (family.ungram rule TupleType).
TypeDef
A TypeDef node (family.ungram rule TypeDef).
UnionArm
A UnionArm node (family.ungram rule UnionArm).
UnionDef
A UnionDef node (family.ungram rule UnionDef).
UnitExpr
A UnitExpr node (family.ungram rule UnitExpr).

Enums§

Backing
The backing of a type definition — the Backing alternation (typl reference §4–§5).
ComponentLineKind
Which keyword a ComponentLine carries (rsdl reference §3.2).
Definition
One top-level definition — the Definition alternation.
Expr
One expression of the guaranteed subset — the Expr alternation (expr-core specification §3.1, ridl reference §13, epic E2.4).
FieldType
The type of a field, tuple field, or collection element — the FieldType alternation (typl reference §7, §11–§12).
InterfaceMember
One member of an interface body — the InterfaceMember alternation (ridl reference §14.0–§14.1, epic E2.1a).
InterfaceShape
One interface shape declared in a file (ridl §14.0): an interface declaration, or the inline shape of a service (§14.5).
ParamType
The type of a command or query parameter — the ParamType alternation (ridl reference §6.1, §7.1, §12): a field type or a stream <T>.
PredicateKind
Which predicate keyword an Attribute carries (general form §4.2, ridl reference §13).
StructMember
One member of a struct body — the StructMember alternation (typl reference §7).

Traits§

AstNode
A typed view over a SyntaxNode of a known kind.
HasDocComments
A node that doc comments attach to (typl reference §14). Doc comments are trivia tokens, so they sit before the node rather than inside it.
HasModifiers
A node that accepts the internal / error prefix modifiers (general form §2; typl reference §3.3, §10.1).
HasName
A node that declares a Name.