3.1对词法分析器的要求
一、单词符号
语言中具有独立意义的最小的语法符号
单词的种类:
基本字 if...else这种
标识符 起名来表示变量名、函数名
常数
运算符
界符 ; {} () , 这种
二、单词的表示形式
常常用二元式来表示 <单词种别,单词符号的属性值>
单词种别
(1)关键字,运算符,界符
一字一种编码(处理起来方便?)
(2)常数
按类型分别给出编码 整形 布尔型
(3)标识符
统归一种,只给一个编码
若一个种别只包含一个符号,种别编码可以代表
若一个种别包含多个符号,需要用种别编码+属性值来区分
单词符号的属性信息
属性值的表示方法:
(1)基本字,运算符,界符 只给出种别编码
(2)常数 标准二进制表示
(3)标识符 字符串编码或对应的符号表项地址
3.2词法分析器的设计
一、词法分析器的结构
1、输入缓冲区。、预处理子程序
(1)输入源程序文本,放入输入缓冲区中,词法分析工作可在这个输入缓冲区中工作
(2)剔除无用的空白,跳格(TAB),回车,换行等编辑性字符;若空白符号为单词符号的界符,就将若干空白和并为1个
(3)剔除注释行,比如/*…*/
(4)源程序的出错列表打印
(5)将预处理好的子程序放到扫描缓冲区中
2、扫描缓冲区、扫描器
(1)扫描缓冲区
设两个半区,可互补使用
设两个指针
起点指针:指出正在识别单词起点位置
搜索指针:向前搜索以寻找单词终点
(2)扫描器:扫描缓冲区,直接进行单词的识别
三、单词符号的识别
1. 超前搜索
在单词识别的过程中,通过向前多读几个符号的形式,准确的进