




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南华大学计算机科学与技术学院实验报告 ( 2011 2012 学年度 第二学期 )课程名称程序设计与编译实验名称 词法分析姓名王郑朋学号20104030336专业电气信息类班级 1003地点 8教教师 曹军一 实验目的 设计、编写并调试一个词法分析的程序,加深对词法分析原理的理解。具体如下: 1.组织源程序的输入; 2.拼出单词并转换成机内表示形式,形成单词序列,符号表文件; 3.删除空格; 4.发现并定位词法错误。二 实验要求 1.能对任何语言源程序进行分析 2.能检查出某些词法错误 词法分析程序应给出错误信息,如非法字符,以数字开头的字母串以及标识符长度溢出。三 实验代码#include#include#include#includeusing namespace std;#define MAX 50 char ch = ;string keyword50=bool,break,case,include,char,const, continue,default,do,double,else,false, float,for,if,int,long,namespace,new,return, short,signed,struct,switch,true,using,void,while ,then ;int gjz(string c) int i; for(i=0;iMAX;i+) if(pare(c)=0) return 1; return 0;int zm(char c) if(c=a)|(c=A) return 1; else return 0;int num(char c) if(c=0&c=9) return 1; else return 0;void caculate(FILE *fpin)ofstream out(mytest.txt,ios:out);string arr=; while(ch=fgetc(fpin)!=EOF) arr=; if(ch= |ch=t|ch=n) else if(zm(ch) while(zm(ch)|num(ch) arr=arr+ch; ch=fgetc(fpin); fseek(fpin,-1L,SEEK_CUR); if (gjz(arr)outarrt1t关键字endl; else outarrt2t标识符endl; else if(num(ch) while(num(ch)|ch=.&num(fgetc(fpin)|fgetc(fpin)=e|ch=e) if(ch=.) fseek(fpin,-1L,SEEK_CUR); arr=arr+ch; if(ch=e) ch=fgetc(fpin); if( ch=+) arr+=+; else arr+=-, fseek(fpin,-1L,SEEK_CUR); ch=fgetc(fpin); fseek(fpin,-3L,SEEK_CUR); outarrt3t无符号数endl; else switch(ch) case+: case- : case* : case= : case/ :outch t4t运算符endl;break; case( : case) : case : case : case; : case# : case. : case, : case : case :outch t5t界限符endl;break; case : string string1=; do string1+=ch; ch=fgetc(fpin); while (ch!=); string1+=ch;outstring1t6t字符串endl; break; case: :ch=fgetc(fpin); if(ch=) out:= t4t运算符endl;else out= t4t运算符endl; fseek(fpin,-1L,SEEK_CUR); break; case :ch=fgetc(fpin); if(ch=)out= t4t运算符endl; if(ch=a)|(ch=A) fseek(fpin,-1L,SEEK_CUR);out t5t界限符endl;else if(ch=)out t7t控制符) out t4t运算符endl; elseout t4t运算符 :ch=fgetc(fpin); if(ch=) out= t4t运算符)out t7t控制符endl; if(ch=n)fseek(fpin,-1L,SEEK_CUR);out t5t界限符endl;else out t4t运算符endl; fseek(fpin,-1L,SEEK_CUR); break; default : outch t无法识别字符x;coutxx;cout.width(20);coutxx;cout.width(20);coutxendl;int main() char in_fn30; FILE * fpin; coutin_fn; if(fpin=fopen(in_fn,r)!=NULL) break; else cout文件路径错误!请输入源文件名(包括路径和后缀名):; coutn*词法分析工作如下*endl; caculate(fpin); fclose(fpin); coutendl; read(); coutn*参看本目录下的mytest.txt*endl; system(pause); return 0; 四 实验结果五 实验总结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 薯类批发商市场供需分析考核试卷
- 贸易代理国际市场进入与扩张策略考核试卷
- 集成服务在智能电网分布式能源管理的实现考核试卷
- 拍卖行拍卖业务智能化发展路径考核试卷
- 热扎带刚车间设计
- 麻醉科无痛技术临床应用与发展
- 寓言故事汇报展示
- 服装设计产品开发全流程
- Siphonaxanthin-生命科学试剂-MCE
- Anticonvulsant-agent-10-生命科学试剂-MCE
- 非遗文化掐丝珐琅景泰蓝
- 电动葫芦考试题及答案
- 2025广东省劳动合同样本
- 2025餐饮兼职合同样本
- 农资安全宣传课件
- 绿色营销试题及答案详解
- 2025年三级电子商务师(网商)理论考试题库(浓缩500题)
- 2025年下半年浙江省杭州建德市部分事业单位招聘(134人)易考易错模拟试题(共500题)试卷后附参考答案
- 2026年上海中考英语一轮复习:考纲词汇一词多义词清单
- 译文文学性再现与译者主体性发挥的对比研究
- 炎症性肠病营养治疗专家共识(第三版)解读课件
评论
0/150
提交评论