Antlr4我能听听我自己的访客吗? 我知道Antlr生成一个树遍历器,我可以将BaseListener子类化,以便在树遍历器遍历解析树中的关键项时执行操作 我知道我也可以创建自己的访问者,通过子类BaseVisitor以我自己的方式导航解析树

Antlr4我能听听我自己的访客吗? 我知道Antlr生成一个树遍历器,我可以将BaseListener子类化,以便在树遍历器遍历解析树中的关键项时执行操作 我知道我也可以创建自己的访问者,通过子类BaseVisitor以我自己的方式导航解析树,antlr,antlr4,Antlr,Antlr4,我可以让我的侦听器响应我自己的访问者吗?我想我发出了一个嘘声,不必要地将我的应用程序代码放在我的子类访问者中。 我现在认为访问者应该只访问,我的侦听器应该在我的应用程序代码中触发事件。 我想我的实现有点混乱 当然。您可以创建您想要的任何侦听器接口,然后创建一个向您的侦听器触发事件的访问者。然而,这是相当低效的。只要甩了你的访问者,让标准的tree walker fire事件发生在你的侦听器上:)谢谢Terence,我开始意识到使用我的访问者是完全多余的,因为对于侦听器,我仍然可以在解析树中向

我可以让我的侦听器响应我自己的访问者吗?
我想我发出了一个嘘声,不必要地将我的应用程序代码放在我的子类访问者中。 我现在认为访问者应该只访问,我的侦听器应该在我的应用程序代码中触发事件。
我想我的实现有点混乱

当然。您可以创建您想要的任何侦听器接口,然后创建一个向您的侦听器触发事件的访问者。然而,这是相当低效的。只要甩了你的访问者,让标准的tree walker fire事件发生在你的侦听器上:)

谢谢Terence,我开始意识到使用我的访问者是完全多余的,因为对于侦听器,我仍然可以在解析树中向上向下导航以收集“东西”,不是吗?是的。您可以随心所欲地导航,只需不改变树即可;)