4 <ENTRY NOT-ANA TYPE?-ANA ==?-ANA VALID-TYPE?-ANA TYPE-C-ANA =?-ANA S=?-ANA STRCOMP-ANA SUBSTRUC-ANA ATOM-PART-ANA OFFSET-PART-ANA PUT-GET-DECL-ANA>
6 <USE "SYMANA" "CHKDCL" "COMPDEC" "CARANA" "ADVMESS" "NPRINT">
8 " This module contains analysis and generation functions for
9 NOT, TYPE? and ==?. See SYMANA for more details about ANALYSIS and
10 CODGEN for more detali abour code generation.
13 "Analyze NOT usage make sure arg can be FALSE."
16 <GFCN
\1aNOT-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
17 <TEMP TEMP11 TEMP14 STR8:LIST SUNT9:LIST TEMP21:LBIND>
19 <GEN-LVAL 'PRED = TEMP11>
20 <NTHUV NOD4 2 = TEMP14>
21 <EQUAL? TEMP11 TEMP14 - TAG10>
23 <SET TEMP11 'T (TYPE ATOM)>
26 <SET TEMP11 %<> (TYPE FALSE)>
28 <GEN-LVAL 'TRUTH = STR8>
29 <GEN-LVAL 'UNTRUTH = SUNT9>
30 <GETS 'BIND = TEMP21 (TYPE LBIND)>
31 <VEQUAL? TEMP11 0 + BOOL23>
34 <BBIND 'PRED 'ANY 'FIX TEMP11>
36 <BBIND 'TRUTH 'LIST 'FIX ()>
37 <BBIND 'UNTRUTH 'LIST 'FIX ()>
43 <CALL '
\1aSEGFLUSH 2 = TEMP14>
44 <TYPE? TEMP14 <TYPE-CODE FALSE> + PHRASE29>
45 <SET TEMP11 %<> (TYPE FALSE)>
49 <NTHUV NOD4 5 = TEMP11 (TYPE LIST)>
50 <LENL TEMP11 = STACK (TYPE FIX)>
56 <NTHUV NOD4 5 = TEMP11 (TYPE LIST)>
57 <NTHL TEMP11 1 = STACK (TYPE NODE)>
59 <CALL '
\1aANA 2 = TEMP14>
60 <PUTUV NOD4 1 20 (TYPE FIX)>
63 <CALL '
\1aISTYPE? 1 = TEMP11>
64 <VEQUAL? TEMP11 'FALSE - PHRASE35>
68 <CALL '
\1aTYPE-OK? 2 = TEMP14>
74 <CALL '
\1aTYPE-OK? 2 = TEMP11>
75 <TYPE? TEMP11 <TYPE-CODE FALSE> + PHRASE38>
79 <CALL '
\1aTYPE-OK? 2 = TEMP14>
85 <CALL '
\1aTYPE-OK? 2 = TEMP14>
87 <NTHR 'UNTRUTH 2 = TEMP11 (RECORD-TYPE ATOM) (TYPE LBIND)>
88 <NTHR TEMP11 1 = STR8 (RECORD-TYPE LBIND)>
89 <NTHR 'TRUTH 2 = TEMP11 (RECORD-TYPE ATOM) (TYPE LBIND)>
90 <NTHR TEMP11 1 = SUNT9 (RECORD-TYPE LBIND)>
95 <VEQUAL? TEMP11 0 + PHRASE48>
99 <GEN-SET 'UNTRUTH SUNT9>
106 " Analyze N==? and ==? usage. Complain if types differ such that
107 the args can never be ==?."
110 <GFCN
\1a==?-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
111 <TEMP K6:LIST TEMP3:LBIND TEMP16 TEMP19 KT9:LIST>
113 <NTHUV NOD4 5 = K6 (TYPE LIST)>
114 <GETS 'BIND = TEMP3 (TYPE LBIND)>
115 <GEN-LVAL 'PRED = TEMP16>
116 <NTHUV NOD4 2 = TEMP19>
117 <EQUAL? TEMP16 TEMP19 + TAG15>
119 <SET TEMP16 %<> (TYPE FALSE)>
124 <BBIND 'WHON 'NODE 'FIX TEMP16>
126 <BBIND 'WHO 'LIST 'FIX ()>
127 <BBIND 'GLN 'NODE 'FIX NOD4>
128 <BBIND 'GLE 'LIST 'FIX ()>
132 <CALL '
\1aSEGFLUSH 2 = TEMP16>
133 <TYPE? TEMP16 <TYPE-CODE FALSE> - PHRASE22>
134 <EMPL? K6 + PHRASE24>
135 <RESTL K6 1 = TEMP19 (TYPE LIST)>
136 <EMPL? TEMP19 - PHRASE24>
138 <NTHUV NOD4 5 = TEMP19 (TYPE LIST)>
139 <NTHL TEMP19 1 = TEMP16 (TYPE NODE)>
141 <NTHUV TEMP16 1 = TEMP19 (TYPE FIX)>
142 <VEQUAL? TEMP19 6 - PHRASE24 (TYPE FIX)>
144 <NTHUV TEMP16 4 = TEMP19>
145 <EQUAL? TEMP19 'LENGTH - PHRASE24>
147 <NTHUV TEMP16 5 = KT9 (TYPE LIST)>
149 <EMPL? KT9 + PHRASE24>
150 <RESTL KT9 1 = TEMP19 (TYPE LIST)>
151 <EMPL? TEMP19 + PHRASE24>
152 <RESTL TEMP19 1 = TEMP19 (TYPE LIST)>
153 <EMPL? TEMP19 - PHRASE24>
155 <FRAME '
\1aCOMPILE-WARNING>
156 <PUSH "Attempting to repair probable erroneous code:
161 <CALL '
\1aCOMPILE-WARNING 3>
162 <RESTL KT9 1 = TEMP16 (TYPE LIST)>
166 <NTHL KT9 1 = TEMP16 (TYPE NODE)>
168 <PUTUV TEMP16 2 NOD4>
170 <FRAME '
\1aNODE-COMPLAIN>
172 <CALL '
\1aNODE-COMPLAIN 1>
174 <GEN-LVAL 'OUTCHAN = STACK>
179 <LENL K6 = STACK (TYPE FIX)>
184 <NTHL K6 1 = STACK (TYPE NODE)>
188 <RESTL K6 1 = TEMP16 (TYPE LIST)>
189 <NTHL TEMP16 1 = STACK (TYPE NODE)>
193 <PUTUV NOD4 1 23 (TYPE FIX)>
195 <NTHL K6 1 = TEMP16 (TYPE NODE)>
196 <NTHUV TEMP16 3 = STACK>
198 <CALL '
\1aISTYPE? 1 = TEMP16>
199 <VEQUAL? TEMP16 'FIX - PHRASE38>
202 <RESTL K6 1 = TEMP16 (TYPE LIST)>
203 <NTHL TEMP16 1 = TEMP16 (TYPE NODE)>
204 <NTHUV TEMP16 3 = STACK>
206 <CALL '
\1aISTYPE? 1 = TEMP16>
207 <VEQUAL? TEMP16 'FIX - PHRASE38>
209 <PUTUV NOD4 1 22 (TYPE FIX)>
210 <FRAME '
\1aHACK-BOUNDS>
211 <NTHR 'WHO 2 = TEMP16 (RECORD-TYPE ATOM) (TYPE LBIND)>
212 <NTHR TEMP16 1 = STACK (RECORD-TYPE LBIND)>
214 <NTHR 'GLE 2 = TEMP16 (RECORD-TYPE ATOM) (TYPE LBIND)>
215 <NTHR TEMP16 1 = STACK (RECORD-TYPE LBIND)>
221 <CALL '
\1aHACK-BOUNDS 4>
227 <CALL '
\1aTYPE-OK? 2 = TEMP16>
235 " Ananlyze TYPE? usage warn about any potential losers by using
239 <GFCN
\1aTYPE?-ANA ("VALUE" ANY NODE ANY) NOD4 RTYP5>
240 <TEMP K6 LN7 (ALLGOOD9 'T) TEMP3:LBIND (FTYP11:LIST ()) (FNOK12 %<>) TEMP18 TEMP21 FLG78 TEMP83>
242 <NTHUV NOD4 5 = K6 (TYPE LIST)>
243 <LENL K6 = LN7 (TYPE FIX)>
244 <GETS 'BIND = TEMP3 (TYPE LBIND)>
245 <BBIND 'WHO 'LIST 'FIX ()>
246 <GEN-LVAL 'PRED = TEMP18>
247 <NTHUV NOD4 2 = TEMP21>
248 <EQUAL? TEMP18 TEMP21 + TAG17>
250 <SET TEMP18 %<> (TYPE FALSE)>
255 <BBIND 'WHON <OR NODE FALSE> 'FIX TEMP18>
260 <CALL '
\1aSEGFLUSH 2 = TEMP18>
261 <TYPE? TEMP18 <TYPE-CODE FALSE> + PHRASE23>
266 <PUSH <OR ATOM FALSE>>
267 <CALL '
\1aTYPE-OK? 2 = TEMP18>
270 <LESS? LN7 2 - PHRASE28 (TYPE FIX)>
272 <FRAME '
\1aCOMPILE-ERROR>
273 <PUSH "Too few arguments to TYPE? ">
275 <CALL '
\1aCOMPILE-ERROR 2>
278 <NTHL K6 1 = STACK (TYPE NODE)>
281 <CALL '
\1aEANA 3 = TEMP18>
282 <RESTL K6 1 = TEMP21 (TYPE LIST)>
287 <EMPL? TEMP21 + MAPAP35>
294 <NTHUV K6 1 = LN7 (TYPE FIX)>
295 <VEQUAL? LN7 2 + PHRASE48 (TYPE FIX)>
297 <SET ALLGOOD9 %<> (TYPE FALSE)>
302 <CALL '
\1aISTYPE? 1 = LN7>
303 <TYPE? LN7 <TYPE-CODE FALSE> - PHRASE51>
305 <FRAME '
\1aCOMPILE-ERROR>
306 <PUSH "Argument to TYPE? not a type ">
308 <CALL '
\1aCOMPILE-ERROR 2>
313 <CALL '
\1aTYPE-OK? 2 = LN7>
314 <TYPE? LN7 <TYPE-CODE FALSE> + BOOL54>
318 <CONS LN7 FTYP11 = FTYP11>
321 <RESTL TEMP21 1 = TEMP21 (TYPE LIST)>
324 <VEQUAL? ALLGOOD9 0 + PHRASE57>
325 <EMPL? FTYP11 + PHRASE57 (TYPE LIST)>
326 <RESTL FTYP11 1 = TEMP21 (TYPE LIST)>
327 <EMPL? TEMP21 - PHRASE60 (TYPE LIST)>
329 <NTHL FTYP11 1 = LN7>
332 <CONS 'OR FTYP11 = TEMP21>
333 <CHTYPE TEMP21 <TYPE-CODE FORM> = LN7>
336 <PUTUV NOD4 1 24 (TYPE FIX)>
342 <CALL '
\1aFORM 2 = STACK>
345 <CALL '
\1aTYPE-OK? 2 = TEMP21>
346 <TYPE? TEMP21 <TYPE-CODE FALSE> - TAG62>
348 <SET FNOK12 'T (TYPE ATOM)>
351 <SET FNOK12 %<> (TYPE FALSE)>
353 <NTHR 'WHO 2 = TEMP21 (RECORD-TYPE ATOM) (TYPE LBIND)>
354 <NTHR TEMP21 1 = TEMP18 (RECORD-TYPE LBIND)>
359 <EMPL? TEMP18 + PHRASE95>
362 <RESTL K6 1 = TEMP21 (TYPE LIST)>
363 <NTHL TEMP21 1 = TEMP21 (TYPE SYMTAB)>
364 <FRAME '
\1aADD-TYPE-LIST>
367 <GEN-LVAL 'TRUTH = STACK>
369 <RESTL K6 1 = TEMP83 (TYPE LIST)>
370 <RESTL TEMP83 1 = STACK (TYPE LIST)>
372 <CALL '
\1aADD-TYPE-LIST 5 = TEMP83>
373 <GEN-SET 'TRUTH TEMP83>
375 <VEQUAL? FNOK12 0 - BOOL86>
376 <FRAME '
\1aADD-TYPE-LIST>
382 <CALL '
\1aFORM 2 = STACK>
383 <GEN-LVAL 'UNTRUTH = STACK>
386 <RESTL K6 1 = K6 (TYPE LIST)>
387 <RESTL K6 1 = STACK (TYPE LIST)>
389 <CALL '
\1aADD-TYPE-LIST 5 = K6>
390 <GEN-SET 'UNTRUTH K6>
393 <RESTL TEMP18 1 = TEMP18 (TYPE LIST)>
396 <VEQUAL? ALLGOOD9 0 + PHRASE94>
397 <PUTUV NOD4 1 24 (TYPE FIX)>
401 <GEN-LVAL 'VERBOSE = TEMP18>
402 <TYPE? TEMP18 <TYPE-CODE FALSE> + BOOL96>
406 <CONS "Not open compiled." () = STACK>
407 <CALL '
\1aADDVMESS 2>
409 <PUTUV NOD4 1 52 (TYPE FIX)>
413 <VEQUAL? ALLGOOD9 0 - PHRASE102>
415 <SET TEMP18 <OR FALSE ATOM> (TYPE FORM)>
418 <EMPL? FTYP11 - PHRASE103 (TYPE LIST)>
420 <SET TEMP18 'FALSE (TYPE ATOM)>
423 <VEQUAL? FNOK12 0 + PHRASE104>
425 <SET TEMP18 'ATOM (TYPE ATOM)>
428 <SET TEMP18 <OR FALSE ATOM> (TYPE FORM)>
434 <CALL '
\1aTYPE-OK? 2 = TEMP18>
443 <GFCN
\1aVALID-TYPE?-ANA ("VALUE" ANY NODE ANY) N4 R5>
444 <TEMP K6:LIST LN7:FIX TEMP9>
446 <NTHUV N4 5 = K6 (TYPE LIST)>
447 <LENL K6 = LN7 (TYPE FIX)>
451 <CALL '
\1aSEGFLUSH 2 = TEMP9>
452 <TYPE? TEMP9 <TYPE-CODE FALSE> - PHRASE11>
461 <NTHL K6 1 = STACK (TYPE NODE)>
466 <PUTUV N4 1 97 (TYPE FIX)>
471 <PUSH <OR FALSE TYPE-C>>
472 <CALL '
\1aTYPE-OK? 2 = TEMP9>
476 <END
\1aVALID-TYPE?-ANA>
478 <GFCN
\1aTYPE-C-ANA ("VALUE" ANY NODE ANY) N4 R5>
479 <TEMP K6:LIST LN7:FIX TEMP9>
481 <NTHUV N4 5 = K6 (TYPE LIST)>
482 <LENL K6 = LN7 (TYPE FIX)>
486 <CALL '
\1aSEGFLUSH 2 = TEMP9>
487 <TYPE? TEMP9 <TYPE-CODE FALSE> - PHRASE11>
495 <NTHL K6 1 = STACK (TYPE NODE)>
499 <VEQUAL? LN7 2 - PHRASE15 (TYPE FIX)>
502 <RESTL K6 1 = K6 (TYPE LIST)>
503 <NTHL K6 1 = STACK (TYPE NODE)>
509 <PUTUV N4 1 96 (TYPE FIX)>
515 <CALL '
\1aTYPE-OK? 2 = TEMP9>
521 <GFCN
\1a=?-ANA ("VALUE" ANY NODE ANY) N4 R5>
522 <TEMP K6 LN7 TEMP13 N29:NODE>
524 <NTHUV N4 5 = K6 (TYPE LIST)>
525 <LENL K6 = LN7 (TYPE FIX)>
529 <CALL '
\1aSEGFLUSH 2 = TEMP13>
530 <TYPE? TEMP13 <TYPE-CODE FALSE> - PHRASE31>
539 <NTHL K6 1 = LN7 (TYPE NODE)>
545 <RESTL K6 1 = TEMP13 (TYPE LIST)>
546 <NTHL TEMP13 1 = N29 (TYPE NODE)>
552 <NTHUV LN7 1 = TEMP13 (TYPE FIX)>
553 <VEQUAL? TEMP13 2 - PHRASE21 (TYPE FIX)>
555 <RESTL K6 1 = TEMP13 (TYPE LIST)>
556 <NTHL TEMP13 1 = LN7 (TYPE NODE)>
558 <NTHL K6 1 = N29 (TYPE NODE)>
562 <NTHUV N29 3 = STACK>
564 <CALL '
\1aISTYPE? 1 = TEMP13>
566 <NTHUV LN7 3 = STACK>
568 <CALL '
\1aISTYPE? 1 = K6>
569 <VEQUAL? K6 'STRING + BOOL25>
570 <VEQUAL? TEMP13 'STRING - PHRASE24>
572 <PUTUV N4 1 95 (TYPE FIX)>
578 <CALL '
\1aTYPE-OK? 2 = TEMP13>
582 <TYPE? K6 <TYPE-CODE FALSE> + PHRASE28>
583 <TYPE? TEMP13 <TYPE-CODE FALSE> + PHRASE28>
584 <VEQUAL? K6 TEMP13 + PHRASE28>
590 <CALL '
\1aTYPE-OK? 2 = TEMP13>
598 <CALL '
\1aTYPE-OK? 2 = TEMP13>
604 <GFCN
\1aS=?-ANA ("VALUE" ANY NODE ANY) N4 R5>
607 <NTHUV N4 5 = K6 (TYPE LIST)>
611 <CALL '
\1aSEGFLUSH 2 = TEMP8>
612 <TYPE? TEMP8 <TYPE-CODE FALSE> - PHRASE10>
614 <LENL K6 = STACK (TYPE FIX)>
620 <NTHL K6 1 = STACK (TYPE NODE)>
625 <RESTL K6 1 = K6 (TYPE LIST)>
626 <NTHL K6 1 = STACK (TYPE NODE)>
631 <PUTUV N4 1 95 (TYPE FIX)>
637 <CALL '
\1aTYPE-OK? 2 = TEMP8>
643 <GFCN
\1aATOM-PART-ANA ("VALUE" ANY NODE ANY) N4 R5>
644 <TEMP K6 NM7:ATOM TEMP10 NN8:NODE>
646 <NTHUV N4 5 = K6 (TYPE LIST)>
647 <NTHUV N4 4 = NM7 (TYPE ATOM)>
651 <CALL '
\1aSEGFLUSH 2 = TEMP10>
652 <TYPE? TEMP10 <TYPE-CODE FALSE> - PHRASE30>
654 <LENL K6 = STACK (TYPE FIX)>
655 <VEQUAL? NM7 'GBIND + BOOL16>
656 <VEQUAL? NM7 'LBIND - PHRASE15>
658 <SET TEMP10 (1 2) (TYPE LIST)>
661 <SET TEMP10 1 (TYPE FIX)>
669 <NTHL K6 1 = STACK (TYPE NODE)>
673 <RESTL K6 1 = TEMP10 (TYPE LIST)>
674 <EMPL? TEMP10 + PHRASE21 (TYPE LIST)>
677 <RESTL K6 1 = TEMP10 (TYPE LIST)>
678 <NTHL TEMP10 1 = NN8 (TYPE NODE)>
685 <NTHL K6 1 = TEMP10 (TYPE NODE)>
686 <NTHUV TEMP10 1 = TEMP10 (TYPE FIX)>
687 <VEQUAL? TEMP10 2 - PHRASE24 (TYPE FIX)>
689 <VEQUAL? NM7 'LBIND + PHRASE24>
690 <VEQUAL? NM7 'GBIND + PHRASE24>
691 <PUTUV N4 1 2 (TYPE FIX)>
692 <PUTUV N4 5 () (TYPE LIST)>
696 <NTHL K6 1 = K6 (TYPE NODE)>
699 <ACALL TEMP10 1 = K6>
707 <CALL '
\1aTYPE 1 = STACK>
710 <CALL '
\1aTYPE-OK? 2 = TEMP10>
714 <VEQUAL? NM7 'GBIND + BOOL34>
715 <VEQUAL? NM7 'LBIND - BOOL33>
717 <RESTL K6 1 = K6 (TYPE LIST)>
718 <EMPL? K6 + BOOL33 (TYPE LIST)>
720 <NTHUV NN8 1 = K6 (TYPE FIX)>
721 <VEQUAL? K6 2 - PHRASE32 (TYPE FIX)>
725 <TYPE? K6 <TYPE-CODE FALSE> - PHRASE32>
728 <PUTUV N4 1 100 (TYPE FIX)>
734 <VEQUAL? NM7 'SPNAME - PHRASE38>
735 <SET K6 'STRING (TYPE ATOM)>
738 <VEQUAL? NM7 'OBLIST? - PHRASE39>
739 <SET K6 <OR FALSE OBLIST> (TYPE FORM)>
747 <CALL '
\1aTYPE-OK? 2 = TEMP10>
751 <END
\1aATOM-PART-ANA>
753 <GFCN
\1aPUT-GET-DECL-ANA ("VALUE" ANY NODE ANY) N4 R5>
754 <TEMP K6 NM7:ATOM TEMP10 ST8 TEMP25:FIX TEMP31>
756 <NTHUV N4 5 = K6 (TYPE LIST)>
757 <NTHUV N4 4 = NM7 (TYPE ATOM)>
761 <CALL '
\1aSEGFLUSH 2 = TEMP10>
762 <TYPE? TEMP10 <TYPE-CODE FALSE> - PHRASE40>
764 <LENL K6 = STACK (TYPE FIX)>
765 <VEQUAL? NM7 'PUT-DECL - PHRASE15>
766 <SET TEMP10 2 (TYPE FIX)>
769 <SET TEMP10 1 (TYPE FIX)>
777 <NTHL K6 1 = STACK (TYPE NODE)>
778 <PUSH <OR ATOM OFFSET GBIND LBIND>>
780 <CALL '
\1aEANA 3 = ST8>
781 <VEQUAL? NM7 'PUT-DECL - PHRASE20>
785 <CALL '
\1aTYPE-AND 2 = TEMP10>
786 <TYPE? TEMP10 <TYPE-CODE FALSE> - BOOL21>
793 <RESTL K6 1 = TEMP10 (TYPE LIST)>
794 <NTHL TEMP10 1 = STACK (TYPE NODE)>
796 <PUSH <OR ATOM FALSE FORM SEGMENT>>
800 <SET TEMP25 1 (TYPE FIX)>
801 <NTHUV N4 8 = TEMP10>
802 <TYPE TEMP10 = TEMP31>
803 <AND TEMP31 7 = TEMP31>
804 <VEQUAL? TEMP31 1 + TAG27>
806 <LOOP (TEMP10 TYPE VALUE LENGTH) (TEMP25 VALUE)>
809 <EMPTY? TEMP10 + TAG32>
810 <NTH1 TEMP10 = STACK>
811 <REST1 TEMP10 = TEMP10>
812 <ADD TEMP25 1 = TEMP25 (TYPE FIX)>
815 <LIST TEMP25 = TEMP10 (TYPE LIST)>
821 <VEQUAL? TEMP25 0 + TAG29>
823 <CONS TEMP31 TEMP10 = TEMP10 (TYPE LIST)>
825 <SUB TEMP25 1 = TEMP25 (TYPE FIX)>
831 <NTHL K6 1 = TEMP10 (TYPE NODE)>
832 <NTHUV TEMP10 1 = TEMP10 (TYPE FIX)>
833 <VEQUAL? TEMP10 2 - PHRASE35 (TYPE FIX)>
835 <VEQUAL? NM7 'GET-DECL - PHRASE35>
836 <PUTUV N4 1 2 (TYPE FIX)>
837 <PUTUV N4 5 () (TYPE LIST)>
839 <NTHL K6 1 = TEMP10 (TYPE NODE)>
841 <NTHUV TEMP10 4 = STACK>
843 <CALL '
\1aGET-DECL 1 = TEMP10>
850 <CALL '
\1aTYPE 1 = STACK>
853 <CALL '
\1aTYPE-OK? 2 = TEMP10>
859 <CALL '
\1aISTYPE? 1 = TEMP10>
860 <SET TEMP31 [LBIND GBIND OFFSET] (TYPE VECTOR)>
861 <TYPE? TEMP10 <TYPE-CODE ATOM> - PHRASE42>
862 <LOOP (TEMP10 VALUE) (TEMP31 LENGTH VALUE)>
864 <NTHUV TEMP31 1 = K6>
865 <VEQUAL? K6 TEMP10 + TAG43>
867 <RESTUV TEMP31 1 = TEMP31 (TYPE VECTOR)>
868 <EMPUV? TEMP31 - TAG44>
871 <PUTUV N4 1 102 (TYPE FIX)>
875 <GEN-LVAL 'VERBOSE = TEMP31>
876 <TYPE? TEMP31 <TYPE-CODE FALSE> + PHRASE48>
881 <CONS ST8 () = TEMP31>
882 <CONS "Not open compiled because type is " TEMP31 = TEMP31>
883 <CONS NM7 TEMP31 = STACK>
885 <CALL '
\1aADDVMESS 2>
888 <VEQUAL? NM7 'GET-DECL - PHRASE54>
890 <SET TEMP31 <OR ATOM FALSE FORM SEGMENT> (TYPE FORM)>
900 <CALL '
\1aTYPE-OK? 2 = TEMP10>
904 <END
\1aPUT-GET-DECL-ANA>
906 <GFCN
\1aOFFSET-PART-ANA ("VALUE" ANY NODE ANY) N4 R5>
907 <TEMP K6 NM7:ATOM TEMP9>
909 <NTHUV N4 5 = K6 (TYPE LIST)>
910 <NTHUV N4 4 = NM7 (TYPE ATOM)>
914 <CALL '
\1aSEGFLUSH 2 = TEMP9>
915 <TYPE? TEMP9 <TYPE-CODE FALSE> - PHRASE28>
917 <LENL K6 = STACK (TYPE FIX)>
918 <VEQUAL? NM7 'INDEX - PHRASE14>
919 <SET TEMP9 1 (TYPE FIX)>
922 <SET TEMP9 (1 2) (TYPE LIST)>
930 <NTHL K6 1 = STACK (TYPE NODE)>
934 <RESTL K6 1 = TEMP9 (TYPE LIST)>
935 <EMPL? TEMP9 + PHRASE19 (TYPE LIST)>
938 <RESTL K6 1 = TEMP9 (TYPE LIST)>
939 <NTHL TEMP9 1 = STACK (TYPE NODE)>
941 <PUSH <OR ATOM FALSE FORM SEGMENT>>
945 <NTHL K6 1 = TEMP9 (TYPE NODE)>
946 <NTHUV TEMP9 1 = TEMP9 (TYPE FIX)>
947 <VEQUAL? TEMP9 2 - PHRASE22 (TYPE FIX)>
949 <RESTL K6 1 = TEMP9 (TYPE LIST)>
950 <EMPL? TEMP9 - PHRASE22 (TYPE LIST)>
952 <PUTUV N4 1 2 (TYPE FIX)>
953 <PUTUV N4 5 () (TYPE LIST)>
957 <NTHL K6 1 = K6 (TYPE NODE)>
968 <CALL '
\1aTYPE 1 = STACK>
971 <CALL '
\1aTYPE-OK? 2 = TEMP9>
975 <PUTUV N4 1 101 (TYPE FIX)>
980 <VEQUAL? NM7 'INDEX - PHRASE31>
982 <SET K6 'FIX (TYPE ATOM)>
985 <RESTL K6 1 = TEMP9 (TYPE LIST)>
987 <EMPL? TEMP9 + PHRASE32 (TYPE LIST)>
989 <SET K6 'OFFSET (TYPE ATOM)>
992 <SET K6 <OR ATOM FALSE FORM SEGMENT> (TYPE FORM)>
996 <CALL '
\1aTYPE-OK? 2 = TEMP9>
1000 <END
\1aOFFSET-PART-ANA>
1002 <GFCN
\1aSTRCOMP-ANA ("VALUE" ANY NODE ANY) N4 R5>
1003 <TEMP K6:LIST TEMP8>
1005 <NTHUV N4 5 = K6 (TYPE LIST)>
1006 <FRAME '
\1aSEGFLUSH>
1009 <CALL '
\1aSEGFLUSH 2 = TEMP8>
1010 <TYPE? TEMP8 <TYPE-CODE FALSE> - PHRASE10>
1012 <LENL K6 = STACK (TYPE FIX)>
1014 <NTHUV N4 4 = STACK>
1018 <NTHL K6 1 = STACK (TYPE NODE)>
1023 <RESTL K6 1 = K6 (TYPE LIST)>
1024 <NTHL K6 1 = STACK (TYPE NODE)>
1029 <PUTUV N4 1 95 (TYPE FIX)>
1031 <FRAME '
\1aTYPE-OK?>
1035 <CALL '
\1aTYPE-OK? 2 = TEMP8>
1039 <END
\1aSTRCOMP-ANA>
1041 <GFCN
\1aSUBSTRUC-ANA ("VALUE" ANY NODE ANY) N4 R5>
1042 <TEMP K6 LN7 TEMP10 TEMP20>
1044 <NTHUV N4 5 = K6 (TYPE LIST)>
1045 <LENL K6 = LN7 (TYPE FIX)>
1046 <FRAME '
\1aSEGFLUSH>
1049 <CALL '
\1aSEGFLUSH 2 = TEMP10>
1050 <TYPE? TEMP10 <TYPE-CODE FALSE> - PHRASE12>
1054 <NTHUV N4 4 = STACK>
1058 <NTHL K6 1 = STACK (TYPE NODE)>
1061 <CALL '
\1aEANA 3 = TEMP10>
1062 <GRTR? LN7 1 - PHRASE16 (TYPE FIX)>
1064 <RESTL K6 1 = TEMP20 (TYPE LIST)>
1065 <NTHL TEMP20 1 = STACK (TYPE NODE)>
1071 <GRTR? LN7 2 - PHRASE22 (TYPE FIX)>
1073 <RESTL K6 1 = TEMP20 (TYPE LIST)>
1074 <RESTL TEMP20 1 = TEMP20 (TYPE LIST)>
1075 <NTHL TEMP20 1 = STACK (TYPE NODE)>
1081 <GRTR? LN7 3 - PHRASE25 (TYPE FIX)>
1083 <FRAME '
\1aSTRUCTYP>
1086 <CALL '
\1aSTRUCTYP 1 = TEMP10>
1088 <RESTL K6 1 = TEMP20 (TYPE LIST)>
1090 <RESTL TEMP20 1 = TEMP20 (TYPE LIST)>
1091 <RESTL TEMP20 1 = TEMP20 (TYPE LIST)>
1092 <NTHL TEMP20 1 = STACK (TYPE NODE)>
1094 <TYPE? TEMP10 <TYPE-CODE FALSE> + PHRASE29>
1099 <CALL '
\1aFORM 2 = TEMP20>
1102 <SET TEMP20 'STRUCTURED (TYPE ATOM)>
1107 <CALL '
\1aEANA 3 = TEMP10>
1109 <SET LN7 1 (TYPE FIX)>
1110 <NTHUV N4 8 = TEMP20>
1113 <VEQUAL? K6 1 + TAG35>
1115 <LOOP (TEMP20 TYPE VALUE LENGTH) (LN7 VALUE)>
1118 <EMPTY? TEMP20 + TAG40>
1119 <NTH1 TEMP20 = STACK>
1120 <REST1 TEMP20 = TEMP20>
1121 <ADD LN7 1 = LN7 (TYPE FIX)>
1124 <LIST LN7 = TEMP20 (TYPE LIST)>
1130 <VEQUAL? LN7 0 + TAG37>
1132 <CONS K6 TEMP20 = TEMP20 (TYPE LIST)>
1134 <SUB LN7 1 = LN7 (TYPE FIX)>
1140 <FRAME '
\1aSTRUCTYP>
1142 <CALL '
\1aSTRUCTYP 1 = TEMP20>
1143 <SET K6 [STRING VECTOR UVECTOR BYTES] (TYPE VECTOR)>
1144 <TYPE? TEMP20 <TYPE-CODE ATOM> - PHRASE43>
1145 <LOOP (TEMP20 VALUE) (K6 LENGTH VALUE)>
1148 <VEQUAL? LN7 TEMP20 + TAG44>
1150 <RESTUV K6 1 = K6 (TYPE VECTOR)>
1154 <PUTUV N4 1 81 (TYPE FIX)>
1157 <FRAME '
\1aTYPE-OK?>
1158 <FRAME '
\1aSTRUCTYP>
1161 <CALL '
\1aSTRUCTYP 1 = STACK>
1164 <CALL '
\1aTYPE-OK? 2 = TEMP10>
1168 <END
\1aSUBSTRUC-ANA>
\r\r
1169 <COND (<AND <GASSIGNED? NOT-ANA> <GASSIGNED? ELEMENT-DECL>> <PUTPROP ,NOT ANALYSIS ,NOT-ANA> <PUTPROP ,==? ANALYSIS ,==?-ANA> <PUTPROP ,N==? ANALYSIS ,==?-ANA> <PUTPROP ,TYPE? ANALYSIS ,TYPE?-ANA> <PUTPROP ,=? ANALYSIS ,=?-ANA> <PUTPROP ,N=? ANALYSIS ,=?-ANA> <PUTPROP ,VALID-TYPE? ANALYSIS ,VALID-TYPE?-ANA> <PUTPROP ,TYPE-C ANALYSIS ,TYPE-C-ANA> <PUTPROP ,INDEX ANALYSIS ,OFFSET-PART-ANA> <PUTPROP ,ELEMENT-DECL ANALYSIS ,OFFSET-PART-ANA> <PUTPROP ,PUT-DECL ANALYSIS ,PUT-GET-DECL-ANA> <PUTPROP ,GET-DECL ANALYSIS ,PUT-GET-DECL-ANA> <PUTPROP ,SPNAME ANALYSIS ,ATOM-PART-ANA> <PUTPROP ,OBLIST? ANALYSIS ,ATOM-PART-ANA> <PUTPROP ,LBIND ANALYSIS ,ATOM-PART-ANA> <PUTPROP ,GBIND ANALYSIS ,ATOM-PART-ANA> <PUTPROP ,S=? ANALYSIS ,S=?-ANA> <PUTPROP ,STRCOMP ANALYSIS ,STRCOMP-ANA> <PUTPROP ,SUBSTRUC ANALYSIS ,SUBSTRUC-ANA>)>