我在 ANTLR 邮件列表档案中问过这个问题,但没有得到回复,所以我会在这里尝试。
在树遍历期间删除节点/树是否有问题?我想找到任何特定的子树并摆脱它们。我以为这条规则会起作用...
attribute : ^(ATTRIBUTE ID ATTR_VALUE) -> ;
但我得到一个 NullPointerException。
此外,您能否编写通用规则来匹配具有一系列根标记的树?
tree : : ^(root attribute+ children+=.*) -> ^(root $children*);
fragment root : A | B;
我似乎一直在收到 EmptyRewriteExceptions :)