return result;
}
public InstructionList reduce_whileStmt(IASNode iNode, InstructionList cond, InstructionList body)
{
InstructionList result = createInstructionList(iNode, cond.size() + body.size() + 5);
currentScope.getFlowManager().resolveContinueLabel(cond);
// Jump to the test.
result.addInstruction(OP_jump, cond.getLabel());
// Create an emitter-time label, and attach
// it to an OP_label instruction for the
// backwards branch.
result.addInstruction(OP_label);
Label loop = result.getLastLabel();
result.addAll(body);
result.addAll(cond);
result.addInstruction(OP_iftrue, loop);
currentScope.getFlowManager().finishLoopControlFlowContext(result);
return result;
}