欢迎来到天天文库
浏览记录
ID:47922532
大小:20.00 KB
页数:2页
时间:2019-11-01
《在block函数中添加代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、4、在block函数中添加代码:for(i=tx0+1;i<=tx;i++){switch(table[i].kind){caseconstant;/*常量名字*/......//此处省略部分未修改过的代码casevariable;/*变量名字*/......//此处省略部分未修改过的代码caseprocedur;/*过程名字*/......//此处省略部分未修改过的代码casearray;//数组变量pritf(“%dvar-array%s”,i,table[i].name);printf(“lev=%daddr=%dsize=%d”,table[i].level,table[
2、i].adr,table[i].size);fprintf(fas,“%dvar-array%s”,i,table[i].name);fprintf(fas,“lev=%daddr=%dsize=%d”,table[i].level.table[i].adr,table[i].size);}}5、在enter()函数中添加代码:switch(k){caseconstant;/*常量名字*/......//此处省略部分未修改过的代码casevariable;/*变量名字*/......//此处省略部分未修改过的代码caseprocedur;/*过程名字*/......//此处省略部
3、分未修改过的代码casearray;//数组变量table[(*ptx)].level=lev;table[(*ptx)].adr=(*pdx)-arraysize;table[(*ptx)].size=arraysize;break;}6、在vardeclaration()函数中添加数组的变量声明intvardeclaration(int*ptx,intlev,int*pdx){//此处省略部分未修改的代码casegar;//根据栈顶的便宜地址从数组中取值到新的栈顶s[t]=s[base(i.1,s,b)+i.a+s[t-1]];//偏移地址为上一层过程的基址+当前指令的层次+栈顶
4、的偏移地址t++;break;casesar;//根据栈顶的偏移地址把栈顶的值存入数组t--;s[base(i.1,s,b)+i.a+s[t-1]]=s(t);//t--;break;caseshd;//将栈顶的值保存到次栈顶t--;s[t-1]=s[t];break;casedel;//将栈顶的值出栈t--;break;casejud;//判断数组下标的合法性t--;if(s[t-1]<0
5、
6、s[t-1]>=s[t]){error(28);printf(“运行问题出错,程序退出!请输入任意数字退出:”);scanf(“%d”,&p);exit(1);}break;casetra
7、;//将数组的下标范围入栈s[t]=i.a;t++;break;.....//此处省略部分未修改过的代码}
此文档下载收益归作者所有