给出以下语法(在ANTLR v3中):
test : value0 COMMA_KEYWORD value1 (COMMA_KEYWORD value2)*;
我们如何从ANTLR构建的AST树中排除(跳过)COMMA_KEYWORD(并且不使用写规则)?
答案 0 :(得分:1)
使用重写规则的替代方法是使用树构造运算符:
https://theantlrguy.atlassian.net/wiki/spaces/ANTLR3/pages/2687090/Tree+construction
您可以使用!
运算符从AST中省略令牌或子树:
test : value0 COMMA_KEYWORD! value1 (COMMA_KEYWORD! value2)*;