2012-05-18 87 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 
;