2012-04-02 2 views
0

У меня есть эта грамматика в EBNF нотации:Расширенная BNF для BNF перевода

expr -> expr (opt1 | opt2 | opt3) expr 

И я хочу, чтобы преобразовать его в BNF, чтобы использовать его в Bison, но я получаю сдвиг/свёртка ошибки в этом:

expr : expr opt1 expr | expr opt2 expr | expr opt3 expr 

Я предполагаю, что я неправильно понял что-то на этом пути. Любая помощь?

Благодаря

ответ

3

Как насчет

expr: expr optexpr expr 
optexpr: opt1 | opt2 | opt3 

сдвиг/свертка erros обусловлены перекрывающихся выраж префиксов. Введя другое определение, синтаксический анализ expr становится недвусмысленным.

+0

Это решение. благодаря – Nitrate