ImageVerifierCode 换一换
格式:DOCX , 页数:39 ,大小:109.37KB ,
资源ID:27024123      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27024123.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《C语言词法分析研究器》开发文档源代码.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《C语言词法分析研究器》开发文档源代码.docx

1、C语言词法分析研究器开发文档源代码C语言词法分析器开发文档Powered By 萌萌地玉雪一、实验题目编制并调试C词法分析程序.二、实验目地全面深入理解高级语言程序设计知识,掌握应用技巧,提高应用与分析能力.三、主要函数void load ( ) void char_search(char *word)void main ( )void intb_search(char *word)void scan ( )void c_search(char *word)void inta_search(char *word)void cc_search(char *word)四、设计1.主函数 void

2、main ( )2. 初始化函数 void load ( )3. 保留字及标识符判断函数 void char_search(char *word)4. 整数类型判断函数 void inta_search(char *word)5. 浮点类型判断函数void intb_search(char *word)6. 字符串常量判断函数 void cc_search(char *word)7. 字符常量判断函数 void c_search(char *word)同4、5函数图8.主扫描函数 void scan ( )五、关键代码#include #include #include char *key0=

3、 ,auto,break,case,char,const,continue,default,do,double,else,enum,extern,float,for,goto,if,int,long,register,return,short,signed,sizeof,static,struct,switch,typedef,_Complex,_Imaginary,union,unsigned,void,volatile,while;b5E2R。/*保留字表*/char *key1= ,(,),;,;p1Ean。/*分隔符表*/char *key2= ,+,-,*,/,%,=,=,=,!=,

4、!,&,|,|,&,=,?:,-,+,-,.,+=,-=,*=,/=;DXDiT。/*运算符表*/int xx035,xx110,xx231;int temp_key3=0,temp_c40=0,temp_c41=0,temp_c42=0,temp_c43=0;RTCrp。/* 初始化函数 */void load() int mm; for (mm=0;mm=34;mm+) xx0mm=0; for (mm=0;mm=9;mm+) xx1mm=0; for (mm=0;mm=30;mm+) xx2mm=0; FILE *floading; if (floading=fopen(key0.txt

5、,w)=NULL) printf(Error! Cant create file : key0.txt); return; fclose (floading); /*建立保留字表文件:key0.txt*/ if (floading=fopen(key1.txt,w)=NULL) printf(Error! Cant create file : key1.txt); return; /*建立分隔符表文件:key1.txt*/ if (floading=fopen(key2.txt,w)=NULL) printf(Error! Cant create file : key2.txt); retur

6、n; fclose(floading); /*建立运算符表文件:key2.txt*/ if (floading=fopen(key3.txt,w)=NULL) printf(Error! Cant create file : key3.txt); return; fclose (floading); /*建立标识符表文件:key3.txt*/ if (floading=fopen(c40.txt,w)=NULL) printf(Error! Cant create file : c40.txt); return; fclose (floading); /*建立整数类型常量表文件:c40.txt

7、*/ if (floading=fopen(c41.txt,w)=NULL) printf(Error! Cant create file : c41.txt); return; fclose (floading); /*建立浮点类型常量表文件:c41.txt*/ if (floading=fopen(c42.txt,w)=NULL) printf(Error! Cant create file : c42.txt); return; fclose (floading); /*建立字符类型常量表文件:c42.txt*/ if (floading=fopen(c43.txt,w)=NULL) p

8、rintf(Error! Cant create file : c43.txt); return; fclose (floading); /*建立字符串类型常量表文件:c43.txt*/ if (floading=fopen(defination.txt,w)=NULL) printf(Error! Cant create file : defination.txt);5PCzV。 return; fclose (floading); /*建立注释文件:defination.txt*/ if (floading=fopen(output.txt,w)=NULL) printf(Error! C

9、ant create file : output.txt); return; fclose (floading); /*建立内部码文件:output.txt*/ if (floading=fopen(temp_key1,w)=NULL) printf(Error! Cant create file : temp_key1); return; fclose (floading); /*建立保留字临时表文件:temp_key1*/ if (floading=fopen(temp_key3,w)=NULL) printf(Error! Cant create file : temp_key3); r

10、eturn; fclose (floading); /*建立标识符临时文件:temp_key3*/ if (floading=fopen(temp_c40,w)=NULL) printf(Error! Cant create file : temp_c40); return; fclose (floading); /*建立整数类型常量临时文件:temp_c40*/ if (floading=fopen(temp_c41,w)=NULL) printf(Error! Cant create file : temp_c41); return; fclose (floading); /*建立浮点类型

11、常量临时文件:temp_c41*/ if (floading=fopen(temp_c42,w)=NULL) printf(Error! Cant create file : temp_c42); return; fclose (floading); /*建立字符类型常量临时文件:temp_c42*/ if (floading=fopen(temp_c43,w)=NULL) printf(Error! Cant create file : temp_c43); return; fclose (floading); /*建立字符串类型常量临时文件:temp_c43*/* 保留字及标识符判断函数

12、*/void char_search(char *word) int m,line=0,csi=0; int value=0; int value2=0; char c,cs100; FILE *foutput,*finput; for (m=1;m=34;m+) if (strcmp(word,key0m)=0) value=1; break; if (value=1) if (xx0m=0) foutput=fopen(key0.txt,a); fprintf(foutput,0t%dtt%sn,m,word); fclose(foutput); xx0m=1; foutput=fopen

