%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/share/emacs/27.2/lisp/emacs-lisp/
Upload File :
Create Path :
Current File : //usr/local/share/emacs/27.2/lisp/emacs-lisp/macroexp.elc

;ELC
;;; Compiled
;;; in Emacs version 27.2
;;; with all optimizations.

;;; This file contains utf-8 non-ASCII characters,
;;; and so cannot be loaded into Emacs 22 or earlier.
(and (boundp 'emacs-version)
     (< (aref emacs-version (1- (length emacs-version))) ?A)
     (string-lessp emacs-version "23")
     (error "`%s' was compiled for Emacs 23 or later" #$))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(defvar macroexpand-all-environment nil)
#@137 Return ORIGINAL-CONS if the car/cdr of it is `eq' to CAR and CDR, respectively.
If not, return (CAR . CDR).

(fn CAR CDR ORIGINAL-CONS)
(defalias 'macroexp--cons #[771 "@=\203A=\203\207B\207" [] 5 (#$ . 450)])
#@377 Return a list of the results of evaluating BODY for each element of LIST.
Evaluate BODY with VAR bound to each `car' from LIST, in turn.
Return a list of the values of the final form in BODY.
The list structure of the result will share as much with LIST as
possible (for instance, when BODY just returns VAR unchanged, the
result will be eq to LIST).

(fn (VAR LIST) BODY...)
(defalias 'macroexp--accumulate '(macro . #[385 "@A@\300\301!\300\302!\300\303!\300\304!\305D\306BD	\257\307\310D\311\n\312D\313B\257\314\315\fE\307\316\315
\fED\317\320D
EE\311\f\321DE\317\n
E\257\311\321\nDE\257\322\323DEF\207" [make-symbol "shared" "unshared" "tail" "new-el" let* (nil) while consp setq car progn unless eq not push pop cdr nconc nreverse] 20 (#$ . 677)]))
(byte-code "\300\301\302\303#\300\207" [function-put macroexp--accumulate lisp-indent-function 1] 4)
#@170 Return FORMS with macros expanded.  FORMS is a list of forms.
If SKIP is non-nil, then don't expand that many elements at the start of
FORMS.

(fn FORMS &optional SKIP)
(defalias 'macroexp--all-forms #[513 "\300\300\211:\203N@\262\203\301U\203\302!\202#S\262\262=\204G=\204>\211A\262\242B\262\202+A\262\211B\262A\262\202\237\244\207" [nil 0 macroexp--expand-all] 9 (#$ . 1581)])
#@231 Return CLAUSES with macros expanded.
CLAUSES is a list of lists of forms; any clause that's not a list is ignored.
If SKIP is non-nil, then don't expand that many elements at the start of
each clause.

(fn CLAUSES &optional SKIP)
(defalias 'macroexp--all-clauses #[513 "\300\300\211:\203G@\262<\203\301\"\202\262=\204@=\2047\211A\262\242B\262\202$A\262\211B\262A\262\202\237\244\207" [nil macroexp--all-forms] 10 (#$ . 2006)])
#@21 

(fn HANDLER FORM)
(defalias 'macroexp--compiler-macro #[514 "\3001\f\301\211A#0\207\302\303@#\210\207" [(debug error) apply message "Compiler-macro error for %S: %S"] 7 (#$ . 2476)])
#@278 Pseudo function used internally by macroexp to delay warnings.
The purpose is to delay warnings to bytecomp.el, so they can use things
like `byte-compile-warn' to get better file-and-line-number data
and also to avoid outputting the warning during normal execution.

(fn FORM)
(defalias 'macroexp--funcall-if-compiled #[257 "\300\207" [nil] 2 (#$ . 2674)])
(put 'macroexp--funcall-if-compiled 'byte-compile #[257 "\300A@! \210\301\302!\207" [eval byte-compile-constant nil] 3 "\n\n(fn FORM)"])
#@58 Return non-nil if we're macroexpanding for the compiler.
(defalias 'macroexp--compiling-p #[0 "\301\235\207" [macroexpand-all-environment (declare-function . byte-compile-macroexpand-declare-function)] 2 (#$ . 3175)])
(defvar macroexp--warned (make-hash-table :test 'equal :weakness 'key))
#@40 

(fn MSG FORM &optional COMPILE-ONLY)
(defalias 'macroexp--warn-and-return #[770 "\302\303\304\305\306!\307\"\310$\204\202N\311 \2035\312\"\203$\202N\313\211#\210\314\315\316DDE\202N\204M\317\320	;\203H\321	!\322P\202I\323#\210\207" [macroexp--warned load-file-name make-byte-code 0 "\301\302\300\"\207" vconcat vector [byte-compile-warn "%s"] 3 macroexp--compiling-p gethash puthash progn macroexp--funcall-if-compiled quote message "%s%s" file-relative-name ": " ""] 9 (#$ . 3472)])
#@35 

(fn FUN OBSOLESCENCE-DATA TYPE)
(defalias 'macroexp--obsolete-warning #[771 "@\3008\301\302\203\303\304Q\202\305;\203%\306\307!P\2023\2032\301\310\"\2023\311%\207" [2 format-message "`%s' is an obsolete %s%s%s" " (as of " ")" "" "; " substitute-command-keys "; use `%s' instead." "."] 13 (#$ . 3989)])
#@80 Perform (at most) one step of macroexpansion.

(fn FORM &optional ENVIRONMENT)
(defalias 'macroexpand-1 #[513 ":\203e@\211\236\211\203 \211A\203\300AA\"\202d\202d9\203+\301!\204/\202d\302K\303#\2119\203G\304!\203G\211AB\202b\211:\204P\202b\211@\303=\203a\300AA\"\202b\262\207\207" [apply fboundp autoload-do-load macro macrop] 8 (#$ . 4322)])
#@62 Like `macroexpand' but checking obsolescence.

(fn FORM ENV)
(defalias 'macroexp-macroexpand #[514 "\300\"=\204F\242\203F@9\203F@\301N\203F\302\303!\203*\303\304@\"\203F@\211\301N\305\306K9\203=\307\202>\310#\"\266\202\202G\211\207" [macroexpand byte-obsolete-info fboundp byte-compile-warning-enabled-p obsolete macroexp--warn-and-return macroexp--obsolete-warning "alias" "macro"] 10 (#$ . 4707)])
#@149 Expand all macros in FORM.
This is an internal version of `macroexpand-all'.
Assumes the caller has bound `macroexpand-all-environment'.

(fn FORM)
(defalias 'macroexp--expand-all #[257 "\211C\211\242\242\301=\203\302\303\242\304\"\"\202\237\211\305\242\"\240\210\306\307\310\311\312\242:\203\233\242@\211\313\267\202\f\242A\211\314\315\316!\242#\262\262\202\226\242A\211:\203v\211@A\211:\203j\211@A\f$\266\202\202q\n\317\211\211$\266\202\202}\317\211\211$\262\202\226\303\242\320\"\202\226\242A\211:\203\330\211@\211:\203\320\211@\211\321=\203\310A\211\204\300\314\322\314\303\320\"\317\242A#\242#\262\202\303\n\242\262\202\313	\242\262\202\323\242\262\202\333\242\262\202\226\242\202\226\242A\211:\203\211@A\n$\266\202\202\317\211$\262\202\226\211:\203<\211@\211\321=\2032\242A\211\314\303\320\"\303!
\242#\266\202\262\2027\"\262\202\226\211\323\267\202\221\242A\211:\203\334\211@\211:\2036\211@\211\324=\203>A\211:\203\225\211@\211:\203\354\211@\211\321=\203BA\211\204\227A\211\n\325\326\327\321A@\330E\"\331BB!\"\266\203\262\202=\332=\2036A\211:\203*\211@\211:\203\211@\211\324=\203A\211:\203\211@\211:\203\372\211@\211\321=\203\356A\211\204\342A$\262\202\351\"\262\202\365\"\262\202\"\262\202

\"\262\202
\f\"\262\202%\f\"\262\2021\n\"\262\202=\n	\"\262\202\347\332=\203\340A\211:\203\324\211@\211:\203\310\211@\211\324=\203\274A\211:\203\260\211@\211:\203\244\211@\211\321=\203\230A\211\204\214A$\262\202\223\"\262\202\237\"\262\202\253
\"\262\202\267
\f\"\262\202\303\f\"\262\202\317\n\"\262\202\333\n	\"\262\202\347	
\"\262\202\220\332=\203\211A\211:\203}\211@\211:\203q\211@\211\324=\203eA\211:\203Y\211@\211:\203M\211@\211\321=\203AA\211\2045A$\262\202<\"\262\202H
\"\262\202T
\f\"\262\202`\f\"\262\202l\n\"\262\202x\n	\"\262\202\204	
\"\262\202\220\f\"\262\2029\332=\2032A\211:\203&\211@\211:\203\211@\211\324=\203A\211:\203\211@\211:\203\366\211@\211\321=\203\352A\211\204\336A
$\262\202\345
\"\262\202\361
\f\"\262\202\375\f\"\262\202	\n\"\262\202\n	\"\262\202!	
\"\262\202-\f\"\262\2029\"\262\2021\332=\203\333A\211:\203\317\211@\211:\203\303\211@\211\324=\203\267A\211:\203\253\211@\211:\203\237\211@\211\321=\203\223A\211\204\207A\f$\262\202\216
\f\"\262\202\232\f\"\262\202\246\n\"\262\202\262\n	\"\262\202\276	
\"\262\202\312\f\"\262\202\326\"\262\2021\333=\203\347\211\322=\204\360\n\"\2021A\211:\203(\211@\2119\203A\211\204A\f\"\262\202	
\"\262\202#\f\"\262\202/\"\262\262\202\327\332=\203\322A\211:\203\307\211@\211:\203\273\211@\211\324=\203\257A\211:\203\243\211@\211:\203\227\211@\211\321=\203\213A\211\204A$\262\202\206\f\"\262\202\222\n\"\262\202\236\n	\"\262\202\252	
\"\262\202\266\f\"\262\202\302\"\262\202\315\n\"\262\202\327	\"\262\202\341\"\262\202\226\242A\211:\203\207\211@A\211:\203|\211@\211:\203p\211@\211\324=\203dA\211:\203X\211@\211:\203L\211@\211\321=\203@A\211\2044A$\262\202;\f\"\262\202G\n\"\262\202S\n	\"\262\202_	
\"\262\202k\f\"\262\202w\"\262\202\202\n\"\266\202\202\214\"\262\202\226\"\262\202\235\242\266\205\207" [macroexpand-all-environment backquote-list* macroexpand macroexp--all-forms 1 macroexp-macroexpand #[514 "\300B!\207" [macroexp--expand-all] 5 "\n\n(fn ARGS F)"] #[1028 "\300\301\302\303A@\304E\"\305	BBB!\"\207" [macroexp--warn-and-return format "%s quoted with ' rather than with #'" lambda \.\.\. macroexp--expand-all] 11 "\n\n(fn ARGS F ARG1 FUN)"] #[514 "\300\301\"\211\204\302\242\303\"\202g\304!\204+\3051$\306\307!\"0\202*\310\311\"\262\210\312\242\"\242=\203b\242\302\242\303\"\211\262\232\203J\242\202e\312\"\240\210\211\242=\203\\\211\202e\313!\202e\313!\262\207" [function-get compiler-macro macroexp--all-forms 1 functionp (debug error) autoload-do-load indirect-function message "macroexp--expand-all: %S" macroexp--compiler-macro macroexp--expand-all] 8 "\n\n(fn FORM FUNC)"] #[1028 "\300\300\301\302\"\303!\242A#\242#\207" [macroexp--cons macroexp--all-clauses 1 macroexp--all-forms] 10 "\n\n(fn FORM BODY BINDINGS FUN)"] #[1028 "\300\301\300\300\302!\303	\304\"\n\242AA#\242A#\242#\207" [macroexp--cons condition-case macroexp--expand-all macroexp--all-clauses 1] 13 "\n\n(fn FORM HANDLERS BODY ERR)"] #s(hash-table size 8 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (cond 49 condition-case 70 defconst 130 defvar 130 function 139 quote 224 let* 230 let 230)) macroexp--cons cond macroexp--all-clauses nil 2 lambda function #s(hash-table size 7 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (mapc 322 mapconcat 322 mapatoms 322 mapcar 322 apply 322 funcall 322 sort 1510)) quote macroexp--warn-and-return format "%s quoted with ' rather than with #'" \.\.\. macroexp--expand-all sort funcall] 28 (#$ . 5136)])
#@288 Return result of expanding macros at all levels in FORM.
If no macros are expanded, FORM is returned unchanged.
The second optional arg ENVIRONMENT specifies an environment of macro
definitions to shadow the loaded ones for use in file byte-compilation.

(fn FORM &optional ENVIRONMENT)
(defalias 'macroexpand-all #[513 "\211\301!)\207" [macroexpand-all-environment macroexp--expand-all] 4 (#$ . 10574)])
#@62 Parse a function BODY into (DECLARATIONS . EXPS).

(fn BODY)
(defalias 'macroexp-parse-body #[257 "\300A\203#@\211;\206\211\242\301>\262\203#\211A\262\242B\262\202\211\237B\207" [nil (:documentation declare interactive cl-declare)] 5 (#$ . 10987)])
#@183 Return EXPS (a list of expressions) with `progn' prepended.
If EXPS is a list with a single expression, `progn' is not
prepended, but that expression is returned instead.

(fn EXPS)
(defalias 'macroexp-progn #[257 "\211A\203	\300B\207\211@\207" [progn] 3 (#$ . 11257)])
#@100 Turn EXP into a list of expressions to execute in sequence.
Never returns an empty list.

(fn EXP)
(defalias 'macroexp-unprogn #[257 "\211\242\300=\203\211A\206\301\207\211C\207" [progn (nil)] 3 (#$ . 11536)])
#@81 Return an expression equivalent to \=`(let* ,BINDINGS ,EXP).

(fn BINDINGS EXP)
(defalias 'macroexp-let* #[514 "\204\207\211\242\300=\203\300\301A@\"AABB\207\300E\207" [let* append] 6 (#$ . 11756)])
#@84 Return an expression equivalent to \=`(if ,TEST ,THEN ,ELSE).

(fn TEST THEN ELSE)
(defalias 'macroexp-if #[771 "\211\242\300=\203Q\3018\232\203\300\302A@E\303\233BBB\207\304!\303\233\232\203;\300\302\305A@DE\304\3018!BBB\207\306\304!BA@\304\3018!B\307\303\233BF\207\211\242\306=\203c\306\304!BABB\207\242\310>\203r\311\305D#\207\300\304!BBB\207" [if 2 or 3 macroexp-unprogn not cond t (if cond) macroexp-if] 9 (#$ . 11971)])
#@1136 Evaluate BODY with SYM bound to an expression for EXP's value.
The intended usage is that BODY generates an expression that
will refer to EXP's value multiple times, but will evaluate
EXP only once.  As BODY generates that expression, it should
use SYM to stand for the value of EXP.

If EXP is a simple, safe expression, then SYM's value is EXP itself.
Otherwise, SYM's value is a symbol which holds the value produced by
evaluating EXP.  The return value incorporates the value of BODY, plus
additional code to evaluate EXP once and save the result so SYM can
refer to it.

If BODY consists of multiple forms, they are all evaluated
but only the last one's value matters.

TEST is a predicate to determine whether EXP qualifies as simple and
safe; if TEST is nil, only constant expressions qualify.

Example:
 (macroexp-let2 nil foo EXP
   \=`(* ,foo ,foo))
generates an expression that evaluates EXP once,
then returns the square of that value.
You could do this with
  (let ((foovar EXP))
    (* foovar foovar))
but using `macroexp-let2' produces more efficient code in
cases where EXP is a constant.

(fn TEST SYM EXP &rest BODY)
(defalias 'macroexp-let2 '(macro . #[899 "\300\301!\300\302!\303D\304\305\306\206\307DE\300\310\f!DFD\311!DE\304\312E\313\314\211\f	EDEFE\207" [make-symbol "body" "exp" let* if funcall function macroexp-const-p symbol-name macroexp-progn eq macroexp-let* list] 16 (#$ . 12438)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put macroexp-let2 lisp-indent-function 3 put edebug-form-spec (sexp sexp form body)] 5)
#@202 Multiple binding version of `macroexp-let2'.

BINDINGS is a list of elements of the form (SYM EXP).  Each EXP
can refer to symbols specified earlier in the binding list.

(fn TEST BINDINGS &rest BODY)
(defalias 'macroexp-let2* '(macro . #[642 "\204\300!\207:\203e@\211:\203]\211@A\211:\203Q\211@A\211\204DA\211\301\f\302BBB\257\266\203\262\202L\303\304\"\262\266\202\202X\303\304\"\262\266\202\202d\303\304\"\262\207\303\304\"\207" [macroexp-progn macroexp-let2 macroexp-let2* error "No clause matching `%S'"] 20 (#$ . 14033)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put macroexp-let2* lisp-indent-function 2 put edebug-form-spec (sexp (&rest (sexp form)) body)] 5)
#@17 

(fn EXP SIZE)
(defalias 'macroexp--maxsize #[514 "\211\300W\203\2079\203\211S\207;\203\211G\301\245Z\207\302!\203@G\300\211W\203;\211\303H\"\262\210\211T\262\202$\266\211S\207:\203]\211\203Y\211@\303\"\262A\266\202\202F\210\211S\207\304\207" [0 16 vectorp macroexp--maxsize -1] 8 (#$ . 14772)])
#@58 Return non-nil if EXP can be considered small.

(fn EXP)
(defalias 'macroexp-small-p #[257 "\300\301\"\302V\207" [macroexp--maxsize 10 0] 4 (#$ . 15105)])
#@155 Non-nil if SYMBOL is constant.
If ANY-VALUE is nil, only return non-nil if the value of the symbol is the
symbol itself.

(fn SYMBOL &optional ANY-VALUE)
(defalias 'macroexp--const-symbol-p #[513 "\301>\206*\302!\206*\211\205*>\206*\303!\205*\3041(\211JL\210\3050\207\210\306\207" [byte-compile-const-variables (nil t) keywordp boundp (setting-constant) nil t] 4 (#$ . 15268)])
(put 'macroexp--const-symbol-p 'byte-optimizer 'byte-compile-inline-expand)
#@73 Return non-nil if EXP will always evaluate to the same value.

(fn EXP)
(defalias 'macroexp-const-p #[257 "\211:\203\211@\301=\206K\211@\302=\205\211A@9\207\2119\203J\211\303\304>\206I\305!\206I\211\205I>\206I\306!\205I\3071G\211JL\210\3030\207\210\310\207\310\207" [byte-compile-const-variables quote function nil (nil t) keywordp boundp (setting-constant) t] 5 (#$ . 15740)])
#@67 Return non-nil if EXP can be copied without extra cost.

(fn EXP)
(defalias 'macroexp-copyable-p #[257 "\2119\206\300!\207" [macroexp-const-p] 3 (#$ . 16142)])
#@138 Return an expression E such that `(eval E)' is V.

E is either V or (quote V) depending on whether V evaluates to
itself or not.

(fn V)
(defalias 'macroexp-quote #[257 "\211:\204\300!\204\2119\203\211\301>\203\207\302D\207" [keywordp (nil t) quote] 3 (#$ . 16312)])
#@55 Return the Elisp backtrace, more recent frames first.
(defalias 'macroexp--backtrace #[0 "\300\301\302!\211\205\211B\262T\211\262\262\204\237\207" [nil 0 backtrace-frame] 5 (#$ . 16595)])
#@14 

(fn FRAME)
(defalias 'macroexp--trim-backtrace-frame #[257 "\211:\205\230\211A\211:\205\226\211@\211\300\267\202\223A\211:\2050\211@\211:\205.\211@\211\301\302BD\262\262\262\262\202\224A\211:\205v\211@\211:\205t\211@A\211:\205r\211@\2119\204c\242\303=\203mA@9\203m\304\305BBD\202n\306\266\202\262\266\202\262\262\202\224A\211:\205\216\211@\211\307\310!D\262\262\262\202\224\311\262\262\207" [#s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (macroexpand 20 internal-macroexpand-for-load 53 load-with-code-conversion 123)) macroexpand (…) quote macroexpand-all (…) (macroexpand-all …) load file-name-nondirectory nil] 14 (#$ . 16800)])
#@60 Stack of files currently undergoing eager macro-expansion.
(defvar macroexp--pending-eager-loads nil (#$ . 17525))
(defvar macroexp--debug-eager nil)
#@20 

(fn FORM FULL-P)
(defalias 'internal-macroexpand-for-load #[514 "@\303=\203	\207	\203W	\235\203W\304\305\306\307\310 \"\"\311\312	!D\211\235A\235\211\203/\211\313C\241\210@\242\314=\203;A\262\n\203F\315\316!\210\202Q\317\320\321\322\237\323#\"\210\303B\207\3241o	B\211\203i\314!\202l\325!)0\207\317\326\"\210\207" [macroexp--pending-eager-loads load-file-name macroexp--debug-eager skip delq nil mapcar macroexp--trim-backtrace-frame macroexp--backtrace load file-name-nondirectory … macroexpand-all debug eager-macroexp-cycle message "Warning: Eager macro-expansion skipped due to cycle:\n  %s" mapconcat prin1-to-string " => " (error) macroexpand "Eager macro-expansion failure: %S"] 11 (#$ . 17681)])
(provide 'macroexp)

Zerion Mini Shell 1.0