15广工编译原理课程设计及实验报告(8)

2019-08-31 09:35

} } chardeclaration(&tx,lev,&dx); if(sym==semicolon) { } else { } error(5); getsymdo; }while(sym==ident); 7.7修改enter函数 void enter (enum object k,int *ptx,int lev, int *pdx) {

(*ptx)++;

strcpy(table[(*ptx)].name,id); /*全局变量id中已存有当前名字的名字*/ table[(*ptx)].kind=k; switch(k) {

case constant: /*常量名字*/

if (num>amax) {

error(31);

}

}

}

num=0;

table[(*ptx)].val=num; break;

case variable: /*变量名字*/

table[(*ptx)].level=lev; table[(*ptx)].adr=(*pdx); (*pdx)++; break;

case character:

table[(*ptx)].level=lev; table[(*ptx)].adr=(*pdx); (*pdx)++; break;

case procedur:

table[(*ptx)].level=lev; break;

7.8 修改打印table表部分代码 switch(table[i].kind) { case constant: printf(\printf(\fprintf(fas,\fprintf(fas,\ break; case variable: printf(\ printf(\ fprintf(fas,\ fprintf(fas,\ break; case procedur: printf(\ printf(\ size=%d\\n\ fprintf(fas,\ fprintf(fas,\\\n\ break; case character: printf(\ printf(\ fprintf(fas,\ fprintf(fas,\ break; } 7.8修改factor int factor() { .... switch(table[i].kind) { case constant:/*名字为常量*/ error(28); break; case variable: case character: selfopr(lev-table[i].level,table[i].adr,sopr); gendo(lod,lev-table[i].level,table[i].adr); /*找到变量地址并将其值入栈*/ break; case procedur: error(21); break; } 7.9增加字符赋值处理 int statement(bool* fsys,int * ptx,int lev) { ... else if (table[i].kind==character) { getsymdo; if (sym==becomes) { getsymdo; if (sym==charvalue) { gendo(lit,0,Tchar);


15广工编译原理课程设计及实验报告(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:自然地理学教案-伍光和版 - 图文

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

马上注册会员

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