我在Visual Studio下使用Antlr4,C#版本。好极了。
AFAIK(但我可能错了)听众和访客用于执行类似的任务。
那么,如何决定它们呢?或者我可以两者兼用吗?请注意,我发现的所有样本都使用了Listener OR Visitor,但不是两者......
答案 0 :(得分:1)
在我看来,他是一个很好的选择,因为你可以完全控制遍历
以下是本书的引用" The Definitive ANTLR 4 Reference"
侦听器和访问者机制之间的最大区别在于侦听器方法由ANTLR提供的walker对象调用,而访问者方法必须通过显式访问调用来访问其子节点。忘记在节点的子节点上调用visit()意味着不会访问这些子树
如果您将输入转换为较低级别,例如虚拟机指令,这两种模式都可能有用。