17.05.2015 Views

Pascal News

Pascal News

Pascal News

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2353<br />

2354<br />

2355<br />

2356<br />

2357<br />

2358<br />

2360<br />

2361<br />

2362<br />

2363<br />

2364<br />

2365<br />

2366<br />

2367<br />

2368<br />

2369<br />

2370<br />

2371<br />

2372<br />

2373<br />

2374<br />

2375<br />

2376<br />

2377<br />

2378<br />

2379<br />

2380<br />

2381<br />

2382<br />

2383<br />

2385<br />

2386<br />

2388<br />

2389<br />

2390<br />

2391<br />

2392<br />

2393<br />

2394<br />

2396<br />

2397<br />

2398<br />

2399<br />

2401<br />

2402<br />

2403<br />

2404<br />

2405<br />

2406<br />

2407<br />

2408<br />

end<br />

else<br />

if iop[m=PAGl=nll then error(+0163) else<br />

gen 1(op lae ,argv[ord(m=PAG)l. ad);<br />

gensp(m); asp: =boolptr; {not for PAG}<br />

end end;<br />

procedure callnd(fsys :sos; m:libmnem);<br />

label 1;<br />

var lsp:sp; sZ,int:integer;<br />

begin with a do begin<br />

if not formof(asp,[pointerl) then asperr(+0164) else<br />

if asp=stringptr then asperr(+0165) else<br />

asp: =asp ..... el type;<br />

while find3(comma,fsys,+0166) do<br />

begin<br />

if aspnil then {asp of form record or variant}<br />

if aspA.form=records then asp:=asp·.tagsp else<br />

if asp' .form=variant then asp:=asp' .subtsp else asperr(+0167);<br />

if asp=nil then constant(fsys ,lsp,int) else<br />

begin assert asp' .form=tag;<br />

int: =cstinteger(fsys ,asp' .tfldsp,+0168); lsp: =asp' .fstvar;<br />

vb1le lspnil do<br />

if lsp' .varvalint then lsp:=lsp' .nxtvar else<br />

begin asp: =lsp; goto 1 end;<br />

end;<br />

1: end;<br />

sz: =sizeof( asp); int: =intsize+ptrsize;<br />

if sz>int then int:=(sz+int-1) div int * int;<br />

gen1(op_loc ,int); gensp(m)<br />

end end;<br />

procedure callpg(m:libmnem);<br />

begin gensp(m); if not formof(a.asp,[files]) then asperr(+0169) end;<br />

procedure callrr(m:libmnem);<br />

begin<br />

if not formof(a.asp,[files]) then asperr(+0170) else<br />

if a.asp=textptr then gen1(op 10c,O) else<br />

gen 1(op loc ,sizeof( a.asp· .fIltype»;<br />

gensp(m); -<br />

end;<br />

procedure callmr(m:libmnem);<br />

begin teststandard; gensp(m);<br />

if not formof(a.asp,[pointer]) then asperr(+0171)<br />

end;<br />

procedure callpu(m:libmnem; zsp,asp,isp :sp);<br />

begin fsp:=desub<br />

'"<br />

N<br />

\I1

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!