- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
仲恺农业工程学院
编译原理课程设计
课程设计题目:词法分析程序
姓 名
院 (系) 计算机科学与工程学院
专业年级 计算机科学与技术075班
学 号 200710214513
指导教师
日 期 2009年12月21日--2009年12月25日
目 录
1、需求分析 1
2、概要设计 1
2.1总体设计: 1
2.2模块设计: 1
2.3模块说明: 1
2.4功能设计: 2
2.5界面设计 2
3、 详细设计 2
3.1词法分析程序:完成初始化 2
3.2词法分析初始化程序 4
3.3识别保留字和标识符 4
3.4识别整数和实数 6
3.5处理除号和注释 8
3.6识别字符 9
3.7识别其他单词 9
3.8输出识别出的单词 10
3.9出错处理 12
3.10查填符号表 12
3.11词法分析流程图 14
4、 测试分析 14
4.1被测试的程序为正确的源程序例1: 14
4.2被测试的程序为错误的源程序例2: 15
4.3被测试的程序为错误的源程序例3: 16
4.4被测试的程序为错误的源程序例4: 16
5、用户手册 17
6、课程总结 18
7、参考文献 18
词法分析程序
1、需求分析
该程序从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号的机内表示。将词法分析程序作为单独的一遍,组织源程序的输入。拼出单词并转换成机内表示形式,形成token文件(单词序列)、Symble文件(符号表文件)。删除注释、空格和无用符号(回车换行符等)。发现并定位词法错误从而列表打印错误信息。
2、概要设计
2.1总体设计:
程序是在VC++环境下开发的,有相关的操作说明,还有操作简单的特点。程序的设计思想是基于编译原理的词法分析思想。
2.2模块设计:
模块结构图
图 2-1 程序结构图
2.3模块说明:
本程序分为三个模块:
(1)初始化模块:完成初始化(准备读写文件),完成保留字编码表初始化。
(2)识别处理模块:对保留字和标识符、整数和实数、除号和注释、字符、其他单词的识别。
(3)返回处理结果模块:出错处理、单词在符号表中则返回0,否则返回1。
2.4功能设计:
能对源程序进行分析;程序运行开始,提示要求输入要被扫描的源程序的文件名,例如source1.txt,source2.txt等。
能检查并处理某些词法错误。
应给出的错误信息包括:总的出错个数、每个错误的编号、错误所在的行号及简要错误说明。至少处理以下三种词法错误,其他错误暂不考虑,即认为不会出现:非法字符。处理方式是删去该字符(即不写入token文件)。不正确的单词,包括以下几种情况数字开头的数字、字母串,如4f3。实数中出现两个小数点,如3.14.15。实数的小数部分出现字母,如5.26B78。处理方法:截去后面出错部分。
2.5界面设计
系统主界面如下图
图2-2 主界面图
详细设计
3.1词法分析程序:完成初始化,并循环调用子模块完成单词识别。
void Scanner()
{
int i=0;
error_count=0;
ScannerInit();
printf( ****************************************\n);
printf( *词法分析器\n);
printf( ****************************************\n);
printf(输入源文件名:);
for(;;)
{
scanf(%c,filename[i]); //读入源程序文件名
if(filename[i]==10)
break;
i++;
}
filename[i]=\0;
if((SourceFin=fopen(filename,rt))==NULL)
{
printf(无法打开文件 %s.\n,filename);
exit(1);
}
if((TokenFout=fopen(token.txt,wt+))==NULL) //打开单词表文件
{
printf(无法打开文件 token.txt.\n);
exit(1);
}
if((SymbleFout=fopen(symble.txt,wt+))==NULL) //打开符号表文件
{
printf(无法打开文件 symble.txt.\n);
exit(1);
}
ch=fgetc(SourceFin); /*读取第一个字符*/
while(ch!=EOF) /*循环处理字符串*/
{
您可能关注的文档
最近下载
- 期末测试卷(试题)-2024-2025学年人教PEP版(2024)英语三年级上册.docx VIP
- 高二年级第一次月考质量分析化学.doc VIP
- 人教部编版小学语文三年级上册期中质量检测试题(答案+评分标准).pdf VIP
- 小红书2023“家生活”趋势白皮书-青年志&安娜&奥维云网-2023-64页.pdf
- 小学生主题班会 垃圾分类(课件).pptx
- 江西省南昌市八年级上学期期中数学试卷附参考答案.pdf VIP
- QC∕T 948-2013 汽车顶部装载装置.pdf
- 2024年浙江事业单位招聘-宁波慈溪市机关事业单位编外招5人考试备考题库及答案解析.docx VIP
- 风险评估及控制管理流程 2023年ISO15189医学实验室管理体系.docx VIP
- 滴灌在园林绿化中的应用及前景.doc VIP
文档评论(0)