下载此文档

编译原理算符优先文法.doc


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
编译原理算符优先文法//算符优先分析器源代码:#include<iostream>#include<iomanip>#defineMAX100usingnamespacestd;structStack//符号栈{chardata[MAX];inttop;};charTerminal[6]={'+','*','w','(',')','#'};//终结符集合charTable[6][6]={//算符优先关系表{'>','<','<','<','>','>'},{'>','>','<','<','>','>'},{'>','>','!','!','>','>'},{'<','<','<','<','=','!'},{'>','>','!','!','>','>'},{'<','<','<','<','!','='}};//判断是否为终结符,是返回其所在位置i,否则返回-1intIs_Vt(charch,charTerminal[6]){inti;for(i=0;i<6;i++){if(ch==Terminal[i])//输入符为终结符returni;}return-1;}//读入输入串,返回其长度intGetchar(intlength,charString[MAX]){inti;cout<<"*****输入字符串的长度length=";cin>>length;cout<<endl<<"*****该输入串为:";for(i=0;i<length;i++)cin>>String[i];returnlength;}voidPrintStack(Stack&st,inttop)//输出栈中的内容{for(inti=0;i<=top;i++)cout<<[i]<<"";cout<<"\t\t";}intmain(){Stackst;intlength=0,Len,k;charString[MAX],ch;Len=Getchar(length,String);//获得输入串intj=0;ch=String[j];//=0;[]='#';//将'#'入栈cout<<endl<<"**************************分析过程**************************"<<endl;cout<<"符号栈"<<setw(15)<<"当前符号"<<setw(15)<<"剩余输入串"<<setw(20)<<"移进或归约"<<endl;//输出格式while(!=1||ch!='#'){if(Is_Vt(ch,Terminal)!=-1)//输入符为终结符{k=Is_Vt(ch,Terminal);//获取分析表Table的第二个下标intm,t;//t指向终结符在栈中的位置if(Is_Vt([],Terminal)!=-1)//栈顶为终结符{m=Is_Vt([],Terminal);//获取分析表Table的第一个下标t=;}else//栈顶为非终结符,看top-1{m=Is_Vt([-1],Terminal);//获取分析表Table的第一个下标t=-1;}if(Tabl

编译原理算符优先文法 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人文库旗舰店
  • 文件大小19 KB
  • 时间2019-12-11
最近更新