- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
词法分析程序
专业课程设计II题目:专业学生姓名班级学号指导教师指导单位日期词法分析程序的构造课题内容和要求基本功能:通过状态转换图构造C或者PASCAL语言子集的词法分析程序。例如选取了C语言,选取其中一个子集,例如包含了部分关键字main、float、if、for等等,特殊符号( 、、=、+等等,特殊定义的标识符变量以及部分常量等,采用《编译原理》词法分析中有穷自动机的思想构建出该语言子集的状态转换图,并编码实现。要求将选取的语言子集编写一个简单程序,放在一个文本文件中;要将一个个单词区分清楚并归类(例如for属于关键字),词法分析程序作一遍扫描,采用双缓冲区结构。并且如vc将关键字着色以加以识别。二、概要设计状态装换图功能模块核心代码:1)、数据类型定义:extern struct table //保留字(关键字)和各自的编码{ int id; char code[10];};struct table key[100] = {{100,main},{101,int},{102,char},{103,if},{104,else},{105,for},{106,while},{107,ERROR},};int a=200; //自定义变量编码int b=300; //数字编码int d=400; //运算符编码int e=500; //分隔符编码int f=600; //关系运算符编码2)、函数调用void scanner(FILE *fp) //读取文件内容,并加以识别判断int reserve(char* p) //识别判断是否为关键字函数void output(int t,char *s) //输出函数3)、状态判断void scanner(FILE *fp){if(isalpha(ch)) //如果是字母{token[0]=ch;i=1;ch=fgetc(fp);while(isalpha(ch)||isalnum(ch)) //循环接受字母{token[i]=ch; //放入数组中i++;ch=fgetc(fp);}fseek(fp,-1,1);token[i]=\0;c=reserve(token); //判断是否为关键字if(c!=-1){ output(c,token);}elseoutput(a++,token);}else if(isdigit(ch)) //如果是数字{token[0]=ch;ch=fgetc(fp);i=1;while(isdigit(ch)) //循环接受{token[i]=ch;i++;ch=fgetc(fp);}token[i]=\0;fseek(fp,-1,1);output(b++,token);}else switch(ch) //判断是否为符号{ case(:output(e++,();break; //是否为(,是则输出 case):output(e++,));break; //是否为),是则输出 case[:output(e++,[);break; //是否为[,是则输出 case]:output(e++,]);break; //是否为],是则输出 case{:output(e++,{);break; //是否为{,是则输出 case}:output(e++,});break; //是否为},是则输出 case,:output(e++,,);break; //是否为,,是则输出 case::output(e++,:);break; //是否为:,是则输出 case;:output(e++,;);break; //是否为;,是则输出 case:output(e++,\);b
您可能关注的文档
- 证明哥德巴赫猜想的一个新思路.doc
- 证明大气压强存在的小实验.docx
- 证明膜蛋白流动性的经典实验.doc
- 证明方式及对现行法的修订发展与协调.doc
- 证明角相等的方法teacher.doc
- 证章管理制度.doc
- 证言强奸证言强奸案的应用.doc
- 评二元论评二元论理论模式的应用.doc
- 评价作为一种价值评判过程.doc
- 评价器方案.doc
- 人教A版高中数学必修一1.1 集合的概念专练(含解析)(80) .pdf
- 人教版九年级美术上册《线材造型》教案2篇 .pdf
- 人教版初中生物七年级上册第一单元生物和生物圈知识点总结归纳.pdf
- 人教版七年级生物上册 第二单元第一章《细胞是生命活动的基本单位》测.pdf
- 人教版八年级物理上册第一章声现象教案 .pdf
- 仓储管理员练习题库(附参考答案) .pdf
- 人教版八年级上册数学第14章 整式的乘法与因式分解 单元测试卷 3套(W.pdf
- 人教A版2019必修第一册 高一数学 4 .pdf
- 人教版八年级物理下册第九章压强第4节流体压强与流速的关系.pdf
- 以感恩为主题的演讲稿800字5篇 .pdf
最近下载
- “双减”政策下初中数学分层作业设计的实践与探究 .pdf
- 《My family photo》(教学设计)-2024-2025学年冀教版(2024)初中英语七年级上册.docx VIP
- 国开电大《创业教育(创业教育专)》形考1-3及综合答案.pdf VIP
- ISO 10009-2024 质量管理——质量工具及其应用指南(中文版-雷泽佳译2024-07).docx VIP
- 人教版初中英语八年级上册 Unit 7 大单元作业设计案例 .pdf
- 美国国父——华盛顿课件.ppt
- 渔父文化内涵.doc VIP
- 2025年合肥市轨道交通集团有限公司校园招聘934人笔试备考题库及答案解析.docx
- 腰椎穿刺术教师赛教案.docx
- 产后大出血的抢救.pptx VIP
文档评论(0)