ANTLR:在构建 AST 树时排除(跳过)标记

ANTLR: exclude (skip) tokens when building AST tree

给定以下语法(在 ANTLR v3 中):

test : value0 COMMA_KEYWORD value1 (COMMA_KEYWORD value2)*;

我们如何从 ANTLR 构建的 AST 树中排除(跳过)COMMA_KEYWORD(并且不使用写入规则)?

使用重写规则的替代方法是使用树构造运算符:

https://theantlrguy.atlassian.net/wiki/spaces/ANTLR3/pages/2687090/Tree+construction

您可以使用 ! 运算符从 AST 中省略标记或子树:

test : value0 COMMA_KEYWORD! value1 (COMMA_KEYWORD! value2)*;