Commit a2295d32 authored by Miles Bader's avatar Miles Bader
Browse files

Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-205

Add macroexpand-all to lisp reference manual
parent 888101d6
2004-04-12 Miles Bader <miles@gnu.org>
* macros.texi (Expansion): Add description of `macroexpand-all'.
2004-04-05 Jesper Harder <harder@ifa.au.dk>
* variables.texi (Variable Aliases): Mention
......
@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
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment