编辑推荐
《flex与bison(中文版)》包括的主题有:
正则表达式工具无法处理的地址语法挤压。
生成编译器和解释器,并运用大范围的文本处理功能。
解释代码,配置文件或任何其他结构化的格式。
学习关键编程技术,包括抽象语法树和符号表。
用完整的示例代码实现一个完善的SQI语法。
使用新的功能,如纯(可重入)词法分析器(1exer)和语。
法分析器(parser)、功能强大的GLR分析器和c++的接口。
媒体推荐
“我很高兴看到John彻底详尽地重写这本经典书。他更新的示例和说明能够帮助老用户和新手摆脱模仿那些已经根深蒂固的lex和yacc。”
——Joel E.Denny bison维护人员
作者简介
Jobn Levine,Taughannock Networks的创始人,著有20余本技术书籍,其中包括《lex&yacc》和《qmail》,均为O’Reilly出版。
目录
前言
第1章 flex和bison简介
词法分析和语法分析
正则表达式和词法分析
文法与语法分析
二义性文法:并不多见
添加更多的规则
flex和bison与手写的词法分析器和语法分析器的对比
练习
第2章 使用flex
正则表达式
flex词法分析器中的文件i/o操作
读取多个文件
flex词法分析器的i/o结构
起始状态和嵌套输入文件
符号表和重要语汇索引生成器
c语言交叉引用
练习
第3章 使用bison
bison语法分析器如何匹配输入
移进/归约分析
bison语法分析器
基于抽象语法树的改进的计算器
移进/归约冲突和操作符优先级
一个高级计算器
使用高级计算器
练习
第4章 分析SQL
SQL概述
关系操作
使用SQL的三种方法
从SQL到逆波兰式(RPN)
词法分析器
语法分析器
SQL分析器的Makefile
练习
第5章 FIEX规范参考
flex结构规范
BEGIN
c++词法分析器
上下文相关性
定义(替换)
ECHO
输入管理
flex库
交互模式和批处理模式的词法分析器-
行号和yylineno
文字块
……
第6章 bison规范参考
第7章 二义性和冲突
第8章 错误报告和恢复
第9章 flex和bison进阶
附录 SQL语法分析器文法和交叉引用
术语表
文摘
版权页:
插图:
文字字符记号与第一章的版本相比,规则部分有两个重大改变。一个是规则现在使用文字字符(1iteral character)记号来表示操作符。我们并不需要为每个记号定义一个名字,相反,单引号引起的字符也可以作为记号,记号的ASCII值将成为记号的编号。按照惯例,文字字符记号用来代表具有相同字符的输入记号,例如,记号“+”代表了输入记号+,所以它们只是用在标点和操作符上面。除非你需要声明文字字符记号的类型,否则你不用显式地声明它们。另外一个改变是它为每个表达式创建了一个抽象语法分析器,而没有立即计算。在这一版的计算器中,我们为每个表达式创建抽象语法树,然后计算这个抽象语法树,打印结果,最后释放抽象语法树。我们调用newast来创建抽象语法树中的每个节点。每个节点都有一个操作类型,它们通常和记号名字一致。注意单目负号操作符创建了一个类型为H的节点,以便于区分它和双目减法操作符。
相关阅读:
更多图书资讯可访问读书人图书频道:http://www.reAder8.cn/book/