《Lex与Yacc》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:John R.Levine等著;杨作梅,张旭东等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2003
  • ISBN:7111107217
  • 页数:375 页
图书介绍:本书对lex和yacc的重要主题提供了详尽的参考。对所有主要的lex和yacc的MS-DOS和UNIX版本,本书都进行了介绍,包括AT&Tlex和yacc、Berkeleyyacc、Berkeley/Gnuflex、Gunbison、MKSlex和yacc、AbraxasPCYACC等等。《lex与yacc》(第二版)是惟一一本专门介绍这两个重要的UNIX编程工具的书。这本新版本是完全的修订版,并以很多新的扩充示例代替了旧的示例。几个介绍性章节已经完全重写,还有一章专门介绍实现SQL语法,给出了有经验的程序员希望看到的各种细节。本书对lex和yacc的重要主题提供了详尽的参考。对所有主要的lex和yacc的MS-DOS和UNIX版本,本书都进行了介绍,包括AT&Tlex和yacc、Berkeleyyacc、Berkeley/Gnuflex、Gunbison、MKSlex和yacc、AbraxasPCYACC等等。◆“太棒了!我已经读完《lex与yacc》的第二版……总而言之,这是一件伟大的作品——这本书比第一版充实很多,详实而透彻。阅读的过程中,我经历了无数次的惊喜,心里总想‘可惜了,

前言 1

第一章 lex和yacc 9

最简单的lex程序 10

用lex识别单词 11

语法 23

运行lex和yacc 31

lex和手写的词法分析程序 32

练习 35

第二章 使用lex 36

正则表达式 37

单词计数程序 42

分析命令行 48

C源代码分析程序 55

小结 58

练习 59

第三章 使用yacc 60

语法 60

移进归约分析 62

yacc语法分析程序 65

词法分析程序 68

算术表达式和歧义性 69

变量和有类型的标记 74

符号表 77

函数和保留字 81

用make构建语法分析程序 88

小结 89

练习 89

第四章 菜单生成语言 91

MGL的概述 91

开发MGL 93

构建MGL 103

屏幕处理 109

结束 112

MGL代码示例 115

练习 120

第五章 分析SQL 122

SQL的要点概述 123

语法检查程序 127

语法分析程序 133

嵌入式SQL 158

练习 163

第六章 lex规范参考 164

lex规范的结构 164

BEGIN 166

程序错误 166

字符变换 168

上下文相关 169

定义(替换) 171

ECHO 172

包含操作(文件的逻辑嵌套) 172

从字符串中输入 174

input() 176

内部表(%N声明) 177

lex库 178

行号和yylineno 179

文字块 179

一个程序中的多个词法分析程序 179

output() 184

lex词法分析程序的可移植性 185

正则表达式语法 187

REJECT 190

从yylex()中返回值 190

起始状态 191

unput() 193

yyinput()、yyoutput()、yyunput() 194

yyleng 194

yyless() 194

yylex() 195

yymore() 196

yytext 197

yywrap() 199

第七章 yacc语法参考 200

yacc语法的结构 200

动作 201

歧义和冲突 204

yacc中的程序错误 205

结束标记 208

错误标记和错误恢复 208

%ident声明 209

继承的属性($0) 209

词汇的反馈 211

文字块 212

文字标记 213

yacc语法分析程序的可移植性 213

优先级、结合性和操作符声明 215

递归规则 217

规则 219

特殊字符 220

开始声明 221

符号值 222

标记 223

%type声明 226

%union声明 226

变体和多重语法 227

y.output文件 232

yacc库 233

YYABORT 234

YYACCEPT 235

YYBACKUP 235

yyclearin 235

yydebug和YYDEBUG 236

yyerrok 237

YYERROR 237

yyerror() 237

yyparse() 238

YYRECOVERING() 239

第八章 yacc歧义和冲突 240

指针模型和冲突 240

冲突的普通示例 253

如何修复冲突 258

小结 266

练习 266

第九章 错误报告和恢复 267

错误报告 267

错误恢复 272

练习 276

附录一 AT&T lex 279

附录二 AT&T yacc 287

附录三 Berkeley yacc 297

附录四 GNU bison 303

附录五 flex 306

附录六 MKS lex和yacc 318

附录七 Abraxas lex和yacc 320

附录八 POSIX lex和yacc 322

附录九 MGL编译程序代码 325

附录十 SQL分析程序代码 341

参考文献 369

词汇表 371