Example #1
0
 def visitExp6(self, ctx:MCParser.Exp6Context):
     if ctx.DIV():
         return BinaryOp(ctx.DIV().getText(), self.visitExp6(ctx.exp6()), self.visitExp7(ctx.exp7()))
     elif ctx.MUL():
         return BinaryOp(ctx.MUL().getText(), self.visitExp6(ctx.exp6()), self.visitExp7(ctx.exp7()))
     elif ctx.MOD():
         return BinaryOp(ctx.MOD().getText(), self.visitExp6(ctx.exp6()), self.visitExp7(ctx.exp7()))
     else:
         return self.visitExp7(ctx.exp7())
Example #2
0
 def visitExp6(self, ctx: MCParser.Exp6Context):
     if ctx.DIV():
         return BinaryOp("/", self.visit(ctx.exp6()),
                         self.visit(ctx.exp7()))
     if ctx.MUL():
         return BinaryOp("*", self.visit(ctx.exp6()),
                         self.visit(ctx.exp7()))
     if ctx.MOD():
         return BinaryOp("%", self.visit(ctx.exp6()),
                         self.visit(ctx.exp7()))
     else:
         return self.visit(ctx.exp7())
Example #3
0
 def visitExp6(self, ctx: MCParser.Exp6Context):
     # exp6: exp6 (DIV|MUL|MOD) exp7 | exp7;
     if (ctx.DIV()):
         return BinaryOp(ctx.DIV().getText(), self.visit(ctx.exp6()),
                         self.visit(ctx.exp7()))
     elif (ctx.MUL()):
         return BinaryOp(ctx.MUL().getText(), self.visit(ctx.exp6()),
                         self.visit(ctx.exp7()))
     elif (ctx.MOD()):
         return BinaryOp(ctx.MOD().getText(), self.visit(ctx.exp6()),
                         self.visit(ctx.exp7()))
     else:
         return self.visit(ctx.exp7())
Example #4
0
 def visitExp6(self, ctx:MCParser.Exp6Context):
     if (ctx.getChildCount() == 1):
         return self.visit(ctx.exp7())
     left = self.visit(ctx.exp6())
     right = self.visit(ctx.exp7())
     op = ctx.getChild(1).getText()
     return BinaryOp(op,left,right)
Example #5
0
 def visitExp6(self, ctx: MCParser.Exp6Context):
     if ctx.getChildCount() == 3:
         return BinaryOp(
             ctx.getChild(1).getText(), self.visit(ctx.exp6()),
             self.visit(ctx.exp7()))
     else:
         return self.visit(ctx.exp7())
Example #6
0
 def visitExp6(self, ctx:MCParser.Exp6Context):
     if (ctx.getChildCount() == 1):
         return self.visit(ctx.exp7())
     else:
         op = ctx.getChild(1).getText()
         exp6 = self.visit(ctx.exp6())
         exp7 = self.visit(ctx.exp7()) 
         return BinaryOp(op,exp6,exp7)
Example #7
0
 def visitExp6(self, ctx: MCParser.Exp6Context):
     '''exp6: ( SUB | NOT ) exp6 | exp7 ;'''
     if ctx.getChildCount() == 1:
         return self.visit(ctx.exp7())
     else:
         right = self.visit(ctx.exp6())
         op = ctx.SUB().getText() if ctx.SUB() else ctx.NOT().getText()
         return UnaryOp(op, right)
Example #8
0
 def visitExp6(self, ctx: MCParser.Exp6Context):
     return BinaryOp(self.visit(ctx.op6()), self.visit(ctx.exp6()),self.visit(ctx.exp7())) if ctx.getChildCount() == 3 \
         else self.visit(ctx.exp7())