1、zhanz+=ch;void pop()/出栈z-;void putzhan()/打印栈内字符for(int i=0;i=j;m-)shuc+=zhongjianm;for(int i=z-1;i0;i-)shuc+=zhani;zh=ding2();if(zh=) /当前比较为i,出栈一次pop();else /当前比较不为i,出栈三次push( /归约到E 归约nshuc+= elsesyn=-1;break;zh=ding();ch=zhongjianj;void loadch()/读入所有字符串int i=0; printf(请输入要进行算符优先分析的字符串:n do ch=getch
2、ar(); progi+=ch; while(ch!void scaner()syn=1; ch=progp+; while(ch=|ch=n ch=progp+; switch(ch) casezhongjianq+=casesyn=0; default: syn=-1;void saomiao()p=0;q=0;scaner();if(syn=-1)输入符号有误! while(syn!=0);void main()loadch();saomiao();if(syn=0)chu();analyse();#Et#t结束nif (syn=0)该字符串可被文法识别nEfor(int i=c;=0;printf(,shui);该字符串不可被文法识别n