17.05.2015 Views

Pascal News

Pascal News

Pascal News

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

2578<br />

2579<br />

2580<br />

2581<br />

2582<br />

2583<br />

258q<br />

2585<br />

2586<br />

2587<br />

2588<br />

2589<br />

2590<br />

2591<br />

2592<br />

2593<br />

2594<br />

2595<br />

2596<br />

2597<br />

2598<br />

2599<br />

2600<br />

2601<br />

2602<br />

2604<br />

2605<br />

2606<br />

2607<br />

2608<br />

2609<br />

2610<br />

2611<br />

2612<br />

2613<br />

2614<br />

2615<br />

2616<br />

2617<br />

2618<br />

2619<br />

2620<br />

2621<br />

2622<br />

2623<br />

2624<br />

2625<br />

2626<br />

2627<br />

2628<br />

2629<br />

2630<br />

2631<br />

2632<br />

procedure setexpr(fsys:sos; var c:boolean; var v:integer);<br />

{level 2: « bu11dset}<br />

{update lsp and sz variables of build set and set c and v parameters}<br />

var min ,max : integer ; errno :integer;<br />

be&1D with a do bealn c:=false;v:=O;<br />

expresslon(fsys); asp:=desub(asp);<br />

if aspnU tIleD<br />

bealn<br />

it lsp=nU then<br />

beain errno: =0;<br />

If not bounds(asp,min,max) tben<br />

it asp=intptr tIleD max:=lopt-l .else errno:=+0190;<br />

if max> (maxsetsize-l )*byteb its + (bytebits-l) tben<br />

errno: =+0191;<br />

it errnoO tben bealn asperr(errno); max:=O end;<br />

sz:=even(max dlv bytebits + 1); lsp:=asp;<br />

eDCI<br />

else {aspnil and lspnil}<br />

it asplsp tbion asperr(+0192);<br />

it ak.cst tIleD<br />

it pos.adO then<br />

for i:=l to sz dlv wordslze do genwordset(cstpart[iJ);<br />

If varpart Bod (ncst>O) then genHop_lor,sz);<br />

eDCI<br />

elld end;<br />

procedure factor( fsys: ~os);<br />

var lip:ip; 11,I:integer; lsp:sp;<br />

bea1D with a do begin<br />

asp:=nU; packbit:=false; ak:=loaded;<br />

it findl ([notsy.. nllcst,lparentJ,fsys,+0198) then<br />

case sy of<br />

ident:<br />

beain lip:=searchld([konst,vsrs,field,func ,carrbndJ); Insym;<br />

case lip~.klass of<br />

fune: {call moves result to top stack}<br />

bea1D call(fsys,lip); ak:=loaded; packbit:=false end;<br />

konst:<br />

bea1D asp:=lip~ .idtype;<br />

if nicescalar(asp) tben !including asp=nil}<br />

bea1D ak:=cst; pos.ad:=lip~ .value end<br />

else<br />

beg1D ak: =ploaded;<br />

11: =lino; gend(op_lae ,abs(lip~ .value»;<br />

if asp~ .form=scalar tben<br />

bea1D load; it lip~ .value<br />

en<br />

n<br />

J><br />

..-<br />

z:<br />

m<br />

:E:<br />

en<br />

......<br />

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

Saved successfully!

Ooh no, something went wrong!