Beispiel #1
0
 public override void Visit(RppIf node)
 {
     node.Condition.Accept(this);
     node.ThenExpr.Accept(this);
     node.ElseExpr.Accept(this);
 }
Beispiel #2
0
        public override void Visit(RppIf node)
        {
            Label exitLabel = _body.DefineLabel();
            Label elseLabel = _body.DefineLabel();

            // if condition is false we jump to else label, otherwise we just fallthrough
            EmitBranchableAndJumpOnResult(node.Condition, elseLabel, false);

            node.ThenExpr.Accept(this);
            _body.Emit(OpCodes.Br, exitLabel);
            _body.MarkLabel(elseLabel);
            node.ElseExpr.Accept(this);
            _body.MarkLabel(exitLabel);
        }
Beispiel #3
0
 public virtual void Visit(RppIf node)
 {
 }