4 <ENTRY ANA EANA SET-CURRENT-TYPE TYPE-NTH-REST WHO TMPS GET-TMP TRUTH UNTRUTH SEGFLUSH KILL-REM BUILD-TYPE-LIST GET-CURRENT-TYPE ADD-TYPE-LIST PUT-FLUSH WHON SAVE-SURVIVORS SEQ-AN ARGCHK ASSUM-OK? FREST-L-D-STATE HTMPS ORUPC APPLTYP MSAVE-L-D-STATE SHTMPS RESET-VARS STMPS ASSERT-TYPES SAVE-L-D-STATE MUNG-L-D-STATE NORM-BAN SUBR-C-AN ENTROPY NAUX-BAN TUP-BAN ARGS-BAN LIFE MANIFESTQ SPEC-FLUSH UPDATE-SIDE-EFFECTS>
6 <USE "CHKDCL" "COMPDEC" "STRANA" "CARANA" "NOTANA" "ADVMESS" "MAPANA" "SUBRTY" "BITSANA" "CDRIVE">
8 " This is the main file associated with the type analysis phase of
9 the compilation. It is called by calling FUNC-ANA with the main data structure
10 pointer. ANA is the FUNCTION that dispatches to the various special handlers
11 and the SUBR call analyzer further dispatches for specific functions."
13 " Many analyzers for specific SUBRs appear in their own files
14 (CARITH, STRUCT etc.). Currently no special hacks are done for TYPE?, EMPTY?
15 etc. in COND, ANDS and ORS."
17 " All analysis functions are called with 2 args, a NODE and a desired
18 type specification. These args are usually called NOD and RTYP or
21 " ANA is the main analysis dispatcher (see ANALYZERS at the end of
22 this file for its dispatch table."
24 <GDECL (TEMPLATES SUBRS) VECTOR>
27 <GFCN
\1aANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
31 <LENUV NOD4 = TEMP9 (TYPE FIX)>
32 <LESS? TEMP9 8 + PHRASE8 (TYPE FIX)>
36 <FRAME '
\1aANALYSIS-DISPATCHER>
40 <CALL '
\1aANALYSIS-DISPATCHER 2 = TEMP9>
43 <FRAME '
\1aUPDATE-SIDE-EFFECTS>
47 <CALL '
\1aUPDATE-SIDE-EFFECTS 2>
48 <NTHUV NOD4 3 = TEMP9>
54 <GFCN
\1aUPDATE-SIDE-EFFECTS ("VALUE" <OR FALSE NODE> NODE ANY) NOD4 P5>
55 <TEMP TEMP12 TEM6 TEMP29 TEMP30 TEMP43 TEMP52 TEMP53 TEMP54 TEMP82>
57 <NTHUV NOD4 1 = TEMP12 (TYPE FIX)>
58 <VEQUAL? TEMP12 2 - TAG13 (TYPE FIX)>
65 <TYPE? TEMP12 <TYPE-CODE FALSE> + PHRASE9>
69 <TYPE? P5 <TYPE-CODE NODE> + PHRASE17>
70 <SET TEMP12 %<> (TYPE FALSE)>
73 <LENUV P5 = TEMP12 (TYPE FIX)>
74 <LESS? TEMP12 8 + PHRASE19 (TYPE FIX)>
76 <SET TEMP12 'T (TYPE ATOM)>
82 <VEQUAL? TEMP12 0 + PHRASE9>
83 <EMPL? TEM6 - PHRASE22 (TYPE LIST)>
88 <EMPL? TEMP12 - PHRASE23>
96 <NTHL TEMP29 1 = TEMP30>
97 <TYPE? TEMP30 <TYPE-CODE ATOM> - TAG28>
98 <VEQUAL? TEMP30 'ALL + TAG26>
101 <RESTL TEMP29 1 = TEMP29 (TYPE LIST)>
102 <EMPL? TEMP29 - TAG27>
106 <LOOP (TEMP29 VALUE)>
108 <NTHL TEMP29 1 = TEMP30>
109 <TYPE? TEMP30 <TYPE-CODE ATOM> - TAG33>
110 <VEQUAL? TEMP30 'ALL + TAG31>
113 <RESTL TEMP29 1 = TEMP29 (TYPE LIST)>
114 <EMPL? TEMP29 - TAG32>
117 <LENL TEM6 = TEMP29 (TYPE FIX)>
118 <LENL TEMP12 = TEMP30 (TYPE FIX)>
119 <GRTR? TEMP29 TEMP30 - PHRASE35 (TYPE FIX)>
121 <SET TEMP43 () (TYPE LIST)>
122 <SET TEMP30 () (TYPE LIST)>
123 <CHTYPE TEMP12 <TYPE-CODE LIST> = TEMP29>
128 <EMPL? TEMP29 + MAPAP40>
129 <NTHL TEMP29 1 = TEMP12>
130 <EQUAL? TEMP12 'ALL + MAP38>
132 <TYPE TEMP12 = TEMP53>
133 <LOOP (TEMP12 VALUE) (TEMP53 VALUE) (TEMP52 VALUE)>
135 <NTHL TEMP52 1 = TEMP54>
136 <TYPE? TEMP54 TEMP53 - TAG51>
137 <VEQUAL? TEMP54 TEMP12 + MAP38>
140 <RESTL TEMP52 1 = TEMP52 (TYPE LIST)>
141 <EMPL? TEMP52 - TAG50>
144 <CONS TEMP52 () = TEMP52 (TYPE LIST)>
145 <EMPL? TEMP43 - TAG57>
146 <SET TEMP43 TEMP52 (TYPE LIST)>
149 <PUTREST TEMP30 TEMP52>
152 <SET TEMP30 TEMP52 (TYPE LIST)>
155 <RESTL TEMP29 1 = TEMP29 (TYPE LIST)>
160 <EMPL? TEMP12 - PHRASE60 (TYPE LIST)>
166 <LOOP (TEMP29 VALUE)>
168 <RESTL TEMP29 1 = TEMP52 (TYPE LIST)>
169 <EMPL? TEMP52 + TAG63>
174 <PUTREST TEMP29 TEM6>
178 <SET TEMP29 () (TYPE LIST)>
179 <SET TEMP53 () (TYPE LIST)>
180 <SET TEMP52 TEM6 (TYPE LIST)>
184 <EMPL? TEMP52 + MAPAP69>
185 <NTHL TEMP52 1 = TEMP30>
186 <EQUAL? TEMP30 'ALL + MAP67>
188 <TYPE TEMP30 = TEMP54>
189 <LOOP (TEMP30 VALUE) (TEMP54 VALUE) (TEMP43 VALUE)>
191 <NTHL TEMP43 1 = TEMP82>
192 <TYPE? TEMP82 TEMP54 - TAG79>
193 <VEQUAL? TEMP82 TEMP30 + MAP67>
196 <RESTL TEMP43 1 = TEMP43 (TYPE LIST)>
197 <EMPL? TEMP43 - TAG78>
200 <CONS TEMP43 () = TEMP43 (TYPE LIST)>
201 <EMPL? TEMP29 - TAG85>
202 <SET TEMP29 TEMP43 (TYPE LIST)>
205 <PUTREST TEMP53 TEMP43>
208 <SET TEMP53 TEMP43 (TYPE LIST)>
211 <RESTL TEMP52 1 = TEMP52 (TYPE LIST)>
216 <EMPL? TEM6 + PHRASE96 (TYPE LIST)>
218 <LOOP (TEMP52 VALUE)>
220 <RESTL TEMP52 1 = TEMP43 (TYPE LIST)>
221 <EMPL? TEMP43 + TAG91>
226 <PUTREST TEMP52 TEMP12>
232 <LENL TEMP12 = TEMP43 (TYPE FIX)>
233 <LENL TEM6 = TEMP54 (TYPE FIX)>
234 <GRTR? TEMP43 TEMP54 - PHRASE92 (TYPE FIX)>
238 <NTHL TEMP43 1 = TEMP82>
239 <CONS TEMP82 TEMP12 = TEMP82>
241 <RESTL TEMP43 1 = TEMP43 (TYPE LIST)>
242 <EMPL? TEMP43 + TAG94>
243 <LOOP (TEMP43 VALUE) (TEMP82 VALUE) (TEMP12 VALUE)>
245 <NTHL TEMP43 1 = TEMP29>
246 <CONS TEMP29 TEMP12 = TEMP29>
247 <PUTREST TEMP82 TEMP29>
251 <RESTL TEMP43 1 = TEMP43 (TYPE LIST)>
252 <EMPL? TEMP43 - TAG93>
260 <NTHL TEMP54 1 = TEMP43>
261 <CONS TEMP43 TEM6 = TEMP43>
263 <RESTL TEMP54 1 = TEMP54 (TYPE LIST)>
264 <EMPL? TEMP54 + TAG98>
265 <LOOP (TEMP54 VALUE) (TEMP43 VALUE) (TEM6 VALUE)>
267 <NTHL TEMP54 1 = TEMP29>
268 <CONS TEMP29 TEM6 = TEMP29>
269 <PUTREST TEMP43 TEMP29>
273 <RESTL TEMP54 1 = TEMP54 (TYPE LIST)>
274 <EMPL? TEMP54 - TAG97>
286 <END
\1aUPDATE-SIDE-EFFECTS>
288 <GFCN
\1aARGCHK ("VALUE" ATOM FIX <OR <LIST FIX FIX> FIX> ANY NODE) GIV4 REQ5 NAME6 NOD7>
293 <TYPE? REQ5 <TYPE-CODE LIST> - PHRASE11>
294 <RESTL REQ5 1 = HI8 (TYPE LIST)>
295 <NTHL HI8 1 = HI8 (TYPE FIX)>
296 <NTHL REQ5 1 = LO9 (TYPE FIX)>
299 <LESS? GIV4 LO9 - PHRASE14 (TYPE FIX)>
301 <FRAME '
\1aCOMPILE-ERROR>
302 <PUSH "Too many arguments to: ">
307 <CALL '
\1aCOMPILE-ERROR 3>
310 <GRTR? GIV4 HI8 - PHRASE16 (TYPE FIX)>
312 <FRAME '
\1aCOMPILE-ERROR>
313 <PUSH "Too many arguments to: ">
318 <CALL '
\1aCOMPILE-ERROR 3>
323 <GFCN
\1aEANA ("VALUE" ANY NODE ANY ANY) NOD4 RTYP5 NAME6>
330 <CALL '
\1aANA 2 = TEMP8>
331 <TYPE? TEMP8 <TYPE-CODE FALSE> - PHRASE10>
332 <FRAME '
\1aCOMPILE-ERROR>
333 <PUSH "Argument wrong type to: ">
338 <CALL '
\1aCOMPILE-ERROR 3 = TEMP8>
343 " FUNC-ANA main entry to analysis phase. Analyzes bindings then body."
346 <FCN
\1aFUNC-ANA ("VALUE" ANY ANY ANY) N4 R5>
347 <TEMP TEMP3:LBIND TEMP11 OV7>
349 <GETS 'BIND = TEMP3 (TYPE LBIND)>
350 <GEN-ASSIGNED? 'ANALY-OK - PHRASE10>
351 <GEN-LVAL 'ANALY-OK = TEMP11>
354 <SET TEMP11 'T (TYPE ATOM)>
356 <BBIND 'ANALY-OK 'ANY 'FIX TEMP11>
358 <GEN-LVAL 'VERBOSE = OV7>
359 <CFRAME = TEMP11 (TYPE FRAME)>
360 <BBIND 'ANA-ACT 'ANY 'FIX TEMP11>
363 <GEN-LVAL 'VERBOSE = TEMP11>
364 <TYPE? TEMP11 <TYPE-CODE FALSE> + PHRASE19>
366 <GEN-SET 'VERBOSE OV7>
372 <CALL '
\1aFUNC-AN1 2 = TEMP11>
380 <GFCN
\1aFUNC-AN1 ("VALUE" ANY NODE ANY) FCN4 RTYP5>
381 <TEMP TEMP3:LBIND TEMP19 NRTYP18 ACT?40 OV44 TEMP63 TEM14>
383 <GETS 'BIND = TEMP3 (TYPE LBIND)>
384 <BBIND 'FCN 'NODE %<> FCN4>
387 <NTHR 'FCN 2 = TEMP19 (RECORD-TYPE ATOM) (TYPE LBIND)>
388 <NTHR TEMP19 1 = TEMP19 (RECORD-TYPE LBIND)>
389 <NTHUV TEMP19 11 = TEMP19 (TYPE SYMTAB)>
390 <BBIND 'VARTBL 'SYMTAB 'FIX TEMP19>
392 <BBIND 'TMPS 'FIX 'FIX 0>
393 <BBIND 'HTMPS 'FIX 'FIX 0>
394 <BBIND 'TRUTH 'LIST 'FIX ()>
395 <BBIND 'UNTRUTH 'LIST 'FIX ()>
396 <BBIND 'WHO 'ANY 'FIX ()>
397 <BBIND 'WHON 'ANY 'FIX %<>>
398 <BBIND 'PRED 'ANY 'FIX %<>>
399 <BBIND 'LIFE 'LIST 'FIX ()>
400 <BBIND 'USE-COUNT 'FIX 'FIX 0>
401 <BBIND 'BACKTRACK 'FIX 'FIX 0>
402 <FRAME '
\1aRESET-VARS>
403 <NTHR 'VARTBL 2 = TEMP19 (RECORD-TYPE ATOM) (TYPE LBIND)>
404 <NTHR TEMP19 1 = STACK (RECORD-TYPE LBIND)>
406 <CALL '
\1aRESET-VARS 1>
408 <NTHR 'FCN 2 = TEMP19 (RECORD-TYPE ATOM) (TYPE LBIND)>
409 <NTHR TEMP19 1 = TEMP19 (RECORD-TYPE LBIND)>
410 <NTHUV TEMP19 10 = STACK (TYPE LIST)>
415 <NTHR 'FCN 2 = TEMP19 (RECORD-TYPE ATOM) (TYPE LBIND)>
416 <NTHR TEMP19 1 = TEMP19 (RECORD-TYPE LBIND)>
417 <NTHUV TEMP19 17 = STACK>
419 <CALL '
\1aTYPE-OK? 2 = NRTYP18>
420 <TYPE? NRTYP18 <TYPE-CODE FALSE> - PHRASE30>
421 <FRAME '
\1aCOMPILE-ERROR>
422 <PUSH "Function returns wrong type: ">
423 <NTHR 'FCN 2 = TEMP19 (RECORD-TYPE ATOM) (TYPE LBIND)>
424 <NTHR TEMP19 1 = TEMP19 (RECORD-TYPE LBIND)>
425 <NTHUV TEMP19 4 = STACK>
427 <PUSH ". Declared type is ">
428 <NTHR 'FCN 2 = TEMP19 (RECORD-TYPE ATOM) (TYPE LBIND)>
429 <NTHR TEMP19 1 = TEMP19 (RECORD-TYPE LBIND)>
430 <NTHUV TEMP19 17 = STACK>
432 <PUSH ", required type is ">
434 <CALL '
\1aCOMPILE-ERROR 6>
437 <NTHR 'FCN 2 = TEMP19 (RECORD-TYPE ATOM) (TYPE LBIND)>
438 <NTHR TEMP19 1 = TEMP19 (RECORD-TYPE LBIND)>
439 <NTHUV TEMP19 10 = STACK (TYPE LIST)>
442 <CALL '
\1aACTIV? 2 = ACT?40>
443 <GEN-LVAL 'VERBOSE = OV44>
447 <GEN-LVAL 'VERBOSE = TEMP19>
448 <TYPE? TEMP19 <TYPE-CODE FALSE> + PHRASE49>
450 <GEN-SET 'VERBOSE OV44>
453 <NTHR 'FCN 2 = TEMP19 (RECORD-TYPE ATOM) (TYPE LBIND)>
454 <NTHR TEMP19 1 = TEMP19 (RECORD-TYPE LBIND)>
455 <PUTUV TEMP19 19 %<>>
457 <NTHR 'FCN 2 = TEMP19 (RECORD-TYPE ATOM) (TYPE LBIND)>
458 <NTHR TEMP19 1 = TEMP19 (RECORD-TYPE LBIND)>
459 <PUTUV TEMP19 7 () (TYPE LIST)>
461 <NTHR 'LIFE 2 = TEMP19 (RECORD-TYPE ATOM) (TYPE LBIND)>
462 <PUTR TEMP19 1 () (RECORD-TYPE LBIND)>
464 <NTHR 'FCN 2 = TEMP19 (RECORD-TYPE ATOM) (TYPE LBIND)>
465 <NTHR TEMP19 1 = TEMP19 (RECORD-TYPE LBIND)>
466 <FRAME '
\1aBUILD-TYPE-LIST>
467 <NTHR 'VARTBL 2 = TEMP63 (RECORD-TYPE ATOM) (TYPE LBIND)>
468 <NTHR TEMP63 1 = STACK (RECORD-TYPE LBIND)>
470 <CALL '
\1aBUILD-TYPE-LIST 1 = TEMP63>
471 <PUTUV TEMP19 18 TEMP63 (TYPE LIST)>
473 <TYPE? ACT?40 <TYPE-CODE FALSE> + PHRASE67>
477 <SET TEMP19 'NO-RETURN (TYPE ATOM)>
479 <NTHR 'FCN 2 = TEMP63 (RECORD-TYPE ATOM) (TYPE LBIND)>
480 <NTHR TEMP63 1 = TEMP63 (RECORD-TYPE LBIND)>
481 <PUTUV TEMP63 14 TEMP19>
484 <NTHR 'FCN 2 = TEMP63 (RECORD-TYPE ATOM) (TYPE LBIND)>
485 <NTHR TEMP63 1 = TEMP63 (RECORD-TYPE LBIND)>
486 <NTHUV TEMP63 5 = STACK (TYPE LIST)>
488 <NTHR 'FCN 2 = TEMP63 (RECORD-TYPE ATOM) (TYPE LBIND)>
489 <NTHR TEMP63 1 = TEMP63 (RECORD-TYPE LBIND)>
490 <NTHUV TEMP63 17 = STACK>
492 <CALL '
\1aSEQ-AN 2 = TEM14>
493 <TYPE? ACT?40 <TYPE-CODE FALSE> + PHRASE77>
494 <FRAME '
\1aSPEC-FLUSH>
495 <CALL '
\1aSPEC-FLUSH 0>
496 <FRAME '
\1aPUT-FLUSH>
498 <CALL '
\1aPUT-FLUSH 1>
500 <NTHR 'FCN 2 = TEMP63 (RECORD-TYPE ATOM) (TYPE LBIND)>
501 <NTHR TEMP63 1 = TEMP63 (RECORD-TYPE LBIND)>
502 <NTHUV TEMP63 19 = TEMP63>
503 <TYPE? TEMP63 <TYPE-CODE FALSE> - BOOL84>
505 <TYPE? ACT?40 <TYPE-CODE FALSE> + BOOL83>
507 <FRAME '
\1aASSUM-OK?>
508 <NTHR 'FCN 2 = TEMP63 (RECORD-TYPE ATOM) (TYPE LBIND)>
509 <NTHR TEMP63 1 = TEMP63 (RECORD-TYPE LBIND)>
510 <NTHUV TEMP63 18 = STACK (TYPE LIST)>
512 <NTHR 'FCN 2 = TEMP19 (RECORD-TYPE ATOM) (TYPE LBIND)>
513 <NTHR TEMP19 1 = TEMP19 (RECORD-TYPE LBIND)>
514 <NTHUV TEMP19 19 = TEMP63>
516 <TYPE? TEMP63 <TYPE-CODE FALSE> - BOOL90>
517 <FRAME '
\1aBUILD-TYPE-LIST>
518 <NTHR 'VARTBL 2 = TEMP19 (RECORD-TYPE ATOM) (TYPE LBIND)>
519 <NTHR TEMP19 1 = STACK (RECORD-TYPE LBIND)>
521 <CALL '
\1aBUILD-TYPE-LIST 1 = TEMP63>
525 <CALL '
\1aASSUM-OK? 2 = TEMP63>
526 <TYPE? TEMP63 <TYPE-CODE FALSE> + AGAIN47>
529 <TYPE? ACT?40 <TYPE-CODE FALSE> - PHRASE81>
532 <NTHR 'FCN 2 = TEMP63 (RECORD-TYPE ATOM) (TYPE LBIND)>
533 <NTHR TEMP63 1 = TEMP63 (RECORD-TYPE LBIND)>
534 <NTHUV TEMP63 10 = STACK (TYPE LIST)>
537 <CALL '
\1aACTIV? 2 = ACT?40>
538 <VEQUAL? ACT?40 0 + PHRASE81>
539 <FRAME '
\1aASSERT-TYPES>
540 <NTHR 'FCN 2 = TEMP63 (RECORD-TYPE ATOM) (TYPE LBIND)>
541 <NTHR TEMP63 1 = TEMP63 (RECORD-TYPE LBIND)>
542 <NTHUV TEMP63 18 = STACK (TYPE LIST)>
544 <CALL '
\1aASSERT-TYPES 1 = TEMP63>
545 <TYPE? TEMP63 <TYPE-CODE FALSE> - AGAIN47>
548 <NTHR 'FCN 2 = TEMP63 (RECORD-TYPE ATOM) (TYPE LBIND)>
549 <NTHR TEMP63 1 = TEMP63 (RECORD-TYPE LBIND)>
550 <PUTUV TEMP63 18 () (TYPE LIST)>
552 <NTHR 'FCN 2 = TEMP63 (RECORD-TYPE ATOM) (TYPE LBIND)>
553 <NTHR TEMP63 1 = TEMP63 (RECORD-TYPE LBIND)>
556 <TYPE? TEM14 <TYPE-CODE FALSE> - PHRASE108>
557 <FRAME '
\1aCOMPILE-ERROR>
558 <PUSH "Returned value violates decl of: ">
561 <CALL '
\1aCOMPILE-ERROR 2>
563 <NTHR 'FCN 2 = TEMP63 (RECORD-TYPE ATOM) (TYPE LBIND)>
564 <NTHR TEMP63 1 = TEMP63 (RECORD-TYPE LBIND)>
565 <FRAME '
\1aTYPE-MERGE>
566 <NTHR 'FCN 2 = TEMP19 (RECORD-TYPE ATOM) (TYPE LBIND)>
567 <NTHR TEMP19 1 = TEMP19 (RECORD-TYPE LBIND)>
568 <NTHUV TEMP19 14 = STACK>
572 <CALL '
\1aTYPE-MERGE 2 = TEMP19>
573 <PUTUV TEMP63 3 TEMP19>
576 <NTHR 'FCN 2 = TEMP63 (RECORD-TYPE ATOM) (TYPE LBIND)>
577 <NTHR TEMP63 1 = TEMP63 (RECORD-TYPE LBIND)>
578 <NTHUV TEMP63 9 = STACK>
581 <FRAME '
\1aTASTEFUL-DECL>
582 <NTHR 'FCN 2 = TEMP63 (RECORD-TYPE ATOM) (TYPE LBIND)>
583 <NTHR TEMP63 1 = TEMP63 (RECORD-TYPE LBIND)>
584 <NTHUV TEMP63 3 = STACK>
586 <CALL '
\1aTASTEFUL-DECL 1 = STACK>
588 <NTHR 'FCN 2 = TEMP63 (RECORD-TYPE ATOM) (TYPE LBIND)>
589 <NTHR TEMP63 1 = TEMP63 (RECORD-TYPE LBIND)>
590 <NTHUV TEMP63 3 = TEMP63>
597 " BIND-AN analyze binding structure for PROGs, FUNCTIONs etc."
600 <GFCN
\1aBIND-AN ("VALUE" ATOM <LIST [REST SYMTAB]>) BNDS4>
606 <EMPL? BNDS4 - PHRASE12 (TYPE LIST)>
609 <NTHL BNDS4 1 = TEMP6 (TYPE SYMTAB)>
610 <PUTUV TEMP6 18 'ANY>
612 <FRAME '
\1aBIND-DISPATCH>
615 <CALL '
\1aBIND-DISPATCH 1>
616 <RESTL BNDS4 1 = BNDS4 (TYPE LIST)>
619 " ENTROPY ignore call and return."
622 <GFCN
\1aENTROPY ("VALUE" ATOM ANY) SYM4>
628 <GFCN
\1aTUP-BAN ("VALUE" SYMTAB SYMTAB) SYM4>
631 <GEN-LVAL 'ANALY-OK = TEMP7>
632 <TYPE? TEMP7 <TYPE-CODE FALSE> - PHRASE6>
634 <NTHUV SYM4 7 = TEMP7>
635 <PUTUV SYM4 18 TEMP7>
642 <NTHUV SYM4 7 = STACK>
643 <CALL '
\1aISTYPE? 1 = TEMP7>
644 <VEQUAL? TEMP7 'TUPLE + PHRASE10>
646 <PUTUV SYM4 18 'TUPLE>
647 <PUTUV SYM4 17 'TUPLE>
651 <NTHUV SYM4 7 = TEMP7>
652 <PUTUV SYM4 17 TEMP7>
654 <NTHUV SYM4 7 = TEMP7>
655 <PUTUV SYM4 18 TEMP7>
660 " Analyze AUX and OPTIONAL intializations."
663 <GFCN
\1aNORM-BAN ("VALUE" SYMTAB SYMTAB) SYM4>
664 <TEMP TEMP3:LBIND TEMP9 N8:NODE TEM6>
666 <GETS 'BIND = TEMP3 (TYPE LBIND)>
667 <NTHUV SYM4 1 = TEMP9 (TYPE SYMTAB)>
668 <BBIND 'VARTBL 'SYMTAB 'FIX TEMP9>
670 <NTHUV SYM4 9 = N8 (TYPE NODE)>
673 <NTHUV SYM4 7 = STACK>
674 <CALL '
\1aANA 2 = TEM6>
675 <TYPE? TEM6 <TYPE-CODE FALSE> - PHRASE11>
676 <FRAME '
\1aCOMPILE-ERROR>
677 <PUSH "AUX/OPT init for: ">
678 <NTHUV SYM4 2 = STACK (TYPE ATOM)>
679 <PUSH ". Init value of: ">
681 <PUSH " whose type is ">
683 <PUSH " violates decl of ">
684 <NTHUV SYM4 7 = STACK>
685 <CALL '
\1aCOMPILE-ERROR 8>
687 <GEN-LVAL 'ANALY-OK = TEMP9>
688 <TYPE? TEMP9 <TYPE-CODE FALSE> + PHRASE15>
690 <NTHUV SYM4 4 = TEMP9 (TYPE FIX)>
691 <GRTR? TEMP9 9 + BOOL19 (TYPE FIX)>
692 <LESS? TEMP9 6 - PHRASE15 (TYPE FIX)>
695 <NTHUV N8 1 = TEMP9 (TYPE FIX)>
696 <VEQUAL? TEMP9 2 - PHRASE24 (TYPE FIX)>
699 <EQUAL? TEMP9 %<> - PHRASE23>
701 <SET TEM6 'BOOL-FALSE (TYPE ATOM)>
706 <EQUAL? TEMP9 'T - PHRASE24>
708 <SET TEM6 'BOOL-TRUE (TYPE ATOM)>
717 <NTHUV SYM4 7 = TEMP9>
718 <PUTUV SYM4 18 TEMP9>
720 <NTHUV SYM4 7 = TEMP9>
721 <PUTUV SYM4 17 TEMP9>
732 " ARGS-BAN analyze ARGS decl (change to OPTIONAL in some cases)."
735 <GFCN
\1aARGS-BAN ("VALUE" <OR FALSE SYMTAB> SYMTAB) SYM4>
744 <CALL '
\1aNODE1 5 = TEMP6>
747 <PUTUV SYM4 4 7 (TYPE FIX)>
748 <GEN-LVAL 'ANALY-OK = TEMP6>
749 <TYPE? TEMP6 <TYPE-CODE FALSE> + PHRASE8>
751 <PUTUV SYM4 18 'LIST>
754 <NTHUV SYM4 7 = TEMP6>
755 <PUTUV SYM4 18 TEMP6>
758 <GEN-LVAL 'ANALY-OK = TEMP6>
759 <TYPE? TEMP6 <TYPE-CODE FALSE> + PHRASE13>
763 <NTHUV SYM4 7 = STACK>
764 <CALL '
\1aTYPE-AND 2 = TEMP6>
765 <PUTUV SYM4 17 TEMP6>
770 <GEN-LVAL 'ANALY-OK = TEMP6>
771 <TYPE? TEMP6 <TYPE-CODE FALSE> + TAG21>
780 <GFCN
\1aNAUX-BAN ("VALUE" SYMTAB SYMTAB) SYM4>
783 <GEN-LVAL 'ANALY-OK = TEMP7>
784 <TYPE? TEMP7 <TYPE-CODE FALSE> + PHRASE6>
786 <SET TEMP7 'NO-RETURN (TYPE ATOM)>
789 <NTHUV SYM4 7 = TEMP7>
791 <PUTUV SYM4 18 TEMP7>
793 <GEN-LVAL 'ANALY-OK = TEMP7>
794 <TYPE? TEMP7 <TYPE-CODE FALSE> + PHRASE12>
796 <SET TEMP7 'NO-RETURN (TYPE ATOM)>
799 <SET TEMP7 'ANY (TYPE ATOM)>
801 <PUTUV SYM4 17 TEMP7>
806 "BIND-DISPATCH go to various binding analyzers analyzers."
809 <GFCN
\1aBIND-DISPATCH ("VALUE" <OR ATOM FALSE SYMTAB> ANY) SYM4>
812 <NTHUV SYM4 4 = COD5 (TYPE FIX)>
813 <DISPATCH COD5 1 CASE8 CASE9 CASE10 CASE11 CASE12 CASE13 CASE14 CASE15 CASE16 CASE17 CASE18 CASE19 CASE20>
820 <CALL '
\1aENTROPY 1 = COD5>
827 <CALL '
\1aNORM-BAN 1 = COD5>
834 <CALL '
\1aNAUX-BAN 1 = COD5>
841 <CALL '
\1aTUP-BAN 1 = COD5>
848 <CALL '
\1aARGS-BAN 1 = COD5>
855 <CALL '
\1aNORM-BAN 1 = COD5>
862 <CALL '
\1aNORM-BAN 1 = COD5>
869 <CALL '
\1aENTROPY 1 = COD5>
876 <CALL '
\1aENTROPY 1 = COD5>
883 <CALL '
\1aENTROPY 1 = COD5>
890 <CALL '
\1aENTROPY 1 = COD5>
897 <CALL '
\1aENTROPY 1 = COD5>
904 <CALL '
\1aENTROPY 1 = COD5>
907 <END
\1aBIND-DISPATCH>
908 " SEQ-AN analyze a sequence of NODES discarding values until the last."
911 <GFCN
\1aSEQ-AN ("VALUE" ANY <LIST [REST NODE]> ANY "OPTIONAL" ANY) L6 FTYP7 DO-PRED8>
912 <OPT-DISPATCH 2 %<> OPT4 OPT5>
916 <TEMP (SOA9 %<>) RES23 TEMP17:LBIND N19:NODE ENDIF-FLAG25 TEMP33 TEMP41>
918 <EMPL? L6 - PHRASE12 (TYPE LIST)>
919 <FRAME '
\1aCOMPILE-LOSSAGE>
920 <PUSH "Empty KIDS list in SEQ-AN">
921 <CALL '
\1aCOMPILE-LOSSAGE 1 = SOA9>
925 <SET RES23 'NO-RETURN (TYPE ATOM)>
926 <SET SOA9 %<> (TYPE FALSE)>
927 <GETS 'BIND = TEMP17 (TYPE LBIND)>
928 <BBIND 'RET-OR-AGAIN 'ANY 'FIX %<>>
932 <NTHL L6 1 = N19 (TYPE NODE)>
933 <SET ENDIF-FLAG25 %<> (TYPE FALSE)>
934 <RESTL L6 1 = L6 (TYPE LIST)>
935 <EMPL? L6 - BOOL31 (TYPE LIST)>
936 <FRAME '
\1aIFSYS-ENDIF?>
939 <CALL '
\1aIFSYS-ENDIF? 2 = TEMP33>
940 <TYPE? TEMP33 <TYPE-CODE FALSE> + BOOL30>
943 <EMPL? L6 + PHRASE29 (TYPE LIST)>
944 <FRAME '
\1aIFSYS-ENDIF?>
945 <NTHL L6 1 = STACK (TYPE NODE)>
947 <CALL '
\1aIFSYS-ENDIF? 2 = TEMP33>
948 <TYPE? TEMP33 <TYPE-CODE FALSE> + PHRASE29>
950 <SET ENDIF-FLAG25 'T (TYPE ATOM)>
952 <TYPE? DO-PRED8 <TYPE-CODE FALSE> + PHRASE37>
953 <EMPL? L6 - PHRASE37 (TYPE LIST)>
954 <GETS 'BIND = TEMP33 (TYPE LBIND)>
955 <NTHUV N19 2 = TEMP41>
956 <BBIND 'PRED 'ANY 'FIX TEMP41>
961 <CALL '
\1aANA 2 = TEMP41>
970 <CALL '
\1aANA 2 = TEMP41>
972 <VEQUAL? ENDIF-FLAG25 0 + PHRASE47>
974 <TYPE? SOA9 <TYPE-CODE FALSE> + PHRASE47>
975 <FRAME '
\1aASSERT-TYPES>
977 <GEN-LVAL 'VARTBL = STACK>
980 <CALL '
\1aORUPC 2 = STACK>
981 <CALL '
\1aASSERT-TYPES 1>
982 <SET SOA9 %<> (TYPE FALSE)>
984 <FRAME '
\1aTYPE-MERGE>
988 <CALL '
\1aTYPE-MERGE 2 = RES23>
991 <FRAME '
\1aIFSYS-ENDIF?>
994 <CALL '
\1aIFSYS-ENDIF? 2 = TEMP41>
995 <TYPE? TEMP41 <TYPE-CODE FALSE> + PHRASE54>
1000 <CALL '
\1aANA 2 = TEMP41>
1001 <FRAME '
\1aBUILD-TYPE-LIST>
1002 <GEN-LVAL 'VARTBL = STACK>
1003 <CALL '
\1aBUILD-TYPE-LIST 1 = SOA9>
1009 <CALL '
\1aANA 2 = TEMP41>
1010 <LENUV N19 = ENDIF-FLAG25 (TYPE FIX)>
1011 <LESS? ENDIF-FLAG25 8 + BOOL64 (TYPE FIX)>
1013 <NTHUV N19 8 = ENDIF-FLAG25>
1014 <TYPE? ENDIF-FLAG25 <TYPE-CODE FALSE> - PHRASE76>
1017 <NTHR 'RET-OR-AGAIN 2 = ENDIF-FLAG25 (RECORD-TYPE ATOM) (TYPE LBIND)>
1018 <NTHR ENDIF-FLAG25 1 = ENDIF-FLAG25 (RECORD-TYPE LBIND)>
1019 <TYPE? ENDIF-FLAG25 <TYPE-CODE FALSE> - PHRASE67>
1021 <GEN-LVAL 'VERBOSE = ENDIF-FLAG25>
1022 <TYPE? ENDIF-FLAG25 <TYPE-CODE FALSE> + PHRASE76>
1024 <EMPL? L6 + PHRASE76 (TYPE LIST)>
1025 <FRAME '
\1aADDVMESS>
1026 <NTHUV N19 2 = STACK (TYPE NODE)>
1027 <CONS N19 () = ENDIF-FLAG25>
1028 <CONS "This object has no side-effects and its value is ignored" ENDIF-FLAG25 = STACK>
1030 <CALL '
\1aADDVMESS 2>
1035 <PUSH 'DONT-FLUSH-ME>
1037 <CALL '
\1aPUTPROP 3>
1039 <TYPE? TEMP41 <TYPE-CODE FALSE> - PHRASE79>
1040 <NTHR 'RET-OR-AGAIN 2 = SOA9 (RECORD-TYPE ATOM) (TYPE LBIND)>
1041 <NTHR SOA9 1 = SOA9 (RECORD-TYPE LBIND)>
1042 <SET RES23 %<> (TYPE FALSE)>
1047 <EQUAL? TEMP41 'NO-RETURN - PHRASE83>
1049 <GEN-LVAL 'VERBOSE = ENDIF-FLAG25>
1050 <TYPE? ENDIF-FLAG25 <TYPE-CODE FALSE> + PHRASE85>
1052 <EMPL? L6 + PHRASE85 (TYPE LIST)>
1054 <FRAME '
\1aADDVMESS>
1055 <NTHUV N19 2 = STACK (TYPE NODE)>
1056 <CONS " because it never returns" () = ENDIF-FLAG25>
1057 <CONS N19 ENDIF-FLAG25 = ENDIF-FLAG25>
1059 <CONS "This object ends a sequence of forms" ENDIF-FLAG25 = STACK>
1061 <CALL '
\1aADDVMESS 2>
1063 <NTHR 'RET-OR-AGAIN 2 = SOA9 (RECORD-TYPE ATOM) (TYPE LBIND)>
1064 <NTHR SOA9 1 = SOA9 (RECORD-TYPE LBIND)>
1065 <SET RES23 'NO-RETURN (TYPE ATOM)>
1070 <EMPL? L6 - AGAIN27 (TYPE LIST)>
1071 <NTHR 'RET-OR-AGAIN 2 = SOA9 (RECORD-TYPE ATOM) (TYPE LBIND)>
1072 <NTHR SOA9 1 = SOA9 (RECORD-TYPE LBIND)>
1077 <TYPE? SOA9 <TYPE-CODE FALSE> + PHRASE97>
1079 <GEN-SET 'RET-OR-AGAIN 'T>
1085 <GFCN
\1aIFSYS-ENDIF? ("VALUE" <OR ATOM FALSE> NODE ANY) N4 STR5>
1086 <TEMP TEMP10 Y6 TEMP18 TEMP19 TEMP20>
1088 <NTHUV N4 1 = TEMP10 (TYPE FIX)>
1089 <VEQUAL? TEMP10 90 + TAG11 (TYPE FIX)>
1093 <NTHUV N4 5 = Y6 (TYPE LIST)>
1096 <RESTL Y6 1 = TEMP10 (TYPE LIST)>
1097 <EMPL? TEMP10 - TAG12>
1102 <NTHL Y6 1 = TEMP10 (TYPE NODE)>
1104 <NTHUV TEMP10 4 = TEMP10>
1105 <TYPE? TEMP10 <TYPE-CODE ATOM> + TAG14>
1108 <NTHR TEMP10 3 = TEMP10 (RECORD-TYPE ATOM)>
1109 <TYPE? STR5 <TYPE-CODE STRING> - TAG16>
1110 <IFCAN "STRING-EQUAL?">
1111 <STRING-EQUAL? TEMP10 STR5 - TAG16>
1112 <ENDIF "STRING-EQUAL?">
1113 <IFCANNOT "STRING-EQUAL?">
1116 <LENUS TEMP10 = TEMP18 (TYPE FIX)>
1117 <LENUS Y6 = TEMP19 (TYPE FIX)>
1118 <VEQUAL? TEMP18 TEMP19 - TAG16>
1120 <LOOP (TEMP10 VALUE LENGTH) (Y6 VALUE LENGTH) (TEMP18 VALUE)>
1122 <NTHUS TEMP10 1 = TEMP19>
1123 <NTHUS Y6 1 = TEMP20>
1124 <VEQUAL? TEMP19 TEMP20 - TAG16>
1125 <DEAD TEMP19 TEMP20>
1126 <RESTUS TEMP10 1 = TEMP10 (TYPE STRING)>
1127 <RESTUS Y6 1 = Y6 (TYPE STRING)>
1128 <SUB TEMP18 1 = TEMP18 (TYPE FIX)>
1129 <GRTR? TEMP18 0 + TAG21 (TYPE FIX)>
1130 <ENDIF "STRING-EQUAL?">
1134 <END
\1aIFSYS-ENDIF?>
1135 " ANALYZE ASSIGNED? usage."
1138 <GFCN
\1aASSIGNED?-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
1139 <TEMP TEM6:LIST (TY10 <OR ATOM FALSE>) TEMP15 TT7:NODE T29>
1141 <NTHUV NOD4 5 = TEM6 (TYPE LIST)>
1142 <EMPL? TEM6 - PHRASE12 (TYPE LIST)>
1143 <FRAME '
\1aCOMPILE-ERROR>
1144 <PUSH "No arguments ASSIGNED?: ">
1147 <CALL '
\1aCOMPILE-ERROR 2>
1150 <FRAME '
\1aSEGFLUSH>
1153 <CALL '
\1aSEGFLUSH 2 = TEMP15>
1154 <TYPE? TEMP15 <TYPE-CODE FALSE> - PHRASE38>
1157 <NTHL TEM6 1 = TT7 (TYPE NODE)>
1162 <RESTL TEM6 1 = TEMP15 (TYPE LIST)>
1163 <EMPL? TEMP15 - PHRASE19 (TYPE LIST)>
1165 <NTHUV TT7 1 = TEMP15 (TYPE FIX)>
1166 <VEQUAL? TEMP15 2 - PHRASE19 (TYPE FIX)>
1168 <FRAME '
\1aSRCH-SYM>
1169 <NTHUV TT7 4 = STACK (TYPE ATOM)>
1170 <CALL '
\1aSRCH-SYM 1 = T29>
1171 <VEQUAL? T29 0 + PHRASE19>
1172 <NTHUV T29 4 = TEMP15 (TYPE FIX)>
1173 <VEQUAL? TEMP15 -1 + PHRASE19 (TYPE FIX)>
1175 <PUTUV NOD4 1 43 (TYPE FIX)>
1179 <NTHUV T29 13 = TEMP15 (TYPE FIX)>
1180 <ADD TEMP15 1 = TEMP15 (TYPE FIX)>
1181 <PUTUV T29 13 TEMP15 (TYPE FIX)>
1188 <FRAME '
\1aGET-CURRENT-TYPE>
1191 <CALL '
\1aGET-CURRENT-TYPE 1 = TEMP15>
1192 <EQUAL? TEMP15 'NO-RETURN - PHRASE26>
1194 <SET TY10 'BOOL-FALSE (TYPE ATOM)>
1197 <SET TY10 'BOOLEAN (TYPE ATOM)>
1200 <EMPL? TEM6 + PHRASE29>
1201 <RESTL TEM6 1 = TEMP15 (TYPE LIST)>
1202 <EMPL? TEMP15 + PHRASE29>
1203 <RESTL TEMP15 1 = TEMP15 (TYPE LIST)>
1204 <EMPL? TEMP15 - PHRASE29>
1207 <RESTL TEM6 1 = TEMP15 (TYPE LIST)>
1209 <NTHL TEMP15 1 = STACK (TYPE NODE)>
1211 <PUSH <OR <PRIMTYPE FRAME> PROCESS>>
1216 <RESTL TEM6 1 = TEMP15 (TYPE LIST)>
1218 <EMPL? TEMP15 - PHRASE31 (TYPE LIST)>
1220 <GEN-LVAL 'VERBOSE = TEMP15>
1221 <TYPE? TEMP15 <TYPE-CODE FALSE> + PHRASE33>
1223 <NTHUV TT7 1 = TEMP15 (TYPE FIX)>
1224 <VEQUAL? TEMP15 2 - PHRASE33 (TYPE FIX)>
1226 <FRAME '
\1aADDVMESS>
1228 <NTHUV TT7 4 = TEMP15>
1230 <CONS TEMP15 () = TEMP15>
1231 <CONS "External reference to LVAL: " TEMP15 = STACK>
1233 <CALL '
\1aADDVMESS 2>
1235 <PUTUV NOD4 1 43 (TYPE FIX)>
1237 <SET TY10 'BOOLEAN (TYPE ATOM)>
1240 <FRAME '
\1aCOMPILE-ERROR>
1241 <PUSH "Too many args to ASSIGNED?: ">
1244 <CALL '
\1aCOMPILE-ERROR 2>
1246 <FRAME '
\1aTYPE-OK?>
1251 <CALL '
\1aTYPE-OK? 2 = TEMP15>
1254 <END
\1aASSIGNED?-ANA>
1255 <COND (<GASSIGNED? ASSIGNED?-ANA> <PUTPROP ,ASSIGNED? ANALYSIS ,ASSIGNED?-ANA>)>
1257 " ANALYZE LVAL usage. Become either direct reference or PUSHJ"
1260 <GFCN
\1aLVAL-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
1261 <TEMP (TT8 %<>) P12 TEM6:LIST TEMP17 TEMP33 T311>
1263 <NTHUV NOD4 2 = P12>
1264 <NTHUV NOD4 5 = TEM6 (TYPE LIST)>
1265 <EMPL? TEM6 - PHRASE15 (TYPE LIST)>
1266 <FRAME '
\1aCOMPILE-ERROR>
1267 <PUSH "No arguments LVAL: ">
1270 <CALL '
\1aCOMPILE-ERROR 2 = TEMP17>
1274 <FRAME '
\1aSEGFLUSH>
1277 <CALL '
\1aSEGFLUSH 2 = TEMP17>
1278 <TYPE? TEMP17 <TYPE-CODE FALSE> - PHRASE96>
1279 <NTHUV NOD4 4 = TEMP17>
1280 <TYPE? TEMP17 <TYPE-CODE SYMTAB> - BOOL22>
1282 <NTHUV NOD4 4 = TT8 (TYPE SYMTAB)>
1286 <NTHL TEM6 1 = STACK (TYPE NODE)>
1289 <CALL '
\1aEANA 3 = TEMP17>
1290 <TYPE? TEMP17 <TYPE-CODE FALSE> + PHRASE19>
1292 <RESTL TEM6 1 = TEMP17 (TYPE LIST)>
1293 <EMPL? TEMP17 - PHRASE19 (TYPE LIST)>
1295 <NTHL TEM6 1 = TEMP17 (TYPE NODE)>
1296 <NTHUV TEMP17 1 = TEMP17 (TYPE FIX)>
1297 <VEQUAL? TEMP17 2 - PHRASE19 (TYPE FIX)>
1299 <NTHL TEM6 1 = TEMP17 (TYPE NODE)>
1300 <NTHUV TEMP17 3 = TEMP17>
1301 <EQUAL? TEMP17 'ATOM - PHRASE19>
1303 <FRAME '
\1aSRCH-SYM>
1304 <NTHL TEM6 1 = TEMP17 (TYPE NODE)>
1305 <NTHUV TEMP17 4 = STACK (TYPE ATOM)>
1307 <CALL '
\1aSRCH-SYM 1 = TT8>
1308 <VEQUAL? TT8 0 + PHRASE19>
1310 <GEN-LVAL 'WHON = TEMP17>
1311 <EQUAL? TEMP17 P12 - PHRASE28>
1313 <GEN-LVAL 'WHO = TEMP17>
1314 <CONS TT8 () = TEMP33>
1315 <CONS %<> TEMP33 = TEMP33>
1316 <CONS TEMP33 TEMP17 = TEMP33>
1318 <GEN-SET 'WHO TEMP33>
1321 <FRAME '
\1aGET-CURRENT-TYPE>
1323 <CALL '
\1aGET-CURRENT-TYPE 1 = TEMP33>
1324 <GEN-LVAL 'PRED = TEMP17>
1325 <EQUAL? TEMP17 P12 - PHRASE41>
1327 <FRAME '
\1aTYPE-OK?>
1330 <CALL '
\1aTYPE-OK? 2 = TEMP17>
1331 <TYPE? TEMP17 <TYPE-CODE FALSE> + PHRASE41>
1332 <FRAME '
\1aTYPE-OK?>
1335 <CALL '
\1aTYPE-OK? 2 = T311>
1336 <TYPE? T311 <TYPE-CODE FALSE> + PHRASE41>
1337 <FRAME '
\1aADD-TYPE-LIST>
1341 <GEN-LVAL 'TRUTH = STACK>
1343 <CALL '
\1aADD-TYPE-LIST 4 = P12>
1344 <GEN-SET 'TRUTH P12>
1346 <FRAME '
\1aADD-TYPE-LIST>
1350 <GEN-LVAL 'UNTRUTH = STACK>
1352 <CALL '
\1aADD-TYPE-LIST 4 = TEMP17>
1353 <GEN-SET 'UNTRUTH TEMP17>
1357 <GEN-LVAL 'PRED = TEMP17>
1358 <EQUAL? TEMP17 P12 + PHRASE59>
1360 <TYPE? P12 <TYPE-CODE NODE> - BOOL65>
1361 <NTHUV P12 1 = TEMP17 (TYPE FIX)>
1362 <VEQUAL? TEMP17 11 + PHRASE59 (TYPE FIX)>
1363 <VEQUAL? TEMP17 20 + PHRASE59 (TYPE FIX)>
1364 <VEQUAL? TEMP17 6 - BOOL65 (TYPE FIX)>
1366 <NTHUV P12 9 = TEMP17>
1368 <EQUAL? TEMP17 T311 + PHRASE59>
1370 <NTHUV P12 9 = T311>
1372 <GVAL 'NOT = TEMP17>
1373 <EQUAL? T311 TEMP17 + PHRASE59>
1376 <SET TEMP17 [BOOL-TRUE BOOL-FALSE BOOLEAN] (TYPE VECTOR)>
1377 <TYPE? TEMP33 <TYPE-CODE ATOM> - PHRASE59>
1378 <LOOP (TEMP33 VALUE) (TEMP17 LENGTH VALUE)>
1380 <NTHUV TEMP17 1 = T311>
1381 <VEQUAL? T311 TEMP33 + TAG68>
1383 <RESTUV TEMP17 1 = TEMP17 (TYPE VECTOR)>
1384 <EMPUV? TEMP17 - TAG69>
1387 <FRAME '
\1aSET-CURRENT-TYPE>
1389 <FRAME '
\1aGET-DECL>
1392 <CALL '
\1aGET-DECL 1 = TEMP33>
1394 <CALL '
\1aSET-CURRENT-TYPE 2>
1397 <NTHUV T311 4 = TEMP17 (TYPE FIX)>
1398 <VEQUAL? TEMP17 -1 + PHRASE19 (TYPE FIX)>
1400 <PUTUV NOD4 1 10 (TYPE FIX)>
1407 <NTHUV T311 13 = TEMP17 (TYPE FIX)>
1408 <ADD TEMP17 1 = TEMP17 (TYPE FIX)>
1409 <PUTUV T311 13 TEMP17 (TYPE FIX)>
1413 <FRAME '
\1aTYPE-OK?>
1418 <CALL '
\1aTYPE-OK? 2 = TEMP33>
1419 <TYPE? TEMP33 <TYPE-CODE FALSE> + PHRASE79>
1420 <FRAME '
\1aSET-CURRENT-TYPE>
1424 <CALL '
\1aSET-CURRENT-TYPE 2>
1429 <RESTL TEM6 1 = TEMP17 (TYPE LIST)>
1430 <EMPL? TEMP17 - PHRASE81 (TYPE LIST)>
1432 <GEN-LVAL 'VERBOSE = TEMP17>
1433 <TYPE? TEMP17 <TYPE-CODE FALSE> + PHRASE83>
1435 <NTHL TEM6 1 = TEMP17 (TYPE NODE)>
1436 <NTHUV TEMP17 1 = TEMP17 (TYPE FIX)>
1437 <VEQUAL? TEMP17 2 - PHRASE83 (TYPE FIX)>
1439 <FRAME '
\1aADDVMESS>
1441 <NTHL TEM6 1 = TEMP17 (TYPE NODE)>
1443 <NTHUV TEMP17 4 = TEMP17>
1444 <CONS TEMP17 () = TEMP17>
1445 <CONS "External variable being referenced: " TEMP17 = STACK>
1447 <CALL '
\1aADDVMESS 2>
1449 <PUTUV NOD4 1 31 (TYPE FIX)>
1450 <TYPE? TT8 <TYPE-CODE FALSE> + BOOL88>
1455 <TYPE? TT8 <TYPE-CODE FALSE> + PHRASE90>
1457 <FRAME '
\1aTYPE-OK?>
1458 <NTHUV T311 7 = STACK>
1462 <CALL '
\1aTYPE-OK? 2 = TEMP17>
1469 <EMPL? TEM6 + PHRASE93>
1470 <RESTL TEM6 1 = TEMP17 (TYPE LIST)>
1471 <EMPL? TEMP17 + PHRASE93>
1472 <RESTL TEMP17 1 = TEMP17 (TYPE LIST)>
1473 <EMPL? TEMP17 - PHRASE93>
1476 <RESTL TEM6 1 = TEMP17 (TYPE LIST)>
1478 <NTHL TEMP17 1 = STACK (TYPE NODE)>
1480 <PUSH <OR <PRIMTYPE FRAME> PROCESS>>
1482 <CALL '
\1aEANA 3 = TEMP17>
1483 <TYPE? TEMP17 <TYPE-CODE FALSE> + PHRASE93>
1487 <FRAME '
\1aCOMPILE-ERROR>
1488 <PUSH "Too many args to LVAL: ">
1491 <CALL '
\1aCOMPILE-ERROR 2 = TEMP17>
1496 <COND (<GASSIGNED? LVAL-ANA> <PUTPROP ,LVAL ANALYSIS ,LVAL-ANA>)>
1498 " SET-ANA analyze uses of SET."
1501 <GFCN
\1aSET-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
1502 <TEMP TEM6:LIST LN7:FIX (T2-9 'ATOM) TEMP18 NM11 TEMP3:LBIND TEMP24 TEMP30 N17:NODE>
1504 <NTHUV NOD4 5 = TEM6 (TYPE LIST)>
1505 <LENL TEM6 = LN7 (TYPE FIX)>
1506 <NTHUV NOD4 9 = TEMP18>
1507 <NTHUV TEMP18 2 = NM11>
1509 <GETS 'BIND = TEMP3 (TYPE LBIND)>
1510 <GEN-LVAL 'WHON = TEMP18>
1511 <BBIND 'WHON 'ANY 'FIX TEMP18>
1513 <GEN-LVAL 'PRED = TEMP18>
1514 <BBIND 'PRED 'ANY 'FIX TEMP18>
1517 <SET TEMP24 1 (TYPE FIX)>
1518 <NTHUV NOD4 8 = TEMP18>
1519 <TYPE TEMP18 = TEMP30>
1520 <AND TEMP30 7 = TEMP30>
1521 <VEQUAL? TEMP30 1 + TAG26>
1523 <LOOP (TEMP18 TYPE VALUE LENGTH) (TEMP24 VALUE)>
1526 <EMPTY? TEMP18 + TAG31 (DEAD-JUMP TEMP18)>
1527 <NTH1 TEMP18 = STACK>
1528 <REST1 TEMP18 = TEMP18>
1529 <ADD TEMP24 1 = TEMP24 (TYPE FIX)>
1532 <LIST TEMP24 = TEMP18 (TYPE LIST)>
1538 <VEQUAL? TEMP24 0 + TAG28 (DEAD-JUMP TEMP24)>
1540 <CONS TEMP30 TEMP18 = TEMP18 (TYPE LIST)>
1542 <SUB TEMP24 1 = TEMP24 (TYPE FIX)>
1545 <PUTUV NOD4 8 TEMP18>
1547 <FRAME '
\1aSEGFLUSH>
1550 <CALL '
\1aSEGFLUSH 2 = TEMP18>
1551 <TYPE? TEMP18 <TYPE-CODE FALSE> - PHRASE164 (DEAD-JUMP RTYP5 NOD4 N17 NM11 T2-9 LN7 TEM6) (DEAD-FALL TEMP18)>
1552 <EQUAL? NM11 'SET - BOOL37>
1553 <LESS? LN7 2 + BOOL36 (TYPE FIX) (DEAD-JUMP RTYP5 N17 NM11 T2-9 LN7 TEM6)>
1555 <EQUAL? NM11 'UNASSIGN - PHRASE35>
1556 <VEQUAL? LN7 0 - PHRASE35 (TYPE FIX) (DEAD-FALL RTYP5 N17 NM11 T2-9 LN7 TEM6)>
1558 <FRAME '
\1aCOMPILE-ERROR>
1559 <PUSH "Too few arguments to: ">
1562 <NTHUV NOD4 4 = TEMP30>
1563 <TYPE? TEMP30 <TYPE-CODE SYMTAB> - BOOL45>
1565 <NTHUV NOD4 4 = TEMP18 (TYPE SYMTAB)>
1569 <NTHL TEM6 1 = STACK (TYPE NODE)>
1572 <CALL '
\1aEANA 3 = TEMP30>
1573 <TYPE? TEMP30 <TYPE-CODE FALSE> + PHRASE42 (DEAD-JUMP N17 T2-9)>
1575 <EQUAL? NM11 'SET - BOOL49>
1576 <VEQUAL? LN7 2 + BOOL48 (TYPE FIX)>
1578 <EQUAL? NM11 'UNASSIGN - PHRASE42 (DEAD-JUMP N17 T2-9)>
1579 <VEQUAL? LN7 1 - PHRASE42 (TYPE FIX) (DEAD-JUMP N17 T2-9)>
1581 <NTHL TEM6 1 = TEMP30 (TYPE NODE)>
1582 <NTHUV TEMP30 1 = TEMP30 (TYPE FIX)>
1583 <VEQUAL? TEMP30 2 - PHRASE42 (TYPE FIX) (DEAD-JUMP N17 T2-9)>
1585 <FRAME '
\1aSRCH-SYM>
1586 <NTHL TEM6 1 = TEMP30 (TYPE NODE)>
1587 <NTHUV TEMP30 4 = STACK (TYPE ATOM)>
1589 <CALL '
\1aSRCH-SYM 1 = TEMP18>
1590 <VEQUAL? TEMP18 0 + PHRASE42 (DEAD-JUMP N17 TEMP18 T2-9)>
1592 <NTHUV NOD4 2 = TEMP30>
1593 <NTHR 'WHON 2 = TEMP24 (RECORD-TYPE ATOM) (TYPE LBIND)>
1594 <NTHR TEMP24 1 = TEMP24 (RECORD-TYPE LBIND)>
1595 <EQUAL? TEMP30 TEMP24 - PHRASE55>
1596 <DEAD TEMP30 TEMP24>
1597 <NTHR 'WHON 2 = TEMP24 (RECORD-TYPE ATOM) (TYPE LBIND)>
1598 <PUTR TEMP24 1 NOD4 (RECORD-TYPE LBIND)>
1600 <GEN-LVAL 'WHO = TEMP24>
1601 <CONS TEMP18 () = TEMP30>
1602 <CONS 'T TEMP30 = TEMP30>
1603 <CONS TEMP30 TEMP24 = TEMP24>
1605 <GEN-SET 'WHO TEMP24>
1608 <NTHUV NOD4 2 = TEMP24>
1609 <NTHR 'PRED 2 = TEMP30 (RECORD-TYPE ATOM) (TYPE LBIND)>
1610 <NTHR TEMP30 1 = TEMP30 (RECORD-TYPE LBIND)>
1611 <EQUAL? TEMP24 TEMP30 - PHRASE67>
1612 <DEAD TEMP24 TEMP30>
1613 <NTHR 'PRED 2 = TEMP30 (RECORD-TYPE ATOM) (TYPE LBIND)>
1614 <PUTR TEMP30 1 NOD4 (RECORD-TYPE LBIND)>
1617 <EQUAL? NM11 'SET - PHRASE74 (DEAD-JUMP LN7 TEM6) (DEAD-FALL N17 T2-9)>
1619 <RESTL TEM6 1 = TEMP30 (TYPE LIST)>
1620 <NTHL TEMP30 1 = N17 (TYPE NODE)>
1623 <NTHUV TEMP18 7 = STACK>
1624 <CALL '
\1aANA 2 = T2-9>
1625 <TYPE? T2-9 <TYPE-CODE FALSE> - PHRASE74 (DEAD-JUMP LN7 TEM6)>
1626 <FRAME '
\1aCOMPILE-ERROR>
1627 <PUSH "Decl violation: ">
1628 <NTHUV TEMP18 2 = STACK (TYPE ATOM)>
1630 <CALL '
\1aCOMPILE-ERROR 3 = TEMP30>
1631 <TYPE? TEMP30 <TYPE-CODE FALSE> + PHRASE42 (DEAD-JUMP N17 TEMP18 T2-9) (DEAD-FALL LN7 TEM6)>
1634 <PUTUV TEMP18 6 %<>>
1635 <NTHUV TEMP18 13 = TEMP30 (TYPE FIX)>
1636 <ADD TEMP30 1 = TEMP30 (TYPE FIX)>
1637 <PUTUV TEMP18 13 TEMP30 (TYPE FIX)>
1639 <NTHUV TEMP18 17 = TEMP24>
1640 <TYPE? TEMP24 <TYPE-CODE FALSE> - BOOL79 (DEAD-FALL TEMP24)>
1641 <SET TEMP24 'ANY (TYPE ATOM)>
1643 <NTHUV TEMP18 4 = TEMP30 (TYPE FIX)>
1644 <VEQUAL? TEMP30 -1 - PHRASE81 (TYPE FIX)>
1646 <GEN-LVAL 'VERBOSE = TEMP30>
1647 <TYPE? TEMP30 <TYPE-CODE FALSE> + PHRASE81>
1649 <FRAME '
\1aADDVMESS>
1651 <NTHUV TEMP18 2 = TEMP30 (TYPE ATOM)>
1652 <CONS TEMP30 () = TEMP30>
1653 <CONS "External variable being SET (or UNASSIGNed): " TEMP30 = STACK>
1655 <CALL '
\1aADDVMESS 2>
1657 <EQUAL? NM11 'SET - PHRASE89>
1658 <FRAME '
\1aTYPE-AND>
1661 <CALL '
\1aTYPE-AND 2 = TEMP30>
1662 <TYPE? TEMP30 <TYPE-CODE FALSE> - BOOL90 (DEAD-JUMP T2-9) (DEAD-FALL TEMP30)>
1669 <EQUAL? NM11 'SET - PHRASE94 (DEAD-JUMP TEMP24)>
1670 <FRAME '
\1aTYPESAME>
1674 <CALL '
\1aTYPESAME 2 = TEMP24>
1675 <TYPE? TEMP24 <TYPE-CODE FALSE> + PHRASE94 (DEAD-JUMP TEMP24)>
1676 <CONS %<> () = TEMP30>
1677 <CONS TEMP24 TEMP30 = TEMP30>
1681 <CONS %<> () = TEMP30>
1682 <CONS %<> TEMP30 = TEMP30>
1684 <PUTUV NOD4 7 TEMP30 (TYPE LIST)>
1686 <NTHUV TEMP18 4 = TEMP30 (TYPE FIX)>
1687 <VEQUAL? TEMP30 -1 - PHRASE98 (TYPE FIX)>
1689 <SET TEMP30 32 (TYPE FIX)>
1692 <SET TEMP30 11 (TYPE FIX)>
1694 <PUTUV NOD4 1 TEMP30 (TYPE FIX)>
1696 <PUTUV NOD4 4 TEMP18>
1697 <FRAME '
\1aMAKE-DEAD>
1700 <CALL '
\1aMAKE-DEAD 2>
1701 <EQUAL? NM11 'SET - PHRASE108 (DEAD-JUMP N17)>
1702 <NTHUV N17 1 = TEMP30 (TYPE FIX)>
1703 <VEQUAL? TEMP30 2 - PHRASE108 (TYPE FIX) (DEAD-JUMP N17)>
1705 <NTHUV N17 4 = TEMP30>
1706 <EQUAL? TEMP30 %<> - PHRASE107 (DEAD-FALL N17 T2-9)>
1708 <SET T2-9 'BOOL-FALSE (TYPE ATOM)>
1711 <NTHUV N17 4 = TEMP30>
1713 <EQUAL? TEMP30 'T - PHRASE108 (DEAD-FALL T2-9)>
1715 <SET T2-9 'BOOL-TRUE (TYPE ATOM)>
1717 <FRAME '
\1aSET-CURRENT-TYPE>
1719 <EQUAL? NM11 'SET - PHRASE111>
1723 <SET TEMP30 'NO-RETURN (TYPE ATOM)>
1727 <CALL '
\1aSET-CURRENT-TYPE 2>
1728 <PUTUV TEMP18 15 'T>
1729 <EQUAL? NM11 'SET - PHRASE114 (DEAD-JUMP NOD4 TEMP18)>
1731 <NTHR 'PRED 2 = TEMP30 (RECORD-TYPE ATOM) (TYPE LBIND)>
1732 <NTHR TEMP30 1 = TEMP30 (RECORD-TYPE LBIND)>
1733 <EQUAL? TEMP30 NOD4 - PHRASE114 (DEAD-JUMP TEMP18)>
1735 <FRAME '
\1aTYPE-OK?>
1738 <CALL '
\1aTYPE-OK? 2 = TEMP24>
1739 <TYPE? TEMP24 <TYPE-CODE FALSE> + PHRASE114 (DEAD-JUMP TEMP24 TEMP18)>
1740 <FRAME '
\1aTYPE-OK?>
1743 <CALL '
\1aTYPE-OK? 2 = NM11>
1744 <TYPE? NM11 <TYPE-CODE FALSE> + PHRASE114 (DEAD-JUMP TEMP24 NM11 TEMP18)>
1745 <FRAME '
\1aADD-TYPE-LIST>
1749 <GEN-LVAL 'TRUTH = STACK>
1751 <CALL '
\1aADD-TYPE-LIST 4 = TEMP24>
1752 <GEN-SET 'TRUTH TEMP24>
1754 <FRAME '
\1aADD-TYPE-LIST>
1759 <GEN-LVAL 'UNTRUTH = STACK>
1761 <CALL '
\1aADD-TYPE-LIST 4 = NM11>
1762 <GEN-SET 'UNTRUTH NM11>
1765 <FRAME '
\1aTYPE-OK?>
1770 <EQUAL? NM11 'SET - PHRASE136 (DEAD-JUMP RTYP5)>
1771 <LESS? LN7 4 - PHRASE136 (TYPE FIX) (DEAD-JUMP RTYP5) (DEAD-FALL NM11)>
1773 <RESTL TEM6 1 = NM11 (TYPE LIST)>
1774 <NTHL NM11 1 = STACK (TYPE NODE)>
1777 <CALL '
\1aANA 2 = TEMP18>
1778 <VEQUAL? LN7 2 - PHRASE140 (TYPE FIX) (DEAD-JUMP NOD4)>
1780 <GEN-LVAL 'VERBOSE = NM11>
1781 <TYPE? NM11 <TYPE-CODE FALSE> + PHRASE142 (DEAD-JUMP TEM6)>
1783 <NTHL TEM6 1 = NM11 (TYPE NODE)>
1784 <NTHUV NM11 1 = NM11 (TYPE FIX)>
1785 <VEQUAL? NM11 2 - PHRASE142 (TYPE FIX) (DEAD-JUMP TEM6)>
1787 <FRAME '
\1aADDVMESS>
1789 <NTHL TEM6 1 = NM11 (TYPE NODE)>
1791 <NTHUV NM11 4 = NM11>
1792 <CONS NM11 () = NM11>
1793 <CONS "External variable being SET: " NM11 = STACK>
1795 <CALL '
\1aADDVMESS 2>
1797 <PUTUV NOD4 1 32 (TYPE FIX)>
1802 <RESTL TEM6 1 = NM11 (TYPE LIST)>
1804 <RESTL NM11 1 = NM11 (TYPE LIST)>
1805 <NTHL NM11 1 = STACK (TYPE NODE)>
1807 <PUSH <OR <PRIMTYPE FRAME> PROCESS>>
1811 <FRAME '
\1aTYPE-OK?>
1817 <CALL '
\1aTYPE-OK? 2 = TEMP18>
1820 <EQUAL? NM11 'UNASSIGN - PHRASE150 (DEAD-JUMP LN7 TEM6)>
1822 <LESS? LN7 3 - PHRASE150 (TYPE FIX) (DEAD-JUMP LN7 TEM6)>
1823 <VEQUAL? LN7 1 - PHRASE153 (TYPE FIX) (DEAD-JUMP NOD4)>
1825 <GEN-LVAL 'VERBOSE = NM11>
1826 <TYPE? NM11 <TYPE-CODE FALSE> + PHRASE157 (DEAD-JUMP TEM6)>
1828 <NTHL TEM6 1 = NM11 (TYPE NODE)>
1829 <NTHUV NM11 1 = NM11 (TYPE FIX)>
1830 <VEQUAL? NM11 2 - PHRASE157 (TYPE FIX) (DEAD-JUMP TEM6)>
1832 <FRAME '
\1aADDVMESS>
1834 <NTHL TEM6 1 = NM11 (TYPE NODE)>
1836 <NTHUV NM11 4 = NM11>
1837 <CONS NM11 () = NM11>
1838 <CONS "External variable being UNASSIGNed: " NM11 = STACK>
1840 <CALL '
\1aADDVMESS 2>
1842 <PUTUV NOD4 1 32 (TYPE FIX)>
1848 <RESTL TEM6 1 = NM11 (TYPE LIST)>
1850 <NTHL NM11 1 = STACK (TYPE NODE)>
1852 <PUSH <OR <PRIMTYPE FRAME> PROCESS>>
1854 <CALL '
\1aEANA 3 = TEMP18>
1857 <FRAME '
\1aCOMPILE-ERROR>
1858 <PUSH "Too many args to SET: ">
1862 <CALL '
\1aCOMPILE-ERROR 2 = TEMP18>
1872 <GFCN
\1aMULTI-SET-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
1873 <TEMP (K6 %<>) (LN7 0) TEMP3:LBIND TEMP18 L-OF-A12 TEMP30 TEMP43 ATM46 N47 NT48 TEMP87>
1875 <NTHUV NOD4 5 = K6 (TYPE LIST)>
1876 <GETS 'BIND = TEMP3 (TYPE LBIND)>
1877 <GEN-LVAL 'WHON = TEMP18>
1878 <BBIND 'WHON 'ANY 'FIX TEMP18>
1880 <GEN-LVAL 'PRED = TEMP18>
1881 <BBIND 'PRED 'ANY 'FIX TEMP18>
1883 <NTHL K6 1 = LN7 (TYPE NODE)>
1884 <NTHUV LN7 4 = L-OF-A12 (TYPE LIST)>
1887 <SET LN7 1 (TYPE FIX)>
1888 <NTHUV NOD4 8 = TEMP18>
1889 <TYPE TEMP18 = TEMP30>
1890 <AND TEMP30 7 = TEMP30>
1891 <VEQUAL? TEMP30 1 + TAG26>
1893 <LOOP (TEMP18 TYPE VALUE LENGTH) (LN7 VALUE)>
1896 <EMPTY? TEMP18 + TAG31>
1897 <NTH1 TEMP18 = STACK>
1898 <REST1 TEMP18 = TEMP18>
1899 <ADD LN7 1 = LN7 (TYPE FIX)>
1902 <LIST LN7 = TEMP18 (TYPE LIST)>
1908 <VEQUAL? LN7 0 + TAG28>
1910 <CONS TEMP30 TEMP18 = TEMP18 (TYPE LIST)>
1912 <SUB LN7 1 = LN7 (TYPE FIX)>
1915 <PUTUV NOD4 8 TEMP18>
1917 <SET TEMP30 () (TYPE LIST)>
1918 <SET LN7 () (TYPE LIST)>
1919 <SET TEMP18 L-OF-A12 (TYPE LIST)>
1921 <RESTL K6 1 = TEMP43 (TYPE LIST)>
1926 <EMPL? TEMP18 + MAPAP37>
1927 <EMPL? TEMP43 + MAPAP37>
1929 <SET L-OF-A12 TEMP43>
1931 <NTHL L-OF-A12 1 = N47 (TYPE NODE)>
1932 <NTHUV N47 1 = NT48 (TYPE FIX)>
1933 <VEQUAL? NT48 3 + BOOL52 (TYPE FIX)>
1934 <VEQUAL? NT48 68 - PHRASE51 (TYPE FIX)>
1937 <FRAME '
\1aMULTI-SET-SEG>
1943 <CALL '
\1aMULTI-SET-SEG 3 = K6>
1947 <EMPL? K6 + MAPAP37>
1949 <CONS NT48 () = NT48 (TYPE LIST)>
1950 <EMPL? TEMP30 - TAG61>
1951 <SET TEMP30 NT48 (TYPE LIST)>
1957 <SET LN7 NT48 (TYPE LIST)>
1959 <RESTL K6 1 = K6 (TYPE LIST)>
1962 <RESTL K6 1 = NT48 (TYPE LIST)>
1963 <EMPL? NT48 - PHRASE65 (TYPE LIST)>
1965 <RESTL L-OF-A12 1 = NT48 (TYPE LIST)>
1966 <EMPL? NT48 + PHRASE65 (TYPE LIST)>
1968 <FRAME '
\1aCOMPILE-ERROR>
1969 <PUSH "Too many values for vars: ">
1971 <CALL '
\1aCOMPILE-ERROR 2>
1974 <RESTL K6 1 = NT48 (TYPE LIST)>
1975 <EMPL? NT48 + PHRASE68 (TYPE LIST)>
1977 <RESTL L-OF-A12 1 = NT48 (TYPE LIST)>
1979 <EMPL? NT48 - PHRASE68 (TYPE LIST)>
1981 <FRAME '
\1aCOMPILE-ERROR>
1982 <PUSH "Too few values for vars: ">
1984 <CALL '
\1aCOMPILE-ERROR 2>
1986 <SET L-OF-A12 'ANY (TYPE ATOM)>
1987 <TYPE? ATM46 <TYPE-CODE ATOM> - PHRASE72>
1988 <FRAME '
\1aSRCH-SYM>
1990 <CALL '
\1aSRCH-SYM 1 = NT48>
1991 <VEQUAL? NT48 0 + PHRASE81>
1996 <TYPE? ATM46 <TYPE-CODE ADECL> - PHRASE76>
1997 <FRAME '
\1aSRCH-SYM>
1998 <NTHUV ATM46 1 = STACK (TYPE ATOM)>
1999 <CALL '
\1aSRCH-SYM 1 = NT48>
2000 <VEQUAL? NT48 0 + PHRASE78>
2001 <NTHUV ATM46 2 = L-OF-A12>
2007 <NTHUV ATM46 2 = L-OF-A12>
2008 <NTHUV ATM46 1 = ATM46>
2011 <TYPE? ATM46 <TYPE-CODE LIST> - PHRASE81>
2012 <NTHL ATM46 1 = L-OF-A12>
2013 <RESTL ATM46 1 = NT48 (TYPE LIST)>
2015 <NTHL NT48 1 = ATM46>
2018 <TYPE? ATM46 <TYPE-CODE SYMTAB> - PHRASE83>
2019 <NTHUV NOD4 2 = NT48>
2020 <NTHR 'WHON 2 = TEMP87 (RECORD-TYPE ATOM) (TYPE LBIND)>
2021 <NTHR TEMP87 1 = TEMP87 (RECORD-TYPE LBIND)>
2022 <EQUAL? NT48 TEMP87 - PHRASE85>
2024 <RESTL K6 1 = TEMP87 (TYPE LIST)>
2025 <EMPL? TEMP87 - PHRASE85 (TYPE LIST)>
2027 <NTHR 'WHON 2 = TEMP87 (RECORD-TYPE ATOM) (TYPE LBIND)>
2028 <PUTR TEMP87 1 NOD4 (RECORD-TYPE LBIND)>
2030 <GEN-LVAL 'WHO = TEMP87>
2031 <CONS ATM46 () = NT48>
2032 <CONS 'T NT48 = NT48>
2033 <CONS NT48 TEMP87 = TEMP87>
2035 <GEN-SET 'WHO TEMP87>
2038 <NTHUV NOD4 2 = TEMP87>
2039 <NTHR 'PRED 2 = NT48 (RECORD-TYPE ATOM) (TYPE LBIND)>
2040 <NTHR NT48 1 = NT48 (RECORD-TYPE LBIND)>
2041 <EQUAL? TEMP87 NT48 - PHRASE97>
2043 <RESTL K6 1 = NT48 (TYPE LIST)>
2045 <EMPL? NT48 - PHRASE97 (TYPE LIST)>
2047 <NTHR 'PRED 2 = NT48 (RECORD-TYPE ATOM) (TYPE LBIND)>
2048 <PUTR NT48 1 NOD4 (RECORD-TYPE LBIND)>
2051 <FRAME '
\1aTYPE-OK?>
2053 <NTHUV ATM46 7 = STACK>
2054 <CALL '
\1aTYPE-OK? 2 = TEMP87>
2055 <TYPE? TEMP87 <TYPE-CODE FALSE> + BOOL105>
2060 <CALL '
\1aANA 2 = TEMP87>
2061 <TYPE? TEMP87 <TYPE-CODE FALSE> - PHRASE104>
2063 <FRAME '
\1aCOMPILE-ERROR>
2064 <PUSH "Decl violation: ">
2067 <PUSH %<OFFSET 2 SYMTAB>>
2068 <CALL '
\1aNTH 2 = STACK>
2070 <CALL '
\1aCOMPILE-ERROR 3>
2073 <NTHUV ATM46 13 = NT48 (TYPE FIX)>
2074 <ADD NT48 1 = NT48 (TYPE FIX)>
2075 <PUTUV ATM46 13 NT48 (TYPE FIX)>
2077 <NTHUV N47 1 = NT48 (TYPE FIX)>
2078 <VEQUAL? NT48 2 - PHRASE114 (TYPE FIX)>
2080 <NTHUV N47 4 = NT48>
2081 <EQUAL? NT48 %<> - PHRASE113>
2083 <SET TEMP87 'BOOL-FALSE (TYPE ATOM)>
2086 <NTHUV N47 4 = NT48>
2088 <EQUAL? NT48 'T - PHRASE114>
2090 <SET TEMP87 'BOOL-TRUE (TYPE ATOM)>
2092 <FRAME '
\1aSET-CURRENT-TYPE>
2095 <CALL '
\1aSET-CURRENT-TYPE 2>
2097 <NTHR 'PRED 2 = NT48 (RECORD-TYPE ATOM) (TYPE LBIND)>
2098 <NTHR NT48 1 = NT48 (RECORD-TYPE LBIND)>
2099 <EQUAL? NT48 NOD4 - PHRASE134>
2101 <FRAME '
\1aTYPE-OK?>
2104 <CALL '
\1aTYPE-OK? 2 = N47>
2105 <TYPE? N47 <TYPE-CODE FALSE> + PHRASE134>
2106 <FRAME '
\1aTYPE-OK?>
2110 <CALL '
\1aTYPE-OK? 2 = NT48>
2111 <TYPE? NT48 <TYPE-CODE FALSE> + PHRASE134>
2112 <FRAME '
\1aADD-TYPE-LIST>
2116 <GEN-LVAL 'TRUTH = STACK>
2118 <CALL '
\1aADD-TYPE-LIST 4 = TEMP87>
2119 <GEN-SET 'TRUTH TEMP87>
2121 <FRAME '
\1aADD-TYPE-LIST>
2125 <GEN-LVAL 'UNTRUTH = STACK>
2127 <CALL '
\1aADD-TYPE-LIST 4 = N47>
2128 <GEN-SET 'UNTRUTH N47>
2138 <GEN-LVAL 'VERBOSE = N47>
2139 <TYPE? N47 <TYPE-CODE FALSE> + PHRASE137>
2141 <TYPE? ATM46 <TYPE-CODE SYMTAB> - BOOL142>
2142 <NTHUV ATM46 4 = N47 (TYPE FIX)>
2143 <VEQUAL? N47 -1 - BOOL142 (TYPE FIX)>
2145 <NTHUV ATM46 2 = ATM46 (TYPE ATOM)>
2148 <TYPE? ATM46 <TYPE-CODE ATOM> - PHRASE137>
2150 <FRAME '
\1aADDVMESS>
2152 <CONS ATM46 () = N47>
2153 <CONS "External variable being SET: " N47 = STACK>
2155 <CALL '
\1aADDVMESS 2>
2157 <CONS L-OF-A12 () = N47>
2159 <CONS ATM46 N47 = N47>
2161 <CONS N47 () = N47 (TYPE LIST)>
2162 <EMPL? TEMP30 - TAG146>
2163 <SET TEMP30 N47 (TYPE LIST)>
2169 <SET LN7 N47 (TYPE LIST)>
2171 <RESTL TEMP18 1 = TEMP18 (TYPE LIST)>
2172 <RESTL TEMP43 1 = TEMP43 (TYPE LIST)>
2175 <PUTUV NOD4 4 TEMP30>
2176 <PUTUV NOD4 1 103 (TYPE FIX)>
2178 <FRAME '
\1aTYPE-OK?>
2182 <LOOP (TEMP43 VALUE)>
2184 <RESTL TEMP43 1 = TEMP18 (TYPE LIST)>
2185 <EMPL? TEMP18 + TAG151>
2190 <NTHL TEMP43 1 = STACK>
2193 <CALL '
\1aNTH 2 = STACK>
2196 <CALL '
\1aTYPE-OK? 2 = TEMP18>
2202 <END
\1aMULTI-SET-ANA>
2204 <GFCN
\1aMULTI-SET-SEG ("VALUE" LIST NODE LIST <LIST [REST NODE]>) NOD4 AL5 NL6>
2205 <TEMP (MIN-LN7:FIX 0) (MAX-LN8:FIX 0) LN9:FIX (COMPOSIT-DECL10 'NO-RETURN) (COMPOSIT-TYPE11 'NO-RETURN) L-OF-SY12 TEMP20 TEMP19:LIST ATM24 TY26 SY25>
2207 <LENL AL5 = LN9 (TYPE FIX)>
2208 <SET L-OF-SY12 () (TYPE LIST)>
2209 <SET TEMP20 () (TYPE LIST)>
2210 <SET TEMP19 AL5 (TYPE LIST)>
2215 <EMPL? TEMP19 + MAPAP17>
2216 <NTHL TEMP19 1 = ATM24>
2217 <SET TY26 'ANY (TYPE ATOM)>
2218 <TYPE? ATM24 <TYPE-CODE ATOM> - PHRASE28>
2219 <FRAME '
\1aSRCH-SYM>
2221 <CALL '
\1aSRCH-SYM 1 = SY25>
2222 <VEQUAL? SY25 0 + PHRASE37>
2227 <TYPE? ATM24 <TYPE-CODE ADECL> - PHRASE32>
2228 <FRAME '
\1aSRCH-SYM>
2229 <NTHUV ATM24 1 = STACK (TYPE ATOM)>
2230 <CALL '
\1aSRCH-SYM 1 = SY25>
2231 <VEQUAL? SY25 0 + PHRASE34>
2232 <NTHUV ATM24 2 = TY26>
2238 <NTHUV ATM24 2 = TY26>
2239 <NTHUV ATM24 1 = ATM24>
2242 <TYPE? ATM24 <TYPE-CODE LIST> - PHRASE37>
2243 <NTHL ATM24 1 = TY26>
2244 <RESTL ATM24 1 = SY25 (TYPE LIST)>
2246 <NTHL SY25 1 = ATM24>
2249 <TYPE? ATM24 <TYPE-CODE SYMTAB> - PHRASE40>
2250 <FRAME '
\1aTYPE-AND>
2251 <NTHUV ATM24 7 = STACK>
2254 <CALL '
\1aTYPE-AND 2 = TY26>
2255 <TYPE? TY26 <TYPE-CODE FALSE> - PHRASE42>
2256 <FRAME '
\1aCOMPILE-ERROR>
2257 <PUSH "ADECL and DECL mismatch: ">
2258 <NTHUV ATM24 2 = STACK (TYPE ATOM)>
2260 <CALL '
\1aCOMPILE-ERROR 3>
2262 <FRAME '
\1aTYPE-MERGE>
2263 <PUSH COMPOSIT-DECL10>
2264 <DEAD COMPOSIT-DECL10>
2266 <CALL '
\1aTYPE-MERGE 2 = COMPOSIT-DECL10>
2268 <NTHUV ATM24 13 = SY25 (TYPE FIX)>
2269 <ADD SY25 1 = SY25 (TYPE FIX)>
2270 <PUTUV ATM24 13 SY25 (TYPE FIX)>
2274 <CONS TY26 () = SY25>
2276 <CONS ATM24 SY25 = SY25>
2278 <CONS SY25 () = SY25 (TYPE LIST)>
2279 <EMPL? L-OF-SY12 - TAG46>
2280 <SET L-OF-SY12 SY25 (TYPE LIST)>
2283 <PUTREST TEMP20 SY25>
2286 <SET TEMP20 SY25 (TYPE LIST)>
2288 <RESTL TEMP19 1 = TEMP19 (TYPE LIST)>
2291 <SET TEMP19 NL6 (TYPE LIST)>
2296 <EMPL? TEMP19 + MAPAP52>
2297 <NTHL TEMP19 1 = ATM24>
2298 <NTHUV ATM24 1 = TEMP20 (TYPE FIX)>
2299 <VEQUAL? TEMP20 68 + BOOL63 (TYPE FIX)>
2300 <VEQUAL? TEMP20 3 - PHRASE62 (TYPE FIX)>
2304 <NTHUV ATM24 5 = TEMP20 (TYPE LIST)>
2306 <NTHL TEMP20 1 = ATM24 (TYPE NODE)>
2310 <PUSH <OR MULTI STRUCTURED>>
2312 <CALL '
\1aEANA 3 = ATM24>
2313 <EQUAL? COMPOSIT-DECL10 'ANY + PHRASE67>
2314 <FRAME '
\1aTYPE-OK?>
2315 <FRAME '
\1aGET-ELE-TYPE>
2318 <CALL '
\1aGET-ELE-TYPE 2 = STACK>
2319 <PUSH COMPOSIT-DECL10>
2320 <CALL '
\1aTYPE-OK? 2 = TEMP20>
2321 <TYPE? TEMP20 <TYPE-CODE FALSE> - PHRASE73>
2322 <FRAME '
\1aCOMPILE-ERROR>
2323 <PUSH "Decl violation: ">
2325 <CALL '
\1aCOMPILE-ERROR 2>
2328 <FRAME '
\1aGET-ELE-TYPE>
2331 <CALL '
\1aGET-ELE-TYPE 2 = TEMP20>
2333 <FRAME '
\1aTYPE-MERGE>
2336 <PUSH COMPOSIT-TYPE11>
2337 <DEAD COMPOSIT-TYPE11>
2338 <CALL '
\1aTYPE-MERGE 2 = COMPOSIT-TYPE11>
2339 <SET TEMP20 MAX-LN8>
2343 <CALL '
\1aMAXL 1 = TY26>
2344 <ADD TEMP20 TY26 = TEMP20 (TYPE FIX)>
2346 <LESS? TEMP20 65535 - TAG79>
2347 <SET TEMP20 65535 (TYPE FIX)>
2349 <SET MAX-LN8 TEMP20>
2356 <CALL '
\1aMINL 1 = TEMP20>
2357 <ADD TY26 TEMP20 = MIN-LN7 (TYPE FIX)>
2361 <FRAME '
\1aTYPE-MERGE>
2365 <PUSH COMPOSIT-DECL10>
2367 <CALL '
\1aEANA 3 = STACK>
2368 <PUSH COMPOSIT-TYPE11>
2369 <DEAD COMPOSIT-TYPE11>
2370 <CALL '
\1aTYPE-MERGE 2 = COMPOSIT-TYPE11>
2371 <ADD MAX-LN8 1 = TEMP20 (TYPE FIX)>
2373 <LESS? TEMP20 65535 - TAG84>
2374 <SET TEMP20 65535 (TYPE FIX)>
2376 <SET MAX-LN8 TEMP20>
2378 <ADD MIN-LN7 1 = MIN-LN7 (TYPE FIX)>
2380 <RESTL TEMP19 1 = TEMP19 (TYPE LIST)>
2383 <SET TEMP19 L-OF-SY12 (TYPE LIST)>
2387 <EMPL? TEMP19 + MAPAP89>
2388 <NTHL TEMP19 1 = COMPOSIT-DECL10>
2389 <NTH1 COMPOSIT-DECL10 = COMPOSIT-DECL10>
2390 <TYPE? COMPOSIT-DECL10 <TYPE-CODE SYMTAB> - PHRASE94>
2391 <FRAME '
\1aSET-CURRENT-TYPE>
2392 <PUSH COMPOSIT-DECL10>
2393 <FRAME '
\1aTYPE-AND>
2394 <PUSH COMPOSIT-TYPE11>
2395 <NTHUV COMPOSIT-DECL10 7 = STACK>
2396 <DEAD COMPOSIT-DECL10>
2397 <CALL '
\1aTYPE-AND 2 = STACK>
2398 <CALL '
\1aSET-CURRENT-TYPE 2>
2400 <RESTL TEMP19 1 = TEMP19 (TYPE LIST)>
2403 <GRTR? MIN-LN7 LN9 - PHRASE98 (TYPE FIX)>
2405 <FRAME '
\1aCOMPILE-ERROR>
2406 <PUSH "Too many values: ">
2409 <CALL '
\1aCOMPILE-ERROR 2>
2413 <LESS? MAX-LN8 LN9 - PHRASE100 (TYPE FIX)>
2415 <FRAME '
\1aCOMPILE-ERROR>
2416 <PUSH "Too few values: ">
2419 <CALL '
\1aCOMPILE-ERROR 2>
2423 <END
\1aMULTI-SET-SEG>
2424 <COND (<GASSIGNED? SET-ANA> <PUTPROP ,SET ANALYSIS ,SET-ANA> <PUTPROP ,UNASSIGN ANALYSIS ,SET-ANA>)>
2427 <GFCN
\1aMUNG-L-D-STATE ("VALUE" ATOM <OR VECTOR SYMTAB>) V4>
2433 <TYPE? V4 <TYPE-CODE VECTOR> - PHRASE10>
2436 <PUTUV V4 16 () (TYPE LIST)>
2439 <END
\1aMUNG-L-D-STATE>
2441 <GFCN
\1aMRESTORE-L-D-STATE ("VALUE" ATOM ANY ANY ANY) L14 L25 V6>
2444 <FRAME '
\1aRESTORE-L-D-STATE>
2448 <CALL '
\1aRESTORE-L-D-STATE 2>
2449 <FRAME '
\1aRESTORE-L-D-STATE>
2455 <CALL '
\1aRESTORE-L-D-STATE 3 = TEMP9>
2458 <END
\1aMRESTORE-L-D-STATE>
2460 <GFCN
\1aFREST-L-D-STATE ("VALUE" <OR FALSE SYMTAB> LIST) L4>
2461 <TEMP TEMP14 TEMP11:LIST LL16:LIST>
2463 <SET TEMP14 %<> (TYPE FALSE)>
2464 <SET TEMP11 L4 (TYPE LIST)>
2469 <EMPL? TEMP11 + MAPAP9>
2470 <NTHL TEMP11 1 = LL16>
2471 <RESTL LL16 1 = TEMP14 (TYPE LIST)>
2472 <NTHL TEMP14 1 = TEMP14 (TYPE LIST)>
2473 <NTHL TEMP14 1 = TEMP14 (TYPE NODE)>
2474 <NTHUV TEMP14 7 = TEMP14 (TYPE LIST)>
2475 <RESTL TEMP14 1 = TEMP14 (TYPE LIST)>
2476 <NTHL TEMP14 1 = TEMP14>
2477 <TYPE? TEMP14 <TYPE-CODE FALSE> + TAG20>
2479 <SET TEMP14 %<> (TYPE FALSE)>
2482 <NTHL LL16 1 = TEMP14 (TYPE SYMTAB)>
2483 <RESTL LL16 1 = LL16 (TYPE LIST)>
2484 <NTHL LL16 1 = LL16 (TYPE LIST)>
2485 <PUTUV TEMP14 16 LL16 (TYPE LIST)>
2488 <RESTL TEMP11 1 = TEMP11 (TYPE LIST)>
2493 <END
\1aFREST-L-D-STATE>
2495 <GFCN
\1aRESTORE-L-D-STATE ("VALUE" ATOM <LIST [REST <LIST SYMTAB LIST>]> <OR SYMTAB VECTOR> "OPTIONAL" ANY) L6 V7 FLG8>
2496 <OPT-DISPATCH 2 %<> OPT4 OPT5>
2500 <TEMP DL13 S23:SYMTAB TEMP45 TEMP43 TEMP47 N48 TEMP51>
2502 <TYPE? FLG8 <TYPE-CODE FALSE> - EXIT11>
2506 <TYPE? V7 <TYPE-CODE VECTOR> + EXIT11>
2507 <NTHUV V7 16 = DL13 (TYPE LIST)>
2508 <EMPL? DL13 + PHRASE18 (TYPE LIST)>
2509 <NTHL DL13 1 = DL13 (TYPE NODE)>
2510 <NTHUV DL13 7 = DL13 (TYPE LIST)>
2511 <RESTL DL13 1 = DL13 (TYPE LIST)>
2512 <NTHL DL13 1 = DL13>
2513 <TYPE? DL13 <TYPE-CODE FALSE> - PHRASE18>
2515 <PUTUV V7 16 () (TYPE LIST)>
2523 <EMPL? L6 - PHRASE27 (TYPE LIST)>
2526 <NTHL L6 1 = DL13 (TYPE LIST)>
2527 <NTHL DL13 1 = S23 (TYPE SYMTAB)>
2529 <TYPE? FLG8 <TYPE-CODE FALSE> + EXIT30>
2533 <EQUAL? S23 V7 + EXIT30>
2534 <TYPE? V7 <TYPE-CODE VECTOR> + EXIT30>
2536 <SET TEMP45 () (TYPE LIST)>
2537 <SET TEMP43 () (TYPE LIST)>
2538 <NTHUV V7 16 = TEMP47 (TYPE LIST)>
2542 <EMPL? TEMP47 + MAPAP40>
2543 <NTHL TEMP47 1 = N48>
2544 <NTHUV N48 1 = TEMP51 (TYPE FIX)>
2545 <VEQUAL? TEMP51 11 + MAP38 (TYPE FIX)>
2549 <CONS TEMP51 () = TEMP51 (TYPE LIST)>
2550 <EMPL? TEMP45 - TAG54>
2551 <SET TEMP45 TEMP51 (TYPE LIST)>
2554 <PUTREST TEMP43 TEMP51>
2557 <SET TEMP43 TEMP51 (TYPE LIST)>
2560 <RESTL TEMP47 1 = TEMP47 (TYPE LIST)>
2563 <PUTUV DL13 16 TEMP45 (TYPE LIST)>
2568 <NTHL L6 1 = TEMP47 (TYPE LIST)>
2569 <RESTL TEMP47 1 = TEMP47 (TYPE LIST)>
2570 <NTHL TEMP47 1 = DL13 (TYPE LIST)>
2572 <NTHL DL13 1 = TEMP47 (TYPE NODE)>
2573 <NTHUV TEMP47 7 = TEMP47 (TYPE LIST)>
2574 <RESTL TEMP47 1 = TEMP47 (TYPE LIST)>
2575 <NTHL TEMP47 1 = TEMP47>
2576 <TYPE? TEMP47 <TYPE-CODE FALSE> - PHRASE57>
2578 <TYPE? FLG8 <TYPE-CODE FALSE> + PHRASE59>
2580 <NTHUV S23 16 = STACK (TYPE LIST)>
2583 <CALL '
\1aLMERGE 2 = TEMP47>
2589 <PUTUV S23 16 TEMP47 (TYPE LIST)>
2592 <RESTL L6 1 = L6 (TYPE LIST)>
2594 <END
\1aRESTORE-L-D-STATE>
2596 <GFCN
\1aSAVE-L-D-STATE ("VALUE" LIST <OR VECTOR SYMTAB>) V4>
2597 <TEMP L8:LIST LP9:LIST DL10:LIST TEMP17>
2604 <TYPE? V4 <TYPE-CODE VECTOR> - PHRASE13>
2605 <RESTL L8 1 = L8 (TYPE LIST)>
2609 <NTHUV V4 16 = DL10 (TYPE LIST)>
2610 <EMPL? DL10 + PHRASE15 (TYPE LIST)>
2611 <NTHL DL10 1 = TEMP17 (TYPE NODE)>
2612 <NTHUV TEMP17 7 = TEMP17 (TYPE LIST)>
2613 <RESTL TEMP17 1 = TEMP17 (TYPE LIST)>
2614 <NTHL TEMP17 1 = TEMP17>
2615 <TYPE? TEMP17 <TYPE-CODE FALSE> - PHRASE15>
2617 <CONS DL10 () = TEMP17>
2619 <CONS V4 TEMP17 = TEMP17>
2620 <CONS TEMP17 () = TEMP17>
2621 <PUTREST LP9 TEMP17>
2628 <END
\1aSAVE-L-D-STATE>
2630 <GFCN
\1aMSAVE-L-D-STATE ("VALUE" LIST LIST <OR VECTOR SYMTAB>) L4 V5>
2631 <TEMP L9:LIST LR10:LIST LP11:LIST TEMP19 DL12:LIST>
2636 <RESTL L9 1 = LP11 (TYPE LIST)>
2640 <EMPL? LP11 - PHRASE17 (TYPE LIST)>
2641 <FRAME '
\1aSAVE-L-D-STATE>
2644 <CALL '
\1aSAVE-L-D-STATE 1 = TEMP19>
2647 <RESTL LR10 1 = L9 (TYPE LIST)>
2652 <TYPE? V5 <TYPE-CODE VECTOR> - PHRASE20>
2653 <RESTL LR10 1 = L9 (TYPE LIST)>
2658 <NTHUV V5 16 = DL12 (TYPE LIST)>
2659 <EMPL? DL12 + PHRASE21 (TYPE LIST)>
2660 <NTHL DL12 1 = TEMP19 (TYPE NODE)>
2661 <NTHUV TEMP19 7 = TEMP19 (TYPE LIST)>
2662 <RESTL TEMP19 1 = TEMP19 (TYPE LIST)>
2663 <NTHL TEMP19 1 = TEMP19>
2664 <TYPE? TEMP19 <TYPE-CODE FALSE> - PHRASE21>
2666 <NTHL LP11 1 = TEMP19>
2667 <NTH1 TEMP19 = TEMP19>
2668 <VEQUAL? TEMP19 V5 - PHRASE24>
2672 <NTHL LP11 1 = STACK>
2674 <CALL '
\1aNTH 2 = STACK>
2677 <CALL '
\1aLMERGE 2 = DL12>
2678 <EMPL? DL12 - PHRASE28 (TYPE LIST)>
2679 <RESTL LP11 1 = LP11 (TYPE LIST)>
2684 <NTHL LP11 1 = STACK>
2691 <RESTL L9 1 = LP11 (TYPE LIST)>
2705 <NTHL LP11 1 = TEMP19>
2706 <NTH1 TEMP19 = TEMP19>
2707 <EQUAL? TEMP19 V5 - PHRASE33>
2711 <RESTL L9 1 = LP11 (TYPE LIST)>
2715 <END
\1aMSAVE-L-D-STATE>
2717 <GFCN
\1aLMERGE ("VALUE" <LIST [REST NODE]> <LIST [REST NODE]> <LIST [REST NODE]>) L14 L25>
2718 <TEMP TEMP15 TEMP13 TEMP12 N17:NODE TEMP21 TEMP26>
2720 <SET TEMP15 () (TYPE LIST)>
2721 <SET TEMP13 () (TYPE LIST)>
2722 <SET TEMP12 L14 (TYPE LIST)>
2727 <EMPL? TEMP12 + MAPAP10>
2728 <NTHL TEMP12 1 = N17>
2729 <NTHUV N17 7 = TEMP21 (TYPE LIST)>
2730 <RESTL TEMP21 1 = TEMP21 (TYPE LIST)>
2731 <NTHL TEMP21 1 = TEMP21>
2732 <TYPE? TEMP21 <TYPE-CODE FALSE> - MAP8>
2734 <NTHUV N17 1 = TEMP21 (TYPE FIX)>
2735 <VEQUAL? TEMP21 11 - PHRASE19 (TYPE FIX)>
2738 <EMPL? TEMP21 + MAP8>
2739 <LOOP (N17 VALUE) (TEMP21 VALUE)>
2741 <NTHL TEMP21 1 = TEMP26>
2742 <VEQUAL? TEMP26 N17 + PHRASE19>
2744 <RESTL TEMP21 1 = TEMP21 (TYPE LIST)>
2745 <EMPL? TEMP21 - TAG24>
2748 <CONS N17 () = TEMP21 (TYPE LIST)>
2750 <EMPL? TEMP15 - TAG28>
2751 <SET TEMP15 TEMP21 (TYPE LIST)>
2754 <PUTREST TEMP13 TEMP21>
2757 <SET TEMP13 TEMP21 (TYPE LIST)>
2760 <RESTL TEMP12 1 = TEMP12 (TYPE LIST)>
2765 <SET TEMP15 () (TYPE LIST)>
2766 <SET TEMP21 () (TYPE LIST)>
2767 <SET TEMP12 L25 (TYPE LIST)>
2772 <EMPL? TEMP12 + MAPAP34>
2773 <NTHL TEMP12 1 = N17>
2774 <NTHUV N17 7 = TEMP13 (TYPE LIST)>
2775 <RESTL TEMP13 1 = TEMP13 (TYPE LIST)>
2776 <NTHL TEMP13 1 = TEMP13>
2777 <TYPE? TEMP13 <TYPE-CODE FALSE> - MAP32>
2779 <NTHUV N17 1 = TEMP13 (TYPE FIX)>
2780 <VEQUAL? TEMP13 11 + MAP32 (TYPE FIX)>
2783 <EMPL? TEMP13 + PHRASE40>
2784 <LOOP (N17 VALUE) (TEMP13 VALUE)>
2786 <NTHL TEMP13 1 = TEMP26>
2787 <VEQUAL? TEMP26 N17 + MAP32>
2789 <RESTL TEMP13 1 = TEMP13 (TYPE LIST)>
2790 <EMPL? TEMP13 - TAG44>
2792 <CONS N17 () = TEMP13 (TYPE LIST)>
2794 <EMPL? TEMP15 - TAG48>
2795 <SET TEMP15 TEMP13 (TYPE LIST)>
2798 <PUTREST TEMP21 TEMP13>
2801 <SET TEMP21 TEMP13 (TYPE LIST)>
2804 <RESTL TEMP12 1 = TEMP12 (TYPE LIST)>
2809 <EMPL? L14 - PHRASE51 (TYPE LIST)>
2814 <LOOP (TEMP13 VALUE)>
2816 <RESTL TEMP13 1 = TEMP26 (TYPE LIST)>
2817 <EMPL? TEMP26 + TAG54>
2822 <PUTREST TEMP13 L25>
2828 <GFCN
\1aMAKE-DEAD ("VALUE" SYMTAB NODE SYMTAB) N4 SYM5>
2831 <CONS N4 () = TEMP6>
2833 <PUTUV SYM5 16 TEMP6 (TYPE LIST)>
2839 <GFCN
\1aKILL-REM ("VALUE" LIST <LIST [REST SYMTAB]> <OR SYMTAB VECTOR>) L4 V5>
2840 <TEMP L19:LIST TEMP16 TEMP22>
2842 <SET L19 () (TYPE LIST)>
2846 <TYPE? V5 <TYPE-CODE VECTOR> - PHRASE12>
2850 <NTHUV V5 3 = TEMP16>
2851 <TYPE? TEMP16 <TYPE-CODE FALSE> - PHRASE14>
2853 <NTHUV V5 4 = TEMP16 (TYPE FIX)>
2854 <VEQUAL? TEMP16 -1 + PHRASE14 (TYPE FIX)>
2857 <EMPL? TEMP16 + PHRASE14>
2858 <LOOP (V5 VALUE) (TEMP16 VALUE)>
2860 <NTHL TEMP16 1 = TEMP22>
2861 <VEQUAL? TEMP22 V5 + TAG19>
2863 <RESTL TEMP16 1 = TEMP16 (TYPE LIST)>
2864 <EMPL? TEMP16 - TAG20>
2873 <GFCN
\1aSAVE-SURVIVORS ("VALUE" <OR FALSE <LIST ANY ATOM> SYMTAB> <LIST [REST <LIST SYMTAB LIST>]> <LIST [REST SYMTAB]> "OPTIONAL" ANY) LS6 LI7 FLG8>
2874 <OPT-DISPATCH 2 %<> OPT4 OPT5>
2878 <TEMP TEMP18 TEMP15:LIST LL20:LIST TEMP26 TEMP27:LIST>
2880 <SET TEMP18 %<> (TYPE FALSE)>
2881 <SET TEMP15 LS6 (TYPE LIST)>
2886 <EMPL? TEMP15 + MAPAP13>
2887 <NTHL TEMP15 1 = LL20>
2888 <NTHL LL20 1 = TEMP26 (TYPE SYMTAB)>
2890 <EMPL? TEMP27 + PHRASE22>
2891 <LOOP (TEMP26 VALUE) (TEMP27 VALUE)>
2893 <NTHL TEMP27 1 = TEMP18>
2894 <VEQUAL? TEMP18 TEMP26 + TAG23>
2896 <RESTL TEMP27 1 = TEMP27 (TYPE LIST)>
2897 <EMPL? TEMP27 - TAG24>
2900 <SET TEMP18 %<> (TYPE FALSE)>
2901 <RESTL LL20 1 = TEMP26 (TYPE LIST)>
2903 <NTHL TEMP26 1 = TEMP26>
2907 <EMPTY? TEMP26 + PHRASE41>
2908 <NTH1 TEMP26 = TEMP18>
2909 <NTHUV TEMP18 7 = TEMP18 (TYPE LIST)>
2910 <RESTL TEMP18 1 = LL20 (TYPE LIST)>
2913 <REST1 TEMP26 = TEMP26>
2917 <TYPE? TEMP18 <TYPE-CODE FALSE> + PHRASE41>
2918 <NTHL LL20 1 = TEMP26 (TYPE SYMTAB)>
2919 <RESTL LL20 1 = LL20 (TYPE LIST)>
2920 <NTHL LL20 1 = LL20 (TYPE LIST)>
2921 <PUTUV TEMP26 16 LL20 (TYPE LIST)>
2926 <RESTL TEMP15 1 = TEMP15 (TYPE LIST)>
2931 <END
\1aSAVE-SURVIVORS>
2933 <GFCN
\1aREVIVE ("VALUE" <OR FALSE NODE> NODE SYMTAB) NOD4 SYM5>
2934 <TEMP L6 TEMP11 TEMP27>
2936 <NTHUV SYM5 16 = L6 (TYPE LIST)>
2937 <NTHUV SYM5 3 = TEMP11>
2938 <TYPE? TEMP11 <TYPE-CODE FALSE> + TAG12>
2942 <NTHUV SYM5 4 = TEMP11 (TYPE FIX)>
2943 <VEQUAL? TEMP11 -1 - TAG13 (TYPE FIX)>
2947 <EMPL? L6 - PHRASE17 (TYPE LIST)>
2949 <SET L6 1 (TYPE FIX)>
2950 <GEN-LVAL 'LIFE = TEMP11>
2951 <TYPE TEMP11 = TEMP27>
2952 <AND TEMP27 7 = TEMP27>
2953 <VEQUAL? TEMP27 1 + TAG23>
2955 <LOOP (TEMP11 TYPE VALUE LENGTH) (L6 VALUE)>
2958 <EMPTY? TEMP11 + TAG28>
2959 <NTH1 TEMP11 = STACK>
2960 <REST1 TEMP11 = TEMP11>
2961 <ADD L6 1 = L6 (TYPE FIX)>
2964 <LIST L6 = TEMP11 (TYPE LIST)>
2970 <VEQUAL? L6 0 + TAG25>
2972 <CONS TEMP27 TEMP11 = TEMP11 (TYPE LIST)>
2974 <SUB L6 1 = L6 (TYPE FIX)>
2977 <GEN-SET 'LIFE TEMP11>
2981 <SET TEMP11 L6 (TYPE LIST)>
2986 <EMPL? TEMP11 + MAPAP37>
2987 <NTHL TEMP11 1 = L6>
2988 <NTHUV L6 7 = TEMP27 (TYPE LIST)>
2990 <RESTL TEMP27 1 = L6 (TYPE LIST)>
2994 <RESTL TEMP11 1 = TEMP11 (TYPE LIST)>
2998 <PUTUV SYM5 16 L6 (TYPE LIST)>
3002 <PUTUV NOD4 7 L6 (TYPE LIST)>
3007 " Ananlyze a FORM that could really be an NTH."
3010 <GFCN
\1aFORM-F-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
3011 <TEMP K6:LIST OBJ7 TYP8 TEMP13 TEMP14>
3013 <NTHUV NOD4 5 = K6 (TYPE LIST)>
3014 <NTHUV NOD4 4 = OBJ7>
3017 <NTHL K6 1 = STACK (TYPE NODE)>
3019 <CALL '
\1aANA 2 = TYP8>
3021 <CALL '
\1aISTYPE? 1 = TEMP13>
3022 <VEQUAL? TEMP13 'FIX - PHRASE10>
3024 <RESTL K6 1 = TEMP14 (TYPE LIST)>
3025 <RESTL TEMP14 1 = TEMP13 (TYPE LIST)>
3027 <NTHL K6 1 = TEMP14 (TYPE NODE)>
3028 <CONS TEMP14 TEMP13 = TEMP13>
3030 <RESTL K6 1 = TEMP14 (TYPE LIST)>
3031 <NTHL TEMP14 1 = TEMP14 (TYPE NODE)>
3032 <CONS TEMP14 TEMP13 = TEMP13>
3034 <PUTUV NOD4 5 TEMP13 (TYPE LIST)>
3036 <EMPL? K6 + PHRASE16>
3037 <RESTL K6 1 = TEMP13 (TYPE LIST)>
3038 <EMPL? TEMP13 + PHRASE16>
3039 <RESTL TEMP13 1 = TEMP13 (TYPE LIST)>
3040 <EMPL? TEMP13 - PHRASE16>
3042 <FRAME '
\1aNTH-REST-ANA>
3049 <CALL '
\1aNTH-REST-ANA 4 = RTYP5>
3057 <CALL '
\1aPUT-ANA 3 = RTYP5>
3059 <NTHUV NOD4 1 = TEMP13 (TYPE FIX)>
3060 <PUTUV NOD4 9 TEMP13>
3062 <PUTUV NOD4 5 K6 (TYPE LIST)>
3066 <PUTUV NOD4 1 74 (TYPE FIX)>
3071 <FRAME '
\1aSPECIALIZE>
3072 <NTHUV NOD4 4 = STACK>
3073 <CALL '
\1aSPECIALIZE 1>
3074 <FRAME '
\1aSPEC-FLUSH>
3075 <CALL '
\1aSPEC-FLUSH 0>
3076 <FRAME '
\1aPUT-FLUSH>
3078 <CALL '
\1aPUT-FLUSH 1>
3079 <CONS 'ALL () = TEMP14>
3080 <PUTUV NOD4 8 TEMP14>
3082 <FRAME '
\1aTYPE-OK?>
3083 <NTHUV NOD4 3 = STACK>
3087 <CALL '
\1aTYPE-OK? 2 = TEMP13>
3091 " Further analyze a FORM."
3094 <GFCN
\1aANONFFORM-AN1 ("VALUE" ANY NODE ANY) N4 R5>
3095 <TEMP TEMP8 TEMP9:FIX>
3097 <FRAME '
\1aSPEC-FLUSH>
3098 <CALL '
\1aSPEC-FLUSH 0>
3099 <FRAME '
\1aPUT-FLUSH>
3101 <CALL '
\1aPUT-FLUSH 1>
3102 <CONS 'ALL () = TEMP8>
3103 <LENUV N4 = TEMP9 (TYPE FIX)>
3104 <LESS? TEMP9 8 + COMPERR (TYPE FIX)>
3108 <FRAME '
\1aTYPE-OK?>
3109 <NTHUV N4 3 = STACK>
3113 <CALL '
\1aTYPE-OK? 2 = TEMP8>
3116 <END
\1aANONFFORM-AN1>
3117 <GFCN
\1aFORM-AN ("VALUE" ANY NODE ANY) NOD5 RTYP6>
3122 <NTHUV NOD5 9 = STACK>
3124 <CALL '
\1aGETPROP 2 = TEMP9>
3125 <TYPE? TEMP9 <TYPE-CODE FALSE> - BOOL8>
3128 <NTHUV NOD5 9 = STACK>
3129 <CALL '
\1aTYPE 1 = STACK>
3131 <CALL '
\1aGETPROP 2 = TEMP9>
3132 <TYPE? TEMP9 <TYPE-CODE FALSE> - BOOL8>
3133 <GVAL 'ANONFFORM-AN1 = TEMP9>
3139 <ACALL TEMP9 2 = TEMP9>
3142 <END
\1aFORM-AN>
\r\r
3143 "Determine if an ATOM is mainfest."
3146 <GFCN
\1aMANIFESTQ ("VALUE" <OR ATOM FALSE> ATOM) ATM4>
3149 <FRAME '
\1aMANIFEST?>
3151 <CALL '
\1aMANIFEST? 1 = TEMP6>
3152 <TYPE? TEMP6 <TYPE-CODE FALSE> + TAG12>
3153 <NTHR ATM4 1 = TEMP6 (RECORD-TYPE ATOM) (BRANCH-FALSE + TAG9)>
3154 <TYPE? TEMP6 <TYPE-CODE FALSE> + TAG9>
3155 <NTHR TEMP6 1 = TEMP6 (RECORD-TYPE GBIND)>
3156 <TYPE? TEMP6 <TYPE-CODE UNBOUND> - TAG8>
3163 <TYPE? TEMP6 <TYPE-CODE MSUBR> - TAG11>
3167 <SET TEMP6 'T (TYPE ATOM)>
3172 " Search for a decl associated with a local value."
3175 <GFCN
\1aSRCH-SYM ("VALUE" <OR !<FALSE> <<PRIMTYPE VECTOR> ANY ATOM>> ATOM) ATM4>
3176 <TEMP TEMP6 TEMP17:ATOM>
3178 <GEN-LVAL 'VARTBL = TEMP6>
3182 <EMPUV? TEMP6 - PHRASE14>
3185 <NTHUV TEMP6 2 = TEMP17 (TYPE ATOM)>
3186 <VEQUAL? TEMP17 ATM4 - PHRASE16>
3191 <NTHUV TEMP6 1 = TEMP6>
3194 " Here to flush decls of specials for an external function call."
3197 <GFCN
\1aSPEC-FLUSH ("VALUE" ATOM)>
3202 <CALL '
\1aFLUSHER 1 = TEMP5>
3206 " Here to flush decls when a PUT, PUTREST or external call happens."
3209 <GFCN
\1aPUT-FLUSH ("VALUE" ATOM ANY) TYP4>
3215 <CALL '
\1aFLUSHER 1 = TEMP6>
3220 <GFCN
\1aFLUSHER ("VALUE" ATOM ANY) FLSFLG4>
3221 <TEMP TEMP6 TEMP11 CT18 TEMP25>
3223 <GEN-LVAL 'VARTBL = TEMP6>
3224 <GEN-LVAL 'ANALY-OK = TEMP11>
3225 <TYPE? TEMP11 <TYPE-CODE FALSE> + PHRASE10>
3231 <NTHUV TEMP11 17 = CT18>
3232 <TYPE? CT18 <TYPE-CODE FALSE> + PHRASE21>
3233 <NTHUV TEMP11 3 = TEMP25>
3234 <TYPE? TEMP25 <TYPE-CODE FALSE> + BOOL24>
3236 <TYPE? FLSFLG4 <TYPE-CODE FALSE> + BOOL28>
3238 <TYPE? FLSFLG4 <TYPE-CODE FALSE> + PHRASE21>
3239 <EQUAL? CT18 'NO-RETURN + PHRASE21>
3240 <EQUAL? CT18 'BOOL-FALSE + PHRASE21>
3241 <EQUAL? CT18 'BOOLEAN + PHRASE21>
3242 <EQUAL? CT18 'BOOL-TRUE + PHRASE21>
3244 <FRAME '
\1aTYPE-OK?>
3245 <NTHUV TEMP6 17 = STACK>
3246 <PUSH <STRUCTURED ANY>>
3247 <CALL '
\1aTYPE-OK? 2 = TEMP25>
3248 <TYPE? TEMP25 <TYPE-CODE FALSE> + PHRASE21>
3250 <EQUAL? FLSFLG4 'ALL + BOOL28>
3251 <FRAME '
\1aSTRUCTYP>
3252 <NTHUV TEMP6 17 = STACK>
3253 <CALL '
\1aSTRUCTYP 1 = CT18>
3254 <TYPE? CT18 <TYPE-CODE FALSE> + BOOL28>
3255 <EQUAL? CT18 FLSFLG4 - PHRASE21>
3258 <FRAME '
\1aSET-CURRENT-TYPE>
3260 <FRAME '
\1aFLUSH-FIX-TYPE>
3262 <NTHUV TEMP11 17 = STACK>
3265 <CALL '
\1aFLUSH-FIX-TYPE 3 = STACK>
3266 <CALL '
\1aSET-CURRENT-TYPE 2>
3268 <NTHUV TEMP6 1 = TEMP6>
3269 <EMPUV? TEMP6 - AGAIN19>
3275 <NTHUV TEMP6 1 = TEMP6>
3276 <EMPUV? TEMP6 - AGAIN37>
3280 <GFCN
\1aFLUSH-FIX-TYPE ("VALUE" ANY SYMTAB ANY ANY) SYM4 TY5 FLG6>
3283 <TYPE? FLG6 <TYPE-CODE FALSE> + BOOL10>
3285 <FRAME '
\1aTOP-TYPE>
3286 <FRAME '
\1aTYPE-OK?>
3289 <CALL '
\1aTYPE-OK? 2 = STACK>
3290 <CALL '
\1aTOP-TYPE 1 = TEM7>
3291 <TYPE? TEM7 <TYPE-CODE FALSE> + BOOL10>
3292 <FRAME '
\1aTYPE-OK?>
3293 <FRAME '
\1aTYPE-OK?>
3296 <PUSH <NOT STRUCTURED>>
3297 <CALL '
\1aTYPE-OK? 2 = TY5>
3298 <TYPE? TY5 <TYPE-CODE FALSE> + PHRASE15>
3299 <FRAME '
\1aTYPE-MERGE>
3304 <CALL '
\1aTYPE-MERGE 2 = TEM7>
3308 <NTHUV SYM4 7 = STACK>
3309 <CALL '
\1aTYPE-OK? 2 = TEM7>
3310 <TYPE? TEM7 <TYPE-CODE FALSE> - BOOL8>
3312 <NTHUV SYM4 7 = TEM7>
3317 <END
\1aFLUSH-FIX-TYPE>
3318 " Punt forms with segments in them."
3321 <GFCN
\1aSEGFLUSH ("VALUE" ANY NODE ANY) NOD4 RTYP5>
3322 <TEMP L11:LIST TEMP8>
3324 <NTHUV NOD4 5 = L11 (TYPE LIST)>
3328 <EMPL? L11 - BOOL13 (TYPE LIST)>
3329 <SET TEMP8 %<> (TYPE FALSE)>
3332 <NTHL L11 1 = TEMP8 (TYPE NODE)>
3333 <NTHUV TEMP8 1 = TEMP8 (TYPE FIX)>
3334 <VEQUAL? TEMP8 3 - BOOL14 (TYPE FIX)>
3336 <SET TEMP8 'T (TYPE ATOM)>
3339 <RESTL L11 1 = L11 (TYPE LIST)>
3342 <VEQUAL? TEMP8 0 + PHRASE7>
3343 <GEN-LVAL 'VERBOSE = TEMP8>
3344 <TYPE? TEMP8 <TYPE-CODE FALSE> + PHRASE17>
3346 <FRAME '
\1aADDVMESS>
3348 <CONS "Not open compiled due to SEGMENT." () = STACK>
3349 <CALL '
\1aADDVMESS 2>
3351 <FRAME '
\1aSUBR-C-AN>
3356 <CALL '
\1aSUBR-C-AN 2 = TEMP8>
3361 " Determine if the arg to STACKFORM is a SUBR."
3364 <GFCN
\1aAPPLTYP ("VALUE" <OR ATOM FORM> NODE) NOD4>
3367 <NTHUV NOD4 1 = NT5 (TYPE FIX)>
3368 <VEQUAL? NT5 66 - PHRASE9 (TYPE FIX)>
3370 <NTHUV NOD4 5 = NT5 (TYPE LIST)>
3372 <NTHL NT5 1 = TT7 (TYPE NODE)>
3374 <NTHUV TT7 1 = NT5 (TYPE FIX)>
3375 <VEQUAL? NT5 2 - PHRASE11 (TYPE FIX)>
3377 <NTHUV TT7 4 = TT7 (TYPE ATOM)>
3378 <NTHR TT7 1 = NT5 (RECORD-TYPE ATOM) (BRANCH-FALSE + PHRASE11)>
3379 <TYPE? NT5 <TYPE-CODE FALSE> + PHRASE11>
3380 <NTHR NT5 1 = NT5 (RECORD-TYPE GBIND)>
3381 <TYPE? NT5 <TYPE-CODE UNBOUND> + PHRASE11>
3384 <TYPE? NT5 <TYPE-CODE MSUBR> - PHRASE11>
3386 <FRAME '
\1aSUBR-TYPE>
3389 <CALL '
\1aSUBR-TYPE 1 = NT5>
3397 " Return type returned by a SUBR."
3400 <GFCN
\1aSUBR-TYPE ("VALUE" <OR ATOM FORM> MSUBR) SUB4>
3406 <CALL '
\1aGET-TMP 1 = TEMP7>
3407 <RESTL TEMP7 1 = TEMP7 (TYPE LIST)>
3408 <NTHL TEMP7 1 = TEMP7>
3409 <TYPE? TEMP7 <TYPE-CODE ATOM> + TAG10>
3410 <TYPE? TEMP7 <TYPE-CODE FORM> - PHRASE9>
3417 " Access the SUBR data base for return type."
3420 <GFCN
\1aGET-TMP ("VALUE" <LIST [2 ANY]> ANY) SUB4>
3421 <TEMP TEMP10:VECTOR TEMP11 TEMP12>
3423 <GVAL 'SUBRS = TEMP10>
3424 <TYPE SUB4 = TEMP11>
3425 <EMPUV? TEMP10 + TAG6>
3426 <LOOP (SUB4 VALUE) (TEMP11 VALUE) (TEMP10 LENGTH VALUE)>
3428 <NTHUV TEMP10 1 = TEMP12>
3429 <TYPE? TEMP12 TEMP11 - TAG9>
3430 <VEQUAL? TEMP12 SUB4 + TAG7>
3433 <RESTUV TEMP10 1 = TEMP10 (TYPE VECTOR)>
3434 <EMPUV? TEMP10 - TAG8>
3436 <SET TEMP11 %<> (TYPE FALSE)>
3442 <VEQUAL? TEMP11 0 + PHRASE15>
3443 <GVAL 'TEMPLATES = TEMP10>
3444 <LENUV TEMP11 = TEMP11 (TYPE FIX)>
3445 <NTHUV TEMP10 TEMP11 = TEMP11 (TYPE LIST)>
3455 <GFCN
\1aGVAL-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
3456 <TEMP K6 LN7:FIX TEMP12>
3458 <NTHUV NOD4 5 = K6 (TYPE LIST)>
3459 <LENL K6 = LN7 (TYPE FIX)>
3460 <FRAME '
\1aSEGFLUSH>
3463 <CALL '
\1aSEGFLUSH 2 = TEMP12>
3464 <TYPE? TEMP12 <TYPE-CODE FALSE> - PHRASE36>
3472 <PUTUV NOD4 1 33 (TYPE FIX)>
3474 <NTHL K6 1 = STACK (TYPE NODE)>
3478 <NTHL K6 1 = K6 (TYPE NODE)>
3479 <NTHUV K6 1 = TEMP12 (TYPE FIX)>
3480 <VEQUAL? TEMP12 2 - PHRASE18 (TYPE FIX)>
3482 <NTHUV K6 3 = TEMP12>
3483 <EQUAL? TEMP12 'ATOM - PHRASE18>
3485 <PUTUV NOD4 1 66 (TYPE FIX)>
3486 <FRAME '
\1aMANIFEST?>
3489 <CALL '
\1aMANIFEST? 1 = TEMP12>
3490 <TYPE? TEMP12 <TYPE-CODE FALSE> + PHRASE22>
3492 <PUTUV NOD4 1 2 (TYPE FIX)>
3494 <PUTUV NOD4 4 TEMP12>
3496 <PUTUV NOD4 5 () (TYPE LIST)>
3498 <FRAME '
\1aTYPE-OK?>
3499 <FRAME '
\1aGEN-DECL>
3502 <CALL '
\1aGEN-DECL 1 = STACK>
3505 <CALL '
\1aTYPE-OK? 2 = TEMP12>
3509 <NTHR K6 1 = TEMP12 (RECORD-TYPE ATOM) (BRANCH-FALSE + PHRASE26)>
3510 <TYPE? TEMP12 <TYPE-CODE FALSE> + PHRASE26>
3512 <NTHR 'GLOC 1 = TEMP12 (RECORD-TYPE ATOM) (BRANCH-FALSE + PHRASE29)>
3513 <TYPE? TEMP12 <TYPE-CODE FALSE> + PHRASE29>
3514 <NTHR TEMP12 1 = TEMP12 (RECORD-TYPE GBIND)>
3515 <TYPE? TEMP12 <TYPE-CODE UNBOUND> + PHRASE29>
3517 <FRAME '
\1aGET-DECL>
3521 <CALL '
\1aGLOC 1 = STACK>
3522 <CALL '
\1aGET-DECL 1 = K6>
3523 <TYPE? K6 <TYPE-CODE FALSE> + PHRASE26>
3526 <NTHR K6 1 = TEMP12 (RECORD-TYPE ATOM)>
3528 <NTHR TEMP12 3 = K6 (RECORD-TYPE GBIND)>
3530 <TYPE? K6 <TYPE-CODE FALSE> + PHRASE26>
3532 <FRAME '
\1aTYPE-OK?>
3537 <CALL '
\1aTYPE-OK? 2 = TEMP12>
3541 <FRAME '
\1aTYPE-OK?>
3545 <CALL '
\1aTYPE-OK? 2 = TEMP12>
3549 <FRAME '
\1aTYPE-OK?>
3553 <CALL '
\1aTYPE-OK? 2 = TEMP12>
3558 <COND (<GASSIGNED? GVAL-ANA> <PUTPROP ,GVAL ANALYSIS ,GVAL-ANA>)>
3561 <GFCN
\1aGASSIGNED?-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
3562 <TEMP K6:LIST LN7:FIX NM8 TEMP11>
3564 <NTHUV NOD4 5 = K6 (TYPE LIST)>
3565 <LENL K6 = LN7 (TYPE FIX)>
3566 <NTHUV NOD4 4 = NM8>
3567 <FRAME '
\1aSEGFLUSH>
3570 <CALL '
\1aSEGFLUSH 2 = TEMP11>
3571 <TYPE? TEMP11 <TYPE-CODE FALSE> - PHRASE12>
3580 <PUTUV NOD4 1 92 (TYPE FIX)>
3583 <NTHL K6 1 = STACK (TYPE NODE)>
3590 <FRAME '
\1aTYPE-OK?>
3591 <PUSH <OR ATOM FALSE>>
3594 <CALL '
\1aTYPE-OK? 2 = TEMP11>
3597 <END
\1aGASSIGNED?-ANA>
3598 <COND (<GASSIGNED? GASSIGNED?-ANA> <PUTPROP ,GASSIGNED? ANALYSIS ,GASSIGNED?-ANA>)>
3600 <COND (<AND <GASSIGNED? GBOUND?> <GASSIGNED? GASSIGNED?-ANA>> <PUTPROP ,GBOUND? ANALYSIS ,GASSIGNED?-ANA>)>
3602 " Analyze SETG usage."
3605 <GFCN
\1aSETG-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
3606 <TEMP K6:LIST LN7:FIX TEMP13 TEM8 TEMP20:FIX TEMP19>
3608 <NTHUV NOD4 5 = K6 (TYPE LIST)>
3609 <LENL K6 = LN7 (TYPE FIX)>
3610 <FRAME '
\1aSEGFLUSH>
3613 <CALL '
\1aSEGFLUSH 2 = TEMP13>
3614 <TYPE? TEMP13 <TYPE-CODE FALSE> - PHRASE55>
3621 <PUTUV NOD4 1 34 (TYPE FIX)>
3623 <NTHL K6 1 = TEM8 (TYPE NODE)>
3629 <SET TEMP20 1 (TYPE FIX)>
3630 <NTHUV NOD4 8 = TEMP19>
3631 <TYPE TEMP19 = TEMP13>
3632 <AND TEMP13 7 = TEMP13>
3633 <VEQUAL? TEMP13 1 + TAG22>
3635 <LOOP (TEMP19 TYPE VALUE LENGTH) (TEMP20 VALUE)>
3638 <EMPTY? TEMP19 + TAG27>
3639 <NTH1 TEMP19 = STACK>
3640 <REST1 TEMP19 = TEMP19>
3641 <ADD TEMP20 1 = TEMP20 (TYPE FIX)>
3644 <LIST TEMP20 = TEMP19 (TYPE LIST)>
3650 <VEQUAL? TEMP20 0 + TAG24>
3652 <CONS TEMP13 TEMP19 = TEMP19 (TYPE LIST)>
3654 <SUB TEMP20 1 = TEMP20 (TYPE FIX)>
3657 <PUTUV NOD4 8 TEMP19>
3659 <NTHUV TEM8 1 = TEMP19 (TYPE FIX)>
3660 <VEQUAL? TEMP19 2 - PHRASE30 (TYPE FIX)>
3662 <FRAME '
\1aMANIFEST?>
3663 <NTHUV TEM8 4 = TEMP13>
3666 <CALL '
\1aMANIFEST? 1 = TEMP19>
3667 <TYPE? TEMP19 <TYPE-CODE FALSE> + PHRASE32>
3669 <FRAME '
\1aCOMPILE-WARNING>
3670 <PUSH "SETGing manifest GVAL? ">
3673 <CALL '
\1aCOMPILE-WARNING 3>
3675 <PUTUV NOD4 1 67 (TYPE FIX)>
3676 <NTHR TEMP13 1 = TEMP19 (RECORD-TYPE ATOM) (BRANCH-FALSE + PHRASE36)>
3677 <TYPE? TEMP19 <TYPE-CODE FALSE> + PHRASE36>
3679 <NTHR 'GLOC 1 = TEMP19 (RECORD-TYPE ATOM) (BRANCH-FALSE + PHRASE39)>
3680 <TYPE? TEMP19 <TYPE-CODE FALSE> + PHRASE39>
3681 <NTHR TEMP19 1 = TEMP19 (RECORD-TYPE GBIND)>
3682 <TYPE? TEMP19 <TYPE-CODE UNBOUND> + PHRASE39>
3684 <FRAME '
\1aGET-DECL>
3687 <CALL '
\1aGLOC 1 = STACK>
3688 <CALL '
\1aGET-DECL 1 = TEM8>
3689 <TYPE? TEM8 <TYPE-CODE FALSE> + PHRASE36>
3692 <NTHR TEMP13 1 = TEMP19 (RECORD-TYPE ATOM)>
3693 <NTHR TEMP19 3 = TEM8 (RECORD-TYPE GBIND)>
3695 <TYPE? TEM8 <TYPE-CODE FALSE> + PHRASE36>
3698 <RESTL K6 1 = TEMP19 (TYPE LIST)>
3699 <NTHL TEMP19 1 = STACK (TYPE NODE)>
3702 <CALL '
\1aANA 2 = TEMP19>
3703 <TYPE? TEMP19 <TYPE-CODE FALSE> - PHRASE44>
3705 <FRAME '
\1aCOMPILE-ERROR>
3706 <PUSH "GLOBAL declaration violation">
3711 <CALL '
\1aCOMPILE-ERROR 3>
3713 <FRAME '
\1aTYPE-OK?>
3718 <CALL '
\1aTYPE-OK? 2 = TEMP13>
3722 <RESTL K6 1 = TEMP19 (TYPE LIST)>
3723 <NTHL TEMP19 1 = STACK (TYPE NODE)>
3726 <CALL '
\1aANA 2 = TEMP13>
3727 <FRAME '
\1aTYPE-OK?>
3732 <CALL '
\1aTYPE-OK? 2 = TEMP13>
3736 <RESTL K6 1 = TEMP19 (TYPE LIST)>
3737 <NTHL TEMP19 1 = STACK (TYPE NODE)>
3740 <CALL '
\1aANA 2 = TEMP13>
3741 <FRAME '
\1aTYPE-OK?>
3746 <CALL '
\1aTYPE-OK? 2 = TEMP13>
3748 <VEQUAL? LN7 3 - PHRASE55 (TYPE FIX)>
3751 <RESTL K6 1 = TEMP19 (TYPE LIST)>
3753 <RESTL TEMP19 1 = TEMP19 (TYPE LIST)>
3754 <NTHL TEMP19 1 = STACK (TYPE NODE)>
3763 <COND (<GASSIGNED? SETG-ANA> <PUTPROP ,SETG ANALYSIS ,SETG-ANA>)>
3766 <GFCN
\1aBUILD-TYPE-LIST ("VALUE" LIST <OR VECTOR SYMTAB> "OPTIONAL" ANY) V8 ALL9>
3767 <OPT-DISPATCH 1 %<> OPT6 OPT7>
3771 <TEMP TEMP12 L17:LIST LP18:LIST TEM19>
3773 <GEN-LVAL 'ANALY-OK = TEMP12>
3774 <TYPE? TEMP12 <TYPE-CODE FALSE> + PHRASE11>
3781 <EMPUV? V8 - PHRASE22>
3782 <RESTL L17 1 = TEMP12 (TYPE LIST)>
3787 <NTHUV V8 4 = TEMP12 (TYPE FIX)>
3788 <VEQUAL? TEMP12 -1 + PHRASE29 (TYPE FIX)>
3790 <FRAME '
\1aGET-CURRENT-TYPE>
3792 <CALL '
\1aGET-CURRENT-TYPE 1 = TEM19>
3794 <TYPE? TEMP12 <TYPE-CODE FALSE> - TAG32>
3795 <EQUAL? TEM19 'NO-RETURN + TAG31>
3796 <SET TEMP12 'T (TYPE ATOM)>
3799 <SET TEMP12 %<> (TYPE FALSE)>
3801 <TYPE? TEMP12 <TYPE-CODE FALSE> + PHRASE29>
3803 <CONS 'T () = TEMP12>
3804 <CONS TEM19 TEMP12 = TEMP12>
3806 <CONS V8 TEMP12 = TEMP12>
3807 <CONS TEMP12 () = TEMP12>
3808 <PUTREST LP18 TEMP12>
3817 <END
\1aBUILD-TYPE-LIST>
3819 <GFCN
\1aRESET-VARS ("VALUE" ATOM <OR SYMTAB VECTOR> "OPTIONAL" <OR SYMTAB VECTOR> ANY) V7 VL8 FLG9>
3820 <OPT-DISPATCH 1 %<> OPT4 OPT5 OPT6>
3831 <EQUAL? V7 VL8 - PHRASE15>
3832 <SET FLG9 'T (TYPE ATOM)>
3834 <EMPUV? V7 - PHRASE17>
3837 <TYPE? FLG9 <TYPE-CODE FALSE> - PHRASE18>
3841 <PUTUV V7 16 () (TYPE LIST)>
3846 <GFCN
\1aGET-CURRENT-TYPE ("VALUE" ANY SYMTAB) SYM4>
3849 <GEN-LVAL 'ANALY-OK = TEMP8>
3850 <TYPE? TEMP8 <TYPE-CODE FALSE> + BOOL7>
3852 <NTHUV SYM4 17 = TEMP8>
3853 <TYPE? TEMP8 <TYPE-CODE FALSE> - PHRASE11>
3855 <NTHUV SYM4 7 = TEMP8>
3860 <END
\1aGET-CURRENT-TYPE>
3862 <GFCN
\1aSET-CURRENT-TYPE ("VALUE" SYMTAB SYMTAB ANY) SYM4 ITYP5>
3865 <NTHUV SYM4 7 = OTYP6>
3866 <GEN-LVAL 'ANALY-OK = TEMP10>
3867 <TYPE? TEMP10 <TYPE-CODE FALSE> + PHRASE8>
3869 <NTHUV SYM4 4 = TEMP10 (TYPE FIX)>
3870 <VEQUAL? TEMP10 -1 + PHRASE8 (TYPE FIX)>
3872 <FRAME '
\1aTYPE-AND>
3876 <CALL '
\1aTYPE-AND 2 = TEMP10>
3877 <PUTUV SYM4 17 TEMP10>
3879 <FRAME '
\1aTYPE-MERGE>
3882 <NTHUV SYM4 18 = STACK>
3883 <CALL '
\1aTYPE-MERGE 2 = TEMP10>
3884 <PUTUV SYM4 18 TEMP10>
3890 <PUTUV SYM4 18 OTYP6>
3894 <END
\1aSET-CURRENT-TYPE>
3896 <GFCN
\1aANDUPC ("VALUE" <LIST [REST <LIST SYMTAB ANY ANY>]> <OR VECTOR SYMTAB> <LIST [REST <LIST SYMTAB ANY ANY>]>) V4 L5>
3903 <NTHUV V4 17 = TMP8>
3904 <TYPE? TMP8 <TYPE-CODE FALSE> + PHRASE13>
3905 <EQUAL? TMP8 'NO-RETURN + PHRASE13>
3907 <FRAME '
\1aADD-TYPE-LIST>
3909 <NTHUV V4 17 = STACK>
3913 <CALL '
\1aADD-TYPE-LIST 4 = L5>
3922 <GFCN
\1aANDUP ("VALUE" <LIST [REST <LIST SYMTAB ANY ANY>]> <LIST [REST <LIST SYMTAB ANY ANY>]> <LIST [REST <LIST SYMTAB ANY ANY>]>) FROM4 TO5>
3923 <TEMP TEMP12:LIST L17:LIST>
3925 <SET TEMP12 FROM4 (TYPE LIST)>
3930 <EMPL? TEMP12 + MAPAP10>
3931 <NTHL TEMP12 1 = L17>
3932 <FRAME '
\1aADD-TYPE-LIST>
3933 <NTHL L17 1 = STACK (TYPE SYMTAB)>
3934 <RESTL L17 1 = L17 (TYPE LIST)>
3935 <NTHL L17 1 = STACK>
3940 <CALL '
\1aADD-TYPE-LIST 4 = TO5>
3941 <RESTL TEMP12 1 = TEMP12 (TYPE LIST)>
3948 <GFCN
\1aORUPC ("VALUE" <LIST [REST <LIST SYMTAB ANY ANY>]> <OR VECTOR SYMTAB> <LIST [REST <LIST SYMTAB ANY ANY>]>) V4 L5>
3949 <TEMP TEMP9 TEMP22 LL27:LIST TEMP30>
3951 <GEN-LVAL 'ANALY-OK = TEMP9>
3952 <TYPE? TEMP9 <TYPE-CODE FALSE> + EXIT12>
3957 <TYPE? V4 <TYPE-CODE VECTOR> + EXIT12>
3958 <SET TEMP9 %<> (TYPE FALSE)>
3959 <SET TEMP22 L5 (TYPE LIST)>
3963 <EMPL? TEMP22 + MAPAP20>
3964 <NTHL TEMP22 1 = LL27>
3965 <NTHL LL27 1 = TEMP30 (TYPE SYMTAB)>
3966 <VEQUAL? TEMP30 V4 - PHRASE29>
3968 <FRAME '
\1aTYPE-MERGE>
3969 <RESTL LL27 1 = TEMP30 (TYPE LIST)>
3970 <NTHL TEMP30 1 = STACK>
3972 <FRAME '
\1aGET-CURRENT-TYPE>
3974 <CALL '
\1aGET-CURRENT-TYPE 1 = STACK>
3975 <CALL '
\1aTYPE-MERGE 2 = TEMP30>
3976 <RESTL LL27 1 = TEMP9 (TYPE LIST)>
3977 <PUTL TEMP9 1 TEMP30>
3979 <RESTL LL27 1 = TEMP9 (TYPE LIST)>
3981 <RESTL TEMP9 1 = TEMP9 (TYPE LIST)>
3984 <SET TEMP9 'T (TYPE ATOM)>
3987 <RESTL TEMP22 1 = TEMP22 (TYPE LIST)>
3990 <VEQUAL? TEMP9 0 - PHRASE35>
3992 <NTHUV V4 17 = TEMP22>
3993 <TYPE? TEMP22 <TYPE-CODE FALSE> + PHRASE35>
3996 <NTHUV V4 7 = TEMP9>
3997 <CONS TEMP9 LL27 = LL27>
3999 <CONS V4 LL27 = LL27>
4010 <GFCN
\1aORUP ("VALUE" <LIST [REST <LIST SYMTAB <OR ATOM FORM SEGMENT> <OR ATOM FALSE>>]> <LIST [REST <LIST SYMTAB <OR ATOM FORM SEGMENT> <OR ATOM FALSE>>]> <LIST [REST <LIST SYMTAB <OR ATOM FORM SEGMENT> <OR ATOM FALSE>>]>) FROM4 TO5>
4011 <TEMP TEMP10:FIX TEMP9 TOTUP7:VECTOR L23:LIST SYM24 WIN25 TEMP32 TP37:VECTOR LL38 TEMP42>
4013 <SET TEMP10 0 (TYPE FIX)>
4015 <LOOP (TEMP9 VALUE) (TEMP10 VALUE)>
4018 <EMPL? TEMP9 + TAG8>
4019 <NTHL TEMP9 1 = STACK>
4020 <RESTL TEMP9 1 = TEMP9 (TYPE LIST)>
4021 <ADD TEMP10 1 = TEMP10 (TYPE FIX)>
4024 <SBLOCK <TYPE-CODE VECTOR> TEMP10 = TOTUP7 (TYPE VECTOR)>
4025 <DIV TEMP10 2 = TEMP10>
4026 <SUB 0 TEMP10 = TEMP10>
4027 <SET TEMP9 FROM4 (TYPE LIST)>
4032 <EMPL? TEMP9 + MAPAP17>
4033 <NTHL TEMP9 1 = L23>
4034 <NTHL L23 1 = SYM24 (TYPE SYMTAB)>
4035 <SET WIN25 %<> (TYPE FALSE)>
4036 <SET TEMP32 TOTUP7 (TYPE VECTOR)>
4040 <EMPUV? TEMP32 + MAPAP30>
4042 <NTHUV TP37 1 = LL38>
4043 <TYPE? LL38 <TYPE-CODE FALSE> + PHRASE40>
4044 <NTHL LL38 1 = TEMP42 (TYPE SYMTAB)>
4045 <VEQUAL? TEMP42 SYM24 - PHRASE40>
4047 <FRAME '
\1aTYPE-MERGE>
4048 <RESTL LL38 1 = TEMP42 (TYPE LIST)>
4049 <NTHL TEMP42 1 = STACK>
4051 <RESTL L23 1 = TEMP42 (TYPE LIST)>
4052 <NTHL TEMP42 1 = STACK>
4054 <CALL '
\1aTYPE-MERGE 2 = WIN25>
4055 <RESTL LL38 1 = TEMP42 (TYPE LIST)>
4056 <PUTL TEMP42 1 WIN25>
4058 <RESTL LL38 1 = TEMP42 (TYPE LIST)>
4059 <RESTL TEMP42 1 = TEMP42 (TYPE LIST)>
4060 <NTHL TEMP42 1 = TEMP42>
4061 <RESTL LL38 1 = WIN25 (TYPE LIST)>
4063 <RESTL WIN25 1 = WIN25 (TYPE LIST)>
4064 <PUTL WIN25 1 TEMP42>
4068 <SET WIN25 'T (TYPE ATOM)>
4071 <RESTUV TEMP32 1 = TEMP32 (TYPE VECTOR)>
4074 <VEQUAL? WIN25 0 - PHRASE46>
4076 <CONS SYM24 () = TEMP32>
4077 <FRAME '
\1aTYPE-MERGE>
4078 <FRAME '
\1aGET-CURRENT-TYPE>
4081 <CALL '
\1aGET-CURRENT-TYPE 1 = STACK>
4082 <RESTL L23 1 = SYM24 (TYPE LIST)>
4083 <NTHL SYM24 1 = STACK>
4085 <CALL '
\1aTYPE-MERGE 2 = SYM24>
4086 <CONS SYM24 () = WIN25>
4088 <PUTREST TEMP32 WIN25>
4089 <RESTL L23 1 = SYM24 (TYPE LIST)>
4091 <RESTL SYM24 1 = SYM24 (TYPE LIST)>
4092 <NTHL SYM24 1 = SYM24>
4093 <CONS SYM24 () = SYM24>
4094 <PUTREST WIN25 SYM24>
4096 <CONS TEMP32 () = TEMP32>
4097 <PUTREST TEMP32 TO5>
4102 <RESTL TEMP9 1 = TEMP9 (TYPE LIST)>
4105 <SET TEMP9 TOTUP7 (TYPE VECTOR)>
4110 <EMPUV? TEMP9 + MAPAP53>
4111 <NTHUV TEMP9 1 = SYM24>
4112 <TYPE? SYM24 <TYPE-CODE FALSE> + PHRASE58>
4113 <FRAME '
\1aTYPE-MERGE>
4114 <FRAME '
\1aGET-CURRENT-TYPE>
4115 <NTHL SYM24 1 = STACK (TYPE SYMTAB)>
4116 <CALL '
\1aGET-CURRENT-TYPE 1 = STACK>
4117 <RESTL SYM24 1 = WIN25 (TYPE LIST)>
4118 <NTHL WIN25 1 = STACK>
4120 <CALL '
\1aTYPE-MERGE 2 = WIN25>
4121 <RESTL SYM24 1 = SYM24 (TYPE LIST)>
4122 <PUTL SYM24 1 WIN25>
4125 <RESTUV TEMP9 1 = TEMP9 (TYPE VECTOR)>
4128 <SUB TEMP10 2 = TEMP10 (TYPE FIX)>
4135 <GFCN
\1aASSERT-TYPES ("VALUE" <OR FALSE SYMTAB> <LIST [REST <LIST SYMTAB ANY ANY>]>) L4>
4136 <TEMP TEMP14 TEMP11:LIST>
4138 <SET TEMP14 %<> (TYPE FALSE)>
4139 <SET TEMP11 L4 (TYPE LIST)>
4144 <EMPL? TEMP11 + MAPAP9>
4145 <NTHL TEMP11 1 = TEMP14>
4146 <FRAME '
\1aSET-CURRENT-TYPE>
4147 <NTHL TEMP14 1 = STACK (TYPE SYMTAB)>
4148 <RESTL TEMP14 1 = TEMP14 (TYPE LIST)>
4149 <NTHL TEMP14 1 = STACK>
4151 <CALL '
\1aSET-CURRENT-TYPE 2 = TEMP14>
4152 <RESTL TEMP11 1 = TEMP11 (TYPE LIST)>
4157 <END
\1aASSERT-TYPES>
4159 <GFCN
\1aADD-TYPE-LIST ("VALUE" LIST SYMTAB <OR ATOM FALSE FORM SEGMENT> LIST <OR ATOM FALSE> "OPTIONAL" <LIST [REST ATOM FIX]>) SYM6 NDECL7 INF8 MUNG9 NTH-REST10>
4160 <OPT-DISPATCH 4 %<> OPT4 OPT5>
4164 <TEMP (WIN11 %<>) OD12 TEMP16 L30:LIST TEMP33>
4166 <FRAME '
\1aGET-CURRENT-TYPE>
4168 <CALL '
\1aGET-CURRENT-TYPE 1 = OD12>
4169 <GEN-LVAL 'ANALY-OK = TEMP16>
4170 <TYPE? TEMP16 <TYPE-CODE FALSE> + PHRASE41>
4172 <FRAME '
\1aTYPE-NTH-REST>
4177 <CALL '
\1aTYPE-NTH-REST 2 = NDECL7>
4178 <SET TEMP16 INF8 (TYPE LIST)>
4182 <EMPL? TEMP16 + MAPAP24>
4183 <NTHL TEMP16 1 = L30>
4184 <NTHL L30 1 = TEMP33 (TYPE SYMTAB)>
4185 <VEQUAL? TEMP33 SYM6 - PHRASE32>
4187 <TYPE? MUNG9 <TYPE-CODE FALSE> + PHRASE35>
4188 <FRAME '
\1aTYPE-AND>
4192 <CALL '
\1aTYPE-AND 2 = TEMP33>
4195 <FRAME '
\1aTYPE-AND>
4198 <RESTL L30 1 = WIN11 (TYPE LIST)>
4199 <NTHL WIN11 1 = STACK>
4201 <CALL '
\1aTYPE-AND 2 = TEMP33>
4205 <RESTL L30 1 = WIN11 (TYPE LIST)>
4206 <PUTL WIN11 1 NDECL7>
4208 <RESTL L30 1 = WIN11 (TYPE LIST)>
4210 <RESTL WIN11 1 = WIN11 (TYPE LIST)>
4211 <PUTL WIN11 1 MUNG9>
4213 <SET WIN11 'T (TYPE ATOM)>
4216 <RESTL TEMP16 1 = TEMP16 (TYPE LIST)>
4219 <VEQUAL? WIN11 0 - PHRASE41>
4221 <FRAME '
\1aTYPE-AND>
4226 <CALL '
\1aTYPE-AND 2 = NDECL7>
4227 <CONS MUNG9 () = L30>
4229 <CONS NDECL7 L30 = L30>
4231 <CONS SYM6 L30 = L30>
4233 <CONS L30 INF8 = INF8>
4238 <END
\1aADD-TYPE-LIST>
4240 <GFCN
\1aTYPE-NTH-REST ("VALUE" ANY ANY <LIST [REST ATOM FIX]>) NDECL4 NTH-REST5>
4241 <TEMP FIRST9 NUM10:FIX TEMP16 TEMP18>
4243 <SET FIRST9 'T (TYPE ATOM)>
4244 <SET NUM10 0 (TYPE FIX)>
4248 <EMPL? NTH-REST5 - PHRASE13 (TYPE LIST)>
4252 <NTHL NTH-REST5 1 = TEMP16 (TYPE ATOM)>
4253 <VEQUAL? TEMP16 'NTH - PHRASE15>
4257 <SET TEMP18 2 (TYPE FIX)>
4258 <RESTL NTH-REST5 1 = FIRST9 (TYPE LIST)>
4259 <NTHL FIRST9 1 = FIRST9 (TYPE FIX)>
4260 <ADD FIRST9 NUM10 = FIRST9 (TYPE FIX)>
4262 <ADD FIRST9 -1 = NUM10 (TYPE FIX)>
4264 <VEQUAL? NUM10 0 - PHRASE20 (TYPE FIX)>
4265 <SET TEMP16 () (TYPE LIST)>
4268 <VEQUAL? NUM10 1 - PHRASE24 (TYPE FIX)>
4269 <CONS 'ANY () = TEMP16>
4275 <UBLOCK <TYPE-CODE VECTOR> 2 = FIRST9>
4276 <CONS FIRST9 () = TEMP16>
4279 <LOOP (TEMP16 VALUE) (TEMP18 VALUE)>
4282 <EMPL? TEMP16 + TAG17>
4283 <NTHL TEMP16 1 = STACK>
4284 <RESTL TEMP16 1 = TEMP16 (TYPE LIST)>
4285 <ADD TEMP18 1 = TEMP18 (TYPE FIX)>
4290 <CALL '
\1aFORM TEMP18 = NDECL4>
4292 <SET NUM10 0 (TYPE FIX)>
4293 <SET FIRST9 %<> (TYPE FALSE)>
4296 <VEQUAL? FIRST9 0 + PHRASE31>
4297 <FRAME '
\1aREST-DECL>
4300 <RESTL NTH-REST5 1 = TEMP18 (TYPE LIST)>
4301 <NTHL TEMP18 1 = STACK (TYPE FIX)>
4303 <CALL '
\1aREST-DECL 2 = NDECL4>
4306 <RESTL NTH-REST5 1 = TEMP18 (TYPE LIST)>
4307 <NTHL TEMP18 1 = TEMP18 (TYPE FIX)>
4308 <ADD TEMP18 NUM10 = NUM10 (TYPE FIX)>
4311 <RESTL NTH-REST5 1 = NTH-REST5 (TYPE LIST)>
4312 <RESTL NTH-REST5 1 = NTH-REST5 (TYPE LIST)>
4314 <END
\1aTYPE-NTH-REST>
4315 " AND/OR analyzer. Called from AND-ANA and OR-ANA."
4318 <GFCN
\1aBOOL-AN ("VALUE" ANY NODE ANY ANY) NOD4 RTYP5 ORER6>
4319 <TEMP L7 TEMP22 RTY10 TEMP28 FLG11 (SINF12:LIST ()) (FIRST15 'T) TEMP48:FIX TEMP53 LAST51 TY55 FNOK16 NFNOK17 PASS18 TEMP94 L-D34:LIST STR13:LIST SUNT14:LIST>
4321 <NTHUV NOD4 5 = L7 (TYPE LIST)>
4322 <FRAME '
\1aTYPE-OK?>
4325 <CALL '
\1aTYPE-OK? 2 = TEMP22>
4326 <TYPE? TEMP22 <TYPE-CODE FALSE> + PHRASE20>
4335 <CALL '
\1aFORM 3 = RTY10>
4337 <GEN-LVAL 'PRED = TEMP22>
4338 <NTHUV NOD4 2 = TEMP28>
4339 <EQUAL? TEMP22 TEMP28 - TAG25>
4340 <DEAD TEMP22 TEMP28>
4341 <SET FLG11 'T (TYPE ATOM)>
4344 <SET FLG11 %<> (TYPE FALSE)>
4346 <GETS 'BIND = TEMP28 (TYPE LBIND)>
4347 <BBIND 'TRUTH 'LIST 'FIX ()>
4348 <BBIND 'UNTRUTH 'LIST 'FIX ()>
4349 <BBIND 'PRED 'ANY 'FIX NOD4>
4350 <EMPL? L7 - PHRASE37 (TYPE LIST) (DEAD-JUMP TEMP53) (DEAD-FALL ORER6 NOD4 L-D34 FNOK16 FIRST15 SINF12 RTY10 L7)>
4351 <FRAME '
\1aTYPE-OK?>
4355 <CALL '
\1aTYPE-OK? 2>
4358 <SET TEMP22 L7 (TYPE LIST)>
4360 <SET TEMP48 0 (TYPE FIX)>
4361 <FRAME '
\1aTYPE-MERGE>
4365 <EMPL? TEMP22 + MAPAP44 (DEAD-JUMP RTYP5 NOD4 L-D34 FIRST15 SINF12 RTY10 TEMP22) (DEAD-FALL FNOK16)>
4367 <RESTL L7 1 = TEMP53 (TYPE LIST)>
4368 <EMPL? TEMP53 - TAG52 (TYPE LIST)>
4370 <SET LAST51 'T (TYPE ATOM)>
4373 <SET LAST51 %<> (TYPE FALSE)>
4375 <VEQUAL? LAST51 0 + PHRASE57>
4376 <VEQUAL? FLG11 0 - PHRASE57>
4377 <NTHR 'PRED 2 = TEMP53 (RECORD-TYPE ATOM) (TYPE LBIND)>
4378 <PUTR TEMP53 1 %<> (RECORD-TYPE LBIND)>
4382 <NTHL L7 1 = STACK (TYPE NODE)>
4383 <VEQUAL? LAST51 0 + PHRASE63>
4387 <TYPE? ORER6 <TYPE-CODE FALSE> + PHRASE64>
4391 <SET TEMP53 'ANY (TYPE ATOM)>
4395 <CALL '
\1aANA 2 = TY55>
4396 <EQUAL? TY55 'NO-RETURN + PEEP265>
4397 <FRAME '
\1aTYPE-OK?>
4400 <CALL '
\1aTYPE-OK? 2 = TEMP53>
4401 <TYPE? TEMP53 <TYPE-CODE FALSE> - TAG68>
4404 <SET FNOK16 'T (TYPE ATOM)>
4407 <SET FNOK16 %<> (TYPE FALSE)>
4411 <CALL '
\1aISTYPE? 1 = TEMP53>
4412 <VEQUAL? TEMP53 'FALSE - TAG71>
4414 <SET NFNOK17 'T (TYPE ATOM)>
4417 <SET NFNOK17 %<> (TYPE FALSE)>
4419 <TYPE? ORER6 <TYPE-CODE FALSE> + PHRASE75>
4420 <SET PASS18 NFNOK17>
4425 <TYPE? TY55 <TYPE-CODE FALSE> - PHRASE78 (DEAD-FALL TY55)>
4426 <SET TY55 'ANY (TYPE ATOM)>
4427 <FRAME '
\1aCOMPILE-WARNING>
4428 <PUSH "OR/AND clause returns wrong type: ">
4429 <NTHL L7 1 = STACK (TYPE NODE)>
4430 <CALL '
\1aCOMPILE-WARNING 2>
4432 <TYPE? ORER6 <TYPE-CODE FALSE> + PHRASE83>
4433 <TYPE? FNOK16 <TYPE-CODE FALSE> + PHRASE81>
4436 <TYPE? NFNOK17 <TYPE-CODE FALSE> + PHRASE81>
4438 <GEN-LVAL 'VERBOSE = TEMP53>
4439 <TYPE? TEMP53 <TYPE-CODE FALSE> + PHRASE86 (DEAD-JUMP LAST51)>
4441 <VEQUAL? LAST51 0 - PHRASE86>
4443 <FRAME '
\1aADDVMESS>
4445 <EQUAL? TY55 'NO-RETURN - PHRASE92>
4446 <SET TEMP53 (" it never returns ") (TYPE LIST)>
4449 <CONS TY55 () = TEMP53>
4450 <CONS " its type is: " TEMP53 = TEMP53>
4452 <NTHL L7 1 = TEMP94 (TYPE NODE)>
4453 <CONS TEMP94 TEMP53 = TEMP53>
4455 <CONS "This object prematurely ends AND/OR: " TEMP53 = STACK>
4457 <CALL '
\1aADDVMESS 2>
4459 <SET LAST51 'T (TYPE ATOM)>
4461 <EQUAL? TY55 'NO-RETURN + PHRASE96 (DEAD-JUMP PASS18)>
4462 <TYPE? PASS18 <TYPE-CODE FALSE> - PHRASE96>
4464 <VEQUAL? FIRST15 0 + PHRASE99 (DEAD-FALL SUNT14 STR13 L-D34 SINF12)>
4466 <FRAME '
\1aSAVE-L-D-STATE>
4467 <GEN-LVAL 'VARTBL = STACK>
4468 <CALL '
\1aSAVE-L-D-STATE 1 = L-D34>
4470 <FRAME '
\1aCOPY-TYPE-LIST>
4471 <NTHR 'TRUTH 2 = TEMP94 (RECORD-TYPE ATOM) (TYPE LBIND)>
4472 <NTHR TEMP94 1 = STACK (RECORD-TYPE LBIND)>
4474 <CALL '
\1aCOPY-TYPE-LIST 1 = STACK>
4475 <FRAME '
\1aBUILD-TYPE-LIST>
4476 <GEN-LVAL 'VARTBL = STACK>
4478 <CALL '
\1aBUILD-TYPE-LIST 2 = STACK>
4479 <CALL '
\1aANDUP 2 = STR13>
4481 <FRAME '
\1aCOPY-TYPE-LIST>
4482 <NTHR 'UNTRUTH 2 = FIRST15 (RECORD-TYPE ATOM) (TYPE LBIND)>
4483 <NTHR FIRST15 1 = STACK (RECORD-TYPE LBIND)>
4485 <CALL '
\1aCOPY-TYPE-LIST 1 = STACK>
4486 <FRAME '
\1aBUILD-TYPE-LIST>
4487 <GEN-LVAL 'VARTBL = STACK>
4489 <CALL '
\1aBUILD-TYPE-LIST 2 = STACK>
4490 <CALL '
\1aANDUP 2 = SUNT14>
4492 <TYPE? ORER6 <TYPE-CODE FALSE> + PHRASE120>
4493 <NTHR 'TRUTH 2 = FIRST15 (RECORD-TYPE ATOM) (TYPE LBIND)>
4496 <NTHR 'UNTRUTH 2 = FIRST15 (RECORD-TYPE ATOM) (TYPE LBIND)>
4498 <NTHR FIRST15 1 = FIRST15 (RECORD-TYPE LBIND)>
4501 <FRAME '
\1aMSAVE-L-D-STATE>
4504 <GEN-LVAL 'VARTBL = STACK>
4505 <CALL '
\1aMSAVE-L-D-STATE 2 = L-D34>
4506 <TYPE? ORER6 <TYPE-CODE FALSE> + PHRASE136>
4508 <NTHR 'UNTRUTH 2 = FIRST15 (RECORD-TYPE ATOM) (TYPE LBIND)>
4509 <NTHR FIRST15 1 = STACK (RECORD-TYPE LBIND)>
4512 <GEN-LVAL 'VARTBL = STACK>
4515 <CALL '
\1aANDUPC 2 = STACK>
4516 <CALL '
\1aANDUP 2 = SUNT14>
4520 <NTHR 'TRUTH 2 = FIRST15 (RECORD-TYPE ATOM) (TYPE LBIND)>
4521 <NTHR FIRST15 1 = STACK (RECORD-TYPE LBIND)>
4523 <CALL '
\1aORUP 2 = STR13>
4529 <NTHR 'UNTRUTH 2 = FIRST15 (RECORD-TYPE ATOM) (TYPE LBIND)>
4530 <NTHR FIRST15 1 = STACK (RECORD-TYPE LBIND)>
4532 <CALL '
\1aORUP 2 = SUNT14>
4534 <NTHR 'TRUTH 2 = FIRST15 (RECORD-TYPE ATOM) (TYPE LBIND)>
4535 <NTHR FIRST15 1 = STACK (RECORD-TYPE LBIND)>
4538 <GEN-LVAL 'VARTBL = STACK>
4541 <CALL '
\1aANDUPC 2 = STACK>
4542 <CALL '
\1aANDUP 2 = STR13>
4545 <TYPE? ORER6 <TYPE-CODE FALSE> + PHRASE160>
4546 <NTHR 'TRUTH 2 = FIRST15 (RECORD-TYPE ATOM) (TYPE LBIND)>
4549 <NTHR 'UNTRUTH 2 = FIRST15 (RECORD-TYPE ATOM) (TYPE LBIND)>
4551 <NTHR FIRST15 1 = FIRST15 (RECORD-TYPE LBIND)>
4555 <GEN-LVAL 'VARTBL = STACK>
4558 <CALL '
\1aORUPC 2 = STACK>
4559 <CALL '
\1aORUP 2 = SINF12>
4562 <VEQUAL? FIRST15 0 - PHRASE171>
4563 <TYPE? ORER6 <TYPE-CODE FALSE> + PHRASE173>
4565 <GEN-LVAL 'VARTBL = STACK>
4568 <CALL '
\1aANDUPC 2 = SUNT14>
4572 <GEN-LVAL 'VARTBL = STACK>
4575 <CALL '
\1aANDUPC 2 = STR13>
4578 <GEN-LVAL 'VARTBL = STACK>
4581 <CALL '
\1aORUPC 2 = SINF12>
4585 <FRAME '
\1aCOPY-TYPE-LIST>
4586 <NTHR 'TRUTH 2 = FIRST15 (RECORD-TYPE ATOM) (TYPE LBIND)>
4587 <NTHR FIRST15 1 = STACK (RECORD-TYPE LBIND)>
4588 <CALL '
\1aCOPY-TYPE-LIST 1 = STACK>
4589 <FRAME '
\1aBUILD-TYPE-LIST>
4590 <GEN-LVAL 'VARTBL = STACK>
4592 <CALL '
\1aBUILD-TYPE-LIST 2 = STACK>
4593 <CALL '
\1aANDUP 2 = STR13>
4595 <FRAME '
\1aCOPY-TYPE-LIST>
4596 <NTHR 'UNTRUTH 2 = FIRST15 (RECORD-TYPE ATOM) (TYPE LBIND)>
4597 <NTHR FIRST15 1 = STACK (RECORD-TYPE LBIND)>
4598 <CALL '
\1aCOPY-TYPE-LIST 1 = STACK>
4599 <FRAME '
\1aBUILD-TYPE-LIST>
4600 <GEN-LVAL 'VARTBL = STACK>
4602 <CALL '
\1aBUILD-TYPE-LIST 2 = STACK>
4603 <CALL '
\1aANDUP 2 = SUNT14>
4605 <TYPE? ORER6 <TYPE-CODE FALSE> + PHRASE205>
4606 <NTHR 'TRUTH 2 = TEMP53 (RECORD-TYPE ATOM) (TYPE LBIND)>
4609 <NTHR 'UNTRUTH 2 = TEMP53 (RECORD-TYPE ATOM) (TYPE LBIND)>
4611 <NTHR TEMP53 1 = FIRST15 (RECORD-TYPE LBIND)>
4615 <FRAME '
\1aBUILD-TYPE-LIST>
4616 <GEN-LVAL 'VARTBL = STACK>
4617 <CALL '
\1aBUILD-TYPE-LIST 1 = STACK>
4618 <CALL '
\1aANDUP 2 = SINF12>
4620 <SET FIRST15 %<> (TYPE FALSE)>
4622 <FRAME '
\1aASSERT-TYPES>
4623 <TYPE? ORER6 <TYPE-CODE FALSE> + PHRASE218>
4631 <CALL '
\1aASSERT-TYPES 1>
4632 <NTHR 'UNTRUTH 2 = TEMP53 (RECORD-TYPE ATOM) (TYPE LBIND)>
4633 <PUTR TEMP53 1 () (RECORD-TYPE LBIND)>
4635 <NTHR 'TRUTH 2 = TEMP53 (RECORD-TYPE ATOM) (TYPE LBIND)>
4636 <PUTR TEMP53 1 () (RECORD-TYPE LBIND)>
4638 <FRAME '
\1aRESTORE-L-D-STATE>
4640 <GEN-LVAL 'VARTBL = STACK>
4641 <CALL '
\1aRESTORE-L-D-STATE 2>
4642 <EQUAL? TY55 'NO-RETURN - PHRASE229 (DEAD-JUMP L7) (DEAD-FALL RTYP5 NOD4 L-D34 NFNOK17 TY55 FIRST15 FLG11 RTY10 TEMP22)>
4643 <VEQUAL? LAST51 0 - PHRASE231 (DEAD-JUMP L7)>
4645 <FRAME '
\1aCOMPILE-WARNING>
4646 <PUSH "AND/OR clause is unreachable: ">
4647 <NTHL L7 1 = STACK (TYPE NODE)>
4649 <CALL '
\1aCOMPILE-WARNING 2>
4651 <SET FLG11 %<> (TYPE FALSE)>
4652 <FRAME '
\1aASSERT-TYPES>
4655 <CALL '
\1aASSERT-TYPES 1>
4659 <VEQUAL? LAST51 0 + PHRASE235 (DEAD-FALL RTYP5 NOD4 L-D34 NFNOK17 FIRST15 RTY10 TEMP22)>
4661 <FRAME '
\1aASSERT-TYPES>
4663 <GEN-LVAL 'VARTBL = STACK>
4666 <CALL '
\1aORUPC 2 = STACK>
4667 <CALL '
\1aASSERT-TYPES 1>
4671 <ADD TEMP48 1 = TEMP48 (TYPE FIX)>
4674 <TYPE? ORER6 <TYPE-CODE FALSE> + PHRASE242 (DEAD-JUMP NFNOK17)>
4675 <TYPE? NFNOK17 <TYPE-CODE FALSE> - MAP42 (DEAD-JUMP TY55)>
4678 <TYPE? ORER6 <TYPE-CODE FALSE> - PHRASE249 (DEAD-FALL TY55)>
4679 <TYPE? FNOK16 <TYPE-CODE FALSE> - MAP42>
4680 <SET TY55 'FALSE (TYPE ATOM)>
4684 <ADD TEMP48 1 = TEMP48 (TYPE FIX)>
4686 <RESTL TEMP22 1 = TEMP22 (TYPE LIST)>
4689 <CALL '
\1aTYPE-MERGE TEMP48 = TEMP53>
4691 <TYPE? FNOK16 <TYPE-CODE FALSE> + PHRASE251 (DEAD-JUMP ORER6)>
4693 <TYPE? ORER6 <TYPE-CODE FALSE> + PHRASE251>
4695 <FRAME '
\1aTYPE-OK?>
4699 <CALL '
\1aTYPE-OK? 2 = TEMP53>
4704 <VEQUAL? FLG11 0 + PHRASE255 (DEAD-JUMP SUNT14 STR13)>
4706 <GEN-SET 'TRUTH STR13>
4708 <GEN-SET 'UNTRUTH SUNT14>
4715 <GFCN
\1aCOPY-TYPE-LIST ("VALUE" <LIST [REST <LIST ANY ANY ANY>]> LIST) L4>
4716 <TEMP TEMP14 TEMP12 TEMP11:LIST LL16:LIST TEMP17 TEMP18>
4718 <SET TEMP14 () (TYPE LIST)>
4719 <SET TEMP12 () (TYPE LIST)>
4720 <SET TEMP11 L4 (TYPE LIST)>
4725 <EMPL? TEMP11 + MAPAP9>
4726 <NTHL TEMP11 1 = LL16>
4727 <RESTL LL16 1 = TEMP17 (TYPE LIST)>
4728 <RESTL TEMP17 1 = TEMP17 (TYPE LIST)>
4729 <NTHL TEMP17 1 = TEMP17>
4730 <CONS TEMP17 () = TEMP17>
4731 <RESTL LL16 1 = TEMP18 (TYPE LIST)>
4732 <NTHL TEMP18 1 = TEMP18>
4733 <CONS TEMP18 TEMP17 = TEMP17>
4735 <NTHL LL16 1 = TEMP18>
4737 <CONS TEMP18 TEMP17 = TEMP17>
4739 <CONS TEMP17 () = TEMP17 (TYPE LIST)>
4740 <EMPL? TEMP14 - TAG19>
4741 <SET TEMP14 TEMP17 (TYPE LIST)>
4744 <PUTREST TEMP12 TEMP17>
4747 <SET TEMP12 TEMP17 (TYPE LIST)>
4749 <RESTL TEMP11 1 = TEMP11 (TYPE LIST)>
4754 <END
\1aCOPY-TYPE-LIST>
4756 <GFCN
\1aAND-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
4759 <PUTUV NOD4 1 13 (TYPE FIX)>
4766 <CALL '
\1aBOOL-AN 3 = TEMP7>
4770 <COND (<GASSIGNED? AND-ANA> <PUTPROP ,AND ANALYSIS ,AND-ANA>)>
4773 <GFCN
\1aOR-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
4776 <PUTUV NOD4 1 12 (TYPE FIX)>
4783 <CALL '
\1aBOOL-AN 3 = TEMP7>
4787 <COND (<GASSIGNED? OR-ANA> <PUTPROP ,OR ANALYSIS ,OR-ANA>)>
4792 <GFCN
\1aCASE-ANA ("VALUE" ANY ANY ANY) N4 R5>
4795 <FRAME '
\1aCOND-CASE>
4801 <CALL '
\1aCOND-CASE 3 = TEMP7>
4806 <GFCN
\1aCOND-ANA ("VALUE" ANY ANY ANY) N4 R5>
4809 <FRAME '
\1aCOND-CASE>
4815 <CALL '
\1aCOND-CASE 3 = TEMP7>
4820 <GFCN
\1aCOND-CASE ("VALUE" ANY NODE ANY ANY) NOD4 RTYP5 CASE?6>
4821 <TEMP L7 (FIRST8 'T) (LAST9 %<>) (FIRST115 'T) (DFLG17 %<>) TEMP22 TEMP25 PRED-FLG20 TINF130:LIST TINF31:LIST PRAT16 TST-TYP18 SVWHO19:LIST TEMP59:FIX BR62 EC63 TEMP68 TT10 NFNOK12 TEMP114 STR164:LIST SUNT165:LIST L-D32:LIST STR13 SUNT14 L-D133:LIST>
4823 <NTHUV NOD4 5 = L7 (TYPE LIST)>
4824 <GEN-LVAL 'PRED = TEMP22>
4825 <NTHUV NOD4 2 = TEMP25>
4826 <EQUAL? TEMP22 TEMP25 - TAG21>
4827 <DEAD TEMP22 TEMP25>
4828 <SET PRED-FLG20 'T (TYPE ATOM)>
4831 <SET PRED-FLG20 %<> (TYPE FALSE)>
4833 <GETS 'BIND = TEMP25 (TYPE LBIND)>
4834 <BBIND 'TRUTH 'LIST 'FIX ()>
4835 <BBIND 'UNTRUTH 'LIST 'FIX ()>
4836 <SET TINF130 () (TYPE LIST)>
4837 <SET TINF31 () (TYPE LIST)>
4838 <GEN-LVAL 'PRED = TEMP22>
4839 <BBIND 'PRED <OR FALSE NODE> 'FIX TEMP22>
4841 <EMPL? L7 - PHRASE39 (TYPE LIST)>
4842 <FRAME '
\1aTYPE-OK?>
4846 <CALL '
\1aTYPE-OK? 2>
4849 <TYPE? CASE?6 <TYPE-CODE FALSE> + PHRASE43>
4850 <NTHL L7 1 = TEMP22 (TYPE NODE)>
4851 <NTHUV TEMP22 5 = TEMP22 (TYPE LIST)>
4852 <NTHL TEMP22 1 = TEMP22 (TYPE NODE)>
4853 <NTHUV TEMP22 4 = PRAT16>
4855 <GETS 'BIND = TEMP22 (TYPE LBIND)>
4856 <BBIND 'WHON 'NODE 'FIX NOD4>
4857 <BBIND 'WHO 'LIST 'FIX ()>
4859 <RESTL L7 1 = LAST9 (TYPE LIST)>
4860 <NTHL LAST9 1 = STACK (TYPE NODE)>
4864 <CALL '
\1aEANA 3 = TST-TYP18>
4865 <NTHR 'WHO 2 = LAST9 (RECORD-TYPE ATOM) (TYPE LBIND)>
4866 <NTHR LAST9 1 = SVWHO19 (RECORD-TYPE LBIND)>
4871 <RESTL L7 1 = L7 (TYPE LIST)>
4872 <RESTL L7 1 = L7 (TYPE LIST)>
4874 <SET TEMP22 L7 (TYPE LIST)>
4876 <SET TEMP59 0 (TYPE FIX)>
4877 <FRAME '
\1aTYPE-MERGE>
4881 <EMPL? TEMP22 + MAPAP56>
4883 <NTHL L7 1 = BR62 (TYPE NODE)>
4884 <SET EC63 'T (TYPE ATOM)>
4885 <NTHUV BR62 1 = TEMP68 (TYPE FIX)>
4886 <VEQUAL? TEMP68 2 + PHRASE67 (TYPE FIX)>
4890 <NTHR 'PRED 2 = TEMP68 (RECORD-TYPE ATOM) (TYPE LBIND)>
4891 <PUTR TEMP68 1 BR62 (RECORD-TYPE LBIND)>
4893 <TYPE? CASE?6 <TYPE-CODE FALSE> + PHRASE72>
4894 <NTHUV BR62 1 = TEMP68 (TYPE FIX)>
4895 <VEQUAL? TEMP68 2 - PHRASE72 (TYPE FIX)>
4897 <SET DFLG17 'T (TYPE ATOM)>
4900 <NTHUV BR62 4 = TEMP68>
4901 <TYPE? TEMP68 <TYPE-CODE FALSE> - PHRASE76>
4903 <FRAME '
\1aCOMPILE-ERROR>
4904 <PUSH "Empty COND clause: ">
4906 <CALL '
\1aCOMPILE-ERROR 2>
4908 <NTHR 'TRUTH 2 = TEMP68 (RECORD-TYPE ATOM) (TYPE LBIND)>
4909 <PUTR TEMP68 1 () (RECORD-TYPE LBIND)>
4911 <NTHR 'UNTRUTH 2 = TEMP68 (RECORD-TYPE ATOM) (TYPE LBIND)>
4912 <PUTR TEMP68 1 () (RECORD-TYPE LBIND)>
4914 <RESTL L7 1 = TEMP68 (TYPE LIST)>
4916 <EMPL? TEMP68 - TAG82 (TYPE LIST)>
4918 <SET LAST9 'T (TYPE ATOM)>
4921 <SET LAST9 %<> (TYPE FALSE)>
4923 <NTHUV BR62 5 = TEMP68 (TYPE LIST)>
4924 <EMPL? TEMP68 + PHRASE85 (TYPE LIST)>
4926 <SET EC63 %<> (TYPE FALSE)>
4927 <SET TT10 'ANY (TYPE ATOM)>
4930 <VEQUAL? LAST9 0 + PHRASE86>
4934 <FRAME '
\1aTYPE-MERGE>
4937 <CALL '
\1aTYPE-MERGE 2 = TT10>
4939 <TYPE? CASE?6 <TYPE-CODE FALSE> + PHRASE90>
4940 <FRAME '
\1aSPEC-ANA>
4941 <NTHUV BR62 4 = TEMP68>
4942 <NTHUV TEMP68 4 = STACK>
4952 <CALL '
\1aSPEC-ANA 7 = TT10>
4956 <NTHUV BR62 4 = STACK (TYPE NODE)>
4959 <CALL '
\1aANA 2 = TT10>
4961 <SET DFLG17 %<> (TYPE FALSE)>
4962 <NTHR 'PRED 2 = TEMP68 (RECORD-TYPE ATOM) (TYPE LBIND)>
4963 <PUTR TEMP68 1 DFLG17 (RECORD-TYPE LBIND)>
4965 <EQUAL? TT10 'NO-RETURN - TAG97>
4966 <SET L7 'T (TYPE ATOM)>
4969 <FRAME '
\1aTYPE-OK?>
4972 <CALL '
\1aTYPE-OK? 2 = TEMP68>
4973 <TYPE? TEMP68 <TYPE-CODE FALSE> - TAG98>
4975 <SET L7 'T (TYPE ATOM)>
4978 <SET L7 %<> (TYPE FALSE)>
4982 <CALL '
\1aISTYPE? 1 = TEMP68>
4983 <VEQUAL? TEMP68 'FALSE - TAG101>
4985 <SET NFNOK12 'T (TYPE ATOM)>
4988 <SET NFNOK12 %<> (TYPE FALSE)>
4990 <GEN-LVAL 'VERBOSE = TEMP68>
4991 <TYPE? TEMP68 <TYPE-CODE FALSE> + PHRASE116>
4993 <VEQUAL? NFNOK12 0 + PHRASE109>
4994 <FRAME '
\1aADDVMESS>
4996 <NTHUV BR62 5 = TEMP68 (TYPE LIST)>
4997 <EMPL? TEMP68 - PHRASE112 (TYPE LIST)>
4999 <SET TEMP68 () (TYPE LIST)>
5002 <CONS " and non-reachable code in clause." () = TEMP68>
5004 <NTHUV BR62 4 = TEMP114>
5005 <CONS TEMP114 TEMP68 = TEMP68>
5007 <CONS "Cond predicate always FALSE: " TEMP68 = STACK>
5009 <CALL '
\1aADDVMESS 2>
5011 <VEQUAL? L7 0 + PHRASE116>
5012 <VEQUAL? LAST9 0 - PHRASE116>
5013 <FRAME '
\1aADDVMESS>
5015 <CONS TT10 () = TEMP68>
5016 <CONS " type of value: " TEMP68 = TEMP68>
5017 <NTHUV BR62 4 = TEMP114>
5018 <CONS TEMP114 TEMP68 = TEMP68>
5020 <CONS "Cond ended prematurely because predicate always true: " TEMP68 = STACK>
5022 <CALL '
\1aADDVMESS 2>
5024 <TYPE? PRED-FLG20 <TYPE-CODE FALSE> + PHRASE120>
5026 <FRAME '
\1aCOPY-TYPE-LIST>
5027 <NTHR 'TRUTH 2 = TEMP68 (RECORD-TYPE ATOM) (TYPE LBIND)>
5028 <NTHR TEMP68 1 = STACK (RECORD-TYPE LBIND)>
5030 <CALL '
\1aCOPY-TYPE-LIST 1 = STACK>
5031 <FRAME '
\1aBUILD-TYPE-LIST>
5032 <GEN-LVAL 'VARTBL = STACK>
5034 <CALL '
\1aBUILD-TYPE-LIST 2 = STACK>
5035 <CALL '
\1aANDUP 2 = STR164>
5037 <FRAME '
\1aCOPY-TYPE-LIST>
5038 <NTHR 'UNTRUTH 2 = TEMP114 (RECORD-TYPE ATOM) (TYPE LBIND)>
5039 <NTHR TEMP114 1 = STACK (RECORD-TYPE LBIND)>
5041 <CALL '
\1aCOPY-TYPE-LIST 1 = STACK>
5042 <FRAME '
\1aBUILD-TYPE-LIST>
5043 <GEN-LVAL 'VARTBL = STACK>
5045 <CALL '
\1aBUILD-TYPE-LIST 2 = STACK>
5046 <CALL '
\1aANDUP 2 = SUNT165>
5048 <VEQUAL? L7 0 - PHRASE136>
5049 <VEQUAL? LAST9 0 - BOOL138>
5050 <VEQUAL? NFNOK12 0 - PHRASE136>
5052 <FRAME '
\1aSAVE-L-D-STATE>
5053 <GEN-LVAL 'VARTBL = STACK>
5054 <CALL '
\1aSAVE-L-D-STATE 1 = L-D32>
5055 <VEQUAL? FIRST8 0 + PHRASE144>
5058 <NTHR 'UNTRUTH 2 = FIRST8 (RECORD-TYPE ATOM) (TYPE LBIND)>
5059 <NTHR FIRST8 1 = STACK (RECORD-TYPE LBIND)>
5061 <FRAME '
\1aBUILD-TYPE-LIST>
5062 <GEN-LVAL 'VARTBL = STACK>
5063 <CALL '
\1aBUILD-TYPE-LIST 1 = STACK>
5064 <CALL '
\1aANDUP 2 = TINF31>
5068 <NTHR 'UNTRUTH 2 = FIRST8 (RECORD-TYPE ATOM) (TYPE LBIND)>
5069 <NTHR FIRST8 1 = STACK (RECORD-TYPE LBIND)>
5072 <GEN-LVAL 'VARTBL = STACK>
5075 <CALL '
\1aORUPC 2 = STACK>
5076 <CALL '
\1aANDUP 2 = TINF31>
5078 <VEQUAL? EC63 0 - PHRASE161>
5079 <FRAME '
\1aASSERT-TYPES>
5080 <NTHR 'TRUTH 2 = TEMP68 (RECORD-TYPE ATOM) (TYPE LBIND)>
5081 <NTHR TEMP68 1 = STACK (RECORD-TYPE LBIND)>
5083 <CALL '
\1aASSERT-TYPES 1>
5085 <SET FIRST8 %<> (TYPE FALSE)>
5087 <VEQUAL? NFNOK12 0 - PHRASE167>
5088 <VEQUAL? EC63 0 - BOOL169>
5090 <NTHUV BR62 5 = STACK (TYPE LIST)>
5093 <CALL '
\1aSEQ-AN 3 = TT10>
5094 <TYPE? TT10 <TYPE-CODE FALSE> + PHRASE167>
5096 <EQUAL? TT10 'NO-RETURN + PHRASE172>
5097 <TYPE? PRED-FLG20 <TYPE-CODE FALSE> + PHRASE193>
5098 <VEQUAL? EC63 0 + PHRASE176>
5099 <VEQUAL? FIRST115 0 + PHRASE178>
5101 <SET SUNT14 SUNT165>
5108 <CALL '
\1aORUP 2 = STR13>
5113 <CALL '
\1aANDUP 2 = SUNT14>
5116 <VEQUAL? FIRST115 0 + PHRASE182>
5118 <NTHR 'TRUTH 2 = TEMP68 (RECORD-TYPE ATOM) (TYPE LBIND)>
5119 <NTHR TEMP68 1 = STACK (RECORD-TYPE LBIND)>
5122 <GEN-LVAL 'VARTBL = STACK>
5124 <CALL '
\1aANDUPC 2 = STACK>
5125 <CALL '
\1aANDUP 2 = STR13>
5128 <NTHR 'UNTRUTH 2 = TEMP68 (RECORD-TYPE ATOM) (TYPE LBIND)>
5129 <NTHR TEMP68 1 = STACK (RECORD-TYPE LBIND)>
5131 <CALL '
\1aORUP 2 = SUNT14>
5138 <NTHR 'TRUTH 2 = TEMP68 (RECORD-TYPE ATOM) (TYPE LBIND)>
5139 <NTHR TEMP68 1 = STACK (RECORD-TYPE LBIND)>
5142 <CALL '
\1aANDUP 2 = STACK>
5143 <CALL '
\1aORUP 2 = STR13>
5149 <NTHR 'UNTRUTH 2 = TEMP68 (RECORD-TYPE ATOM) (TYPE LBIND)>
5150 <NTHR TEMP68 1 = STACK (RECORD-TYPE LBIND)>
5152 <CALL '
\1aORUP 2 = STACK>
5153 <CALL '
\1aANDUP 2 = SUNT14>
5155 <VEQUAL? FIRST115 0 + PHRASE203>
5157 <FRAME '
\1aBUILD-TYPE-LIST>
5158 <GEN-LVAL 'VARTBL = STACK>
5159 <CALL '
\1aBUILD-TYPE-LIST 1 = TINF130>
5160 <FRAME '
\1aSAVE-L-D-STATE>
5161 <GEN-LVAL 'VARTBL = STACK>
5162 <CALL '
\1aSAVE-L-D-STATE 1 = L-D133>
5166 <GEN-LVAL 'VARTBL = STACK>
5169 <CALL '
\1aORUPC 2 = TINF130>
5170 <FRAME '
\1aMSAVE-L-D-STATE>
5173 <GEN-LVAL 'VARTBL = STACK>
5174 <CALL '
\1aMSAVE-L-D-STATE 2 = L-D133>
5176 <SET FIRST115 %<> (TYPE FALSE)>
5178 <VEQUAL? FIRST8 0 - BOOL220>
5179 <FRAME '
\1aRESTORE-L-D-STATE>
5181 <GEN-LVAL 'VARTBL = STACK>
5182 <CALL '
\1aRESTORE-L-D-STATE 2>
5184 <VEQUAL? LAST9 0 + PHRASE226>
5185 <VEQUAL? L7 0 - PHRASE231>
5186 <FRAME '
\1aTYPE-MERGE>
5190 <CALL '
\1aTYPE-MERGE 2 = TT10>
5193 <VEQUAL? EC63 0 + PHRASE231>
5195 <FRAME '
\1aTYPE-OK?>
5199 <CALL '
\1aTYPE-OK? 2 = TT10>
5202 <VEQUAL? NFNOK12 0 + PHRASE231>
5204 <SET TT10 'FALSE (TYPE ATOM)>
5206 <FRAME '
\1aUPDATE-SIDE-EFFECTS>
5210 <CALL '
\1aUPDATE-SIDE-EFFECTS 2>
5211 <VEQUAL? LAST9 0 - BOOL236>
5213 <VEQUAL? L7 0 + PHRASE234>
5215 <TYPE? TT10 <TYPE-CODE FALSE> + PHRASE234>
5216 <VEQUAL? L7 0 + PHRASE238>
5218 <FRAME '
\1aASSERT-TYPES>
5221 <CALL '
\1aASSERT-TYPES 1>
5222 <VEQUAL? FIRST115 0 - PHRASE254>
5224 <FRAME '
\1aRESTORE-L-D-STATE>
5227 <GEN-LVAL 'VARTBL = STACK>
5228 <CALL '
\1aRESTORE-L-D-STATE 2>
5231 <VEQUAL? FIRST115 0 + PHRASE247>
5233 <FRAME '
\1aASSERT-TYPES>
5236 <CALL '
\1aASSERT-TYPES 1>
5237 <VEQUAL? FIRST8 0 - PHRASE254>
5239 <FRAME '
\1aRESTORE-L-D-STATE>
5242 <GEN-LVAL 'VARTBL = STACK>
5243 <CALL '
\1aRESTORE-L-D-STATE 2>
5246 <FRAME '
\1aASSERT-TYPES>
5252 <CALL '
\1aORUP 2 = STACK>
5253 <CALL '
\1aASSERT-TYPES 1>
5254 <FRAME '
\1aMRESTORE-L-D-STATE>
5259 <GEN-LVAL 'VARTBL = STACK>
5260 <CALL '
\1aMRESTORE-L-D-STATE 3>
5264 <ADD TEMP59 1 = TEMP59 (TYPE FIX)>
5267 <TYPE? TT10 <TYPE-CODE FALSE> + PHRASE262>
5268 <FRAME '
\1aASSERT-TYPES>
5270 <CALL '
\1aASSERT-TYPES 1>
5273 <FRAME '
\1aASSERT-TYPES>
5275 <CALL '
\1aASSERT-TYPES 1>
5280 <ADD TEMP59 1 = TEMP59 (TYPE FIX)>
5282 <RESTL TEMP22 1 = TEMP22 (TYPE LIST)>
5285 <CALL '
\1aTYPE-MERGE TEMP59 = TT10>
5291 <TYPE? PRED-FLG20 <TYPE-CODE FALSE> + PHRASE269>
5293 <GEN-SET 'TRUTH STR13>
5295 <GEN-SET 'UNTRUTH SUNT14>
5301 " PROG/REPEAT analyzer. Hacks bindings and sets up info for GO/RETURN/AGAIN
5305 <GFCN
\1aPRG-REP-ANA ("VALUE" ANY NODE ANY) PPNOD4 RT5>
5306 <TEMP TEMP13 TEMP3:LBIND TEMP16 OPN10 TEMP25 L-D9:LIST TEMP50 STMPS49:FIX SHTMPS53:FIX LL56:LIST TEMP65 TEMP85 TT8>
5308 <GEN-LVAL 'VARTBL = TEMP13>
5309 <GETS 'BIND = TEMP3 (TYPE LBIND)>
5310 <NTHUV PPNOD4 11 = TEMP16 (TYPE SYMTAB)>
5311 <BBIND 'VARTBL 'SYMTAB 'FIX TEMP16>
5313 <GEN-ASSIGNED? 'PNOD + TAG18>
5314 <SET TEMP16 %<> (TYPE FALSE)>
5317 <GEN-LVAL 'PNOD = TEMP16>
5321 <BBIND 'PNOD 'NODE 'FIX>
5322 <NTHUV PPNOD4 9 = TEMP16>
5323 <GVAL 'BIND = TEMP25>
5324 <EQUAL? TEMP16 TEMP25 + PHRASE24>
5325 <DEAD TEMP16 TEMP25>
5326 <NTHR 'PNOD 2 = TEMP25 (RECORD-TYPE ATOM) (TYPE LBIND)>
5327 <PUTR TEMP25 1 PPNOD4 (RECORD-TYPE LBIND)>
5331 <TYPE? OPN10 <TYPE-CODE FALSE> + PHRASE28>
5332 <NTHR 'PNOD 2 = TEMP25 (RECORD-TYPE ATOM) (TYPE LBIND)>
5333 <PUTR TEMP25 1 OPN10 (RECORD-TYPE LBIND)>
5336 <GETS 'BIND = TEMP25 (TYPE LBIND)>
5337 <BBIND 'TMPS 'FIX 'FIX 0>
5338 <BBIND 'HTMPS 'FIX 'FIX 0>
5340 <NTHUV PPNOD4 10 = STACK (TYPE LIST)>
5342 <CALL '
\1aACTIV? 2 = OPN10>
5344 <NTHUV PPNOD4 10 = STACK (TYPE LIST)>
5345 <CALL '
\1aBIND-AN 1>
5346 <FRAME '
\1aSAVE-L-D-STATE>
5347 <NTHR 'VARTBL 2 = TEMP16 (RECORD-TYPE ATOM) (TYPE LBIND)>
5348 <NTHR TEMP16 1 = STACK (RECORD-TYPE LBIND)>
5350 <CALL '
\1aSAVE-L-D-STATE 1 = L-D9>
5351 <FRAME '
\1aRESET-VARS>
5352 <NTHR 'VARTBL 2 = TEMP16 (RECORD-TYPE ATOM) (TYPE LBIND)>
5353 <NTHR TEMP16 1 = STACK (RECORD-TYPE LBIND)>
5357 <CALL '
\1aRESET-VARS 3>
5358 <FRAME '
\1aTYPE-OK?>
5360 <NTHUV PPNOD4 17 = STACK>
5361 <CALL '
\1aTYPE-OK? 2 = TEMP16>
5362 <TYPE? TEMP16 <TYPE-CODE FALSE> - PHRASE45>
5363 <FRAME '
\1aCOMPILE-ERROR>
5364 <PUSH "Required type of PROG/REPEAT call violates its decl.">
5365 <PUSH "Required type is ">
5368 <PUSH " and value decl is ">
5369 <NTHUV PPNOD4 17 = STACK>
5370 <CALL '
\1aCOMPILE-ERROR 5>
5372 <PUTUV PPNOD4 3 TEMP16>
5373 <NTHR 'TMPS 2 = TEMP50 (RECORD-TYPE ATOM) (TYPE LBIND)>
5374 <NTHR TEMP50 1 = STMPS49 (RECORD-TYPE LBIND)>
5376 <NTHR 'HTMPS 2 = TEMP50 (RECORD-TYPE ATOM) (TYPE LBIND)>
5377 <NTHR TEMP50 1 = SHTMPS53 (RECORD-TYPE LBIND)>
5379 <GEN-LVAL 'LIFE = LL56>
5380 <GEN-LVAL 'VERBOSE = TEMP50>
5384 <GEN-LVAL 'VERBOSE = TEMP65>
5385 <TYPE? TEMP65 <TYPE-CODE FALSE> + PHRASE64>
5387 <GEN-SET 'VERBOSE TEMP50>
5390 <FRAME '
\1aMUNG-L-D-STATE>
5391 <NTHR 'VARTBL 2 = TEMP65 (RECORD-TYPE ATOM) (TYPE LBIND)>
5392 <NTHR TEMP65 1 = STACK (RECORD-TYPE LBIND)>
5394 <CALL '
\1aMUNG-L-D-STATE 1>
5395 <GEN-SET 'LIFE LL56>
5396 <PUTUV PPNOD4 19 %<>>
5397 <PUTUV PPNOD4 15 ()>
5398 <PUTUV PPNOD4 16 ()>
5399 <PUTUV PPNOD4 7 () (TYPE LIST)>
5400 <NTHR 'TMPS 2 = TEMP65 (RECORD-TYPE ATOM) (TYPE LBIND)>
5401 <PUTR TEMP65 1 STMPS49 (RECORD-TYPE LBIND)>
5403 <NTHR 'HTMPS 2 = TEMP65 (RECORD-TYPE ATOM) (TYPE LBIND)>
5404 <PUTR TEMP65 1 SHTMPS53 (RECORD-TYPE LBIND)>
5406 <FRAME '
\1aBUILD-TYPE-LIST>
5407 <NTHR 'VARTBL 2 = TEMP65 (RECORD-TYPE ATOM) (TYPE LBIND)>
5408 <NTHR TEMP65 1 = STACK (RECORD-TYPE LBIND)>
5410 <CALL '
\1aBUILD-TYPE-LIST 1 = TEMP65>
5411 <PUTUV PPNOD4 18 TEMP65 (TYPE LIST)>
5413 <PUTUV PPNOD4 14 'NO-RETURN>
5415 <NTHUV PPNOD4 5 = STACK (TYPE LIST)>
5416 <NTHUV PPNOD4 9 = TEMP65>
5417 <GVAL 'REPEAT = TEMP85>
5418 <EQUAL? TEMP65 TEMP85 + PHRASE84>
5419 <DEAD TEMP65 TEMP85>
5423 <SET TEMP85 'ANY (TYPE ATOM)>
5427 <CALL '
\1aSEQ-AN 2 = TT8>
5428 <TYPE? OPN10 <TYPE-CODE FALSE> + PHRASE88>
5429 <FRAME '
\1aSPEC-FLUSH>
5430 <CALL '
\1aSPEC-FLUSH 0>
5431 <FRAME '
\1aPUT-FLUSH>
5433 <CALL '
\1aPUT-FLUSH 1>
5435 <TYPE? OPN10 <TYPE-CODE FALSE> - BOOL93>
5436 <NTHUV PPNOD4 9 = TEMP85>
5437 <GVAL 'REPEAT = TEMP65>
5438 <EQUAL? TEMP85 TEMP65 + BOOL93>
5439 <DEAD TEMP85 TEMP65>
5440 <NTHUV PPNOD4 19 = TEMP65>
5441 <TYPE? TEMP65 <TYPE-CODE FALSE> + PHRASE92>
5444 <FRAME '
\1aASSUM-OK?>
5445 <NTHUV PPNOD4 18 = STACK (TYPE LIST)>
5446 <NTHUV PPNOD4 9 = TEMP65>
5447 <GVAL 'REPEAT = TEMP85>
5448 <EQUAL? TEMP65 TEMP85 + PHRASE98>
5449 <DEAD TEMP65 TEMP85>
5450 <NTHUV PPNOD4 19 = TEMP85>
5451 <TYPE? TEMP85 <TYPE-CODE FALSE> + PHRASE98>
5453 <NTHUV PPNOD4 19 = TEMP85 (TYPE LIST)>
5456 <NTHUV PPNOD4 19 = TEMP65>
5457 <TYPE? TEMP65 <TYPE-CODE FALSE> + PHRASE100>
5460 <NTHR 'VARTBL 2 = TEMP65 (RECORD-TYPE ATOM) (TYPE LBIND)>
5461 <NTHR TEMP65 1 = STACK (RECORD-TYPE LBIND)>
5463 <NTHUV PPNOD4 19 = STACK (TYPE LIST)>
5464 <CALL '
\1aORUPC 2 = TEMP85>
5467 <FRAME '
\1aBUILD-TYPE-LIST>
5468 <NTHR 'VARTBL 2 = TEMP65 (RECORD-TYPE ATOM) (TYPE LBIND)>
5469 <NTHR TEMP65 1 = STACK (RECORD-TYPE LBIND)>
5471 <CALL '
\1aBUILD-TYPE-LIST 1 = TEMP85>
5475 <CALL '
\1aASSUM-OK? 2 = TEMP85>
5476 <TYPE? TEMP85 <TYPE-CODE FALSE> - PHRASE108>
5481 <NTHUV PPNOD4 10 = STACK (TYPE LIST)>
5483 <CALL '
\1aACTIV? 2 = OPN10>
5484 <VEQUAL? OPN10 0 + PHRASE108>
5485 <FRAME '
\1aASSERT-TYPES>
5486 <NTHUV PPNOD4 18 = STACK (TYPE LIST)>
5487 <CALL '
\1aASSERT-TYPES 1>
5490 <NTHUV PPNOD4 9 = TEMP85>
5491 <GVAL 'REPEAT = TEMP65>
5492 <EQUAL? TEMP85 TEMP65 - PHRASE119>
5493 <DEAD TEMP85 TEMP65>
5494 <NTHUV PPNOD4 19 = TEMP65>
5495 <TYPE? TEMP65 <TYPE-CODE FALSE> + PHRASE115>
5497 <FRAME '
\1aMSAVE-L-D-STATE>
5498 <NTHUV PPNOD4 7 = STACK (TYPE LIST)>
5499 <NTHR 'VARTBL 2 = TEMP65 (RECORD-TYPE ATOM) (TYPE LBIND)>
5500 <NTHR TEMP65 1 = STACK (RECORD-TYPE LBIND)>
5502 <CALL '
\1aMSAVE-L-D-STATE 2 = TEMP65>
5503 <PUTUV PPNOD4 7 TEMP65 (TYPE LIST)>
5507 <FRAME '
\1aSAVE-L-D-STATE>
5508 <NTHR 'VARTBL 2 = TEMP65 (RECORD-TYPE ATOM) (TYPE LBIND)>
5509 <NTHR TEMP65 1 = STACK (RECORD-TYPE LBIND)>
5511 <CALL '
\1aSAVE-L-D-STATE 1 = TEMP65>
5512 <PUTUV PPNOD4 7 TEMP65 (TYPE LIST)>
5515 <FRAME '
\1aSAVE-SURVIVORS>
5518 <GEN-LVAL 'LIFE = STACK>
5520 <CALL '
\1aSAVE-SURVIVORS 3>
5521 <FRAME '
\1aSAVE-SURVIVORS>
5522 <NTHUV PPNOD4 7 = STACK (TYPE LIST)>
5523 <GEN-LVAL 'LIFE = STACK>
5524 <CALL '
\1aSAVE-SURVIVORS 2>
5525 <TYPE? TT8 <TYPE-CODE FALSE> - PHRASE130>
5526 <FRAME '
\1aCOMPILE-ERROR>
5527 <PUSH "PROG/REPEAT returns incorrect type ">
5530 <CALL '
\1aCOMPILE-ERROR 3>
5532 <EQUAL? TT8 'NO-RETURN + PHRASE133>
5533 <NTHUV PPNOD4 9 = TEMP50>
5534 <GVAL 'REPEAT = TEMP65>
5535 <EQUAL? TEMP50 TEMP65 + PHRASE133>
5536 <DEAD TEMP50 TEMP65>
5537 <FRAME '
\1aMSAVE-L-D-STATE>
5538 <NTHUV PPNOD4 15 = STACK (TYPE LIST)>
5539 <NTHR 'VARTBL 2 = TEMP65 (RECORD-TYPE ATOM) (TYPE LBIND)>
5540 <NTHR TEMP65 1 = STACK (RECORD-TYPE LBIND)>
5542 <CALL '
\1aMSAVE-L-D-STATE 2 = TEMP65>
5543 <PUTUV PPNOD4 15 TEMP65>
5545 <NTHUV PPNOD4 14 = TEMP65>
5546 <EQUAL? TEMP65 'NO-RETURN + PHRASE146>
5548 <FRAME '
\1aASSERT-TYPES>
5550 <NTHR 'VARTBL 2 = TEMP65 (RECORD-TYPE ATOM) (TYPE LBIND)>
5551 <NTHR TEMP65 1 = STACK (RECORD-TYPE LBIND)>
5553 <NTHUV PPNOD4 16 = STACK (TYPE LIST)>
5554 <CALL '
\1aORUPC 2 = STACK>
5555 <CALL '
\1aASSERT-TYPES 1>
5558 <NTHUV PPNOD4 14 = TEMP65>
5559 <EQUAL? TEMP65 'NO-RETURN + PHRASE146>
5561 <FRAME '
\1aASSERT-TYPES>
5562 <NTHUV PPNOD4 16 = STACK (TYPE LIST)>
5563 <CALL '
\1aASSERT-TYPES 1>
5565 <FRAME '
\1aFREST-L-D-STATE>
5566 <NTHUV PPNOD4 15 = STACK (TYPE LIST)>
5567 <CALL '
\1aFREST-L-D-STATE 1>
5568 <FRAME '
\1aKILL-REM>
5569 <GEN-LVAL 'LIFE = STACK>
5572 <CALL '
\1aKILL-REM 2 = TEMP50>
5573 <GEN-SET 'LIFE TEMP50>
5575 <TYPE? OPN10 <TYPE-CODE FALSE> + PHRASE155>
5577 <CONS 'ALL () = TEMP50>
5578 <PUTUV PPNOD4 8 TEMP50>
5584 <NTHUV PPNOD4 9 = TEMP13>
5585 <GVAL 'REPEAT = TEMP16>
5586 <EQUAL? TEMP13 TEMP16 - PHRASE156>
5587 <DEAD TEMP13 TEMP16>
5588 <NTHUV PPNOD4 14 = TEMP50>
5591 <FRAME '
\1aTYPE-MERGE>
5594 <NTHUV PPNOD4 14 = STACK>
5595 <CALL '
\1aTYPE-MERGE 2 = TEMP50>
5597 <PUTUV PPNOD4 14 TEMP50>
5602 <NTHUV PPNOD4 14 = TEMP25>
5609 <END
\1aPRG-REP-ANA>
5610 " Determine if assumptions made for this loop are still valid."
5613 <GFCN
\1aASSUM-OK? ("VALUE" <OR ATOM FALSE> <LIST [REST <LIST SYMTAB ANY ANY>]> <LIST [REST <LIST SYMTAB ANY ANY>]>) AS4 TY5>
5614 <TEMP (OK?6 'T) TEMP9 L22:LIST SYM23 TT24 TEMP27 LL38:LIST TEMP43>
5616 <GEN-LVAL 'ANALY-OK = TEMP9>
5617 <TYPE? TEMP9 <TYPE-CODE FALSE> + PHRASE91>
5619 <SET TEMP9 AS4 (TYPE LIST)>
5623 <EMPL? TEMP9 + MAPAP16>
5624 <NTHL TEMP9 1 = L22>
5625 <NTHL L22 1 = SYM23 (TYPE SYMTAB)>
5626 <RESTL L22 1 = TEMP27 (TYPE LIST)>
5627 <NTHL TEMP27 1 = TEMP27>
5628 <VEQUAL? TEMP27 'ANY + MAPAP32>
5630 <SET TEMP27 TY5 (TYPE LIST)>
5634 <EMPL? TEMP27 + MAPAP32>
5635 <NTHL TEMP27 1 = LL38>
5636 <SET TT24 'T (TYPE ATOM)>
5637 <NTHL LL38 1 = TEMP43 (TYPE SYMTAB)>
5638 <VEQUAL? TEMP43 SYM23 + TAG42>
5640 <SET TT24 %<> (TYPE FALSE)>
5644 <RESTL L22 1 = TEMP43 (TYPE LIST)>
5645 <NTHL TEMP43 1 = STACK>
5647 <RESTL LL38 1 = TEMP43 (TYPE LIST)>
5648 <NTHL TEMP43 1 = STACK>
5650 <CALL '
\1aN=? 2 = TEMP43>
5651 <VEQUAL? TEMP43 0 + BOOL61>
5653 <RESTL L22 1 = TEMP43 (TYPE LIST)>
5654 <NTHL TEMP43 1 = TEMP43>
5655 <VEQUAL? TEMP43 'NO-RETURN + BOOL45>
5657 <FRAME '
\1aTYPE-OK?>
5658 <RESTL LL38 1 = TEMP43 (TYPE LIST)>
5659 <NTHL TEMP43 1 = STACK>
5662 <RESTL L22 1 = TEMP43 (TYPE LIST)>
5663 <NTHL TEMP43 1 = STACK>
5665 <CALL '
\1aNOTIFY 1 = STACK>
5666 <CALL '
\1aTYPE-OK? 2 = TEMP43>
5667 <TYPE? TEMP43 <TYPE-CODE FALSE> + BOOL61>
5670 <VEQUAL? OK?6 0 + PHRASE57>
5673 <GEN-LVAL 'BACKTRACK = STACK>
5675 <CALL '
\1a+ 2 = OK?6>
5676 <GEN-SET 'BACKTRACK OK?6>
5678 <GVAL 'STATUS-LINE = OK?6>
5679 <TYPE? OK?6 <TYPE-CODE FALSE> + PHRASE57>
5681 <FRAME '
\1aUPDATE-STATUS>
5685 <GEN-LVAL 'BACKTRACK = STACK>
5686 <CALL '
\1aUPDATE-STATUS 4>
5688 <SET OK?6 %<> (TYPE FALSE)>
5689 <NTHR 'DEBUGSW 1 = TEMP43 (RECORD-TYPE ATOM) (BRANCH-FALSE + BOOL61)>
5690 <TYPE? TEMP43 <TYPE-CODE FALSE> + BOOL61>
5691 <NTHR TEMP43 1 = TEMP43 (RECORD-TYPE GBIND)>
5692 <TYPE? TEMP43 <TYPE-CODE UNBOUND> + BOOL61>
5694 <GVAL 'DEBUGSW = TEMP43>
5695 <TYPE? TEMP43 <TYPE-CODE FALSE> + BOOL61>
5698 <NTHUV SYM23 2 = STACK (TYPE ATOM)>
5699 <GEN-LVAL 'OUTCHAN = STACK>
5700 <CALL '
\1aPRIN1 2 = TEMP43>
5701 <TYPE? TEMP43 <TYPE-CODE FALSE> + BOOL61>
5704 <PUSH " NOT OK current type: ">
5705 <GEN-LVAL 'OUTCHAN = STACK>
5706 <CALL '
\1aPRINC 2 = TEMP43>
5707 <TYPE? TEMP43 <TYPE-CODE FALSE> + BOOL61>
5710 <RESTL LL38 1 = TEMP43 (TYPE LIST)>
5711 <NTHL TEMP43 1 = STACK>
5713 <GEN-LVAL 'OUTCHAN = STACK>
5714 <CALL '
\1aPRIN1 2 = TEMP43>
5715 <TYPE? TEMP43 <TYPE-CODE FALSE> + BOOL61>
5718 <PUSH " assumed type: ">
5719 <GEN-LVAL 'OUTCHAN = STACK>
5720 <CALL '
\1aPRINC 2 = TEMP43>
5721 <TYPE? TEMP43 <TYPE-CODE FALSE> + BOOL61>
5724 <RESTL L22 1 = TEMP43 (TYPE LIST)>
5725 <NTHL TEMP43 1 = STACK>
5727 <GEN-LVAL 'OUTCHAN = STACK>
5728 <CALL '
\1aPRIN1 2 = TEMP43>
5729 <TYPE? TEMP43 <TYPE-CODE FALSE> + BOOL61>
5732 <GEN-LVAL 'OUTCHAN = STACK>
5735 <VEQUAL? TT24 0 + BOOL86>
5737 <FRAME '
\1aTYPE-MERGE>
5738 <RESTL LL38 1 = SYM23 (TYPE LIST)>
5740 <NTHL SYM23 1 = STACK>
5742 <RESTL L22 1 = SYM23 (TYPE LIST)>
5743 <NTHL SYM23 1 = STACK>
5745 <CALL '
\1aTYPE-MERGE 2 = SYM23>
5746 <RESTL L22 1 = L22 (TYPE LIST)>
5751 <RESTL TEMP27 1 = TEMP27 (TYPE LIST)>
5754 <RESTL TEMP9 1 = TEMP9 (TYPE LIST)>
5757 <VEQUAL? OK?6 0 - PHRASE91>
5758 <FRAME '
\1aASSERT-TYPES>
5761 <CALL '
\1aASSERT-TYPES 1>
5767 <GFCN
\1aNOTIFY ("VALUE" ANY ANY) D4>
5770 <TYPE? D4 <TYPE-CODE FORM> - PHRASE6>
5771 <EMPL? D4 + PHRASE6>
5772 <RESTL D4 1 = TEMP8 (TYPE LIST)>
5773 <EMPL? TEMP8 + PHRASE6>
5774 <RESTL TEMP8 1 = TEMP8 (TYPE LIST)>
5775 <EMPL? TEMP8 - PHRASE6>
5778 <EQUAL? TEMP8 'NOT - PHRASE6>
5780 <RESTL D4 1 = TEMP8 (TYPE LIST)>
5782 <NTHL TEMP8 1 = TEMP8>
5790 <CALL '
\1aFORM 2 = TEMP8>
5794 " Analyze RETURN from a PROG/REPEAT. Check with PROGs final type."
5797 <GFCN
\1aRETURN-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
5798 <TEMP TT6 LN8:FIX TEMP15 N7>
5800 <NTHUV NOD4 5 = TT6 (TYPE LIST)>
5801 <LENL TT6 = LN8 (TYPE FIX)>
5802 <GEN-SET 'RET-OR-AGAIN 'T>
5803 <GRTR? LN8 2 - PHRASE13 (TYPE FIX)>
5804 <FRAME '
\1aCOMPILE-ERROR>
5805 <PUSH "Too many args to RETURN.">
5808 <CALL '
\1aCOMPILE-ERROR 2 = TEMP15>
5812 <VEQUAL? LN8 2 - BOOL18 (TYPE FIX)>
5813 <FRAME '
\1aACT-CHECK>
5814 <RESTL TT6 1 = TEMP15 (TYPE LIST)>
5815 <NTHL TEMP15 1 = STACK (TYPE NODE)>
5817 <CALL '
\1aACT-CHECK 1 = N7>
5818 <TYPE? N7 <TYPE-CODE FALSE> - BOOL17>
5820 <GRTR? LN8 1 + PHRASE16 (TYPE FIX)>
5824 <CALL '
\1aPROGCHK 2 = N7>
5825 <TYPE? N7 <TYPE-CODE FALSE> + PHRASE16>
5827 <VEQUAL? LN8 0 - BOOL25 (TYPE FIX)>
5835 <CALL '
\1aNODE1 5 = TEMP15>
5836 <CONS TEMP15 () = TT6>
5838 <PUTUV NOD4 5 TT6 (TYPE LIST)>
5841 <NTHL TT6 1 = STACK (TYPE NODE)>
5843 <NTHUV N7 17 = STACK>
5845 <CALL '
\1aEANA 3 = TT6>
5846 <NTHUV N7 14 = TEMP15>
5847 <EQUAL? TEMP15 'NO-RETURN - PHRASE31>
5849 <FRAME '
\1aBUILD-TYPE-LIST>
5850 <NTHUV N7 11 = STACK (TYPE SYMTAB)>
5851 <CALL '
\1aBUILD-TYPE-LIST 1 = TEMP15>
5852 <PUTUV N7 16 TEMP15>
5854 <FRAME '
\1aSAVE-L-D-STATE>
5855 <GEN-LVAL 'VARTBL = STACK>
5856 <CALL '
\1aSAVE-L-D-STATE 1 = TEMP15>
5857 <PUTUV N7 15 TEMP15>
5862 <NTHUV N7 11 = STACK (TYPE SYMTAB)>
5863 <NTHUV N7 16 = STACK (TYPE LIST)>
5864 <CALL '
\1aORUPC 2 = TEMP15>
5865 <PUTUV N7 16 TEMP15>
5867 <FRAME '
\1aMSAVE-L-D-STATE>
5868 <NTHUV N7 15 = STACK (TYPE LIST)>
5869 <GEN-LVAL 'VARTBL = STACK>
5870 <CALL '
\1aMSAVE-L-D-STATE 2 = TEMP15>
5871 <PUTUV N7 15 TEMP15>
5874 <FRAME '
\1aTYPE-MERGE>
5877 <NTHUV N7 14 = STACK>
5878 <CALL '
\1aTYPE-MERGE 2 = TEMP15>
5879 <PUTUV N7 14 TEMP15>
5881 <PUTUV NOD4 1 14 (TYPE FIX)>
5885 <FRAME '
\1aSUBR-C-AN>
5889 <CALL '
\1aSUBR-C-AN 2 = TEMP15>
5893 <COND (<GASSIGNED? RETURN-ANA> <PUTPROP ,RETURN ANALYSIS ,RETURN-ANA>)>
5896 <GFCN
\1aMULTI-RETURN-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
5897 <TEMP TT6:LIST LN8 (SEG10 %<>) TYPS11:FORM TP12:LIST TEMP24 NN41 TEMP45>
5899 <NTHUV NOD4 5 = TT6 (TYPE LIST)>
5900 <LENL TT6 = LN8 (TYPE FIX)>
5903 <CALL '
\1aFORM 1 = TYPS11>
5904 <CHTYPE TYPS11 <TYPE-CODE LIST> = TP12>
5905 <LESS? LN8 1 - PHRASE15 (TYPE FIX)>
5907 <FRAME '
\1aCOMPILE-ERROR>
5908 <PUSH "Too few args to MULTI-RETURN.">
5911 <CALL '
\1aCOMPILE-ERROR 2 = SEG10>
5915 <NTHL TT6 1 = LN8 (TYPE NODE)>
5916 <NTHUV LN8 1 = TEMP24 (TYPE FIX)>
5917 <VEQUAL? TEMP24 2 - PHRASE22 (TYPE FIX)>
5919 <NTHUV LN8 4 = TEMP24>
5920 <EQUAL? TEMP24 %<> - PHRASE22>
5923 <PUSH 'MULTI-RETURN>
5926 <CALL '
\1aPROGCHK 2 = LN8>
5929 <FRAME '
\1aACT-CHECK>
5932 <CALL '
\1aACT-CHECK 1 = LN8>
5933 <TYPE? LN8 <TYPE-CODE FALSE> - PHRASE27>
5935 <NTHL TT6 1 = STACK (TYPE NODE)>
5936 <PUSH <OR FRAME FRAME>>
5937 <PUSH 'MULTI-RETURN>
5940 <RESTL TT6 1 = TEMP24 (TYPE LIST)>
5945 <EMPL? TEMP24 + MAPAP33>
5947 <NTHL TT6 1 = NN41 (TYPE NODE)>
5948 <NTHUV NN41 1 = TEMP45 (TYPE FIX)>
5949 <VEQUAL? TEMP45 3 - PHRASE44 (TYPE FIX)>
5952 <NTHUV NN41 5 = TEMP45 (TYPE LIST)>
5954 <NTHL TEMP45 1 = STACK (TYPE NODE)>
5956 <PUSH <OR MULTI STRUCTURED>>
5957 <PUSH 'MULTI-RETURN>
5958 <CALL '
\1aEANA 3 = NN41>
5959 <EQUAL? NN41 'ANY + PHRASE48>
5960 <FRAME '
\1aGET-ELE-TYPE>
5964 <CALL '
\1aGET-ELE-TYPE 2 = NN41>
5965 <EQUAL? NN41 'ANY + PHRASE48>
5966 <TYPE? SEG10 <TYPE-CODE FALSE> - PHRASE52>
5967 <RESTL TT6 1 = TEMP45 (TYPE LIST)>
5968 <EMPL? TEMP45 - PHRASE52 (TYPE LIST)>
5973 <UBLOCK <TYPE-CODE VECTOR> 2 = TEMP45>
5974 <CONS TEMP45 () = TEMP45>
5975 <PUTREST TP12 TEMP45>
5979 <RESTL TT6 1 = TEMP45 (TYPE LIST)>
5981 <EMPL? TEMP45 - PHRASE55 (TYPE LIST)>
5983 <EQUAL? SEG10 'ANY + PHRASE55>
5985 <FRAME '
\1aTYPE-MERGE>
5989 <CALL '
\1aTYPE-MERGE 2 = STACK>
5990 <UBLOCK <TYPE-CODE VECTOR> 2 = TEMP45>
5991 <CONS TEMP45 () = TEMP45>
5992 <PUTREST TP12 TEMP45>
5996 <EQUAL? SEG10 'ANY + PHRASE65>
5997 <FRAME '
\1aTYPE-MERGE>
6002 <CALL '
\1aTYPE-MERGE 2 = SEG10>
6005 <SET SEG10 'ANY (TYPE ATOM)>
6012 <PUSH 'MULTI-RETURN>
6013 <CALL '
\1aEANA 3 = NN41>
6014 <TYPE? SEG10 <TYPE-CODE FALSE> - PHRASE65>
6017 <CONS NN41 () = TP12>
6019 <PUTREST TEMP45 TP12>
6022 <RESTL TEMP24 1 = TEMP24 (TYPE LIST)>
6025 <TYPE? LN8 <TYPE-CODE FALSE> + PHRASE67>
6026 <NTHUV LN8 14 = TEMP24>
6027 <EQUAL? TEMP24 'NO-RETURN - PHRASE67>
6029 <FRAME '
\1aBUILD-TYPE-LIST>
6030 <NTHUV LN8 11 = STACK (TYPE SYMTAB)>
6031 <CALL '
\1aBUILD-TYPE-LIST 1 = SEG10>
6032 <PUTUV LN8 16 SEG10>
6034 <FRAME '
\1aSAVE-L-D-STATE>
6035 <GEN-LVAL 'VARTBL = STACK>
6036 <CALL '
\1aSAVE-L-D-STATE 1 = SEG10>
6037 <PUTUV LN8 15 SEG10>
6041 <TYPE? LN8 <TYPE-CODE FALSE> + PHRASE73>
6043 <NTHUV LN8 11 = STACK (TYPE SYMTAB)>
6044 <NTHUV LN8 16 = STACK (TYPE LIST)>
6045 <CALL '
\1aORUPC 2 = SEG10>
6046 <PUTUV LN8 16 SEG10>
6048 <FRAME '
\1aMSAVE-L-D-STATE>
6049 <NTHUV LN8 15 = STACK (TYPE LIST)>
6050 <GEN-LVAL 'VARTBL = STACK>
6051 <CALL '
\1aMSAVE-L-D-STATE 2 = TEMP24>
6052 <PUTUV LN8 15 TEMP24>
6055 <TYPE? LN8 <TYPE-CODE FALSE> + PHRASE79>
6056 <FRAME '
\1aTYPE-MERGE>
6059 <NTHUV LN8 14 = STACK>
6060 <CALL '
\1aTYPE-MERGE 2 = TEMP24>
6061 <PUTUV LN8 14 TEMP24>
6064 <PUTUV NOD4 1 94 (TYPE FIX)>
6067 <END
\1aMULTI-RETURN-ANA>
6068 <COND (<AND <GASSIGNED? MULTI-RETURN> <GASSIGNED? MULTI-RETURN-ANA>> <PUTPROP ,MULTI-RETURN ANALYSIS ,MULTI-RETURN-ANA>)>
6071 <GFCN
\1aACT-CHECK ("VALUE" <OR FALSE NODE> NODE "OPTIONAL" ANY) N6 RETMNG7>
6072 <OPT-DISPATCH 1 %<> OPT4 OPT5>
6076 <TEMP NT11 TEMP17 SYM8>
6078 <NTHUV N6 1 = NT11 (TYPE FIX)>
6079 <VEQUAL? NT11 10 - BOOL16 (TYPE FIX)>
6080 <NTHUV N6 4 = TEMP17>
6081 <TYPE? TEMP17 <TYPE-CODE SYMTAB> - BOOL16>
6083 <NTHUV N6 4 = SYM8 (TYPE SYMTAB)>
6084 <NTHUV SYM8 6 = TEMP17>
6085 <TYPE? TEMP17 <TYPE-CODE FALSE> + BOOL16>
6087 <NTHUV SYM8 4 = TEMP17 (TYPE FIX)>
6088 <VEQUAL? TEMP17 1 + TAG31 (TYPE FIX)>
6091 <VEQUAL? NT11 9 + TAG22 (TYPE FIX)>
6092 <VEQUAL? NT11 6 + TAG22 (TYPE FIX)>
6096 <NTHUV N6 9 = TEMP17>
6098 <EQUAL? TEMP17 NT11 + TAG23>
6102 <NTHUV N6 5 = NT11 (TYPE LIST)>
6103 <EMPL? NT11 + TAG26>
6104 <RESTL NT11 1 = NT11 (TYPE LIST)>
6105 <EMPL? NT11 + TAG25>
6110 <NTHUV N6 5 = NT11 (TYPE LIST)>
6111 <NTHL NT11 1 = TEMP17 (TYPE NODE)>
6113 <NTHUV TEMP17 1 = NT11 (TYPE FIX)>
6114 <VEQUAL? NT11 2 + TAG27 (TYPE FIX)>
6118 <NTHUV TEMP17 4 = NT11>
6119 <TYPE? NT11 <TYPE-CODE ATOM> + TAG28>
6123 <FRAME '
\1aSRCH-SYM>
6124 <NTHUV TEMP17 4 = STACK (TYPE ATOM)>
6126 <CALL '
\1aSRCH-SYM 1 = SYM8>
6128 <VEQUAL? TEMP17 0 + PHRASE36>
6129 <NTHUV SYM8 6 = TEMP17>
6130 <TYPE? TEMP17 <TYPE-CODE FALSE> + PHRASE36>
6131 <NTHUV SYM8 4 = NT11 (TYPE FIX)>
6132 <VEQUAL? NT11 1 + TAG31 (TYPE FIX)>
6136 <NTHUV SYM8 11 = TEMP17>
6141 <PUSH 'AGAIN-RETURN>
6143 <TYPE? RETMNG7 <TYPE-CODE FALSE> + PHRASE36>
6145 <PUTUV SYM8 11 TEMP17>
6154 <GFCN
\1aAGAIN-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
6155 <TEMP TEM6:LIST N7 TEMP16>
6157 <NTHUV NOD4 5 = TEM6 (TYPE LIST)>
6158 <GEN-SET 'RET-OR-AGAIN 'T>
6159 <EMPL? TEM6 - BOOL13 (TYPE LIST)>
6163 <CALL '
\1aPROGCHK 2 = N7>
6164 <TYPE? N7 <TYPE-CODE FALSE> - BOOL12>
6166 <RESTL TEM6 1 = TEMP16 (TYPE LIST)>
6167 <EMPL? TEMP16 - PHRASE11 (TYPE LIST)>
6169 <FRAME '
\1aACT-CHECK>
6170 <NTHL TEM6 1 = STACK (TYPE NODE)>
6171 <CALL '
\1aACT-CHECK 1 = N7>
6172 <TYPE? N7 <TYPE-CODE FALSE> + PHRASE11>
6174 <PUTUV NOD4 1 17 (TYPE FIX)>
6176 <NTHUV N7 19 = TEMP16>
6177 <TYPE? TEMP16 <TYPE-CODE FALSE> + PHRASE19>
6179 <FRAME '
\1aMSAVE-L-D-STATE>
6180 <NTHUV N7 7 = STACK (TYPE LIST)>
6181 <GEN-LVAL 'VARTBL = STACK>
6182 <CALL '
\1aMSAVE-L-D-STATE 2 = TEMP16>
6183 <PUTUV N7 7 TEMP16 (TYPE LIST)>
6187 <FRAME '
\1aSAVE-L-D-STATE>
6188 <GEN-LVAL 'VARTBL = STACK>
6189 <CALL '
\1aSAVE-L-D-STATE 1 = TEMP16>
6190 <PUTUV N7 7 TEMP16 (TYPE LIST)>
6193 <NTHUV N7 19 = TEMP16>
6194 <TYPE? TEMP16 <TYPE-CODE FALSE> - PHRASE30>
6196 <FRAME '
\1aBUILD-TYPE-LIST>
6197 <NTHUV N7 11 = STACK (TYPE SYMTAB)>
6198 <CALL '
\1aBUILD-TYPE-LIST 1 = TEMP16>
6202 <NTHUV N7 11 = STACK (TYPE SYMTAB)>
6203 <NTHUV N7 19 = STACK (TYPE LIST)>
6204 <CALL '
\1aORUPC 2 = TEMP16>
6206 <PUTUV N7 19 TEMP16>
6210 <RESTL TEM6 1 = N7 (TYPE LIST)>
6211 <EMPL? N7 - PHRASE34 (TYPE LIST)>
6214 <NTHL TEM6 1 = STACK (TYPE NODE)>
6217 <CALL '
\1aANA 2 = N7>
6218 <TYPE? N7 <TYPE-CODE FALSE> - PHRASE37>
6220 <FRAME '
\1aCOMPILE-ERROR>
6221 <PUSH "Again not passed an activation">
6224 <CALL '
\1aCOMPILE-ERROR 2>
6228 <FRAME '
\1aCOMPILE-ERROR>
6229 <PUSH "Too many arguments to AGAIN">
6232 <CALL '
\1aCOMPILE-ERROR 2 = TEMP16>
6236 <COND (<GASSIGNED? AGAIN-ANA> <PUTPROP ,AGAIN ANALYSIS ,AGAIN-ANA>)>
6238 " If not in PROG/REPEAT complain about NAME."
6241 <GFCN
\1aPROGCHK ("VALUE" ANY ANY NODE) NAME4 NOD5>
6244 <GEN-ASSIGNED? 'PNOD + PHRASE7>
6245 <FRAME '
\1aCOMPILE-ERROR>
6246 <PUSH "Not in PROG/REPEAT ">
6251 <CALL '
\1aCOMPILE-ERROR 3>
6253 <GEN-LVAL 'PNOD = TEMP8>
6257 " Dispatch to special handlers for SUBRs. Or use standard."
6260 <GFCN
\1aSUBR-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
6265 <NTHUV NOD4 9 = STACK>
6267 <CFRAME = STACK (TYPE FRAME)>
6268 <CALL '
\1aGETPROP 3 = TEMP8>
6269 <CFRAME = TEMP9 (TYPE FRAME)>
6270 <EQUAL? TEMP9 TEMP8 - TAG10>
6272 <GVAL 'SUBR-C-AN = TEMP8>
6278 <ACALL TEMP8 2 = TEMP9>
6283 " Hairy SUBR call analyzer. Also looks for internal calls."
6286 <GFCN
\1aANONFSUBR-C-AN1 ("VALUE" <OR ATOM FIX> "TUPLE" TUPLE)>
6287 <MAKTUP T4:TUPLE NARGS17 N8 TPL9 RGS10:FIX = T4>
6289 <GEN-LVAL 'NRGS1 = NARGS17>
6290 <GEN-LVAL 'NOD = N8>
6291 <GEN-LVAL 'TMPL = TPL9>
6292 <GEN-LVAL 'ARGS = RGS10>
6293 <RESTL TPL9 1 = TPL9 (TYPE LIST)>
6294 <NTHL TPL9 1 = TPL9>
6297 <FRAME '
\1aSPEC-FLUSH>
6298 <CALL '
\1aSPEC-FLUSH 0>
6299 <FRAME '
\1aPUT-FLUSH>
6301 <CALL '
\1aPUT-FLUSH 1>
6303 <TYPE? TPL9 <TYPE-CODE FALSE> + PHRASE28>
6305 <GEN-LVAL 'TYP = NARGS17>
6306 <TYPE? NARGS17 <TYPE-CODE ATOM> - TAG34>
6309 <TYPE? NARGS17 <TYPE-CODE FORM> - TAG35>
6313 <SET TPL9 'ANY (TYPE ATOM)>
6318 <TYPE? NARGS17 <TYPE-CODE FIX> - PHRASE41>
6323 <NTHUV N8 4 = STACK>
6325 <GEN-LVAL 'NOD = STACK>
6329 <TYPE? NARGS17 <TYPE-CODE LIST> - PHRASE51>
6330 <RESTL NARGS17 1 = TPL9 (TYPE LIST)>
6331 <NTHL TPL9 1 = TPL9 (TYPE FIX)>
6332 <GRTR? RGS10 TPL9 - PHRASE47 (TYPE FIX)>
6334 <FRAME '
\1aCOMPILE-ERROR>
6335 <PUSH "Too many arguments to ">
6336 <NTHUV N8 4 = STACK>
6338 <CALL '
\1aCOMPILE-ERROR 3>
6340 <NTHL NARGS17 1 = TPL9 (TYPE FIX)>
6342 <LESS? RGS10 TPL9 - PHRASE51 (TYPE FIX)>
6344 <FRAME '
\1aCOMPILE-ERROR>
6345 <PUSH "Too few arguments to ">
6346 <NTHUV N8 4 = STACK>
6349 <CALL '
\1aCOMPILE-ERROR 3>
6351 <GEN-LVAL 'TYP = TPL9>
6352 <TYPE? TPL9 <TYPE-CODE ATOM> + PHRASE56>
6353 <TYPE? TPL9 <TYPE-CODE FORM> + PHRASE56>
6356 <GEN-LVAL 'TYP = NARGS17>
6357 <SET TPL9 0 (TYPE FIX)>
6360 <LOOP (N8 VALUE LENGTH) (TPL9 VALUE)>
6364 <NTHUV N8 1 = STACK>
6365 <RESTUV N8 1 = N8 (TYPE VECTOR)>
6366 <ADD TPL9 1 = TPL9 (TYPE FIX)>
6369 <ACALL NARGS17 TPL9 = N8>
6376 <GEN-SET 'ARGS TPL9>
6379 <END
\1aANONFSUBR-C-AN1>
6380 <GFCN
\1aSUBR-C-AN ("VALUE" ANY NODE ANY) NOD5 RTYP6>
6381 <TEMP TEMP4:LBIND TEMP12 TEMP28 TEMP25 N31:NODE TEMP39:FIX>
6383 <GETS 'BIND = TEMP4 (TYPE LBIND)>
6384 <BBIND 'NOD 'NODE %<> NOD5>
6387 <BBIND 'ARGS 'FIX 'FIX 0>
6388 <BBIND 'TYP 'ANY 'FIX 'ANY>
6390 <NTHR 'NOD 2 = TEMP12 (RECORD-TYPE ATOM) (TYPE LBIND)>
6391 <NTHR TEMP12 1 = TEMP12 (RECORD-TYPE LBIND)>
6392 <NTHUV TEMP12 9 = STACK>
6394 <CALL '
\1aGET-TMP 1 = TEMP12>
6395 <BBIND 'TMPL 'LIST 'FIX TEMP12>
6397 <NTHR 'TMPL 2 = TEMP12 (RECORD-TYPE ATOM) (TYPE LBIND)>
6398 <NTHR TEMP12 1 = TEMP12 (RECORD-TYPE LBIND)>
6399 <NTHL TEMP12 1 = TEMP12>
6400 <BBIND 'NRGS1 'ANY 'FIX TEMP12>
6402 <NTHR 'NOD 2 = TEMP28 (RECORD-TYPE ATOM) (TYPE LBIND)>
6403 <NTHR TEMP28 1 = TEMP12 (RECORD-TYPE LBIND)>
6405 <NTHUV TEMP12 5 = TEMP12 (TYPE LIST)>
6406 <SET TEMP25 0 (TYPE FIX)>
6407 <FRAME '
\1aANONFSUBR-C-AN1>
6411 <EMPL? TEMP12 + MAPAP22>
6412 <NTHL TEMP12 1 = N31>
6413 <NTHUV N31 1 = TEMP28 (TYPE FIX)>
6414 <VEQUAL? TEMP28 3 - PHRASE34 (TYPE FIX)>
6417 <NTHUV N31 5 = TEMP28 (TYPE LIST)>
6419 <NTHL TEMP28 1 = STACK (TYPE NODE)>
6421 <PUSH <OR MULTI STRUCTURED>>
6424 <NTHR 'NOD 2 = TEMP28 (RECORD-TYPE ATOM) (TYPE LBIND)>
6425 <NTHR TEMP28 1 = TEMP28 (RECORD-TYPE LBIND)>
6428 <SET TEMP28 'ANY (TYPE ATOM)>
6431 <NTHR 'ARGS 2 = TEMP28 (RECORD-TYPE ATOM) (TYPE LBIND)>
6432 <NTHR TEMP28 1 = TEMP39 (RECORD-TYPE LBIND)>
6434 <ADD TEMP39 1 = TEMP39 (TYPE FIX)>
6435 <NTHR 'ARGS 2 = TEMP28 (RECORD-TYPE ATOM) (TYPE LBIND)>
6436 <PUTR TEMP28 1 TEMP39 (RECORD-TYPE LBIND)>
6437 <DEAD TEMP28 TEMP39>
6442 <CALL '
\1aANA 2 = TEMP28>
6446 <ADD TEMP25 1 = TEMP25 (TYPE FIX)>
6447 <RESTL TEMP12 1 = TEMP12 (TYPE LIST)>
6450 <CALL '
\1aANONFSUBR-C-AN1 TEMP25>
6452 <CONS 'ALL () = TEMP12>
6453 <NTHR 'NOD 2 = TEMP25 (RECORD-TYPE ATOM) (TYPE LBIND)>
6454 <NTHR TEMP25 1 = TEMP25 (RECORD-TYPE LBIND)>
6455 <PUTUV TEMP25 8 TEMP12>
6456 <DEAD TEMP25 TEMP12>
6457 <FRAME '
\1aTYPE-OK?>
6458 <NTHR 'TYP 2 = TEMP25 (RECORD-TYPE ATOM) (TYPE LBIND)>
6459 <NTHR TEMP25 1 = STACK (RECORD-TYPE LBIND)>
6463 <CALL '
\1aTYPE-OK? 2 = TEMP25>
6469 <END
\1aSUBR-C-AN>
\r\r
6471 <GFCN
\1aSEGMENT-ANA ("VALUE" ANY ANY ANY) NOD4 RTYP5>
6474 <FRAME '
\1aCOMPILE-ERROR>
6475 <PUSH "Illegal segment (not in form or structure)">
6478 <CALL '
\1aCOMPILE-ERROR 2 = TEMP7>
6481 <END
\1aSEGMENT-ANA>
6482 " Analyze VECTOR, UVECTOR and LIST builders."
6485 <GFCN
\1aCOPY-AN ("VALUE" ANY NODE ANY) NOD4 RTYP5>
6486 <TEMP (ARGS6:FIX 0) RT7 K8:LIST LWIN10 SG25 FRM26:FORM FRME28:LIST GOTDC29 TEMP37 DC20 STY21 PTY22 N9 TEM23 TEMP60>
6489 <NTHUV NOD4 3 = STACK>
6490 <CALL '
\1aISTYPE? 1 = RT7>
6491 <NTHUV NOD4 5 = K8 (TYPE LIST)>
6492 <VEQUAL? RT7 'LIST - TAG14>
6493 <SET LWIN10 'T (TYPE ATOM)>
6496 <SET LWIN10 %<> (TYPE FALSE)>
6498 <EMPL? K8 + EXIT18 (TYPE LIST)>
6499 <SET SG25 %<> (TYPE FALSE)>
6502 <CALL '
\1aFORM 1 = FRM26>
6503 <CHTYPE FRM26 <TYPE-CODE LIST> = FRME28>
6504 <SET GOTDC29 %<> (TYPE FALSE)>
6508 <EMPL? K8 - PHRASE32 (TYPE LIST)>
6509 <VEQUAL? RT7 'LIST - PHRASE34>
6511 <RESTL FRM26 1 = TEMP37 (TYPE LIST)>
6512 <CHTYPE TEMP37 <TYPE-CODE LIST> = TEMP37>
6513 <EMPL? TEMP37 - PHRASE36 (TYPE LIST)>
6515 <NTHL FRM26 1 = RT7>
6523 <TYPE? DC20 <TYPE-CODE FALSE> + PHRASE40>
6527 <UBLOCK <TYPE-CODE VECTOR> 2 = TEMP37>
6528 <CONS TEMP37 () = TEMP37>
6529 <PUTREST FRME28 TEMP37>
6530 <DEAD FRME28 TEMP37>
6533 <TYPE? STY21 <TYPE-CODE FALSE> + PHRASE42>
6537 <UBLOCK <TYPE-CODE VECTOR> 2 = TEMP37>
6538 <CONS TEMP37 () = TEMP37>
6539 <PUTREST FRME28 TEMP37>
6540 <DEAD FRME28 TEMP37>
6543 <TYPE? PTY22 <TYPE-CODE FALSE> + PHRASE44>
6549 <CALL '
\1aFORM 2 = STACK>
6550 <UBLOCK <TYPE-CODE VECTOR> 2 = TEMP37>
6551 <CONS TEMP37 () = TEMP37>
6552 <PUTREST FRME28 TEMP37>
6553 <DEAD FRME28 TEMP37>
6559 <NTHL K8 1 = N9 (TYPE NODE)>
6560 <NTHUV N9 1 = TEMP37 (TYPE FIX)>
6561 <VEQUAL? TEMP37 3 + BOOL48 (TYPE FIX)>
6562 <VEQUAL? TEMP37 68 - PHRASE47 (TYPE FIX)>
6565 <FRAME '
\1aGET-ELE-TYPE>
6567 <NTHUV N9 5 = TEMP37 (TYPE LIST)>
6568 <NTHL TEMP37 1 = STACK (TYPE NODE)>
6570 <PUSH <OR MULTI STRUCTURED>>
6572 <CALL '
\1aEANA 3 = STACK>
6574 <CALL '
\1aGET-ELE-TYPE 2 = TEM23>
6576 <VEQUAL? SG25 0 - PHRASE52>
6578 <SET GOTDC29 %<> (TYPE FALSE)>
6580 <SET SG25 'T (TYPE ATOM)>
6581 <VEQUAL? LWIN10 0 + TAG55>
6582 <FRAME '
\1aSTRUCTYP>
6583 <NTHUV N9 5 = TEMP37 (TYPE LIST)>
6585 <NTHL TEMP37 1 = TEMP37 (TYPE NODE)>
6586 <NTHUV TEMP37 3 = STACK>
6588 <CALL '
\1aSTRUCTYP 1 = TEMP37>
6589 <SET N9 [LIST VECTOR UVECTOR TUPLE] (TYPE VECTOR)>
6590 <TYPE? TEMP37 <TYPE-CODE ATOM> - TAG55>
6591 <LOOP (TEMP37 VALUE) (N9 LENGTH VALUE)>
6593 <NTHUV N9 1 = TEMP60>
6594 <VEQUAL? TEMP60 TEMP37 + PHRASE62>
6596 <RESTUV N9 1 = N9 (TYPE VECTOR)>
6599 <SET LWIN10 %<> (TYPE FALSE)>
6602 <ADD ARGS6 2 = ARGS6 (TYPE FIX)>
6607 <CALL '
\1aANA 2 = TEM23>
6609 <VEQUAL? GOTDC29 0 - PHRASE65>
6610 <SET GOTDC29 'T (TYPE ATOM)>
6614 <CALL '
\1aISTYPE? 1 = STY21>
6616 <TYPE? PTY22 <TYPE-CODE FALSE> + PHRASE80>
6619 <CALL '
\1aMTYPR 1 = PTY22>
6622 <TYPE? DC20 <TYPE-CODE FALSE> + BOOL71>
6623 <EQUAL? DC20 TEM23 + PHRASE80>
6625 <SET DC20 %<> (TYPE FALSE)>
6628 <CALL '
\1aISTYPE? 1 = TEMP37>
6629 <VEQUAL? TEMP37 STY21 - BOOL74>
6630 <TYPE? STY21 <TYPE-CODE FALSE> - PHRASE80>
6632 <SET STY21 %<> (TYPE FALSE)>
6633 <TYPE? PTY22 <TYPE-CODE FALSE> + BOOL77>
6635 <TYPE? N9 <TYPE-CODE FALSE> + BOOL78>
6639 <CALL '
\1aMTYPR 1 = N9>
6641 <EQUAL? PTY22 N9 + PHRASE80>
6644 <SET PTY22 %<> (TYPE FALSE)>
6646 <VEQUAL? SG25 0 - PHRASE82>
6647 <CONS TEM23 () = N9>
6654 <RESTL K8 1 = K8 (TYPE LIST)>
6658 <NTHR 'COPY-LIST-CODE 1 = N9 (RECORD-TYPE ATOM) (BRANCH-FALSE + PHRASE84)>
6659 <TYPE? N9 <TYPE-CODE FALSE> + PHRASE84>
6660 <NTHR N9 1 = N9 (RECORD-TYPE GBIND)>
6661 <TYPE? N9 <TYPE-CODE UNBOUND> + PHRASE84>
6663 <VEQUAL? LWIN10 0 + PHRASE84>
6665 <NTHUV NOD4 5 = LWIN10 (TYPE LIST)>
6669 <EMPL? LWIN10 + MAPAP90>
6670 <NTHL LWIN10 1 = N9>
6671 <NTHUV N9 1 = ARGS6 (TYPE FIX)>
6672 <VEQUAL? ARGS6 3 - PHRASE97 (TYPE FIX)>
6674 <PUTUV N9 1 68 (TYPE FIX)>
6677 <RESTL LWIN10 1 = LWIN10 (TYPE LIST)>
6680 <NTHUV NOD4 5 = K8 (TYPE LIST)>
6681 <EMPL? K8 + PHRASE100>
6682 <RESTL K8 1 = LWIN10 (TYPE LIST)>
6683 <EMPL? LWIN10 - PHRASE100>
6685 <NTHL K8 1 = N9 (TYPE NODE)>
6686 <NTHUV N9 1 = ARGS6 (TYPE FIX)>
6688 <VEQUAL? ARGS6 68 - PHRASE100 (TYPE FIX)>
6690 <FRAME '
\1aSTRUCTYP>
6691 <NTHL K8 1 = N9 (TYPE NODE)>
6693 <NTHUV N9 5 = LWIN10 (TYPE LIST)>
6695 <NTHL LWIN10 1 = N9 (TYPE NODE)>
6697 <NTHUV N9 3 = STACK>
6698 <CALL '
\1aSTRUCTYP 1 = LWIN10>
6699 <EQUAL? LWIN10 'LIST - PHRASE100>
6701 <NTHUV NOD4 2 = LWIN10>
6702 <EMPTY? LWIN10 + MAPAP109>
6704 <NTHUV NOD4 2 = RT7>
6705 <NTHUV RT7 5 = RT7 (TYPE LIST)>
6709 <EMPL? RT7 + MAPAP109>
6711 <NTHL K8 1 = LWIN10 (TYPE NODE)>
6712 <VEQUAL? NOD4 LWIN10 - PHRASE116>
6718 <RESTL RT7 1 = RT7 (TYPE LIST)>
6721 <NTHUV NOD4 2 = RT7>
6723 <CHTYPE RT7 <TYPE-CODE NODE> = RT7>
6730 <PUTUV NOD4 1 84 (TYPE FIX)>
6734 <NTHUV NOD4 5 = LWIN10 (TYPE LIST)>
6738 <EMPL? LWIN10 + MAPAP124>
6739 <NTHL LWIN10 1 = N9>
6740 <NTHUV N9 1 = ARGS6 (TYPE FIX)>
6741 <VEQUAL? ARGS6 68 - PHRASE130 (TYPE FIX)>
6743 <PUTUV N9 1 3 (TYPE FIX)>
6746 <RESTL LWIN10 1 = LWIN10 (TYPE LIST)>
6749 <PUTUV NOD4 1 15 (TYPE FIX)>
6752 <FRAME '
\1aTYPE-OK?>
6757 <CALL '
\1aTYPE-OK? 2 = LWIN10>
6761 " Analyze quoted objects, for structures hack type specs."
6764 <GFCN
\1aQUOTE-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
6767 <FRAME '
\1aTYPE-OK?>
6768 <FRAME '
\1aGEN-DECL>
6769 <NTHUV NOD4 4 = STACK>
6771 <CALL '
\1aGEN-DECL 1 = STACK>
6774 <CALL '
\1aTYPE-OK? 2 = TEMP8>
6779 <GFCN
\1aQUOTE-ANA2 ("VALUE" ANY NODE ANY) NOD4 RTYP5>
6782 <NTHUV NOD4 5 = TEMP8 (TYPE LIST)>
6783 <EMPL? TEMP8 + PHRASE7>
6784 <RESTL TEMP8 1 = TEMP8 (TYPE LIST)>
6785 <EMPL? TEMP8 - PHRASE7>
6787 <PUTUV NOD4 1 2 (TYPE FIX)>
6788 <NTHUV NOD4 5 = TEMP8 (TYPE LIST)>
6789 <NTHL TEMP8 1 = TEMP8 (TYPE NODE)>
6790 <PUTUV NOD4 4 TEMP8>
6792 <PUTUV NOD4 5 () (TYPE LIST)>
6793 <FRAME '
\1aTYPE-OK?>
6794 <NTHUV NOD4 3 = STACK>
6798 <CALL '
\1aTYPE-OK? 2 = TEMP8>
6802 <FRAME '
\1aCOMPILE-ERROR>
6803 <PUSH "Empty QUOTE?">
6804 <CALL '
\1aCOMPILE-ERROR 1 = TEMP8>
6808 <COND (<GASSIGNED? QUOTE-ANA2> <PUTPROP ,QUOTE ANALYSIS ,QUOTE-ANA2>)>
6810 " Analyze a call to an RSUBR."
6813 <GFCN
\1aRSUBR-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
6814 <TEMP (ARGS6:FIX 0) DCL7:LIST (SEGF8 %<>) (MUST-EMPTY9 'T) (TUPF11 %<>) (OPTF12 %<>) K13:LIST NM14:ATOM (RT15 %<>) TEMP22 ARG27:NODE TY28>
6816 <NTHUV NOD4 7 = DCL7 (TYPE LIST)>
6817 <NTHUV NOD4 5 = K13 (TYPE LIST)>
6818 <NTHUV NOD4 4 = NM14 (TYPE ATOM)>
6819 <SET TEMP22 K13 (TYPE LIST)>
6823 <EMPL? TEMP22 + MAPAP20>
6824 <NTHL TEMP22 1 = ARG27>
6825 <EMPL? DCL7 + PHRASE31 (TYPE LIST)>
6826 <NTHL DCL7 1 = RT15 (TYPE LIST)>
6827 <NTHL RT15 1 = MUST-EMPTY9 (TYPE ATOM)>
6828 <VEQUAL? MUST-EMPTY9 'OPTIONAL - PHRASE33>
6829 <SET OPTF12 'T (TYPE ATOM)>
6832 <VEQUAL? MUST-EMPTY9 'TUPLE - PHRASE34>
6834 <SET TUPF11 'T (TYPE ATOM)>
6836 <RESTL RT15 1 = MUST-EMPTY9 (TYPE LIST)>
6838 <NTHL MUST-EMPTY9 1 = RT15>
6840 <RESTL DCL7 1 = DCL7 (TYPE LIST)>
6843 <VEQUAL? TUPF11 0 - PHRASE36>
6844 <SET RT15 %<> (TYPE FALSE)>
6847 <NTHUV ARG27 1 = MUST-EMPTY9 (TYPE FIX)>
6848 <VEQUAL? MUST-EMPTY9 3 - PHRASE38 (TYPE FIX)>
6850 <SET SEGF8 'T (TYPE ATOM)>
6851 <FRAME '
\1aGET-ELE-TYPE>
6853 <NTHUV ARG27 5 = MUST-EMPTY9 (TYPE LIST)>
6854 <NTHL MUST-EMPTY9 1 = STACK (TYPE NODE)>
6857 <CALL '
\1aANA 2 = TY28>
6860 <CALL '
\1aGET-ELE-TYPE 2 = MUST-EMPTY9>
6861 <VEQUAL? TUPF11 0 + PHRASE43>
6862 <FRAME '
\1aTYPE-OK?>
6863 <FRAME '
\1aGET-ELE-TYPE>
6866 <CALL '
\1aGET-ELE-TYPE 2 = STACK>
6869 <CALL '
\1aTYPE-OK? 2 = MUST-EMPTY9>
6870 <TYPE? MUST-EMPTY9 <TYPE-CODE FALSE> - PHRASE57>
6874 <TYPE? RT15 <TYPE-CODE FALSE> + PHRASE46>
6875 <FRAME '
\1aTYPE-OK?>
6879 <CALL '
\1aTYPE-OK? 2 = MUST-EMPTY9>
6880 <TYPE? MUST-EMPTY9 <TYPE-CODE FALSE> - PHRASE57>
6883 <TYPE? RT15 <TYPE-CODE FALSE> + BOOL50>
6884 <VEQUAL? OPTF12 0 + PHRASE48>
6889 <CALL '
\1aMINL 1 = MUST-EMPTY9>
6890 <GRTR? MUST-EMPTY9 0 + PHRASE48 (TYPE FIX)>
6892 <FRAME '
\1aCOMPILE-WARNING>
6893 <PUSH "Segment must be empty: ">
6895 <CALL '
\1aCOMPILE-WARNING 2>
6898 <TYPE? RT15 <TYPE-CODE FALSE> - PHRASE55>
6899 <FRAME '
\1aCOMPILE-ERROR>
6900 <PUSH "Too many arguments to: ">
6904 <CALL '
\1aCOMPILE-ERROR 3>
6907 <FRAME '
\1aCOMPILE-ERROR>
6908 <PUSH "Argument wrong type to: ">
6912 <CALL '
\1aCOMPILE-ERROR 3>
6917 <ADD ARGS6 1 = ARGS6 (TYPE FIX)>
6921 <VEQUAL? TUPF11 0 + PHRASE62>
6922 <FRAME '
\1aGET-ELE-TYPE>
6924 <VEQUAL? SEGF8 0 + PHRASE65>
6925 <SET MUST-EMPTY9 'ALL (TYPE ATOM)>
6928 <SET MUST-EMPTY9 ARGS6>
6932 <CALL '
\1aGET-ELE-TYPE 2 = MUST-EMPTY9>
6935 <SET MUST-EMPTY9 RT15>
6942 <RESTL TEMP22 1 = TEMP22 (TYPE LIST)>
6945 <VEQUAL? NM14 'PRINC + BOOL70>
6946 <VEQUAL? NM14 'PRINT + BOOL70>
6947 <VEQUAL? NM14 'PRIN1 - PHRASE69>
6950 <FRAME '
\1aTYPE-AND>
6951 <NTHUV NOD4 3 = STACK>
6952 <NTHL K13 1 = SEGF8 (TYPE NODE)>
6954 <NTHUV SEGF8 3 = STACK>
6956 <CALL '
\1aTYPE-AND 2 = SEGF8>
6957 <PUTUV NOD4 3 SEGF8>
6960 <FRAME '
\1aSPEC-FLUSH>
6961 <CALL '
\1aSPEC-FLUSH 0>
6962 <FRAME '
\1aPUT-FLUSH>
6964 <CALL '
\1aPUT-FLUSH 1>
6965 <CONS 'ALL () = TEMP22>
6966 <PUTUV NOD4 8 TEMP22>
6968 <FRAME '
\1aTYPE-OK?>
6969 <NTHUV NOD4 3 = STACK>
6973 <CALL '
\1aTYPE-OK? 2 = TEMP22>
6977 " Analyze CHTYPE, in some cases do it at compile time."
6980 <GFCN
\1aCHTYPE-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
6981 <TEMP K6 TEMP16 OBN9 NTN7 TEMP46:FIX TEMP52>
6983 <NTHUV NOD4 5 = K6 (TYPE LIST)>
6984 <FRAME '
\1aSEGFLUSH>
6987 <CALL '
\1aSEGFLUSH 2 = TEMP16>
6988 <TYPE? TEMP16 <TYPE-CODE FALSE> - PHRASE72>
6990 <LENL K6 = STACK (TYPE FIX)>
6996 <NTHL K6 1 = OBN9 (TYPE NODE)>
6999 <CALL '
\1aANA 2 = TEMP16>
7001 <RESTL K6 1 = K6 (TYPE LIST)>
7002 <NTHL K6 1 = NTN7 (TYPE NODE)>
7008 <NTHUV NTN7 1 = K6 (TYPE FIX)>
7009 <VEQUAL? K6 2 - PHRASE24 (TYPE FIX)>
7012 <NTHUV NTN7 4 = NTN7 (TYPE ATOM)>
7014 <CALL '
\1aISTYPE? 1 = K6>
7015 <TYPE? K6 <TYPE-CODE FALSE> - PHRASE26>
7017 <FRAME '
\1aCOMPILE-ERROR>
7018 <PUSH "Second arg to CHTYPE not a type ">
7021 <CALL '
\1aCOMPILE-ERROR 3>
7023 <FRAME '
\1aTYPE-OK?>
7029 <CALL '
\1aMTYPR 1 = STACK>
7030 <CALL '
\1aFORM 2 = STACK>
7031 <CALL '
\1aTYPE-OK? 2 = K6>
7032 <TYPE? K6 <TYPE-CODE FALSE> - PHRASE30>
7034 <FRAME '
\1aCOMPILE-ERROR>
7035 <PUSH "Primtypes differ in CHTYPE">
7039 <CALL '
\1aCOMPILE-ERROR 4>
7041 <NTHUV OBN9 1 = K6 (TYPE FIX)>
7042 <VEQUAL? K6 2 - PHRASE36 (TYPE FIX)>
7044 <PUTUV NOD4 1 2 (TYPE FIX)>
7045 <PUTUV NOD4 5 () (TYPE LIST)>
7047 <NTHUV OBN9 4 = STACK>
7050 <CALL '
\1aCHTYPE 2 = K6>
7055 <FRAME '
\1aTYPESAME>
7058 <CALL '
\1aTYPESAME 2 = K6>
7059 <TYPE? K6 <TYPE-CODE FALSE> + PHRASE38>
7061 <FRAME '
\1aCOMPILE-WARNING>
7062 <PUSH "Redundant CHTYPE">
7064 <CALL '
\1aCOMPILE-WARNING 2>
7065 <PUTUV NOD4 1 42 (TYPE FIX)>
7068 <FRAME '
\1aGET-DECL>
7070 <CALL '
\1aGET-DECL 1 = OBN9>
7071 <TYPE? OBN9 <TYPE-CODE FALSE> + PHRASE41>
7074 <FRAME '
\1aTYPEPRIM>
7076 <CALL '
\1aTYPEPRIM 1 = STACK>
7077 <CALL '
\1aFORM 2 = STACK>
7078 <SET TEMP46 1 (TYPE FIX)>
7081 <AND TEMP52 7 = TEMP52>
7082 <VEQUAL? TEMP52 1 + TAG48>
7084 <LOOP (K6 TYPE VALUE LENGTH) (TEMP46 VALUE)>
7090 <ADD TEMP46 1 = TEMP46 (TYPE FIX)>
7093 <LIST TEMP46 = K6 (TYPE LIST)>
7099 <VEQUAL? TEMP46 0 + TAG50>
7101 <CONS TEMP52 K6 = K6 (TYPE LIST)>
7103 <SUB TEMP46 1 = TEMP46 (TYPE FIX)>
7106 <CHTYPE K6 <TYPE OBN9> = OBN9>
7108 <FRAME '
\1aTYPE-OK?>
7113 <CALL '
\1aTYPE-OK? 2 = K6>
7114 <TYPE? K6 <TYPE-CODE FALSE> - PHRASE56>
7116 <FRAME '
\1aCOMPILE-ERROR>
7117 <PUSH "DECL violation in CHTYPE ">
7119 <CALL '
\1aCOMPILE-ERROR 2>
7121 <PUTUV NOD4 1 37 (TYPE FIX)>
7124 <PUTUV NOD4 1 37 (TYPE FIX)>
7128 <FRAME '
\1aTYPE-OK?>
7133 <CALL '
\1aTYPE-OK? 2 = TEMP16>
7137 <NTHUV NTN7 1 = K6 (TYPE FIX)>
7138 <VEQUAL? K6 9 - PHRASE61 (TYPE FIX)>
7141 <EQUAL? K6 'TYPE - PHRASE61>
7143 <FRAME '
\1aPRIMITIVE-TYPE>
7145 <CALL '
\1aPRIMITIVE-TYPE 1 = OBN9>
7146 <TYPE? OBN9 <TYPE-CODE FALSE> + PHRASE64>
7147 <FRAME '
\1aPRIMITIVE-TYPE>
7148 <NTHUV NTN7 5 = K6 (TYPE LIST)>
7150 <NTHL K6 1 = K6 (TYPE NODE)>
7151 <NTHUV K6 3 = TEMP52>
7154 <CALL '
\1aPRIMITIVE-TYPE 1 = K6>
7155 <TYPE? K6 <TYPE-CODE FALSE> + PHRASE64>
7156 <FRAME '
\1aTYPE-OK?>
7161 <CALL '
\1aTYPE-OK? 2 = K6>
7162 <TYPE? K6 <TYPE-CODE FALSE> - PHRASE64>
7164 <FRAME '
\1aCOMPILE-ERROR>
7165 <PUSH "Primtypes differ in CHTYPE">
7172 <CALL '
\1aCOMPILE-ERROR 4 = TEMP16>
7176 <PUTUV NOD4 1 37 (TYPE FIX)>
7177 <PUTUV NOD4 3 TEMP52>
7179 <FRAME '
\1aTYPE-OK?>
7184 <CALL '
\1aTYPE-OK? 2 = TEMP16>
7188 <GEN-LVAL 'VERBOSE = K6>
7189 <TYPE? K6 <TYPE-CODE FALSE> + PHRASE74>
7191 <FRAME '
\1aADDVMESS>
7194 <CONS "Can't open compile CHTYPE." () = STACK>
7195 <CALL '
\1aADDVMESS 2>
7197 <FRAME '
\1aTYPE-OK?>
7201 <CALL '
\1aTYPE-OK? 2 = TEMP16>
7206 <COND (<GASSIGNED? CHTYPE-ANA> <PUTPROP ,CHTYPE ANALYSIS ,CHTYPE-ANA>)>
7208 " Analyze use of ASCII sometimes do at compile time."
7211 <GFCN
\1aASCII-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
7212 <TEMP K6 TEMP11 TEMP18>
7214 <NTHUV NOD4 5 = K6 (TYPE LIST)>
7215 <FRAME '
\1aSEGFLUSH>
7218 <CALL '
\1aSEGFLUSH 2 = TEMP11>
7219 <TYPE? TEMP11 <TYPE-CODE FALSE> - PHRASE13>
7221 <LENL K6 = STACK (TYPE FIX)>
7227 <NTHL K6 1 = K6 (TYPE NODE)>
7229 <PUSH <OR FIX CHARACTER>>
7231 <CALL '
\1aEANA 3 = TEMP11>
7232 <NTHUV K6 1 = TEMP18 (TYPE FIX)>
7233 <VEQUAL? TEMP18 2 - PHRASE17 (TYPE FIX)>
7235 <PUTUV NOD4 1 2 (TYPE FIX)>
7237 <NTHUV K6 4 = STACK>
7239 <CALL '
\1aASCII 1 = TEMP11>
7240 <PUTUV NOD4 4 TEMP11>
7244 <CALL '
\1aTYPE 1 = TEMP18>
7245 <PUTUV NOD4 3 TEMP18>
7247 <PUTUV NOD4 5 () (TYPE LIST)>
7252 <CALL '
\1aISTYPE? 1 = TEMP18>
7253 <VEQUAL? TEMP18 'FIX - PHRASE21>
7255 <PUTUV NOD4 1 37 (TYPE FIX)>
7256 <PUTUV NOD4 3 'CHARACTER>
7259 <EQUAL? TEMP11 'CHARACTER - PHRASE23>
7261 <PUTUV NOD4 1 37 (TYPE FIX)>
7265 <PUTUV NOD4 3 <OR FIX CHARACTER>>
7267 <FRAME '
\1aTYPE-OK?>
7268 <NTHUV NOD4 3 = STACK>
7272 <CALL '
\1aTYPE-OK? 2 = TEMP11>
7277 <COND (<GASSIGNED? ASCII-ANA> <PUTPROP ,ASCII ANALYSIS ,ASCII-ANA>)>
7280 <GFCN
\1aUNWIND-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
7283 <NTHUV NOD4 5 = K6 (TYPE LIST)>
7285 <NTHL K6 1 = STACK (TYPE NODE)>
7290 <CALL '
\1aEANAQ 4 = ITYP7>
7292 <RESTL K6 1 = K6 (TYPE LIST)>
7293 <NTHL K6 1 = STACK (TYPE NODE)>
7299 <GEN-LVAL 'FCN = STACK>
7302 <CALL '
\1aPUTPROP 3>
7303 <FRAME '
\1aTYPE-OK?>
7308 <CALL '
\1aTYPE-OK? 2 = ITYP7>
7312 " Analyze READ type SUBRS in two cases (print uncertain usage message maybe?)"
7315 <GFCN
\1aREAD-ANA ("VALUE" ANY NODE ANY) N4 R5>
7316 <TEMP TEMP17 NN18:NODE TEMP22>
7318 <NTHUV N4 5 = TEMP17 (TYPE LIST)>
7322 <EMPL? TEMP17 + MAPAP10>
7323 <NTHL TEMP17 1 = NN18>
7324 <NTHUV NN18 1 = TEMP22 (TYPE FIX)>
7325 <VEQUAL? TEMP22 55 - PHRASE21 (TYPE FIX)>
7327 <FRAME '
\1aSPEC-FLUSH>
7328 <CALL '
\1aSPEC-FLUSH 0>
7329 <FRAME '
\1aPUT-FLUSH>
7331 <CALL '
\1aPUT-FLUSH 1>
7333 <NTHUV NN18 5 = TEMP22 (TYPE LIST)>
7335 <NTHL TEMP22 1 = STACK (TYPE NODE)>
7338 <NTHUV N4 4 = STACK>
7340 <CALL '
\1aEANAQ 4 = TEMP22>
7341 <FRAME '
\1aTYPE-OK?>
7344 <PUSH <OR FORM LIST VECTOR UVECTOR>>
7345 <CALL '
\1aTYPE-OK? 2 = TEMP22>
7346 <TYPE? TEMP22 <TYPE-CODE FALSE> + PHRASE27>
7348 <FRAME '
\1aCOMPILE-WARNING>
7349 <PUSH "Uncertain use of ">
7350 <NTHUV N4 4 = STACK>
7352 <CALL '
\1aCOMPILE-WARNING 3>
7355 <PUTUV N4 1 54 (TYPE FIX)>
7362 <NTHUV N4 4 = STACK>
7365 <RESTL TEMP17 1 = TEMP17 (TYPE LIST)>
7368 <FRAME '
\1aSPEC-FLUSH>
7369 <CALL '
\1aSPEC-FLUSH 0>
7370 <FRAME '
\1aPUT-FLUSH>
7372 <CALL '
\1aPUT-FLUSH 1>
7373 <FRAME '
\1aTYPE-OK?>
7377 <CALL '
\1aTYPE-OK? 2 = TEMP17>
7382 <GFCN
\1aREAD2-ANA ("VALUE" ANY NODE ANY) N4 R5>
7383 <TEMP TEMP17 NN18:NODE TEMP21>
7385 <NTHUV N4 5 = TEMP17 (TYPE LIST)>
7389 <EMPL? TEMP17 + MAPAP10>
7390 <NTHL TEMP17 1 = NN18>
7391 <NTHUV NN18 1 = TEMP21 (TYPE FIX)>
7392 <VEQUAL? TEMP21 55 - PHRASE20 (TYPE FIX)>
7395 <NTHUV NN18 5 = TEMP21 (TYPE LIST)>
7397 <NTHL TEMP21 1 = STACK (TYPE NODE)>
7400 <NTHUV N4 4 = STACK>
7409 <NTHUV N4 4 = STACK>
7412 <RESTL TEMP17 1 = TEMP17 (TYPE LIST)>
7415 <FRAME '
\1aSPEC-FLUSH>
7416 <CALL '
\1aSPEC-FLUSH 0>
7417 <FRAME '
\1aPUT-FLUSH>
7419 <CALL '
\1aPUT-FLUSH 1>
7420 <FRAME '
\1aTYPE-OK?>
7424 <CALL '
\1aTYPE-OK? 2 = TEMP17>
7429 <GFCN
\1aGET-ANA ("VALUE" ANY NODE ANY) N4 R5>
7430 <TEMP K7:LIST NAM8 TEMP11>
7432 <NTHUV N4 5 = K7 (TYPE LIST)>
7435 <NTHL K7 1 = STACK (TYPE NODE)>
7440 <RESTL K7 1 = TEMP11 (TYPE LIST)>
7441 <NTHL TEMP11 1 = STACK (TYPE NODE)>
7447 <RESTL K7 1 = TEMP11 (TYPE LIST)>
7449 <RESTL TEMP11 1 = TEMP11 (TYPE LIST)>
7450 <NTHL TEMP11 1 = STACK (TYPE NODE)>
7455 <CALL '
\1aEANAQ 4 = TEMP11>
7456 <FRAME '
\1aTYPE-OK?>
7459 <PUSH <OR LIST VECTOR UVECTOR FORM>>
7460 <CALL '
\1aTYPE-OK? 2 = TEMP11>
7461 <TYPE? TEMP11 <TYPE-CODE FALSE> + PHRASE14>
7463 <FRAME '
\1aCOMPILE-WARNING>
7464 <PUSH "Uncertain use of ">
7469 <CALL '
\1aCOMPILE-WARNING 3>
7470 <FRAME '
\1aSPEC-FLUSH>
7471 <CALL '
\1aSPEC-FLUSH 0>
7472 <FRAME '
\1aPUT-FLUSH>
7474 <CALL '
\1aPUT-FLUSH 1>
7477 <PUTUV N4 1 57 (TYPE FIX)>
7480 <FRAME '
\1aTYPE-OK?>
7484 <CALL '
\1aTYPE-OK? 2 = TEMP11>
7489 <GFCN
\1aGET2-ANA ("VALUE" ANY NODE ANY) N4 R5>
7490 <TEMP K6:LIST NAM7 LN8:FIX TEMP11>
7492 <NTHUV N4 5 = K6 (TYPE LIST)>
7494 <LENL K6 = LN8 (TYPE FIX)>
7496 <NTHL K6 1 = STACK (TYPE NODE)>
7501 <RESTL K6 1 = TEMP11 (TYPE LIST)>
7502 <NTHL TEMP11 1 = STACK (TYPE NODE)>
7507 <VEQUAL? LN8 3 - PHRASE13 (TYPE FIX)>
7510 <RESTL K6 1 = TEMP11 (TYPE LIST)>
7512 <RESTL TEMP11 1 = TEMP11 (TYPE LIST)>
7513 <NTHL TEMP11 1 = STACK (TYPE NODE)>
7522 <FRAME '
\1aTYPE-OK?>
7526 <CALL '
\1aTYPE-OK? 2 = TEMP11>
7531 <GFCN
\1aEANAQ ("VALUE" ANY NODE ANY ANY ANY) N4 R5 NAM6 INOD7>
7534 <FRAME '
\1aBUILD-TYPE-LIST>
7535 <GEN-LVAL 'VARTBL = STACK>
7536 <CALL '
\1aBUILD-TYPE-LIST 1 = SPCD8>
7544 <CALL '
\1aEANA 3 = R5>
7545 <FRAME '
\1aASSERT-TYPES>
7547 <GEN-LVAL 'VARTBL = STACK>
7550 <CALL '
\1aORUPC 2 = STACK>
7551 <CALL '
\1aASSERT-TYPES 1>
7556 <GFCN
\1aACTIV? ("VALUE" <OR ATOM !<FALSE>> <LIST [REST SYMTAB]> ANY) BST4 NOACT5>
7562 <EMPL? BST4 - BOOL10 (TYPE LIST)>
7565 <NTHL BST4 1 = TEMP6 (TYPE SYMTAB)>
7566 <NTHUV TEMP6 4 = TEMP6 (TYPE FIX)>
7567 <VEQUAL? TEMP6 1 - BOOL11 (TYPE FIX)>
7569 <TYPE? NOACT5 <TYPE-CODE FALSE> + BOOL15>
7570 <NTHL BST4 1 = TEMP6 (TYPE SYMTAB)>
7571 <NTHUV TEMP6 11 = TEMP6>
7572 <TYPE? TEMP6 <TYPE-CODE FALSE> + BOOL15>
7574 <NTHL BST4 1 = TEMP6 (TYPE SYMTAB)>
7575 <NTHUV TEMP6 3 = TEMP6>
7576 <TYPE? TEMP6 <TYPE-CODE FALSE> + BOOL11>
7581 <RESTL BST4 1 = BST4 (TYPE LIST)>
7585 <GFCN
\1aSAME-DECL? ("VALUE" <OR ATOM !<FALSE>> ANY ANY) D14 D25>
7591 <CALL '
\1a=? 2 = TEMP7>
7592 <VEQUAL? TEMP7 0 - TAG10>
7593 <FRAME '
\1aTYPE-OK?>
7599 <CALL '
\1aNOTIFY 1 = STACK>
7600 <CALL '
\1aTYPE-OK? 2 = TEMP7>
7601 <TYPE? TEMP7 <TYPE-CODE FALSE> - TAG9>
7605 <SET TEMP7 %<> (TYPE FALSE)>
7611 <GFCN
\1aSPECIALIZE ("VALUE" ANY ANY) OBJ4>
7612 <TEMP OB8 T15:FIX TEMP15 SYM7>
7614 <TYPE? OBJ4 <TYPE-CODE FORM> + TAG12>
7615 <TYPE? OBJ4 <TYPE-CODE SEGMENT> - PHRASE19>
7617 <CHTYPE OBJ4 <TYPE-CODE FORM> = OB8>
7618 <LENL OB8 = T15 (TYPE FIX)>
7619 <VEQUAL? T15 2 - BOOL14 (TYPE FIX)>
7620 <NTHL OB8 1 = TEMP15>
7621 <EQUAL? TEMP15 'LVAL - BOOL14>
7623 <RESTL OB8 1 = TEMP15 (TYPE LIST)>
7624 <NTHL TEMP15 1 = SYM7>
7626 <TYPE? SYM7 <TYPE-CODE ATOM> + BOOL13>
7628 <VEQUAL? T15 3 - PHRASE19 (TYPE FIX)>
7630 <NTHL OB8 1 = TEMP15>
7631 <EQUAL? TEMP15 'SET - PHRASE19>
7633 <RESTL OB8 1 = TEMP15 (TYPE LIST)>
7635 <NTHL TEMP15 1 = SYM7>
7637 <TYPE? SYM7 <TYPE-CODE ATOM> - PHRASE19>
7639 <FRAME '
\1aSRCH-SYM>
7641 <CALL '
\1aSRCH-SYM 1 = OB8>
7642 <VEQUAL? OB8 0 + PHRASE19>
7643 <NTHUV OB8 3 = TEMP15>
7644 <TYPE? TEMP15 <TYPE-CODE FALSE> - PHRASE19>
7646 <FRAME '
\1aCOMPILE-NOTE>
7647 <PUSH "Redeclared special ">
7650 <CALL '
\1aCOMPILE-NOTE 2>
7654 <FRAME '
\1aPRIMTYPE>
7656 <CALL '
\1aPRIMTYPE 1 = SYM7>
7657 <SET TEMP15 [FORM LIST UVECTOR VECTOR] (TYPE VECTOR)>
7658 <LOOP (SYM7 VALUE) (TEMP15 LENGTH VALUE)>
7660 <NTHUV TEMP15 1 = OB8>
7661 <VEQUAL? OB8 SYM7 + TAG24>
7663 <RESTUV TEMP15 1 = TEMP15 (TYPE VECTOR)>
7664 <EMPUV? TEMP15 - TAG25>
7667 <SET OB8 %<> (TYPE FALSE)>
7673 <EMPTY? SYM7 + MAP30>
7674 <FRAME '
\1aSPECIALIZE>
7676 <CALL '
\1aSPECIALIZE 1 = OB8>
7684 <GFCN
\1aADECL-ANA ("VALUE" ANY ANY ANY) NOD4 RTYP5>
7685 <TEMP RT6 TEMP9 TY8>
7687 <NTHUV NOD4 4 = RT6>
7688 <NTHUV NOD4 5 = TEMP9 (TYPE LIST)>
7689 <NTHL TEMP9 1 = TEMP9 (TYPE NODE)>
7690 <FRAME '
\1aTYPE-OK?>
7693 <CALL '
\1aTYPE-OK? 2 = TY8>
7694 <TYPE? TY8 <TYPE-CODE FALSE> - PHRASE11>
7695 <FRAME '
\1aCOMPILE-ERROR>
7696 <PUSH "ADECL asserts incompatible type.">
7697 <PUSH "Required type is ">
7700 <PUSH " ADECL type is ">
7702 <CALL '
\1aCOMPILE-ERROR 5>
7708 <CALL '
\1aANA 2 = RT6>
7709 <TYPE? RT6 <TYPE-CODE FALSE> - PHRASE14>
7710 <FRAME '
\1aCOMPILE-ERROR>
7711 <PUSH "ADECL asserts incompatible type.">
7712 <PUSH "Result type is ">
7713 <NTHUV TEMP9 3 = STACK>
7715 <PUSH " ADECL type is ">
7718 <CALL '
\1aCOMPILE-ERROR 5>
7726 <GFCN
\1aCALL-ANA ("VALUE" ANY NODE ANY) N4 R5>
7727 <TEMP K6:LIST TEMP13 INS7 TYP8 TEMP19:FIX TEMP25>
7729 <NTHUV N4 5 = K6 (TYPE LIST)>
7730 <EMPL? K6 - PHRASE11 (TYPE LIST)>
7731 <FRAME '
\1aCOMPILE-ERROR>
7732 <PUSH "CALL has no instruction supplied">
7735 <CALL '
\1aCOMPILE-ERROR 2 = TEMP13>
7739 <NTHL K6 1 = INS7 (TYPE NODE)>
7740 <NTHUV INS7 1 = TEMP13 (TYPE FIX)>
7741 <VEQUAL? TEMP13 2 - PHRASE14 (TYPE FIX)>
7743 <NTHUV INS7 4 = TEMP13>
7744 <TYPE? TEMP13 <TYPE-CODE ATOM> - PHRASE14>
7746 <FRAME '
\1aLEGAL-MIM-INS>
7748 <CALL '
\1aLEGAL-MIM-INS 1 = TYP8>
7749 <TYPE? TYP8 <TYPE-CODE FALSE> + PHRASE14>
7751 <SET TEMP19 1 (TYPE FIX)>
7752 <NTHUV N4 8 = TEMP13>
7753 <TYPE TEMP13 = TEMP25>
7754 <AND TEMP25 7 = TEMP25>
7755 <VEQUAL? TEMP25 1 + TAG21>
7757 <LOOP (TEMP13 TYPE VALUE LENGTH) (TEMP19 VALUE)>
7760 <EMPTY? TEMP13 + TAG26>
7761 <NTH1 TEMP13 = STACK>
7762 <REST1 TEMP13 = TEMP13>
7763 <ADD TEMP19 1 = TEMP19 (TYPE FIX)>
7766 <LIST TEMP19 = TEMP13 (TYPE LIST)>
7772 <VEQUAL? TEMP19 0 + TAG23>
7774 <CONS TEMP25 TEMP13 = TEMP13 (TYPE LIST)>
7776 <SUB TEMP19 1 = TEMP19 (TYPE FIX)>
7781 <NTHUV INS7 4 = TEMP13>
7783 <EQUAL? TEMP13 '`RTUPLE - PHRASE29>
7786 <RESTL K6 1 = TEMP13 (TYPE LIST)>
7787 <NTHL TEMP13 1 = STACK (TYPE NODE)>
7792 <FRAME '
\1aACT-CHECK>
7793 <RESTL K6 1 = TEMP13 (TYPE LIST)>
7794 <RESTL TEMP13 1 = TEMP13 (TYPE LIST)>
7795 <NTHL TEMP13 1 = STACK (TYPE NODE)>
7798 <CALL '
\1aACT-CHECK 2 = INS7>
7799 <TYPE? INS7 <TYPE-CODE FALSE> + PHRASE32>
7800 <NTHUV INS7 14 = TEMP13>
7801 <EQUAL? TEMP13 'NO-RETURN - PHRASE35>
7803 <FRAME '
\1aBUILD-TYPE-LIST>
7804 <NTHUV INS7 11 = STACK (TYPE SYMTAB)>
7805 <CALL '
\1aBUILD-TYPE-LIST 1 = TEMP13>
7806 <PUTUV INS7 16 TEMP13>
7808 <FRAME '
\1aSAVE-L-D-STATE>
7809 <GEN-LVAL 'VARTBL = STACK>
7810 <CALL '
\1aSAVE-L-D-STATE 1 = TEMP25>
7811 <PUTUV INS7 15 TEMP25>
7816 <NTHUV INS7 11 = STACK (TYPE SYMTAB)>
7817 <NTHUV INS7 16 = STACK (TYPE LIST)>
7818 <CALL '
\1aORUPC 2 = TEMP25>
7819 <PUTUV INS7 16 TEMP25>
7821 <FRAME '
\1aMSAVE-L-D-STATE>
7822 <NTHUV INS7 15 = STACK (TYPE LIST)>
7823 <GEN-LVAL 'VARTBL = STACK>
7824 <CALL '
\1aMSAVE-L-D-STATE 2 = TEMP13>
7825 <PUTUV INS7 15 TEMP13>
7828 <FRAME '
\1aTYPE-MERGE>
7830 <NTHUV INS7 14 = STACK>
7831 <CALL '
\1aTYPE-MERGE 2 = TEMP13>
7832 <PUTUV INS7 14 TEMP13>
7837 <RESTL K6 1 = TEMP13 (TYPE LIST)>
7839 <RESTL TEMP13 1 = TEMP13 (TYPE LIST)>
7840 <NTHL TEMP13 1 = STACK (TYPE NODE)>
7847 <RESTL K6 1 = K6 (TYPE LIST)>
7851 <EMPL? K6 + MAPAP54>
7853 <NTHUV INS7 1 = TEMP13 (TYPE FIX)>
7854 <VEQUAL? TEMP13 3 - PHRASE63 (TYPE FIX)>
7857 <NTHUV INS7 5 = TEMP13 (TYPE LIST)>
7859 <NTHL TEMP13 1 = STACK (TYPE NODE)>
7861 <PUSH <OR MULTI STRUCTURED>>
7873 <RESTL K6 1 = K6 (TYPE LIST)>
7876 <FRAME '
\1aTYPE-OK?>
7881 <CALL '
\1aTYPE-OK? 2 = TEMP13>
7885 <FRAME '
\1aCOMPILE-ERROR>
7886 <PUSH "CALL with a non-instruction: ">
7889 <CALL '
\1aCOMPILE-ERROR 2 = TEMP13>
7892 <END
\1aCALL-ANA>
\r\r
7894 <GFCN
\1aLEGAL-MIM-INS ("VALUE" ANY NODE) N4>
7895 <TEMP ATM5 TEMP9 TEMP13:STRING TEMP15 TEMP16 TEMP17>
7897 <NTHUV N4 4 = ATM5 (TYPE ATOM)>
7899 <NTHR ATM5 3 = STACK (RECORD-TYPE ATOM)>
7901 <GVAL 'MIM-OBL = STACK>
7902 <CALL '
\1aLOOKUP 2 = ATM5>
7904 <TYPE? TEMP9 <TYPE-CODE FALSE> + PHRASE23>
7907 <NTHR ATM5 3 = TEMP13 (RECORD-TYPE ATOM)>
7908 <IFCAN "STRING-EQUAL?">
7909 <STRING-EQUAL? TEMP13 "ACTIVATION" - PHRASE12>
7910 <ENDIF "STRING-EQUAL?">
7911 <IFCANNOT "STRING-EQUAL?">
7912 <SET TEMP9 "ACTIVATION" (TYPE STRING)>
7913 <LENUS TEMP13 = TEMP15 (TYPE FIX)>
7914 <VEQUAL? TEMP15 10 - PHRASE12>
7915 <LOOP (TEMP13 VALUE LENGTH) (TEMP9 VALUE LENGTH) (TEMP15 VALUE)>
7917 <NTHUS TEMP13 1 = TEMP16>
7918 <NTHUS TEMP9 1 = TEMP17>
7919 <VEQUAL? TEMP16 TEMP17 - PHRASE12>
7920 <DEAD TEMP16 TEMP17>
7921 <RESTUS TEMP13 1 = TEMP13 (TYPE STRING)>
7922 <RESTUS TEMP9 1 = TEMP9 (TYPE STRING)>
7923 <SUB TEMP15 1 = TEMP15 (TYPE FIX)>
7924 <GRTR? TEMP15 0 + TAG18 (TYPE FIX)>
7925 <ENDIF "STRING-EQUAL?">
7926 <GEN-LVAL 'FCN = TEMP9>
7934 <CALL '
\1aGETPROP 2 = TEMP9>
7935 <TYPE? TEMP9 <TYPE-CODE FALSE> - PHRASE23>
7936 <SET TEMP9 'ANY (TYPE ATOM)>
7940 <END
\1aLEGAL-MIM-INS>
7942 <GFCN
\1aAPPLY-ANA ("VALUE" ANY NODE ANY) N4 R5>
7943 <TEMP K6 TEMP10 TEMP14:FIX TEMP20>
7945 <NTHUV N4 5 = K6 (TYPE LIST)>
7946 <EMPL? K6 - PHRASE8 (TYPE LIST)>
7947 <FRAME '
\1aCOMPILE-ERROR>
7948 <PUSH "APPLY has nothing to apply">
7951 <CALL '
\1aCOMPILE-ERROR 2 = TEMP10>
7956 <SET TEMP14 1 (TYPE FIX)>
7957 <NTHUV N4 8 = TEMP10>
7958 <TYPE TEMP10 = TEMP20>
7959 <AND TEMP20 7 = TEMP20>
7960 <VEQUAL? TEMP20 1 + TAG16>
7962 <LOOP (TEMP10 TYPE VALUE LENGTH) (TEMP14 VALUE)>
7965 <EMPTY? TEMP10 + TAG21>
7966 <NTH1 TEMP10 = STACK>
7967 <REST1 TEMP10 = TEMP10>
7968 <ADD TEMP14 1 = TEMP14 (TYPE FIX)>
7971 <LIST TEMP14 = TEMP10 (TYPE LIST)>
7977 <VEQUAL? TEMP14 0 + TAG18>
7979 <CONS TEMP20 TEMP10 = TEMP10 (TYPE LIST)>
7981 <SUB TEMP14 1 = TEMP14 (TYPE FIX)>
7986 <SET TEMP10 K6 (TYPE LIST)>
7991 <EMPL? TEMP10 + MAPAP27>
7992 <NTHL TEMP10 1 = K6>
7993 <NTHUV K6 1 = TEMP20 (TYPE FIX)>
7994 <VEQUAL? TEMP20 3 - PHRASE34 (TYPE FIX)>
7997 <NTHUV K6 5 = TEMP20 (TYPE LIST)>
7999 <NTHL TEMP20 1 = STACK (TYPE NODE)>
8001 <PUSH <OR MULTI STRUCTURED>>
8013 <RESTL TEMP10 1 = TEMP10 (TYPE LIST)>
8016 <PUTUV N4 1 93 (TYPE FIX)>
8018 <FRAME '
\1aTYPE-OK?>
8022 <CALL '
\1aTYPE-OK? 2 = TEMP10>
8026 <COND (<GASSIGNED? APPLY-ANA> <PUTPROP ,APPLY ANALYSIS ,APPLY-ANA>)>
8029 <GFCN
\1aANALYSIS-DISPATCHER ("VALUE" ANY ANY ANY) NOD4 RTYP5>
8032 <NTHUV NOD4 1 = TEMP62 (TYPE FIX)>
8033 <DISPATCH TEMP62 1 CASE9 CASE8 CASE10 CASE11 CASE12 CASE13 CASE14 CASEDF6 CASE16 CASEDF6 CASEDF6 CASEDF6 CASEDF6 CASEDF6 CASE15 CASEDF6 CASEDF6 CASE25 CASE27 CASEDF6 CASE28 CASE26 CASEDF6 CASEDF6 CASE34 CASE35 CASE36 CASE37 CASE38 CASE39 CASEDF6 CASEDF6 CASEDF6 CASEDF6 CASE29 CASEDF6 CASEDF6 CASE30 CASE31 CASE32 CASE33 CASEDF6 CASEDF6 CASE17 CASE18 CASEDF6 CASEDF6 CASE51 CASE52 CASE23 CASEDF6 CASEDF6 CASE19 CASE20 CASEDF6 CASE21 CASE22 CASEDF6 CASEDF6 CASE42 CASE24 CASEDF6 CASEDF6 CASEDF6 CASE40 CASEDF6 CASEDF6 CASEDF6 CASEDF6 CASEDF6 CASEDF6 CASEDF6 CASEDF6 CASE41 CASEDF6 CASEDF6 CASEDF6 CASEDF6 CASEDF6 CASE46 CASE60 CASE54 CASE55 CASE47 CASEDF6 CASE43 CASE44 CASE45 CASE48 CASE49 CASEDF6 CASEDF6 CASE50 CASEDF6 CASEDF6 CASEDF6 CASEDF6 CASE53 CASE56 CASE57 CASE58 CASE59 CASE61>
8036 <FRAME '
\1aSUBR-ANA>
8041 <CALL '
\1aSUBR-ANA 2 = TEMP62>
8045 <FRAME '
\1aQUOTE-ANA>
8050 <CALL '
\1aQUOTE-ANA 2 = TEMP62>
8054 <FRAME '
\1aFUNC-ANA>
8059 <CALL '
\1aFUNC-ANA 2 = TEMP62>
8063 <FRAME '
\1aSEGMENT-ANA>
8068 <CALL '
\1aSEGMENT-ANA 2 = TEMP62>
8077 <CALL '
\1aFORM-AN 2 = TEMP62>
8081 <FRAME '
\1aPRG-REP-ANA>
8086 <CALL '
\1aPRG-REP-ANA 2 = TEMP62>
8090 <FRAME '
\1aSUBR-ANA>
8095 <CALL '
\1aSUBR-ANA 2 = TEMP62>
8099 <FRAME '
\1aCOND-ANA>
8104 <CALL '
\1aCOND-ANA 2 = TEMP62>
8113 <CALL '
\1aCOPY-AN 2 = TEMP62>
8117 <FRAME '
\1aRSUBR-ANA>
8122 <CALL '
\1aRSUBR-ANA 2 = TEMP62>
8126 <FRAME '
\1aISTRUC-ANA>
8131 <CALL '
\1aISTRUC-ANA 2 = TEMP62>
8135 <FRAME '
\1aISTRUC2-ANA>
8140 <CALL '
\1aISTRUC2-ANA 2 = TEMP62>
8144 <FRAME '
\1aREAD-ANA>
8149 <CALL '
\1aREAD-ANA 2 = TEMP62>
8153 <FRAME '
\1aREAD2-ANA>
8158 <CALL '
\1aREAD2-ANA 2 = TEMP62>
8167 <CALL '
\1aGET-ANA 2 = TEMP62>
8171 <FRAME '
\1aGET2-ANA>
8176 <CALL '
\1aGET2-ANA 2 = TEMP62>
8180 <FRAME '
\1aMAPPER-AN>
8185 <CALL '
\1aMAPPER-AN 2 = TEMP62>
8189 <FRAME '
\1aMARGS-ANA>
8194 <CALL '
\1aMARGS-ANA 2 = TEMP62>
8198 <FRAME '
\1aARITH-ANA>
8203 <CALL '
\1aARITH-ANA 2 = TEMP62>
8207 <FRAME '
\1aARITHP-ANA>
8212 <CALL '
\1aARITHP-ANA 2 = TEMP62>
8216 <FRAME '
\1aARITHP-ANA>
8221 <CALL '
\1aARITHP-ANA 2 = TEMP62>
8225 <FRAME '
\1aARITHP-ANA>
8230 <CALL '
\1aARITHP-ANA 2 = TEMP62>
8234 <FRAME '
\1aARITH-ANA>
8239 <CALL '
\1aARITH-ANA 2 = TEMP62>
8248 <CALL '
\1aABS-ANA 2 = TEMP62>
8257 <CALL '
\1aFIX-ANA 2 = TEMP62>
8261 <FRAME '
\1aFLOAT-ANA>
8266 <CALL '
\1aFLOAT-ANA 2 = TEMP62>
8275 <CALL '
\1aMOD-ANA 2 = TEMP62>
8279 <FRAME '
\1aLENGTH-ANA>
8284 <CALL '
\1aLENGTH-ANA 2 = TEMP62>
8288 <FRAME '
\1aEMPTY?-ANA>
8293 <CALL '
\1aEMPTY?-ANA 2 = TEMP62>
8302 <CALL '
\1aNTH-ANA 2 = TEMP62>
8306 <FRAME '
\1aREST-ANA>
8311 <CALL '
\1aREST-ANA 2 = TEMP62>
8320 <CALL '
\1aPUT-ANA 2 = TEMP62>
8324 <FRAME '
\1aPUTREST-ANA>
8329 <CALL '
\1aPUTREST-ANA 2 = TEMP62>
8333 <FRAME '
\1aUNWIND-ANA>
8338 <CALL '
\1aUNWIND-ANA 2 = TEMP62>
8342 <FRAME '
\1aFORM-F-ANA>
8347 <CALL '
\1aFORM-F-ANA 2 = TEMP62>
8351 <FRAME '
\1aIRSUBR-ANA>
8356 <CALL '
\1aIRSUBR-ANA 2 = TEMP62>
8365 <CALL '
\1aROT-ANA 2 = TEMP62>
8374 <CALL '
\1aLSH-ANA 2 = TEMP62>
8378 <FRAME '
\1aBIT-TEST-ANA>
8383 <CALL '
\1aBIT-TEST-ANA 2 = TEMP62>
8387 <FRAME '
\1aCASE-ANA>
8392 <CALL '
\1aCASE-ANA 2 = TEMP62>
8401 <CALL '
\1aCOPY-AN 2 = TEMP62>
8405 <FRAME '
\1aADECL-ANA>
8410 <CALL '
\1aADECL-ANA 2 = TEMP62>
8414 <FRAME '
\1aCALL-ANA>
8419 <CALL '
\1aCALL-ANA 2 = TEMP62>
8423 <FRAME '
\1aAPPLY-ANA>
8428 <CALL '
\1aAPPLY-ANA 2 = TEMP62>
8432 <FRAME '
\1aFGETBITS-ANA>
8437 <CALL '
\1aFGETBITS-ANA 2 = TEMP62>
8441 <FRAME '
\1aFPUTBITS-ANA>
8446 <CALL '
\1aFPUTBITS-ANA 2 = TEMP62>
8450 <FRAME '
\1aSTACK-ANA>
8455 <CALL '
\1aSTACK-ANA 2 = TEMP62>
8459 <FRAME '
\1aBACK-ANA>
8464 <CALL '
\1aBACK-ANA 2 = TEMP62>
8473 <CALL '
\1aTOP-ANA 2 = TEMP62>
8477 <FRAME '
\1aCHANNEL-OP-ANA>
8482 <CALL '
\1aCHANNEL-OP-ANA 2 = TEMP62>
8486 <FRAME '
\1aATOM-PART-ANA>
8491 <CALL '
\1aATOM-PART-ANA 2 = TEMP62>
8495 <FRAME '
\1aOFFSET-PART-ANA>
8500 <CALL '
\1aOFFSET-PART-ANA 2 = TEMP62>
8504 <FRAME '
\1aPUT-GET-DECL-ANA>
8509 <CALL '
\1aPUT-GET-DECL-ANA 2 = TEMP62>
8513 <FRAME '
\1aSUBSTRUC-ANA>
8518 <CALL '
\1aSUBSTRUC-ANA 2 = TEMP62>
8522 <FRAME '
\1aMULTI-SET-ANA>
8527 <CALL '
\1aMULTI-SET-ANA 2 = TEMP62>
8530 <END
\1aANALYSIS-DISPATCHER>
8532 <GFCN
\1aSPEC-ANA ("VALUE" ANY ANY ANY ANY ANY ANY NODE ANY) CONST4 PRED-NAME5 OTYPE6 RTYP7 DFLG8 NOD9 WHO10>
8533 <TEMP PAT12 TEMP20 X34 L64:LIST FLG65 TEMP67 TEMP71>
8535 <TYPE? CONST4 <TYPE-CODE LIST> - PHRASE14>
8536 <EQUAL? PRED-NAME5 '==? - PHRASE16>
8537 <FRAME '
\1aGEN-DECL>
8538 <NTHL CONST4 1 = STACK>
8540 <CALL '
\1aGEN-DECL 1 = PAT12>
8543 <EQUAL? PRED-NAME5 'TYPE? - PHRASE18>
8544 <FRAME '
\1aTYPE-MERGE>
8545 <SET PAT12 0 (TYPE FIX)>
8548 <LOOP (TEMP20 VALUE) (PAT12 VALUE)>
8551 <EMPL? TEMP20 + TAG19>
8552 <NTHL TEMP20 1 = STACK>
8553 <RESTL TEMP20 1 = TEMP20 (TYPE LIST)>
8554 <ADD PAT12 1 = PAT12 (TYPE FIX)>
8557 <CALL '
\1aTYPE-MERGE PAT12 = PAT12>
8560 <SET PAT12 CONST4 (TYPE LIST)>
8562 <SET TEMP20 0 (TYPE FIX)>
8563 <FRAME '
\1aTYPE-MERGE>
8567 <EMPL? PAT12 + MAPAP29>
8568 <NTHL PAT12 1 = X34>
8573 <CALL '
\1aFORM 2 = X34>
8576 <ADD TEMP20 1 = TEMP20 (TYPE FIX)>
8577 <RESTL PAT12 1 = PAT12 (TYPE LIST)>
8580 <CALL '
\1aTYPE-MERGE TEMP20 = PAT12>
8584 <EQUAL? PRED-NAME5 '==? - PHRASE39>
8585 <FRAME '
\1aGEN-DECL>
8588 <CALL '
\1aGEN-DECL 1 = PAT12>
8591 <EQUAL? PRED-NAME5 'TYPE? - PHRASE41>
8600 <CALL '
\1aFORM 2 = PAT12>
8602 <TYPE? DFLG8 <TYPE-CODE FALSE> + PHRASE45>
8604 <FRAME '
\1aTYPE-OK?>
8608 <CALL '
\1aTYPE-OK? 2 = X34>
8614 <EQUAL? PRED-NAME5 '==? + PHRASE49>
8616 <EQUAL? OTYPE6 'ANY + PHRASE49>
8617 <FRAME '
\1aTYPE-OK?>
8621 <CALL '
\1aFORM 2 = STACK>
8623 <CALL '
\1aTYPE-OK? 2 = TEMP20>
8624 <TYPE? TEMP20 <TYPE-CODE FALSE> - PHRASE49>
8626 <SET X34 'ATOM (TYPE ATOM)>
8629 <FRAME '
\1aTYPE-OK?>
8633 <CALL '
\1aTYPE-OK? 2 = TEMP20>
8634 <TYPE? TEMP20 <TYPE-CODE FALSE> + PHRASE53>
8636 <SET X34 <OR FALSE ATOM> (TYPE FORM)>
8639 <SET X34 'FALSE (TYPE ATOM)>
8646 <EMPTY? TEMP20 + MAPAP60>
8648 <NTHL L64 1 = FLG65>
8649 <RESTL L64 1 = TEMP67 (TYPE LIST)>
8650 <NTHL TEMP67 1 = TEMP67 (TYPE SYMTAB)>
8651 <FRAME '
\1aADD-TYPE-LIST>
8654 <GEN-LVAL 'TRUTH = STACK>
8656 <RESTL L64 1 = TEMP71 (TYPE LIST)>
8657 <RESTL TEMP71 1 = STACK (TYPE LIST)>
8659 <CALL '
\1aADD-TYPE-LIST 5 = TEMP71>
8660 <GEN-SET 'TRUTH TEMP71>
8662 <VEQUAL? X34 'ATOM + BOOL74>
8663 <FRAME '
\1aADD-TYPE-LIST>
8669 <CALL '
\1aFORM 2 = STACK>
8670 <GEN-LVAL 'UNTRUTH = STACK>
8673 <RESTL L64 1 = L64 (TYPE LIST)>
8674 <RESTL L64 1 = STACK (TYPE LIST)>
8676 <CALL '
\1aADD-TYPE-LIST 5 = L64>
8677 <GEN-SET 'UNTRUTH L64>
8680 <REST1 TEMP20 = TEMP20>
8683 <FRAME '
\1aTYPE-OK?>
8688 <CALL '
\1aTYPE-OK? 2 = X34>
8695 <GFCN
\1aISTRUC-ANA ("VALUE" ANY NODE ANY) N4 R5>
8696 <TEMP K6 (NEL10 'REST) NUM8:NODE FM7 TEMP18>
8698 <NTHUV N4 5 = K6 (TYPE LIST)>
8700 <NTHL K6 1 = NUM8 (TYPE NODE)>
8703 <NTHUV N4 4 = STACK>
8706 <RESTL K6 1 = K6 (TYPE LIST)>
8707 <NTHL K6 1 = FM7 (TYPE NODE)>
8711 <EQUAL? K6 'ISTRING - PHRASE16>
8713 <SET K6 'CHARACTER (TYPE ATOM)>
8716 <NTHUV FM7 4 = TEMP18>
8717 <EQUAL? TEMP18 'IBYTES - PHRASE17>
8719 <SET K6 'FIX (TYPE ATOM)>
8722 <NTHUV FM7 4 = TEMP18>
8724 <EQUAL? TEMP18 'UVECTOR - PHRASE19>
8726 <SET K6 'FIX (TYPE ATOM)>
8729 <SET K6 'ANY (TYPE ATOM)>
8733 <NTHUV N4 4 = STACK>
8734 <CALL '
\1aEANA 3 = FM7>
8735 <FRAME '
\1aTYPE-OK?>
8737 <PUSH <OR FORM LIST VECTOR UVECTOR LVAL GVAL>>
8738 <CALL '
\1aTYPE-OK? 2 = K6>
8739 <TYPE? K6 <TYPE-CODE FALSE> + PHRASE22>
8741 <FRAME '
\1aCOMPILE-WARNING>
8742 <PUSH "Explicit EVAL required: ">
8743 <NTHUV N4 4 = STACK>
8745 <CALL '
\1aCOMPILE-WARNING 3>
8746 <FRAME '
\1aSPEC-FLUSH>
8747 <CALL '
\1aSPEC-FLUSH 0>
8748 <FRAME '
\1aPUT-FLUSH>
8750 <CALL '
\1aPUT-FLUSH 1>
8752 <NTHUV NUM8 1 = K6 (TYPE FIX)>
8753 <VEQUAL? K6 2 - PHRASE28 (TYPE FIX)>
8755 <NTHUV NUM8 4 = NEL10>
8758 <FRAME '
\1aTYPE-OK?>
8761 <CALL '
\1aTYPE-OK? 2 = K6>
8762 <TYPE? K6 <TYPE-CODE FALSE> + PHRASE30>
8764 <SET FM7 'ANY (TYPE ATOM)>
8766 <FRAME '
\1aTYPE-OK?>
8769 <NTHUV N4 3 = STACK>
8771 <CALL '
\1aISTYPE? 1 = STACK>
8772 <SET TEMP18 1 (TYPE FIX)>
8773 <TYPE? NEL10 <TYPE-CODE FIX> - PHRASE36>
8777 <UBLOCK <TYPE-CODE VECTOR> 2 = K6>
8781 <SET K6 () (TYPE LIST)>
8783 <LOOP (K6 VALUE) (TEMP18 VALUE)>
8788 <RESTL K6 1 = K6 (TYPE LIST)>
8789 <ADD TEMP18 1 = TEMP18 (TYPE FIX)>
8792 <EQUAL? FM7 'ANY - PHRASE43>
8793 <SET K6 () (TYPE LIST)>
8799 <UBLOCK <TYPE-CODE VECTOR> 2 = K6>
8802 <LOOP (K6 VALUE) (TEMP18 VALUE)>
8807 <RESTL K6 1 = K6 (TYPE LIST)>
8808 <ADD TEMP18 1 = TEMP18 (TYPE FIX)>
8811 <CALL '
\1aFORM TEMP18 = STACK>
8815 <CALL '
\1aTYPE-OK? 2 = TEMP18>
8820 <GFCN
\1aISTRUC2-ANA ("VALUE" ANY NODE ANY) N4 R5>
8821 <TEMP K6 (NEL10 'REST) NUM8 TEMP15 TY9>
8823 <NTHUV N4 5 = K6 (TYPE LIST)>
8825 <NTHL K6 1 = NUM8 (TYPE NODE)>
8828 <NTHUV N4 4 = STACK>
8830 <NTHUV N4 4 = TEMP15>
8831 <EQUAL? TEMP15 'ISTRING - PHRASE14>
8833 <SET TY9 'CHARACTER (TYPE ATOM)>
8836 <NTHUV N4 4 = TEMP15>
8837 <EQUAL? TEMP15 'IBYTES + BOOL17>
8839 <NTHUV N4 4 = TEMP15>
8840 <EQUAL? TEMP15 'IUVECTOR - PHRASE16>
8843 <SET TY9 'FIX (TYPE ATOM)>
8846 <SET TY9 'ANY (TYPE ATOM)>
8848 <EMPL? K6 + PHRASE20>
8849 <RESTL K6 1 = TEMP15 (TYPE LIST)>
8850 <EMPL? TEMP15 + PHRASE20>
8851 <RESTL TEMP15 1 = TEMP15 (TYPE LIST)>
8852 <EMPL? TEMP15 - PHRASE20>
8855 <RESTL K6 1 = TEMP15 (TYPE LIST)>
8857 <NTHL TEMP15 1 = K6 (TYPE NODE)>
8863 <NTHUV N4 4 = STACK>
8864 <CALL '
\1aEANA 3 = TY9>
8866 <NTHUV NUM8 1 = TEMP15 (TYPE FIX)>
8867 <VEQUAL? TEMP15 2 - PHRASE23 (TYPE FIX)>
8869 <NTHUV NUM8 4 = NEL10>
8872 <FRAME '
\1aTYPE-OK?>
8873 <EQUAL? NEL10 'REST - PHRASE26>
8874 <EQUAL? TY9 'ANY - PHRASE26>
8876 <NTHUV N4 3 = STACK>
8878 <CALL '
\1aISTYPE? 1 = TEMP15>
8883 <NTHUV N4 3 = STACK>
8885 <CALL '
\1aISTYPE? 1 = STACK>
8886 <SET NUM8 1 (TYPE FIX)>
8887 <EQUAL? NEL10 'REST + PHRASE35>
8891 <UBLOCK <TYPE-CODE VECTOR> 2 = K6>
8895 <SET K6 () (TYPE LIST)>
8897 <LOOP (K6 VALUE) (NUM8 VALUE)>
8902 <RESTL K6 1 = K6 (TYPE LIST)>
8903 <ADD NUM8 1 = NUM8 (TYPE FIX)>
8906 <EQUAL? TY9 'ANY - PHRASE42>
8907 <SET K6 () (TYPE LIST)>
8913 <UBLOCK <TYPE-CODE VECTOR> 2 = K6>
8916 <LOOP (K6 VALUE) (NUM8 VALUE)>
8921 <RESTL K6 1 = K6 (TYPE LIST)>
8922 <ADD NUM8 1 = NUM8 (TYPE FIX)>
8925 <CALL '
\1aFORM NUM8 = TEMP15>
8932 <CALL '
\1aTYPE-OK? 2 = TEMP15>
8935 <END
\1aISTRUC2-ANA>
8937 <GFCN
\1aSTACK-ANA ("VALUE" ANY NODE ANY) N4 R5>
8941 <NTHUV N4 5 = TEMP7 (TYPE LIST)>
8943 <NTHL TEMP7 1 = STACK (TYPE NODE)>
8948 <CALL '
\1aEANA 3 = TEMP7>
8953 <GFCN
\1aCHANNEL-OP-ANA ("VALUE" ANY NODE ANY) N4 R5>
8954 <TEMP K6 TEMP9 TEMP14:FIX TEMP20>
8956 <NTHUV N4 5 = K6 (TYPE LIST)>
8957 <FRAME '
\1aSEGFLUSH>
8960 <CALL '
\1aSEGFLUSH 2 = TEMP9>
8961 <TYPE? TEMP9 <TYPE-CODE FALSE> - PHRASE11>
8963 <SET TEMP14 1 (TYPE FIX)>
8964 <NTHUV N4 8 = TEMP9>
8965 <TYPE TEMP9 = TEMP20>
8966 <AND TEMP20 7 = TEMP20>
8967 <VEQUAL? TEMP20 1 + TAG16>
8969 <LOOP (TEMP9 TYPE VALUE LENGTH) (TEMP14 VALUE)>
8972 <EMPTY? TEMP9 + TAG21>
8973 <NTH1 TEMP9 = STACK>
8974 <REST1 TEMP9 = TEMP9>
8975 <ADD TEMP14 1 = TEMP14 (TYPE FIX)>
8978 <LIST TEMP14 = TEMP9 (TYPE LIST)>
8984 <VEQUAL? TEMP14 0 + TAG18>
8986 <CONS TEMP20 TEMP9 = TEMP9 (TYPE LIST)>
8988 <SUB TEMP14 1 = TEMP14 (TYPE FIX)>
8994 <RESTL K6 1 = TEMP9 (TYPE LIST)>
8995 <EMPL? TEMP9 - PHRASE24>
8999 <LENL K6 = STACK (TYPE FIX)>
9006 <NTHL K6 1 = STACK (TYPE NODE)>
9009 <CALL '
\1aEANA 3 = TEMP20>
9011 <RESTL K6 1 = TEMP9 (TYPE LIST)>
9012 <NTHL TEMP9 1 = STACK (TYPE NODE)>
9017 <RESTL K6 1 = TEMP9 (TYPE LIST)>
9019 <RESTL TEMP9 1 = TEMP9 (TYPE LIST)>
9023 <EMPL? TEMP9 + MAPAP33>
9030 <RESTL TEMP9 1 = TEMP9 (TYPE LIST)>
9033 <TYPE? TEMP20 <TYPE-CODE FORM> + TAG45>
9034 <TYPE? TEMP20 <TYPE-CODE SEGMENT> - PHRASE43>
9036 <EMPL? TEMP20 + PHRASE43>
9037 <RESTL TEMP20 1 = TEMP9 (TYPE LIST)>
9038 <EMPL? TEMP9 + PHRASE43>
9039 <RESTL TEMP9 1 = TEMP9 (TYPE LIST)>
9040 <EMPL? TEMP9 - PHRASE43>
9042 <RESTL TEMP20 1 = TEMP9 (TYPE LIST)>
9044 <NTHL TEMP9 1 = TEMP20>
9046 <TYPE? TEMP20 <TYPE-CODE FORM> - PHRASE43>
9047 <EMPL? TEMP20 + PHRASE43>
9048 <RESTL TEMP20 1 = TEMP9 (TYPE LIST)>
9049 <EMPL? TEMP9 + PHRASE43>
9050 <RESTL TEMP9 1 = TEMP9 (TYPE LIST)>
9051 <EMPL? TEMP9 - PHRASE43>
9053 <NTHL TEMP20 1 = TEMP9>
9054 <EQUAL? TEMP9 'QUOTE - PHRASE43>
9056 <RESTL TEMP20 1 = TEMP9 (TYPE LIST)>
9057 <NTHL TEMP9 1 = TEMP9>
9058 <TYPE? TEMP9 <TYPE-CODE ATOM> - PHRASE43>
9060 <PUTUV N4 1 99 (TYPE FIX)>
9061 <RESTL TEMP20 1 = TEMP9 (TYPE LIST)>
9063 <NTHL TEMP9 1 = TEMP9 (TYPE ATOM)>
9067 <FRAME '
\1aTYPE-OK?>
9071 <CALL '
\1aTYPE-OK? 2 = TEMP9>
9075 <END
\1aCHANNEL-OP-ANA>
9076 <COND (<AND <GASSIGNED? CHANNEL-OP> <GASSIGNED? CHANNEL-OP-ANA>> <PUTPROP ,CHANNEL-OP ANALYSIS ,CHANNEL-OP-ANA>)>