FuncDec class
Represents a function declaration in Balbismo.
A function declaration defines a named function with parameters, a return type, and a body. When evaluated, it generates the complete LLVM function definition including parameter handling, local variables, and the function body.
Example Balbismo code:
int add(int x, int y) { // This is a FuncDec
return x + y;
}
int main() {
return add(5, 3);
}
This generates LLVM IR like:
define i64 @add(i64 %x, i64 %y) {
entry:
%ptr.x.0 = alloca i64
store i64 %x, ptr %ptr.x.0
; ... function body ...
ret i64 %result
}
Constructors
- FuncDec.new(TypeNode returnType, IdentifierNode identifier, ParameterList params, BlockNode block)
- Constructs a function declaration with all its components.
Properties
- block → BlockNode
-
Gets the function body block.
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
- identifier → IdentifierNode
-
Gets the function name identifier.
no setter
- nodeValue → void
-
The primary value associated with this node (varies by node type).
finalinherited
-
params
→ List<
DeclareNode> -
Gets the list of function parameters.
no setter
- returnType → TypeNode
-
Gets the function's return type.
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
evaluate(
SymbolTable table) → void -
Evaluates the function declaration by generating the complete LLVM function definition.
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