![]() |
1
3
以下引自 this answer 以下内容:
A
声明这两个缩减都具有
你应该试着理解(并希望同意)我在第(2)项中的主张。作为一个开始的地方,考虑一下25号州,你已经把它包括在你的问题中了。在国家25中,唯一可能的减少是根据规则53(
这两种冲突都涉及到使用第53条规则可能减少的问题。 所以在州25如果 ( 是lookahead字符,语法允许
野牛通过比较
减少
(
显然,改变了约简的优先顺序
现在,我的主张是减少与 任何 语法冲突。这似乎有点奇怪,因为我看不到太多的语法,实际上我可能是错的。理论上,表中可能还有其他状态,其中包括项目:
还包括一些可能发生转变的项目,例如
对我来说这似乎不太可能。 通常,后缀操作符减少(函数调用和数组索引在概念上是后缀操作符)从不参与移位减少冲突,因为后缀操作符之后几乎没有可能的移位。如果有这样的移位,操作符将是中缀,而不是后缀。你可以想象一种语法,在这种语法中,运算符符号可以是中缀运算符和后缀运算符,类似于 - 可以是中缀或前缀。但事实证明,由于超出这个答案范围的原因,情况是不对称的。[注2]
回到最初的问题:我们已经看到,转移/减少冲突是在
减少
注意我改变了最后一个
笔记
|
![]() |
Kris · Flex-新行无法识别 7 年前 |
![]() |
omn_1 · yylineno为错误报告提供意外结果 7 年前 |
![]() |
lluisrojass · 为什么Yacc/野牛规则没有用? 7 年前 |
![]() |
gornvix · 分析多个文件时出现错误的lex状态 10 年前 |
![]() |
Jason Kleban · 语法规范解决移位/减少冲突 12 年前 |
![]() |
footy · 如何解决2+2和2++2冲突 12 年前 |
![]() |
KAction · Bison意外的标识符错误 12 年前 |