BUAACT-Chap03-词法分析
第三章 词法分析
3.1 词法分析程序的功能及实现方案
3.1.1 词法分析的功能
- 根据词法规则识别及组合单词,进行词法检查;
- 对数字常数完成数字字符串到(二进制)数值的转换;
- 删去空字符和注解。
3.1.2 实现方式
- 词法分析单独作为一遍
- 词法分析程序作为单独的子程序(一遍扫描)
3.2 单词的种类及词法分析程序的输出形式
单词的种类:
- 保留字:begin、end、for、do……
- 标识符
- 常数:无符号数、布尔常数、字符串常数
- 分界符:+、-、*、/
词法分析的输出形式指单词的内部形式:
单词类别 | 单词值 |
---|---|
整形 | 58 |
保留字 | 'for' |
- 单词类别:表示单词的种类,可用整数编码或记忆符表示;
- 单词值:不同的单词有不同的值。
几种常用的单词内部形式:
- 按单词种类分类;
- 保留字和分界符采用一符一类;
- 标识符和常数的单词值可为指示字(指针值)。
方案一、按单词种类分类
单词名称 | 类别编码 | 单词值 |
---|---|---|
标识符 | 1 | 内部字符串 |
无符号常数(整) | 2 | 整数值 |
无符号浮点数 | 3 | 数值 |
布尔常数 | 4 | 0 或 1 |
字符串常数 | 5 | 内部字符串 |
保留字 | 6 | 保留字或内部编码 |
分界符 | 7 | 分界符或内部编码 |
方案二、保留字和分界符采用一符一类
单词名称 | 类别编码 | 单词值 |
---|---|---|
标识符 | 1 | 内部字符串 |
无符号常数(整) | 2 | 整数值 |
无符号浮点数 | 3 | 数值 |
布尔常数 | 4 | 0 或 1 |
字符串常数 | 5 | 内部字符串 |
BEGIN | 6 | |
END | 7 | |
FOR | 8 | |
DO | 9 | |
…… | …… | …… |
: |
20 | |
+ |
21 | |
* |
22 | |
, |
23 | |
( |
24 | |
…… | …… | …… |
3.3 正则文法和状态图
3.3.1 左线性文法状态图的画法
利用状态图可以分析和识别字符串是否符合文法。
3.4 词法分析程序的设计与实现
BUAACT-Chap03-词法分析
https://onlyar.site/2022/09/12/BUAACT-Chap03/