Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / mimc / notana.mima
1
2 <PACKAGE "NOTANA">
3
4 <ENTRY NOT-ANA TYPE?-ANA ==?-ANA VALID-TYPE?-ANA TYPE-C-ANA =?-ANA S=?-ANA STRCOMP-ANA SUBSTRUC-ANA ATOM-PART-ANA OFFSET-PART-ANA PUT-GET-DECL-ANA>
5
6 <USE "SYMANA" "CHKDCL" "COMPDEC" "CARANA" "ADVMESS" "NPRINT">
7
8 "       This module contains analysis and generation functions for
9 NOT, TYPE? and ==?.  See SYMANA for more details about ANALYSIS and
10 CODGEN for more detali abour code generation.
11 "
12
13 "Analyze NOT usage make sure arg can be FALSE."
14
15 #WORD *21516404076*
16 <GFCN \1aNOT-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
17                     <TEMP TEMP11 TEMP14 STR8 SUNT9:LIST TEM6>
18                     <INTGO>
19                     <GEN-LVAL 'PRED = TEMP11>
20                     <NTHUV NOD4 2 = TEMP14>
21                     <EQUAL? TEMP11 TEMP14 - TAG10>
22                     <DEAD TEMP11 TEMP14>
23                     <SET TEMP11 'T (TYPE ATOM)>
24                     <JUMP + TAG15>
25 TAG10
26                     <SET TEMP11 %<> (TYPE FALSE)>
27 TAG15
28                     <GEN-LVAL 'TRUTH = STR8>
29                     <GEN-LVAL 'UNTRUTH = SUNT9>
30                     <GETS 'BIND = TEMP14 (TYPE LBIND)>
31                     <VEQUAL? TEMP11 0 + BOOL23>
32                     <SET TEMP11 NOD4>
33 BOOL23
34                     <BBIND 'PRED 'ANY 'FIX TEMP11>
35                     <DEAD TEMP11>
36                     <BBIND 'TRUTH 'LIST 'FIX ()>
37                     <BBIND 'UNTRUTH 'LIST 'FIX ()>
38                     <FRAME '\1aSEGFLUSH>
39                     <PUSH NOD4>
40                     <DEAD NOD4>
41                     <PUSH RTYP5>
42                     <DEAD RTYP5>
43                     <CALL '\1aSEGFLUSH 2 = TEM6>
44                     <TYPE? TEM6 <TYPE-CODE FALSE> + PHRASE29>
45                     <SET TEMP11 %<> (TYPE FALSE)>
46                     <JUMP + PHRASE31>
47 PHRASE29
48                     <FRAME '\1aARGCHK>
49                     <NTHUV NOD4 5 = TEMP11 (TYPE LIST)>
50                     <LENL TEMP11 = STACK (TYPE FIX)>
51                     <PUSH 1>
52                     <PUSH 'NOT>
53                     <PUSH NOD4>
54                     <CALL '\1aARGCHK 4>
55                     <FRAME '\1aANA>
56                     <NTHUV NOD4 5 = TEMP11 (TYPE LIST)>
57                     <NTHL TEMP11 1 = STACK (TYPE NODE)>
58                     <PUSH 'ANY>
59                     <CALL '\1aANA 2 = TEM6>
60                     <PUTUV NOD4 1 20 (TYPE FIX)>
61                     <FRAME '\1aISTYPE?>
62                     <PUSH TEM6>
63                     <CALL '\1aISTYPE? 1 = TEMP11>
64                     <VEQUAL? TEMP11 'FALSE - PHRASE35>
65                     <FRAME '\1aTYPE-OK?>
66                     <PUSH 'BOOL-TRUE>
67                     <PUSH RTYP5>
68                     <CALL '\1aTYPE-OK? 2 = TEM6>
69                     <JUMP + PHRASE41>
70 PHRASE35
71                     <FRAME '\1aTYPE-OK?>
72                     <PUSH TEM6>
73                     <PUSH 'FALSE>
74                     <CALL '\1aTYPE-OK? 2 = TEMP11>
75                     <TYPE? TEMP11 <TYPE-CODE FALSE> + PHRASE38>
76                     <FRAME '\1aTYPE-OK?>
77                     <PUSH 'BOOLEAN>
78                     <PUSH RTYP5>
79                     <CALL '\1aTYPE-OK? 2 = TEM6>
80                     <JUMP + PHRASE41>
81 PHRASE38
82                     <FRAME '\1aTYPE-OK?>
83                     <PUSH 'BOOL-FALSE>
84                     <PUSH RTYP5>
85                     <CALL '\1aTYPE-OK? 2 = TEM6>
86 PHRASE41
87                     <NTHR 'UNTRUTH 2 = TEMP11 (RECORD-TYPE ATOM) (TYPE LBIND)>
88                     <NTHR TEMP11 1 = STR8 (RECORD-TYPE LBIND)>
89                     <NTHR 'TRUTH 2 = TEMP11 (RECORD-TYPE ATOM) (TYPE LBIND)>
90                     <NTHR TEMP11 1 = SUNT9 (RECORD-TYPE LBIND)>
91 PHRASE31
92                     <UNBIND TEMP14>
93                     <DEAD TEMP14>
94                     <ADJ -27>
95                     <VEQUAL? TEMP11 0 + PHRASE48>
96                     <DEAD TEMP11>
97                     <SET TEMP11 0 (TYPE FIX)>
98                     <SET TEMP14 STR8>
99                     <DEAD STR8>
100                     <LOOP (TEMP14 VALUE) (TEMP11 VALUE)>
101 TAG50
102                     <INTGO>
103                     <EMPL? TEMP14 + TAG49>
104                     <NTHL TEMP14 1 = STACK>
105                     <RESTL TEMP14 1 = TEMP14 (TYPE LIST)>
106                     <ADD TEMP11 1 = TEMP11 (TYPE FIX)>
107                     <JUMP + TAG50>
108 TAG49
109                     <GEN-LVAL 'TRUTH = TEMP14>
110                     <TYPE TEMP14 = STR8>
111                     <AND STR8 7 = STR8>
112                     <VEQUAL? STR8 1 + TAG55>
113                     <DEAD STR8>
114                     <LOOP (TEMP14 TYPE VALUE LENGTH) (TEMP11 VALUE)>
115 TAG61
116                     <INTGO>
117                     <EMPTY? TEMP14 + TAG60>
118                     <NTH1 TEMP14 = STACK>
119                     <REST1 TEMP14 = TEMP14>
120                     <ADD TEMP11 1 = TEMP11 (TYPE FIX)>
121                     <JUMP + TAG61>
122 TAG60
123                     <LIST TEMP11 = TEMP14 (TYPE LIST)>
124                     <DEAD TEMP11>
125                     <JUMP + TAG57>
126 TAG55
127                     <LOOP>
128 TAG58
129                     <VEQUAL? TEMP11 0 + TAG57>
130                     <POP = STR8>
131                     <CONS STR8 TEMP14 = TEMP14 (TYPE LIST)>
132                     <DEAD STR8>
133                     <SUB TEMP11 1 = TEMP11 (TYPE FIX)>
134                     <JUMP + TAG58>
135 TAG57
136                     <GEN-SET 'TRUTH TEMP14>
137                     <DEAD TEMP14>
138                     <SET TEMP14 0 (TYPE FIX)>
139                     <SET STR8 SUNT9>
140                     <DEAD SUNT9>
141                     <LOOP (STR8 VALUE) (TEMP14 VALUE)>
142 TAG66
143                     <INTGO>
144                     <EMPL? STR8 + TAG64>
145                     <NTHL STR8 1 = STACK>
146                     <RESTL STR8 1 = STR8 (TYPE LIST)>
147                     <ADD TEMP14 1 = TEMP14 (TYPE FIX)>
148                     <JUMP + TAG66>
149 TAG64
150                     <GEN-LVAL 'UNTRUTH = STR8>
151                     <TYPE STR8 = TEMP11>
152                     <AND TEMP11 7 = TEMP11>
153                     <VEQUAL? TEMP11 1 + TAG71>
154                     <DEAD TEMP11>
155                     <LOOP (STR8 TYPE VALUE LENGTH) (TEMP14 VALUE)>
156 TAG77
157                     <INTGO>
158                     <EMPTY? STR8 + TAG76>
159                     <NTH1 STR8 = STACK>
160                     <REST1 STR8 = STR8>
161                     <ADD TEMP14 1 = TEMP14 (TYPE FIX)>
162                     <JUMP + TAG77>
163 TAG76
164                     <LIST TEMP14 = STR8 (TYPE LIST)>
165                     <DEAD TEMP14>
166                     <JUMP + TAG73>
167 TAG71
168                     <LOOP>
169 TAG74
170                     <VEQUAL? TEMP14 0 + TAG73>
171                     <POP = TEMP11>
172                     <CONS TEMP11 STR8 = STR8 (TYPE LIST)>
173                     <DEAD TEMP11>
174                     <SUB TEMP14 1 = TEMP14 (TYPE FIX)>
175                     <JUMP + TAG74>
176 TAG73
177                     <GEN-SET 'UNTRUTH STR8>
178                     <DEAD STR8>
179 PHRASE48
180                     <RETURN TEM6>
181                     <DEAD TEM6>
182                     <END \1aNOT-ANA>
183 "       Analyze N==? and ==? usage.  Complain if types differ such that
184  the args  can never be ==?."
185
186 #WORD *1401527076*
187 <GFCN \1a==?-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
188                     <TEMP K6:LIST TEMP3:LBIND TEMP16 TEMP19 KT9:LIST>
189                     <INTGO>
190                     <NTHUV NOD4 5 = K6 (TYPE LIST)>
191                     <GETS 'BIND = TEMP3 (TYPE LBIND)>
192                     <GEN-LVAL 'PRED = TEMP16>
193                     <NTHUV NOD4 2 = TEMP19>
194                     <EQUAL? TEMP16 TEMP19 + TAG15>
195                     <DEAD TEMP16 TEMP19>
196                     <SET TEMP16 %<> (TYPE FALSE)>
197                     <JUMP + BOOL13>
198 TAG15
199                     <SET TEMP16 NOD4>
200 BOOL13
201                     <BBIND 'WHON 'NODE 'FIX TEMP16>
202                     <DEAD TEMP16>
203                     <BBIND 'WHO 'LIST 'FIX ()>
204                     <BBIND 'GLN 'NODE 'FIX NOD4>
205                     <BBIND 'GLE 'LIST 'FIX ()>
206                     <FRAME '\1aSEGFLUSH>
207                     <PUSH NOD4>
208                     <PUSH RTYP5>
209                     <CALL '\1aSEGFLUSH 2 = TEMP16>
210                     <TYPE? TEMP16 <TYPE-CODE FALSE> - PHRASE53>
211                     <EMPL? K6 + PHRASE24>
212                     <RESTL K6 1 = TEMP19 (TYPE LIST)>
213                     <EMPL? TEMP19 - PHRASE24>
214                     <DEAD TEMP19>
215                     <NTHUV NOD4 5 = TEMP19 (TYPE LIST)>
216                     <NTHL TEMP19 1 = TEMP16 (TYPE NODE)>
217                     <DEAD TEMP19>
218                     <NTHUV TEMP16 1 = TEMP19 (TYPE FIX)>
219                     <VEQUAL? TEMP19 6 - PHRASE24 (TYPE FIX)>
220                     <DEAD TEMP19>
221                     <NTHUV TEMP16 4 = TEMP19>
222                     <EQUAL? TEMP19 'LENGTH - PHRASE24>
223                     <DEAD TEMP19>
224                     <NTHUV TEMP16 5 = KT9 (TYPE LIST)>
225                     <DEAD TEMP16>
226                     <EMPL? KT9 + PHRASE24>
227                     <RESTL KT9 1 = TEMP19 (TYPE LIST)>
228                     <EMPL? TEMP19 + PHRASE24>
229                     <RESTL TEMP19 1 = TEMP19 (TYPE LIST)>
230                     <EMPL? TEMP19 - PHRASE24>
231                     <DEAD TEMP19>
232                     <FRAME '\1aCOMPILE-WARNING>
233                     <PUSH "Attempting to repair probable erroneous code:
234 ">
235                     <PUSH NOD4>
236                     <PUSH "
237 replaced by">
238                     <CALL '\1aCOMPILE-WARNING 3>
239                     <RESTL KT9 1 = TEMP16 (TYPE LIST)>
240                     <PUTREST K6 TEMP16>
241                     <DEAD TEMP16>
242                     <PUTREST KT9 ()>
243                     <NTHL KT9 1 = TEMP16 (TYPE NODE)>
244                     <DEAD KT9>
245                     <PUTUV TEMP16 2 NOD4>
246                     <DEAD TEMP16>
247                     <FRAME '\1aNODE-COMPLAIN>
248                     <PUSH NOD4>
249                     <CALL '\1aNODE-COMPLAIN 1>
250                     <FRAME '\1aCRLF>
251                     <GEN-LVAL 'OUTCHAN = STACK>
252                     <CALL '\1aCRLF 1>
253 PHRASE24
254                     <FRAME '\1aARGCHK>
255                     <PUSH 2>
256                     <LENL K6 = STACK (TYPE FIX)>
257                     <PUSH '==?>
258                     <PUSH NOD4>
259                     <CALL '\1aARGCHK 4>
260                     <FRAME '\1aANA>
261                     <NTHL K6 1 = STACK (TYPE NODE)>
262                     <PUSH 'ANY>
263                     <CALL '\1aANA 2>
264                     <FRAME '\1aANA>
265                     <RESTL K6 1 = TEMP16 (TYPE LIST)>
266                     <NTHL TEMP16 1 = STACK (TYPE NODE)>
267                     <DEAD TEMP16>
268                     <PUSH 'ANY>
269                     <CALL '\1aANA 2>
270                     <NTHL K6 1 = TEMP16 (TYPE NODE)>
271                     <NTHUV TEMP16 1 = TEMP16 (TYPE FIX)>
272                     <VEQUAL? TEMP16 2 - PHRASE38 (TYPE FIX)>
273                     <DEAD TEMP16>
274                     <RESTL K6 1 = TEMP16 (TYPE LIST)>
275                     <NTHL TEMP16 1 = TEMP16 (TYPE NODE)>
276                     <NTHUV TEMP16 1 = TEMP16 (TYPE FIX)>
277                     <VEQUAL? TEMP16 2 - PHRASE38 (TYPE FIX)>
278                     <DEAD TEMP16>
279                     <NTHUV NOD4 4 = TEMP16>
280                     <EQUAL? TEMP16 '==? - PHRASE41>
281                     <DEAD TEMP16>
282                     <NTHL K6 1 = TEMP16 (TYPE NODE)>
283                     <NTHUV TEMP16 4 = TEMP16>
284                     <RESTL K6 1 = TEMP19 (TYPE LIST)>
285                     <DEAD K6>
286                     <NTHL TEMP19 1 = TEMP19 (TYPE NODE)>
287                     <NTHUV TEMP19 4 = TEMP19>
288                     <EQUAL? TEMP16 TEMP19 - TAG42>
289                     <DEAD TEMP16 TEMP19>
290                     <SET TEMP19 'T (TYPE ATOM)>
291                     <JUMP + TAG44>
292 TAG42
293                     <SET TEMP19 %<> (TYPE FALSE)>
294 TAG44
295                     <PUTUV NOD4 4 TEMP19>
296                     <DEAD TEMP19>
297                     <JUMP + PHRASE45>
298 PHRASE41
299                     <NTHL K6 1 = TEMP19 (TYPE NODE)>
300                     <NTHUV TEMP19 4 = TEMP19>
301                     <RESTL K6 1 = TEMP16 (TYPE LIST)>
302                     <DEAD K6>
303                     <NTHL TEMP16 1 = TEMP16 (TYPE NODE)>
304                     <NTHUV TEMP16 4 = TEMP16>
305                     <EQUAL? TEMP19 TEMP16 + TAG46>
306                     <DEAD TEMP19 TEMP16>
307                     <SET TEMP16 'T (TYPE ATOM)>
308                     <JUMP + TAG47>
309 TAG46
310                     <SET TEMP16 %<> (TYPE FALSE)>
311 TAG47
312                     <PUTUV NOD4 4 TEMP16>
313                     <DEAD TEMP16>
314 PHRASE45
315                     <PUTUV NOD4 5 () (TYPE LIST)>
316                     <PUTUV NOD4 1 2 (TYPE FIX)>
317                     <NTHUV NOD4 4 = TEMP16>
318                     <DEAD NOD4>
319                     <VEQUAL? TEMP16 0 + PHRASE49>
320                     <DEAD TEMP16>
321                     <FRAME '\1aTYPE-OK?>
322                     <PUSH 'ATOM>
323                     <PUSH RTYP5>
324                     <DEAD RTYP5>
325                     <CALL '\1aTYPE-OK? 2 = TEMP16>
326                     <JUMP + PHRASE53>
327 PHRASE49
328                     <FRAME '\1aTYPE-OK?>
329                     <PUSH 'FALSE>
330                     <PUSH RTYP5>
331                     <DEAD RTYP5>
332                     <CALL '\1aTYPE-OK? 2 = TEMP16>
333                     <JUMP + PHRASE53>
334 PHRASE38
335                     <PUTUV NOD4 1 23 (TYPE FIX)>
336                     <FRAME '\1aISTYPE?>
337                     <NTHL K6 1 = TEMP16 (TYPE NODE)>
338                     <NTHUV TEMP16 3 = STACK>
339                     <DEAD TEMP16>
340                     <CALL '\1aISTYPE? 1 = TEMP16>
341                     <VEQUAL? TEMP16 'FIX - PHRASE55>
342                     <DEAD TEMP16>
343                     <FRAME '\1aISTYPE?>
344                     <RESTL K6 1 = TEMP16 (TYPE LIST)>
345                     <NTHL TEMP16 1 = TEMP16 (TYPE NODE)>
346                     <NTHUV TEMP16 3 = STACK>
347                     <DEAD TEMP16>
348                     <CALL '\1aISTYPE? 1 = TEMP16>
349                     <VEQUAL? TEMP16 'FIX - PHRASE55>
350                     <DEAD TEMP16>
351                     <PUTUV NOD4 1 22 (TYPE FIX)>
352                     <FRAME '\1aHACK-BOUNDS>
353                     <NTHR 'WHO 2 = TEMP16 (RECORD-TYPE ATOM) (TYPE LBIND)>
354                     <NTHR TEMP16 1 = STACK (RECORD-TYPE LBIND)>
355                     <DEAD TEMP16>
356                     <NTHR 'GLE 2 = TEMP16 (RECORD-TYPE ATOM) (TYPE LBIND)>
357                     <NTHR TEMP16 1 = STACK (RECORD-TYPE LBIND)>
358                     <DEAD TEMP16>
359                     <PUSH NOD4>
360                     <DEAD NOD4>
361                     <PUSH K6>
362                     <DEAD K6>
363                     <CALL '\1aHACK-BOUNDS 4>
364 PHRASE55
365                     <FRAME '\1aTYPE-OK?>
366                     <PUSH 'BOOLEAN>
367                     <PUSH RTYP5>
368                     <DEAD RTYP5>
369                     <CALL '\1aTYPE-OK? 2 = TEMP16>
370 PHRASE53
371                     <UNBIND TEMP3>
372                     <DEAD TEMP3>
373                     <ADJ -36>
374                     <RETURN TEMP16>
375                     <DEAD TEMP16>
376                     <END \1a==?-ANA>
377 "       Ananlyze TYPE? usage warn about any potential losers by using
378 TYPE-OK?. "
379
380 #WORD *23674654532*
381 <GFCN \1aTYPE?-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
382                     <TEMP K6 LN7 (ALLGOOD9 'T) TEMP3:LBIND (FTYP11:LIST ()) (FNOK12 %<>) TEMP18 TEMP21 FLG78 TEMP83>
383                     <INTGO>
384                     <NTHUV NOD4 5 = K6 (TYPE LIST)>
385                     <LENL K6 = LN7 (TYPE FIX)>
386                     <GETS 'BIND = TEMP3 (TYPE LBIND)>
387                     <BBIND 'WHO 'LIST 'FIX ()>
388                     <GEN-LVAL 'PRED = TEMP18>
389                     <NTHUV NOD4 2 = TEMP21>
390                     <EQUAL? TEMP18 TEMP21 + TAG17>
391                     <DEAD TEMP18 TEMP21>
392                     <SET TEMP18 %<> (TYPE FALSE)>
393                     <JUMP + BOOL15>
394 TAG17
395                     <SET TEMP18 NOD4>
396 BOOL15
397                     <BBIND 'WHON <OR NODE FALSE> 'FIX TEMP18>
398                     <DEAD TEMP18>
399                     <FRAME '\1aSEGFLUSH>
400                     <PUSH NOD4>
401                     <PUSH RTYP5>
402                     <CALL '\1aSEGFLUSH 2 = TEMP18>
403                     <TYPE? TEMP18 <TYPE-CODE FALSE> + PHRASE23>
404                     <DEAD TEMP18>
405                     <FRAME '\1aTYPE-OK?>
406                     <PUSH RTYP5>
407                     <DEAD RTYP5>
408                     <PUSH <OR ATOM FALSE>>
409                     <CALL '\1aTYPE-OK? 2 = TEMP18>
410                     <JUMP + PHRASE26>
411 PHRASE23
412                     <LESS? LN7 2 - PHRASE28 (TYPE FIX)>
413                     <DEAD LN7>
414                     <FRAME '\1aCOMPILE-ERROR>
415                     <PUSH "Too few arguments to TYPE? ">
416                     <PUSH NOD4>
417                     <CALL '\1aCOMPILE-ERROR 2>
418 PHRASE28
419                     <FRAME '\1aEANA>
420                     <NTHL K6 1 = STACK (TYPE NODE)>
421                     <PUSH 'ANY>
422                     <PUSH 'TYPE?>
423                     <CALL '\1aEANA 3 = TEMP18>
424                     <RESTL K6 1 = TEMP21 (TYPE LIST)>
425                     <DEAD K6>
426                     <LOOP>
427 MAP32
428                     <INTGO>
429                     <EMPL? TEMP21 + MAPAP35>
430                     <NTHL TEMP21 1 = K6>
431                     <FRAME '\1aEANA>
432                     <PUSH K6>
433                     <PUSH 'ATOM>
434                     <PUSH 'TYPE?>
435                     <CALL '\1aEANA 3>
436                     <NTHUV K6 1 = LN7 (TYPE FIX)>
437                     <VEQUAL? LN7 2 + PHRASE48 (TYPE FIX)>
438                     <DEAD LN7>
439                     <SET ALLGOOD9 %<> (TYPE FALSE)>
440                     <JUMP + BOOL54>
441 PHRASE48
442                     <FRAME '\1aISTYPE?>
443                     <NTHUV K6 4 = STACK>
444                     <CALL '\1aISTYPE? 1 = LN7>
445                     <TYPE? LN7 <TYPE-CODE FALSE> - PHRASE51>
446                     <DEAD LN7>
447                     <FRAME '\1aCOMPILE-ERROR>
448                     <PUSH "Argument to TYPE? not a type ">
449                     <PUSH NOD4>
450                     <CALL '\1aCOMPILE-ERROR 2>
451 PHRASE51
452                     <FRAME '\1aTYPE-OK?>
453                     <NTHUV K6 4 = STACK>
454                     <PUSH TEMP18>
455                     <CALL '\1aTYPE-OK? 2 = LN7>
456                     <TYPE? LN7 <TYPE-CODE FALSE> + BOOL54>
457                     <DEAD LN7>
458                     <NTHUV K6 4 = LN7>
459                     <DEAD K6>
460                     <CONS LN7 FTYP11 = FTYP11>
461                     <DEAD LN7>
462 BOOL54
463                     <RESTL TEMP21 1 = TEMP21 (TYPE LIST)>
464                     <JUMP + MAP32>
465 MAPAP35
466                     <VEQUAL? ALLGOOD9 0 + PHRASE57>
467                     <EMPL? FTYP11 + PHRASE57 (TYPE LIST)>
468                     <RESTL FTYP11 1 = TEMP21 (TYPE LIST)>
469                     <EMPL? TEMP21 - PHRASE60 (TYPE LIST)>
470                     <DEAD TEMP21>
471                     <NTHL FTYP11 1 = LN7>
472                     <JUMP + PHRASE61>
473 PHRASE60
474                     <CONS 'OR FTYP11 = TEMP21>
475                     <CHTYPE TEMP21 <TYPE-CODE FORM> = LN7>
476                     <DEAD TEMP21>
477 PHRASE61
478                     <PUTUV NOD4 1 24 (TYPE FIX)>
479                     <DEAD NOD4>
480                     <FRAME '\1aTYPE-OK?>
481                     <FRAME '\1aFORM>
482                     <PUSH 'NOT>
483                     <PUSH LN7>
484                     <CALL '\1aFORM 2 = STACK>
485                     <PUSH TEMP18>
486                     <DEAD TEMP18>
487                     <CALL '\1aTYPE-OK? 2 = TEMP21>
488                     <TYPE? TEMP21 <TYPE-CODE FALSE> - TAG62>
489                     <DEAD TEMP21>
490                     <SET FNOK12 'T (TYPE ATOM)>
491                     <JUMP + TAG63>
492 TAG62
493                     <SET FNOK12 %<> (TYPE FALSE)>
494 TAG63
495                     <NTHR 'WHO 2 = TEMP21 (RECORD-TYPE ATOM) (TYPE LBIND)>
496                     <NTHR TEMP21 1 = TEMP18 (RECORD-TYPE LBIND)>
497                     <DEAD TEMP21>
498                     <LOOP>
499 MAP67
500                     <INTGO>
501                     <EMPL? TEMP18 + PHRASE95>
502                     <NTHL TEMP18 1 = K6>
503                     <NTHL K6 1 = FLG78>
504                     <RESTL K6 1 = TEMP21 (TYPE LIST)>
505                     <NTHL TEMP21 1 = TEMP21 (TYPE SYMTAB)>
506                     <FRAME '\1aADD-TYPE-LIST>
507                     <PUSH TEMP21>
508                     <PUSH LN7>
509                     <GEN-LVAL 'TRUTH = STACK>
510                     <PUSH FLG78>
511                     <RESTL K6 1 = TEMP83 (TYPE LIST)>
512                     <RESTL TEMP83 1 = STACK (TYPE LIST)>
513                     <DEAD TEMP83>
514                     <CALL '\1aADD-TYPE-LIST 5 = TEMP83>
515                     <GEN-SET 'TRUTH TEMP83>
516                     <DEAD TEMP83>
517                     <VEQUAL? FNOK12 0 - BOOL86>
518                     <FRAME '\1aADD-TYPE-LIST>
519                     <PUSH TEMP21>
520                     <DEAD TEMP21>
521                     <FRAME '\1aFORM>
522                     <PUSH 'NOT>
523                     <PUSH LN7>
524                     <CALL '\1aFORM 2 = STACK>
525                     <GEN-LVAL 'UNTRUTH = STACK>
526                     <PUSH FLG78>
527                     <DEAD FLG78>
528                     <RESTL K6 1 = K6 (TYPE LIST)>
529                     <RESTL K6 1 = STACK (TYPE LIST)>
530                     <DEAD K6>
531                     <CALL '\1aADD-TYPE-LIST 5 = K6>
532                     <GEN-SET 'UNTRUTH K6>
533                     <DEAD K6>
534 BOOL86
535                     <RESTL TEMP18 1 = TEMP18 (TYPE LIST)>
536                     <JUMP + MAP67>
537 PHRASE57
538                     <VEQUAL? ALLGOOD9 0 + PHRASE94>
539                     <PUTUV NOD4 1 24 (TYPE FIX)>
540                     <DEAD NOD4>
541                     <JUMP + PHRASE95>
542 PHRASE94
543                     <GEN-LVAL 'VERBOSE = TEMP18>
544                     <TYPE? TEMP18 <TYPE-CODE FALSE> + BOOL96>
545                     <DEAD TEMP18>
546                     <FRAME '\1aADDVMESS>
547                     <PUSH NOD4>
548                     <CONS "Not open compiled." () = STACK>
549                     <CALL '\1aADDVMESS 2>
550 BOOL96
551                     <PUTUV NOD4 1 52 (TYPE FIX)>
552                     <DEAD NOD4>
553 PHRASE95
554                     <FRAME '\1aTYPE-OK?>
555                     <VEQUAL? ALLGOOD9 0 - PHRASE102>
556                     <DEAD ALLGOOD9>
557                     <SET TEMP18 <OR FALSE ATOM> (TYPE FORM)>
558                     <JUMP + PHRASE105>
559 PHRASE102
560                     <EMPL? FTYP11 - PHRASE103 (TYPE LIST)>
561                     <DEAD FTYP11>
562                     <SET TEMP18 'FALSE (TYPE ATOM)>
563                     <JUMP + PHRASE105>
564 PHRASE103
565                     <VEQUAL? FNOK12 0 + PHRASE104>
566                     <DEAD FNOK12>
567                     <SET TEMP18 'ATOM (TYPE ATOM)>
568                     <JUMP + PHRASE105>
569 PHRASE104
570                     <SET TEMP18 <OR FALSE ATOM> (TYPE FORM)>
571 PHRASE105
572                     <PUSH TEMP18>
573                     <DEAD TEMP18>
574                     <PUSH RTYP5>
575                     <DEAD RTYP5>
576                     <CALL '\1aTYPE-OK? 2 = TEMP18>
577 PHRASE26
578                     <UNBIND TEMP3>
579                     <DEAD TEMP3>
580                     <ADJ -18>
581                     <RETURN TEMP18>
582                     <DEAD TEMP18>
583                     <END \1aTYPE?-ANA>
584 #WORD *14540564730*
585 <GFCN \1aVALID-TYPE?-ANA ("VALUE" ANY NODE ANY) N4 R5>
586                     <TEMP K6:LIST LN7:FIX TEMP9>
587                     <INTGO>
588                     <NTHUV N4 5 = K6 (TYPE LIST)>
589                     <LENL K6 = LN7 (TYPE FIX)>
590                     <FRAME '\1aSEGFLUSH>
591                     <PUSH N4>
592                     <PUSH R5>
593                     <CALL '\1aSEGFLUSH 2 = TEMP9>
594                     <TYPE? TEMP9 <TYPE-CODE FALSE> - PHRASE11>
595                     <FRAME '\1aARGCHK>
596                     <PUSH 1>
597                     <PUSH LN7>
598                     <DEAD LN7>
599                     <PUSH 'VALID-TYPE?>
600                     <PUSH N4>
601                     <CALL '\1aARGCHK 4>
602                     <FRAME '\1aEANA>
603                     <NTHL K6 1 = STACK (TYPE NODE)>
604                     <DEAD K6>
605                     <PUSH 'ATOM>
606                     <PUSH 'VALID-TYPE?>
607                     <CALL '\1aEANA 3>
608                     <PUTUV N4 1 97 (TYPE FIX)>
609                     <DEAD N4>
610                     <FRAME '\1aTYPE-OK?>
611                     <PUSH R5>
612                     <DEAD R5>
613                     <PUSH <OR FALSE TYPE-C>>
614                     <CALL '\1aTYPE-OK? 2 = TEMP9>
615 PHRASE11
616                     <RETURN TEMP9>
617                     <DEAD TEMP9>
618                     <END \1aVALID-TYPE?-ANA>
619 #WORD *7400517472*
620 <GFCN \1aTYPE-C-ANA ("VALUE" ANY NODE ANY) N4 R5>
621                     <TEMP K6:LIST LN7:FIX TEMP9>
622                     <INTGO>
623                     <NTHUV N4 5 = K6 (TYPE LIST)>
624                     <LENL K6 = LN7 (TYPE FIX)>
625                     <FRAME '\1aSEGFLUSH>
626                     <PUSH N4>
627                     <PUSH R5>
628                     <CALL '\1aSEGFLUSH 2 = TEMP9>
629                     <TYPE? TEMP9 <TYPE-CODE FALSE> - PHRASE11>
630                     <FRAME '\1aARGCHK>
631                     <PUSH LN7>
632                     <PUSH (1 2)>
633                     <PUSH 'VALID-TYPE?>
634                     <PUSH N4>
635                     <CALL '\1aARGCHK 4>
636                     <FRAME '\1aEANA>
637                     <NTHL K6 1 = STACK (TYPE NODE)>
638                     <PUSH 'ATOM>
639                     <PUSH 'TYPE-C>
640                     <CALL '\1aEANA 3>
641                     <VEQUAL? LN7 2 - PHRASE15 (TYPE FIX)>
642                     <DEAD LN7>
643                     <FRAME '\1aEANA>
644                     <RESTL K6 1 = K6 (TYPE LIST)>
645                     <NTHL K6 1 = STACK (TYPE NODE)>
646                     <DEAD K6>
647                     <PUSH 'ATOM>
648                     <PUSH 'TYPE-C>
649                     <CALL '\1aEANA 3>
650 PHRASE15
651                     <PUTUV N4 1 96 (TYPE FIX)>
652                     <DEAD N4>
653                     <FRAME '\1aTYPE-OK?>
654                     <PUSH R5>
655                     <DEAD R5>
656                     <PUSH 'TYPE-C>
657                     <CALL '\1aTYPE-OK? 2 = TEMP9>
658 PHRASE11
659                     <RETURN TEMP9>
660                     <DEAD TEMP9>
661                     <END \1aTYPE-C-ANA>
662 #WORD *2555464510*
663 <GFCN \1a=?-ANA ("VALUE" ANY NODE ANY) N4 R5>
664                     <TEMP K6 LN7 TEMP13 N29:NODE>
665                     <INTGO>
666                     <NTHUV N4 5 = K6 (TYPE LIST)>
667                     <LENL K6 = LN7 (TYPE FIX)>
668                     <FRAME '\1aSEGFLUSH>
669                     <PUSH N4>
670                     <PUSH R5>
671                     <CALL '\1aSEGFLUSH 2 = TEMP13>
672                     <TYPE? TEMP13 <TYPE-CODE FALSE> - PHRASE31>
673                     <FRAME '\1aARGCHK>
674                     <PUSH LN7>
675                     <DEAD LN7>
676                     <PUSH 2>
677                     <NTHUV N4 4 = STACK>
678                     <PUSH N4>
679                     <CALL '\1aARGCHK 4>
680                     <FRAME '\1aEANA>
681                     <NTHL K6 1 = LN7 (TYPE NODE)>
682                     <PUSH LN7>
683                     <PUSH 'ANY>
684                     <NTHUV N4 4 = STACK>
685                     <CALL '\1aEANA 3>
686                     <FRAME '\1aEANA>
687                     <RESTL K6 1 = TEMP13 (TYPE LIST)>
688                     <NTHL TEMP13 1 = N29 (TYPE NODE)>
689                     <DEAD TEMP13>
690                     <PUSH N29>
691                     <PUSH 'ANY>
692                     <NTHUV N4 4 = STACK>
693                     <CALL '\1aEANA 3>
694                     <NTHUV LN7 1 = TEMP13 (TYPE FIX)>
695                     <VEQUAL? TEMP13 2 - PHRASE21 (TYPE FIX)>
696                     <DEAD TEMP13>
697                     <RESTL K6 1 = TEMP13 (TYPE LIST)>
698                     <NTHL TEMP13 1 = LN7 (TYPE NODE)>
699                     <DEAD TEMP13>
700                     <NTHL K6 1 = N29 (TYPE NODE)>
701                     <DEAD K6>
702 PHRASE21
703                     <FRAME '\1aISTYPE?>
704                     <NTHUV N29 3 = STACK>
705                     <DEAD N29>
706                     <CALL '\1aISTYPE? 1 = TEMP13>
707                     <FRAME '\1aISTYPE?>
708                     <NTHUV LN7 3 = STACK>
709                     <DEAD LN7>
710                     <CALL '\1aISTYPE? 1 = K6>
711                     <VEQUAL? K6 'STRING + BOOL25>
712                     <VEQUAL? TEMP13 'STRING - PHRASE24>
713 BOOL25
714                     <PUTUV N4 1 95 (TYPE FIX)>
715                     <DEAD N4>
716                     <FRAME '\1aTYPE-OK?>
717                     <PUSH 'BOOLEAN>
718                     <PUSH R5>
719                     <DEAD R5>
720                     <CALL '\1aTYPE-OK? 2 = TEMP13>
721                     <RETURN TEMP13>
722                     <DEAD TEMP13>
723 PHRASE24
724                     <TYPE? K6 <TYPE-CODE FALSE> + PHRASE28>
725                     <TYPE? TEMP13 <TYPE-CODE FALSE> + PHRASE28>
726                     <VEQUAL? K6 TEMP13 + PHRASE28>
727                     <DEAD K6 TEMP13>
728                     <FRAME '\1aTYPE-OK?>
729                     <PUSH 'BOOL-FALSE>
730                     <PUSH R5>
731                     <DEAD R5>
732                     <CALL '\1aTYPE-OK? 2 = TEMP13>
733                     <RETURN TEMP13>
734                     <DEAD TEMP13>
735 PHRASE28
736                     <FRAME '\1aTYPE-OK?>
737                     <PUSH 'BOOLEAN>
738                     <PUSH R5>
739                     <DEAD R5>
740                     <CALL '\1aTYPE-OK? 2 = TEMP13>
741 PHRASE31
742                     <RETURN TEMP13>
743                     <DEAD TEMP13>
744                     <END \1a=?-ANA>
745 #WORD *21161013720*
746 <GFCN \1aS=?-ANA ("VALUE" ANY NODE ANY) N4 R5>
747                     <TEMP K6:LIST TEMP8>
748                     <INTGO>
749                     <NTHUV N4 5 = K6 (TYPE LIST)>
750                     <FRAME '\1aSEGFLUSH>
751                     <PUSH N4>
752                     <PUSH R5>
753                     <CALL '\1aSEGFLUSH 2 = TEMP8>
754                     <TYPE? TEMP8 <TYPE-CODE FALSE> - PHRASE10>
755                     <FRAME '\1aARGCHK>
756                     <LENL K6 = STACK (TYPE FIX)>
757                     <PUSH 2>
758                     <NTHUV N4 4 = STACK>
759                     <PUSH N4>
760                     <CALL '\1aARGCHK 4>
761                     <FRAME '\1aEANA>
762                     <NTHL K6 1 = STACK (TYPE NODE)>
763                     <PUSH 'STRING>
764                     <PUSH 'S=?>
765                     <CALL '\1aEANA 3>
766                     <FRAME '\1aEANA>
767                     <RESTL K6 1 = K6 (TYPE LIST)>
768                     <NTHL K6 1 = STACK (TYPE NODE)>
769                     <DEAD K6>
770                     <PUSH 'STRING>
771                     <PUSH 'S=?>
772                     <CALL '\1aEANA 3>
773                     <PUTUV N4 1 95 (TYPE FIX)>
774                     <DEAD N4>
775                     <FRAME '\1aTYPE-OK?>
776                     <PUSH 'BOOLEAN>
777                     <PUSH R5>
778                     <DEAD R5>
779                     <CALL '\1aTYPE-OK? 2 = TEMP8>
780 PHRASE10
781                     <RETURN TEMP8>
782                     <DEAD TEMP8>
783                     <END \1aS=?-ANA>
784 #WORD *13713777251*
785 <GFCN \1aATOM-PART-ANA ("VALUE" ANY NODE ANY) N4 R5>
786                     <TEMP K6 NM7:ATOM TEMP10 NN8:NODE>
787                     <INTGO>
788                     <NTHUV N4 5 = K6 (TYPE LIST)>
789                     <NTHUV N4 4 = NM7 (TYPE ATOM)>
790                     <FRAME '\1aSEGFLUSH>
791                     <PUSH N4>
792                     <PUSH R5>
793                     <CALL '\1aSEGFLUSH 2 = TEMP10>
794                     <TYPE? TEMP10 <TYPE-CODE FALSE> - PHRASE30>
795                     <FRAME '\1aARGCHK>
796                     <LENL K6 = STACK (TYPE FIX)>
797                     <VEQUAL? NM7 'GBIND + BOOL16>
798                     <VEQUAL? NM7 'LBIND - PHRASE15>
799 BOOL16
800                     <SET TEMP10 (1 2) (TYPE LIST)>
801                     <JUMP + PHRASE18>
802 PHRASE15
803                     <SET TEMP10 1 (TYPE FIX)>
804 PHRASE18
805                     <PUSH TEMP10>
806                     <DEAD TEMP10>
807                     <PUSH NM7>
808                     <PUSH N4>
809                     <CALL '\1aARGCHK 4>
810                     <FRAME '\1aEANA>
811                     <NTHL K6 1 = STACK (TYPE NODE)>
812                     <PUSH 'ATOM>
813                     <PUSH NM7>
814                     <CALL '\1aEANA 3>
815                     <RESTL K6 1 = TEMP10 (TYPE LIST)>
816                     <EMPL? TEMP10 + PHRASE21 (TYPE LIST)>
817                     <DEAD TEMP10>
818                     <FRAME '\1aEANA>
819                     <RESTL K6 1 = TEMP10 (TYPE LIST)>
820                     <NTHL TEMP10 1 = NN8 (TYPE NODE)>
821                     <DEAD TEMP10>
822                     <PUSH NN8>
823                     <PUSH 'ANY>
824                     <PUSH NM7>
825                     <CALL '\1aEANA 3>
826 PHRASE21
827                     <NTHL K6 1 = TEMP10 (TYPE NODE)>
828                     <NTHUV TEMP10 1 = TEMP10 (TYPE FIX)>
829                     <VEQUAL? TEMP10 2 - PHRASE24 (TYPE FIX)>
830                     <DEAD TEMP10>
831                     <VEQUAL? NM7 'LBIND + PHRASE24>
832                     <VEQUAL? NM7 'GBIND + PHRASE24>
833                     <PUTUV N4 1 2 (TYPE FIX)>
834                     <PUTUV N4 5 () (TYPE LIST)>
835                     <FRAME>
836                     <GVAL NM7 = TEMP10>
837                     <DEAD NM7>
838                     <NTHL K6 1 = K6 (TYPE NODE)>
839                     <NTHUV K6 4 = STACK>
840                     <DEAD K6>
841                     <ACALL TEMP10 1 = K6>
842                     <DEAD TEMP10>
843                     <PUTUV N4 4 K6>
844                     <DEAD K6>
845                     <FRAME '\1aTYPE-OK?>
846                     <FRAME '\1aTYPE>
847                     <NTHUV N4 4 = STACK>
848                     <DEAD N4>
849                     <CALL '\1aTYPE 1 = STACK>
850                     <PUSH R5>
851                     <DEAD R5>
852                     <CALL '\1aTYPE-OK? 2 = TEMP10>
853                     <RETURN TEMP10>
854                     <DEAD TEMP10>
855 PHRASE24
856                     <VEQUAL? NM7 'GBIND + BOOL34>
857                     <VEQUAL? NM7 'LBIND - BOOL33>
858 BOOL34
859                     <RESTL K6 1 = K6 (TYPE LIST)>
860                     <EMPL? K6 + BOOL33 (TYPE LIST)>
861                     <DEAD K6>
862                     <NTHUV NN8 1 = K6 (TYPE FIX)>
863                     <VEQUAL? K6 2 - PHRASE32 (TYPE FIX)>
864                     <DEAD K6>
865                     <NTHUV NN8 4 = K6>
866                     <DEAD NN8>
867                     <TYPE? K6 <TYPE-CODE FALSE> - PHRASE32>
868                     <DEAD K6>
869 BOOL33
870                     <PUTUV N4 1 100 (TYPE FIX)>
871                     <DEAD N4>
872 PHRASE32
873                     <FRAME '\1aTYPE-OK?>
874                     <PUSH R5>
875                     <DEAD R5>
876                     <VEQUAL? NM7 'SPNAME - PHRASE38>
877                     <SET K6 'STRING (TYPE ATOM)>
878                     <JUMP + PHRASE40>
879 PHRASE38
880                     <VEQUAL? NM7 'OBLIST? - PHRASE39>
881                     <SET K6 <OR FALSE OBLIST> (TYPE FORM)>
882                     <JUMP + PHRASE40>
883 PHRASE39
884                     <SET K6 NM7>
885                     <DEAD NM7>
886 PHRASE40
887                     <PUSH K6>
888                     <DEAD K6>
889                     <CALL '\1aTYPE-OK? 2 = TEMP10>
890 PHRASE30
891                     <RETURN TEMP10>
892                     <DEAD TEMP10>
893                     <END \1aATOM-PART-ANA>
894 #WORD *15512442764*
895 <GFCN \1aPUT-GET-DECL-ANA ("VALUE" ANY NODE ANY) N4 R5>
896                     <TEMP K6 NM7:ATOM TEMP10 ST8 TEMP25:FIX TEMP31>
897                     <INTGO>
898                     <NTHUV N4 5 = K6 (TYPE LIST)>
899                     <NTHUV N4 4 = NM7 (TYPE ATOM)>
900                     <FRAME '\1aSEGFLUSH>
901                     <PUSH N4>
902                     <PUSH R5>
903                     <CALL '\1aSEGFLUSH 2 = TEMP10>
904                     <TYPE? TEMP10 <TYPE-CODE FALSE> - PHRASE40>
905                     <FRAME '\1aARGCHK>
906                     <LENL K6 = STACK (TYPE FIX)>
907                     <VEQUAL? NM7 'PUT-DECL - PHRASE15>
908                     <SET TEMP10 2 (TYPE FIX)>
909                     <JUMP + PHRASE17>
910 PHRASE15
911                     <SET TEMP10 1 (TYPE FIX)>
912 PHRASE17
913                     <PUSH TEMP10>
914                     <DEAD TEMP10>
915                     <PUSH NM7>
916                     <PUSH N4>
917                     <CALL '\1aARGCHK 4>
918                     <FRAME '\1aEANA>
919                     <NTHL K6 1 = STACK (TYPE NODE)>
920                     <PUSH <OR ATOM OFFSET GBIND LBIND>>
921                     <PUSH NM7>
922                     <CALL '\1aEANA 3 = ST8>
923                     <VEQUAL? NM7 'PUT-DECL - PHRASE20>
924                     <FRAME '\1aTYPE-AND>
925                     <PUSH ST8>
926                     <PUSH R5>
927                     <CALL '\1aTYPE-AND 2 = TEMP10>
928                     <TYPE? TEMP10 <TYPE-CODE FALSE> - BOOL21>
929                     <SET TEMP10 ST8>
930                     <DEAD ST8>
931 BOOL21
932                     <SET ST8 TEMP10>
933                     <DEAD TEMP10>
934                     <FRAME '\1aEANA>
935                     <RESTL K6 1 = TEMP10 (TYPE LIST)>
936                     <NTHL TEMP10 1 = STACK (TYPE NODE)>
937                     <DEAD TEMP10>
938                     <PUSH <OR ATOM FALSE FORM SEGMENT>>
939                     <PUSH NM7>
940                     <CALL '\1aEANA 3>
941                     <PUSH N4>
942                     <SET TEMP25 1 (TYPE FIX)>
943                     <NTHUV N4 8 = TEMP10>
944                     <TYPE TEMP10 = TEMP31>
945                     <AND TEMP31 7 = TEMP31>
946                     <VEQUAL? TEMP31 1 + TAG27>
947                     <DEAD TEMP31>
948                     <LOOP (TEMP10 TYPE VALUE LENGTH) (TEMP25 VALUE)>
949 TAG33
950                     <INTGO>
951                     <EMPTY? TEMP10 + TAG32>
952                     <NTH1 TEMP10 = STACK>
953                     <REST1 TEMP10 = TEMP10>
954                     <ADD TEMP25 1 = TEMP25 (TYPE FIX)>
955                     <JUMP + TAG33>
956 TAG32
957                     <LIST TEMP25 = TEMP10 (TYPE LIST)>
958                     <DEAD TEMP25>
959                     <JUMP + TAG29>
960 TAG27
961                     <LOOP>
962 TAG30
963                     <VEQUAL? TEMP25 0 + TAG29>
964                     <POP = TEMP31>
965                     <CONS TEMP31 TEMP10 = TEMP10 (TYPE LIST)>
966                     <DEAD TEMP31>
967                     <SUB TEMP25 1 = TEMP25 (TYPE FIX)>
968                     <JUMP + TAG30>
969 TAG29
970                     <PUTUV N4 8 TEMP10>
971                     <DEAD TEMP10>
972 PHRASE20
973                     <NTHL K6 1 = TEMP10 (TYPE NODE)>
974                     <NTHUV TEMP10 1 = TEMP10 (TYPE FIX)>
975                     <VEQUAL? TEMP10 2 - PHRASE35 (TYPE FIX)>
976                     <DEAD TEMP10>
977                     <VEQUAL? NM7 'GET-DECL - PHRASE35>
978                     <PUTUV N4 1 2 (TYPE FIX)>
979                     <PUTUV N4 5 () (TYPE LIST)>
980                     <FRAME '\1aGET-DECL>
981                     <NTHL K6 1 = TEMP10 (TYPE NODE)>
982                     <DEAD K6>
983                     <NTHUV TEMP10 4 = STACK>
984                     <DEAD TEMP10>
985                     <CALL '\1aGET-DECL 1 = TEMP10>
986                     <PUTUV N4 4 TEMP10>
987                     <DEAD TEMP10>
988                     <FRAME '\1aTYPE-OK?>
989                     <FRAME '\1aTYPE>
990                     <NTHUV N4 4 = STACK>
991                     <DEAD N4>
992                     <CALL '\1aTYPE 1 = STACK>
993                     <PUSH R5>
994                     <DEAD R5>
995                     <CALL '\1aTYPE-OK? 2 = TEMP10>
996                     <RETURN TEMP10>
997                     <DEAD TEMP10>
998 PHRASE35
999                     <FRAME '\1aISTYPE?>
1000                     <PUSH ST8>
1001                     <CALL '\1aISTYPE? 1 = TEMP10>
1002                     <SET TEMP31 [LBIND GBIND OFFSET] (TYPE VECTOR)>
1003                     <TYPE? TEMP10 <TYPE-CODE ATOM> - PHRASE42>
1004                     <LOOP (TEMP10 VALUE) (TEMP31 LENGTH VALUE)>
1005 TAG44
1006                     <NTHUV TEMP31 1 = K6>
1007                     <VEQUAL? K6 TEMP10 + TAG43>
1008                     <DEAD K6>
1009                     <RESTUV TEMP31 1 = TEMP31 (TYPE VECTOR)>
1010                     <EMPUV? TEMP31 - TAG44>
1011                     <JUMP + PHRASE42>
1012 TAG43
1013                     <PUTUV N4 1 102 (TYPE FIX)>
1014                     <DEAD N4>
1015                     <JUMP + PHRASE48>
1016 PHRASE42
1017                     <GEN-LVAL 'VERBOSE = TEMP31>
1018                     <TYPE? TEMP31 <TYPE-CODE FALSE> + PHRASE48>
1019                     <DEAD TEMP31>
1020                     <FRAME '\1aADDVMESS>
1021                     <PUSH N4>
1022                     <DEAD N4>
1023                     <CONS ST8 () = TEMP31>
1024                     <CONS "Not open compiled because type is " TEMP31 = TEMP31>
1025                     <CONS NM7 TEMP31 = STACK>
1026                     <DEAD TEMP31>
1027                     <CALL '\1aADDVMESS 2>
1028 PHRASE48
1029                     <FRAME '\1aTYPE-OK?>
1030                     <VEQUAL? NM7 'GET-DECL - PHRASE54>
1031                     <DEAD NM7>
1032                     <SET TEMP31 <OR ATOM FALSE FORM SEGMENT> (TYPE FORM)>
1033                     <JUMP + PHRASE55>
1034 PHRASE54
1035                     <SET TEMP31 ST8>
1036                     <DEAD ST8>
1037 PHRASE55
1038                     <PUSH TEMP31>
1039                     <DEAD TEMP31>
1040                     <PUSH R5>
1041                     <DEAD R5>
1042                     <CALL '\1aTYPE-OK? 2 = TEMP10>
1043 PHRASE40
1044                     <RETURN TEMP10>
1045                     <DEAD TEMP10>
1046                     <END \1aPUT-GET-DECL-ANA>
1047 #WORD *1530543267*
1048 <GFCN \1aOFFSET-PART-ANA ("VALUE" ANY NODE ANY) N4 R5>
1049                     <TEMP K6 NM7:ATOM TEMP9>
1050                     <INTGO>
1051                     <NTHUV N4 5 = K6 (TYPE LIST)>
1052                     <NTHUV N4 4 = NM7 (TYPE ATOM)>
1053                     <FRAME '\1aSEGFLUSH>
1054                     <PUSH N4>
1055                     <PUSH R5>
1056                     <CALL '\1aSEGFLUSH 2 = TEMP9>
1057                     <TYPE? TEMP9 <TYPE-CODE FALSE> - PHRASE28>
1058                     <FRAME '\1aARGCHK>
1059                     <LENL K6 = STACK (TYPE FIX)>
1060                     <VEQUAL? NM7 'INDEX - PHRASE14>
1061                     <SET TEMP9 1 (TYPE FIX)>
1062                     <JUMP + PHRASE16>
1063 PHRASE14
1064                     <SET TEMP9 (1 2) (TYPE LIST)>
1065 PHRASE16
1066                     <PUSH TEMP9>
1067                     <DEAD TEMP9>
1068                     <PUSH NM7>
1069                     <PUSH N4>
1070                     <CALL '\1aARGCHK 4>
1071                     <FRAME '\1aEANA>
1072                     <NTHL K6 1 = STACK (TYPE NODE)>
1073                     <PUSH 'OFFSET>
1074                     <PUSH NM7>
1075                     <CALL '\1aEANA 3>
1076                     <RESTL K6 1 = TEMP9 (TYPE LIST)>
1077                     <EMPL? TEMP9 + PHRASE19 (TYPE LIST)>
1078                     <DEAD TEMP9>
1079                     <FRAME '\1aEANA>
1080                     <RESTL K6 1 = TEMP9 (TYPE LIST)>
1081                     <NTHL TEMP9 1 = STACK (TYPE NODE)>
1082                     <DEAD TEMP9>
1083                     <PUSH <OR ATOM FALSE FORM SEGMENT>>
1084                     <PUSH NM7>
1085                     <CALL '\1aEANA 3>
1086 PHRASE19
1087                     <NTHL K6 1 = TEMP9 (TYPE NODE)>
1088                     <NTHUV TEMP9 1 = TEMP9 (TYPE FIX)>
1089                     <VEQUAL? TEMP9 2 - PHRASE22 (TYPE FIX)>
1090                     <DEAD TEMP9>
1091                     <RESTL K6 1 = TEMP9 (TYPE LIST)>
1092                     <EMPL? TEMP9 - PHRASE22 (TYPE LIST)>
1093                     <DEAD TEMP9>
1094                     <PUTUV N4 1 2 (TYPE FIX)>
1095                     <PUTUV N4 5 () (TYPE LIST)>
1096                     <FRAME>
1097                     <GVAL NM7 = TEMP9>
1098                     <DEAD NM7>
1099                     <NTHL K6 1 = K6 (TYPE NODE)>
1100                     <NTHUV K6 4 = STACK>
1101                     <DEAD K6>
1102                     <ACALL TEMP9 1 = K6>
1103                     <DEAD TEMP9>
1104                     <PUTUV N4 4 K6>
1105                     <DEAD K6>
1106                     <FRAME '\1aTYPE-OK?>
1107                     <FRAME '\1aTYPE>
1108                     <NTHUV N4 4 = STACK>
1109                     <DEAD N4>
1110                     <CALL '\1aTYPE 1 = STACK>
1111                     <PUSH R5>
1112                     <DEAD R5>
1113                     <CALL '\1aTYPE-OK? 2 = TEMP9>
1114                     <RETURN TEMP9>
1115                     <DEAD TEMP9>
1116 PHRASE22
1117                     <PUTUV N4 1 101 (TYPE FIX)>
1118                     <DEAD N4>
1119                     <FRAME '\1aTYPE-OK?>
1120                     <PUSH R5>
1121                     <DEAD R5>
1122                     <VEQUAL? NM7 'INDEX - PHRASE31>
1123                     <DEAD NM7>
1124                     <SET K6 'FIX (TYPE ATOM)>
1125                     <JUMP + PHRASE33>
1126 PHRASE31
1127                     <RESTL K6 1 = TEMP9 (TYPE LIST)>
1128                     <DEAD K6>
1129                     <EMPL? TEMP9 + PHRASE32 (TYPE LIST)>
1130                     <DEAD TEMP9>
1131                     <SET K6 'OFFSET (TYPE ATOM)>
1132                     <JUMP + PHRASE33>
1133 PHRASE32
1134                     <SET K6 <OR ATOM FALSE FORM SEGMENT> (TYPE FORM)>
1135 PHRASE33
1136                     <PUSH K6>
1137                     <DEAD K6>
1138                     <CALL '\1aTYPE-OK? 2 = TEMP9>
1139 PHRASE28
1140                     <RETURN TEMP9>
1141                     <DEAD TEMP9>
1142                     <END \1aOFFSET-PART-ANA>
1143 #WORD *33723345361*
1144                     <GFCN \1aSTRCOMP-ANA ("VALUE" ANY NODE ANY) N4 R5>
1145                     <TEMP K6:LIST TEMP8>
1146                     <INTGO>
1147                     <NTHUV N4 5 = K6 (TYPE LIST)>
1148                     <FRAME '\1aSEGFLUSH>
1149                     <PUSH N4>
1150                     <PUSH R5>
1151                     <CALL '\1aSEGFLUSH 2 = TEMP8>
1152                     <TYPE? TEMP8 <TYPE-CODE FALSE> - PHRASE10>
1153                     <FRAME '\1aARGCHK>
1154                     <LENL K6 = STACK (TYPE FIX)>
1155                     <PUSH 2>
1156                     <NTHUV N4 4 = STACK>
1157                     <PUSH N4>
1158                     <CALL '\1aARGCHK 4>
1159                     <FRAME '\1aSTRCOMP-ARG-ANA>
1160                     <NTHL K6 1 = STACK (TYPE NODE)>
1161                     <PUSH N4>
1162                     <PUSH 1>
1163                     <CALL '\1aSTRCOMP-ARG-ANA 3 = TEMP8>
1164                     <TYPE? TEMP8 <TYPE-CODE FALSE> + PHRASE13>
1165                     <DEAD TEMP8>
1166                     <FRAME '\1aSTRCOMP-ARG-ANA>
1167                     <RESTL K6 1 = TEMP8 (TYPE LIST)>
1168                     <DEAD K6>
1169                     <NTHL TEMP8 1 = STACK (TYPE NODE)>
1170                     <DEAD TEMP8>
1171                     <PUSH N4>
1172                     <PUSH 2>
1173                     <CALL '\1aSTRCOMP-ARG-ANA 3 = TEMP8>
1174                     <TYPE? TEMP8 <TYPE-CODE FALSE> + PHRASE13>
1175                     <DEAD TEMP8>
1176                     <PUTUV N4 1 95 (TYPE FIX)>
1177                     <DEAD N4>
1178 PHRASE13
1179                     <FRAME '\1aTYPE-OK?>
1180                     <PUSH 'FIX>
1181                     <PUSH R5>
1182                     <DEAD R5>
1183                     <CALL '\1aTYPE-OK? 2 = TEMP8>
1184 PHRASE10
1185                     <RETURN TEMP8>
1186                     <DEAD TEMP8>
1187                     <END \1aSTRCOMP-ANA>
1188
1189 #WORD *37573707570*
1190                     <GFCN \1aSTRCOMP-ARG-ANA ("VALUE" ANY NODE NODE FIX) N4 P5 IDX6>
1191                     <TEMP TYP7 ITYP8 NN9:NODE>
1192                     <INTGO>
1193                     <FRAME '\1aEANA>
1194                     <PUSH N4>
1195                     <PUSH 'ANY>
1196                     <PUSH 'STRCOMP>
1197                     <CALL '\1aEANA 3 = TYP7>
1198                     <FRAME '\1aISTYPE?>
1199                     <PUSH TYP7>
1200                     <CALL '\1aISTYPE? 1 = ITYP8>
1201                     <TYPE? ITYP8 <TYPE-CODE FALSE> + PHRASE12>
1202                     <VEQUAL? ITYP8 'ATOM - PHRASE19>
1203                     <DEAD ITYP8>
1204                     <NTHUV N4 1 = TYP7 (TYPE FIX)>
1205                     <VEQUAL? TYP7 2 - PHRASE17 (TYPE FIX)>
1206                     <DEAD TYP7>
1207                     <NTHUV N4 4 = TYP7 (TYPE ATOM)>
1208                     <NTHR TYP7 3 = TYP7 (RECORD-TYPE ATOM)>
1209                     <PUTUV N4 4 TYP7>
1210                     <DEAD TYP7>
1211                     <PUTUV N4 3 'STRING>
1212                     <DEAD N4>
1213                     <RETURN 'T>
1214 PHRASE17
1215                     <FRAME '\1aNODEFM>
1216                     <PUSH 100>
1217                     <PUSH P5>
1218                     <PUSH 'STRING>
1219                     <PUSH 'SPNAME>
1220                     <CONS N4 () = STACK>
1221                     <GVAL 'SPNAME = STACK>
1222                     <CALL '\1aNODEFM 6 = NN9>
1223                     <NTHUV P5 5 = TYP7 (TYPE LIST)>
1224                     <DEAD P5>
1225                     <GRTR? IDX6 0 - COMPERR (TYPE FIX)>
1226                     <SET ITYP8 IDX6>
1227                     <DEAD IDX6>
1228                     <SUB ITYP8 1 = ITYP8 (TYPE FIX)>
1229                     <GRTR? ITYP8 0 - RESTL23 (TYPE FIX)>
1230                     <LOOP (TYP7 VALUE) (ITYP8 VALUE)>
1231 RESTL22
1232                     <INTGO>
1233                     <EMPL? TYP7 + COMPERR>
1234                     <RESTL TYP7 1 = TYP7 (TYPE LIST)>
1235                     <SUB ITYP8 1 = ITYP8 (TYPE FIX)>
1236                     <GRTR? ITYP8 0 + RESTL22 (TYPE FIX)>
1237 RESTL23
1238                     <EMPL? TYP7 + COMPERR>
1239                     <PUTL TYP7 1 NN9>
1240                     <DEAD TYP7>
1241                     <PUTUV N4 2 NN9>
1242                     <DEAD N4 NN9>
1243 PHRASE19
1244                     <RETURN 'T>
1245 PHRASE12
1246                     <FRAME '\1a=?>
1247                     <PUSH TYP7>
1248                     <PUSH <OR ATOM STRING>>
1249                     <CALL '\1a=? 2 = ITYP8>
1250                     <VEQUAL? ITYP8 0 + PHRASE24>
1251                     <DEAD ITYP8>
1252                     <RETURN 'T>
1253 PHRASE24
1254                     <FRAME '\1aTYPE-OK?>
1255                     <PUSH TYP7>
1256                     <DEAD TYP7>
1257                     <PUSH <OR ATOM STRING>>
1258                     <CALL '\1aTYPE-OK? 2 = ITYP8>
1259                     <TYPE? ITYP8 <TYPE-CODE FALSE> - PHRASE26>
1260                     <DEAD ITYP8>
1261                     <FRAME '\1aCOMPILE-ERROR>
1262                     <PUSH "Argument wrong type to: ">
1263                     <PUSH 'STRCOMP>
1264                     <PUSH P5>
1265                     <DEAD P5>
1266                     <CALL '\1aCOMPILE-ERROR 3 = TYP7>
1267                     <RETURN TYP7>
1268                     <DEAD TYP7>
1269 PHRASE26
1270                     <RETURN %<>>
1271                     <END \1aSTRCOMP-ARG-ANA>
1272
1273 #WORD *1131001456*
1274 <GFCN \1aSUBSTRUC-ANA ("VALUE" ANY NODE ANY) N4 R5>
1275                     <TEMP K6 LN7 TEMP10 TEMP20>
1276                     <INTGO>
1277                     <NTHUV N4 5 = K6 (TYPE LIST)>
1278                     <LENL K6 = LN7 (TYPE FIX)>
1279                     <FRAME '\1aSEGFLUSH>
1280                     <PUSH N4>
1281                     <PUSH R5>
1282                     <CALL '\1aSEGFLUSH 2 = TEMP10>
1283                     <TYPE? TEMP10 <TYPE-CODE FALSE> - PHRASE12>
1284                     <FRAME '\1aARGCHK>
1285                     <PUSH LN7>
1286                     <PUSH (1 4)>
1287                     <NTHUV N4 4 = STACK>
1288                     <PUSH N4>
1289                     <CALL '\1aARGCHK 4>
1290                     <FRAME '\1aEANA>
1291                     <NTHL K6 1 = STACK (TYPE NODE)>
1292                     <PUSH 'STRUCTURED>
1293                     <PUSH 'SUBSTRUC>
1294                     <CALL '\1aEANA 3 = TEMP10>
1295                     <GRTR? LN7 1 - PHRASE16 (TYPE FIX)>
1296                     <FRAME '\1aEANA>
1297                     <RESTL K6 1 = TEMP20 (TYPE LIST)>
1298                     <NTHL TEMP20 1 = STACK (TYPE NODE)>
1299                     <DEAD TEMP20>
1300                     <PUSH 'FIX>
1301                     <PUSH 'SUBSTRUC>
1302                     <CALL '\1aEANA 3>
1303 PHRASE16
1304                     <GRTR? LN7 2 - PHRASE22 (TYPE FIX)>
1305                     <FRAME '\1aEANA>
1306                     <RESTL K6 1 = TEMP20 (TYPE LIST)>
1307                     <RESTL TEMP20 1 = TEMP20 (TYPE LIST)>
1308                     <NTHL TEMP20 1 = STACK (TYPE NODE)>
1309                     <DEAD TEMP20>
1310                     <PUSH 'FIX>
1311                     <PUSH 'SUBSTRUC>
1312                     <CALL '\1aEANA 3>
1313 PHRASE22
1314                     <GRTR? LN7 3 - PHRASE25 (TYPE FIX)>
1315                     <DEAD LN7>
1316                     <FRAME '\1aSTRUCTYP>
1317                     <PUSH TEMP10>
1318                     <DEAD TEMP10>
1319                     <CALL '\1aSTRUCTYP 1 = TEMP10>
1320                     <FRAME '\1aEANA>
1321                     <RESTL K6 1 = TEMP20 (TYPE LIST)>
1322                     <DEAD K6>
1323                     <RESTL TEMP20 1 = TEMP20 (TYPE LIST)>
1324                     <RESTL TEMP20 1 = TEMP20 (TYPE LIST)>
1325                     <NTHL TEMP20 1 = STACK (TYPE NODE)>
1326                     <DEAD TEMP20>
1327                     <TYPE? TEMP10 <TYPE-CODE FALSE> + PHRASE29>
1328                     <FRAME '\1aFORM>
1329                     <PUSH 'PRIMTYPE>
1330                     <PUSH TEMP10>
1331                     <DEAD TEMP10>
1332                     <CALL '\1aFORM 2 = TEMP20>
1333                     <JUMP + PHRASE31>
1334 PHRASE29
1335                     <SET TEMP20 'STRUCTURED (TYPE ATOM)>
1336 PHRASE31
1337                     <PUSH TEMP20>
1338                     <DEAD TEMP20>
1339                     <PUSH 'SUBSTRUC>
1340                     <CALL '\1aEANA 3 = TEMP10>
1341                     <PUSH N4>
1342                     <SET LN7 1 (TYPE FIX)>
1343                     <NTHUV N4 8 = TEMP20>
1344                     <TYPE TEMP20 = K6>
1345                     <AND K6 7 = K6>
1346                     <VEQUAL? K6 1 + TAG35>
1347                     <DEAD K6>
1348                     <LOOP (TEMP20 TYPE VALUE LENGTH) (LN7 VALUE)>
1349 TAG41
1350                     <INTGO>
1351                     <EMPTY? TEMP20 + TAG40>
1352                     <NTH1 TEMP20 = STACK>
1353                     <REST1 TEMP20 = TEMP20>
1354                     <ADD LN7 1 = LN7 (TYPE FIX)>
1355                     <JUMP + TAG41>
1356 TAG40
1357                     <LIST LN7 = TEMP20 (TYPE LIST)>
1358                     <DEAD LN7>
1359                     <JUMP + TAG37>
1360 TAG35
1361                     <LOOP>
1362 TAG38
1363                     <VEQUAL? LN7 0 + TAG37>
1364                     <POP = K6>
1365                     <CONS K6 TEMP20 = TEMP20 (TYPE LIST)>
1366                     <DEAD K6>
1367                     <SUB LN7 1 = LN7 (TYPE FIX)>
1368                     <JUMP + TAG38>
1369 TAG37
1370                     <PUTUV N4 8 TEMP20>
1371                     <DEAD TEMP20>
1372 PHRASE25
1373                     <FRAME '\1aSTRUCTYP>
1374                     <PUSH TEMP10>
1375                     <CALL '\1aSTRUCTYP 1 = TEMP20>
1376                     <SET K6 [STRING VECTOR UVECTOR BYTES] (TYPE VECTOR)>
1377                     <TYPE? TEMP20 <TYPE-CODE ATOM> - PHRASE43>
1378                     <LOOP (TEMP20 VALUE) (K6 LENGTH VALUE)>
1379 TAG45
1380                     <NTHUV K6 1 = LN7>
1381                     <VEQUAL? LN7 TEMP20 + TAG44>
1382                     <DEAD LN7>
1383                     <RESTUV K6 1 = K6 (TYPE VECTOR)>
1384                     <EMPUV? K6 - TAG45>
1385                     <JUMP + PHRASE43>
1386 TAG44
1387                     <PUTUV N4 1 81 (TYPE FIX)>
1388                     <DEAD N4>
1389 PHRASE43
1390                     <FRAME '\1aTYPE-OK?>
1391                     <FRAME '\1aSTRUCTYP>
1392                     <PUSH TEMP10>
1393                     <DEAD TEMP10>
1394                     <CALL '\1aSTRUCTYP 1 = STACK>
1395                     <PUSH R5>
1396                     <DEAD R5>
1397                     <CALL '\1aTYPE-OK? 2 = TEMP10>
1398 PHRASE12
1399                     <RETURN TEMP10>
1400                     <DEAD TEMP10>
1401                     <END \1aSUBSTRUC-ANA>\r\r
1402 <COND (<AND <GASSIGNED? NOT-ANA> <GASSIGNED? ELEMENT-DECL>> <PUTPROP ,NOT ANALYSIS ,NOT-ANA> <PUTPROP ,==? ANALYSIS ,==?-ANA> <PUTPROP ,N==? ANALYSIS ,==?-ANA> <PUTPROP ,TYPE? ANALYSIS ,TYPE?-ANA> <PUTPROP ,=? ANALYSIS ,=?-ANA> <PUTPROP ,N=? ANALYSIS ,=?-ANA> <PUTPROP ,VALID-TYPE? ANALYSIS ,VALID-TYPE?-ANA> <PUTPROP ,TYPE-C ANALYSIS ,TYPE-C-ANA> <PUTPROP ,INDEX ANALYSIS ,OFFSET-PART-ANA> <PUTPROP ,ELEMENT-DECL ANALYSIS ,OFFSET-PART-ANA> <PUTPROP ,PUT-DECL ANALYSIS ,PUT-GET-DECL-ANA> <PUTPROP ,GET-DECL ANALYSIS ,PUT-GET-DECL-ANA> <PUTPROP ,SPNAME ANALYSIS ,ATOM-PART-ANA> <PUTPROP ,OBLIST? ANALYSIS ,ATOM-PART-ANA> <PUTPROP ,LBIND ANALYSIS ,ATOM-PART-ANA> <PUTPROP ,GBIND ANALYSIS ,ATOM-PART-ANA> <PUTPROP ,S=? ANALYSIS ,S=?-ANA> <PUTPROP ,STRCOMP ANALYSIS ,STRCOMP-ANA> <PUTPROP ,SUBSTRUC ANALYSIS ,SUBSTRUC-ANA>)>
1403
1404 <ENDPACKAGE>