《编译原理》词法分析程序设计

时间:2014-03-31 12:01:34
【文件属性】:

文件名称:《编译原理》词法分析程序设计

文件大小:2KB

文件格式:RAR

更新时间:2014-03-31 12:01:34

编译原理 词法分析程序 C

#include #include int I=0,J=0; int Alphabet(char a); int DFA(char m[]); int F(char bb[]); int B(char bb[]); void main() //void main() is here! { FILE *fp,*fs; char m[40]; //char str[100][40]; int i; if(fopen("bb.txt","r")==NULL) //写入单词符号 { fs=fopen("bb.txt","w"); printf("创建bb.txt\n"); } else fs=fopen("bb.txt","a+"); if(fopen("aa.txt","r")==NULL) //读程序 fp=fopen("aa.txt","w"); else { fp=fopen("aa.txt","rw"); for(i=0;;i++) { fscanf(fp,"%s",m); switch(DFA(m)) //here! here! { case 1: printf("(%s,-)\n",m); //关键字 fprintf(fs,"(%s,-)",m); break; case 2: printf("(%s,rlop)\n",m); //比较 fprintf(fs,"(%s,rlop)",m); break; case 3: printf("(%s,-)\n",m); //其他 fprintf(fs,"(%s,-)",m); break; case 4: printf("(%s,-)\n",m); //前五个关键字 fprintf(fs,"(%s,-)",m); break; case 5: //注释 //printf("注释:%s\n",m); break; default : //定义变量 switch(B(m)) { case 1: printf("(%s,%d)\n",m,I++); fprintf(fs,"(%s,%d)",m,I); break; case 2: printf("(%s,%d)\n",m,J++); fprintf(fs,"(%s,%d)",m,J);break; default: printf("错误的定义");break; } }


【文件预览】:
qwe.cpp
aa.txt
bb.txt

网友评论