TypeCast class

Represents a type cast operation in Balbismo.

A type cast node converts a value from one primitive type to another. Currently supports casting between int and float types in both directions. If the source and target types are the same, the cast is a no-op.

Example Balbismo code:

int x = 42;
float y = (float)x;  // This is a TypeCast from int to float
int z = (int)y;      // This is a TypeCast from float to int

This generates LLVM IR conversion instructions:

%conv.0 = sitofp i64 %x to double    // int to float
%conv.1 = fptosi double %y to i64    // float to int
Inheritance

Constructors

TypeCast.new(PrimitiveType type, Node<dynamic, LangVal<LangType>> child)
Constructs a type cast operation with target type and source expression.

Properties

child Node<dynamic, LangVal<LangType>>
no setter
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 PrimitiveType
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) LangVal<LangType>
Evaluates this AST node and generates corresponding LLVM IR code.
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