Skip to main content

Module expr

Module expr 

Source
Expand description

IR-level expression types and the flat ExprArena that stores them.

Expressions are represented as a flat vector of IrExpr nodes indexed by ExprId. This avoids deep recursive types and makes expression sharing, substitution, and serialisation straightforward.

Unlike the AST expression types in graphforge-ast, these types:

  • carry no source spans (semantic-only)
  • use resolved IDs (VarId, PropId) instead of raw name strings
  • collapse AST-level sugar (IsNull, InList, StringOp, RegexMatch) into UnaryOp / BinaryOp variants handled uniformly by the executor

Structs§

CaseArm
A single WHEN/THEN arm in a IrExpr::Case expression.
ExprArena
Flat, index-addressed storage for all IrExpr nodes in a query plan.

Enums§

BinaryOpKind
The operator in a IrExpr::BinaryOp expression.
IrExpr
A single node in the ExprArena.
IrLiteral
A scalar constant value in the Graph IR.
UnaryOpKind
The operator in a IrExpr::UnaryOp expression.