我知道您可以使用@members
部分为antlr4解析器定义成员。是否有类似的定义BaseListener / BaseVisitor生成的类的默认实现?默认实现 - 访问者调用visistChildren(),监听器不执行任何操作。
我问的原因是因为我目前正在实现接口的监听器和访问者版本,所以我可以比较性能,他们都将调用转发给一个辅助类,以非常类似的方式执行实际工作:
@Override
public Boolean visitExpression1(@NotNull FilterParser.Expression1Context ctx) {
return evaluationHandler.eval(ctx);
}
@Override
public Boolean visitExpression2(@NotNull FilterParser.Expression2Context ctx) {
return evaluationHandler.eval(ctx);
}
...
如果我能以某种方式在语法文件中指定它,那将是很好的。
谢谢!
答案 0 :(得分:1)
创建一个继承BaseListener
的类,将其称为MyBaseListener
,在那里添加你的东西并继承这个新类。