2 <FUNCTION ("REST" 'SPECS)
3 <MAPCAR ,TRACE1 .SPECS> >>
7 <FUNCTION ("REST" PROCNS "AUX" OTYP)
10 <SET OTYP <TYPE ,.PROCN>>
11 <SETG .PROCN <2 <1 <LAST <1 ,.PROCN>>>>>
12 <COND (<==? .OTYP ACTOR-FUNCTION>
13 <SETG .PROCN <CHTYPE ,.PROCN ACTOR-FUNCTION>>) >
15 .PROCNS> >>
\f<DEFINE TRACE1
16 <FUNCTION TR1 (SPEC "AUX" PROCN ARGL PROC SPEC1)
18 <SET SPEC (.SPEC EN '<DISPLAY .*ARGS> EX '<DISPLAY .*VAL>)>) >
20 <OR <MEMQ <TYPE <SET PROC ,.PROCN>> '(SUBR FSUBR FUNCTION ACTOR-FUNCTION)>
21 <.TR1 <ERROR MEANINGLESS-TRACE-REQUEST .PROCN>>>
23 <CHTYPE ((!<SET ARGL <ARGDECLS .PROC>>
24 "AUX" !<COND (<MEMQ <TYPE .PROC> '(FUNCTION ACTOR-FUNCTION)>
25 ((*ARGS <ARGVALS .ARGL>)))>
27 (*OFUNC <COND (<==? <TYPE .PROC> ACTOR-FUNCTION>
28 <CHTYPE .PROC FUNCTION>)
30 !<COND (<SET SPEC1 <MEMQ EN .SPEC>>
31 (<FORM PRINT (ENTERING .PROCN)>
32 !<UPTONEXTATOM <REST .SPEC1>>))>
33 !<COND (<SET SPEC1 <MEMQ FO .SPEC>>
37 <FORM PRINT (FAILING OUT OF .PROCN)>
38 !<UPTONEXTATOM <REST .SPEC1>>
39 '<FAIL .*MES .*ACT> >)) >
40 '<SET *VAL <APPLY .*OFUNC (!.*ARGS)>>
41 !<COND (<SET SPEC1 <MEMQ FI .SPEC>>
45 <FORM PRINT (FAILING INTO .PROCN)>
46 !<UPTONEXTATOM <REST .SPEC1>>
47 '<FAIL .*MES .*ACT> >)) >
48 !<COND (<SET SPEC1 <MEMQ EX .SPEC>>
49 (<FORM PRINT (EXITING .PROCN)>
50 !<UPTONEXTATOM <REST .SPEC1>>)) >
52 <COND (<==? <TYPE .PROC> ACTOR-FUNCTION> ACTOR-FUNCTION)
54 .PROCN >>
\f<DEFINE ARGDECLS
55 <FUNCTION (PROC "AUX" (TP <TYPE .PROC>) DECLS R)
60 (T <AND <ATOM? <1 .PROC>> <SET PROC <REST .PROC>>>
62 <COND (<OR <SET R <MEMBER "AUX" .DECLS>>
63 <SET R <MEMBER "ACT" .DECLS>>>
71 #FUNCTION ((DECL "AUX" (TP <TYPE .DECL>))
72 <COND (<==? .TP STRING> ())
74 <COND (<ATOM? .DECL> .DECL)
76 <LEGALFORMDECL .DECL>)
78 <OR <==? <LENGTH .DECL> 2>
81 <COND (<ATOM? .DECL> .DECL)
83 <LEGALFORMDECL .DECL>)
84 (T <TRCOMPLAIN .PROCN>)>) >>)) >)
90 <COND (<AND <==? <LENGTH .DECL> 2>
94 (<TRCOMPLAIN .PROCN>) > >>
99 <PRINT (MEANINGLESS PARAMETER DECLARATION IN .PROCN)>
100 <.TR1 (.PROCN *NOT TRACED*)> >>
\f<DEFINE UPTONEXTATOM
102 <COND (<OR <EMPTY? .L> <ATOM? <1 .L>>> ())
103 ((<1 .L> !<UPTONEXTATOM <REST .L>>)) >>>
107 <FUNCTION ("REST" 'ITEMS)
112 <PRIN1 <EVAL .ITEM>>)