全文预览

语法制导四元式(算术表达式)生成器综合性实验报告

上传者:随心@流浪 |  格式:doc  |  页数:10 |  大小:117KB

文档介绍
=0;i<5;i++){ if(X==vn[i]){ //栈顶为非终结符时EGTSF h=i; //行号 for(j=0;j<7;j++){ if(a==vt[j]){ l=j; //列号 break; } } if(table[h][j].left!='N'){?//不空时 fun(h,l); } } } for(i=0;i<7;i++){ //栈顶为终结符时i+*()-# if(X==vt[i]){ stack[s--]='\0'; str2[st++]=''; a=str2[st]; //当前剩余串最左字符 fputc(X,fp); if(X=='#')?write("接受\n"); elsewrite("匹配\n"); } }?}}voidmain(){?charstr1[300]={0}; //预分析算术表达式a+(-4.67e-10)*(-7.89)+b#?charh[]="\n";?fp=fopen("H:fp.txt","r");?fgets(str1,300,fp); //fgets读取一行fgetc读取一个字符fread想要的长度?fclose(fp);?analy1(str1);?fp=fopen("H:fp.txt","a");?//不会覆盖原数据?fwrite(h,sizeof(h),1,fp);?//换行?fwrite(stack1,sizeof(stack1),1,fp);?//写入逆波兰式?fclose(fp);?printf("分析得到的符号串:%s\n\n",str2);?op=fopen("H:op.txt","w");?fputs(str2,fp); //写入i+(-i)*(-i)+i#?write("\n");?analy2();?fclose(op);}四、运行结果截屏:源文件:屏幕输出:分析过程:运行后的源文件:【实验结果分析】

收藏

分享

举报
下载此文档