flex与bison(中文版)

flex与bison(中文版)

作者:Jobn Levine

出版社:东南大学出版社

出版年:2011-3

评分:7.8

ISBN:9787564126056

所属分类:行业好书

书刊介绍

作品目录

前言
第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章 Flex规范参考
Flex结构规范
BEGIN
C++词法分析器
上下文相关性
定义(替换)
ECHO
输入管理
Flex库
交互模式和批处理模式的词法分析器
行号和yylineno
文字块
单一程序中的多重词法分析器
编译词法分析器的选项
Flex词法分析器的可移植性
可重入词法分析器
正则表达式语法
REJECT
从yylex()返回值
起始状态
unput()
yyinput() yyunput()
yyleng
yyless()
yylex()和YY_DECL
yymore()
yyrestart()
yy_scan_string和yy_scan_buffer
YY_USER_ACTION
yywrap()
第6章 Bison规范参考
Bison语法结构
二义性和冲突
Bison程序的问题
C++语法分析器
%code块
结束标记
错误记号和错误恢复
继承属性($0)
词法反馈
文字块
文字记号
位置
%parse-param
Bison语法分析器的可移植性
优先级和结合性声明
递归规则
规则
特殊字符
%start声明
符号值
记号
可变语法和多重语法
多重语法分析器
y.output文件
Bison库文件
YYABORT
YYACCEPT
YYBACKUP
yyclearin
yydebug和YYDEBUG
YYERROR
yyerror()
yyparse()
YYRECOVERING()
第7章 二义性和冲突
指针模型和冲突
冲突类型
语法分析器状态
name.output的内容
归约/归约冲突
移进/归约冲突
复习name.output中的冲突
常见的冲突例子
IF/THEN/ELSE
你如何解决冲突?
IF/THEN/ELSE(移进/归约冲突)
嵌套循环(移进/归约冲突)
表达式优先级(移进/归约冲突)
总结
练习
第8章 错误报告和恢复
错误报告
错误恢复
Bison错误恢复
编译器错误恢复
练习
第9章 Flex和Bison进阶
纯词法分析器和纯语法分析器
GLR分析
C++语法分析器
练习
附录 SQL语法分析器文法和交叉引用
术语表
· · · · · ·

精彩摘录

calclist:/*nothing*/|calclistexpEOL{printf("=%d\n",$1);};

——引自第11页


双规则递归定式(two-rulerecursiveidiom)

——引自第18页

相关推荐

微信二维码