(词法分析).doc_第1页
(词法分析).doc_第2页
(词法分析).doc_第3页
(词法分析).doc_第4页
(词法分析).doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

石家庄经济学院实验报告学 院: 华信学院 专 业: 计算机科学与技术 信息工程学院计算机实验中心制目录1. 实验内容-32. 实验目的-33. 实验的内容及完成情况-34. 属性编码表-35. DFA 转换图-46. 测试文档-57. 输出结果-58. 文件保存内容-69. 源代码-710. 实验总结-12编译原理实验报告姓名学号日期2010.9.37实验室实验五指导教师设备编号实 验 题 目实验一 词法分析程序设计一、实验内容(1)任选一个C语言词法子集设计DFA模型(2)要求对C语言词法规则设计编码(3)至少给出2个测试实例(4)用文件输出单词属性表(名字为班号最后2位+学号.txt)二、实验目的1. 熟悉编程环境.2. 掌握词法分析的本质思想.三 实验的内容及完成情况1标识符10Include11iostream12using13namespace14std15int16char17main18cout19cin61数字70=20+21-22*23/24;25#26“27(28)31=3233=414251:52:DFA转换图为: 80808001011611213141517161819217020222324252632230313341440425515227281006lldd+-*/;=#“includeiostreamusingnamespacestdintcincoutcharmain=非=非非=:非:() 测试内容1为:输出结果1为:输出文档1为:测试内容2为: 输出结果2为:输出文档2为程序源代码:#include#include#include#include#includeusing namespace std;char tchar9;char tint18;char tch13;void main()string file_name1; coutfile_name1; ifstream infile(file_name1.c_str(),ios:in); if (!infile) cerr无法打开文件 file_name1.c_str() !endl; exit(-1); coutendl; char f1000; /定义字符数组 infile.getline(f,1000,EOF); /文件的操作,读文件的数据放入F infile.close(); int i=0; int j=0; int k,z=0; string file_name;coutfile_name; ofstream outfile(file_name.c_str(),ios:out); if (!outfile) cerr哦!无法打开文件 file_name.c_str() !endl; exit(-1); outfile*n; outfile# 词法分析结果 #n; outfile*nn; outfilenn#nnn; while(fi) /char f1000;字符数组 if(isalpha(fi) /判断字符是否为字母。j+;elseif(j!=0)for(k=0;kj;k+)tchark=fi-j+k; /把非i中的字符放入字符数组tchar中;tchark=0;string abc=tchar;if(abc=include)cout10setw(16)tcharendl; outfile10setw(16)tcharendl;else if(abc=iostream)cout11setw(16)tcharendl;outfile11setw(16)tcharendl;else if(abc=using)cout12setw(16)tcharendl;outfile12setw(16)tcharendl;else if(abc=namespace)cout13setw(16)tcharendl;outfile13setw(16)tcharendl;else if(abc=std)cout14setw(16)tcharendl;outfile14setw(16)tcharendl;else if(abc=int)cout15setw(16)tcharendl;outfile15setw(16)tcharendl;else if(abc=char)cout16setw(16)tcharendl;outfile16setw(16)tcharendl;else if(abc=main)cout17setw(16)tcharendl;outfile17setw(16)tcharendl;else if(abc=cout)cout18setw(16)tcharendl;outfile18setw(16)tcharendl;else if(abc=cin)cout19setw(16)tcharendl;outfile19setw(16)tcharendl;else cout1setw(16)tcharendl;outfile1setw(16)tcharendl;j=0;if(isdigit(fi) /判断字符是否为数字。z+;elseif(z!=0)for(k=0;kz;k+)tintk=fi-z+k;/把非i中的字符放入字符数组tint中;tintk=0;cout61setw(16)tintendl;/屏幕显示outfile61setw(16)tintendl;/文件输出z=0;switch(fi) case +:cout20setw(16)+endl;outfile20setw(16)+endl;break;case-:cout21setw(16)-endl;outfile21setw(16)-endl;break;case*:cout22setw(16)*endl;outfile22setw(16)*endl;break;case/:cout23setw(16)/endl;outfile23setw(16)/endl;break;case;:cout24setw(16);endl;outfile24setw(16);endl;break;case#:cout25setw(16)#endl;outfile25setw(16)#endl;break;case(:cout27setw(16)(endl;outfile27setw(16)(endl;break;case):cout28setw(16)endl;outfile28setw(16)endl;break;case=:cout70setw(16)=endl;outfile70setw(16)=endl;break;default:break;if(fi=) /要求添加的功能 字符常量cout26setw(16)endl;outfile26setw(16)endl;int n=0; while(fi+1!=)tchn=fi+1;n+;i+; i+;tchn=0;coutsetw(20)tchendl;outfilesetw(20)tchendl;cout26setw(16)endl;outfile26setw(16)endl;if(fi=:)if(fi+1=:)cout51setw(16):endl;outfile51setw(16):endl;i+;elsecout52setw(16):endl;outfile52setw(16):endl;if(fi=)if(fi+1=)cout31setw(16)=endl;outfile31setw(16)=endl;i+;elseif(fi+1=)cout32setw(16)endl;outfile32setw(16)endl;i+;elsecout33setw(16)endl;outfile33setw(16)if(fi+1=)cout40setw(16)=endl;outfile40setw(16)=)cout41setw(16)endl;outfile41setw(16)endl;i+;elsecout42setw(16)endl;outfile42setw(16)endl;i+;coutendl;coutendl;cout-词法分析成功,并以保存在结果文件中-endl;outfilenn*n; outfile.close(); 四、本次实验总结 通过这次实验我更加深刻的理解了词法分析的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论