def visitExp5(self, ctx:MPParser.Exp5Context): if ctx.getChildCount() == 3: return self.visit(ctx.expr()) elif ctx.ID(): return Id(ctx.ID().getText()) elif ctx.invoke(): return self.visit(ctx.invoke()) elif ctx.indexExpr(): return self.visit(ctx.indexExpr()) elif ctx.INTLIT(): return IntLiteral(int(ctx.INTLIT().getText())) elif ctx.REALLIT(): return FloatLiteral(float(ctx.REALLIT().getText())) elif ctx.BOOLLIT(): return BooleanLiteral(tobool(ctx.BOOLLIT().getText())) elif ctx.STRINGLIT(): return StringLiteral(ctx.STRINGLIT().getText())
def visitExp6(self, ctx: MPParser.Exp5Context): if ctx.op(): return self.visit(ctx.op()) else: return self.visit(ctx.expr())
def visitExp5(self, ctx: MPParser.Exp5Context): if ctx.getChildCount() == 1: return self.visit(ctx.exp6()) else: return ArrayCell(self.visit(ctx.exp6()), self.visit(ctx.expr()))