Function: macroexp-parse-body

macroexp-parse-body is a byte-compiled function defined in macroexp.el.gz.

Signature

(macroexp-parse-body BODY)

Documentation

Parse a function BODY into (DECLARATIONS . EXPS).

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/macroexp.el.gz
;;; Handy functions to use in macros.

(defun macroexp-parse-body (body)
  "Parse a function BODY into (DECLARATIONS . EXPS)."
  (let ((decls ()))
    (while
        (and body
             (let ((e (car body)))
               (or (and (stringp e)
                        ;; If there is only a string literal with
                        ;; nothing following, we consider this to be
                        ;; part of the body (the return value) rather
                        ;; than a declaration at this point.
                        (cdr body))
                   (memq (car-safe e)
                         '(:documentation declare interactive cl-declare)))))
      (push (pop body) decls))
    (cons (nreverse decls) body)))