无符号数的词法分析程序

无符号数的词法分析程序

ID:46447273

大小:32.50 KB

页数:4页

时间:2019-11-23

无符号数的词法分析程序_第1页
无符号数的词法分析程序_第2页
无符号数的词法分析程序_第3页
无符号数的词法分析程序_第4页
资源描述:

《无符号数的词法分析程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、#include#include#include#includeusingnamespacestd;intw=0;//尾数累加器intp=0;//指数累加器intj=0;//十进制小数位数计数器inte=1;//用来记录十进制数的符号,当指数为正时为1,为负时为-1inti=0;//用来标志元素位置intd=0;//用来表示每个数值型元素对应的数值constintN=40;//用来确定输入识别符的最大长度chardata[N];//存放输入的识别符boolis

2、_digit;//标志是否是数字stringCJ1;//确定是整形还是实型doubleCJ2;//记数值//函数声明voidcheck(charc);//检查首字母是否是数字的函数voiddeal_integer(charc);//处理识别符的整数部分voiddeal_point(charc);//用来处理小数部分voiddeal_index(charc);//用来处理指数部分voids_next();//确定实型voidz_next();//确定整型voidlast();//计算CJ2voiderror();//程序中错误处

3、理程序voiddeal();//处理函数主体intmain(){//主函数cout<<"pleaseinputyourdata,anditsmaximumlengthis"<>data;deal();//处理函数主体last();//计算CJ2system("pause");return0;}voidcheck(charc)//判断输入的首字母是否是数字{is_digit=isdigit(c);while(is_digit!=true){//输入的首字母不是数字时cou

4、t<<"Error!Tryagain.."<>data;check(data[0]);}}voiddeal_integer(charc){//处理识别符的整数部分d=(int)c-48;w=w*10+d;i++;if(isdigit(data[i])!=0)//下一个仍是数值时,调用程序本身deal_integer(data[i]);}voiddeal_point(charc){//用来处理小数部分inttemp=i;if(isdigit(c)!=0)//是数值字符时deal_integ

5、er(c);else{error();//错误处理程序deal();//处理函数主体}j=i-temp;//记录十进制小数位数}voiddeal_index(charc){//用来处理指数部分if(c=='-'){e=-1;i++;}//是'-'号时else{if(c=='+')i++;//是'+'号时else{if(isdigit(c)==false)//非数值字符时{error();//错误处理程序deal();//处理函数主体}else{d=(int)c-48;//把输入字符转换为整型gotopro2;}}}if(isd

6、igit(data[i])!=0)pro1:d=(int)(data[i])-48;pro2:p=p*10+d;i++;if(isdigit(data[i])!=0)//是数值字符时gotopro1;elseif(data[i]!=''){//非结束标志error();//错误处理程序deal();//处理函数主体}elses_next();//确定实型}voids_next(){//确定实型i--;//退一个字符CJ1="实型";}voidz_next(){//确定整型i--;//退一个字符CJ1="整型";}voidl

7、ast(){//计算CJ2CJ2=w*pow((double)10,e*p-j);cout<>data;p=0;w=0;j=0;//所有全局变量重新初始化e=1;i=0;d=0;//exit(0);}voiddeal(){check(data[0]);//判断输入的首字母是否是数字deal_integer(data[i]);//处理识别符的整

8、数部分if(data[i]=='.'){deal_point(data[++i]);//用来处理小数部分if(data[i]=='e'

9、

10、data[i]=='E')//如果是e或E时deal_index(data[++i]);//用来处理指数部分elseif(data[i]!

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。