编译原理实验报告--递归子程序

编译原理实验报告--递归子程序

ID:20466561

大小:191.00 KB

页数:10页

时间:2018-10-12

编译原理实验报告--递归子程序_第1页
编译原理实验报告--递归子程序_第2页
编译原理实验报告--递归子程序_第3页
编译原理实验报告--递归子程序_第4页
编译原理实验报告--递归子程序_第5页
资源描述:

《编译原理实验报告--递归子程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、姓名:尹莉学号:E31314022专业:13级网络工程语法分析器1一、实现方法描述所给文法为G[E];E->TEZEb+TE'

2、空T->FTZr-〉*FT'

3、空F->i

4、(E)递归子程序法:首先计算出五个非终结符的first集合follow集,然后根据五个产生式定义了五个函数。定义字符数组vocabulary来存储输入的句子,字符指针ch指向vocabulary。从非终结符E函数出发,如果首字符属于E的first集,则依次进入T函数和E'函数,开始递归调用。在每个函数中,都要判断指针所指字符是否属于该非终结符的first集,属于则根据产生式进入下一个函数进行调用

5、,若first集中存空字符,还要判断是否属于该非终结符的follow集。以分号作为结束符。二、实现代码头文件shiyan3.h#include#include#includeusingnamespacestd;#definenum100charvocabulary[num];char*ch;voidjudge_E();voidjudge一EE(>;voidjudge一T();voidjudge_TT();voidjudge_F();源文件#include"shiyan3.h"voidjudge_E(){if(*

6、ch==';'){cout<<"该句子符合此文法!"«endl;inta=0;cout«"按1结朿程序"《endl;cin»a;if(a==l)exit(O);}else

7、{(*^=='('

8、

9、*ch==T){judge_T();judge_EE();}else{cout<<"该句子不匹配此文法!"«endl;inta=0;voidjudge_EE(){if(*ch==';'){cout«"该句子符合此文法!H«endl;inta=0;cout<<"按1结朿程序"《endl;cin»a;if(a==l)exit(O);}if(*ch=='+,){ch++;jud

10、ge_T();judge_EE();}elseif(*ch==

11、#

12、

13、

14、*ch==')

15、)return;else{cout<<"该句子不匹配此文法!"«endl;inta=0;cout<<"按1结束程序"<

16、

17、*ch==T)judge_F();judge_TT();}else{cout

18、<〈"该句子不匹配此文法!"«endl;inta=0;cout<<"按1结束程序"《endl;cin»a;if(a==l)exit(O);}}voidjudge_TT(){if(*ch==';'){cout<<"该句子符合此文法!H«endl;inta=0;cout«"按1结束程序"《endl;cin»a;if(a==l)exit(O);}if(*ch=='*'){ch++;judge_F();judge_TT();}elseif(*ch==T

19、

20、*ch=='+,

21、

22、*ch==,#1)return;else{cout<〈"该句子不匹配此文法!"«endl;int

23、a=0;voidjudge_F(){if(*ch==*;'){cout<<"该句子符合此文法!"«endl;inta=0;cout<<"按1结束程序"《endl;cin»a;if(a==l)exit(O);}if(*ch==,(,){ch++;judge_E();if(*ch==T){ch++;}else{cout<<"该句子不匹配此文法!*'«endl;inta=0;cout<<"按1结束程序"<

24、文法!"<

25、*cout<<"话•输入一个句子:"«endl;cin.getline(vocabulary,15);ch=vocabulary;judge_E();cout«endl;GOUt<<"**************木***木*****Ml,再见!木氺本木本*木氺木*氺本本木

26、氺木木本氺木本本木氺本氺

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

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

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