Event generated by defmacro+.
Function:
(defun defmacro+-fn (name args rest) (declare (xargs :guard (and (symbolp name) (true-listp rest)))) (if (symbolp name) (mv-let (alist rest) (defmacro+-find-parents/short/long rest) (let ((parents-pair (assoc-eq :parents alist)) (short-pair (assoc-eq :short alist)) (long-pair (assoc-eq :long alist)) (name-ref (concatenate 'string (symbol-package-name name) "::" (symbol-name name)))) (cons 'defsection (cons name (append (and parents-pair (list :parents (cdr parents-pair))) (append (and short-pair (list :short (cdr short-pair))) (append (if long-pair (list :long (cons 'concatenate (cons ''string (cons (cdr long-pair) (cons '"@(def " (cons name-ref '(")"))))))) (list :long (cons 'concatenate (cons ''string (cons '"@(def " (cons name-ref '(")"))))))) (cons (cons 'defmacro (cons name (cons args rest))) 'nil)))))))) (er hard? 'defmacro+ "The first argument ~x0 must be a symbol." name)))