2012-05-18 89 views
1

采取以下伪规则:条件重写规则

rule: prefix? rest; 

我想重写基于前缀的外观AST。

如果没有前缀,我希望它被改写为rest

如果有一个前缀,我想它被改写为(PARENT prefix rest)

PARENT 
-prefix 
-rest 

换句话说,我希望做一个标记出现在AST,如果0或1的替代被发现。

[如何]可能吗?

回答

1

把它在两个不同的选择:

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