def visitExpr(self, ctx:MPParser.ExprContext): if ctx.AND(): return BinaryOp("andthen", self.visit(ctx.expr()), self.visit(ctx.exp1())) elif ctx.OR(): return BinaryOp("orelse", self.visit(ctx.expr()), self.visit(ctx.exp1())) else: return self.visit(ctx.exp1())
def visitExpr(self, ctx: MPParser.ExprContext): if ctx.getChildCount() == 1: return self.visit(ctx.expr1()) if ctx.AND() and ctx.THEN(): return BinaryOp("andthen", self.visit(ctx.expr()), self.visit(ctx.expr1())) elif ctx.OR() and ctx.ELSE(): return BinaryOp("orelse", self.visit(ctx.expr()), self.visit(ctx.expr1()))
def visitExpr(self, ctx: MPParser.ExprContext): if ctx.getChildCount() == 1: return self.visit(ctx.exp1()) if ctx.AND(): return BinaryOp('andthen', self.visit(ctx.expr()), self.visit(ctx.exp1())) if ctx.OR(): return BinaryOp('orelse', self.visit(ctx.expr()), self.visit(ctx.exp1()))
def visitExpr(self, ctx: MPParser.ExprContext): #BinaryOp #op:string: AND THEN => andthen; OR ELSE => orelse; other => keep it #left:Expr #right:Expr #def __init__(self, op, left, right): pass if ctx.getChildCount() == 4: if ctx.ANDOP() and ctx.THEN(): return BinaryOp("andthen", self.visit(ctx.expr()), self.visit(ctx.exp0())) elif ctx.OROP() and ctx.ELSE(): return BinaryOp("orelse", self.visit(ctx.expr()), self.visit(ctx.exp0())) else: return self.visit(ctx.exp0())
def visitExpr(self, ctx: MPParser.ExprContext): if ctx.getChildCount() == 1: return self.visit(ctx.expr1()) else: if ctx.AND() and ctx.THEN(): op = "andthen" else: op = "orelse" return BinaryOp(op, self.visit(ctx.expr()), self.visit(ctx.expr1()))