www.pudn.com > ll1Analysis.rar > ll1.cpp
#include#include #include #include # define SIZE 40 /*int char_num(char ch) { switch(ch) { case '+':return 0; case '-':return 1; case '*':return 2; case '/':return 3; case '(':return 4; case ')':return 5; case 'i':return 6; case '#':return 7; default :return -1; } } int expression_num(char ch) { switch(ch) { case 'E':return 0; case 'T':return 1; case 'G':return 2; case 'F':return 3; case 'S':return 4; default :return -1; } }*/ int char_num(char ch) { switch(ch) { case 'i':return 0; case '+':return 1; case '*':return 2; case '(':return 3; case ')':return 4; case '#':return 5; default :return -1; } } int expression_num(char ch) { switch(ch) { case 'E':return 0; case 'G':return 1; case 'T':return 2; case 'S':return 3; case 'F':return 4; default :return -1; } } struct anay_str { char *str; }; struct analysis_stack { char *base; char *top; int stacksize; }; char Pop(analysis_stack& S) { if(S.base==S.top) cout<<"字符栈为空,不能输出"; char x=*(--S.top); //cout<<"出栈字符为"< =0) { if(*(m.top-1)==In_putstr[j]) { Pop(m); cout<<"\""< "< =0;i--) /////////////////////// Push(m,store[num1][num2].str[i]); if(*(m.top-1)=='e') { Pop(m); continue; } } } } if(*(m.top-1)=='#'&&In_putstr[j]=='#') { cout<