如何用C++中的栈实现编译原理中的简单优先算法

#include "stdafx.h"
#include "MyStack.h"
#include
using namespace std;
char V[8]={'S','b','A','(','B','a',')','#'};
char M[8][8]={ ' ',' ',' ',' ',' ',' ',' ','>',

' ',' ','=','<',' ','<',' ','>',

' ','=',' ',' ',' ','=',' ',' ',

' ',' ','<','<','=','<',' ',' ',
' ','>',' ',' ',' ','>',' ',' ',
' ','>',' ',' ',' ','>','=',' ',
' ','>',' ',' ',' ','>',' ',' ',
'<','<',' ',' ',' ',' ','<','=' };
struct PRO{ //产ú生Θ?式?类え?型í
char left;
char right[10];
};
PRO P[4]={'S',"bAb",'A',"(B",'A',"a",'B',"Aa)"};
int reN(char c){
for(int i=0;i<8;i++){
if(c==V[i]) return i;
}
return -1;
}
int _tmain(int argc, _TCHAR* argv[]){
char w[20];
cout<<"Please input a string to be analyzed(end by #):"<<endl;
gets(w);
int ip=0;

cout<<M[reN('#')][reN('b')];

for(int i=0; i<4;i++)
{
    if(!strcmp(tmp,P[i].right)){
        st.push(P[i].left);
        break;
    }
}
return 0;

剩下的不会写了..求大神

http://download.csdn.net/download/u010881602/5541521