Ejemplo n.º 1
0
 protected virtual void _Generate(AstNodeStmIfElse ifElse)
 {
     Output.Write("if (");
     Generate(ifElse.Condition);
     Output.Write(") ");
     Generate(ifElse.True);
     if (ifElse.False != null)
     {
         Output.Write(" else ");
         Generate(ifElse.False);
     }
 }
Ejemplo n.º 2
0
        protected virtual void _Generate(AstNodeStmIfElse ifElse)
        {
            var afterIfLabel = DefineLabel("AfterIf");

            Generate(ifElse.Condition);
            Emit(OpCodes.Brfalse, afterIfLabel);
            Generate(ifElse.True);

            if (ifElse.False != null)
            {
                var afterElseLabel = DefineLabel("AfterElse");
                Emit(OpCodes.Br, afterElseLabel);

                MarkLabel(afterIfLabel);

                Generate(ifElse.False);

                MarkLabel(afterElseLabel);
            }
            else
            {
                MarkLabel(afterIfLabel);
            }
        }