def visitOperand(self, ctx:MCParser.OperandContext): if (ctx.literals()): return self.visit(ctx.literals()) if (ctx.ID()): return Id(ctx.ID().getText()) if (ctx.func_call()): return self.visit(ctx.func_call()) if (ctx.sub_exp()): return self.visit(ctx.sub_exp()) return self.visit(ctx.index_exp())
def visitOperand(self, ctx: MCParser.OperandContext): if ctx.INTLIT(): return IntLiteral(int(ctx.INTLIT().getText())) elif ctx.FLOATLIT(): return FloatLiteral(float(ctx.FLOATLIT().getText())) elif ctx.BOOLLIT(): return BooleanLiteral( bool(True) if ctx.BOOLLIT().getText() == "true" else bool(False)) elif ctx.STRINGLIT(): return StringLiteral(str(ctx.STRINGLIT().getText())) elif ctx.exp(): return self.visit(ctx.exp()) elif ctx.func_call(): return self.visit(ctx.func_call()) else: return Id(ctx.ID().getText())