扩展BNF到BNF翻译

时间:2012-04-02 14:52:38

标签: bison bnf ebnf

我在EBNF表示法中有这个语法:

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

我想将它转换为BNF以便在Bison中使用它,但我在这里得到了shift / reduce错误:

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

我想我在路上误解了一些东西。有什么帮助吗?

由于

1 个答案:

答案 0 :(得分:3)

怎么样

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

shift / reduce错误是由重叠的expr前缀引起的。通过引入另一个定义,expr的解析变得明确。