evaluate method

  1. @override
void evaluate(
  1. SymbolTable table
)
override

Evaluates the return statement by generating a ret instruction.

First evaluates the return value expression, then generates an LLVM ret instruction with the appropriate type and register name.

Parameters:

  • table: The symbol table for expression evaluation

This method doesn't return a value as return statements terminate execution.

Implementation

@override
void evaluate(SymbolTable table) {
  final valueResult = value.evaluate(table);

  Node.addIrLine("ret ${valueResult.type.irType} ${valueResult.regName}");
}