一个简单的C语言编译器(16) m->line=s1->line; sos.push(m); //动作 m->code=s2->code; delete s1; delete s2; delete s3; break; case 18://OK //E->E+T log<<"语法分析:E->E+T"<<endl; ss.pop(); ss.pop(); ss.pop(); s3=sos.top(); sos.pop(); s2=sos.top(); sos.pop(); s1=sos.top(); sos.pop(); m=new Symbol; m->line=s1->line; m->group='E'; sos.push(m); //动作 if(s2->word=="+") m->code=s3->code+s1->code+"\tpop ax\n\tpop bx\n\tadd ax,bx\n\tpush ax\n"; if(s2->word=="-") m->code=s3->code+s1->code+"\tpop ax\n\tpop bx\n\tsub ax,bx\n\tpush ax\n"; delete s1; delete s2; delete s3; break; case 19://OK //E->T log<<"语法分析:E->T"<<endl; ss.pop(); s1=sos.top(); sos.pop(); m=new Symbol; m->group='E'; m->line=s1->line; sos.push(m); //动作 m->code=s1->code;