public virtual void VisitWhile(WhileInstruction x) { x.Condition.VisitMe(this); x.LoopBlock.VisitMe(this); VisitInstruction(x); }
public override void VisitWhile(WhileInstruction x) { var condition = getValue(x.Condition); var loopBlock = getValue(x.LoopBlock); var breakLabel = Expression.Label(); var whileStatement = Expression.Loop( Expression.Block( Expression.IfThenElse(condition, loopBlock, Expression.Break(breakLabel) ) ), breakLabel ); emit(whileStatement); }
protected override void SetMyBlockInternalArg() { myBlockInternalArg = new WhileInstruction(this); }