ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:161.80KB ,
资源ID:13348659      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13348659.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(精品词法分析器设计文档格式.docx)为本站会员(b****0)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

精品词法分析器设计文档格式.docx

1、圆括号(左、右)用于表达式中,用于改变运算的优先级,以及标识函数的参数;分号用于标识一个语句的结束。ftn();6、初等函数运算语言支持的常量还包括:PI,E.PI|E2DFA2.3状态转换表_字符数字运算符小数点12、42342、2.4记号表3、实验程序清单function.cppmains。cppname.hwordID.txt4、调试过程和运行结果5、x=0。5PI;y=E;?1/3*(ln(y)+5sin(x)+(7+z)2;程序的主要部分及其功能说明函数声明-name.h-#includeusingnamespacestd;constintMax=1000;conststringFu

2、nctionName=”sin,”cos”,tg”,ctg,”log,”lg”,ln”,”PI”,”E”; /关键字classOperateprivate: stringstr; /输入的字符串 stringwordMax; /输出的结果 intnumMax; /输出的类型public: intstartPostion; /字符开始位置 intnowPostion; /字符当前位置 intlength; /结果个数 Operate(strings); voidgetWordAndNum(); boolisNumber(charc); boolisChar(charc); /boolisChar

3、(charc); intisOperaters(charc); boolisblank(charc); voidaddWords(strings,intn);;intisKey(stringstr);voidwork(stringstr);-function.cpp-函数定义-function.cpp-includeiomanip#includestring#include”name。h/Operate类定义 Operate:Operate(strings) str=s; startPostion=0; nowPostion=0; length=0; voidOperate:getWordAn

4、dNum() for(inti=0;i=(length-1);i+) coutsetw(10)wordi,”setw(3)numin”; boolOperate:isNumber(charc) if(c=0&c=9)returntrue;returnfalse;isChar(charc) if(c=a&c=z)|(c=Ac=Z)|c=_)returntrue;returnfalse; intOperate:isOperaters(charc) switch(c) case?return10;case;:return11;(return12;)return13;+return14;caseret

5、urn15;casereturn16;/return17; case=:return18;casereturn19; default:return0;;isblank(charc)t:casen voidOperate:addWords(strings,intn) wordlength=s; numlength=n; length+=1; /其他函数 /是否是关键字,是返回序号,否返回0 intisKey(stringstr)9; if(str=FunctionNamei) returni+1; return0; voidwork(stringstr) intlongs=str。length(

6、); stringaword; charc; /当前字符 intstate=0; /状态 intnumber=0; /类型 Operateop(str); while(true) /读取字符 if(op.nowPostion=longs) break; else c=strop。nowPostion; switch(state) case0:/初始状态 if(c=$ break; /如果是运算符 /保存当前运算符,startPostion=nowPostion=+1 number=op。isOperaters(c); if(number0) op。addWords(str.substr(op.

7、startPostion,1),number); op.nowPostion+; op.startPostion=op。nowPostion; if(op.isblank(c)nowPostion+; break; /如果是字符 if(op。isChar(c) state=1; if(c=1&9) state=4; op.nowPostion+; if(c=0 state=2; break; case1:/识别字符串 if(op.isChar(c)|op。isNumber(c) /否则的话,完成当前标识符的识别 number=20; aword=str。substr(op.startPosti

8、on,op.nowPostionop。startPostion); if(isKey(aword)0) number=isKey(aword); op.addWords(aword,number); op。startPostion=op。nowPostion; state=0; case2:/识别0,若下一个字符不是小数点。则显示输入错误,跳过0,读取下一个字符 if(c=。 state=3;isOperaters(c)0) state=0; op.addWords(0开头,输入错误!跳过”,0); state=0; case3:/识别09 if(op.isNumber(c)nowPostion+; op.addWords(str.substr(op.startPostion,op.nowPostion-op。startPostion),21);startPostion=op.nowPostion; case4:/识别1-9isNumber(c) /识别整数 if(c=。) /识别小数n

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1