13、(output.txt,a); fprintf(foutput,0t%dtt%sn,m,word); fclose(foutput); else if (temp_key3=0) foutput=fopen(temp_key3,a); fprintf(foutput,%sn,word); fclose(foutput); temp_key3+; foutput=fopen(key3.txt,a); fprintf(foutput,3t1tt%sn,word); fclose(foutput); finput=fopen(temp_key3,r); c=fgetc(finput); while

14、(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; c=fgetc(finput); fclose(finput); if (value2=1) foutput=fopen(output.txt,a); fprintf(foutput,3t%dtt%sn,line,word); fclose(foutput); else foutput=fopen(temp_key3,a); fprintf(f

15、output,%sn,word); fclose(foutput); temp_key3+; foutput=fopen(output.txt,a); fprintf(foutput,3t%dtt%sn,temp_key3,word); fclose(foutput); foutput=fopen(key3.txt,a); fprintf(foutput,3t%dtt%sn,temp_key3,word); fclose(foutput); /* 整数类型判断函数 */void inta_search(char *word) FILE *foutput,*finput; char c; cha

16、r cs100; int csi=0; int line=0; int value2=0; if (temp_c40=0) foutput=fopen(temp_c40,a); fprintf(foutput,%sn,word); fclose(foutput); temp_c40+; foutput=fopen(c40.txt,a); fprintf(foutput,4t0t1t%sn,word); fclose(foutput); finput=fopen(temp_c40,r); c=fgetc(finput); while (c!=EOF) while (c!=n) cscsi+=c;

17、 c=fgetc(finput); cscsi=0; csi=0; line+; if (strcmp(cs,word)=0) value2=1; break; c=fgetc(finput); fclose(finput); if (value2=1) foutput=fopen(output.txt,a); fprintf(foutput,4t0t%dt%sn,line,word); fclose(foutput); else foutput=fopen(temp_c40,a); fprintf(foutput,%sn,word); fclose(foutput); temp_c40+;

18、foutput=fopen(output.txt,a); fprintf(foutput,4t0t%dt%sn,temp_c40,word); fclose(foutput); foutput=fopen(c40.txt,a); fprintf(foutput,4t0t%dt%sn,temp_c40,word); fclose(foutput); /* 浮点类型判断函数 */void intb_search(char *word) FILE *foutput,*finput; char c; char cs100; int csi=0; int line=0; int value2=0; if

19、 (temp_c41=0) foutput=fopen(temp_c41,a); fprintf(foutput,%sn,word); fclose(foutput); temp_c41+; foutput=fopen(c41.txt,a); fprintf(foutput,4t1t1t%sn,word); fclose(foutput); finput=fopen(temp_c41,r); c=fgetc(finput); while (c!=EOF) while (c!=n) cscsi+=c; c=fgetc(finput); cscsi=0; csi=0; line+; if (str

20、cmp(cs,word)=0) value2=1; break; c=fgetc(finput); fclose(finput); if (value2=1) foutput=fopen(output.txt,a); fprintf(foutput,4t1t%dt%sn,line,word); fclose(foutput); else foutput=fopen(temp_c41,a); fprintf(foutput,%sn,word); fclose(foutput); temp_c41+; foutput=fopen(output.txt,a); fprintf(foutput,4t1

21、t%dt%sn,temp_c41,word); fclose(foutput); foutput=fopen(c40.txt,a); fprintf(foutput,4t1t%dt%sn,temp_c41,word); fclose(foutput); /* 字符串常量判断函数 */void cc_search(char *word) FILE *foutput,*finput; char c; char cs100; int csi=0; int line=0; int value2=0; if (temp_c43=0) foutput=fopen(temp_c43,a); fprintf(

22、foutput,%sn,word); fclose(foutput); temp_c43+; foutput=fopen(c43.txt,a); fprintf(foutput,4t3t1t%sn,word); fclose(foutput); finput=fopen(temp_c43,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; c=fgetc(finput);

23、 fclose(finput); if (value2=1) foutput=fopen(output.txt,a); fprintf(foutput,4t3t%dt%sn,line,word); fclose(foutput); else foutput=fopen(temp_c43,a); fprintf(foutput,%sn,word); fclose(foutput); temp_c43+; foutput=fopen(output.txt,a); fprintf(foutput,4t3t%dt%sn,temp_c43,word); fclose(foutput); foutput=

24、fopen(c43.txt,a); fprintf(foutput,4t3t%dt%sn,temp_c43,word); fclose(foutput); /* 字符常量判断函数 */void c_search(char *word) FILE *foutput,*finput; char c; char cs100; int csi=0; int line=0; int value2=0; if (temp_c42=0) foutput=fopen(temp_c42,a); fprintf(foutput,%sn,word); fclose(foutput); temp_c42+; fout

25、put=fopen(c42.txt,a); fprintf(foutput,4t2t1t%sn,word); fclose(foutput); finput=fopen(temp_c42,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; c=fgetc(finput); fclose(finput); if (value2=1) foutput=fopen(output.txt,a); fprintf(foutput,4t2t%dt%sn,line,word); fclose(foutput); else foutput=fopen(temp_c42,a); fprintf(foutput,%sn,word); fclo

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1