Function: edebug-list-form
edebug-list-form is a byte-compiled function defined in edebug.el.gz.
Signature
(edebug-list-form CURSOR)
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/edebug.el.gz
(defun edebug-list-form (cursor)
;; Return an instrumented form built from the list form.
;; The after offset will be left in the cursor after processing the form.
(let ((head (edebug-top-element-required cursor "Expected elements")))
;; Skip the first offset.
(edebug-set-cursor cursor (edebug-cursor-expressions cursor)
(cdr (edebug-cursor-offsets cursor)))
(cond
((symbolp head)
(cond
((null head) nil) ; () is valid.
(t
(cons head (edebug-list-form-args
head (edebug-move-cursor cursor))))))
((consp head)
(if (eq (car head) '\,)
;; The head of a form should normally be a symbol or a lambda
;; expression but it can also be an unquote form to be filled
;; before evaluation. We evaluate the arguments anyway, on the
;; assumption that the unquote form will place a proper function
;; name (rather than a macro name).
(edebug-match cursor '(("," def-form) body))
;; Process anonymous function and args.
;; This assumes no anonymous macros.
(edebug-match-specs cursor '(lambda-expr body) 'edebug-match-specs)))
(t (edebug-syntax-error
"Head of list form must be a symbol or lambda expression")))
))