如何指示语法在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在界面中不生成它们?我实际上更愿意找到一种方法,以某种方式告诉语法哪些语法规则需要那些输入/退出方法,而其他所有语法规则都将被忽略。有可能吗?

解决方法

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