#(#! (lisp::in-package (lisp::quote user::lisp))#! (lisp::export (lisp::quote (lisp::destructuring-bind))) #("Error in do-arg-count-error: ~S ~S ~S ~S ~S ~S~%" lisp::*default-default* lisp::error lisp::*arg-tests* lisp::*user-lets* lisp::*system-lets* lisp::*ignorable-vars* lisp::let* lisp::declare lisp::ignorable lisp::ignore "KEYWORD" :wrong-type-argument "~S is not of type ~S~%" :allow-other-keys :unknown-keyword :dotted-list :odd-length lisp::cdr :required lisp::&whole "&Whole must appear first in ~S lambda-list." "&WHOLE" lisp::&environment "&Environment not valid with ~S." "&Environment only valid at top level of ~ lambda-list." "&ENVIRONMENT" lisp::&rest lisp::&body lisp::multiple-value-list lisp::parse-body lisp::car lisp::cadr lisp::caddr lisp::&optional :optionals lisp::&key :keywords "KEYWORDS-" lisp::&allow-other-keys lisp::&aux :auxs "SUBLIST-" "Ignore extra noise." "More than variable, initform, and suppliedp ~ in &optional binding - ~S" lisp::not lisp::null lisp::keyword-supplied-p lisp::quote lisp::lookup-keyword "Non-symbol in lambda-list - ~S." lisp::unless lisp::<= lisp::length lisp::the lisp::list lisp::do-arg-count-error (lisp::quote lisp::defmacro-ll-arg-count-error) :kind :name :argument :lambda-list :minimum :maximum "KEY-PROBLEM-" "INFO-" lisp::multiple-value-bind lisp::verify-keywords lisp::when (lisp::quote lisp::defmacro-ll-broken-key-list-error) :problem :info "TEMP-" lisp::let lisp::if lisp::listp (lisp::quote lisp::defmacro-bogus-sublist-error) :object "SUPLIEDP-" "OPTIONAL-SUBLIST-" "Illegal optional variable name: ~S" "ARG-LIST-" lisp::destructuring-bind :annonymousp :doc-string-allowed :environment :default-default :error-fun lisp::parse-defmacro-lambda-list lisp::specific-error lisp::push-let-binding lisp::defmacro-error lisp::push-sub-list-binding lisp::push-optional-binding lisp::make-keyword lisp::parse-defmacro (system::%init . #((system::*make-special (lisp::quote lisp::*arg-tests*)) (system::putprop (lisp::quote lisp::*arg-tests*) "A list of tests that do argument counting at expansion time." #0=(lisp::quote system::variable-documentation)) (lisp::or (lisp::boundp (lisp::quote lisp::*arg-tests*)) (lisp::setq lisp::*arg-tests* lisp::nil)) (system::*make-special (lisp::quote lisp::*system-lets*)) (lisp::or (lisp::boundp (lisp::quote lisp::*system-lets*)) (lisp::setq lisp::*system-lets* lisp::nil)) (system::*make-special (lisp::quote lisp::*user-lets*)) (system::putprop (lisp::quote lisp::*user-lets*) "Let bindings that the user has explicitly supplied." #0#) (lisp::or (lisp::boundp (lisp::quote lisp::*user-lets*)) (lisp::setq lisp::*user-lets* lisp::nil)) (system::*make-special (lisp::quote lisp::*default-default*)) (system::putprop (lisp::quote lisp::*default-default*) "Unsupplied optional and keyword arguments get this value defaultly." #0#) (lisp::or (lisp::boundp (lisp::quote lisp::*default-default*)) (lisp::setq lisp::*default-default* lisp::nil)) (system::*make-special (lisp::quote lisp::*ignorable-vars*)) (system::mf (lisp::quote lisp::do-arg-count-error) 0) (system::putprop (lisp::quote lisp::parse-defmacro) "Returns as multiple-values a parsed body, any local-declarations that should be made where this body is inserted, and a doc-string if there is one." #1=(lisp::quote system::function-documentation)) (system::mf (lisp::quote lisp::parse-defmacro) 1) (system::putprop (lisp::quote lisp::make-keyword) "Takes a non-keyword symbol, symbol, and returns the corresponding keyword." #1#) (system::mf (lisp::quote lisp::make-keyword) 2) (system::mf (lisp::quote lisp::defmacro-error) 3) (system::mf (lisp::quote lisp::verify-keywords) 4) (system::mf (lisp::quote lisp::lookup-keyword) 5) (system::mf (lisp::quote lisp::keyword-supplied-p) 6) (system::mf (lisp::quote lisp::parse-defmacro-lambda-list) 7) (system::mf (lisp::quote lisp::push-sub-list-binding) 8) (system::mf (lisp::quote lisp::push-let-binding) 9) (system::mf (lisp::quote lisp::push-optional-binding) 10) (system::putprop (lisp::quote lisp::parse-body) "This function is to parse the declarations and doc-string out of the body of a defun-like form. Body is the list of stuff which is to be parsed. Environment is ignored. If Doc-String-Allowed is true, then a doc string will be parsed out of the body and returned. If it is false then a string will terminate the search for declarations. Three values are returned: the tail of Body after the declarations and doc strings, a list of declare forms, and the doc-string, or NIL if none." #1#) (system::mf (lisp::quote lisp::parse-body) 11) (system::putprop (lisp::quote lisp::destructuring-bind) "Bind the variables in LAMBDA-LIST to the contents of ARG-LIST." (lisp::quote system::function-documentation)) (system::mm (lisp::quote lisp::destructuring-bind) 12) (system::debug (lisp::quote lisp::do-arg-count-error) (lisp::quote (lisp::error-kind lisp::name lisp::arg lisp::lambda-list lisp::minimum lisp::maximum))) (system::debug (lisp::quote lisp::parse-defmacro) (lisp::quote (lisp::lambda-list lisp::arg-list-name lisp::code lisp::name lisp::error-kind lisp::annonymousp lisp::doc-string-allowed lisp::env-arg-name lisp::nil lisp::error-fun lisp::nil lisp::nil lisp::nil lisp::nil lisp::nil lisp::*arg-tests* lisp::*user-lets* lisp::*system-lets* lisp::*ignorable-vars*))) (system::debug (lisp::quote lisp::make-keyword) (lisp::quote (lisp::symbol))) (system::debug (lisp::quote lisp::defmacro-error) (lisp::quote (lisp::problem lisp::nil lisp::name))) (system::debug (lisp::quote lisp::verify-keywords) (lisp::quote (lisp::key-list lisp::valid-keys lisp::allow-other-keys #:g1376))) (system::debug (lisp::quote lisp::lookup-keyword) (lisp::quote (lisp::keyword lisp::key-list))) (system::debug (lisp::quote lisp::keyword-supplied-p) (lisp::quote (lisp::keyword lisp::key-list))) (system::debug (lisp::quote lisp::parse-defmacro-lambda-list) (lisp::quote (lisp::lambda-list lisp::arg-list-name lisp::name lisp::error-kind lisp::error-fun lisp::top-level lisp::env-illegal lisp::env-arg-name lisp::keyword-given lisp::variable lisp::keyword lisp::supplied-p))) (system::debug (lisp::quote lisp::push-sub-list-binding) (lisp::quote (lisp::variable lisp::path lisp::object lisp::name lisp::error-kind lisp::error-fun #:g1390))) (system::debug (lisp::quote lisp::push-let-binding) (lisp::quote (lisp::variable lisp::path lisp::systemp lisp::condition lisp::init-form))) (system::debug (lisp::quote lisp::push-optional-binding) (lisp::quote (lisp::value-var lisp::init-form lisp::supplied-var lisp::condition lisp::path lisp::name lisp::error-kind lisp::error-fun))) (system::debug (lisp::quote lisp::parse-body) (lisp::quote (lisp::body lisp::nil lisp::doc-string-allowed)))))) )