- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北邮编译原理-词法分析文档和程序
实验报告班级:2011211314姓名: oneseven学号:一.题目:词法分析程序设计与实现二.实验内容:设计并实现 C 语言的词法分析程序,要求如下。(1) 可以识别出用C语言编写的源程序中的每个单词符号,并以记号的形式输出每个单词符号。(2) 可以识别并读取源程序中的注释。(3) 可以统计源程序中的语句行数、单词个数和字符个数,其中标点和空格不计算为单词,并输出统计结果。(4) 检查源程序中存在的非法字符错误,并可以报告错误所在的行列位置。三.实现要求:采用C/C++作为实现语言,手工编写词法分析程序。四.实现功能:基本完成了实验内容中要求的所有功能。(1)识别出源程序中的每个单词符号,并以记号的形式输出每个单词符号(2)识别并读取源程序中的注释(3) 统计源程序中的语句行数、单词个数和字符个数(4) 检查源程序中存在的非法字符错误,并可以报告错误所在的行列位置。注:本程序未把注释中的单词符号,“”中的单词符号统计在单词个数中。单词个数只包括了标示符,关键字,无符号数。五.实验原理:1.词法分析程序的功能:?输入源程序,输出单词符号的记号形式,如图所示: 源程序词法分析器单词符号的记号形式2.处理过程:每次调用词法分析程序,它均能自动继续扫描下去,形成下一个单词,直至整个源程序全部扫描完毕,并形成相应的单词串形式的源程序。?六.代码#includeiostream #includefstream#includestring#include iomanipusing namespace std;string keyword[32]={auto,break,case,char,const, //关键字 continue,default,do,double,else,extern, enum,float,for,goto,if,int,long,return, register,static,short,signed,unsigned, struct,switch,sizeof,typedef,union, volatile,void,while};int column=0,row=1,character=0,word=0; ifstream inf(test.txt,ios::in);char c;int find_key(string word) //匹配关键字 { for(int i=0;i32;i++) if(keyword[i].compare(word)==0) return 1; return 0; }void choice(){ while(c==\n||c== ||c==\t) //不计空白符 { if (c==\n) { row++; column=0; //row清零,重新计数另一行 } c=inf.get(); column++; } return; }void get() //读取字符 { character++; c=inf.get(); column++; return; }int process(){ string str=; if(inf.fail()) cout请创建test.txt并输入程序endl; else { ofstream outf(out.txt); outfsetw(10)正规表达式setw(30)记号setw(30)属性endl; c=inf.get(); column++; while(c!=EOF) { switch(c){ //匹配字符对应记号 case a...z: case A...Z: case _: word++; while(isalpha(c)||isdigit(c)||c==_) { str+=c; get(); } if(c==@||c==?||c==$||c==#) { int tag=column; while(isalpha(c)||isdigit(c)||c==_||c==@||c==?||c==$||c==#) { str+=c; get(); } outfsetw(10)strsetw(30)ERRORsetw(30)错误在第row行第tag列endl; str=; break; } if(find_key(str)) { outfsetw(10)strsetw(30)strsetw(30)关键字endl; str=; } else { outfsetw(10)strsetw(30)idsetw(30)标示符endl; str=; } brea
您可能关注的文档
- 关于一汽货源流失原因分析及对策.doc
- 关于上海市浙江省现代农业示范园区考察报告.doc
- 关于个人数字图书馆资源共享的思考.doc
- 关于中国书法特征和保护的论文.doc
- 关于产后子宫复旧的机理以及复旧程度的检测与促进的总结.doc
- 关于人员编制核定机构设置与干部岗位设置的方案.doc
- 关于关系数据库内存数据库实时数据库的比较.doc
- 关于函数y=f(x)的理解与分析周勇.doc
- 公务员培训依法治国与依法行政考试试题与答案(得分的才是正确答案).doc
- 关于向社会力量购买公共体育服务专题调研报告(六安市蚌埠市调研组).doc
- 综合解析苏科版八年级物理下册《力与运动》综合练习试卷(详解版).docx
- 综合解析苏科版八年级物理下册《力与运动》综合练习试题(详解).docx
- 综合解析苏科版八年级物理下册《力与运动》综合练习试卷(含答案解析).docx
- 电池技术迭代对新能源汽车充电设施布局的影响报告.docx
- 综合解析苏科版八年级物理下册《力与运动》综合练习试题(含解析).docx
- 综合解析苏科版八年级物理下册《力与运动》综合练习试题(含详细解析).docx
- 乡镇农机年度工作总结PPT.pptx
- AI伦理与合规2025:人工智能在零售业的应用与消费者权益保护.docx
- 综合解析苏科版八年级物理下册《力与运动》综合测试试题(含答案解析).docx
- 综合解析苏科版八年级物理下册《力与运动》综合测试试题(含解析).docx
文档评论(0)