条件重写规则

时间:2012-05-18 00:55:38

标签: antlr

采取以下伪规则:

rule: prefix? rest;

我想根据前缀的外观重写AST。

如果没有前缀,我希望将其重写为rest

如果有前缀,我希望将其重写为(PARENT prefix rest)

PARENT 
-prefix
-rest

换句话说,如果找到0或1替代,我想在AST中出现一个标记。

[怎么样]可能?

1 个答案:

答案 0 :(得分:1)

将它分为两​​个不同的选择:

rule
 : prefix rest -> ^(PARENT prefix rest)
 | rest        -> rest
 ;