我尝试按照Antlr4参考书的指导,在Python3目标下进行编程,但是在计算器示例中卡住了。在Antlr4文档中提到:
Java代码访问者有一个
还是我错过了某些说明?
但我还没有搞明白。AntLR的Python实现尽可能接近Java实现,因此您不应该难以将示例适应Python
Java代码访问者有一个
.visit
方法,在Python中我没有这个方法。我认为这是因为在Java中,visit方法具有令牌的参数重载。在Python中,我们有visitProg()
、visitAssign()
、visitId()
等等。但现在我不能写value = self.visit(ctx.expr())
,因为我们不知道要调用哪个visit?还是我错过了某些说明?
self.visit()
,则可能需要编写某种调度程序,根据ctx.expr()
的运行时类型调用正确的.visitX()
。 - Onur