语法分析实验报告

语法分析实验报告

ID:11238499

大小:155.00 KB

页数:5页

时间:2018-07-10

语法分析实验报告_第1页
语法分析实验报告_第2页
语法分析实验报告_第3页
语法分析实验报告_第4页
语法分析实验报告_第5页
资源描述:

《语法分析实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、语法分析实验报告一.实验目的1.在语法分析器原理学习和词法分析器实验基础上,自行实现一个高级语言语法分析器,通过实验能够把原理和实现方法应用到如描述语言语法分析等词法分析器的设计中去。2.利用c语言编制递归下降分析程序,并对简单语言进行语法分析。二.实验原理1.待分析的简单语言的语法:0.txt:ghy.txt2.TEST语法规则:(1)::={}(2)::=

2、>

3、ε(3)::=intID;(4)::=

4、ε(5)::=

5、

6、

7、

8、(6)::=if()[else](7)

9、)::=while()(8)::=for(;;)(9)::=write(10)::=read(11)::={}(12)::=;

10、;(13)::=ID

11、=

12、(14)::=

13、(<

14、>

15、<=

16、>=

17、==

18、!=)(15)::={+

19、-)}(16)::={*

20、/))(17)::=()

21、ID

22、NUM三.实验步骤:1.用VC++编辑、编译和运行教材P221~230的语法分析程序。步骤如

23、下:先编辑主程序文件TESTmain.c(P230)、词法分析程序TESTscan.c(P218-220)和语法分析程序TESTparse.c(P221-230)这三个文件;然后,新建一个工程;接下来,将上述三个文件加入到该工程中,编译后运行。2.修改词法分析程序TESTscan.c和语法分析程序TESTparse.c这二个文件,使该程序能分析do语句和逻辑表达式(包括逻辑与&&、逻辑或

24、

25、和逻辑非!)。语法规则如下:(1)::=dowhile();

26、(2)::=ID=

27、(3)::=(!

28、){(&&

29、

30、

31、)}四.实验过程:1.用记事本存好待分析的简单语法程序0.txt,编译运行程序,结果如下完整的程序结果如下:2.修改程序,实现do语句和逻辑&&,

32、

33、,!,运行结果如下:完整的程序结果如下:五.实验心得:通过学习了语法分析,再经过实验,我对语法分析有了更深刻的认识和了解。递归下降分析法,是一种确定的自顶向下

34、分析技术,实现思想是对文法中分别代表一种语法成分的每个非终结符号编写一个子程序,完成非终结符号所对应的语法成分的分析任务。分析过程中调用一系列过程或函数,对源程序进行语法词法分析直到整个程序处理结束。六.附加程序修改原则:◇词法分析程序TESTscan.c修改如下:1、在开头把保留字的定义改为:#definekeywordSum11char*keyword[keywordSum]={"if","else","for","while","do","int","read","write","char","real",

35、"return"};2、增加一行用来定义分界符&和

36、:charsdword[8]="&'

37、:";3、在判断双分界符&&和

38、

39、时增加以下代码:elseif(ch==token[0]){if(token[0]=='<'

40、

41、token[0]=='>'){token[1]=ch;token[2]='';ch=getc(fin);}elseif(strchr(sdword,ch

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。