欢迎来到天天文库
浏览记录
ID:30365190
大小:19.57 KB
页数:12页
时间:2018-12-29
《编译原理语法分析总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
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
此文档下载收益归作者所有