为什么包含以下规则的语法会导致冲突?
Statement | IF {...} LP BoolExp RP %prec IFX Statement { ... }
| ...
IFX终端是解决悬空的标准技巧。我认为这在某种程度上是相关的。 删除第一个标记可消除冲突。
消息野牛输出是:
警告:由于冲突,规则在解析器中无用:$ @ 2:/ * empty * /
答案 0 :(得分:0)
@sarnold写道:
我希望这是相关且有用的:http://lists.gnu.org/archive/html/help-bison/2001-10/msg00011.html/
但是,SO仅弃用了网络链接的答案。所以我在这里总结一下。 该链接指向名单"由于@Hans Aberg的嵌入式操作" 导致的Shift减少错误。概括地说它建议:
解决此问题的最佳方法可能是收集语义 A和B生成的信息,然后在应用C或D时使用。