(FILECREATED "29-Sep-86 18:54:31" ("compiled on " {ERIS}SOURCES>CMLPARSE.;7) "24-Sep-86 19:51:31" in "Xerox Lisp 24-Sep-86 ..." dated "24-Sep-86 20:08:23") (FILECREATED "29-Sep-86 18:50:56" {ERIS}SOURCES>CMLPARSE.;7 39770 changes to: (FUNCTIONS ANALYZE ANALYZE-REST ANALYZE-AUX ANALYZE-KEY ANALYZE-PARAMETER CHECK-PARAMETER-NAME PUSH-KEYWORD-BINDING KEYWORD-TEST FIND-KEYWORD) (VARS CMLPARSECOMS) previous date: "26-Sep-86 14:55:20" {ERIS}SOURCES>CMLPARSE.;4) (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 CHECK-PARAMETER-NAME 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-CASE0480 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-CASE0480 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) A AHAhUc Hb@AHHicHAhUc Zdg(CHHCB icHoB g=W.H)Hl HB HWhUc icHoB Jdg>W.H)Hl HB HWhUc icHaoB TgIooB iY:JgJdgHHABC gicKAhUc HKB JdgooB gHB IVkc Jdl)B JgAgAhhiWhhhUc yooB iJgAgAhhiJJWhhB J?JB JggAhhhUc WkcVkc JgAhB HHgAh\gAhhUc LbHX(1045Q GENSYM 1017Q ANALYZE-PARAMETER 733Q CHECK-PARAMETER-NAME 715Q ANALYZE-PARAMETER 646Q CERROR 565Q CHECK-PARAMETER-NAME 535Q ANALYZE-AUX 517Q CERROR 472Q ANALYZE-KEY 444Q GENSYM 432Q ANALYZE-REST 373Q CERROR 344Q CL:ERROR 305Q CHECK-PARAMETER-NAME 240Q CL:ERROR 201Q CHECK-PARAMETER-NAME 137Q CL:ERROR 115Q ANALYZE-PARAMETER 6 GENSYM) (1051Q CDR 1034Q CDR 1007Q CAR 746Q NULL 743Q NOT 661Q CAR 655Q COND 576Q CAR 572Q COND 525Q &AUX 500Q &ALLOW-OTHER-KEYS 436Q &KEY 414Q &BODY 405Q &REST 352Q &OPTIONAL 250Q &CONTEXT 145Q &ENVIRONMENT 71Q &WHOLE) ( 642Q "Non-symbol variable name in ~S." 636Q "Ignore this item." 513Q "Stray &ALLOW-OTHER-KEYS in arglist of ~S." 507Q "Ignore it." 367Q "Redundant &optional flag in varlist of ~S." 363Q "Ignore it." 340Q "Illegal or ill-formed &context arg in ~S." 234Q "Illegal or ill-formed &environment arg in ~S." 133Q "Illegal or ill-formed &whole arg in ~S.") ANALYZE-AUX D1 (L (1 ERRLOC 0 ARGLIST) F 1 %%LET-LIST) p@HdooA hHdlA HoQc7oH(HlHA HHhQcoHA HX(150Q CL:ERROR 115Q CHECK-PARAMETER-NAME 45Q CHECK-PARAMETER-NAME 25Q CERROR) NIL ( 141Q "Non-symbolic &AUX parameter %"~S%" in arglist of ~S." 72Q "Non-symbolic &AUX parameter %"~S%" in arglist of ~S." 54Q (NIL) 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)) ;0@#dZdgJAgg JHIoH h(66Q CL:ERROR 40Q CL:MEMBER 35Q SYMBOL-FUNCTION) (32Q EQ 27Q :TEST 14Q :ALLOW-OTHER-KEYS) ( 62Q "Extraneous keyword %"~S%" given.") FIND-KEYWORD D1 (L (1 KEYLIST 0 KEYWORD)) 1AHIoo Hh&hHd@hHX(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