词法分析程序源码.doc

词法分析程序源码.doc

ID:50545891

大小:63.00 KB

页数:13页

时间:2020-03-07

词法分析程序源码.doc_第1页
词法分析程序源码.doc_第2页
词法分析程序源码.doc_第3页
词法分析程序源码.doc_第4页
词法分析程序源码.doc_第5页
资源描述:

《词法分析程序源码.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、词法分析程序源码#include#include#include#includeFILE*in,*out;//文件输入输出指针intnum=0;//词的数量intquotationFlag=0,bracketFlag=0;//quotationFlag弓丨号标识,bracketFlag括弧标识voidsubletterhandler(char*1etter)//字母处理子程序if(strcmp(1etter,〃const〃)=0){num++;fprintf(out,〃%dCONSTTK%s〃,num,1ett

2、er);}elseif(strcmp(letter,nt〃)==0){num++;fprintf(out,〃%dINTTK%srT,num,letter);}elseif(strcmp(letter,z,float?,)==0){num++;fprintf(out,〃%dFLOATTK%s〃,num,1etter);}elseif(strcmp(letter,/,char/,)==0){num++;fprintf(out,〃%dCHARTK%s〃,num,1etter);elseif(strcmp(letter,/zmain,z)=0){num++;fprintf(out,〃%d

3、MAINTK%s,z,num,letter);elseif(strcmp(letter,〃if〃)=0){num++;fprintf(out,〃%dIFTK%s〃,num,letter);}elseif(strcmp(letter,〃else〃)=0){num++;fprintf(out,〃%dELSETK%s,z,num,letter);elseif(strcmp(letter,"do〃)=0){num++;fprintf(out,〃%dDOTK%s〃,num,letter);elseif(strcmp(letter,〃switch")=0){num++;fprintf(

4、out,〃%dSWITCHTK%s〃,num,letter);elseif(strcmp(letter,"case")二二0){num++;fprintf(out,"%dCASETK%s,z,num,letter);elseif(strcmp(letter,"default")=0){num++;fprintf(out,〃%dDEFAULTTK%srT,num,letter);elseif(strcmp(letter,〃for〃)=0){num++;fprintf(out,"%dFORTK%s〃,num,letter);elseif(strcmp(letter,〃scanf"

5、)=O){num++;fprintf(out,〃%dSCANFTK%s〃,num,letter);ijelseif(strcmp(letter,〃printf〃)=0){num++;fprintf(out,〃%dPRINTFTK%s",num,letter);ijelseif(strcmp(letter,〃returrT)=0){num++;fprintf(out,〃%dRETURNTK%s〃,num,letter);ijelse{//inta二0;intj;for(j=0;j<=strlen(letter);j++)if(letter[j]〉二'0’&&letter[j]〈二

6、'9')a=l;if(a=0){num++;fprintf(out,〃%dSTRCON%srT,num,letter);else{num++;fprintf(out,〃%dIDEN%s〃,num,letter);ijijcharletterhandler(charch){inti二0;charletter[50];if(quotationFlag==0){while(isalnum(ch)!=0){letter[i++]=ch;ch=fgetc(in);ijletter[i]=,?;subletterhandler(letter);Ijelseif(quotationFlag=l

7、){while(ch!二'‘’){letter[i++]=ch;ch=fgetc(in);ijletter[i]=,?;num++;fprintf(out,〃%dCHARCON%s〃,num,letter);Ijelse{while(ch!=,〃‘){letter[i++]=ch;ch二fgetc(in);ijletter[i]二'';nuni++;fprintf(out,〃%dSTRCON%s〃,n

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。