变量说明处理 procedure vardeclaration; begin if sym=ident then begin enter(variable); getsym end else error(4) end(*vardeclaration*); 过程ENTER的实现(C) /* * 在名字表中加入一项 * * k: 名字种类const,var or procedure * ptx: 名字表尾指针的指针 * lev: 名字所在的层次,以后所有的lev都是这样 * pdx: 当前应分配变量的相对地址,分配后增加1 */ void enter(enum object k, int* ptx, int lev, int* pdx) 过程ENTER的实现(C) { (*ptx)++; strcpy(table[(*ptx)].name, id); /* 全局变量id中已存有当前名字的名字 */ table[(*ptx)].kind = k; switch (k){ case constant: /* 常量名字 */ if (num amax)
原创力文档

文档评论(0)