from antlr4 import * if "." in __name__: from .RobotLangParser import RobotLangParser else: from RobotLangParser import RobotLangParser class RobotLangVisitorUser(RobotLangVisitor): def __init__(self, student_id="2320390"): self.student_id = student_id def visitMoveStat(self, ctx): val = ctx.NUMBER().getText() print(f"{self.student_id} is moving by {val}.") return self.visitChildren(ctx) def visitGrabStat(self, ctx): print(f"{self.student_id} is grabbing.") return self.visitChildren(ctx) def visitReleaseStat(self, ctx): print(f"{self.student_id} is releasing.") return self.visitChildren(ctx) def visitWaitStat(self, ctx): val = ctx.NUMBER().getText() print(f"{self.student_id} is waiting for {val}.") return self.visitChildren(ctx) def visitLogStat(self, ctx): val = ctx.STRING().getText() print(f"{self.student_id} is logging: {val}.") return self.visitChildren(ctx) def visitRepeatStat(self, ctx): times = int(ctx.NUMBER().getText()) for _ in range(times): # Visit all statements inside the repeat block for stat_ctx in ctx.stat(): self.visit(stat_ctx) return None del RobotLangParser