BlockNode class

Represents a block of statements in Balbismo.

A block node contains a sequence of statements or expressions that are executed in order. Blocks create a new scope for variable declarations, allowing local variables that are only accessible within the block.

In LLVM IR, blocks are translated to a sequence of instructions within the current function or scope. Each child node generates its own IR instructions in the order they appear.

Example Balbismo code:

{
  int x = 5;
  printf("Value: %d", x);
}

This creates a new scope where x is only accessible within the braces.

Inheritance

Constructors

BlockNode.new(List<Node> children)
Constructs a block node with the given child statements.

Properties

children → List<Node>
Child nodes that form the structure of this node.
finalinherited
hashCode → int
The hash code for this object.
no setterinherited
id ↔ int
Unique identifier for this node, used for LLVM register naming.
getter/setter pairinherited
nodeValue → void
The primary value associated with this node (varies by node type).
finalinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

evaluate(SymbolTable table) → void
Evaluates all child nodes in order within a new scope.
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited