2022年编译原理实验 2.pdf





《2022年编译原理实验 2.pdf》由会员分享,可在线阅读,更多相关《2022年编译原理实验 2.pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、#include stdio.h #include string.h #include iostream #include stdlib.h using namespace std; char prog100,token8,ch; char *rwtab6=begin,if,then,while,do,end; int syn,p,m,n,sum,q; int kk; struct char result18; char ag118; char op18; char ag218; quad20; char *factor(); char *expression(); int yucu(); c
2、har *term(); int statement(); int lrparser(); / 在原来语法分析的基础上插入相应的语义动作:将输入串翻译成四元式序列char *newtemp();/ 该函数回送一个新的临时变量名,临时变量名产生的顺序是T1,T2。 。 。void scaner(); / 扫描函数获得一个单词char getch() / 读入一个字符 ch = progp+; p=p+1; return (ch); void emit(char *result,char *ag1,char *op,char *ag2) /该函数的功能是生成一个三地址语句送到四元式表中 strcp
3、y(quadq.result1,result); strcpy(quadq.ag11,ag1); strcpy(quadq.op1,op); strcpy(quadq.ag21,ag2); q+; int main() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - int j; q=p=kk=0; printf(please input a string (end with #): n); do scanf(%c,&ch);
4、progp+=ch; while(ch!=#); p=0; scaner(); lrparser(); if(q19) printf( to long sentense!n); else for (j=0;jq;j+) printf( %s = %s %s %s nn,quadj.result1,quadj.ag11,quadj.op1,quadj.ag21); getch(); system(pause); int lrparser() int schain=0; kk=0; if (syn=1) scaner();/读下一个单词符号schain=yucu(); / 调用语句串分析函数进行分
5、析if(syn=6) scaner();/读下一个单词符号if(syn=0)&(kk=0) printf(Success!n); else if(kk!=1)printf(short of end !n); kk=1; getch(); exit(0); else 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - printf(short of begin !n); kk=1; getch(); exit(0); return (
6、schain); int yucu() int schain=0; schain=statement();/调用语句分析函数进行分析while(syn=26) scaner(); schain=statement(); return (schain); int statement() char tt8,eplace8; int schain=0; if (syn=10) strcpy(tt,token); scaner(); if(syn=18) scaner(); strcpy(eplace,expression();/ 调用 exprecision 进行分析emit(tt,eplace,)
7、;/ 生成四元式送入四元式表schain=0; else printf(short of sign := !n); kk=1; getch(); exit(0); return (schain); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - char *expression() char *tp,*ep2,*eplace,*tt; tp=(char *) malloc(12); ep2=(char *) malloc(12)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年编译原理实验 2022 编译 原理 实验

限制150内