Class WhileStatementGenerator

java.lang.Object
org.ek9lang.compiler.phase7.generator.AbstractGenerator
org.ek9lang.compiler.phase7.generator.WhileStatementGenerator
All Implemented Interfaces:
Function<EK9Parser.WhileStatementExpressionContext, List<IRInstr>>

public final class WhileStatementGenerator extends AbstractGenerator implements Function<EK9Parser.WhileStatementExpressionContext, List<IRInstr>>
Generates IR for while and do-while loops and expressions using CONTROL_FLOW_CHAIN.

Supports both statement and expression forms:

  • Statement form: while condition { body } - no return value
  • Expression form: result <- while condition <- rtn <- 0 { body } - accumulator pattern

Scope structure:

  Outer Scope (_scope_1): Loop wrapper for guards + return variable (expression form)
  Whole Loop Scope (_scope_2): Loop control structure
  Condition Iteration Scope (_scope_3): Condition temps, enters/exits each iteration
  Body Iteration Scope (_scope_4): Body execution, enters/exits each iteration

The outer scope pattern enables guard and expression form support. Both condition and body use iteration scopes for tight memory management. Guard and scope orchestration is delegated to GuardedScopeOrchestrator.