微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何指示语法在ANTLR侦听器中不生成某些方法?

如何解决如何指示语法在ANTLR侦听器中不生成某些方法?

我有这个语法:

foo : bar EOF;
bar : 'hello';

ANTLR生成的侦听器接口包含以下四个方法

public void enterFoo(final FooParser.LicenseContext ctx);
public void exitFoo(final FooParser.LicenseContext ctx);
public void enterBar(final FooParser.LicenseContext ctx);
public void exitBar(final FooParser.LicenseContext ctx);

我不需要其中两个:exitFoo()enterBar()。是否可以告诉ANTLR在界面中不生成它们?我实际上更愿意找到一种方法,以某种方式告诉语法哪些语法规则需要那些输入/退出方法,而其他所有语法规则都将被忽略。有可能吗?

解决方法

您不能抑制任何这些方法的生成,因为解析器希望在触发每个解析步骤的侦听器时它们就在那里。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。