第11章 自底向上分析 (上)
第 09 章中,介绍了自底向上分析的基本方法和思路,自底向上分析的就是从给定的句子开始,不断的挑选出合适的产生式,将中间句子中的子串折叠为非终结符,最终折叠到起始符号。所以此方法的关键字为 折叠 ,难点在于如何挑选出合适的产生式,将最终句子折叠到起始符号。
自底向上分析法的解析力量比自顶向下分析法要强大的多,和自顶向下分析法相比,它可以解析更为复杂、更为广泛的语法。但自底向上分析法的构造过程也复杂的多,上一章中介绍的 LL(1) 法程序的手写难度不大,但自底向上分析法程序的手写难度却相当之大。幸运的是,目前有一些非常强大的分析器构造工具(如 bison ),可以将用户定义的语法规则转化成一个自底向上分析器,使得编写语法分析器变得非常简单。
本章和下一章将介绍典型的自底向上分析法——LR 分析法——的基本方法和步骤,然后在下下一章介绍如何使用 bison 来生成语法分析器。