版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学院:计算机学院班级:学号:一、实验目的与要求通过编写并上机调试一个词法分析程序,掌握在对程序设计语言的源程序进行扫描的过程中,将其分解成各类单词的词法分析方法。二、实验内容选取无符号数的算术四则运算中的各类单词为识别对象,要求将其中的各个单词识别出来。输入:由无符号数和+,*,/,(,)构成的算术表达式,如1.5E+2100。输出:对识别出的每一单词均单行输出其类别码(无符号数的值暂不要求计算)。单词符号类别码(CLASS)单词值(VALUE)无符号数1数字值+2无值3无值*4无值/5无值(6无值)7无值如1(对应1.5E+2)3(对应)1(对应100)三、程序源代码:#includeusi
2、ngnamespacestd;#defineM101/最多可输入的字符数#defineUNSIGNEDNUMBER1/无符号数#definePLUS2/加号#defineSUBTRACT3/减号#defineMULTIPLY4/乘号#defineDIVIDE5/除号#defineLEFTBRACKET6/左括号#defineRIGHTBRACKET7/右括号classAccidenceAnalysis/定义词法分析器类private:chartestStrM,*p;/私有数据public:AccidenceAnalysis();/构造函数voidInputStr();/输入函数voidOutp
3、ut(inta,char*p1,char*p2);/输出函数intIsAcceptantCharacter(char*p);/判断输入字符是否属于字符集intIsOperator(char*p);/判断字符是否是字符集+,-,*,/,(,)中的字符intIsUnsignedNum(char*p);/判断字符是否是0-9的整数voidAbnormityExamine(chara);voidIdentifyOperator(char*p);/识别字符集+,-,*,/,(,)中的字符voidAssortIdentify();/对输入字符分类识别;AccidenceAnalysis:Accidence
4、Analysis()inti;for(i=0;iM;i+)testStri=0;p=&testStr0;/指针P指向字符数组首元素voidAccidenceAnalysis:InputStr()coutvvt请按要求输入您要分析的语句,所输字符应在要求范围(不超过VVMVV)之内,并按回车键运行:;charch;inti=0;while(ch=cin.get()!=n)testStri=ch;i+;AbnormityExamine(testStr);voidAccidenceAnalysis:AbnormityExamine(chara)intj=0;char*ptr1,*ptr2;ptr1=
5、a;ptr2=a;while(*ptr2!=0)j+;if(!IsAcceptantCharacter(ptr2)coutvvt您输入的第vvjvv个字符vv*ptr2vv不可以被此程序识别!将被跳过.vvendl;ptr2+;continue;else*ptr1=*ptr2;ptr1+;ptr2+;while(ptr1=ptr2)*ptr1=0;ptr1+;voidAccidenceAnalysis:Output(inta,char*p1,char*p2)coutvvt类别码:vvavv单词值:;while(p1=p2)cout*p1;p1+;coutendl;intAccidenceAna
6、lysis:IsOperator(char*p)charch=*p;if(ch=+|ch=-|ch=*|ch=/|ch=(|ch=)return1;elsereturn0;intAccidenceAnalysis:IsUnsignedNum(char*p)charch=*p;if(0=ch&ch=9)return1;elsereturn0;intAccidenceAnalysis:IsAcceptantCharacter(char*p)charch=*p;if(IsOperator(p)|IsUnsignedNum(p)|ch=E|ch=.)return1;elsereturn0;voidAc
7、cidenceAnalysis:IdentifyOperator(char*p)charch=*p;switch(ch)case+:Output(PLUS,p,p);break;case-:Output(SUBTRACT,p,p);break;case*:Output(MULTIPLY,p,p);break;case/:Output(DIVIDE,p,p);break;case(:Output(LEFTBRACKET,p,p);break;case):Output(RIGHTBRACKET,p,p);break;default:break;voidAccidenceAnalysis:Assor
8、tIdentify()while(*p!=0)if(IsOperator(p)IdentifyOperator(p+);continue;elseif(IsUnsignedNum(p)|*p=.)char*p1=p;if(IsUnsignedNum(p)while(IsUnsignedNum(p)p+;if(*p=0)Output(UNSIGNEDNUMBER,p1,-p);p+;continue;elseif(*p=E)p+;if(IsUnsignedNum(p)while(IsUnsignedNum(p)p+;Output(UNSIGNEDNUMBER,p1,-p);p+;continue
9、;elseif(*p=+|*p=-)p+;while(IsUnsignedNum(p)p+;Output(UNSIGNEDNUMBER,p1,-p);p+;continue;elseif(*p=.)p+;while(IsUnsignedNum(p)p+;if(*p=0)Output(UNSIGNEDNUMBER,p1,-p);p+;continue;elseif(*p=E)p+;if(IsUnsignedNum(p)while(IsUnsignedNum(p)p+;Output(UNSIGNEDNUMBER,p1,-p);p+;continue;elseif(*p=+|*p=-)p+;whil
10、e(IsUnsignedNum(p)p+;Output(UNSIGNEDNUMBER,p1,-p);p+;continue;elseOutput(UNSIGNEDNUMBER,p1,-p);p+;continue;elseOutput(UNSIGNEDNUMBER,p1,-p);p+;continue;if(*p=.)p+;if(IsUnsignedNum(p)p+;while(IsUnsignedNum(p)p+;if(*p=0)Output(UNSIGNEDNUMBER,p1,-p);p+;continue;elseif(*p=E)p+;if(IsUnsignedNum(p)while(IsUnsignedNum(p)p+;Output(UNSIGNEDNUMBER,p1,-p);p+;continue;elseif(*p=+|*p=-)p+;while(IsUnsignedNum(p)p+;Output(UNSIGNEDNUMBER,p1,-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年养老服务机器人项目营销方案
- 2026年AR导航购物中心项目营销方案
- 2026年医疗健康AI大模型项目营销方案
- 2026年仿生蜜蜂项目投资计划书
- 模板方案楼样本
- 2026贵州铝业集团双元新材料有限责任公司招聘6人备考题库含答案详解(预热题)
- 2026陕西西安市长安区村镇建设管理站公益性岗位招聘8人备考题库有完整答案详解
- 2026江西新余高新区国有企业招聘8人备考题库附答案详解(培优a卷)
- 2026江西赣州市龙南市殡葬服务中心招聘会计人员1人备考题库及一套参考答案详解
- 2026年季节性限定消费项目可行性研究报告
- (正式版)DB51∕T 3342-2025 《炉灶用合成液体燃料经营管理规范》
- 江南大学《食品科学与工程》考研真题及答案解析
- 工程咨询行业发展规划方案范文
- 2025年汉语桥的考试题目及答案
- 《TCSUS69-2024智慧水务技术标准》
- 1.1中国的疆域课件-八年级地理上学期湘教版-1
- 收费站消防安全线上培训课件
- 【语文】贵州省贵阳市实验小学小学二年级上册期末试卷
- 妇科单孔腹腔镜手术专家共识(2025版)解读 4
- 海洋碳汇交易机制-洞察及研究
- 《医疗器械分类目录》-国家药品监督管理局-2002年8月28日 发布
评论
0/150
提交评论