当前位置:首页 > 工业技术
LEMON语法分析生成器 LALR 1 类型 源代码情景分析
LEMON语法分析生成器 LALR 1 类型 源代码情景分析

LEMON语法分析生成器 LALR 1 类型 源代码情景分析PDF电子书下载

工业技术

  • 电子书积分:14 积分如何计算积分?
  • 作 者:虞森林编著
  • 出 版 社:杭州:浙江大学出版社
  • 出版年份:2006
  • ISBN:7308048144
  • 页数:405 页
图书介绍:本书通过对LEMON语法生成器的代码分析,介绍编译原理中的 LALR(1)类型的语法分析。全书分为介绍 LEMON ,设计一个计算器,处理命令行输入,初始化 LEMON,语法扫描和语法要素内部表示,计算LR(0)分析器等11章。
《LEMON语法分析生成器 LALR 1 类型 源代码情景分析》目录

第1章 介绍LEMON 1

1.1 编译原理的由来和发展 1

1.2 LEMON简介 4

1.3 命令行中各个选项 7

1.4 语法分析器的界面和工作过程 8

1.5 与YACC和BISON的不同之处 12

1.6 语法文件的语法 12

1.7 特殊申明符 17

1.8 语法分析过程的错误恢复策略 25

第2章 设计计算器 27

2.1 最简陋计算器 27

2.2 使用自定义的数据类型——结构 35

2.3 语法分析器的状态和动作 39

2.4 语法分析的动作记录 44

2.5 比较完善的计算器 47

2.6 如何释放符号占用的内存空间 56

2.7 具有变量功能的计算器 58

2.8 具有函数功能的计算器 65

2.9 添加带两个参数的函数功能以及让函数能够重载 71

2.10 计算器的全部源代码 75

第3章 处理命令行输入 85

3.1 函数调用关系 85

3.2 内容概述 85

3.3 如何阅读分析LEMON源程序 86

3.4 与命令行有关变量、数组的申明和赋值 87

3.5 命令行选项错误输入时的处理 89

3.6 命令行带参数选项的处理 94

3.7 提示正确参数输入形式 98

第4章 初始化LEMON 105

4.1 函数调用关系 105

4.2 内容概述 106

4.3 LEMON程序的“全局”变量 106

4.4 启用“符号之家”的Strsafe_init函数 111

4.5 启用符号表的Symbol_init函数 114

4.6 符号(symbol)结构 116

4.7 启用状态表的State_init函数 118

4.8 状态(state)数据结构 120

4.9 项目(config)数据结构 121

4.10 产生式(rule)数据结构 122

4.11 动作(action)数据结构 123

4.12 一些变量的初始化 124

4.13 装配和安置符号 127

4.14 检测符号的安置 137

第5章 词法扫描和语法要素内部表示 141

5.1 函数调用关系 141

5.2 内容概述 142

5.3 词法处理的主角 142

5.4 词法分析专用的数据结构(pstate) 143

5.5 读入整个语法文件 146

5.6 打印出错信息函数 148

5.7 处理条件编译 155

5.8 分析字符流和裁成记号流 160

5.9 记号的语法分析 167

5.10 文法符号计数、排序 186

5.11 重现语法文件 189

第6章 符号的First集 193

6.1 函数调用关系 193

6.2 内容概述 193

6.3 计算优先级 194

6.4 找出符号的First集 196

第7章 计算LR(0)分析器 203

7.1 函数调用关系 203

7.2 内容概述 204

7.3 计算LR(0)分析器的主角 205

7.4 项目表的初始化 207

7.5 确认开始符号 209

7.6 计算第一状态的基本项目集 211

7.7 寻找LR(0)分析器第一个状态 218

7.8 基本项目的闭包运算 226

7.9 项目传播链表 233

7.10 建立第一状态 235

7.11 寻找LR(0)的所有状态 242

第8章 符号的Follow集 253

8.1 函数调用关系 253

8.2 内容概述 253

8.3 颠倒项目传播链的次序 254

8.4 找出符号的Follow集 255

9.1 函数调用关系 259

第9章 计算LALR(1)分析器 259

9.2 内容概述 260

9.3 装配动作链表 260

9.4 压缩动作链表 270

9.5 报告动作链表 274

第10章 生成LALR(1)语法分析器 285

10.1 函数调用关系 285

10.2 内容概述 286

10.3 生成语法分析器的主角 287

10.4 “转运承载”数据结构(acttab) 287

10.5 模板文件 289

10.6 从模板文件中拷贝代码 295

10.7 头文件 297

10.8 定义分析器中各种数据类型 303

10.9 二维数组线性化和压缩 315

10.10 计算和生成动作数组 320

10.11 输出语法分析器的各数组 336

10.12 移进、归约和接受的操作处理 344

10.13 产生式文法符号向语法分析栈元素的转换 373

10.14 出错与接受的操作处理 381

10.15 语法分析器动作分析 385

10.16 打印头文件和显示处理结果 395

第11章 语法分析器的一些特性 399

11.1 语法分析器中函数和数组调用关系 399

11.2 语法分析器的封装性 400

11.3 条件编译语句块 401

主要参考文献 405

返回顶部