没有合适的资源?快使用搜索试试~ 我知道了~
首页C##词法分析实验(内附程序)
资源详情
资源评论
资源推荐

实
验
报
告
班级:
姓名:

词法分析器
(一) 需求分析
编译程序的第一阶段是词法分析,为了能把输入的字符串进行扫描和分解,识别
出各种类型的单词符号,我用 C++语言设计了一个简单词法分析器,分析 C++语
言单词的子集(包括常用关键字、标识符、常数、算符、界符等)。
(二) 概要设计
1. 该程序能识别的单词符号及类别说明表
单词符号 类型 值
break
关键字
break
case
关键字
case
char
关键字
char
continue
关键字
continue
do
关键字
do
default
关键字
default
else
关键字
else
oat
关键字
oat
long
关键字
long
if
关键字
if
int
关键字
int
return
关键字
return
short
关键字
short
switch
关键字
switch
void
关键字
void
while
关键字
while
标识符 标识符 单词
整数 常数 二进制代码
=
算符
=
+
算符
+
*
算符
*
( 界符 (
) 界符 )
, 界符 ,
; 界符 ;
2. 状态转换图

3. 数据结构
定义了一个 Analyzer 类
class Analyzer{
public:
Analyzer(); //构造函数 ~Analyzer(); //析构函数
int IsLetter(char ch); //判断是否是字母,是则返回 1,否则返
回 0。
int IsDigit(char ch); //判断是否为数字,是则返回 1,否则返回
0。
int IsSpace(char ch); //判断是否为空白符(空格、换行、制表符),
是则返回 1,否则返回 0。
void GetChar(char *ch); //将下一个输入字符读到 ch 中。
void GetBC(char *ch); //检查 ch 中的字符是否为空白,
若是,则调用 GetChar 直至 ch 进入一个非空白字符。
void Concat(char *strToken, char *ch); //将 ch 中的字符连接
到 strToken 之后。
int Reserve(char *strToken); //对 strToken 中的字符串查找保
留字表,若是一个保留字返回它的数码,否则返回 0。
void Retract(char *ch) ; //将搜索指针器回调一个字符位置,将
ch 置为空白字符。
剩余10页未读,继续阅读















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0