我想从antlr4的解析树中排除某些标记。
假设我有这个定义:
assignStatement: assignable EQ expression EOS;
EQ: '=';
EOS: ';';
生成的解析树包含assignable
、EQ
、expression
和EOS
作为assignStatement
的子项。有什么方法可以摆脱这里的EQ
和EOS
,因为我只需要在解析时将它们用于匹配目的?
ANTLR 4 不会从解析树中省略匹配的终端。虽然您的应用程序不需要访问这些令牌,但我们的经验是,使用以前编写的语法的新应用程序经常需要访问早期应用程序不需要的元素。通过在解析树中包含所有元素,我们提前考虑了这种情况,以提高使用 ANTLR 4 的应用程序的长期可维护性。