1、调用字符常量判断函数void c_search进行处理字符串常量调用字符串常量判断函数void cc_search进行处理整数常量调用整数类型判断函数void inta_search进行处理浮点数常量调用浮点类型判断函数void intb_search进行处理注释限制符写入注释文件查运算符、分隔符表并写入输出文件五、关键代码#include string.hstdlib.hchar *key0= ,autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshort
2、signedsizeofstaticstructswitchtypedef_Complex_Imaginaryunionunsignedvoidvolatilewhile;/*保留字表*/char *key1=();/*分隔符表*/char *key2=+-*/%=!&|?:-+-.+=-=*=/=/*运算符表*/int xx035,xx110,xx231;int temp_key3=0,temp_c40=0,temp_c41=0,temp_c42=0,temp_c43=0;/* 初始化函数 */void load() int mm; for (mm=0;mm=34;mm+) xx0mm=0;
3、 =9; xx1mm=0;=30; xx2mm=0; FILE *floading; if (floading=fopen(key0.txtw)=NULL) printf(Error! Cant create file : key0.txt); return; fclose (floading); /*建立保留字表文件:key0.txt*/key1.txt key1.txt /*建立分隔符表文件:key1.txt*/key2.txt key2.txt fclose(floading); /*建立运算符表文件:key2.txt*/key3.txt key3.txt /*建立标识符表文件:key3
4、.txt*/c40.txt c40.txt /*建立整数类型常量表文件:c40.txt*/c41.txt c41.txt /*建立浮点类型常量表文件:c41.txt*/c42.txt c42.txt /*建立字符类型常量表文件:c42.txt*/c43.txt c43.txt /*建立字符串类型常量表文件:c43.txt*/defination.txt defination.txt /*建立注释文件:defination.txt*/output.txt output.txt /*建立内部码文件:output.txt*/temp_key1 temp_key1 /*建立保留字临时表文件:temp_
5、key1*/temp_key3 temp_key3 /*建立标识符临时文件:temp_key3*/temp_c40 temp_c40 /*建立整数类型常量临时文件:temp_c40*/temp_c41 temp_c41 /*建立浮点类型常量临时文件:temp_c41*/temp_c42 temp_c42 /*建立字符类型常量临时文件:temp_c42*/temp_c43 temp_c43 /*建立字符串类型常量临时文件:temp_c43*/* 保留字及标识符判断函数 */void char_search(char *word) int m,line=0,csi=0; int value=0;
6、int value2=0; char c,cs100; FILE *foutput,*finput; for (m=1;mm+) if (strcmp(word,key0m)=0) value=1; break; if (value=1) if (xx0m=0) foutput=fopen(a fprintf(foutput,0t%dtt%sn,m,word); fclose(foutput); xx0m=1; foutput=fopen( fprintf(foutput, fclose(foutput); else if (temp_key3=0)%sn,word); temp_key3+;
7、3t1tt%sn finput=fopen(r c=fgetc(finput); while (c!=EOF) while (c!=n) cscsi+=c; c=fgetc(finput); cscsi=0 csi=0; line+; if (strcmp(cs,word)=0) value2=1; break; else value2=0; fclose(finput); if (value2=1)3t%dtt%sn,line,word); else,temp_key3,word);/* 整数类型判断函数 */void inta_search(char *word) char c; char
8、 cs100; int csi=0; int line=0; if (temp_c40=0) temp_c40+;4t0t1t%sn finput=fopen( c=fgetc(finput); while (c! cscsi+=c; c=fgetc(finput); cscsi= csi=0; line+; if (strcmp(cs,word)=0) value2=1; fclose(finput); if (value2=1)4t0t%dt%sn,temp_c40,word);/* 浮点类型判断函数 */void intb_search(char *word) if (temp_c41=0) temp_c41+;4t1t1t%sn4t1t%dt%sn,temp_c41,word);/* 字符串常量判断函数 */void cc_search(char *word) if (temp_c43=0) temp_c43+;4t3t1t%sn4t3t%dt%sn,temp_c43,word);/* 字符常量判断函数 */void c_search(char *word) if (temp_c42=0) temp_c42+;4t2t1t%sn
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1