Table of Contents

3.3.0 Operator Expressions

An operator consists of a bound expression node that yields a deterministic result given one or more operand inputs. The semantics of operator expressions are described in RD-VBAL §5.6.9 Operator Expressions.

Inputs Operator kind Notation
One Unary operator All unary operators are prefix: the operator token appears before its operand.
Two Binary operator All binary operators are infix: a left and a right operand, with the operator token between them.
Three Ternary operator Undefined in RD-VBA.
Note

🧩 RD-VBA does not define any ternary operators. Ternary operators should never be introduced in the language core.

Operator Node Hierarchy

All operators ultimately inherit SyntaxNode, which represents any type of AST node (RD-VBAL §3.0.2 Node Types):

Each layer of this inheritance hierarchy refines its members with more specialized signatures in templated methods. The layers usually seal their overrides, leaving only one or two methods to implement at the leaves. For example, each layer exposes the node's inputs as follows:

Node type Inputs exposed as
ExpressionNode A general-purpose inputs array of values.
VBOperatorExpression Indexed operands (Children[n]).
VBUnaryOperatorExpressionNode Operand only.
VBBinaryOperatorExpressionNode Left and Right.

The same layered refinement through templated methods applies to all semantics, both static and runtime (RD-VBAL §5.0 Semantics).


In this section

§ Title
3.3.1 Unary Operators
3.3.2 Arithmetic Operators — reserved
3.3.3 Logical (Bitwise) Operators — reserved
3.3.4 Relational (Comparison) Operators — reserved

⏮️ RD-VBAL §3.2.0 Literal Expressions | ⏭️ RD-VBAL §3.3.1 Unary Operators