def visitExp2(self, ctx: BKITParser.Exp2Context): if ctx.getChildCount() == 1: return self.visit(ctx.exp3()) else: if ctx.SUB(): return BinaryOp(ctx.SUB().getText(), self.visit(ctx.exp2()), self.visit(ctx.exp3())) elif ctx.SUBF(): return BinaryOp(ctx.SUBF().getText(), self.visit(ctx.exp2()), self.visit(ctx.exp3())) elif ctx.ADD(): return BinaryOp(ctx.ADD().getText(), self.visit(ctx.exp2()), self.visit(ctx.exp3())) else: return BinaryOp(ctx.ADDF().getText(), self.visit(ctx.exp2()), self.visit(ctx.exp3()))
def visitExp2(self, ctx: BKITParser.Exp2Context): if ctx.getChildCount() > 1: left = self.visit(ctx.exp2()) right = self.visit(ctx.exp3()) if ctx.ADD(): op = str(ctx.ADD().getText()) if ctx.ADDF(): op = str(ctx.ADDF().getText()) if ctx.SUB(): op = str(ctx.SUB().getText()) if ctx.SUBF(): op = str(ctx.SUBF().getText()) return BinaryOp(op, left, right) else: return self.visit(ctx.exp3())