此外YACC还可以处理某些二义性文法的规则,我们在第7章中曾介绍过二义性文法在LR分析中的应用,YACC也给出了二义性文法终结符之间的优先关系和结合性的书写规定。对用户书写的二义性文法规则按其优先级和结合性自动生成相应的分析表,对于用优先级和结合性能解决的冲突,YACC不报告错误。当所给的条件仍不能解决冲突时才报错。 在第7章中曾介绍过二义性文法在LR分析中的应用,当给出了二义性文法终结符之间的优先关系和结合性的规定后,可能会解决LR项目集中的冲突,用二义性文法的LR分析和同样语言非二义性文法的LR分析相比可提高对输入串分析的速度,例如:表达式的二义性文法的LR分析速度比非二义性文法的LR分析速度要快的多。 |