;ELC ;;; compiled by rms@mole.gnu.ai.mit.edu on Thu May 4 21:35:23 1995 ;;; from file /home/fsf/rms/e19/lisp/cl-specs.el ;;; emacs version 19.28.90.6. ;;; bytecomp version FSF 2.10 ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19"))) (error "`/home/fsf/rms/e19/lisp/cl-specs.el' was compiled for Emacs 19")) (byte-code "!!#################################ā@ƁA#āBƁC#āDƁE#āFƁG#āHƁI#āJƁH#āKƁL#āMƁN#āOƁP#āQƁR#āSƁT#āUƁV#āWƁU#āXƁU#āYƁU#āZƁ[#ā\\Ɓ]#ā^Ɓ\\#ā_Ɓ\\#ā`Ɓ\\#āaƁ\\#ābƁc#ādƁe#āfƁg#āhƁi#ājƁk#ālƁm#ānƁl#āo#āpƁq#ārƁs#ātƁu#āvƁw#āxƁy#āzƁ{#ā|Ɓ}#ā~Ɓ#āƁ#āƁ#āƁ#āƁ#āƁ#āƁ#āƁ#āƁ#āƁ#āgƁ#āƁg#āƁ#āƁ#āƁ#āƁ#āƁ#āƁ#āƁ#āƁ#āƁ#āƁ#āƁ#āƁ#āƁ#āƁ#āƁ#āƁ#" [provide cl-specs require edebug put block edebug-form-spec (symbolp body) return (&optional form) return-from (symbolp &optional form) when t unless case (form &rest (sexp body)) ecase do ((&rest &or symbolp (symbolp &optional form form)) (form body) cl-declarations body) do* dolist ((symbolp form &optional form) cl-declarations body) dotimes do-symbols ((symbolp &optional form form) cl-declarations body) do-all-symbols ((symbolp &optional form) cl-declarations body) multiple-value-list (form) multiple-value-call (function-form body) multiple-value-bind ((&rest symbolp) form cl-declarations body) multiple-value-setq ((&rest symbolp) form) multiple-value-prog1 (form body) lexical-let let lexical-let* psetq setq progv (form form body) flet ((&rest (defun*)) cl-declarations body) labels macrolet ((&rest (&define name (&rest arg) cl-declarations-or-string def-body)) cl-declarations body) symbol-macrolet ((&rest (symbol sexp)) cl-declarations body) destructuring-bind (&define cl-macro-list form cl-declarations def-body) setf (&rest [place form]) psetf letf ((&rest (gate place &optional form)) body) letf* defsetf (&define name [&or [symbolp &optional stringp] [cl-lambda-list (symbolp)]] cl-declarations-or-string def-body) define-setf-method (&define name cl-lambda-list cl-declarations-or-string def-body) define-modify-macro (&define name cl-lambda-list symbolp &optional stringp) callf (function* place &rest form) callf2 (function* form place &rest form) remf (place form) incf (place &optional form) decf push (form place) pushnew (form place &rest &or [[&or ":test" ":test-not" ":key"] function-form] [edebug-keywordp form]) pop (place) shiftf (&rest place) rotatef (&rest place) some (function-form form &rest form) every notany notevery map (form function-form form &rest form) maplist (function-form form &rest form) mapc mapl mapcan mapcon reduce (function-form form &rest form) cl-type-spec (sexp) deftype defmacro* check-type (place cl-type-spec &optional stringp) assert (form &rest form) typecase (form &rest ([&or cl-type-spec "otherwise"] body)) etypecase ignore-errors eval-when ((&rest &or "compile" "load" "eval") body) load-time-value (form &optional &or "t" "nil") cl-decl-spec ((symbolp &rest sexp)) cl-declarations (&rest ("declare" &rest cl-decl-spec)) cl-declarations-or-string (&or stringp cl-declarations) declaim (&rest cl-decl-spec) declare (&rest cl-decl-spec) locally (cl-declarations &rest form) the (cl-type-spec form) cl-lambda-list (([&rest arg] [&optional ["&optional" cl-&optional-arg &rest cl-&optional-arg]] [&optional ["&rest" arg]] [&optional ["&key" [cl-&key-arg &rest cl-&key-arg] &optional "&allow-other-keywords"]] [&optional ["&aux" &rest &or (symbolp &optional def-form) symbolp]])) cl-&optional-arg (&or (arg &optional def-form arg) arg) cl-&key-arg (&or ([&or (symbolp arg) arg] &optional def-form arg) arg) cl-macro-list (([&optional "&environment" arg] [&rest cl-macro-arg] [&optional ["&optional" &rest &or (cl-macro-arg &optional def-form cl-macro-arg) arg]] [&optional [[&or "&rest" "&body"] cl-macro-arg]] [&optional ["&key" [&rest [&or ([&or (symbolp cl-macro-arg) arg] &optional def-form cl-macro-arg) arg]] &optional "&allow-other-keywords"]] [&optional ["&aux" &rest &or (symbolp &optional def-form) symbolp]] [&optional "&environment" arg])) cl-macro-arg (&or arg cl-macro-list1) cl-macro-list1 (([&optional "&whole" arg] [&rest cl-macro-arg] [&optional ["&optional" &rest &or (cl-macro-arg &optional def-form cl-macro-arg) arg]] [&optional [[&or "&rest" "&body"] cl-macro-arg]] [&optional ["&key" [&rest [&or ([&or (symbolp cl-macro-arg) arg] &optional def-form cl-macro-arg) arg]] &optional "&allow-other-keywords"]] [&optional ["&aux" &rest &or (symbolp &optional def-form) symbolp]] . [&or arg nil])) defun* (&define [&or name ("setf" :name setf name)] cl-lambda-list cl-declarations-or-string [&optional ("interactive" interactive)] def-body) defsubst* (&define name cl-macro-list cl-declarations-or-string def-body) define-compiler-macro function* (&or symbolp cl-lambda-expr) cl-lambda-expr (&define ("lambda" cl-lambda-list def-body)) function-form (&or ([&or "quote" "function"] &or symbolp lambda-expr) ("function*" cl-lambda-expr) form) defstruct (&define [&or symbolp (gate symbolp &rest (&or [":conc-name" &or stringp "nil"] [":constructor" symbolp &optional cl-lambda-list] [":copier" symbolp] [":predicate" symbolp] [":include" symbolp &rest sexp]))] [&optional stringp] &rest &or symbolp (symbolp def-form &optional ":read-only" sexp)) loop (&rest &or symbolp form) ([&optional ["named" symbolp]] [&rest &or ["repeat" form] loop-for-as loop-with loop-initial-final] [&rest loop-clause]) loop-with ("with" loop-var loop-type-spec [&optional ["=" form]] &rest ["and" loop-var loop-type-spec [&optional ["=" form]]]) loop-for-as ([&or "for" "as"] loop-for-as-subclause &rest ["and" loop-for-as-subclause]) loop-for-as-subclause (loop-var loop-type-spec &or [[&or "in" "on" "in-ref" "across-ref"] form &optional ["by" function-form]] ["=" form &optional ["then" form]] ["across" form] ["being" [&or "the" "each"] &or [[&or "element" "elements"] [&or "of" "in" "of-ref"] form &optional "using" ["index" symbolp]] [[&or "hash-key" "hash-keys" "hash-value" "hash-values"] [&or "of" "in"] hash-table-p &optional ["using" ([&or "hash-value" "hash-values" "hash-key" "hash-keys"] sexp)]] [[&or "symbol" "present-symbol" "external-symbol" "symbols" "present-symbols" "external-symbols"] [&or "in" "of"] package-p] [[&or "frame" "frames" "screen" "screens" "buffer" "buffers"]] [[&or "window" "windows"] [&or "of" "in"] form] [[&or "overlay" "overlays" "extent" "extents"] [&or "of" "in"] form &optional [[&or "from" "to"] form]] [[&or "interval" "intervals"] [&or "in" "of"] form &optional [[&or "from" "to"] form] ["property" form]] [[&or "key-code" "key-codes" "key-seq" "key-seqs" "key-binding" "key-bindings"] [&or "in" "of"] form &optional ["using" ([&or "key-code" "key-codes" "key-seq" "key-seqs" "key-binding" "key-bindings"] sexp)]] [symbolp &rest &or symbolp form]] [[&optional [[&or "from" "downfrom" "upfrom"] form]] [&optional [[&or "to" "downto" "upto" "below" "above"] form]] [&optional ["by" form]]]) loop-initial-final (&or ["initially" &rest loop-non-atomic-expr] ["finally" &or [[&optional &or "do" "doing"] &rest loop-non-atomic-expr] ["return" form]]) loop-and-clause (loop-clause &rest ["and" loop-clause]) loop-clause (&or [[&or "while" "until" "always" "never" "thereis"] form] [[&or "collect" "collecting" "append" "appending" "nconc" "nconcing" "concat" "vconcat"] form [&optional ["into" loop-var]]] [[&or "count" "counting" "sum" "summing" "maximize" "maximizing" "minimize" "minimizing"] form [&optional ["into" loop-var]] loop-type-spec] [[&or "if" "when" "unless"] form loop-and-clause [&optional ["else" loop-and-clause]] [&optional "end"]] [[&or "do" "doing"] &rest loop-non-atomic-expr] ["return" form] loop-initial-final) loop-non-atomic-expr ([¬ atom] form) loop-var (&or (loop-var . [&or nil loop-var]) [gate symbolp]) loop-type-spec (&optional ["of-type" loop-d-type-spec]) loop-d-type-spec (&or (loop-d-type-spec . [&or nil loop-d-type-spec]) cl-type-spec)] 4)