算符优先分析器源代码: #include #include #define MAX 100 using namespace std; struct Stack //符号栈 { char data[MAX]; int top; }; char Terminal[6]={';','(',')','a','+','#'}; //终结符集合 char Table[6][6]={ //算符优先关系表 {'>', '<', '>', '<', '>', '>'}, {'<', '<', '=', '<', '<', '!'}, {'>', '>', '>', '!', '>', '>'}, {'>', '>', '>', '!', '>', '>'}, {'<', '<', '>', '<', '>', '!'}, {'<', '<', '!', '<', '!', '='} }; //判断是否为终结符,是返回其所在位置i,否则返回-1 int Is_Vt(char ch,char Terminal[6]) { int i; for(i=0;i<6;i++) { if(ch==Terminal[i]) //输入符为终结符 return i; } return -1; } //读入输入串,返回其长度 int Getchar(int length,char String[MAX]) { int i; cout<<"*****输入字符串的长度 length="; cin>>length; cout<>String[i]; return length; } void PrintStack(Stack &st, int top) //输出栈中的内容 { for(int i=0;i<=top;i++) cout<