【问题标题】:Extended BNF to BNF translation扩展 BNF 到 BNF 的翻译
【发布时间】:2012-04-03 01:44:31
【问题描述】:

我有这个 EBNF 表示法的语法:

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

我想将其转换为 BNF 以在 Bison 中使用它,但我在此遇到 shift/reduce 错误:

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

我想我在此过程中误解了一些东西。有什么帮助吗?

谢谢

【问题讨论】:

    标签: bison bnf ebnf


    【解决方案1】:

    怎么样

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

    移位/减少错误是由于 expr 前缀重叠造成的。通过引入另一个定义,对 expr 的解析变得明确。

    【讨论】:

      猜你喜欢
      • 2013-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 2012-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多