(FILECREATED "26-Sep-86 14:57:27" ("compiled on " {ERIS}SOURCES>CMLPARSE.;4) "24-Sep-86 19:51:31" in "Xerox Lisp 24-Sep-86 ..." dated "24-Sep-86 20:08:23") (FILECREATED "26-Sep-86 14:55:20" {ERIS}SOURCES>CMLPARSE.;4 38136 changes to: (FUNCTIONS ANALYZE-PARAMETER ANALYZE ANALYZE-REST) (VARS CMLPARSECOMS) previous date: "26-Sep-86 12:36:48" {ERIS}SOURCES>CMLPARSE.;3) (RPAQQ CMLPARSECOMS ((* ;; "Parsing bodies and argument lists") (VARIABLES %%ARG-COUNT %%MIN-ARGS %%UNBOUNDED-ARG-COUNT %%LET-LIST %%KEYWORD-TESTS %%ENV-ARG-USED %%CTX-ARG-USED %%ENV-ARG-NAME %%CTX-ARG-NAME) (VARIABLES *DEFAULT-DEFAULT* *KEY-FINDER*) (FUNCTIONS PARSE-BODY) (FUNCTIONS PARSE-DEFMACRO ANALYZE ANALYZE-AUX ANALYZE-KEY ANALYZE-PARAMETER PUSH-KEYWORD-BINDING ANALYZE-REST RECURSIVELY-ANALYZE DEFMACRO-ARG-TEST) (* ;; "Testing the argument-list parsing") (VARIABLES ANALYZE-TESTS) (* ;; "Runtime support functions") (FUNCTIONS KEYWORD-TEST FIND-KEYWORD) (* ;; "Arrange to use the correct compiler") (PROP FILETYPE CMLPARSE))) (PROCLAIM (QUOTE (SPECIAL %%ARG-COUNT))) (OR (BOUNDP (QUOTE %%ARG-COUNT)) (SETQ %%ARG-COUNT NIL)) (PROCLAIM (QUOTE (SPECIAL %%MIN-ARGS))) (OR (BOUNDP (QUOTE %%MIN-ARGS)) (SETQ %%MIN-ARGS NIL)) (PROCLAIM (QUOTE (SPECIAL %%UNBOUNDED-ARG-COUNT))) (OR (BOUNDP (QUOTE %%UNBOUNDED-ARG-COUNT)) (SETQ %%UNBOUNDED-ARG-COUNT 0)) (PROCLAIM (QUOTE (SPECIAL %%LET-LIST))) (OR (BOUNDP (QUOTE %%LET-LIST)) (SETQ %%LET-LIST NIL)) (PROCLAIM (QUOTE (SPECIAL %%KEYWORD-TESTS))) (OR (BOUNDP (QUOTE %%KEYWORD-TESTS)) (SETQ %%KEYWORD-TESTS NIL)) (PROCLAIM (QUOTE (SPECIAL %%ENV-ARG-USED))) (OR (BOUNDP (QUOTE %%ENV-ARG-USED)) (SETQ %%ENV-ARG-USED NIL)) (PROCLAIM (QUOTE (SPECIAL %%CTX-ARG-USED))) (OR (BOUNDP (QUOTE %%CTX-ARG-USED)) (SETQ %%CTX-ARG-USED NIL)) (PROCLAIM (QUOTE (SPECIAL %%ENV-ARG-NAME))) (OR (BOUNDP (QUOTE %%ENV-ARG-NAME)) (SETQ %%ENV-ARG-NAME NIL)) (PROCLAIM (QUOTE (SPECIAL %%CTX-ARG-NAME))) (OR (BOUNDP (QUOTE %%CTX-ARG-NAME)) (SETQ %%CTX-ARG-NAME NIL)) (PROCLAIM (QUOTE (SPECIAL *DEFAULT-DEFAULT*))) (OR (BOUNDP (QUOTE *DEFAULT-DEFAULT*)) (SETQ *DEFAULT-DEFAULT* NIL)) (PROCLAIM (QUOTE (SPECIAL *KEY-FINDER*))) (OR (BOUNDP (QUOTE *KEY-FINDER*)) (SETQ *KEY-FINDER* NIL)) PARSE-BODYA0001A0002 D1 (L (0 PROCEED-CASE) P 1 *PRINT-LENGTH* P 0 *PRINT-LEVEL* I 1 *STANDARD-OUTPUT* F 2 FORM) ldioR (16Q FORMAT) NIL ( 12Q "Assume that ~S does not expand into a declaration.") PARSE-BODYA0001 D1 (P 0 *PROCEED-CASES* F 1 PROCEED-CASE1561 F 2 *PROCEED-CASES* F 3 FORM F 4 ENVIRONMENT) 0ggggQgjghgg RST (53Q \MVLIST 50Q MACROEXPAND 36Q MAKE-PROCEED-CASE) (32Q PARSE-BODYA0001A0002 27Q :REPORT 23Q :TEST 17Q :SELECTOR 13Q :TAG 10Q PROCEED 5 :NAME 2 :NORMAL) () PARSE-BODYA0003 D1 (L (0 IGNORE) F 0 FORM) PNIL NIL () PARSE-BODY D1 (L (0 -args-) P 16Q PROCEED-CASE1561 P 15Q FORM P 2 ENVIRONMENT) eka lalHilaI! O OOOKO_OoOdl𢿰cgOpO OhOg __OOgN %gjNdMk]no ML_OO O gOO_O_D(303Q VALUES 276Q REVERSE 253Q LISPERROR 214Q VALUES-LIST 166Q \CATCH-FUNCALL 145Q SPECIAL-FORM-P) (310Q DECLARE 221Q PARSE-BODYA0003 206Q :NORMAL 163Q PARSE-BODYA0001 131Q DECLARE) ( 250Q "TOO MANY ARGUMENTS") PARSE-DEFMACRO D1 (L (0 -args-) P 53Q %%CTX-ARG-USED P 52Q %%ENV-ARG-USED P 51Q %%KEYWORD-TESTS P 50Q %%LET-LIST P 47Q %%UNBOUNDED-ARG-COUNT P 46Q %%MIN-ARGS P 45Q %%ARG-COUNT P 32Q *KEY-FINDER* P 27Q *DEFAULT-DEFAULT* P 16Q %%CTX-ARG-NAME P 13Q %%ENV-ARG-NAME) ,ekaP$lalalalaHl_OdNgJh_Hl__OdOh_Hl__OdOh_Hl_ _O dOh_"Hl_&_$O&dO$i_(Hl_,_*O,dO*h_.Hl_2_0O2dO0g_4Hl_8_6O8dO6Ig Ig_:KMO( _<_>O<_@_BO@_DjdR+IO:gOhagOkaOl_agOkaOl_agOkaOl_agO kaO l_ agO&kaO&l_&agO,kaO,l_,agO2kaO2l_2agO8kaO8l_8OLJ O"O gOP OBORO> _H_F(gOFgO"gLhgOhhOHhOHOFIggJhhhhOOTggOhhhhOOVggOhhhh ODOLONhOJ (1235Q VALUES 1216Q \APPEND2 1213Q \APPEND2 1014Q \APPEND2 1011Q \APPEND2 1000Q REVERSE 770Q DEFMACRO-ARG-TEST 757Q ANALYZE 373Q \MVLIST 370Q PARSE-BODY) (1174Q IGNORE 1171Q DECLARE 1142Q IGNORE 1137Q DECLARE 1111Q IGNORE 1106Q DECLARE 1051Q CL:LENGTH 1042Q QUOTE 1035Q CL:ERROR 1030Q CL:IF 773Q LET* 724Q :REMOVE-COMMENTS 674Q :KEY-FINDER 644Q :DEFAULT-DEFAULT 614Q :DOC-STRING-ALLOWED 564Q :ERROR-STRING 534Q :CONTEXT 504Q :ENVIRONMENT 454Q :PATH 440Q REMOVE-COMMENTS 355Q %%ORIGINAL-DEFINITION 344Q &WHOLE 310Q FIND-KEYWORD 62Q CDR) () ANALYZE D1 (L (3 WHOLE 2 ERRLOC 1 PATH 0 ARGLIST) F 5 %%LET-LIST F 6 %%ARG-COUNT F 7 %%UNBOUNDED-ARG-COUNT F 10Q %%ENV-ARG-NAME F 11Q %%CTX-ARG-NAME F 12Q %%MIN-ARGS F 13Q *DEFAULT-DEFAULT* F 14Q %%CTX-ARG-USED F 15Q %%ENV-ARG-USED) . AHAhUc Hb@AHHicHAhUc Zdg4C%H HlHChUc icHoB g5W&H!HlHWhUc icHoB Jdg6W&H!HlHWhUc icHRoB EgIooB iY+JgJdgHHABC gicKAhUc HKB JdgooB gHB IVkc Jdl#gAgAhhiWhhhUc pooB `JgAgAhhiJJWhhB J6JggAhhhUc WkcVkc JgAhB HHgAh\gAhhUc LbHX(1022Q GENSYM 774Q ANALYZE-PARAMETER 703Q ANALYZE-PARAMETER 634Q CERROR 531Q ANALYZE-AUX 513Q CERROR 466Q ANALYZE-KEY 440Q GENSYM 426Q ANALYZE-REST 367Q CERROR 340Q CL:ERROR 244Q CL:ERROR 153Q CL:ERROR 6 GENSYM) (1026Q CDR 1011Q CDR 764Q CAR 723Q NULL 720Q NOT 647Q CAR 643Q COND 564Q CAR 560Q COND 521Q &AUX 474Q &ALLOW-OTHER-KEYS 432Q &KEY 410Q &BODY 401Q &REST 346Q &OPTIONAL 254Q &CONTEXT 161Q &ENVIRONMENT 71Q &WHOLE) ( 630Q "Non-symbol variable name in ~S." 624Q "Ignore this item." 507Q "Stray &ALLOW-OTHER-KEYS in arglist of ~S." 503Q "Ignore it." 363Q "Redundant &optional flag in varlist of ~S." 357Q "Ignore it." 334Q "Illegal or ill-formed &context arg in ~S." 240Q "Illegal or ill-formed &environment arg in ~S." 147Q "Illegal or ill-formed &whole arg in ~S.") ANALYZE-AUX D1 (L (1 ERRLOC 0 ARGLIST) F 3 %%LET-LIST F 4 LAMBDA-LIST-KEYWORDS) @!HdooA hHd=dloHA HTYhoHA Ho)J:IIloHA HHhScHX(152Q CL:ERROR 104Q WARN 57Q CL:ERROR 25Q CERROR) NIL ( 143Q "Non-symbolic &AUX parameter %"~S%" in arglist of ~S." 113Q (NIL) 76Q "WARNING: The lambda-list keyword %"~S%" was found where an &aux variable should be in the arglist of ~S.~%%It will be treated as an &aux variable and bound to NIL.~%%You will almost certainly lose.~%%" 51Q "Non-symbolic &AUX parameter %"~S%" in arglist of ~S." 21Q "Dotted arglist after &AUX in ~S." 15Q "Ignore the illegal terminator.") ANALYZE-KEY D1 (L (2 ERRLOC 1 RESTVAR 0 ARGLIST) F 10Q %%LET-LIST F 11Q %%KEYWORD-TESTS) OiHWc@AKK+ooB \dghYg"KB IgAgJhhWcLdl LMhdAHB MJZooLB Ldl" LLMLNAHB MJZL LdooLB sl0L] oMB LLMLNAHB MJZ 133Q OR 116Q CL:LENGTH 113Q /= 70Q CL:LENGTH 65Q > 43Q CL:LENGTH 40Q <) () (PROCLAIM (QUOTE (SPECIAL ANALYZE-TESTS))) (OR (BOUNDP (QUOTE ANALYZE-TESTS)) (SETQ ANALYZE-TESTS (QUOTE ((MULTIPLE-VALUE-LIST (PARSE-DEFMACRO ( QUOTE ((&WHOLE HEAD MOUTH &OPTIONAL EYE1 (EYE2 7 EYE2-P)) ((FIN1 LENGTH1 &KEY ONE (TWO 8) ((:THREE TROIS) 3 TRES-P) ((:FOUR (QUATRE QUATRO)) (QUOTE (4 4)))) &OPTIONAL ((FIN2 LENGTH2) 9 FL2-P)) TAIL &REST (FOO BAR BAZ) &ENVIRONMENT ENV)) (QUOTE WHOLE-ARG) (QUOTE ((CODE))) (QUOTE ERRLOC) :ENVIRONMENT (QUOTE *ENV*) :ERROR-STRING "Ack!")) (QUOTE ((&WHOLE HEAD MOUTH EYE1 EYE2) ((FIN1 LENGTH1) (FIN2 LENGTH2)) TAIL)) (QUOTE ((&WHOLE HEAD MOUTH &OPTIONAL EYE1 (EYE2 7 EYE2-P)) ((FIN1 LENGTH1 &KEY ONE ( TWO 8) ((:THREE TROIS) 3 TRES-P) ((:FOUR (QUATRE QUATRO)) (QUOTE (4 4)))) &OPTIONAL ((FIN2 LENGTH2) 9 FL2-P)) TAIL &REST (FOO BAR BAZ) &ENVIRONMENT ENV)))))) KEYWORD-TEST D1 (L (1 KEYS 0 ARGS)) C @YH5oH gIdIAgg II(100Q VALUES 64Q CL:MEMBER 61Q SYMBOL-FUNCTION 42Q VALUES 22Q CL:ERROR) (56Q EQ 53Q :TEST 27Q :ALLOW-OTHER-KEYS) ( 16Q "Extraneous keyword %"~S%" given.") FIND-KEYWORD D1 (L (1 KEYLIST 0 KEYWORD)) 0AHhoo Hh&hHd@hX(30Q CERROR) NIL ( 25Q "Unpaired item in keyword portion of macro call." 21Q "Stick a NIL on the end and go on.") (PUTPROPS CMLPARSE FILETYPE COMPILE-FILE) (PUTPROPS CMLPARSE COPYRIGHT ("Xerox Corporation" 1986)) NIL