[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Top] | [Table des matières] | [Index] | [ ? ] |
It may be easier to understand Edebug specifications by studying the examples provided here.
A 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 gate
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 defun
and
defmacro
and the associated argument list and interactive
specifications. It is necessary to handle interactive forms specially since
an expression argument is actually evaluated outside of the function body.
(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))
|
Ce document a été généré par Eric Reinbold le 13 Octobre 2007 en utilisant texi2html 1.78.