def visitExp3(self,ctx:BKITParser.Exp3Context): if ctx.MUL(): return BinaryOp( ctx.MUL().getText(), self.visitExp3(ctx.exp3()), self.visitExp4(ctx.exp4()) ) elif ctx.DIV(): return BinaryOp( ctx.DIV().getText(), self.visitExp3(ctx.exp3()), self.visitExp4(ctx.exp4()) ) elif ctx.MOD(): return BinaryOp( ctx.MOD().getText(), self.visitExp3(ctx.exp3()), self.visitExp4(ctx.exp4()) ) elif ctx.MULDOT(): return BinaryOp( ctx.MULDOT().getText(), self.visitExp3(ctx.exp3()), self.visitExp4(ctx.exp4()) ) elif ctx.DIVDOT(): return BinaryOp( ctx.DIVDOT().getText(), self.visitExp3(ctx.exp3()), self.visitExp4(ctx.exp4()) ) else: return self.visitExp4(ctx.exp4())
def visitExp3(self,ctx:BKITParser.Exp3Context): if ctx.getChildCount()==3: if ctx.MUL(): return BinaryOp(ctx.MUL().getText(),self.visit(ctx.exp3(),self.visit(ctx.exp4()))) elif ctx.MULFLOAT(): return BinaryOp(ctx.MULFLOAT().getText(),self.visit(ctx.exp3(),self.visit(ctx.exp4()))) elif ctx.DIV(): return BinaryOp(ctx.DIV().getText(),self.visit(ctx.exp3(),self.visit(ctx.exp4()))) elif ctx.DIVFLOAT(): return BinaryOp(ctx.DIVFLOAT().getText(),self.visit(ctx.exp3(),self.visit(ctx.exp4()))) elif ctx.PERCENT(): return BinaryOp(ctx.PERCENT().getText(),self.visit(ctx.exp3(),self.visit(ctx.exp4()))) else: return ctx.exp4()
def visitExp3(self, ctx: BKITParser.Exp3Context): if ctx.getChildCount() > 1: left = self.visit(ctx.exp3()) right = self.visit(ctx.exp4()) if ctx.MUL(): op = str(ctx.MUL().getText()) if ctx.MULF(): op = str(ctx.MULF().getText()) if ctx.DIV(): op = str(ctx.DIV().getText()) if ctx.DIVF(): op = str(ctx.DIVF().getText()) if ctx.MOD(): op = str(ctx.MOD().getText()) return BinaryOp(op, left, right) else: return self.visit(ctx.exp4())
def visitExp3(self, ctx: BKITParser.Exp3Context): if ctx.getChildCount() == 1: return self.visit(ctx.exp4()) else: if ctx.MUL(): return BinaryOp(ctx.MUL().getText(), self.visit(ctx.exp3()), self.visit(ctx.exp4())) elif ctx.MULF(): return BinaryOp(ctx.MULF().getText(), self.visit(ctx.exp3()), self.visit(ctx.exp4())) elif ctx.DIV(): return BinaryOp(ctx.DIV().getText(), self.visit(ctx.exp3()), self.visit(ctx.exp4())) elif ctx.DIVF(): return BinaryOp(ctx.DIVF().getText(), self.visit(ctx.exp3()), self.visit(ctx.exp4())) else: return BinaryOp(ctx.MODUL().getText(), self.visit(ctx.exp3()), self.visit(ctx.exp4()))