Basic constructor macro for struct-declon-member structures.
(make-struct-declon-member [:extension <extension>]
[:specquals <specquals>]
[:declors <declors>]
[:attribs <attribs>])
This is the usual way to construct struct-declon-member structures. It simply conses together a structure with the specified fields.
This macro generates a new struct-declon-member structure from scratch. See also change-struct-declon-member, which can "change" an existing structure, instead.
This is an ordinary
Macro:
(defmacro make-struct-declon-member (&rest args) (std::make-aggregate 'struct-declon-member args '((:extension) (:specquals) (:declors) (:attribs)) 'make-struct-declon-member nil))
Function:
(defun struct-declon-member (extension specquals declors attribs) (declare (xargs :guard (and (booleanp extension) (spec/qual-listp specquals) (struct-declor-listp declors) (attrib-spec-listp attribs)))) (declare (xargs :guard t)) (b* ((extension (mbe :logic (bool-fix extension) :exec extension)) (specquals (mbe :logic (spec/qual-list-fix specquals) :exec specquals)) (declors (mbe :logic (struct-declor-list-fix declors) :exec declors)) (attribs (mbe :logic (attrib-spec-list-fix attribs) :exec attribs))) (cons :member (cons (cons extension specquals) (cons declors attribs)))))