一个简单的C语言编译器(7) s1=sos.top(); sos.pop(); m=new Symbol; m->group='D'; m->line=s1->line; sos.push(m); //动作 if(s1->word!="main") err(5,s1->line); code=s4->code; delete s1; delete s2; delete s3; delete s4; break; case 2://OK //S->@=E; log<<"语法分析:S->@=E;"<<endl; ss.pop(); ss.pop(); ss.pop(); ss.pop(); s4=sos.top(); sos.pop(); s3=sos.top(); sos.pop(); s2=sos.top(); sos.pop(); s1=sos.top(); sos.pop(); m=new Symbol; m->group='S'; m->line=s1->line; sos.push(m); //动作 if(lookup(s1->word)) m->code=s3->code+"\tpop ax\n\tmov "+s1->word+",ax\n"; else err(10,s1->line); delete s1; delete s2; delete s3; delete s4; break; case 3://OK //S->{W} log<<"语法分析:S->{W}"<<endl; ss.pop();