实验一词法分析实验报告_第1页
实验一词法分析实验报告_第2页
实验一词法分析实验报告_第3页
实验一词法分析实验报告_第4页
实验一词法分析实验报告_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一 词法分析一、实验目的通过设计编制调试一个具体的词法分析程序, 加深对词法分析原理的理解。 并掌握在对 程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。编制一个读单词过程, 从输入的源程序中, 识别出各个具有独立意义的单词, 即基本保 留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号 自身值。(遇到错误时可显示“ Error ”,然后跳过错误部分继续显示)二、实验要求使用一符一种的分法关键字、运算符和分界符可以每一个均为一种标识符和常数仍然一类一种三、实验内容功能描述:1、待分析的简单语言的词法(1)关键字:beginif then wh

2、ile do end(2)运算符和界符::= +* / = = =; ( ) #(3)其他单词是标识符( ID )和整型常数(NUM ),通过以下正规式定义ID=letter ( letter| digit ) *NUM=digit digit *(4 ) 空格由空白、制表符和换行符组成。空格一般用来分隔ID、NUM,运算符、界符和关键字,词法分析阶段通常被忽略。2、 各种单词符号对应的种别码单词符号,.种别吗*单词符号种别码117-atliciii1珈wild 2缶2弘斗emb1GUp10*=i24digit *11*25 j蠢卫ljj26-J*L W(口15蔚LgCl*程序结构描述:变量初

3、始化是调用seanner().字母拼字符串 I数其他四、实验结果后经词法分析输出如下输入 beg in x:=9: if x9 then x:=2*x+1/3; end #序列:(begin 1)(x10)(: 17)(=18)(911)(; 26)(if2) 如图 3 所示:1620313078150316112 121101017181( begin0 then x:=2*x+1/3; end#后经词法分析输出如下序列:(private 10)(x10)( : 17)(=18)(911)(; 26)(if2) 如图 4 所示:Pitsii put str* 艸二se- =9 ; If x

4、then x = -2*x*丄#3 事 endlf(i 叽 * ; 20. ca,f丄丄-丄Cll_3cat,;C, e-nd图4显然,private是关键字,却被识别成了标示符,这是因为图1中没有定义private关键字的种别码,所以把 private当成了标示符。后经词法分析输出如输入 private x:=9;if x0 then x:=2*x+1/3; end#下序列:(private 10)(x10)( : 17)(=18)(911)(; 26)(if2) 如图 5所示lKlc as-c sirnDuit; s=Oion m =;& ond-ffci,:=C2& .; CZIA, C

5、JLJLj., iL Fnen ClO-xy C13,*ClOxJci s,C11,1 C2t ,; Jiioir in mw 11erihcOca, U显然,没有在图一中定义种别,所以输出了“ Error in row 1! ”的报错信 息。五、词法分析程序的C语言程序源代码void scaner()/*共分为三大块,分别是标示符、数字、符号,对应下面的if else if 和else*/if(ch= a &ch= A &ch= 0 &ch= a &ch= A &ch=Z) tokenm+=ch; ch=progp+; tokenm+= 0 ; p-; syn= 10;for (n= 0;n

6、= 0 &ch= 0 &ch 32767 )syn=- 1;else switch (ch) / 其他字符case ) syn= 21; tokenm+=ch;else if (ch= = )syn= 22; tokenm+=ch; elsesyn= 23; p-;break ;case :m= 0;tokenm+=ch; ch=progp+; if (ch= = ) syn= 24; tokenm+=ch;elsesyn= 20; p-;break ;case : :m= 0 ;tokenm+=ch; ch=progp+; if (ch= = ) syn= 18; tokenm+=ch;el

7、sesyn= 17; p-;break ;case * :syn= 13 ;token 0 =ch; break ;case / :syn= 14 ;token 0 =ch; break ;case + :syn= 15 ;token 0 =ch; break ;case - :syn= 16 ;token 0 =ch; break ; case = :syn= 25 ;token 0 =ch; break ;case ; :syn= 26 ;token 0 =ch; break ;case ( :syn= 27 ;token 0=ch; break ;case ) :syn= 28 ;token 0=ch; break ;case # :syn= 0 ;token 0=ch; break ; case n :syn=- 2;break ;default : syn=- 1;break ;六、实验总结这个实验花费了一节课的时间, 通过本次试验

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论