Basic constructor macro for initer-list structures.
(make-initer-list [:elems <elems>] [:final-comma <final-comma>])
This is the usual way to construct initer-list structures. It simply conses together a structure with the specified fields.
This macro generates a new initer-list structure from scratch. See also change-initer-list, which can "change" an existing structure, instead.
This is an ordinary
Macro:
(defmacro make-initer-list (&rest args) (std::make-aggregate 'initer-list args '((:elems) (:final-comma)) 'make-initer-list nil))
Function:
(defun initer-list (elems final-comma) (declare (xargs :guard (and (desiniter-listp elems) (booleanp final-comma)))) (declare (xargs :guard t)) (let ((__function__ 'initer-list)) (declare (ignorable __function__)) (b* ((elems (mbe :logic (desiniter-list-fix elems) :exec elems)) (final-comma (mbe :logic (bool-fix final-comma) :exec final-comma))) (cons :list (list elems final-comma)))))