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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

《C语言词法分析器》开发文档及源代码.doc

1、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 main ( )2. 初始化

2、函数 void load ( )绘制程序界面调用初始化函数:void load ( ) 实现文件的建立调用主扫描函数:void scan ( ) 实现文件的扫描分析完成后指引用户查看相关文件,直到用户输入退出命令函数结束通过文件指针建立相关文件函数结束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. 字符常量判断函数

3、void c_search(char *word)同 4、5 函数图8.主扫描函数 void scan ( )接收数据是否为保留字是:写入输出文件 否:查标识符表找到:写入输出文件没找到:写入表文件写入输出文件接收数据查表找到:写入输出文件没找到:写入整数常量表文件写入输出文件接收数据查表找到:写入输出文件没找到:写入整数常量表文件写入输出文件五、关键代码#include #include #include char *key0=“ “,“auto“,“break“,“case“,“char“,“const“,“continue“,“default“,“do“,“double“,“else“,

4、“enum“,“extern“,“float“,“for“,“goto“,“if“,“int“,“long“,“register“,“return“,“short“,“signed“,“sizeof“,“static“,“struct“,“switch“,“typedef“,“_Complex“,“_Imaginary“,“union“,“unsigned“,“void“,“volatile“,“while“;/*保留字表*/char *key1=“ “,“(“,“)“,“,“,“,“,“,“,“;“,“;/*分隔符表*/函数开始读入源文件中的一个单词宏定义判断忽略无效字符 忽略字符串 调用保

5、留字及标识符函数 void char_search 进行处理字符常量 调用字符常量判断函数 void c_search 进行处理字符串常量 调用字符串常量判断函数 void cc_search 进行处理整数常量 调用整数类型判断函数 void inta_search 进行处理浮点数常量 调用浮点类型判断函数 void intb_search 进行处理注释限制符写入注释文件查运算符、分隔符表并写入输出文件char *key2=“ “,“+“,“-“,“*“,“/“,“%“,“,“=“,“=“,“,“,“|“,“,“/*运算符表*/int xx035,xx110,xx231;int temp_ke

6、y3=0,temp_c40=0,temp_c41=0,temp_c42=0,temp_c43=0;/* 初始化函数 */void load()int mm;for (mm=0;mm)chin=fgetc(fin);/*chin=fgetc(fin);*/*对空格符、水平制表符进行处理*/else if (chin= )|(chin=t);/*对回车符进行处理*/else if (chin=n);/*对单引号内的字符常量进行处理*/else if (chin=target0)if (xx19=0)fout=fopen(“key1.txt“,“a“);fprintf(fout,“1t9tt%cn“

7、,target0);fclose(fout);xx19=1;temp0=chin;chin=fgetc(fin);temp1=chin;chin=fgetc(fin);if (chin!=target0)temp2=chin;chin=fgetc(fin);temp3=chin;temp4=0;elsetemp2=chin;temp3=0;c_search(temp);/*对双引号内的字符串常量进行处理*/else if (chin=“)int i=0;tempi+=“;chin=fgetc(fin);while (chin!=“)tempi+=chin;chin=fgetc(fin);tem

8、pi=“;tempi+1=0;cc_search(temp);/*对保留字、标识符进行处理*/else if (chin=A)printf(“* 1 查看分隔符表文件 *n“);printf(“* 2 查看运算符表文件 *n“);printf(“* 3 查看标识符表文件 *n“);printf(“* 4 查看整数类型常量表 *n“);printf(“* 5 查看浮点类型常量表 *n“);printf(“* 6 查看字符类型常量表 *n“);printf(“* 7 查看字符串类型常量表 *n“);printf(“* 8 查看注释文件 *n“);printf(“* 9 查看内部码文件 *n“);p

9、rintf(“* - *n“);printf(“* Q 退出 *n“);printf(“*n“);printf(“n“);load();scan();printf(“n“);printf(“分析完成!n“);getchar();printf(“n“);printf(“请输入命令:“);command=getchar();while (command!=Q)printf(“n“);fread=fopen(“key0.txt“,“r“);charin=fgetc(fread);while (charin!=EOF)putchar(charin);charin=fgetc(fread);printf

10、(“n“);printf(“*n“);printf(“n“);printf(“请输入命令:“);break;case 1:printf(“*n“);printf(“n“);fread=fopen(“key1.txt“,“r“);charin=fgetc(fread);while (charin!=EOF)putchar(charin);charin=fgetc(fread);printf(“n“);printf(“*n“);printf(“n“);printf(“请输入命令:“);break;case 2:printf(“*n“);printf(“n“);fread=fopen(“key2.t

11、xt“,“r“);charin=fgetc(fread);while (charin!=EOF)putchar(charin);charin=fgetc(fread);printf(“n“);printf(“*n“);printf(“n“);printf(“请输入命令:“);break;case 3:printf(“*n“);printf(“n“);fread=fopen(“key3.txt“,“r“);charin=fgetc(fread);while (charin!=EOF)putchar(charin);charin=fgetc(fread);printf(“n“);printf(“*

12、n“);printf(“n“);printf(“请输入命令:“);break;case 4:printf(“*n“);printf(“n“);fread=fopen(“c40.txt“,“r“);charin=fgetc(fread);while (charin!=EOF)putchar(charin);charin=fgetc(fread);printf(“n“);printf(“*n“);printf(“n“);printf(“请输入命令:“);break;case 5:printf(“*n“);printf(“n“);fread=fopen(“c41.txt“,“r“);charin=f

13、getc(fread);while (charin!=EOF)putchar(charin);charin=fgetc(fread);printf(“n“);printf(“*n“);printf(“n“);printf(“请输入命令:“);break;case 6:printf(“*n“);printf(“n“);fread=fopen(“c42.txt“,“r“);charin=fgetc(fread);while (charin!=EOF)putchar(charin);charin=fgetc(fread);printf(“n“);printf(“*n“);printf(“n“);pr

14、intf(“请输入命令:“);break;case 7:printf(“*n“);printf(“n“);fread=fopen(“c43.txt“,“r“);charin=fgetc(fread);while (charin!=EOF)putchar(charin);charin=fgetc(fread);printf(“n“);printf(“*n“);printf(“n“);printf(“请输入命令:“);break;case 8:printf(“*n“);printf(“n“);fread=fopen(“defination.txt“,“r“);charin=fgetc(fread)

15、;while (charin!=EOF)putchar(charin);charin=fgetc(fread);printf(“n“);printf(“*n“);printf(“n“);printf(“请输入命令:“);break;case 9:printf(“*n“);printf(“n“);fread=fopen(“output.txt“,“r“);charin=fgetc(fread);while (charin!=EOF)putchar(charin);charin=fgetc(fread);printf(“n“);printf(“*n“);printf(“n“);printf(“请输入命令:“);break;command=getchar();

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报