Table of Contents

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