Generate an XDOC topic for the implementation of an event macro.
The topic lists the names used for arguments and results of functions,
along with brief descriptions of the names.
This listing consists of bullets in an unordered list.
The
We also provide some named constants for certain common items,
like the
If there are no items, the list is omitted altogether.
This macro also provides a
This macro also provides a
Macro:
(defmacro xdoc::evmac-topic-implementation (macro &key items default-parent additional) (declare (xargs :guard (symbolp macro))) (b* ((macro-name (string-downcase (symbol-name macro))) (macro-ref (concatenate 'string "@(tsee " macro-name ")")) (this-topic (add-suffix macro "-IMPLEMENTATION")) (parent-topic macro) (short (concatenate 'string "Implementation of " macro-ref ".")) (long (and (or items additional) (cons 'xdoc::topstring (cons '(xdoc::p "The implementation functions have arguments and results consistently named as follows (unless otherwise stated, explicitly or implicitly, in the functions):") (cons (cons 'xdoc::ul (xdoc::evmac-topic-implementation-li-wrap items)) (cons '(xdoc::p "Implementation functions' arguments and results that are not listed above are described in, or clear from, those functions' documentation.") additional))))))) (cons 'defxdoc+ (cons this-topic (cons ':parents (cons (cons parent-topic 'nil) (cons ':short (cons short (append (and long (list :long long)) (cons ':order-subtopics (cons 't (cons ':default-parent (cons default-parent 'nil)))))))))))))
Function:
(defun xdoc::evmac-topic-implementation-li-wrap (items) (declare (xargs :guard (true-listp items))) (let ((__function__ 'xdoc::evmac-topic-implementation-li-wrap)) (declare (ignorable __function__)) (cond ((endp items) nil) (t (cons (cons 'xdoc::li (cons (car items) 'nil)) (xdoc::evmac-topic-implementation-li-wrap (cdr items)))))))
Theorem:
(defthm xdoc::true-listp-of-evmac-topic-implementation-li-wrap (b* ((li-wrapped-items (xdoc::evmac-topic-implementation-li-wrap items))) (true-listp li-wrapped-items)) :rule-classes :rewrite)
Function:
(defun xdoc::evmac-topic-implementation-item-input (name) (declare (xargs :guard (stringp name))) (let ((__function__ 'xdoc::evmac-topic-implementation-item-input)) (declare (ignorable __function__)) (xdoc::&& "@('" name "') is the homonymous input to the event macro.")))
Function:
(defun xdoc::evmac-topic-implementation-item-input-untyped/typed (name) (declare (xargs :guard (stringp name))) (let ((__function__ 'xdoc::evmac-topic-implementation-item-input-untyped/typed)) (declare (ignorable __function__)) (xdoc::&& "@('" name "') is the homonymous input to the event macro if it has no type; otherwise, it is the (possibly different) typed value resulting from processing that input.")))
Function:
(defun xdoc::evmac-topic-implementation-item-fn-doc (name) (declare (xargs :guard (stringp name))) (let ((__function__ 'xdoc::evmac-topic-implementation-item-fn-doc)) (declare (ignorable __function__)) (xdoc::&& "@('" name "') is the homonymous function symbol " "described in the user documentation.")))
Function:
(defun xdoc::evmac-topic-implementation-item-thm-doc (name) (declare (xargs :guard (stringp name))) (let ((__function__ 'xdoc::evmac-topic-implementation-item-thm-doc)) (declare (ignorable __function__)) (xdoc::&& "@('" name "') is the homonymous theorem symbol " "described in the user documentation.")))
Function:
(defun xdoc::evmac-topic-implementation-item-var-doc (name) (declare (xargs :guard (stringp name))) (let ((__function__ 'xdoc::evmac-topic-implementation-item-var-doc)) (declare (ignorable __function__)) (xdoc::&& "@('" name "') is the homonymous variable symbol " "described in the user documentation.")))