Example #1
0
 def visitExp5(self, ctx:MCParser.Exp5Context):
     if ctx.ADD():
         return BinaryOp(ctx.ADD().getText(), self.visitExp5(ctx.exp5()), self.visitExp6(ctx.exp6()))
     elif ctx.SUB():
         return BinaryOp(ctx.SUB().getText(), self.visitExp5(ctx.exp5()), self.visitExp6(ctx.exp6()))
     else:
         return self.visitExp6(ctx.exp6())
Example #2
0
 def visitExp5(self, ctx: MCParser.Exp5Context):
     # exp5: exp5 (ADD|SUB) exp6 | exp6;
     if (ctx.ADD()):
         return BinaryOp(ctx.ADD().getText(), self.visit(ctx.exp5()),
                         self.visit(ctx.exp6()))
     elif (ctx.SUB()):
         return BinaryOp(ctx.SUB().getText(), self.visit(ctx.exp5()),
                         self.visit(ctx.exp6()))
     else:
         return self.visit(ctx.exp6())
Example #3
0
 def visitExp5(self, ctx:MCParser.Exp5Context):
     if (ctx.getChildCount() == 1):
         return self.visit(ctx.exp6())
     left = self.visit(ctx.exp5())
     right = self.visit(ctx.exp6())
     op = ctx.getChild(1).getText()
     return BinaryOp(op,left,right)
Example #4
0
 def visitExp5(self, ctx: MCParser.Exp5Context):
     if ctx.getChildCount() == 3:
         return BinaryOp(
             ctx.getChild(1).getText(), self.visit(ctx.exp5()),
             self.visit(ctx.exp6()))
     else:
         return self.visit(ctx.exp6())
Example #5
0
 def visitExp5(self, ctx:MCParser.Exp5Context):
     if (ctx.getChildCount() == 1):
         return self.visit(ctx.exp6())
     else:
         op = ctx.getChild(1).getText()
         exp5 = self.visit(ctx.exp5()) 
         exp6 = self.visit(ctx.exp6())
         return BinaryOp(op,exp5,exp6)
Example #6
0
 def visitExp5(self, ctx: MCParser.Exp5Context):
     '''exp5: exp5 ( DIV | MUL | DIV_INT ) exp6 | exp6 ;'''
     if ctx.getChildCount() == 1:
         return self.visit(ctx.exp6())
     else:
         left = self.visit(ctx.exp5())
         right = self.visit(ctx.exp6())
         if ctx.DIV(): op = ctx.DIV().getText()
         elif ctx.MUL(): op = ctx.MUL().getText()
         else: op = ctx.DIV_INT().getText()
         return BinaryOp(op, left, right)