}
}q[20]; Word结构体
这个结构体的对要用来存储单个单词,包括一个字符串成员。 struct word { char w[10]; void print() { cout< } }wr[200]; 逆波兰式结构体 这个结构体的对象用来存储逆波兰式,它的成员是一个word数组struct nipolan { word nibolan[100]; } n; 翻译器类 用来存储翻译过程中的各个变量以及声明主要的函数: class interpreter { private: ifstream SourceFile; char buffercode[200];//存放源码的缓冲区 int syn; int current;//buffercode中当前读到的字符下标 char token[8];//记录当前读到的单词 public: 5 void scaner(); void B(); void B1(); void T(); void F(); void T1(); void run(); void read(); void bolon(); void toword(); char *factor(); char *expression(); char *term(); void bolan(); void reset() { current=0; }; void run1() { scaner(); expression(); }; }; 源程序: /* B TB′ B′ and T B′ T FT ′ ε6 | T′ or FT′|ε F not F |true|false |(B)| i rop i */ #include char arg2[8]; void print() { cout< } }q[20]; void qemit(char a[],char b[],char c[],char d[]) { strcpy(q[numberofquad].result,a); strcpy(q[numberofquad].arg1,b); strcpy(q[numberofquad].op,c); strcpy(q[numberofquad].arg2,d); 7 numberofquad++; } char* newtemp() { char *p; int temp=numberoftemp; p=new char[8]; p[0]='t'; for(int i=0;;i++) { p[++i]=char(temp+48); temp=temp/10; if (temp==0) {p[i+1]='\\0'; break;} } numberoftemp++; return p; }; struct word { char w[10]; void print() { cout< } }wr[200]; struct nipolan { word nibolan[100]; } n; 8