《LEMON语法分析生成器》是由虞森林编写的完整版PDF书籍,深入浅出地介绍了LEMON工具的工作原理和使用方法。适合编程语言开发人员阅读参考。
本书通过解析一个LALR(1)语法分析生成器LEMON的源代码来帮助读者学习编译原理中的相关知识。全书共分为十一章,以主函数mmn()中执行流为主线,在讲解过程中按顺序逐个剖析每个函数的工作机制、涉及的数据结构及其相互之间的关联。
第一章对LEMON进行了总体介绍。
第二章通过一个具有变量功能和可重载操作符的桌面计算器实例展示如何使用LEMON开发应用程序。
第三章分析了LEMON处理命令行参数的方法。
第四章讨论了书中提到的各种数据结构以及它们初始化的过程。
第五章介绍了词法扫描过程,即从磁盘上的语法文件中提取信息并将其转换为内存中的各种数据结构。
第六章讲述了获取符号First集及建立优先级的步骤。
第七章讲解如何构建LR(0)分析器的状态和传播链表项目。
第八章则探讨了寻找各个语法规则Follow集合元素的方法。
第九章阐述在已有LR(0)分析器的基础上,通过添加先行符来创建LALR(1)语法分析器的过程与原理。
第十章是本书的核心内容,详细讨论了LEMON如何配合精心设计的lempar.c模板文件生成最终的C语言版LALR(1)类型语法解析器。
第十一章简要介绍了语法解析器内部函数调用和数组之间的关系、封装特性以及去除调试功能以减小程序体积的方法。
本书适合计算机专业高年级学生及研究生作为教材或参考书使用,同时也可为从事相关领域研究与开发工作的人员提供帮助。