保留关键字的Ambuigity(?)

时间:2016-03-29 10:02:31

标签: ambiguity rascal

我有以下语法定义,包含两个保留关键字和两个类似语句:

module Test

// parse(#Statement,"do c") succeeds
// parse(#Statement,"define c") gives an ambiguity

start syntax Statement = 
    do: "do"  Identifier+
  | define: "define" Identifier+;

layout MyLayout = [\t\n\ \r\f]*;

lexical Identifier = ([a-z0-9] !<< [a-z][a-z0-9]* !>> [a-z0-9]) \ MyKeywords;

keyword MyKeywords =  "do" | "define";

然后

parse(#Statement,"do c")

解析罚款,类似案例

parse(#Statement,"define c")

含糊不清。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

对不起大家,案件已经解决,测试模块受到另一个导致歧义的模块的干扰。