예제 #1
0
 def visitExp2(self, ctx: BKITParser.Exp2Context):
     if ctx.getChildCount() == 3:
         return BinaryOp(
             ctx.getChild(1).getText(), self.visit(ctx.getChild(0)),
             self.visit(ctx.getChild(2)))
     else:
         return self.visit(ctx.exp3())
 def visitExp2(self, ctx: BKITParser.Exp2Context):
     if ctx.getChildCount() == 1:
         return self.visit(ctx.exp3())
     else:
         left = self.visit(ctx.exp2())
         right = self.visit(ctx.exp3())
         return BinaryOp(ctx.getChild(1).getText(), left, right)
    def visitExp2(self, ctx: BKITParser.Exp2Context):
        if ctx.getChildCount() == 1:
            return ctx.exp3().accept(self)

        left = ctx.exp2().accept(self)
        right = ctx.exp3().accept(self)
        op = ctx.getChild(1).getText()

        return BinaryOp(op, left, right)
예제 #4
0
 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())
예제 #5
0
 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()))
예제 #6
0
 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())
예제 #7
0
 def visitExp2(self, ctx: BKITParser.Exp2Context):
     if ctx.getChildCount() == 1:
         return self.visitChildren(ctx)
     return BinaryOp(
         ctx.getChild(1).getText(), self.visit(ctx.exp2()),
         self.visit(ctx.exp3()))
 def visitExp2(self, ctx: BKITParser.Exp2Context):
     return ctx.exp3().accept(
         self) if ctx.getChildCount() == 1 else BinaryOp(
             ctx.getChild(1).getText(),
             ctx.exp2().accept(self),
             ctx.exp3().accept(self))
예제 #9
0
 def visitExp2(self, ctx: BKITParser.Exp2Context):
     if ctx.getChildCount() == 1:
         return self.visit(ctx.exp3())
     op = ctx.And().getText() if ctx.And().getText() else ctx.Or().getText()
     return BinaryOp(op, self.visit(ctx.exp2()), self.visit(ctx.exp3()))