示例#1
0
 def visitExpr5(self, ctx: MCParser.Expr5Context):
     if ctx.ADD():
         return BinaryOp('+', self.visit(ctx.expr6()),
                         self.visit(ctx.expr5()))
     elif ctx.SUBNEG():
         return BinaryOp('-', self.visit(ctx.expr6()),
                         self.visit(ctx.expr5()))
     else:
         return self.visit(ctx.expr6())
示例#2
0
 def visitExpr5(self, ctx: MCParser.Expr5Context):
     if ctx.ADD():
         op = ctx.ADD().getText()
         left = self.visitExpr5(ctx.expr5())
         right = self.visitExpr6(ctx.expr6())
         return BinaryOp(op, left, right)
     elif ctx.SUB():
         op = ctx.SUB().getText()
         left = self.visitExpr5(ctx.expr5())
         right = self.visitExpr6(ctx.expr6())
         return BinaryOp(op, left, right)
     else:
         return self.visitExpr6(ctx.expr6())
示例#3
0
 def visitExpr5(self, ctx: MCParser.Expr5Context):
     if (ctx.getChildCount() == 1):
         return self.visit(ctx.expr6())
     else:
         op = ctx.getChild(1).getText()
         left = self.visit(ctx.expr5())
         right = self.visit(ctx.expr6())
         return BinaryOp(op, left, right)
示例#4
0
    def visitExpr5(self, ctx: MCParser.Expr5Context):
        def getOp(ctx):
            if (ctx.ADD()):
                return ctx.ADD().getText()
            if (ctx.SUB()):
                return ctx.SUB().getText()

        return self.visit(
            ctx.expr6()) if ctx.getChildCount() == 1 else BinaryOp(
                getOp(ctx), self.visit(ctx.expr5()), self.visit(ctx.expr6()))
示例#5
0
 def visitExpr5(self, ctx:MCParser.Expr5Context):
     # expr5 : expr5 (ADD | SUB) expr6 | expr6;
     if ctx.getChildCount() == 3:
         return BinaryOp(ctx.getChild(1).getText(),self.visit(ctx.expr5()),self.visit(ctx.expr6()))            
     else:
         return self.visit(ctx.expr6())