X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fparse-lambda-list.lisp;h=4c0edaa807f055dee4b4787ff9c4dd38753ade39;hb=90ca09b75fbc3b63b2f7d09c67b04b866dd783f6;hp=644296a886d8bc252dc9d2bf3573d6c2b8f40bef;hpb=a530bbe337109d898d5b4a001fc8f1afa3b5dc39;p=sbcl.git diff --git a/src/compiler/parse-lambda-list.lisp b/src/compiler/parse-lambda-list.lisp index 644296a..4c0edaa 100644 --- a/src/compiler/parse-lambda-list.lisp +++ b/src/compiler/parse-lambda-list.lisp @@ -9,26 +9,25 @@ (in-package "SB!C") -(file-comment - "$Header$") +(/show0 "parse-lambda-list.lisp 12") -;;; Break a lambda-list into its component parts. We return eleven +;;; Break a lambda list into its component parts. We return eleven ;;; values: -;;; 1. A list of the required args. -;;; 2. A list of the optional arg specs. -;;; 3. True if a rest arg was specified. -;;; 4. The rest arg. -;;; 5. A boolean indicating whether keywords args are present. -;;; 6. A list of the keyword arg specs. -;;; 7. True if &allow-other-keys was specified. -;;; 8. A list of the &aux specifiers. -;;; 9. True if a more arg was specified. -;;; 10. The &more context var -;;; 11. The &more count var +;;; 1. a list of the required args; +;;; 2. a list of the optional arg specs; +;;; 3. true if a rest arg was specified; +;;; 4. the &rest arg; +;;; 5. true if &KEY args are present; +;;; 6. a list of the &KEY arg specs; +;;; 7. true if &ALLOW-OTHER-KEYS was specified.; +;;; 8. a list of the &AUX specifiers; +;;; 9. true if a &MORE arg was specified; +;;; 10. the &MORE context var; +;;; 11. the &MORE count var. ;;; -;;; The top-level lambda-list syntax is checked for validity, but the +;;; The top level lambda list syntax is checked for validity, but the ;;; arg specifiers are just passed through untouched. If something is -;;; wrong, we use Compiler-Error, aborting compilation to the last +;;; wrong, we use COMPILER-ERROR, aborting compilation to the last ;;; recovery point. (declaim (ftype (function (list) (values list list boolean t boolean list boolean @@ -69,7 +68,7 @@ (unless (member state '(:required :optional)) (compiler-error "misplaced &REST in lambda list: ~S" list)) (setq state :rest)) - (sb!c:&more + (&more (unless (member state '(:required :optional)) (compiler-error "misplaced &MORE in lambda list: ~S" list)) (setq morep t @@ -118,3 +117,5 @@ (values (required) (optional) restp rest keyp (keys) allowp (aux) morep more-context more-count)))) + +(/show0 "parse-lambda-list.lisp end of file")