3.4.0 Statements
A statement is an executable unit inside a member's body.
Statement Nodes
Every statement node derives from StatementNode. StatementNode derives directly from SyntaxNode; see RD-VBAL §3.0.2 Node Types.
StatementNode implements IExecutableNode. A statement node's Inputs, from IExecutableNode, are the expressions evaluated immediately before the statement executes.
A block statement's nested statements are held in a StatementBlock. The StatementBlock is independent of the statement node's Inputs.
Statement Node Families
This section catalogs the statement AST node families in three groups:
| Group | Section | MS-VBAL |
|---|---|---|
| Block statements | RD-VBAL §3.4.1 Block Statements | MS-VBAL §5.4.2 Control Statements |
| Simple statements | RD-VBAL §3.4.2 Simple Statements | MS-VBAL §5.4.2, MS-VBAL §5.4.3 Data Manipulation Statements, MS-VBAL §5.4.4 Error Handling Statements |
| File statements | RD-VBAL §3.4.3 File Statements | MS-VBAL §5.4.5 File Statements |
Each statement node family is cross-referenced to its MS-VBAL section, and to the page of RD-VBAL §5.4 Procedure Bodies and Statements that describes its implementation.
Note
This section catalogs the AST shape the parser produces. It does not describe the static or runtime semantics of statements (coercion, error conditions, control flow). Those belong to the resolver and the interpreter, and are out of scope here.
Statements and Instructions
This section catalogs the statement tree the parser produces. RD-VBAL §3.5.0 Instructions catalogs the flat, offset-addressable InstructionList produced from that tree.
⏮️ RD-VBAL §3.3.4 Relational (Comparison) Operators | ⏭️ RD-VBAL §3.4.1 Block Statements