예제 #1
0
        private void Visit(TernaryOperatorExpression expr)
        {
            var labelFalse = IL.DefineLabel("tern_false");
            var labelEnd   = IL.DefineLabel("tern_end");

            Visit(expr.Condition);

            LoadNumber();
            IL.Brfalse(labelFalse);

            Visit(expr.IfTrue);
            IL.Br(labelEnd);

            IL.MarkLabel(labelFalse);
            IL.Nop();
            Visit(expr.IfFalse);

            IL.MarkLabel(labelEnd);
            IL.Nop();
        }