def visitExp7(self,ctx:MCParser.Exp7Context):
     if ctx.getChildCount() == 1:
         return self.visit(ctx.exp8())
     else:
         op = ctx.getChild(0).getText()
         body = self.visit(ctx.exp7())
         return UnaryOp(op, body)
 def visitExp7(self, ctx: MCParser.Exp7Context):
     #exp7: (SUB|NOT) exp7 | exp8;
     if ctx.getChildCount() == 2:
         if ctx.SUB():
             return UnaryOp(ctx.SUB().getText(), self.visit(ctx.exp7()))
         else:
             return UnaryOp(ctx.NOT().getText(), self.visit(ctx.exp7()))
     else:
         return self.visit(ctx.exp8())
 def visitExp7(self, ctx: MCParser.Exp7Context):
     if (ctx.getChildCount() == 2):
         return UnaryOp(ctx.getChild(0).getText(), self.visit(ctx.exp7()))
     return self.visit(ctx.exp8())
 def visitExp7(self, ctx: MCParser.Exp7Context):
     if ctx.getChildCount() == 2:
         return UnaryOp(ctx.getChild(0).getText(), self.visit(ctx.exp7()))
     else:
         return self.visit(ctx.indexexp())