Buy the book!
|[ < ]||[ > ]||[ << ]||[ Up ]||[ >> ]||[Top]||[Contents]||[Index]||[ ? ]|
It may be easier to understand Edebug specifications by studying the examples provided here.
let special form has a sequence of bindings and a body. Each
of the bindings is either a symbol or a sublist with a symbol and
optional expression. In the specification below, notice the
inside of the sublist to prevent backtracking once a sublist is found.
(def-edebug-spec let ((&rest &or symbolp (gate symbolp &optional form)) body))
Edebug uses the following specifications for
defmacro and the associated argument list and
specifications. It is necessary to handle interactive forms specially
since an expression argument it is actually evaluated outside of the
(def-edebug-spec defmacro defun) ; Indirect ref to
The specification for backquote below illustrates how to match
dotted lists and use
nil to terminate recursion. It also
illustrates how components of a vector may be matched. (The actual
specification defined by Edebug does not support dotted lists because
doing so causes very deep recursion that could fail.)
(def-edebug-spec ` (backquote-form)) ; Alias just for clarity. (def-edebug-spec backquote-form (&or ([&or "," ",@"] &or ("quote" backquote-form) form) (backquote-form . [&or nil backquote-form]) (vector &rest backquote-form) sexp))
|webmaster donations bookstore||delorie software privacy|
|Copyright © 2003 by The Free Software Foundation||Updated Jun 2003|