public void VisitProcStatementWhile(DMASTProcStatementWhile statementWhile) { SimplifyExpression(ref statementWhile.Conditional); if (statementWhile.Body != null) { statementWhile.Body.Visit(this); } }
public void ProcessStatementWhile(DMASTProcStatementWhile statementWhile) { string loopLabel = _proc.NewLabelName(); _proc.LoopStart(loopLabel); { DMExpression.Emit(_dmObject, _proc, statementWhile.Conditional); _proc.BreakIfFalse(); _proc.StartScope(); { ProcessBlockInner(statementWhile.Body); _proc.LoopContinue(loopLabel); _proc.LoopJumpToStart(loopLabel); } _proc.EndScope(); } _proc.LoopEnd(); }