Boo.Lang.Compiler.Steps.EmitAssembly.OnWhileStatement C# (CSharp) Метод

OnWhileStatement() публичный Метод

public OnWhileStatement ( Boo.Lang.Compiler.Ast.WhileStatement node ) : void
node Boo.Lang.Compiler.Ast.WhileStatement
Результат void
        public override void OnWhileStatement(WhileStatement node)
        {
            Label endLabel = _il.DefineLabel();
            Label bodyLabel = _il.DefineLabel();
            Label conditionLabel = _il.DefineLabel();

            _il.Emit(OpCodes.Br, conditionLabel);
            _il.MarkLabel(bodyLabel);

            EnterLoop(endLabel, conditionLabel);
            node.Block.Accept(this);
            LeaveLoop();

            _il.MarkLabel(conditionLabel);
            EmitDebugInfo(node);
            EmitBranchTrue(node.Condition, bodyLabel);
            Visit(node.OrBlock);
            Visit(node.ThenBlock);
            _il.MarkLabel(endLabel);
        }
EmitAssembly