2012-04-02 84 views
0

我有這樣的語法EBNF符號:擴展BNF到BNF翻譯

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

,我想將它轉換爲BNF野牛使用它,但我得到轉變/減少錯誤,在此:

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

我想我誤解了沿途的東西。任何幫助?

由於

回答

3

如何

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

移位/減少誤差修改是由於重疊EXPR前綴。通過引入另一個定義,expr的解析變得毫不含糊。

+0

它解決。謝謝 – Nitrate 2012-04-02 15:15:09