递归下降分析设计

递归下降分析设计

ID:44671410

大小:286.41 KB

页数:8页

时间:2019-10-24

递归下降分析设计_第1页
递归下降分析设计_第2页
递归下降分析设计_第3页
递归下降分析设计_第4页
递归下降分析设计_第5页
资源描述:

《递归下降分析设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验题目:算术表达式递归下降分析程序设计实验内容:编程实现给定算术表达式的递归下降分析器。算术表达式文法如下:ETE+TITTTT*FIFFT(E)Ii实验设计:(1)首先,将文法改写为LL(1)文法LL(1)文法如下:ETTE1E1T+TE1I£TTFT1TlfFTlIeFT(E)li(2)其次,要用到的非终结符的FOLLOW集:FOLLOW(El)={},#},FOLLOW(Tl)={+,},#}(3)然后,为每一个非终结符,构造相应的递归过程,过程的名字表示规则左部的非终结符;过程体按规则右部符号串的顺序编写。(4)文法编程规则:①当遇到终结符aII寸,则编写语句if(

2、当前读来的输入符号二二a)读下一个输入符号②当遇到非终结符A时,则编写语句调用A()③当遇到»规则时,则编写语句if(当前读来的输入符号不屈于FOLLOW(A))error()④当某个非终结符的规则有多个候选式时,按LL(1)文法的条件能惟一地选择一个候选式进行推导源程序代码#includeusingnamespacestd;charsym;charj[128];inti=0;voidE();voidEl();voidT();voidT1();voidF();voidinput();〃输入表达式函数voidadvance();〃读取下一个字符函数voide

3、rror();〃出错处理函数voidmain(){for(intk=O;;k++){input();advance();E();if(sym==^#^)cout«"表达式属于该文法!"«endl;elsecout«H表达式不属于该文法!"«endl;i=0;}}voidE(){T();El();}voidE1(){if(sym=='+,)advance();T();El();elseif(sym!=)'&&sym!=*#'){error();exit(O);}voidT(){F();Tl();}voidTl(){if(sym==*){advance();F();Tl();}e

4、lseif(sym!=*4-'&&sym!=,)'&&sym!=*#'){error();exit(O);}}voidF(){if(sym=='('){advance();E();if(sym==,)*)advance();else{error();exit(O);}elseif(sym=='i*)advance();else{error();exit(O);}}voidinput(){cout«"请输入表达式:"vvendl;cin»j;}voidadvance(){sym=j[i];i卄;}voiderror(){coutvv”表达式不属于该文法!H«endl;}测试用例

5、:(1)当表达式符合文法产生式FTi时(2)当表达式符合文法产生式FT(E)时cT*C:VDocwientsandSettingsAdBinistrator^面递归下降分析法Debugj§

6、fi下降分.

7、请输入表达式:#裹达式属于该文法?请输入表达式:#I表达式不属于该文法?Pressanykeytocontinue,!□!x

8、(4)当表达式符合文法产生式i*(i)吋ci*C:DocuaentsandSettingsVAdaiiiistrator面递归下降分祈法Debug递归下降分.犢输入表达式:表执式属于该文法?请输入表达式:表达式不属于该

9、文法?Pressanykeytocontimie(3)当表达式符合文法产生式i+(i)时-

10、q

11、x

12、(1)当表达式符合文法产生式i+i时ca*C:DociuientsandSettingsAdainistrator桌面递归下降分析法Debug递归下降分析法.

13、请输入表达式:i*i#表达式属于该文法?情输入表达式:i+i+itt表达式属于该文法?情输入美达无展达式不属于该文法?Pressanykeytocontinue(5)当表达式符合文法产生式i*i时ca*C:DocuBentsandSettingsVAdainistratorV桌面'谨归下降分析法Ddbu讥

14、谨归下降分析.犢输入表达式:i*i#表送或属于该文法?情输入美在丸:袅达式属于该文法?情输入美送丸展达式不属于该文法?[Pressanykeytocontinue(6)当表达式符合文法产生式i+i*i时c:Docu*entsandSettingsAdainistrator桌面'谨归下降分析法Debugj§^fi下降分析•・X

15、请输入表达式:i+i*itt表达式属于该文法?请输入表达式:i+i+i*i#表达式属于该文法?请输入表达式:i*i+i*i*i*i*i#表达式属于该文法?请输入表达式:

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

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

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