编译原理语法分析总结

编译原理语法分析总结

ID:30365190

大小:19.57 KB

页数:12页

时间:2018-12-29

编译原理语法分析总结_第1页
编译原理语法分析总结_第2页
编译原理语法分析总结_第3页
编译原理语法分析总结_第4页
编译原理语法分析总结_第5页
资源描述:

《编译原理语法分析总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划编译原理语法分析总结  语法分析  一、实验目的  编制一个递归下降分析程序,实现对词法分析程序所提供的单词序列的语法检查和结构分析。  二、实验要求  利用C语言编制递归下降分析程序,并对简单语言进行语法分析。待分析的简单语言的语法  用扩充的BNF表示如下:⑴::=beginend⑵::={;}⑶::=⑷::=ID:=⑸::={+

2、-}⑹::={*

3、/⑺::=ID

4、NUM

5、实验要求说明  输入单词串,以“#”结束,如果是文法正确的句子,则输出成功信息,打印“success”,否

6、则输出“error”。  例如:  输入begina:=9;x:=2*3;b:=a+xend#输出success!  输入x:=a+b*cend#输出error  语法分析程序的酸法思想  主程序示意图如图2-1所示。  图2-1语法分析主程序示意图  递归下降分析程序示意图如图2-2所示。语句串分析过程示意图如图2-3所示。目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  图2-3语句串分析示意图  

7、图2-2递归下降分析程序示意图  statement语句分析程序流程如图2-4、2-5、2-6、2-7所示。  图2-4statement语句分析函数示意图图2-5expression表达式分析函数示意图  图2-7factor分析过程示意图  三、语法分析程序的C语言程序源代码:#include""#include""  charprog[100],token[8],ch;  char*rwtab[6]={"begin","if","then","while","do","end"};intsyn,p,m,n,sum;intkk;factor();expression();yucu();t

8、erm();statement();lrparser();scaner();main(){  p=kk=0;  printf("pleaseinputastring(endwith'#'):");  do  {scanf("%c",&ch);prog[p++]=ch;}while(ch!='#');p=0;scaner();lrparser();getch();}  lrparser(){  if(syn==1){目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目

9、的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  scaner();/*读下一个单词符号*/yucu();/*调用yucu()函数;*/if(syn==6){scaner();  if((syn==0)&&(kk==0))printf("success!");}  else{if(kk!=1)printf("thestringhaven'tgota'end'!");kk=1;}}  else{printf("haven'tgota'begin'!");kk=1;}return;}  yucu(){  statement();/*调用函数statement();

10、*/while(syn==26){  scaner();/*读下一个单词符号*/if(syn!=6)  statement();/*调用函数statement();*/}return;}  statement(){if(syn==10){  scaner();/*读下一个单词符号*/  if(syn==18)  {scaner();/*读下一个单词符号*/expression();/*调用函数statement();*/}  else{printf("thesing':='iswrong!");kk=1;}}  else{printf("wrongsentence!");kk=1;}

11、return;}  expression(){term();  while((syn==13)

12、

13、(syn==14))目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  {scaner();/*读下一个单词符号*/term

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

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

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