ANTLR:构建AST树时排除(跳过)令牌

时间:2019-08-09 15:02:01

标签: antlr antlr3

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

test : value0 COMMA_KEYWORD value1 (COMMA_KEYWORD value2)*;

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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