summaryrefslogtreecommitdiff
path: root/lispref/macros.texi
diff options
context:
space:
mode:
authorMiles Bader <miles@gnu.org>2004-04-12 05:43:12 +0000
committerMiles Bader <miles@gnu.org>2004-04-12 05:43:12 +0000
commita2295d3268e1fb597bf8d7343a3474f11011f9e3 (patch)
treec0ef3f6c38c6485c7b3f8863d17f290bb87856e4 /lispref/macros.texi
parent888101d654bfb62769e15778c0666ae438e0f49e (diff)
downloademacs-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.texi24
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