正在加载图片...
EXpr→EXDr+EXpr的语义动作 int U=NewTemp(); int T=NewTemp(); GEN(itr,$1.PLACE,O,U); if($1.Type==i&&$3.Type==i) GEN(+,U,$3.PLACE,T); GEN(+$1.PLACE,$3.PLACE $$.Type=ri ,T) }else/*($1.Type==r&& $$.Type=i; $3.Type==i)*/ int U=NewTemp(); Helse GEN(itr,$3.PLACE,O,U); if($1.Type==r &$3.Type==r) GEN(+,$1.PLACE,U,T); [GEN(+,$1.PLACE,$3.PLACE $$.Type=ri ,D; $$.Type=r; $.PLACE=T; else if($1.Type==i) /*$3.Type==r*/ Expr→Expr+Expr的语义动作 { int T=NewTemp(); if($1.Type==i && $3.Type==i) {GEN(+i ,$1.PLACE,$3.PLACE ,T); $$.Type=i; }else if($1.Type==r && $3.Type==r) {GEN(+r ,$1.PLACE,$3.PLACE ,T); $$.Type=r; } else if($1.Type==i) /* $3.Type==r*/ { int U=NewTemp(); GEN(itr,$1.PLACE,0,U); GEN(+r ,U,$3.PLACE,T); $$.Type= r ; }else/*($1.Type==r&& $3.Type==i) */ { int U=NewTemp(); GEN(itr,$3.PLACE,0,U); GEN(+r ,$1.PLACE,U,T); $$.Type=r; } $$.PLACE=T; }
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有