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)*;
给定以下语法(在 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)*;