- 19
- 0
- 约4.3千字
- 约 14页
- 2021-12-08 发布于天津
- 举报
word
word专业资料
词法分析器实验报告
实验目的:
设计、编制、调试一个词法分析子程序-识别单词,加深对词法分析原理的理 解。
功能描述:
该程序要实现的是一个读单词过程,从输入的源程序中,识别出各个具有独立 意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出 各个单词的部编码及单词符号自身值。(遇到错误时可显示“ Error !”,然后跳过
错误部分继续进行)
设计思想:
设计该词法分析器的过程中虽然没有实际将所有的状态转移表建立出来,但是
所用的思想是根据状态转移表实现对单词的识别。首先构造一个保留字表 ,然后,每 输入一个字符就检测应该进入什么状态,并将该字符连接到d串后继续输入,如此循 环,最后根据所在的接受状态以及保留字表识别单词。
符号表:
记号
类别
属性值
ws
-
-
const
保留子
1
var
保留子
1
call
保留子
1
beg in
保留子
1
if
保留子
1
while
保留子
1
do
保留子
1
odd
保留子
1
end
保留子
1
the n
保留子
1
procedure
保留子
1
=
运算符
2
运算符
2
=
运算符
2
运算符
2
运算符
2
=
运算符
2
*
运算符
2
+
运算符
2
-
运算符
2
/
运算符
2
:=
运算符
2
ide nt
标识符
3
nu mber
常数
4
(
分隔符
5
)
分隔符
5
5
分隔符
5
分隔符
5
分隔符
5
状态转换图:
①标识符及保留字:
letter or digitt
② nu mber:
other
other
③关系操作符:
(=,2)
(=,2)
word
word专业资料
(,2)
(,2)
(=,2)
④分隔符:
word
word专业资料
⑤算术运算符:
start
start
使用环境:
Windows xp 下的 visual C++6.0
程序测试:
in putl :
int a,b;
a=b+2;
in put2: while(a=0) do
7x=x+6.7E+23; end;
in put3:
beg in:
x:=9
if x0 the n x:=x+1; while a:=0 do b:=2*x/3,c:=a; end;
output1:
4,2
1,do
3,i nt
5,;
error line 3
3,a
2,=
5,,
output2:
3,x
3,b
1,while
2,+
5,;
5,(
4,6.7E+23
3,a
3,a
5,;
2,=
2,=
1,e nd
3,b
4,0
5,;
2,+
5,)
output3:
3,x
3,x
1,begi n
2,+
2,/
error line 1
4,1
4,3
3,x
5,;
5,,
2,:=
1,while
3,c
4,9
3,a
2 :=
J J ■
1,if
2,:=
3,a
3,x
4,0
5,;
2,
1,do
1,e nd
4,0
3,b
5,;
1,the n
2,:=
3,x
4,2
2 :=
J J ■
2,*
测试结果与预期结果一致
源程序代码:
#in cludestdio.h
#in cludestri ng.h
void mai n()
{
int i=O,j,k=O,state=1,f=O,l inenum=1;
char
a[11][10]={co nst,var,call,begi n,if,while,do,odd,e nd,the n,procedure};
char b,d[4O]={\O};
freope n(i nput.txt,r,stdi n);
freope n(output.txt,w,stdout);
b=getchar();
while(b!=EOF)/* 判断所输入字符是否为结束符 */
{
if(b== ||b==\n||b==\t)/* 滤过空格、换行等分隔符号 */
{ if(b=\n) linenu m++;
}
}
word
word专业资料
b=getchar();
else if((b=ab=z)||(b=Ab=Z))/* 识别标识符以及保留字 */
{
d[i++]=b;
b=getchar();
while((b=ab=z)||(b=Ab=Z)||(b=0b=9))
{
d[i++]=b;
b=getchar();
}
for(j=0;j11;j++)/* 查询保留字表确定该单词是否是保留字 */
{ if(strcmp(d,a[j])==O)
{ prin tf(1,%s\n,d);
k=1;
break;
}
}
if(k==O)/* 在保留字表中没有查到该单词,是标识符 */
prin tf(3,%s\n,d)
您可能关注的文档
最近下载
- 2025届宁夏回族自治区吴忠市盐池县高三下学期第一次模拟考试物理试卷.pdf VIP
- 浙江省中小学正高级教师职称评审表2017.pdf VIP
- 80辛集互联网搜索引擎在成功抓获漂白身份潜逃十二年绑架逃犯中的具体应用3542.pdf VIP
- 《故宫IP联名文创产品开发与销售总结》_国潮文创产品经理.docx
- 人教版(2019)必修第一册 Unit 3 Sports and Fitness Reading and thinking Living Legends 教学设计.pdf VIP
- 专题01+完形填空之综合解题技巧(复习课件)(全国通用)2026年高考英语二轮复习讲练测.pptx VIP
- 科技论文写作与学术规范120PPT课件.ppt VIP
- 《博物馆IP联名文创产品开发与销售总结》_国潮文创PM.docx VIP
- 银行各种安全风险案例汇编(一).doc VIP
- 保安队长个人年终述职报告范文5篇.docx VIP
原创力文档

文档评论(0)