全文预览

《编译原理》课程设计说明书 do while循环语句的翻译程序设计(lr方法、输出三地址表示)

上传者:科技星球 |  格式:doc  |  页数:61 |  大小:193KB

文档介绍
sillegal=1;break;}Р numchange=Action(state,numchange,outfile);Р?}Р?if(isillegal==0)Р?{Р cout<<setw(4)<<step++<<" ";Р state.showState();Р cout<<setw(8)<<"acc"<<endl;?Р?}Р?cout<<"processing semantic analysis"<<endl;system("PAUSE");Р}Р关键的状态转移函数ACTION和GOTOРint Action(State &state,int actionnum,ofstream &outfile) Р{Р?int row=0,col=0,numchange=0;Р?int choice=0;Р?int ct=100;Р?int m=0;Р?Р?if(actionnum>=1&&actionnum<=18)choice=1;Р?else choice =actionnum;Р?switch(choice)Р?{Р case 0:Р {Р isillegal=1; Р cout<<"isillegal="<<isillegal<<endl;Р break;Р }Р case 1://移进项目Р {Р?Р cout<<setw(4)<<step++<<" ";Р state.showState();Р cout<<setw(8)<<actionnum<<endl;Р?Р state.CurState++;?state.stkState[state.CurState]=actionnum; Р state.CurSymbol++; strcpy(state.stkSymbol[state.CurSymbol],state.InStr[state.CurInstr]);

收藏

分享

举报
下载此文档