def visitExpr5(self, ctx: MCParser.Expr5Context): if ctx.ADD(): return BinaryOp('+', self.visit(ctx.expr6()), self.visit(ctx.expr5())) elif ctx.SUBNEG(): return BinaryOp('-', self.visit(ctx.expr6()), self.visit(ctx.expr5())) else: return self.visit(ctx.expr6())
def visitExpr5(self, ctx: MCParser.Expr5Context): if ctx.ADD(): op = ctx.ADD().getText() left = self.visitExpr5(ctx.expr5()) right = self.visitExpr6(ctx.expr6()) return BinaryOp(op, left, right) elif ctx.SUB(): op = ctx.SUB().getText() left = self.visitExpr5(ctx.expr5()) right = self.visitExpr6(ctx.expr6()) return BinaryOp(op, left, right) else: return self.visitExpr6(ctx.expr6())
def visitExpr5(self, ctx: MCParser.Expr5Context): if (ctx.getChildCount() == 1): return self.visit(ctx.expr6()) else: op = ctx.getChild(1).getText() left = self.visit(ctx.expr5()) right = self.visit(ctx.expr6()) return BinaryOp(op, left, right)
def visitExpr5(self, ctx: MCParser.Expr5Context): def getOp(ctx): if (ctx.ADD()): return ctx.ADD().getText() if (ctx.SUB()): return ctx.SUB().getText() return self.visit( ctx.expr6()) if ctx.getChildCount() == 1 else BinaryOp( getOp(ctx), self.visit(ctx.expr5()), self.visit(ctx.expr6()))
def visitExpr5(self, ctx:MCParser.Expr5Context): # expr5 : expr5 (ADD | SUB) expr6 | expr6; if ctx.getChildCount() == 3: return BinaryOp(ctx.getChild(1).getText(),self.visit(ctx.expr5()),self.visit(ctx.expr6())) else: return self.visit(ctx.expr6())