Pascal News
Pascal News
Pascal News
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
3137<br />
3138<br />
3139<br />
31~0<br />
3141<br />
3142<br />
31~3<br />
31~4<br />
3145<br />
31~6<br />
31~7<br />
31~8<br />
3149<br />
3150<br />
3151<br />
3152<br />
3153<br />
3154<br />
3155<br />
3156<br />
3157<br />
3158<br />
3159<br />
3160<br />
3161<br />
3162<br />
3163<br />
3164<br />
3165<br />
3166<br />
3167<br />
3168<br />
3169<br />
3170<br />
3171<br />
3172<br />
3173<br />
317~<br />
3175<br />
3176<br />
3178<br />
3180<br />
3181<br />
3182<br />
3183<br />
3184<br />
3185<br />
3186<br />
3187<br />
3188<br />
3189<br />
3190<br />
3191<br />
3192<br />
gend(ps fwe,letdlb); gend(op beg,letdlb);<br />
{the bodY-itself} -<br />
lcmax:=lc; currproc:=fip;<br />
eOlllpoundstatement( fsys ,+0266); {+02671<br />
lcmax:=address(lcmax,O,false); {align lemax}<br />
trace( 'procexit' ,fip,namdlb);<br />
{undefined or global labels}<br />
Up: =lehain ;<br />
.... ile IIpnil do<br />
begin if not llp~ .seen then errint(+0268,Up~ .labval);<br />
if llp~ .1abdlb0 then<br />
begin gendlb( Up~ .labdlb); genpnam(ps rom ,fip);<br />
genelb(llp~.labname); genest(lcmax); genend;<br />
{this doesn't work if local generators are around}<br />
end;<br />
Up:=llp~ .nextlp<br />
end;<br />
{define BUG size}<br />
gend(ps let ,letdlb); genest( lcmax-fip~ .headle);<br />
{finish and close files}<br />
treewalk( top~ .fname);<br />
if level=1 then<br />
begin gendlb(tnidlb); gen1(ps eon,arge+ll;<br />
for i: =0 to argc do with argyl 1l do<br />
begin gencst(ad);<br />
if (ad=-1) and (i>1) then errid(+0269,name)<br />
end.<br />
genend; gen1(op_mrk,O); gen1(op_loc,O); gensp(HLT)<br />
end<br />
else<br />
begin<br />
if fip~ .klassfunc then sz: =0 else<br />
begin<br />
if not (assigned in fip~ .iflag) then<br />
errid(-(+0270) ,fip~ .name);<br />
sz:=even(sizeof( f1p~ .1dtype»; push(local,fip~ .pfpos.ad,sz);<br />
end;<br />
gen1(op ret,sz); genO(ps_end);<br />
end -<br />
end end;<br />
{= ==== == = = ====== == = ==== = = === = ==== = = == == = = == = = = == == = = = = = = == = = = = = == = == }<br />
procedure block; {forward declared}<br />
var ad : integer ;<br />
begin with b do begin<br />
assert [labelsy•• withsyl