2016-03-29 2 views
0

У меня есть следующее определение синтаксиса с двумя зарезервированными ключевыми словами и два аналогичных утверждениями (?):Ambuigity с зарезервированным ключевым словом

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") 

дает двусмысленность.

Что делать неправильно?

ответ

0

Извините, ребята, корпус был разрешен, тестовому модулю был помечен другой модуль, который вызвал двусмысленность.

+0

лучше удалить весь вопрос тогда! – jurgenv

Смежные вопросы