pas3.pas 43 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027
  1. (* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2. PASCAL Based MINI-LISP/ compilation: V1
  3. Special Schlumberger Demo
  4. All RIGHTS RESERVED
  5. COPYRIGHT (C) - 1981 - M. L. GRISS
  6. Computer Science Department
  7. University of Utah
  8. Do Not distribute with out written consent of M. L. Griss
  9. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% *)
  10. (* !(!*ENTRY TCATCH EXPR !2!) *)
  11. (* EXPR TCATCH *)
  12. procedure PAS31;
  13. label
  14. 102,
  15. 101,
  16. 100;
  17. begin
  18. (* !(!*ALLOC !2!) *)
  19. alloc2;
  20. (* !(!*STORE NIL !(FLUID THROWING!*!)!) *)
  21. idspace[131].val := nilref;
  22. (* !(!*STORE !1 !0!) *)
  23. store10;
  24. (* !(!*LOAD !1 !2!) *)
  25. R[1] := R[2];
  26. (* !(!*LINK CATCH EXPR !1!) *)
  27. XCATCH;
  28. (* !(!*STORE !1 !-!1!) *)
  29. store(1,1);
  30. (* !(!*LOAD !1 !0!) *)
  31. load10;
  32. (* !(!*JUMPNIL G!0!0!1!0!) *)
  33. IF R[1] = nilref THEN GOTO 100;
  34. (* !(!*LOAD !1 !(FLUID THROWING!*!)!) *)
  35. R[1] := idspace[131].val;
  36. (* !(!*JUMPNIL G!0!0!1!0!) *)
  37. IF R[1] = nilref THEN GOTO 100;
  38. (* !(!*LOAD !1 !(FLUID THROWTAG!*!)!) *)
  39. R[1] := idspace[156].val;
  40. (* !(!*JUMPN G!0!0!0!9 !0!) *)
  41. IF R[1] <> stk[st] THEN GOTO 101;
  42. (* !(!*LBL G!0!0!1!0!) *)
  43. 100:
  44. (* !(!*LOAD !1 !-!1!) *)
  45. load(1,1);
  46. (* !(!*JUMP G!0!0!0!4!) *)
  47. GOTO 102;
  48. (* !(!*LBL G!0!0!0!9!) *)
  49. 101:
  50. (* !(!*LOAD !1 !-!1!) *)
  51. load(1,1);
  52. (* !(!*LINK THROW EXPR !1!) *)
  53. XTHROW;
  54. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  55. R[1] := nilref;
  56. (* !(!*LBL G!0!0!0!4!) *)
  57. 102:
  58. (* !(!*DEALLOC !2!) *)
  59. dealloc2;
  60. (* !(!*EXIT!) *)
  61. end;
  62. (* !(!*ENTRY TTHROW EXPR !2!) *)
  63. (* EXPR TTHROW *)
  64. procedure PAS32;
  65. begin
  66. (* !(!*ALLOC !0!) *)
  67. (* !(!*LOAD !3 !1!) *)
  68. R[3] := R[1];
  69. (* !(!*LOAD !1 !(QUOTE T!)!) *)
  70. R[1] := trueref;
  71. (* !(!*STORE !1 !(FLUID THROWING!*!)!) *)
  72. idspace[131].val := R[1];
  73. (* !(!*LOAD !1 !3!) *)
  74. R[1] := R[3];
  75. (* !(!*STORE !1 !(FLUID THROWTAG!*!)!) *)
  76. idspace[156].val := R[1];
  77. (* !(!*LOAD !1 !2!) *)
  78. R[1] := R[2];
  79. (* !(!*LINK THROW EXPR !1!) *)
  80. XTHROW;
  81. (* !(!*DEALLOC !0!) *)
  82. (* !(!*EXIT!) *)
  83. end;
  84. (* !(!*ENTRY GETD EXPR !1!) *)
  85. (* EXPR GETD *)
  86. procedure PAS33;
  87. label
  88. 102,
  89. 101,
  90. 100;
  91. begin
  92. (* !(!*ALLOC !3!) *)
  93. alloc3;
  94. (* !(!*STORE !1 !0!) *)
  95. store10;
  96. (* !(!*JUMPC G!0!0!1!5 !1 IDTAG!) *)
  97. IF tag_of(R[1]) = IDTAG THEN GOTO 100;
  98. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  99. R[1] := nilref;
  100. (* !(!*JUMP G!0!0!1!3!) *)
  101. GOTO 102;
  102. (* !(!*LBL G!0!0!1!5!) *)
  103. 100:
  104. (* !(!*LOAD !2 !(QUOTE TYPE!)!) *)
  105. mkident(157,2);
  106. (* !(!*LINK GET EXPR !2!) *)
  107. PAS230;
  108. (* !(!*STORE !1 !-!1!) *)
  109. store(1,1);
  110. (* !(!*LOAD !1 !0!) *)
  111. load10;
  112. (* !(!*LINK FUNCELL EXPR !1!) *)
  113. R[1] := IDSPACE[INFO_OF(R[1])].FUNCELL;
  114. (* !(!*STORE !1 !-!2!) *)
  115. store(1,2);
  116. (* !(!*LOAD !1 !-!1!) *)
  117. load(1,1);
  118. (* !(!*JUMPT G!0!0!1!7!) *)
  119. IF R[1] <> nilref THEN GOTO 101;
  120. (* !(!*LOAD !1 !-!2!) *)
  121. load(1,2);
  122. (* !(!*JUMPNIL G!0!0!1!7!) *)
  123. IF R[1] = nilref THEN GOTO 101;
  124. (* !(!*LOAD !1 !(QUOTE EXPR!)!) *)
  125. mkident(158,1);
  126. (* !(!*STORE !1 !-!1!) *)
  127. store(1,1);
  128. (* !(!*LBL G!0!0!1!7!) *)
  129. 101:
  130. (* !(!*LOAD !1 !-!2!) *)
  131. load(1,2);
  132. (* !(!*JUMPNIL G!0!0!1!3!) *)
  133. IF R[1] = nilref THEN GOTO 102;
  134. (* !(!*LOAD !2 !-!1!) *)
  135. load(2,1);
  136. (* !(!*LINK XCONS EXPR !2!) *)
  137. XXCONS;
  138. (* !(!*LBL G!0!0!1!3!) *)
  139. 102:
  140. (* !(!*DEALLOC !3!) *)
  141. dealloc3;
  142. (* !(!*EXIT!) *)
  143. end;
  144. (* !(!*ENTRY PUTD EXPR !3!) *)
  145. (* EXPR PUTD *)
  146. procedure PAS34;
  147. label
  148. 105,
  149. 104,
  150. 103,
  151. 102,
  152. 101,
  153. 100;
  154. begin
  155. (* !(!*ALLOC !3!) *)
  156. alloc3;
  157. (* !(!*STORE !1 !0!) *)
  158. store10;
  159. (* !(!*STORE !2 !-!1!) *)
  160. store(2,1);
  161. (* !(!*STORE !3 !-!2!) *)
  162. store(3,2);
  163. (* !(!*LOAD !2 !(QUOTE LOSE!)!) *)
  164. mkident(159,2);
  165. (* !(!*LINK FLAGP EXPR !2!) *)
  166. PAS235;
  167. (* !(!*JUMPNIL G!0!0!2!5!) *)
  168. IF R[1] = nilref THEN GOTO 100;
  169. (* !(!*LOAD !4 !(QUOTE LOSE!)!) *)
  170. mkident(159,4);
  171. (* !(!*LOAD !3 !(QUOTE FLAGGED!)!) *)
  172. mkident(160,3);
  173. (* !(!*LOAD !2 !(QUOTE NOT!)!) *)
  174. mkident(161,2);
  175. (* !(!*LOAD !1 !0!) *)
  176. load10;
  177. (* !(!*LINK LIST!4 EXPR !4!) *)
  178. PAS210;
  179. (* !(!*LINK ERRPRT EXPR !1!) *)
  180. PAS233;
  181. (* !(!*JUMP G!0!0!3!8!) *)
  182. GOTO 105;
  183. (* !(!*LBL G!0!0!2!5!) *)
  184. 100:
  185. (* !(!*LOAD !1 !0!) *)
  186. load10;
  187. (* !(!*LINK GETD EXPR !1!) *)
  188. PAS33;
  189. (* !(!*JUMPNIL G!0!0!3!0!) *)
  190. IF R[1] = nilref THEN GOTO 101;
  191. (* !(!*LOAD !3 !(QUOTE REDEFINED!)!) *)
  192. mkident(162,3);
  193. (* !(!*LOAD !2 !0!) *)
  194. load(2,0);
  195. (* !(!*LOAD !1 !(QUOTE FUNCTION!)!) *)
  196. mkident(163,1);
  197. (* !(!*LINK LIST!3 EXPR !3!) *)
  198. PAS29;
  199. (* !(!*LINK MSGPRT EXPR !1!) *)
  200. PAS234;
  201. (* !(!*LBL G!0!0!3!0!) *)
  202. 101:
  203. (* !(!*LOAD !1 !-!2!) *)
  204. load(1,2);
  205. (* !(!*JUMPC G!0!0!3!5 !1 CODETAG!) *)
  206. IF tag_of(R[1]) = CODETAG THEN GOTO 103;
  207. (* !(!*LOAD !2 !(QUOTE LAMBDA!)!) *)
  208. mkident(154,2);
  209. (* !(!*LINK EQCAR EXPR !2!) *)
  210. PAS240;
  211. (* !(!*JUMPNIL G!0!0!3!3!) *)
  212. IF R[1] = nilref THEN GOTO 102;
  213. (* !(!*LOAD !2 !(QUOTE !(EXPR FEXPR NEXPR MACRO!)!)!) *)
  214. R[2] := stk[2];
  215. (* !(!*LOAD !1 !-!1!) *)
  216. load(1,1);
  217. (* !(!*LINK MEMQ EXPR !2!) *)
  218. PAS222;
  219. (* !(!*JUMPT G!0!0!3!5!) *)
  220. IF R[1] <> nilref THEN GOTO 103;
  221. (* !(!*LBL G!0!0!3!3!) *)
  222. 102:
  223. (* !(!*LOAD !4 !(QUOTE DEFINED!)!) *)
  224. mkident(164,4);
  225. (* !(!*LOAD !3 !(QUOTE BE!)!) *)
  226. mkident(165,3);
  227. (* !(!*LOAD !2 !(QUOTE CANT!)!) *)
  228. mkident(166,2);
  229. (* !(!*LOAD !1 !0!) *)
  230. load10;
  231. (* !(!*LINK LIST!4 EXPR !4!) *)
  232. PAS210;
  233. (* !(!*LOAD !2 !1!) *)
  234. R[2] := R[1];
  235. (* !(!*LOAD !1 !(QUOTE !9!9!)!) *)
  236. mkint(99,1);
  237. (* !(!*LINK ERROR EXPR !2!) *)
  238. PAS215;
  239. (* !(!*LBL G!0!0!3!5!) *)
  240. 103:
  241. (* !(!*LOAD !1 !-!1!) *)
  242. load(1,1);
  243. (* !(!*JUMPN G!0!0!3!7 !(QUOTE EXPR!)!) *)
  244. mkitem(IDTAG,158,RXX);
  245. IF R[1] <> RXX THEN GOTO 104;
  246. (* !(!*STORE NIL !-!1!) *)
  247. storenil(1);
  248. (* !(!*LBL G!0!0!3!7!) *)
  249. 104:
  250. (* !(!*LOAD !3 !-!1!) *)
  251. load(3,1);
  252. (* !(!*LOAD !2 !(QUOTE TYPE!)!) *)
  253. mkident(157,2);
  254. (* !(!*LOAD !1 !0!) *)
  255. load10;
  256. (* !(!*LINK PUT EXPR !3!) *)
  257. PAS224;
  258. (* !(!*LOAD !2 !-!2!) *)
  259. load(2,2);
  260. (* !(!*LOAD !1 !0!) *)
  261. load10;
  262. (* !(!*LINK SETFUNCELL EXPR !2!) *)
  263. IDSPACE[INFO_OF(R[1])].FUNCELL := R[2];
  264. (* !(!*LBL G!0!0!3!8!) *)
  265. 105:
  266. (* !(!*LOAD !1 !0!) *)
  267. load10;
  268. (* !(!*DEALLOC !3!) *)
  269. dealloc3;
  270. (* !(!*EXIT!) *)
  271. end;
  272. (* !(!*ENTRY REMD EXPR !1!) *)
  273. (* EXPR REMD *)
  274. procedure PAS35;
  275. label
  276. 100;
  277. begin
  278. (* !(!*ALLOC !2!) *)
  279. alloc2;
  280. (* !(!*STORE !1 !0!) *)
  281. store10;
  282. (* !(!*LINK GETD EXPR !1!) *)
  283. PAS33;
  284. (* !(!*STORE !1 !-!1!) *)
  285. store(1,1);
  286. (* !(!*JUMPNIL G!0!0!4!5!) *)
  287. IF R[1] = nilref THEN GOTO 100;
  288. (* !(!*LOAD !2 !(QUOTE NIL!)!) *)
  289. R[2] := nilref;
  290. (* !(!*LOAD !1 !0!) *)
  291. load10;
  292. (* !(!*LINK SETFUNCELL EXPR !2!) *)
  293. IDSPACE[INFO_OF(R[1])].FUNCELL := R[2];
  294. (* !(!*LOAD !2 !(QUOTE TYPE!)!) *)
  295. mkident(157,2);
  296. (* !(!*LOAD !1 !0!) *)
  297. load10;
  298. (* !(!*LINK REMPROP EXPR !2!) *)
  299. PAS231;
  300. (* !(!*LBL G!0!0!4!5!) *)
  301. 100:
  302. (* !(!*LOAD !1 !-!1!) *)
  303. load(1,1);
  304. (* !(!*DEALLOC !2!) *)
  305. dealloc2;
  306. (* !(!*EXIT!) *)
  307. end;
  308. procedure PAS36;
  309. forward;
  310. (* !(!*ENTRY PUTL EXPR !3!) *)
  311. (* EXPR PUTL *)
  312. procedure PAS36;
  313. label
  314. 101,
  315. 100;
  316. begin
  317. (* !(!*ALLOC !3!) *)
  318. alloc3;
  319. (* !(!*STORE !1 !0!) *)
  320. store10;
  321. (* !(!*STORE !2 !-!1!) *)
  322. store(2,1);
  323. (* !(!*STORE !3 !-!2!) *)
  324. store(3,2);
  325. (* !(!*JUMPC G!0!0!4!8 !1 PAIRTAG!) *)
  326. IF tag_of(R[1]) = PAIRTAG THEN GOTO 100;
  327. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  328. R[1] := nilref;
  329. (* !(!*JUMP G!0!0!4!9!) *)
  330. GOTO 101;
  331. (* !(!*LBL G!0!0!4!8!) *)
  332. 100:
  333. (* !(!*LOAD !1 !(CAR !1!)!) *)
  334. XCAR;
  335. (* !(!*LINK PUT EXPR !3!) *)
  336. PAS224;
  337. (* !(!*LOAD !3 !-!2!) *)
  338. load(3,2);
  339. (* !(!*LOAD !2 !-!1!) *)
  340. load(2,1);
  341. (* !(!*LOAD !1 !(CDR !0!)!) *)
  342. ANYcdr(stk[st],R[1]);
  343. (* !(!*LINK PUTL EXPR !3!) *)
  344. PAS36;
  345. (* !(!*LBL G!0!0!4!9!) *)
  346. 101:
  347. (* !(!*DEALLOC !3!) *)
  348. dealloc3;
  349. (* !(!*EXIT!) *)
  350. end;
  351. (* !(!*ENTRY DE FEXPR !1!) *)
  352. (* FEXPR DE *)
  353. procedure PAS37;
  354. begin
  355. (* !(!*ALLOC !1!) *)
  356. alloc1;
  357. (* !(!*STORE !1 !0!) *)
  358. store10;
  359. (* !(!*LOAD !2 !(CDR !1!)!) *)
  360. ANYcdr(R[1],R[2]);
  361. (* !(!*LOAD !1 !(QUOTE LAMBDA!)!) *)
  362. mkident(154,1);
  363. (* !(!*LINK CONS EXPR !2!) *)
  364. XCONS;
  365. (* !(!*LOAD !3 !1!) *)
  366. R[3] := R[1];
  367. (* !(!*LOAD !2 !(QUOTE EXPR!)!) *)
  368. mkident(158,2);
  369. (* !(!*LOAD !1 !(CAR !0!)!) *)
  370. ANYcar(stk[st],R[1]);
  371. (* !(!*LINK PUTD EXPR !3!) *)
  372. PAS34;
  373. (* !(!*DEALLOC !1!) *)
  374. dealloc1;
  375. (* !(!*EXIT!) *)
  376. end;
  377. (* !(!*ENTRY DF FEXPR !1!) *)
  378. (* FEXPR DF *)
  379. procedure PAS38;
  380. begin
  381. (* !(!*ALLOC !1!) *)
  382. alloc1;
  383. (* !(!*STORE !1 !0!) *)
  384. store10;
  385. (* !(!*LOAD !2 !(CDR !1!)!) *)
  386. ANYcdr(R[1],R[2]);
  387. (* !(!*LOAD !1 !(QUOTE LAMBDA!)!) *)
  388. mkident(154,1);
  389. (* !(!*LINK CONS EXPR !2!) *)
  390. XCONS;
  391. (* !(!*LOAD !3 !1!) *)
  392. R[3] := R[1];
  393. (* !(!*LOAD !2 !(QUOTE FEXPR!)!) *)
  394. mkident(167,2);
  395. (* !(!*LOAD !1 !(CAR !0!)!) *)
  396. ANYcar(stk[st],R[1]);
  397. (* !(!*LINK PUTD EXPR !3!) *)
  398. PAS34;
  399. (* !(!*DEALLOC !1!) *)
  400. dealloc1;
  401. (* !(!*EXIT!) *)
  402. end;
  403. (* !(!*ENTRY DN FEXPR !1!) *)
  404. (* FEXPR DN *)
  405. procedure PAS39;
  406. begin
  407. (* !(!*ALLOC !1!) *)
  408. alloc1;
  409. (* !(!*STORE !1 !0!) *)
  410. store10;
  411. (* !(!*LOAD !2 !(CDR !1!)!) *)
  412. ANYcdr(R[1],R[2]);
  413. (* !(!*LOAD !1 !(QUOTE LAMBDA!)!) *)
  414. mkident(154,1);
  415. (* !(!*LINK CONS EXPR !2!) *)
  416. XCONS;
  417. (* !(!*LOAD !3 !1!) *)
  418. R[3] := R[1];
  419. (* !(!*LOAD !2 !(QUOTE NEXPR!)!) *)
  420. mkident(168,2);
  421. (* !(!*LOAD !1 !(CAR !0!)!) *)
  422. ANYcar(stk[st],R[1]);
  423. (* !(!*LINK PUTD EXPR !3!) *)
  424. PAS34;
  425. (* !(!*DEALLOC !1!) *)
  426. dealloc1;
  427. (* !(!*EXIT!) *)
  428. end;
  429. (* !(!*ENTRY DM FEXPR !1!) *)
  430. (* FEXPR DM *)
  431. procedure PAS310;
  432. begin
  433. (* !(!*ALLOC !1!) *)
  434. alloc1;
  435. (* !(!*STORE !1 !0!) *)
  436. store10;
  437. (* !(!*LOAD !2 !(CDR !1!)!) *)
  438. ANYcdr(R[1],R[2]);
  439. (* !(!*LOAD !1 !(QUOTE LAMBDA!)!) *)
  440. mkident(154,1);
  441. (* !(!*LINK CONS EXPR !2!) *)
  442. XCONS;
  443. (* !(!*LOAD !3 !1!) *)
  444. R[3] := R[1];
  445. (* !(!*LOAD !2 !(QUOTE MACRO!)!) *)
  446. mkident(169,2);
  447. (* !(!*LOAD !1 !(CAR !0!)!) *)
  448. ANYcar(stk[st],R[1]);
  449. (* !(!*LINK PUTD EXPR !3!) *)
  450. PAS34;
  451. (* !(!*DEALLOC !1!) *)
  452. dealloc1;
  453. (* !(!*EXIT!) *)
  454. end;
  455. procedure PAS311;
  456. forward;
  457. procedure PAS312;
  458. forward;
  459. (* !(!*ENTRY EVAL EXPR !1!) *)
  460. (* EXPR EVAL *)
  461. procedure XEVAL;
  462. label
  463. 111,
  464. 110,
  465. 109,
  466. 108,
  467. 107,
  468. 106,
  469. 105,
  470. 104,
  471. 103,
  472. 102,
  473. 101,
  474. 100;
  475. begin
  476. (* !(!*ALLOC !4!) *)
  477. alloc(4);
  478. (* !(!*STORE NIL !-!1!) *)
  479. storenil(1);
  480. (* !(!*STORE NIL !-!3!) *)
  481. storenil(3);
  482. (* !(!*STORE !1 !0!) *)
  483. store10;
  484. (* !(!*LBL G!0!0!6!0!) *)
  485. 100:
  486. (* !(!*JUMPNC G!0!0!6!2 !1 IDTAG!) *)
  487. IF tag_of(R[1]) <> IDTAG THEN GOTO 101;
  488. (* !(!*LINK VALUE EXPR !1!) *)
  489. R[1] := IDSPACE[INFO_OF(R[1])].VAL;
  490. (* !(!*JUMP G!0!0!5!9!) *)
  491. GOTO 111;
  492. (* !(!*LBL G!0!0!6!2!) *)
  493. 101:
  494. (* !(!*JUMPNC G!0!0!6!5 !1 PAIRTAG!) *)
  495. IF tag_of(R[1]) <> PAIRTAG THEN GOTO 102;
  496. (* !(!*LOAD !1 !(CAR !1!)!) *)
  497. XCAR;
  498. (* !(!*STORE !1 !-!1!) *)
  499. store(1,1);
  500. (* !(!*JUMPN G!0!0!6!4 !(QUOTE LAMBDA!)!) *)
  501. mkitem(IDTAG,154,RXX);
  502. IF R[1] <> RXX THEN GOTO 103;
  503. (* !(!*LBL G!0!0!6!5!) *)
  504. 102:
  505. (* !(!*LOAD !1 !0!) *)
  506. load10;
  507. (* !(!*JUMP G!0!0!5!9!) *)
  508. GOTO 111;
  509. (* !(!*LBL G!0!0!6!4!) *)
  510. 103:
  511. (* !(!*LOAD !1 !(CDR !0!)!) *)
  512. ANYcdr(stk[st],R[1]);
  513. (* !(!*STORE !1 !-!2!) *)
  514. store(1,2);
  515. (* !(!*LOAD !1 !-!1!) *)
  516. load(1,1);
  517. (* !(!*JUMPN G!0!0!6!7 !(QUOTE QUOTE!)!) *)
  518. mkitem(IDTAG,138,RXX);
  519. IF R[1] <> RXX THEN GOTO 104;
  520. (* !(!*LOAD !1 !(CAR !-!2!)!) *)
  521. ANYcar(stk[st-2],R[1]);
  522. (* !(!*JUMP G!0!0!5!9!) *)
  523. GOTO 111;
  524. (* !(!*LBL G!0!0!6!7!) *)
  525. 104:
  526. (* !(!*JUMPN G!0!0!6!9 !(QUOTE SETQ!)!) *)
  527. mkitem(IDTAG,170,RXX);
  528. IF R[1] <> RXX THEN GOTO 105;
  529. (* !(!*LOAD !1 !-!2!) *)
  530. load(1,2);
  531. (* !(!*LINK CADR EXPR !1!) *)
  532. PAS12;
  533. (* !(!*LINK EVAL EXPR !1!) *)
  534. XEVAL;
  535. (* !(!*LOAD !2 !1!) *)
  536. R[2] := R[1];
  537. (* !(!*LOAD !1 !(CAR !-!2!)!) *)
  538. ANYcar(stk[st-2],R[1]);
  539. (* !(!*LINK SET EXPR !2!) *)
  540. PAS269;
  541. (* !(!*JUMP G!0!0!5!9!) *)
  542. GOTO 111;
  543. (* !(!*LBL G!0!0!6!9!) *)
  544. 105:
  545. (* !(!*JUMPNC G!0!0!7!4 !1 IDTAG!) *)
  546. IF tag_of(R[1]) <> IDTAG THEN GOTO 109;
  547. (* !(!*LOAD !2 !(QUOTE TYPE!)!) *)
  548. mkident(157,2);
  549. (* !(!*LINK GET EXPR !2!) *)
  550. PAS230;
  551. (* !(!*STORE !1 !-!3!) *)
  552. store(1,3);
  553. (* !(!*JUMPNIL G!0!0!7!4!) *)
  554. IF R[1] = nilref THEN GOTO 109;
  555. (* !(!*JUMPN G!0!0!7!7 !(QUOTE FEXPR!)!) *)
  556. mkitem(IDTAG,167,RXX);
  557. IF R[1] <> RXX THEN GOTO 106;
  558. (* !(!*LOAD !2 !-!2!) *)
  559. load(2,2);
  560. (* !(!*JUMP G!0!0!8!8!) *)
  561. GOTO 107;
  562. (* !(!*LBL G!0!0!7!7!) *)
  563. 106:
  564. (* !(!*JUMPN G!0!0!8!0 !(QUOTE NEXPR!)!) *)
  565. mkitem(IDTAG,168,RXX);
  566. IF R[1] <> RXX THEN GOTO 108;
  567. (* !(!*LOAD !1 !-!2!) *)
  568. load(1,2);
  569. (* !(!*LINK EVLIS EXPR !1!) *)
  570. PAS311;
  571. (* !(!*LOAD !2 !1!) *)
  572. R[2] := R[1];
  573. (* !(!*LBL G!0!0!8!8!) *)
  574. 107:
  575. (* !(!*LOAD !1 !-!1!) *)
  576. load(1,1);
  577. (* !(!*LINK APPLY!1 EXPR !2!) *)
  578. PAS312;
  579. (* !(!*JUMP G!0!0!5!9!) *)
  580. GOTO 111;
  581. (* !(!*LBL G!0!0!8!0!) *)
  582. 108:
  583. (* !(!*JUMPN G!0!0!7!4 !(QUOTE MACRO!)!) *)
  584. mkitem(IDTAG,169,RXX);
  585. IF R[1] <> RXX THEN GOTO 109;
  586. (* !(!*LOAD !2 !0!) *)
  587. load(2,0);
  588. (* !(!*LOAD !1 !-!1!) *)
  589. load(1,1);
  590. (* !(!*LINK APPLY!1 EXPR !2!) *)
  591. PAS312;
  592. (* !(!*STORE !1 !0!) *)
  593. store10;
  594. (* !(!*JUMP G!0!0!6!0!) *)
  595. GOTO 100;
  596. (* !(!*LBL G!0!0!7!4!) *)
  597. 109:
  598. (* !(!*LOAD !1 !-!2!) *)
  599. load(1,2);
  600. (* !(!*LINK EVLIS EXPR !1!) *)
  601. PAS311;
  602. (* !(!*STORE !1 !-!2!) *)
  603. store(1,2);
  604. (* !(!*LOAD !1 !-!1!) *)
  605. load(1,1);
  606. (* !(!*JUMPN G!0!0!8!6 !(QUOTE LIST!)!) *)
  607. mkitem(IDTAG,171,RXX);
  608. IF R[1] <> RXX THEN GOTO 110;
  609. (* !(!*LOAD !1 !-!2!) *)
  610. load(1,2);
  611. (* !(!*JUMP G!0!0!5!9!) *)
  612. GOTO 111;
  613. (* !(!*LBL G!0!0!8!6!) *)
  614. 110:
  615. (* !(!*LOAD !2 !-!2!) *)
  616. load(2,2);
  617. (* !(!*LINK APPLY EXPR !2!) *)
  618. PAS217;
  619. (* !(!*LBL G!0!0!5!9!) *)
  620. 111:
  621. (* !(!*DEALLOC !4!) *)
  622. dealloc(4);
  623. (* !(!*EXIT!) *)
  624. end;
  625. (* !(!*ENTRY APPLY!1 EXPR !2!) *)
  626. (* EXPR APPLY1 *)
  627. procedure PAS312;
  628. begin
  629. (* !(!*ALLOC !1!) *)
  630. alloc1;
  631. (* !(!*STORE !1 !0!) *)
  632. store10;
  633. (* !(!*LOAD !1 !2!) *)
  634. R[1] := R[2];
  635. (* !(!*LINK NCONS EXPR !1!) *)
  636. XNCONS;
  637. (* !(!*LOAD !2 !1!) *)
  638. R[2] := R[1];
  639. (* !(!*LOAD !1 !0!) *)
  640. load10;
  641. (* !(!*LINK APPLY EXPR !2!) *)
  642. PAS217;
  643. (* !(!*DEALLOC !1!) *)
  644. dealloc1;
  645. (* !(!*EXIT!) *)
  646. end;
  647. (* !(!*ENTRY APPLY EXPR !2!) *)
  648. (* EXPR APPLY *)
  649. procedure PAS217;
  650. label
  651. 101,
  652. 100;
  653. begin
  654. (* !(!*ALLOC !1!) *)
  655. alloc1;
  656. (* !(!*STORE !2 !0!) *)
  657. store(2,0);
  658. (* !(!*LINK FUNCELL EXPR !1!) *)
  659. R[1] := IDSPACE[INFO_OF(R[1])].FUNCELL;
  660. (* !(!*LOAD !2 !0!) *)
  661. load(2,0);
  662. (* !(!*JUMPNC G!0!0!9!4 !1 CODETAG!) *)
  663. IF tag_of(R[1]) <> CODETAG THEN GOTO 100;
  664. (* !(!*LINK XAPPLY EXPR !2!) *)
  665. XXAPPLY;
  666. (* !(!*JUMP G!0!0!9!2!) *)
  667. GOTO 101;
  668. (* !(!*LBL G!0!0!9!4!) *)
  669. 100:
  670. (* !(!*LINK EVLAM EXPR !2!) *)
  671. PAS279;
  672. (* !(!*LBL G!0!0!9!2!) *)
  673. 101:
  674. (* !(!*DEALLOC !1!) *)
  675. dealloc1;
  676. (* !(!*EXIT!) *)
  677. end;
  678. (* !(!*ENTRY EVLIS EXPR !1!) *)
  679. (* EXPR EVLIS *)
  680. procedure PAS311;
  681. label
  682. 101,
  683. 100;
  684. begin
  685. (* !(!*ALLOC !2!) *)
  686. alloc2;
  687. (* !(!*STORE !1 !0!) *)
  688. store10;
  689. (* !(!*JUMPC G!0!0!9!9 !1 PAIRTAG!) *)
  690. IF tag_of(R[1]) = PAIRTAG THEN GOTO 100;
  691. (* !(!*LINK EVAL EXPR !1!) *)
  692. XEVAL;
  693. (* !(!*JUMP G!0!1!0!0!) *)
  694. GOTO 101;
  695. (* !(!*LBL G!0!0!9!9!) *)
  696. 100:
  697. (* !(!*LOAD !1 !(CAR !1!)!) *)
  698. XCAR;
  699. (* !(!*LINK EVAL EXPR !1!) *)
  700. XEVAL;
  701. (* !(!*STORE !1 !-!1!) *)
  702. store(1,1);
  703. (* !(!*LOAD !1 !(CDR !0!)!) *)
  704. ANYcdr(stk[st],R[1]);
  705. (* !(!*LINK EVLIS EXPR !1!) *)
  706. PAS311;
  707. (* !(!*LOAD !2 !-!1!) *)
  708. load(2,1);
  709. (* !(!*LINK XCONS EXPR !2!) *)
  710. XXCONS;
  711. (* !(!*LBL G!0!1!0!0!) *)
  712. 101:
  713. (* !(!*DEALLOC !2!) *)
  714. dealloc2;
  715. (* !(!*EXIT!) *)
  716. end;
  717. (* !(!*ENTRY PROGN FEXPR !1!) *)
  718. (* FEXPR PROGN *)
  719. procedure PAS313;
  720. begin
  721. (* !(!*ALLOC !0!) *)
  722. (* !(!*LINK P!.N EXPR !1!) *)
  723. PAS278;
  724. (* !(!*DEALLOC !0!) *)
  725. (* !(!*EXIT!) *)
  726. end;
  727. (* !(!*ENTRY PROG!2 EXPR !2!) *)
  728. (* EXPR PROG2 *)
  729. procedure PAS314;
  730. begin
  731. (* !(!*ALLOC !0!) *)
  732. (* !(!*LOAD !1 !2!) *)
  733. R[1] := R[2];
  734. (* !(!*DEALLOC !0!) *)
  735. (* !(!*EXIT!) *)
  736. end;
  737. (* !(!*ENTRY P!.N EXPR !1!) *)
  738. (* EXPR P.N *)
  739. procedure PAS278;
  740. label
  741. 101,
  742. 100;
  743. begin
  744. (* !(!*ALLOC !2!) *)
  745. alloc2;
  746. (* !(!*STORE !1 !0!) *)
  747. store10;
  748. (* !(!*LBL G!0!1!0!9!) *)
  749. 100:
  750. (* !(!*JUMPNC G!0!1!0!8 !1 PAIRTAG!) *)
  751. IF tag_of(R[1]) <> PAIRTAG THEN GOTO 101;
  752. (* !(!*LOAD !1 !(CAR !1!)!) *)
  753. XCAR;
  754. (* !(!*LINK EVAL EXPR !1!) *)
  755. XEVAL;
  756. (* !(!*STORE !1 !-!1!) *)
  757. store(1,1);
  758. (* !(!*LOAD !1 !(CDR !0!)!) *)
  759. ANYcdr(stk[st],R[1]);
  760. (* !(!*STORE !1 !0!) *)
  761. store10;
  762. (* !(!*JUMP G!0!1!0!9!) *)
  763. GOTO 100;
  764. (* !(!*LBL G!0!1!0!8!) *)
  765. 101:
  766. (* !(!*LOAD !1 !-!1!) *)
  767. load(1,1);
  768. (* !(!*DEALLOC !2!) *)
  769. dealloc2;
  770. (* !(!*EXIT!) *)
  771. end;
  772. (* !(!*ENTRY RETURN FEXPR !1!) *)
  773. (* FEXPR RETURN *)
  774. procedure PAS315;
  775. begin
  776. (* !(!*ALLOC !0!) *)
  777. (* !(!*STORE NIL !(FLUID P!.P!)!) *)
  778. idspace[172].val := nilref;
  779. (* !(!*LINK P!.N EXPR !1!) *)
  780. PAS278;
  781. (* !(!*LOAD !2 !1!) *)
  782. R[2] := R[1];
  783. (* !(!*LOAD !1 !(QUOTE !$PROG!$!)!) *)
  784. mkident(173,1);
  785. (* !(!*LINK TTHROW EXPR !2!) *)
  786. PAS32;
  787. (* !(!*DEALLOC !0!) *)
  788. (* !(!*EXIT!) *)
  789. end;
  790. (* !(!*ENTRY GO FEXPR !1!) *)
  791. (* FEXPR GO *)
  792. procedure PAS316;
  793. label
  794. 102,
  795. 101,
  796. 100;
  797. begin
  798. (* !(!*ALLOC !2!) *)
  799. alloc2;
  800. (* !(!*STORE NIL !-!1!) *)
  801. storenil(1);
  802. (* !(!*LOAD !1 !(CAR !1!)!) *)
  803. XCAR;
  804. (* !(!*STORE !1 !0!) *)
  805. store10;
  806. (* !(!*LBL G!0!1!1!9!) *)
  807. 100:
  808. (* !(!*LOAD !1 !0!) *)
  809. load10;
  810. (* !(!*JUMPC G!0!1!2!0 !1 IDTAG!) *)
  811. IF tag_of(R[1]) = IDTAG THEN GOTO 101;
  812. (* !(!*LOAD !3 !(QUOTE LABEL!)!) *)
  813. mkident(174,3);
  814. (* !(!*LOAD !2 !(QUOTE NOT!)!) *)
  815. mkident(161,2);
  816. (* !(!*LINK LIST!3 EXPR !3!) *)
  817. PAS29;
  818. (* !(!*LOAD !2 !1!) *)
  819. R[2] := R[1];
  820. (* !(!*LOAD !1 !(QUOTE !1!1!0!0!)!) *)
  821. mkint(1100,1);
  822. (* !(!*LINK ERROR EXPR !2!) *)
  823. PAS215;
  824. (* !(!*LBL G!0!1!2!0!) *)
  825. 101:
  826. (* !(!*LOAD !2 !(FLUID P!.G!)!) *)
  827. R[2] := idspace[175].val;
  828. (* !(!*LOAD !1 !0!) *)
  829. load10;
  830. (* !(!*LINK ATSOC EXPR !2!) *)
  831. PAS223;
  832. (* !(!*STORE !1 !-!1!) *)
  833. store(1,1);
  834. (* !(!*JUMPNC G!0!1!2!6 !1 ATOM!) *)
  835. IF tag_of(R[1]) = PAIRTAG THEN GOTO 102;
  836. (* !(!*LOAD !4 !(QUOTE LABEL!)!) *)
  837. mkident(174,4);
  838. (* !(!*LOAD !3 !(QUOTE A!)!) *)
  839. mkident(66,3);
  840. (* !(!*LOAD !2 !(QUOTE NOT!)!) *)
  841. mkident(161,2);
  842. (* !(!*LOAD !1 !0!) *)
  843. load10;
  844. (* !(!*LINK LIST!4 EXPR !4!) *)
  845. PAS210;
  846. (* !(!*LOAD !2 !1!) *)
  847. R[2] := R[1];
  848. (* !(!*LOAD !1 !(QUOTE !1!1!0!1!)!) *)
  849. mkint(1101,1);
  850. (* !(!*LINK ERROR EXPR !2!) *)
  851. PAS215;
  852. (* !(!*LBL G!0!1!2!6!) *)
  853. 102:
  854. (* !(!*JUMPNC G!0!1!1!9 !1 PAIRTAG!) *)
  855. IF tag_of(R[1]) <> PAIRTAG THEN GOTO 100;
  856. (* !(!*LOAD !1 !(CDR !-!1!)!) *)
  857. ANYcdr(stk[st-1],R[1]);
  858. (* !(!*STORE !1 !(FLUID P!.P!)!) *)
  859. idspace[172].val := R[1];
  860. (* !(!*LOAD !2 !(QUOTE NIL!)!) *)
  861. R[2] := nilref;
  862. (* !(!*LOAD !1 !(QUOTE !$PROG!$!)!) *)
  863. mkident(173,1);
  864. (* !(!*LINK TTHROW EXPR !2!) *)
  865. PAS32;
  866. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  867. R[1] := nilref;
  868. (* !(!*DEALLOC !2!) *)
  869. dealloc2;
  870. (* !(!*EXIT!) *)
  871. end;
  872. (* !(!*ENTRY PROGG!0!1!3!1 EXPR !1!) *)
  873. (* EXPR PROGG0131 *)
  874. procedure PAS317;
  875. label
  876. 101,
  877. 100;
  878. begin
  879. (* !(!*ALLOC !1!) *)
  880. alloc1;
  881. (* !(!*STORE !1 !0!) *)
  882. store10;
  883. (* !(!*LOAD !1 !(CAR !1!)!) *)
  884. XCAR;
  885. (* !(!*JUMPNC G!0!1!3!4 !1 IDTAG!) *)
  886. IF tag_of(R[1]) <> IDTAG THEN GOTO 100;
  887. (* !(!*LOAD !2 !(FLUID P!.G!)!) *)
  888. R[2] := idspace[175].val;
  889. (* !(!*LOAD !1 !0!) *)
  890. load10;
  891. (* !(!*LINK CONS EXPR !2!) *)
  892. XCONS;
  893. (* !(!*STORE !1 !(FLUID P!.G!)!) *)
  894. idspace[175].val := R[1];
  895. (* !(!*JUMP G!0!1!3!3!) *)
  896. GOTO 101;
  897. (* !(!*LBL G!0!1!3!4!) *)
  898. 100:
  899. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  900. R[1] := nilref;
  901. (* !(!*LBL G!0!1!3!3!) *)
  902. 101:
  903. (* !(!*DEALLOC !1!) *)
  904. dealloc1;
  905. (* !(!*EXIT!) *)
  906. end;
  907. procedure PAS318;
  908. forward;
  909. (* !(!*ENTRY PROG FEXPR !1!) *)
  910. (* FEXPR PROG *)
  911. procedure PAS319;
  912. label
  913. 103,
  914. 102,
  915. 101,
  916. 100;
  917. begin
  918. (* !(!*ALLOC !7!) *)
  919. alloc(7);
  920. (* !(!*STORE NIL !-!3!) *)
  921. storenil(3);
  922. (* !(!*STORE !1 !0!) *)
  923. store10;
  924. (* !(!*LOAD !1 !(FLUID P!.P!)!) *)
  925. R[1] := idspace[172].val;
  926. (* !(!*STORE !1 !-!5!) *)
  927. store(1,5);
  928. (* !(!*LOAD !1 !(FLUID P!.G!)!) *)
  929. R[1] := idspace[175].val;
  930. (* !(!*STORE !1 !-!6!) *)
  931. store(1,6);
  932. (* !(!*LOAD !1 !(CAR !0!)!) *)
  933. ANYcar(stk[st],R[1]);
  934. (* !(!*LINK LENGTH EXPR !1!) *)
  935. PAS232;
  936. (* !(!*STORE !1 !-!4!) *)
  937. store(1,4);
  938. (* !(!*LOAD !1 !(CAR !0!)!) *)
  939. ANYcar(stk[st],R[1]);
  940. (* !(!*LINK PBINDN EXPR !1!) *)
  941. PAS280;
  942. (* !(!*LOAD !1 !(CDR !0!)!) *)
  943. ANYcdr(stk[st],R[1]);
  944. (* !(!*STORE !1 !(FLUID P!.P!)!) *)
  945. idspace[172].val := R[1];
  946. (* !(!*STORE NIL !(FLUID P!.G!)!) *)
  947. idspace[175].val := nilref;
  948. (* !(!*LOAD !2 !(QUOTE PROGG!0!1!3!1!)!) *)
  949. mkident(176,2);
  950. (* !(!*LINK MAP EXPR !2!) *)
  951. PAS318;
  952. (* !(!*STORE NIL !(FLUID THROWING!*!)!) *)
  953. idspace[131].val := nilref;
  954. (* !(!*LOAD !1 !(QUOTE !$PROG!$!)!) *)
  955. mkident(173,1);
  956. (* !(!*STORE !1 !-!1!) *)
  957. store(1,1);
  958. (* !(!*LBL G!0!1!3!8!) *)
  959. 100:
  960. (* !(!*LOAD !1 !(FLUID P!.P!)!) *)
  961. R[1] := idspace[172].val;
  962. (* !(!*JUMPNIL G!0!1!3!7!) *)
  963. IF R[1] = nilref THEN GOTO 101;
  964. (* !(!*LOAD !1 !-!1!) *)
  965. load(1,1);
  966. (* !(!*JUMPN G!0!1!3!7 !(QUOTE !$PROG!$!)!) *)
  967. mkitem(IDTAG,173,RXX);
  968. IF R[1] <> RXX THEN GOTO 101;
  969. (* !(!*LOAD !1 !(CAR !(FLUID P!.P!)!)!) *)
  970. ANYcar(idspace[172].val,R[1]);
  971. (* !(!*STORE !1 !-!2!) *)
  972. store(1,2);
  973. (* !(!*LOAD !1 !(CDR !(FLUID P!.P!)!)!) *)
  974. ANYcdr(idspace[172].val,R[1]);
  975. (* !(!*STORE !1 !(FLUID P!.P!)!) *)
  976. idspace[172].val := R[1];
  977. (* !(!*LOAD !1 !-!2!) *)
  978. load(1,2);
  979. (* !(!*JUMPC G!0!1!3!8 !1 IDTAG!) *)
  980. IF tag_of(R[1]) = IDTAG THEN GOTO 100;
  981. (* !(!*LOAD !2 !1!) *)
  982. R[2] := R[1];
  983. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  984. R[1] := nilref;
  985. (* !(!*LINK TCATCH EXPR !2!) *)
  986. PAS31;
  987. (* !(!*STORE !1 !-!2!) *)
  988. store(1,2);
  989. (* !(!*LOAD !1 !(FLUID THROWING!*!)!) *)
  990. R[1] := idspace[131].val;
  991. (* !(!*JUMPNIL G!0!1!3!8!) *)
  992. IF R[1] = nilref THEN GOTO 100;
  993. (* !(!*LOAD !1 !(FLUID THROWTAG!*!)!) *)
  994. R[1] := idspace[156].val;
  995. (* !(!*STORE !1 !-!1!) *)
  996. store(1,1);
  997. (* !(!*LOAD !1 !-!2!) *)
  998. load(1,2);
  999. (* !(!*STORE !1 !-!3!) *)
  1000. store(1,3);
  1001. (* !(!*JUMP G!0!1!3!8!) *)
  1002. GOTO 100;
  1003. (* !(!*LBL G!0!1!3!7!) *)
  1004. 101:
  1005. (* !(!*LOAD !1 !-!4!) *)
  1006. load(1,4);
  1007. (* !(!*LINK UNBINDN EXPR !1!) *)
  1008. PAS276;
  1009. (* !(!*LOAD !1 !-!5!) *)
  1010. load(1,5);
  1011. (* !(!*STORE !1 !(FLUID P!.P!)!) *)
  1012. idspace[172].val := R[1];
  1013. (* !(!*LOAD !1 !-!6!) *)
  1014. load(1,6);
  1015. (* !(!*STORE !1 !(FLUID P!.G!)!) *)
  1016. idspace[175].val := R[1];
  1017. (* !(!*LOAD !1 !-!1!) *)
  1018. load(1,1);
  1019. (* !(!*JUMPN G!0!1!4!9 !(QUOTE !$PROG!$!)!) *)
  1020. mkitem(IDTAG,173,RXX);
  1021. IF R[1] <> RXX THEN GOTO 102;
  1022. (* !(!*LOAD !1 !-!3!) *)
  1023. load(1,3);
  1024. (* !(!*JUMP G!0!1!3!6!) *)
  1025. GOTO 103;
  1026. (* !(!*LBL G!0!1!4!9!) *)
  1027. 102:
  1028. (* !(!*LOAD !2 !-!3!) *)
  1029. load(2,3);
  1030. (* !(!*LINK TTHROW EXPR !2!) *)
  1031. PAS32;
  1032. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  1033. R[1] := nilref;
  1034. (* !(!*LBL G!0!1!3!6!) *)
  1035. 103:
  1036. (* !(!*DEALLOC !7!) *)
  1037. dealloc(7);
  1038. (* !(!*EXIT!) *)
  1039. end;
  1040. (* !(!*ENTRY WHILE FEXPR !1!) *)
  1041. (* FEXPR WHILE *)
  1042. procedure PAS320;
  1043. label
  1044. 102,
  1045. 101,
  1046. 100;
  1047. begin
  1048. (* !(!*ALLOC !2!) *)
  1049. alloc2;
  1050. (* !(!*STORE !1 !0!) *)
  1051. store10;
  1052. (* !(!*JUMPNC G!0!1!5!7 !1 PAIRTAG!) *)
  1053. IF tag_of(R[1]) <> PAIRTAG THEN GOTO 101;
  1054. (* !(!*LOAD !1 !(CAR !1!)!) *)
  1055. XCAR;
  1056. (* !(!*STORE !1 !-!1!) *)
  1057. store(1,1);
  1058. (* !(!*LBL G!0!1!5!2!) *)
  1059. 100:
  1060. (* !(!*LOAD !1 !-!1!) *)
  1061. load(1,1);
  1062. (* !(!*LINK EVAL EXPR !1!) *)
  1063. XEVAL;
  1064. (* !(!*JUMPNIL G!0!1!5!1!) *)
  1065. IF R[1] = nilref THEN GOTO 102;
  1066. (* !(!*LOAD !1 !(CDR !0!)!) *)
  1067. ANYcdr(stk[st],R[1]);
  1068. (* !(!*LINK P!.N EXPR !1!) *)
  1069. PAS278;
  1070. (* !(!*JUMP G!0!1!5!2!) *)
  1071. GOTO 100;
  1072. (* !(!*LBL G!0!1!5!7!) *)
  1073. 101:
  1074. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  1075. R[1] := nilref;
  1076. (* !(!*LBL G!0!1!5!1!) *)
  1077. 102:
  1078. (* !(!*DEALLOC !2!) *)
  1079. dealloc2;
  1080. (* !(!*EXIT!) *)
  1081. end;
  1082. (* !(!*ENTRY AND FEXPR !1!) *)
  1083. (* FEXPR AND *)
  1084. procedure PAS321;
  1085. label
  1086. 102,
  1087. 101,
  1088. 100;
  1089. begin
  1090. (* !(!*ALLOC !1!) *)
  1091. alloc1;
  1092. (* !(!*STORE !1 !0!) *)
  1093. store10;
  1094. (* !(!*JUMPC G!0!1!6!2 !1 PAIRTAG!) *)
  1095. IF tag_of(R[1]) = PAIRTAG THEN GOTO 100;
  1096. (* !(!*LOAD !1 !(QUOTE T!)!) *)
  1097. R[1] := trueref;
  1098. (* !(!*JUMP G!0!1!5!9!) *)
  1099. GOTO 102;
  1100. (* !(!*LBL G!0!1!6!2!) *)
  1101. 100:
  1102. (* !(!*LOAD !1 !(CDR !0!)!) *)
  1103. ANYcdr(stk[st],R[1]);
  1104. (* !(!*JUMPT G!0!1!6!4!) *)
  1105. IF R[1] <> nilref THEN GOTO 101;
  1106. (* !(!*LOAD !1 !(CAR !0!)!) *)
  1107. ANYcar(stk[st],R[1]);
  1108. (* !(!*LINK EVAL EXPR !1!) *)
  1109. XEVAL;
  1110. (* !(!*JUMP G!0!1!5!9!) *)
  1111. GOTO 102;
  1112. (* !(!*LBL G!0!1!6!4!) *)
  1113. 101:
  1114. (* !(!*LOAD !1 !(CAR !0!)!) *)
  1115. ANYcar(stk[st],R[1]);
  1116. (* !(!*LINK EVAL EXPR !1!) *)
  1117. XEVAL;
  1118. (* !(!*JUMPNIL G!0!1!5!9!) *)
  1119. IF R[1] = nilref THEN GOTO 102;
  1120. (* !(!*LOAD !1 !(CDR !0!)!) *)
  1121. ANYcdr(stk[st],R[1]);
  1122. (* !(!*STORE !1 !0!) *)
  1123. store10;
  1124. (* !(!*JUMP G!0!1!6!2!) *)
  1125. GOTO 100;
  1126. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  1127. R[1] := nilref;
  1128. (* !(!*LBL G!0!1!5!9!) *)
  1129. 102:
  1130. (* !(!*DEALLOC !1!) *)
  1131. dealloc1;
  1132. (* !(!*EXIT!) *)
  1133. end;
  1134. (* !(!*ENTRY COND FEXPR !1!) *)
  1135. (* FEXPR COND *)
  1136. procedure PAS322;
  1137. label
  1138. 105,
  1139. 104,
  1140. 103,
  1141. 102,
  1142. 101,
  1143. 100;
  1144. begin
  1145. (* !(!*ALLOC !3!) *)
  1146. alloc3;
  1147. (* !(!*STORE NIL !-!2!) *)
  1148. storenil(2);
  1149. (* !(!*STORE !1 !0!) *)
  1150. store10;
  1151. (* !(!*LBL G!0!1!7!0!) *)
  1152. 100:
  1153. (* !(!*LOAD !1 !0!) *)
  1154. load10;
  1155. (* !(!*JUMPC G!0!1!7!2 !1 PAIRTAG!) *)
  1156. IF tag_of(R[1]) = PAIRTAG THEN GOTO 101;
  1157. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  1158. R[1] := nilref;
  1159. (* !(!*JUMP G!0!1!6!9!) *)
  1160. GOTO 105;
  1161. (* !(!*LBL G!0!1!7!2!) *)
  1162. 101:
  1163. (* !(!*LOAD !1 !(CAR !1!)!) *)
  1164. XCAR;
  1165. (* !(!*STORE !1 !-!1!) *)
  1166. store(1,1);
  1167. (* !(!*LOAD !1 !(CDR !0!)!) *)
  1168. ANYcdr(stk[st],R[1]);
  1169. (* !(!*STORE !1 !0!) *)
  1170. store10;
  1171. (* !(!*LOAD !1 !-!1!) *)
  1172. load(1,1);
  1173. (* !(!*JUMPNC G!0!1!7!4 !1 PAIRTAG!) *)
  1174. IF tag_of(R[1]) <> PAIRTAG THEN GOTO 102;
  1175. (* !(!*LOAD !1 !(CAR !1!)!) *)
  1176. XCAR;
  1177. (* !(!*LBL G!0!1!7!4!) *)
  1178. 102:
  1179. (* !(!*STORE !1 !-!2!) *)
  1180. store(1,2);
  1181. (* !(!*LOAD !1 !-!2!) *)
  1182. load(1,2);
  1183. (* !(!*LINK EVAL EXPR !1!) *)
  1184. XEVAL;
  1185. (* !(!*STORE !1 !-!2!) *)
  1186. store(1,2);
  1187. (* !(!*JUMPNIL G!0!1!7!0!) *)
  1188. IF R[1] = nilref THEN GOTO 100;
  1189. (* !(!*LOAD !1 !-!1!) *)
  1190. load(1,1);
  1191. (* !(!*JUMPNC G!0!1!8!0 !1 PAIRTAG!) *)
  1192. IF tag_of(R[1]) <> PAIRTAG THEN GOTO 103;
  1193. (* !(!*LOAD !1 !(CDR !1!)!) *)
  1194. XCDR;
  1195. (* !(!*JUMPT G!0!1!7!9!) *)
  1196. IF R[1] <> nilref THEN GOTO 104;
  1197. (* !(!*LBL G!0!1!8!0!) *)
  1198. 103:
  1199. (* !(!*LOAD !1 !-!2!) *)
  1200. load(1,2);
  1201. (* !(!*JUMP G!0!1!6!9!) *)
  1202. GOTO 105;
  1203. (* !(!*LBL G!0!1!7!9!) *)
  1204. 104:
  1205. (* !(!*LINK P!.N EXPR !1!) *)
  1206. PAS278;
  1207. (* !(!*LBL G!0!1!6!9!) *)
  1208. 105:
  1209. (* !(!*DEALLOC !3!) *)
  1210. dealloc3;
  1211. (* !(!*EXIT!) *)
  1212. end;
  1213. (* !(!*ENTRY OR FEXPR !1!) *)
  1214. (* FEXPR OR *)
  1215. procedure PAS323;
  1216. label
  1217. 102,
  1218. 101,
  1219. 100;
  1220. begin
  1221. (* !(!*ALLOC !2!) *)
  1222. alloc2;
  1223. (* !(!*STORE NIL !-!1!) *)
  1224. storenil(1);
  1225. (* !(!*STORE !1 !0!) *)
  1226. store10;
  1227. (* !(!*LBL G!0!1!8!5!) *)
  1228. 100:
  1229. (* !(!*JUMPNC G!0!1!9!0 !1 PAIRTAG!) *)
  1230. IF tag_of(R[1]) <> PAIRTAG THEN GOTO 101;
  1231. (* !(!*LOAD !1 !(CAR !1!)!) *)
  1232. XCAR;
  1233. (* !(!*LINK EVAL EXPR !1!) *)
  1234. XEVAL;
  1235. (* !(!*STORE !1 !-!1!) *)
  1236. store(1,1);
  1237. (* !(!*JUMPT G!0!1!8!4!) *)
  1238. IF R[1] <> nilref THEN GOTO 102;
  1239. (* !(!*LOAD !1 !(CDR !0!)!) *)
  1240. ANYcdr(stk[st],R[1]);
  1241. (* !(!*STORE !1 !0!) *)
  1242. store10;
  1243. (* !(!*JUMP G!0!1!8!5!) *)
  1244. GOTO 100;
  1245. (* !(!*LBL G!0!1!9!0!) *)
  1246. 101:
  1247. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  1248. R[1] := nilref;
  1249. (* !(!*LBL G!0!1!8!4!) *)
  1250. 102:
  1251. (* !(!*DEALLOC !2!) *)
  1252. dealloc2;
  1253. (* !(!*EXIT!) *)
  1254. end;
  1255. (* !(!*ENTRY MAP EXPR !2!) *)
  1256. (* EXPR MAP *)
  1257. procedure PAS318;
  1258. label
  1259. 101,
  1260. 100;
  1261. begin
  1262. (* !(!*ALLOC !2!) *)
  1263. alloc2;
  1264. (* !(!*STORE !1 !0!) *)
  1265. store10;
  1266. (* !(!*STORE !2 !-!1!) *)
  1267. store(2,1);
  1268. (* !(!*LBL G!0!1!9!4!) *)
  1269. 100:
  1270. (* !(!*JUMPNIL G!0!1!9!3!) *)
  1271. IF R[1] = nilref THEN GOTO 101;
  1272. (* !(!*LOAD !2 !1!) *)
  1273. R[2] := R[1];
  1274. (* !(!*LOAD !1 !-!1!) *)
  1275. load(1,1);
  1276. (* !(!*LINK APPLY!1 EXPR !2!) *)
  1277. PAS312;
  1278. (* !(!*LOAD !1 !(CDR !0!)!) *)
  1279. ANYcdr(stk[st],R[1]);
  1280. (* !(!*STORE !1 !0!) *)
  1281. store10;
  1282. (* !(!*JUMP G!0!1!9!4!) *)
  1283. GOTO 100;
  1284. (* !(!*LBL G!0!1!9!3!) *)
  1285. 101:
  1286. (* !(!*DEALLOC !2!) *)
  1287. dealloc2;
  1288. (* !(!*EXIT!) *)
  1289. end;
  1290. (* !(!*ENTRY MAPC EXPR !2!) *)
  1291. (* EXPR MAPC *)
  1292. procedure PAS324;
  1293. label
  1294. 101,
  1295. 100;
  1296. begin
  1297. (* !(!*ALLOC !2!) *)
  1298. alloc2;
  1299. (* !(!*STORE !1 !0!) *)
  1300. store10;
  1301. (* !(!*STORE !2 !-!1!) *)
  1302. store(2,1);
  1303. (* !(!*LBL G!0!2!0!0!) *)
  1304. 100:
  1305. (* !(!*JUMPNIL G!0!1!9!9!) *)
  1306. IF R[1] = nilref THEN GOTO 101;
  1307. (* !(!*LOAD !2 !(CAR !1!)!) *)
  1308. ANYcar(R[1],R[2]);
  1309. (* !(!*LOAD !1 !-!1!) *)
  1310. load(1,1);
  1311. (* !(!*LINK APPLY!1 EXPR !2!) *)
  1312. PAS312;
  1313. (* !(!*LOAD !1 !(CDR !0!)!) *)
  1314. ANYcdr(stk[st],R[1]);
  1315. (* !(!*STORE !1 !0!) *)
  1316. store10;
  1317. (* !(!*JUMP G!0!2!0!0!) *)
  1318. GOTO 100;
  1319. (* !(!*LBL G!0!1!9!9!) *)
  1320. 101:
  1321. (* !(!*DEALLOC !2!) *)
  1322. dealloc2;
  1323. (* !(!*EXIT!) *)
  1324. end;
  1325. procedure PAS325;
  1326. forward;
  1327. procedure PAS326;
  1328. forward;
  1329. (* !(!*ENTRY MAPCAN EXPR !2!) *)
  1330. (* EXPR MAPCAN *)
  1331. procedure PAS325;
  1332. label
  1333. 101,
  1334. 100;
  1335. begin
  1336. (* !(!*ALLOC !3!) *)
  1337. alloc3;
  1338. (* !(!*STORE !1 !0!) *)
  1339. store10;
  1340. (* !(!*STORE !2 !-!1!) *)
  1341. store(2,1);
  1342. (* !(!*JUMPNC G!0!2!0!5 !1 ATOM!) *)
  1343. IF tag_of(R[1]) = PAIRTAG THEN GOTO 100;
  1344. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  1345. R[1] := nilref;
  1346. (* !(!*JUMP G!0!2!0!6!) *)
  1347. GOTO 101;
  1348. (* !(!*LBL G!0!2!0!5!) *)
  1349. 100:
  1350. (* !(!*LOAD !2 !(CAR !1!)!) *)
  1351. ANYcar(R[1],R[2]);
  1352. (* !(!*LOAD !1 !-!1!) *)
  1353. load(1,1);
  1354. (* !(!*LINK APPLY!1 EXPR !2!) *)
  1355. PAS312;
  1356. (* !(!*STORE !1 !-!2!) *)
  1357. store(1,2);
  1358. (* !(!*LOAD !2 !-!1!) *)
  1359. load(2,1);
  1360. (* !(!*LOAD !1 !(CDR !0!)!) *)
  1361. ANYcdr(stk[st],R[1]);
  1362. (* !(!*LINK MAPCAN EXPR !2!) *)
  1363. PAS325;
  1364. (* !(!*LOAD !2 !1!) *)
  1365. R[2] := R[1];
  1366. (* !(!*LOAD !1 !-!2!) *)
  1367. load(1,2);
  1368. (* !(!*LINK NCONC EXPR !2!) *)
  1369. PAS326;
  1370. (* !(!*LBL G!0!2!0!6!) *)
  1371. 101:
  1372. (* !(!*DEALLOC !3!) *)
  1373. dealloc3;
  1374. (* !(!*EXIT!) *)
  1375. end;
  1376. procedure PAS327;
  1377. forward;
  1378. (* !(!*ENTRY MAPCAR EXPR !2!) *)
  1379. (* EXPR MAPCAR *)
  1380. procedure PAS327;
  1381. label
  1382. 101,
  1383. 100;
  1384. begin
  1385. (* !(!*ALLOC !3!) *)
  1386. alloc3;
  1387. (* !(!*STORE !1 !0!) *)
  1388. store10;
  1389. (* !(!*STORE !2 !-!1!) *)
  1390. store(2,1);
  1391. (* !(!*JUMPNC G!0!2!1!1 !1 ATOM!) *)
  1392. IF tag_of(R[1]) = PAIRTAG THEN GOTO 100;
  1393. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  1394. R[1] := nilref;
  1395. (* !(!*JUMP G!0!2!1!2!) *)
  1396. GOTO 101;
  1397. (* !(!*LBL G!0!2!1!1!) *)
  1398. 100:
  1399. (* !(!*LOAD !2 !(CAR !1!)!) *)
  1400. ANYcar(R[1],R[2]);
  1401. (* !(!*LOAD !1 !-!1!) *)
  1402. load(1,1);
  1403. (* !(!*LINK APPLY!1 EXPR !2!) *)
  1404. PAS312;
  1405. (* !(!*STORE !1 !-!2!) *)
  1406. store(1,2);
  1407. (* !(!*LOAD !2 !-!1!) *)
  1408. load(2,1);
  1409. (* !(!*LOAD !1 !(CDR !0!)!) *)
  1410. ANYcdr(stk[st],R[1]);
  1411. (* !(!*LINK MAPCAR EXPR !2!) *)
  1412. PAS327;
  1413. (* !(!*LOAD !2 !-!2!) *)
  1414. load(2,2);
  1415. (* !(!*LINK XCONS EXPR !2!) *)
  1416. XXCONS;
  1417. (* !(!*LBL G!0!2!1!2!) *)
  1418. 101:
  1419. (* !(!*DEALLOC !3!) *)
  1420. dealloc3;
  1421. (* !(!*EXIT!) *)
  1422. end;
  1423. procedure PAS328;
  1424. forward;
  1425. (* !(!*ENTRY MAPCON EXPR !2!) *)
  1426. (* EXPR MAPCON *)
  1427. procedure PAS328;
  1428. label
  1429. 101,
  1430. 100;
  1431. begin
  1432. (* !(!*ALLOC !3!) *)
  1433. alloc3;
  1434. (* !(!*STORE !1 !0!) *)
  1435. store10;
  1436. (* !(!*STORE !2 !-!1!) *)
  1437. store(2,1);
  1438. (* !(!*JUMPNC G!0!2!1!7 !1 ATOM!) *)
  1439. IF tag_of(R[1]) = PAIRTAG THEN GOTO 100;
  1440. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  1441. R[1] := nilref;
  1442. (* !(!*JUMP G!0!2!1!8!) *)
  1443. GOTO 101;
  1444. (* !(!*LBL G!0!2!1!7!) *)
  1445. 100:
  1446. (* !(!*LOAD !2 !1!) *)
  1447. R[2] := R[1];
  1448. (* !(!*LOAD !1 !-!1!) *)
  1449. load(1,1);
  1450. (* !(!*LINK APPLY!1 EXPR !2!) *)
  1451. PAS312;
  1452. (* !(!*STORE !1 !-!2!) *)
  1453. store(1,2);
  1454. (* !(!*LOAD !2 !-!1!) *)
  1455. load(2,1);
  1456. (* !(!*LOAD !1 !(CDR !0!)!) *)
  1457. ANYcdr(stk[st],R[1]);
  1458. (* !(!*LINK MAPCON EXPR !2!) *)
  1459. PAS328;
  1460. (* !(!*LOAD !2 !1!) *)
  1461. R[2] := R[1];
  1462. (* !(!*LOAD !1 !-!2!) *)
  1463. load(1,2);
  1464. (* !(!*LINK NCONC EXPR !2!) *)
  1465. PAS326;
  1466. (* !(!*LBL G!0!2!1!8!) *)
  1467. 101:
  1468. (* !(!*DEALLOC !3!) *)
  1469. dealloc3;
  1470. (* !(!*EXIT!) *)
  1471. end;
  1472. procedure PAS329;
  1473. forward;
  1474. (* !(!*ENTRY MAPLIST EXPR !2!) *)
  1475. (* EXPR MAPLIST *)
  1476. procedure PAS329;
  1477. label
  1478. 101,
  1479. 100;
  1480. begin
  1481. (* !(!*ALLOC !3!) *)
  1482. alloc3;
  1483. (* !(!*STORE !1 !0!) *)
  1484. store10;
  1485. (* !(!*STORE !2 !-!1!) *)
  1486. store(2,1);
  1487. (* !(!*JUMPNC G!0!2!2!3 !1 ATOM!) *)
  1488. IF tag_of(R[1]) = PAIRTAG THEN GOTO 100;
  1489. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  1490. R[1] := nilref;
  1491. (* !(!*JUMP G!0!2!2!4!) *)
  1492. GOTO 101;
  1493. (* !(!*LBL G!0!2!2!3!) *)
  1494. 100:
  1495. (* !(!*LOAD !2 !1!) *)
  1496. R[2] := R[1];
  1497. (* !(!*LOAD !1 !-!1!) *)
  1498. load(1,1);
  1499. (* !(!*LINK APPLY!1 EXPR !2!) *)
  1500. PAS312;
  1501. (* !(!*STORE !1 !-!2!) *)
  1502. store(1,2);
  1503. (* !(!*LOAD !2 !-!1!) *)
  1504. load(2,1);
  1505. (* !(!*LOAD !1 !(CDR !0!)!) *)
  1506. ANYcdr(stk[st],R[1]);
  1507. (* !(!*LINK MAPLIST EXPR !2!) *)
  1508. PAS329;
  1509. (* !(!*LOAD !2 !-!2!) *)
  1510. load(2,2);
  1511. (* !(!*LINK XCONS EXPR !2!) *)
  1512. XXCONS;
  1513. (* !(!*LBL G!0!2!2!4!) *)
  1514. 101:
  1515. (* !(!*DEALLOC !3!) *)
  1516. dealloc3;
  1517. (* !(!*EXIT!) *)
  1518. end;
  1519. (* !(!*ENTRY NCONC EXPR !2!) *)
  1520. (* EXPR NCONC *)
  1521. procedure PAS326;
  1522. label
  1523. 103,
  1524. 102,
  1525. 101,
  1526. 100;
  1527. begin
  1528. (* !(!*ALLOC !3!) *)
  1529. alloc3;
  1530. (* !(!*STORE !1 !0!) *)
  1531. store10;
  1532. (* !(!*STORE !2 !-!1!) *)
  1533. store(2,1);
  1534. (* !(!*JUMPNC G!0!2!3!1 !1 ATOM!) *)
  1535. IF tag_of(R[1]) = PAIRTAG THEN GOTO 100;
  1536. (* !(!*LOAD !1 !2!) *)
  1537. R[1] := R[2];
  1538. (* !(!*JUMP G!0!2!2!9!) *)
  1539. GOTO 103;
  1540. (* !(!*LBL G!0!2!3!1!) *)
  1541. 100:
  1542. (* !(!*STORE !1 !-!2!) *)
  1543. store(1,2);
  1544. (* !(!*LBL G!0!2!3!3!) *)
  1545. 101:
  1546. (* !(!*LOAD !1 !(CDR !-!2!)!) *)
  1547. ANYcdr(stk[st-2],R[1]);
  1548. (* !(!*JUMPNC G!0!2!3!2 !1 PAIRTAG!) *)
  1549. IF tag_of(R[1]) <> PAIRTAG THEN GOTO 102;
  1550. (* !(!*STORE !1 !-!2!) *)
  1551. store(1,2);
  1552. (* !(!*JUMP G!0!2!3!3!) *)
  1553. GOTO 101;
  1554. (* !(!*LBL G!0!2!3!2!) *)
  1555. 102:
  1556. (* !(!*LOAD !2 !-!1!) *)
  1557. load(2,1);
  1558. (* !(!*LOAD !1 !-!2!) *)
  1559. load(1,2);
  1560. (* !(!*LINK RPLACD EXPR !2!) *)
  1561. XRPLACD;
  1562. (* !(!*LOAD !1 !0!) *)
  1563. load10;
  1564. (* !(!*LBL G!0!2!2!9!) *)
  1565. 103:
  1566. (* !(!*DEALLOC !3!) *)
  1567. dealloc3;
  1568. (* !(!*EXIT!) *)
  1569. end;
  1570. (* !(!*ENTRY PUTC EXPR !3!) *)
  1571. (* EXPR PUTC *)
  1572. procedure PAS330;
  1573. begin
  1574. (* !(!*ALLOC !0!) *)
  1575. (* !(!*LINK PUT EXPR !3!) *)
  1576. PAS224;
  1577. (* !(!*DEALLOC !0!) *)
  1578. (* !(!*EXIT!) *)
  1579. end;
  1580. (* !(!*ENTRY FLUID EXPR !1!) *)
  1581. (* EXPR FLUID *)
  1582. procedure PAS331;
  1583. begin
  1584. (* !(!*ALLOC !0!) *)
  1585. (* !(!*DEALLOC !0!) *)
  1586. (* !(!*EXIT!) *)
  1587. end;
  1588. procedure PAS332;
  1589. forward;
  1590. (* !(!*ENTRY PRIN!2TL EXPR !1!) *)
  1591. (* EXPR PRIN2TL *)
  1592. procedure PAS332;
  1593. label
  1594. 101,
  1595. 100;
  1596. begin
  1597. (* !(!*ALLOC !1!) *)
  1598. alloc1;
  1599. (* !(!*STORE !1 !0!) *)
  1600. store10;
  1601. (* !(!*JUMPC G!0!2!4!0 !1 PAIRTAG!) *)
  1602. IF tag_of(R[1]) = PAIRTAG THEN GOTO 100;
  1603. (* !(!*LINK TERPRI EXPR !0!) *)
  1604. XTERPRI;
  1605. (* !(!*JUMP G!0!2!4!1!) *)
  1606. GOTO 101;
  1607. (* !(!*LBL G!0!2!4!0!) *)
  1608. 100:
  1609. (* !(!*LOAD !1 !(CAR !1!)!) *)
  1610. XCAR;
  1611. (* !(!*LINK PRIN!2 EXPR !1!) *)
  1612. PAS129;
  1613. (* !(!*LOAD !1 !(QUOTE ! !)!) *)
  1614. mkident(33,1);
  1615. (* !(!*LINK PRIN!2 EXPR !1!) *)
  1616. PAS129;
  1617. (* !(!*LOAD !1 !(CDR !0!)!) *)
  1618. ANYcdr(stk[st],R[1]);
  1619. (* !(!*LINK PRIN!2TL EXPR !1!) *)
  1620. PAS332;
  1621. (* !(!*LBL G!0!2!4!1!) *)
  1622. 101:
  1623. (* !(!*DEALLOC !1!) *)
  1624. dealloc1;
  1625. (* !(!*EXIT!) *)
  1626. end;
  1627. (* !(!*ENTRY FLOATP EXPR !1!) *)
  1628. (* EXPR FLOATP *)
  1629. procedure PAS333;
  1630. begin
  1631. (* !(!*ALLOC !0!) *)
  1632. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  1633. R[1] := nilref;
  1634. (* !(!*DEALLOC !0!) *)
  1635. (* !(!*EXIT!) *)
  1636. end;
  1637. (* !(!*ENTRY STRINGP EXPR !1!) *)
  1638. (* EXPR STRINGP *)
  1639. procedure PAS334;
  1640. begin
  1641. (* !(!*ALLOC !0!) *)
  1642. (* !(!*LINK IDP EXPR !1!) *)
  1643. PAS24;
  1644. (* !(!*DEALLOC !0!) *)
  1645. (* !(!*EXIT!) *)
  1646. end;
  1647. (* !(!*ENTRY VECTORP EXPR !1!) *)
  1648. (* EXPR VECTORP *)
  1649. procedure PAS335;
  1650. begin
  1651. (* !(!*ALLOC !0!) *)
  1652. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  1653. R[1] := nilref;
  1654. (* !(!*DEALLOC !0!) *)
  1655. (* !(!*EXIT!) *)
  1656. end;
  1657. (* !(!*ENTRY FLUIDP EXPR !1!) *)
  1658. (* EXPR FLUIDP *)
  1659. procedure PAS336;
  1660. begin
  1661. (* !(!*ALLOC !0!) *)
  1662. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  1663. R[1] := nilref;
  1664. (* !(!*DEALLOC !0!) *)
  1665. (* !(!*EXIT!) *)
  1666. end;
  1667. (* !(!*ENTRY INTERN EXPR !1!) *)
  1668. (* EXPR INTERN *)
  1669. procedure PAS337;
  1670. begin
  1671. (* !(!*ALLOC !0!) *)
  1672. (* !(!*DEALLOC !0!) *)
  1673. (* !(!*EXIT!) *)
  1674. end;
  1675. (* !(!*ENTRY REMOB EXPR !1!) *)
  1676. (* EXPR REMOB *)
  1677. procedure PAS338;
  1678. begin
  1679. (* !(!*ALLOC !0!) *)
  1680. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  1681. R[1] := nilref;
  1682. (* !(!*DEALLOC !0!) *)
  1683. (* !(!*EXIT!) *)
  1684. end;
  1685. (* !(!*ENTRY GLOBAL EXPR !1!) *)
  1686. (* EXPR GLOBAL *)
  1687. procedure PAS339;
  1688. label
  1689. 101,
  1690. 100;
  1691. begin
  1692. (* !(!*ALLOC !1!) *)
  1693. alloc1;
  1694. (* !(!*STORE !1 !0!) *)
  1695. store10;
  1696. (* !(!*LBL G!0!2!5!1!) *)
  1697. 100:
  1698. (* !(!*JUMPNIL G!0!2!5!0!) *)
  1699. IF R[1] = nilref THEN GOTO 101;
  1700. (* !(!*LOAD !2 !(QUOTE GLOBAL!)!) *)
  1701. mkident(177,2);
  1702. (* !(!*LINK FLAG EXPR !2!) *)
  1703. PAS237;
  1704. (* !(!*LOAD !1 !(CDR !0!)!) *)
  1705. ANYcdr(stk[st],R[1]);
  1706. (* !(!*STORE !1 !0!) *)
  1707. store10;
  1708. (* !(!*JUMP G!0!2!5!1!) *)
  1709. GOTO 100;
  1710. (* !(!*LBL G!0!2!5!0!) *)
  1711. 101:
  1712. (* !(!*DEALLOC !1!) *)
  1713. dealloc1;
  1714. (* !(!*EXIT!) *)
  1715. end;
  1716. (* !(!*ENTRY GLOBALP EXPR !1!) *)
  1717. (* EXPR GLOBALP *)
  1718. procedure PAS340;
  1719. begin
  1720. (* !(!*ALLOC !0!) *)
  1721. (* !(!*LOAD !2 !(QUOTE GLOBAL!)!) *)
  1722. mkident(177,2);
  1723. (* !(!*LINK FLAGP EXPR !2!) *)
  1724. PAS235;
  1725. (* !(!*DEALLOC !0!) *)
  1726. (* !(!*EXIT!) *)
  1727. end;
  1728. (* !(!*ENTRY UNFLUID EXPR !1!) *)
  1729. (* EXPR UNFLUID *)
  1730. procedure PAS341;
  1731. begin
  1732. (* !(!*ALLOC !0!) *)
  1733. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  1734. R[1] := nilref;
  1735. (* !(!*DEALLOC !0!) *)
  1736. (* !(!*EXIT!) *)
  1737. end;
  1738. (* !(!*ENTRY GETV EXPR !2!) *)
  1739. (* EXPR GETV *)
  1740. procedure PAS342;
  1741. begin
  1742. (* !(!*ALLOC !0!) *)
  1743. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  1744. R[1] := nilref;
  1745. (* !(!*DEALLOC !0!) *)
  1746. (* !(!*EXIT!) *)
  1747. end;
  1748. (* !(!*ENTRY MKVECT EXPR !1!) *)
  1749. (* EXPR MKVECT *)
  1750. procedure PAS343;
  1751. begin
  1752. (* !(!*ALLOC !0!) *)
  1753. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  1754. R[1] := nilref;
  1755. (* !(!*DEALLOC !0!) *)
  1756. (* !(!*EXIT!) *)
  1757. end;
  1758. (* !(!*ENTRY PUTV EXPR !3!) *)
  1759. (* EXPR PUTV *)
  1760. procedure PAS344;
  1761. begin
  1762. (* !(!*ALLOC !0!) *)
  1763. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  1764. R[1] := nilref;
  1765. (* !(!*DEALLOC !0!) *)
  1766. (* !(!*EXIT!) *)
  1767. end;
  1768. (* !(!*ENTRY UPBV EXPR !1!) *)
  1769. (* EXPR UPBV *)
  1770. procedure PAS345;
  1771. begin
  1772. (* !(!*ALLOC !0!) *)
  1773. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  1774. R[1] := nilref;
  1775. (* !(!*DEALLOC !0!) *)
  1776. (* !(!*EXIT!) *)
  1777. end;
  1778. (* !(!*ENTRY DIGIT EXPR !1!) *)
  1779. (* EXPR DIGIT *)
  1780. procedure PAS346;
  1781. begin
  1782. (* !(!*ALLOC !0!) *)
  1783. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  1784. R[1] := nilref;
  1785. (* !(!*DEALLOC !0!) *)
  1786. (* !(!*EXIT!) *)
  1787. end;
  1788. (* !(!*ENTRY LITER EXPR !1!) *)
  1789. (* EXPR LITER *)
  1790. procedure PAS347;
  1791. begin
  1792. (* !(!*ALLOC !0!) *)
  1793. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  1794. R[1] := nilref;
  1795. (* !(!*DEALLOC !0!) *)
  1796. (* !(!*EXIT!) *)
  1797. end;
  1798. (* !(!*ENTRY READCH EXPR !1!) *)
  1799. (* EXPR READCH *)
  1800. procedure PAS348;
  1801. begin
  1802. (* !(!*ALLOC !0!) *)
  1803. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  1804. R[1] := nilref;
  1805. (* !(!*DEALLOC !0!) *)
  1806. (* !(!*EXIT!) *)
  1807. end;
  1808. (* !(!*ENTRY RDEVPR EXPR !0!) *)
  1809. (* EXPR RDEVPR *)
  1810. procedure PAS349;
  1811. label
  1812. 101,
  1813. 100;
  1814. begin
  1815. (* !(!*ALLOC !0!) *)
  1816. (* !(!*JUMP G!0!2!6!8!) *)
  1817. GOTO 100;
  1818. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  1819. R[1] := nilref;
  1820. (* !(!*JUMP G!0!2!6!5!) *)
  1821. GOTO 101;
  1822. (* !(!*LBL G!0!2!6!8!) *)
  1823. 100:
  1824. (* !(!*LINK READ EXPR !0!) *)
  1825. XREAD;
  1826. (* !(!*LINK EVAL EXPR !1!) *)
  1827. XEVAL;
  1828. (* !(!*LINK PRINT EXPR !1!) *)
  1829. XPRINT;
  1830. (* !(!*JUMP G!0!2!6!8!) *)
  1831. GOTO 100;
  1832. (* !(!*LBL G!0!2!6!5!) *)
  1833. 101:
  1834. (* !(!*DEALLOC !0!) *)
  1835. (* !(!*EXIT!) *)
  1836. end;
  1837. (* !(!*ENTRY DSKIN EXPR !1!) *)
  1838. (* EXPR DSKIN *)
  1839. procedure PAS350;
  1840. label
  1841. 100;
  1842. begin
  1843. (* !(!*ALLOC !2!) *)
  1844. alloc2;
  1845. (* !(!*STORE !1 !0!) *)
  1846. store10;
  1847. (* !(!*LOAD !2 !(QUOTE INPUT!)!) *)
  1848. mkident(134,2);
  1849. (* !(!*LINK OPEN EXPR !2!) *)
  1850. XOPEN;
  1851. (* !(!*LINK RDS EXPR !1!) *)
  1852. XRDS;
  1853. (* !(!*STORE !1 !-!1!) *)
  1854. store(1,1);
  1855. (* !(!*LBL G!0!2!7!6!) *)
  1856. 100:
  1857. (* !(!*LINK READ EXPR !0!) *)
  1858. XREAD;
  1859. (* !(!*LINK EVAL EXPR !1!) *)
  1860. XEVAL;
  1861. (* !(!*LINK PRINT EXPR !1!) *)
  1862. XPRINT;
  1863. (* !(!*LINK EOFP EXPR !1!) *)
  1864. PAS132;
  1865. (* !(!*JUMPNIL G!0!2!7!6!) *)
  1866. IF R[1] = nilref THEN GOTO 100;
  1867. (* !(!*LOAD !1 !-!1!) *)
  1868. load(1,1);
  1869. (* !(!*LINK RDS EXPR !1!) *)
  1870. XRDS;
  1871. (* !(!*LINK CLOSE EXPR !1!) *)
  1872. XCLOSE;
  1873. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  1874. R[1] := nilref;
  1875. (* !(!*DEALLOC !2!) *)
  1876. dealloc2;
  1877. (* !(!*EXIT!) *)
  1878. end;
  1879. (* !(!*ENTRY !*FIRST!-PROCEDURE EXPR !0!) *)
  1880. (* EXPR *FIRST-PROCEDURE *)
  1881. procedure FIRSTP;
  1882. label
  1883. 105,
  1884. 104,
  1885. 103,
  1886. 102,
  1887. 101,
  1888. 100;
  1889. begin
  1890. (* !(!*ALLOC !3!) *)
  1891. alloc3;
  1892. (* !(!*STORE NIL !-!2!) *)
  1893. storenil(2);
  1894. (* !(!*LOAD !1 !(QUOTE !(PASCAL LISP V!2 !- !1!5 FEB !1!9!8!2!)!)!) *)
  1895. R[1] := stk[3];
  1896. (* !(!*LINK PRIN!2TL EXPR !1!) *)
  1897. PAS332;
  1898. (* !(!*LOAD !1 !(QUOTE !(COPYRIGHT !(C!) !1!9!8!1 U UTAH!)!)!) *)
  1899. R[1] := stk[4];
  1900. (* !(!*LINK PRIN!2TL EXPR !1!) *)
  1901. PAS332;
  1902. (* !(!*LOAD !1 !(QUOTE !(ALL RIGHTS RESERVED!)!)!) *)
  1903. R[1] := stk[5];
  1904. (* !(!*LINK PRIN!2TL EXPR !1!) *)
  1905. PAS332;
  1906. (* !(!*LOAD !1 !(QUOTE !(LIST!)!)!) *)
  1907. R[1] := stk[6];
  1908. (* !(!*STORE !1 !(FLUID NEXPRS!)!) *)
  1909. idspace[178].val := R[1];
  1910. (* !(!*LOAD !3 !(QUOTE NEXPR!)!) *)
  1911. mkident(168,3);
  1912. (* !(!*LOAD !2 !(QUOTE TYPE!)!) *)
  1913. mkident(157,2);
  1914. (* !(!*LINK PUTL EXPR !3!) *)
  1915. PAS36;
  1916. (* !(!*LOAD !1 !(QUOTE !(EXPR FEXPR NEXPR MACRO!)!)!) *)
  1917. R[1] := stk[2];
  1918. (* !(!*STORE !1 !(FLUID PROCS!)!) *)
  1919. idspace[179].val := R[1];
  1920. (* !(!*STORE NIL !-!1!) *)
  1921. storenil(1);
  1922. (* !(!*LBL G!0!2!8!9!) *)
  1923. 100:
  1924. (* !(!*LOAD !1 !-!1!) *)
  1925. load(1,1);
  1926. (* !(!*JUMPT G!0!2!8!8!) *)
  1927. IF R[1] <> nilref THEN GOTO 101;
  1928. (* !(!*LINK READ EXPR !0!) *)
  1929. XREAD;
  1930. (* !(!*STORE !1 !0!) *)
  1931. store10;
  1932. (* !(!*LINK EOFP EXPR !1!) *)
  1933. PAS132;
  1934. (* !(!*STORE !1 !-!1!) *)
  1935. store(1,1);
  1936. (* !(!*JUMPT G!0!2!8!9!) *)
  1937. IF R[1] <> nilref THEN GOTO 100;
  1938. (* !(!*LOAD !1 !0!) *)
  1939. load10;
  1940. (* !(!*LINK EVAL EXPR !1!) *)
  1941. XEVAL;
  1942. (* !(!*JUMP G!0!2!8!9!) *)
  1943. GOTO 100;
  1944. (* !(!*LBL G!0!2!8!8!) *)
  1945. 101:
  1946. (* !(!*LOAD !1 !(QUOTE !2!)!) *)
  1947. mkint(2,1);
  1948. (* !(!*LINK RDS EXPR !1!) *)
  1949. XRDS;
  1950. (* !(!*STORE NIL !-!1!) *)
  1951. storenil(1);
  1952. (* !(!*LBL G!0!2!9!5!) *)
  1953. 102:
  1954. (* !(!*LOAD !1 !-!1!) *)
  1955. load(1,1);
  1956. (* !(!*JUMPT G!0!2!9!4!) *)
  1957. IF R[1] <> nilref THEN GOTO 105;
  1958. (* !(!*LOAD !1 !(QUOTE !3!)!) *)
  1959. mkint(3,1);
  1960. (* !(!*LINK WRS EXPR !1!) *)
  1961. XWRS;
  1962. (* !(!*STORE !1 !-!2!) *)
  1963. store(1,2);
  1964. (* !(!*LOAD !1 !(QUOTE !>!)!) *)
  1965. mkident(63,1);
  1966. (* !(!*LINK PRIN!2 EXPR !1!) *)
  1967. PAS129;
  1968. (* !(!*LOAD !1 !-!2!) *)
  1969. load(1,2);
  1970. (* !(!*LINK WRS EXPR !1!) *)
  1971. XWRS;
  1972. (* !(!*LINK READ EXPR !0!) *)
  1973. XREAD;
  1974. (* !(!*STORE !1 !0!) *)
  1975. store10;
  1976. (* !(!*LOAD !2 !(QUOTE QUIT!)!) *)
  1977. mkident(180,2);
  1978. (* !(!*LINK EQCAR EXPR !2!) *)
  1979. PAS240;
  1980. (* !(!*JUMPNIL G!0!2!9!9!) *)
  1981. IF R[1] = nilref THEN GOTO 103;
  1982. (* !(!*LOAD !1 !(QUOTE T!)!) *)
  1983. R[1] := trueref;
  1984. (* !(!*JUMP G!0!3!0!5!) *)
  1985. GOTO 104;
  1986. (* !(!*LBL G!0!2!9!9!) *)
  1987. 103:
  1988. (* !(!*LOAD !1 !0!) *)
  1989. load10;
  1990. (* !(!*LINK EOFP EXPR !1!) *)
  1991. PAS132;
  1992. (* !(!*LBL G!0!3!0!5!) *)
  1993. 104:
  1994. (* !(!*STORE !1 !-!1!) *)
  1995. store(1,1);
  1996. (* !(!*LOAD !1 !-!1!) *)
  1997. load(1,1);
  1998. (* !(!*JUMPT G!0!2!9!5!) *)
  1999. IF R[1] <> nilref THEN GOTO 102;
  2000. (* !(!*LOAD !1 !0!) *)
  2001. load10;
  2002. (* !(!*LINK CATCH EXPR !1!) *)
  2003. XCATCH;
  2004. (* !(!*LINK PRIN!2T EXPR !1!) *)
  2005. PAS272;
  2006. (* !(!*JUMP G!0!2!9!5!) *)
  2007. GOTO 102;
  2008. (* !(!*LBL G!0!2!9!4!) *)
  2009. 105:
  2010. (* !(!*LOAD !3 !(QUOTE LOOP!)!) *)
  2011. mkident(181,3);
  2012. (* !(!*LOAD !2 !(QUOTE TOP!)!) *)
  2013. mkident(182,2);
  2014. (* !(!*LOAD !1 !(QUOTE EXITING!)!) *)
  2015. mkident(183,1);
  2016. (* !(!*LINK LIST!3 EXPR !3!) *)
  2017. PAS29;
  2018. (* !(!*LINK PRIN!2T EXPR !1!) *)
  2019. PAS272;
  2020. (* !(!*LOAD !1 !(QUOTE NIL!)!) *)
  2021. R[1] := nilref;
  2022. (* !(!*DEALLOC !3!) *)
  2023. dealloc3;
  2024. (* !(!*EXIT!) *)
  2025. end;