1、,token);Output(16,i);return 0;return 0;int Isnumber()/Isnumber函数:constsNUMMAXint i;for(i=0;iNUM;i+)if(constsi0!=NULL)&strcmp(token,constsi)=0)Output(17,i);return 0;if(constsi0=NULL)strcpy(constsi,token);Output(17,i);return 0;return 0;void remove() /扫描指针回退一个字符 fseek(in,-1,SEEK_CUR);/Isanotation函数:处理除
2、号/和注释void Isanotation() /提示第一个字符已经存为/了char ch,pre;ch=getc(in);if(ch=)/ /=Output(36,-1);else if(ch=*)/ /*ch=getc(in);doif(feof(in)num+;printf(n第(%d)行 : 注释错误: /*后面的字符全部当做注释,缺少结束注释*/n,n);break;pre=ch;ch=getc(in);while(pre!=*|ch!=/);else/ /remove(); /指针回退一个字符 Output(21,-1);/Isother函数识别其他特殊字符void Isother
3、()int i=1;int j=0;char ch;if(token0=|token0=!|token0=%) ch=getc(in);if(ch=)tokeni+=ch;else remove(); elseif(token0=|) ch=getc(in);if(ch=|)tokeni+=ch;elseremove(); elseif(token0=&) ch=getc(in);if(ch=&)tokeni+=ch;else remove();tokeni=0;for(i=18;i=a)&(ch=a)&(ch=0)&(ch=0)&(ch=9)/整数i=1;token0=ch;ch=getc(
4、in);while(isdigit(ch)tokeni+=ch;ch=getc(in);tokeni=0;Isnumber();else if(ch=/)/区分 / , /= , /* token0=ch;Isanotation();ch=getc(in);else /特殊字符token0=ch; Isother(); ch=getc(in);void show()int i;char ch;printf(n二元式:n);rewind(out);while(!feof(out)printf(%c,getc(out);printf(n标志符表n);for(i=0;iNUM;i+)if(Wordi
5、0!=NULL)printf(%d,%sn,i,Wordi);printf(n常数表n);for(i=0;iNUM;i+)if(constsi0!=NULL)printf(%d,%sn,i,constsi);void main()Initscanner();Scanner();printf(n共有%d个错误n,num);show();fclose(in);fclose(out);九、实验结果输入文件;.void aa( )beginfloat rate,circle; rate=3;circle=3.14*rate;/*/end输出文件(void,-)(id,0)(,-)(),-)(begin
6、,-)(float,-)(id,1)(id,2)(;,-)(id,1)(rlop,=)(num,0)(;,-)(id,2)(rlop,=)(num,0)(num,1)(*,-)(id,1)(;,-)(end,-).十、实验总结经过此次实验,了解了程序的词法构词规则和词法分析过程。在实验过程中,得到了同学的帮助才得以完成。本实验基本达到了老师的要求,实现了词法分析的基本功能。B14511 2014405A114 王自达;.视情作适当奖励。、坚持持证上岗制度,对有6方可安排上岗在取得相应资格证书后,应组织人员参加专业培训和考核,资质要求的岗位,工作。安全生产管理制度一、认真贯彻执行“安全第一、预防为主”的方针及国家有关的安全生产法律法规,制定适合本单位的安全管理制度和各工种、并定期检