编译原理实验报告(预测分析表方法)(2)

2019-08-17 13:55

return 0; }

int includean(char x,char a) { int i,j; for(i=0;i

void destory() { int flag=0; int flagg=0; push('#'); //将\和文法开始符依次压入栈中 push(VN[0]); char a=aa[pp]; //把第一个输入符号读入a char x; do{ if(flag==0) x=pop(); //把栈顶符号弹出并放入x中 flag=0; printf(\ if(includevt(a)==1) { if(includevt(x)==1) { if(x==a) { if(a=='#') { flagg=1; printf(\结束\\n\ } else printf(\匹配终结符%c\\n\ pp++; a=aa[pp]; //将下一输入符号读入a; } else { flag=1; printf(\出错,跳过%c\\n\ pp++;

6

a=aa[pp]; } } else if(includean(x,a)>=0) { int h=includean(x,a); printf(\展开非终结符%s%s\\n\ int k; for(k=0;k<10;k++) if(Fa[h][k]=='\\0') break; if(k==4) { //printf(\ \\n\ } else { while(k!=0) //按逆序依次把yk、yk?1、…、y1压入栈中 { k--; push(Fa[h][k]); } } } else if(includean(x,a)==-1) { flag=1; printf(\出错,从栈顶弹出%c\\n\ x=pop(); } else { flag=1; printf(\出错,跳过%c\\n\ pp++; a=aa[pp]; } } else { flag=1; printf(\出错,跳过%c\\n\ pp++; a=aa[pp]; }

7

}while(x!='#'); if(flagg==0) { printf(\ printf(\结束\\n\ } }

int main() { printf(\请输入1 or 0:\\n\ //scanf(\ printf(\语法分析工程如下:\\n\ initscanner(); printf(\要分析的语句是:%s\\n\ printf(\语法分析工程如下:\\n\ printf(\栈顶元素\\t\\t当前单词记号\\t\\t\\t动作\\n\ printf(\ destory(); return 0; }

四、实验小结

我成功的完成了实验基本要求和选做内容。这次实验对我做编译的课程设计有很大指导作用,我觉得学好编译原理可以使我们更加容易去编译,这次实验使我获益良多和我相信我会在编译道路上会走得更远。

8


编译原理实验报告(预测分析表方法)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:钢结构 武汉理工大学出版社 课后习题答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: