全文预览

天津科技大学编译原理实验报告

上传者:菩提 |  格式:doc  |  页数:22 |  大小:176KB

文档介绍
ak; default:cout<<"("<<syn<<","<<token<<")"<<endl;break; }?}while(syn!=0);?getchar();?getchar();}voidscaner(){?for(n=0;n<8;n++)token[n]=NULL;?ch=prog[p++];//读下一个字符送入ch?while(ch=='')//如果为空格,读下一字符?{ ch=prog[p]; p++;?}?if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))//如果ch为字母?{ m=0; while((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))/*如果ch仍为字母(单词),将ch输入token*/ { token[m++]=ch;//当前字符送入token ch=prog[p++];//读下一个字符送入ch } token[m++]='\0';//单词结束 p--; syn=10; for(n=0;n<6;n++)//与关键字表进行比较,确定syn的值 if(!strcmp(token,rwtab[n])) { syn=n+1; break; }?}?elseif((ch>='0'&&ch<='9'))//如果ch为数字?{ { sum=0; while((ch>='0'&&ch<='9'))//如果ch仍为数字(一个数) { sum=sum*10+ch-'0';//ch送入sum,并更新数字 ch=prog[p++];//读下一个字符送入ch } } p--; syn=11; if(sum>32767) syn=-1;//错误?}?elseswitch(ch)//其他字符情况?{?case'<':m=0;token[m++]=ch; ch=prog[p++]; if(ch=='>')

收藏

分享

举报
下载此文档