Example #1
0
        public virtual void VisitWhile(WhileInstruction x)
        {
            x.Condition.VisitMe(this);
            x.LoopBlock.VisitMe(this);

            VisitInstruction(x);
        }
Example #2
0
        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);
        }
Example #3
0
 protected override void SetMyBlockInternalArg()
 {
     myBlockInternalArg = new WhileInstruction(this);
 }