1

采用以下伪规则:

rule: prefix? rest;

我想根据前缀的出现重写 AST。

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

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

PARENT 
-prefix
-rest

换句话说,如果找到 0 或 1 替代项,我想让令牌出现在 AST 中。

[如何]这可能吗?

4

1 回答 1

1

将其分为两个单独的选择:

rule
 : prefix rest -> ^(PARENT prefix rest)
 | rest        -> rest
 ;
于 2012-05-18T13:35:27.747 回答