diff options
author | Miles Bader <miles@gnu.org> | 2004-04-12 05:43:12 +0000 |
---|---|---|
committer | Miles Bader <miles@gnu.org> | 2004-04-12 05:43:12 +0000 |
commit | a2295d3268e1fb597bf8d7343a3474f11011f9e3 (patch) | |
tree | c0ef3f6c38c6485c7b3f8863d17f290bb87856e4 /lispref/macros.texi | |
parent | 888101d654bfb62769e15778c0666ae438e0f49e (diff) | |
download | emacs-a2295d3268e1fb597bf8d7343a3474f11011f9e3.tar.gz |
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-205
Add macroexpand-all to lisp reference manual
Diffstat (limited to 'lispref/macros.texi')
-rw-r--r-- | lispref/macros.texi | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/lispref/macros.texi b/lispref/macros.texi index 53f082cf46c..b940125cb87 100644 --- a/lispref/macros.texi +++ b/lispref/macros.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998 Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 2004 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/macros @node Macros, Customization, Functions, Top @@ -137,6 +137,28 @@ uses this feature. @end smallexample @end defun + +@defun macroexpand-all form &optional environment +@cindex macro expansion in entire form + +@code{macroexpand-all} expands macros like @code{macroexpand}, but +will look for and expand all macros in @var{form}, not just at the +top-level. + +In emacs-lisp, @code{macroexpand-all} guarantees that if no macros +are expanded, the return value will be @code{eq} to @var{form}. + +Repeating the example used for @code{macroexpand} above with +@code{macroexpand-all}, we see that @code{macroexpand-all} @emph{does} +expand the embedded calls to @code{inc}: + +@smallexample +(macroexpand-all '(inc2 r s)) + @result{} (progn (setq r (1+ r)) (setq s (1+ s))) +@end smallexample + +@end defun + @node Compiling Macros @section Macros and Byte Compilation @cindex byte-compiling macros |