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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言词法分析器实验报告Word格式文档下载.doc

1、= = ; ( ) 等(3)其他单词是标识符(ID)和整型常数(SUM),通过以下正规式定义:ID = _ | letter (letter | digit)*NUM = digit digit*(4)空格有空白、制表符和换行符组成。空格一般用来分隔ID、SUM、运算符、界符和关键字,词法分析阶段通常被忽略。 (5)注释被忽略(6)各种单词符号对应的种别码(如下):单词符号种别码auto1double2int3struct4break5else6long7switch8case9enum10register11typedef12char13extern14return15union16cons

2、t17float18short19unsigned20continue21for22signed23void24default25goto26sizeof27volatile28do29while30static31if32a33b34f35n36t37v3839?4041”42043ddd44 xhh45数字46标识符47#48(49)505152535455*56:5758%5960+61?62=63|64&65!6681“82%A(A可为dsc)83;84_85/868788899091其他类别99实验流程图(由于流程图过大因此各部分分开写):整体:扫描注释:扫描数字:扫描引号:扫描单词

3、:扫描其他字符:实验环境:需要TC、VC+ 6.0等开发工具作为本次试验的环境。实验步骤:1、准备: 用TC、VC+等开发工具;2、对本实验的任务进行分析,确定实现功能的函数;3、写好程序,仔细修改函数;4、上机操作:输入源程序,修改、调试,运行。5、写好试验报告。实验调试过程及测试结果/*源代码*/#includestdlib.h#include string.hvoid main()FILE *fp,*fp1;int hanjsq=1;/行计数器,保存行号int guanjz(char ch1);/关键字和标识符判断char ch,infile15,outfile15;/定义输入和输出文件

4、名printf(*Enter the infile name*n);scanf(%s,infile);/输入需要扫描的文件名*Enter the outfile name*n,outfile);/输入需要另存为的文件名if(fp = fopen(infile,r) = NULL)/打开需要扫描的文件printf(cannot open filenexit(0);if(fp1 = fopen(outfile,w) = NULL)/打开需要存入的文件n*n* 开始进行词法分析 *n*n行号字符串种别码nfprintf(fp1,while(!feof(fp)ch=fgetc(fp);if(ch=10

5、)hanjsq+;/*扫描头文件单词及保留字*/if(isalpha(ch) | ch=_)/如果第一个字符为字母或下划线则判断为标识符int i=0;char ch130;/假定每个标识符最长为ch1i+=ch;/将ch保存到ch10中并使i自加1while(!ch=fgetc(fp);if(ch=10)hanjsq+;/如果ch为换行符,则行计数器自加1if(isalpha(ch) | isdigit(ch) | ch=/如果ch为字母、数字或下划线就把ch放到ch1i中并使i自加1ch1i+=ch;if(ch=.)/如果ch为小数点则判断是否为头文件 if(ch=fgetc(fp)=h)

6、/如果小数点后一位为h则判定其为头文件if(ch=10)hanjsq+;ch1i+=ch1i=0/把结束标志放到ch1i中作为单词结束标志printf(line %d:%s83n,hanjsq,ch1);/以字符串形式输出ch1fprintf(fp1,break;else/如果小数点后一位不是h则判定其为标识符fseek(fp,-1,1);/fp回退1%s%dn,hanjsq,ch1,guanjz(ch1);if(!isalpha(ch) & !isdigit(ch) & ch!= &/如果ch不为字母、数字、下划线和点时判断其为标识符ch1i=printf(fprintf(fp1,break;/*扫描数字*/if(isdigit(ch) | ch=-)/如果ch为数字或if(isdigit(ch)/如果ch为数字printf(%c,hanjsq,ch);fprintf(fp1,while(!ch=fgetc(fp);/预读一位如果ch为数字和点则循环输出if(isdigit(ch) | ch=%c,ch);else/

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

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