编译原理实验—词法分析器

编译原理实验—词法分析器

ID:15774993

大小:130.50 KB

页数:8页

时间:2018-08-05

编译原理实验—词法分析器_第1页
编译原理实验—词法分析器_第2页
编译原理实验—词法分析器_第3页
编译原理实验—词法分析器_第4页
编译原理实验—词法分析器_第5页
资源描述:

《编译原理实验—词法分析器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、编译原理实验—词法分析器代码:#include#include#include#include#includeusingnamespacestd;voidout1(inti,char*str){cout<<"("<='a'&&ch<='z

2、')

3、

4、(ch>='A'&&ch<='Z'))return1;elsereturn0;}intIsDigit(charch)//判断ch是否是数字{if(ch>='0'&&ch<='9')return1;elsereturn0;}intGetBC(charch)//判断ch是否是空格{if(ch=='')return1;elsereturn0;}charGetChar(char*str,inti)//返回字符串当前位置的字符{returnstr[i];}voidReserve(char*str)//判断字符串str是关键字还是标识符{charchar1[20][50

5、];strcpy(char1[1],"break");strcpy(char1[2],"char");strcpy(char1[3],"continue");strcpy(char1[4],"do");strcpy(char1[5],"double");strcpy(char1[6],"else");strcpy(char1[7],"extern");strcpy(char1[8],"float");strcpy(char1[9],"for");strcpy(char1[10],"int");strcpy(char1[11],"if");strcpy(char1[1

6、2],"long");strcpy(char1[13],"short");strcpy(char1[14],"static");strcpy(char1[15],"switch");strcpy(char1[16],"void");strcpy(char1[17],"while");inti;intflag=0;for(i=1;i<18;i++){if(strcmp(str,char1[i])==0){flag=i;break;}}if(flag!=0&&str[0]!=0)out1(i,str);//输出关键字elseif(str[0]!=0)out1(70,st

7、r);//输出标识符}voidDTB(char*str)//将str字符串的数字转换成二进制并输出{longsum;inti;ints[100];sum=atoi(str);//字符串转换成整形if(sum==0)out1(80,str);else{for(i=0;sum!=0;i++){s[i]=sum%2;sum=sum/2;}cout<<"("<<80<<",";for(i=i-1;i>=0;i--)cout<

8、//存放单词charstr3[1000];//用于存放从文件中读得的一行字符charfilename[10];//文件名charch='';intj;inti=0;cout<<"请输入文件名:";cin>>filename;memset(str2,0,sizeof(str2));//置空字符串memset(str2,0,sizeof(str3));//置空str3字符串ifstreamfin1(filename);if(!fin1){cout<<"Cannotopenthefile.";//未找到对应文件名的文件exit(1);}while(fin1){fin1

9、.getline(str3,1000);//读出一行字符串strcat(str1,str3);//将文件中的所有字符合并成一个字符串}while(ch){if(IsLetter(ch)){j=0;str2[j++]=ch;ch=GetChar(str1,i++);while(!GetBC(ch)&&(IsLetter(ch)

10、

11、IsDigit(ch)))//字母后是数字或字母并且非空格时则继续向后扫描{if(!GetBC(ch))str2[j++]=ch;ch=GetChar(str1,i++);}Reserve(str2);memset(str2,0,size

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

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

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