Files
UNI-PROG3-CW2-DYOPL/Q1/Artefacts/RobotLangVisitorUser.py
T

36 lines
1.2 KiB
Python

from RobotLangVisitor import RobotLangVisitor
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