全文预览

小型编译程序高级语言到四元式的编译

上传者:相惜 |  格式:docx  |  页数:23 |  大小:41KB

文档介绍
******************/Рvoid readnu()Р{Рif(pbuf->sy1>=0)Р{Рn.sy1=pbuf->sy1;Рn.pos=pbuf->pos;Рpbuf++;Р}Р}Р/****************?中间变量的生成?************************/Рnewtemp()Р{Рnewt++;Рreturn newt;Р}Р/*********************?生成四元式 *************************/Рgen(char op1[],struct aa arg11,struct aa arg22,int result1)Р{Рstrcpy(fexp[nxq].op,op1);Рfexp[nxq].arg1.sy1=arg11.sy1;Рfexp[nxq].arg1.pos=arg11.pos;Рfexp[nxq].arg2.sy1=arg22.sy1;Рfexp[nxq].arg2.pos=arg22.pos;Рfexp[nxq].result=result1;Рnxq++;Рreturn nxq-1;Р}Р/***************?布尔表示式的匹配?****************/Рmerg(int p1,int p2)Р{Рint p;Рif(p2==0) return p1;РelseР{Рp=p2;Рwhile(fexp[p].result!=0) p=fexp[p].result;Рfexp[p].result=p1;Рreturn p2;Р}Р}Рvoid backpatch(int p,int t)Р{Рint tempq;Рint q;Рq=p;Рwhile(q!=0)Р{Рtempq=fexp[q].result;Рfexp[q].result=t;Рq=tempq;

收藏

分享

举报
下载此文档