1 / 5
文档名称:

语法分析程序(递归下降法).doc

格式:doc   大小:25KB   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

语法分析程序(递归下降法).doc

上传人:q1188830 2019/11/17 文件大小:25 KB

下载得到文件列表

语法分析程序(递归下降法).doc

文档介绍

文档介绍:语法分析程序(递归下降法)班级学号姓名:指导老师::学习语法分析的主要方法;熟悉复习词法分析的方法;判断表达式的正确性;熟悉C语言并提高动手能力;:用递归下降分析法编写一个用于判断数学表达式是否正确的语法分析实验硬件和软件平台::调用词法分析程序,转换表达式成为内号;调用语法分析程序,判断表达式正确与否;源程序:#include<>#include<>#include<>#defineyyswy=adv()FILE*fp1;charch;intswy;main(){ voidCS(); intchz(charstr[15]); intadv(); voidCT(); voidE(); voidEB(); voidERROR(); voidET(); voidF(); voidIT(); voidT();voidsentence();clrscr(); ch=''; fp1=fopen("","r");if(!fp1){printf("!!\n”);exit(0);} /*while(!feof(fp1))*/ { yy; sentence(); fclose(fp1); }}voidERROR(){ printf("%dERROR!\n",swy);}voidE(){ T();while(swy==34||swy==35) { yy; T(); }}voidT(){ F(); while(swy==36||swy==37) { yy; F(); }}voidF(){ if(swy==21||swy==22)yy; elseif(swy==27) { yy; E(); if(swy==28)yy; elseERROR(); } elseERROR();}voidsentence(){ switch(swy) { case21: { yy; if(swy==44) { yy; E();} elseERROR();break; }case1:CS();break; case8: { yy; EB();if(swy!=4)ERROR(); yy;sentence();break; } case19: { yy; EB(); if(swy!=4)ERROR(); yy; sentence(); }break;case14: { yy; if(swy!=27)ERROR(); yy; IT(); if(swy!=28)ERROR(); yy;break; }case20: { yy; if(swy!=27)ERROR(); yy; ET(); if(swy!=28)ERROR(); yy;break; } }}voidCS(){ yy; sentence(); while(swy==24) { yy; sentence(); } if(swy==6)yy; elseERROR();}voidCT(){ if(swy==5) { yy; sentence(); }}voidEB(){ E(); if(swy<=43&&swy>=38)