这个语法分析器应该算是很老版本的了,被我修改过
语法分析器C++源代码 供参考
#include #include #include typedef struct { char R; char r; int flag; }array; typedef struct { char E; char e; }charLode; typedef struct { charLode *base; int top; }charstack; char str[80][80],arr[80][80],brr[80][80]; array F[20]; int m,kk,p,ppp,FF=1; char r[10]; int crr[20][20],FLAG=0; char ccrr1[1][20],ccrr2[20][1]; void Initstack(charstack &s)//定义栈 { s
base=new charLode[20]; s
top=-1; } void push(charstack &s,charLode w) //入栈 { s
top++; s
base[s
base[s
e; } void pop(charstack &s,charLode &w) //出栈 { w
base[s
base[s
top--; } int IsEmpty(charstack s) //判断是否到栈顶 { if(s
top==-1) return 1; else return 0; } int IsLetter(char ch) //判断是不是大写字母(非终结符) { if(ch>='A'&&ch