def visitExp2(self,ctx:BKITParser.Exp2Context): if ctx.ADD(): return BinaryOp( ctx.ADD().getText(), self.visitExp2(ctx.exp2()), self.visitExp3(ctx.exp3()) ) elif ctx.SUB(): return BinaryOp( ctx.SUB().getText(), self.visitExp2(ctx.exp2()), self.visitExp3(ctx.exp3()) ) elif ctx.ADDDOT(): return BinaryOp( ctx.ADDDOT().getText(), self.visitExp2(ctx.exp2()), self.visitExp3(ctx.exp3()) ) elif ctx.SUBDOT(): return BinaryOp( ctx.SUBDOT().getText(), self.visitExp2(ctx.exp2()), self.visitExp3(ctx.exp3()) ) else: return self.visitExp3(ctx.exp3())
def visitExp2(self,ctx:BKITParser.Exp2Context): if ctx.getChildCount() == 3: if ctx.SUB(): return BinaryOp(ctx.SUB().getText(),self.visit(ctx.exp2(),self.visit(ctx.exp3()))) elif ctx.SUBFLOAT(): return BinaryOp(ctx.SUBFLOAT().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()))) elif ctx.ADDFLOAT(): return BinaryOp(ctx.ADDFLOAT().getText(),self.visit(ctx.exp2(),self.visit(ctx.exp3()))) else: return 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())