考虑以下表达语法。用于表达计算的语义规则在每个语法产生的旁边都有说明。
E → number E.val = number. val
| E '+' E E(1).val = E(2).val + E(3).val
| E '×' E E(1).val = E(2).val × E(3).val
假定解决了此问题的(a)部分中的冲突,并根据给定的语法生成了LALR(1)解析器,用于解析算术表达式。考虑表达式3×2 +1。生成的解析器实现什么优先级和关联性?
(A)平等的优先权和左联想性;表达式的计算结果为7
(B)平等的优先权和权利结合性;表达式的计算结果为9
(C) ‘×’的优先级高于’+’的优先级,并且两个运算符都保持关联;表达式的计算结果为7
(D) “ +”的优先级高于“×”的优先级,并且两个运算符都保持关联;表达式的计算结果为9答案: (B)
说明:答案是B,因为产品属于同一个非终端产品,并且由于YACC通过递减归结来解决,所以关联性将是正确的关联性。这个问题的测验