5 <USE "COMPDEC" "CHKDCL" "ADVMESS" "SUBRTY">
8 <SETG TEMPSTRT #TEMPV ()>
10 <DEFINE VARS REVAR (FCN
11 "AUX" GFRMID NOA ACC LARG (BPRE <>) (UNPRE <>) (NOACT T)
12 (OV .VERBOSE) (NNEW T))
13 #DECL ((FCN) <SPECIAL NODE>
14 (GFRMID NOA ACC LARG REVAR BPRE UNPRE NOACT NNEW) <SPECIAL ANY>)
15 <COND (.VERBOSE <PUTREST <SET VERBOSE .OV> ()>)>
17 <SET ACC <AND .NOA <N=? .NOA '(STACK)> <N=? .NOA '(FUNNY-STACK)>>>
20 <COND (<AND .VERBOSE <NOT .NOA>>
21 <ADDVMESS .FCN ("Frame being generated.")>)>
24 <DEFINE FUNC-VAR (BASEF
25 "AUX" (PRE <>) (BST <BINDING-STRUCTURE .BASEF>)
26 (FRMID <SET GFRMID <+ .GFRMID 1>>) (SVIOFF 0) TA
29 <COND (<OR <ACTIV? .BST .NOACT> <ACTIVATED .BASEF>>
30 <PUT .BASEF ,ACTIVATED T>
36 <COND (<L? <SET TA <TOTARGS .BASEF>> 0> 0)
38 (ELSE 0)>>) (USOFF 0) (FUZZ <>) (HSLOT 0))
39 #DECL ((BASEF) <SPECIAL NODE> (BST) <LIST [REST SYMTAB]>
40 (FRMID GFRMID SVIOFF IOFF USOFF HSLOT) <SPECIAL FIX>
41 (PRE FUZZ) <SPECIAL ANY>)
42 <COND (<AND .NOACT <ACTIVATED .BASEF>>
45 <AND <==? .FCN .BASEF>
49 <PUT .BASEF ,ACS <CHTYPE (<ACS .FCN>) FALSE>>
51 <PUT .BASEF ,BINDING-STRUCTURE <DOREG .BST>>
52 <SET PRE <OR .PRE .BPRE>>
53 <AND .ACC <NOT .LARG> <SET LARG T>>
54 <AND .PRE <G? .USOFF .HSLOT> <SET HSLOT .USOFF>>
56 <MAPF <> ,VAR-ANA <KIDS .BASEF>>
57 <AND .PRE <PUT .BASEF ,SSLOTS <COND (<0? .HSLOT> -1)(ELSE .HSLOT)>>>>
61 <COND (<AND .FUZZ <ACS .FCN> .NNEW <NOT <=? <ACS .FCN> '(FUNNY-STACK)>>>
62 <COND (<G=? <TOTARGS .FCN> 0> <PUT .FCN ,ACS '(FUNNY-STACK)>)
63 (<PUT .FCN ,ACS <CHTYPE (<ACS .FCN>) FALSE>>)>
65 <COND (<VAR-ANA1 .N .FUZZ> <SET FUZZ T>)>>
67 <DEFINE VAR-ANA1 (N OFUZZ
68 "AUX" (FUZZ .OFUZZ) (SIOFF .IOFF) (COD <NODE-TYPE .N>) FL K RN
70 #DECL ((N RN) NODE (FUZZ) <SPECIAL ANY> (SIOFF) FIX (IOFF COD) FIX
71 (K) <LIST [REST NODE]>)
75 #DECL ((GMF) <SPECIAL ANY>)
76 <VAR-ANA <1 <SET K <KIDS .N>>>>
77 <SET COD <NODE-TYPE <1 .K>>>
78 <SET FL <==? <NODE-TYPE <2 .K>> ,MFCN-CODE>>
86 <COND (<AND <SET TEM <STRUCTYP <RESULT-TYPE .N>>>
90 <COND (<OR <==? .TEM STRING>
94 (ELSE <MAPLEAVE <>>)>>
96 <OR <==? <ISTYPE? <RESULT-TYPE <1 .K>>> FALSE>
97 <AND <AP? <1 .K>> <N==? <NODE-SUBR <1 .K>> 5>>>
101 <NOT <EMPTY? <BINDING-STRUCTURE <2 .K>>>>
102 <==? <NAME-SYM <1 <BINDING-STRUCTURE <2 .K>>>> DUMMY-MAPF>>
103 <REPEAT ((B <REST <BINDING-STRUCTURE <2 .K>> <- <LENGTH .K> 1>>)
104 (N <- <LENGTH .K> 2>))
105 <COND (<L? <SET N <- .N 1>> 0> <RETURN>)>
106 <PUT <1 .B> ,CODE-SYM 3>>)>
109 <NOT <EMPTY? <BINDING-STRUCTURE <2 .K>>>>
110 <==? <NAME-SYM <1 <BINDING-STRUCTURE <2 .K>>>> DUMMY-MAPF>>
113 <REST <BINDING-STRUCTURE <2 .K>> <- <LENGTH .K> 1>>>)>
114 <COND (<NOT <OR .GMF .FUZZ .PRE>>
115 <COND (<==? .COD ,MFIRST-CODE>
116 <COND (<==? <NODE-SUBR <1 .K>> 5> <SET IOFF <+ .IOFF 4>>)
117 (ELSE <SET IOFF <+ .IOFF 2>>)>)
118 (<NOT <NODE-NAME <1 .K>>> <SET IOFF <+ .IOFF 2>>)>
119 <COND (<AND <NOT .FL>
120 <N==? <NODE-TYPE <2 .K>> ,MPSBR-CODE>
122 <SET IOFF <+ .IOFF 2>>)>)
123 (<AND <NOT <OR .FUZZ .PRE>>
124 <==? .COD ,MFIRST-CODE>
125 <==? <NODE-SUBR <1 .K>> 5>>
126 <SET IOFF <+ .IOFF 4>>)>
127 <AND .FL <VARMAP .K <OR .GMF .OFUZZ>>>
128 <SET FUZZ <OR .FUZZ <AND <NODE-NAME <1 .K>> <N==? .COD ,MFIRST-CODE>>>>
131 <OR .FL <VARMAP .K .OFUZZ>>>)
132 (<==? .COD ,STACKFORM-CODE>
133 <VAR-ANA <1 <SET K <KIDS .N>>>>
139 (<OR <==? .COD ,PROG-CODE> <==? .COD ,MFCN-CODE>> <PROG-REP-VAR .N .OFUZZ>)
140 (<OR <==? .COD ,SUBR-CODE>
141 <==? .COD ,COPY-CODE>
142 <AND <==? .COD ,ISUBR-CODE> <==? <4 <GET-TMP <NODE-SUBR .N>>> STACK>>
143 <AND <==? .COD ,RSUBR-CODE>
144 <OR <AND <TYPE? <NODE-SUBR .N> FUNCTION>
145 <SET ACST <ACS <SET RN <GET <NODE-NAME .N> .IND>>>>
146 <OR <ASSIGNED? GROUP-NAME> <==? .FCN .RN>>
148 <TYPE? <NODE-SUBR .N> RSUBR RSUBR-ENTRY>>>>
151 #DECL ((N) NODE (IOFF) FIX)
152 <OR <VAR-ANA .N> .OFUZZ .PRE <SET IOFF <+ .IOFF 2>>>>
154 (<OR <==? .COD ,ISTRUC-CODE> <==? .COD ,ISTRUC2-CODE>>
155 <VAR-ANA <1 <KIDS .N>>>
158 <SET IOFF <+ .IOFF <COND (<==? <NODE-SUBR .N> ,ISTRING> 2) (ELSE 4)>>>>
159 <MAPF <> ,VAR-ANA <REST <KIDS .N>>>)
160 (<==? .COD ,UNWIND-CODE>
161 <OR .PRE .OFUZZ <SET IOFF <+ .IOFF 10>>>
162 <VAR-ANA <1 <KIDS .N>>>
163 <VAR-ANA <2 <KIDS .N>>>)
165 <AND <==? <NODE-TYPE .N> ,BRANCH-CODE> <VAR-ANA <PREDIC .N>>>
166 <MAPF <> ,VAR-ANA <KIDS .N>>)>
168 <==? <NODE-TYPE .N> ,SEGMENT-CODE>>
170 <DEFINE VARMAP (K OFUZZ)
171 #DECL ((K) <LIST [REST NODE]> (OFUZZ) ANY)
174 #DECL ((N) NODE (IOFF) FIX)
176 <OR .PRE .OFUZZ <SET IOFF <+ .IOFF 2>>>>
179 <DEFINE PROG-REP-VAR (PNOD FUZZ
180 "AUX" (BST <BINDING-STRUCTURE .PNOD>) (SVIOFF .SVIOFF)
181 (USOFF .USOFF) (IOFF .IOFF) (NOA <>)
183 <OR <==? <NODE-SUBR .PNOD> ,PROG>
184 <==? <NODE-SUBR .PNOD> ,REPEAT>>))
185 #DECL ((PNOD) <SPECIAL NODE> (FUZZ NOA) <SPECIAL ANY>
186 (BST) <LIST [REST SYMTAB]> (SVIOFF USOFF IOFF) <SPECIAL FIX>)
187 <COND (<OR <ACTIV? .BST .NOACT> <ACTIVATED .PNOD>>
191 <PUT .PNOD ,ACTIVATED T>
195 <OR <ASSIGNED? INARG> .UNPRE>
203 <PUT .BASEF ,ACS (FUNNY-STACK)>
205 <PROG REVAR ((BPRE <>) (UNPRE <>) (OG .GFRMID) (OV .VERBOSE)
207 #DECL ((REVAR BPRE NNEW UNPRE) <SPECIAL ANY>)
208 <COND (.VERBOSE <PUTREST <SET VERBOSE .OV> ()>)>
212 <ADDVMESS .PNOD ("Internal FRAME generated.")>)>
215 <COND (<OR .PRE .FUZZ>
217 <OR <ASSIGNED? INARG> .UNPRE>
223 <OR <ASSIGNED? INARG> <SET IOFF .SVIOFF>>
224 <PUT .PNOD ,SPECS-START <+ .IOFF .USOFF>>
225 <PUT .PNOD ,USLOTS <+ .IOFF .USOFF>>
226 <PUT .PNOD ,BINDING-STRUCTURE <DOUNREG .BST .BST .BST T>>
227 <MAPF <> ,VAR-ANA <KIDS .PNOD>>
228 <AND <ASSIGNED? INARG> <SET IOFF .SVIOFF>>
229 <AND <G? .USOFF .HSLOT> <SET HSLOT .USOFF>>)
231 <PROG ((BASEF .PNOD) (HSLOT 0) (PRE <>))
232 #DECL ((BASEF) <SPECIAL NODE> (PRE) <SPECIAL ANY>
233 (HSLOT) <SPECIAL FIX>)
234 <PUT .BASEF ,BINDING-STRUCTURE <DOREG .BST T>>
236 <AND .PRE <G? .USOFF .HSLOT> <SET HSLOT .USOFF>>
237 <MAPF <> ,VAR-ANA <KIDS .BASEF>>
238 <COND (<AND .PRE .UNPRE>
242 (<NOT .BPRE> <SET UNPRE T>)>
244 <AND <G? .USOFF .HSLOT> <SET HSLOT .USOFF>>
247 <COND (<0? .HSLOT> -1)
248 (ELSE .HSLOT)>>)>>)>)>>
250 <DEFINE ARG? (SYM) #DECL ((SYM) SYMTAB) <1? <NTH ,ARGTBL <CODE-SYM .SYM>>>>
252 <SETG ARGTBL ![0 0 0 0 1 0 0 0 0 1 0 1 1!]>
254 <DEFINE ACTIV? (BST NOACT)
255 #DECL ((BST) <LIST [REST SYMTAB]>)
257 <AND <EMPTY? .BST> <RETURN <>>>
258 <AND <==? <CODE-SYM <1 .BST>> 1>
260 <NOT <RET-AGAIN-ONLY <1 .BST>>>
263 <SET BST <REST .BST>>>>
267 <1? <NTH '![0 1 0 0 0 1 1 0 0 0 0 0 0!] <CODE-SYM .SYM>>>>
271 <1? <NTH '![1 1 1 0 0 0 0 0 0 0 1 0 0!] <CODE-SYM .SYM>>>>
273 <DEFINE TUPLE? (TUP-NOD)
275 <OR <==? <NODE-NAME .TUP-NOD> ITUPLE>
276 <==? <NODE-NAME .TUP-NOD> TUPLE>>>>
278 <DEFINE GOOD-TUPLE (TUP "AUX" (K <KIDS .TUP>) NT (WD 0))
279 #DECL ((NT) FIX (TUP) NODE (K) <LIST [REST NODE]>)
280 <AND <NOT <==? <NODE-TYPE .TUP> ,ISTRUC-CODE>>
281 <COND (<==? <NODE-SUBR .TUP> ,ITUPLE>
282 <AND <==? <NODE-TYPE <1 .K>> ,QUOTE-CODE>
283 <OR <==? <SET NT <NODE-TYPE <2 .K>>> ,QUOTE-CODE>
284 <==? .NT ,FLVAL-CODE>
285 <==? .NT ,FGVAL-CODE>
287 <==? .NT ,LVAL-CODE>>
288 <* <NODE-NAME <1 .K>> 2>>)
292 <COND (<==? <NODE-TYPE .K> ,SEGMENT-CODE>
294 (ELSE <SET WD <+ .WD 2>>)>>
298 "OPTIONAL" (HACK-INITS <>)
299 "AUX" TUP SYM COD (RQRG 0) (TRG 0) (COOL <AND .NOA <NOT .ACC>>)
301 #DECL ((BST) <LIST [REST SYMTAB]> (SYM) SYMTAB (COD IOFF RQRG TRG) FIX
302 (BASEF) NODE (INARG) <SPECIAL ANY> (INIT-LIST) LIST)
303 <COND (<AND <ASSIGNED? GMF> .GMF <L=? .GMF 0>> <SET HACK-INITS <>>)>
304 <COND (<==? <NODE-TYPE .BASEF> ,FUNCTION-CODE>
305 <SET RQRG <REQARGS .BASEF>>
306 <SET TRG <TOTARGS .BASEF>>)>
315 <AND <ASSIGNED? GMF> .GMF <==? <NAME-SYM .SYM> DUMMY-MAPF>>
317 <OR <INIT-SYM .SYM> <==? <CODE-SYM .SYM> 13>>
319 <NOT <SPEC-SYM .SYM>>
321 <COND (<COMPOSIT-TYPE .SYM>
322 <TYPE-AND <1 <DECL-SYM .SYM>> <COMPOSIT-TYPE .SYM>>)
323 (<1 <DECL-SYM .SYM>>)>>
325 <NOT <0? <USAGE-SYM .SYM>>>>>
329 <REPEAT ((L <LENGTH .INIT-LIST>) (REMPTR .INIT-LIST)
330 (NA <COND (<AND <ASSIGNED? GMF> .GMF> .GMF) (ELSE ,NUMACS)>))
331 #DECL ((L NA) FIX (REMPTR) LIST)
332 <COND (<L? .L .NA> <RETURN>)>
333 <REPEAT ((PTR .INIT-LIST) (MIN-CNT <CHTYPE <MIN> FIX>) SYM)
335 <COND (<L? <USAGE-SYM .SYM> .MIN-CNT>
336 <SET MIN-CNT <USAGE-SYM .SYM>>
338 <SET REMPTR <SET PTR <REST .PTR>>>>
340 <COND (<==? .REMPTR .INIT-LIST> <SET INIT-LIST <REST .INIT-LIST>>)
341 (<PUTREST .REMPTR <REST .REMPTR 2>>)>>)>
342 <REPEAT ((FB .BST) (PB .BST))
343 <AND <EMPTY? .BST> <RETURN .FB>>
344 <PUT <SET SYM <1 .BST>> ,CODE-SYM <SET COD <ABS <CODE-SYM .SYM>>>>
346 (<AND <COMPOSIT-TYPE .SYM> <N==? <COMPOSIT-TYPE .SYM> T>>
348 (<NOT <SPEC-SYM .SYM>>
349 <COND (<NOT <ASS? .SYM>>
352 <TYPE-AND '<NOT UNBOUND> <COMPOSIT-TYPE .SYM>>>)>
353 <SET DC <1 <DECL-SYM .SYM>>>
354 <PUT .SYM ,DECL-SYM (<TYPE-AND <COMPOSIT-TYPE .SYM> .DC>)>
356 <N==? <COMPOSIT-TYPE .SYM> T>
357 <N==? <COMPOSIT-TYPE .SYM> NO-RETURN>
359 <TYPE-AND .DC <COMPOSIT-TYPE .SYM>> .DC>>>
360 <VMESS "Computed decl of variable: "
363 <COMPOSIT-TYPE .SYM>>)>)>
364 <PUT .SYM ,COMPOSIT-TYPE T>)>
365 <PUT .SYM ,CURRENT-TYPE <>>
367 (<NOT <OR <AND <1? <CODE-SYM .SYM>>
368 <NOT <SPEC-SYM .SYM>>
369 <RET-AGAIN-ONLY .SYM>
370 <NOT <ACTIVATED .BASEF>>>
371 <AND <NOT <USED-AT-ALL .SYM>>
373 <PUT .SYM ,USED-AT-ALL T>
374 <COND (<SPEC-SYM .SYM>
376 "Special variable never used: "
380 "VARIABLE NEVER USED: "
384 <NOT <SPEC-SYM .SYM>>
385 <NOT <INIT-SYM .SYM>>
387 <SET FB <FLUSH-SYM .BST <SET BST .PB> .FB>>>>>
388 <COND (<SPEC-SYM .SYM>
389 <PUT .SYM ,ADDR-SYM <+ .USOFF .IOFF 2>>
390 <AND <OR <NONARG .SYM> <ASSIGNED? PNOD>>
391 <PUT .SYM ,ARGNUM-SYM <TMPLS .BASEF>>>
392 <SET USOFF <+ .USOFF 6>>)>
394 <COND (<TUPLE? <INIT-SYM .SYM>>
395 <COND (<AND <NOT <OR <==? <CODE-SYM .SYM> 7>
396 <==? <CODE-SYM .SYM> 8>
397 <==? <CODE-SYM .SYM> 9>
399 <SET TUP <GOOD-TUPLE <INIT-SYM .SYM>>>>
400 <SET IOFF <+ .IOFF .TUP 2>>)
404 <PUT .FCN ,ACS <CHTYPE (<ACS .FCN>) FALSE>>
406 <RETURN <DOUNREG .BST .FB .PB .HACK-INITS>>)>)>
407 <COND (<SPEC-SYM .SYM>
408 <SET IOFF <+ .IOFF 2>>
409 <VAR-ANA <INIT-SYM .SYM>>
410 <SET IOFF <- .IOFF 2>>)
411 (ELSE <VAR-ANA <INIT-SYM .SYM>>)>
413 <OR <SPEC-SYM .SYM> <SET USOFF <+ .USOFF 2>>>
414 <SET COD <- .COD>>)>)>
415 <COND (<AND .ACC <NOT .LARG> <NONARG .SYM>> <SET LARG T>)>
416 <COND (<AND <NOT .NOA>
418 <NOT <SPEC-SYM .SYM>>
420 <PUT .SYM ,ADDR-SYM <REFERENCE:ARG <ARGNUM-SYM .SYM>>>)
421 (<AND .COOL <NOT <NONARG .SYM>> <NOT <SPEC-SYM .SYM>>>
422 <PUT .SYM ,FRMNO .FRMID>
425 <COND (<=? .NOA '(FUNNY-STACK)>
426 <- -2 <* <- <TOTARGS .FCN> <ARGNUM-SYM .SYM>> 2>>)
427 (ELSE <* 2 <- <ARGNUM-SYM .SYM> 1>>)>>)
428 (<AND <TUPLE? <INIT-SYM .SYM>> <NOT .TUP>>
431 <PUT .FCN ,ACS <CHTYPE (<ACS .FCN>) FALSE>>
433 <RETURN <DOUNREG .BST .FB .PB .HACK-INITS>>)
435 <PUT .SYM ,FRMNO .FRMID>
436 <COND (<AND <OR <==? <CODE-SYM .SYM> 2>
437 <==? <CODE-SYM .SYM> 3>
438 <==? <CODE-SYM .SYM> 13>>
439 <NOT <SPEC-SYM .SYM>>
441 <OR <==? <CODE-SYM .SYM> 3>
442 <AND .HACK-INITS <MEMQ .SYM .INIT-LIST>>>>
443 <PUT .SYM ,ADDR-SYM ,TEMPSTRT>)
447 <+ .IOFF <COND (<SPEC-SYM .SYM> 2) (ELSE 0)>>>
448 <AND <OR <NONARG .SYM> <ASSIGNED? PNOD>>
449 <PUT .SYM ,ARGNUM-SYM <TMPLS .BASEF>>>
453 <COND (<SPEC-SYM .SYM> 6) (ELSE 2)>>>>)>)>)>
454 <SET BST <REST <SET PB .BST>>>
455 <PUT .SYM ,CODE-SYM .COD>
456 <COND (.PRE <RETURN <DOUNREG .BST .FB .PB .HACK-INITS>>)>>>
458 <DEFINE DOUNREG (BST FB PB
459 "OPTIONAL" (HACK-INITS <>)
460 "AUX" SYM (INARG T) INIT-LIST)
461 #DECL ((BST) <LIST [REST SYMTAB]> (SYM) SYMTAB (USOFF IOFF) FIX
462 (INARG) <SPECIAL ANY> (INIT-LIST) LIST)
463 <COND (<AND <ASSIGNED? GMF> .GMF <L=? .GMF 0>> <SET HACK-INITS <>>)>
471 (<AND <INIT-SYM .SYM>
473 <NOT <SPEC-SYM .SYM>>
475 <COND (<COMPOSIT-TYPE .SYM>
476 <TYPE-AND <1 <DECL-SYM .SYM>> <COMPOSIT-TYPE .SYM>>)
477 (<1 <DECL-SYM .SYM>>)>>
479 <NOT <0? <USAGE-SYM .SYM>>>>
483 <REPEAT ((L <LENGTH .INIT-LIST>) (REMPTR .INIT-LIST)
484 (NA <COND (<AND <ASSIGNED? GMF> .GMF> .GMF) (ELSE 5)>))
485 #DECL ((L NA) FIX (REMPTR) LIST)
486 <COND (<L? .L .NA> <RETURN>)>
487 <REPEAT ((PTR .INIT-LIST) (MIN-CNT <CHTYPE <MIN> FIX>) SYM)
489 <COND (<L? <USAGE-SYM .SYM> .MIN-CNT>
490 <SET MIN-CNT <USAGE-SYM .SYM>>
492 <SET REMPTR <SET PTR <REST .PTR>>>>
494 <COND (<==? .REMPTR .INIT-LIST> <SET INIT-LIST <REST .INIT-LIST>>)
495 (<PUTREST .REMPTR <REST .REMPTR 2>>)>>)>
497 <AND <EMPTY? .BST> <RETURN .FB>>
500 (<AND <COMPOSIT-TYPE <SET SYM <1 .BST>>> <N==? <COMPOSIT-TYPE .SYM> T>>
502 (<NOT <SPEC-SYM .SYM>>
503 <COND (<NOT <ASS? .SYM>>
506 <TYPE-AND '<NOT UNBOUND> <COMPOSIT-TYPE .SYM>>>)>
507 <SET DC <1 <DECL-SYM .SYM>>>
508 <PUT .SYM ,DECL-SYM (<TYPE-AND <COMPOSIT-TYPE .SYM> .DC>)>
511 <N==? <COMPOSIT-TYPE .SYM> T>
512 <N==? <COMPOSIT-TYPE .SYM> NO-RETURN>
513 <NOT <SAME-DECL? <TYPE-AND .DC <COMPOSIT-TYPE .SYM>> .DC>>>
514 <VMESS "Computed decl of variable: "
517 <COMPOSIT-TYPE .SYM>>)>)>
518 <PUT .SYM ,COMPOSIT-TYPE T>)>
519 <PUT .SYM ,CURRENT-TYPE <>>
520 <PUT .SYM ,FRMNO .FRMID>
521 <COND (<NOT <OR <AND <1? <CODE-SYM .SYM>>
522 <NOT <SPEC-SYM .SYM>>
523 <RET-AGAIN-ONLY .SYM>
524 <NOT <ACTIVATED .BASEF>>>
525 <AND <NOT <USED-AT-ALL .SYM>>
527 <PUT .SYM ,USED-AT-ALL T>
528 <COND (<SPEC-SYM .SYM>
531 "Special variable never used: "
535 "VARIABLE NEVER USED: "
539 <NOT <SPEC-SYM .SYM>>
540 <NOT <INIT-SYM .SYM>>
542 <SET FB <FLUSH-SYM .BST <SET BST .PB> .FB>>>>>
543 <AND <INITV? .SYM> <VAR-ANA <INIT-SYM .SYM>>>
544 <COND (<OR <AND <ASSIGNED? GMF>
546 <==? <NAME-SYM .SYM> DUMMY-MAPF>>
548 <OR <==? <CODE-SYM .SYM> 3>
549 <==? <CODE-SYM .SYM> 2>
550 <==? <CODE-SYM .SYM> 13>>
551 <NOT <SPEC-SYM .SYM>>
553 <OR <==? <CODE-SYM .SYM> 3>
554 <AND .HACK-INITS <MEMQ .SYM .INIT-LIST>>>>>
555 <PUT .SYM ,ADDR-SYM ,TEMPSTRT>)
559 <+ .IOFF .USOFF <COND (<SPEC-SYM .SYM> 2) (ELSE 0)>>>
560 <AND <OR <NONARG .SYM> <ASSIGNED? PNOD>>
561 <PUT .SYM ,ARGNUM-SYM <TMPLS .BASEF>>>
563 <+ .USOFF <COND (<SPEC-SYM .SYM> 6) (ELSE 2)>>>)>)>
564 <AND <EMPTY? <SET BST <REST <SET PB .BST>>>> <RETURN .FB>>>>>
566 <DEFINE FLUSH-SYM (B P F)
567 #DECL ((B P F) <LIST [REST SYMTAB]>)
568 <COND (<==? .B .F> <REST .B>)
569 (ELSE <PUTREST .P <REST .B>> .F)>>
571 <DEFINE AP? (N "AUX" AT)
573 <AND <==? <NODE-TYPE .N> ,GVAL-CODE>
574 <==? <NODE-TYPE <SET N <1 <KIDS .N>>>> ,QUOTE-CODE>
575 <SET AT <NODE-NAME .N>>
577 <AND <GASSIGNED? .AT> <TYPE? ,.AT SUBR RSUBR RSUBR-ENTRY>>
578 <AND <GASSIGNED? .AT>
579 <TYPE? ,.AT FUNCTION>
581 <AND <TYPE? .FCNS LIST> <MEMQ .AT .FCNS>>>>>
585 <DEFINE REFERENCE:ARG (NUMBER "AUX" TEM)
586 #DECL ((VALUE) <DATUM ADDRESS:C ADDRESS:C> (NUMBER) FIX)
587 <SET TEM <ADDRESS:C `(AB) <* 2 <- .NUMBER 1>>>>
591 <DEFINE GET-TMP (SUB "AUX" (LS <MEMQ .SUB ,SUBRS>))
592 #DECL ((VALUE) <LIST ANY ANY>)
593 <COND (.LS <NTH ,TEMPLATES <LENGTH .LS>>)
596 <DEFINE SAME-DECL? (D1 D2) <OR <=? .D1 .D2> <NOT <TYPE-OK? .D2 <NOTIFY .D1>>>>>
599 <COND (<AND <TYPE? .D FORM> <==? <LENGTH .D> 2> <==? <1 .D> NOT>>
601 (ELSE <FORM NOT .D>)>>