Basic constructor macro for dirdeclor-array structures.
(make-dirdeclor-array [:declor <declor>]
[:qualspecs <qualspecs>]
[:size? <size?>])
This is the usual way to construct dirdeclor-array structures. It simply conses together a structure with the specified fields.
This macro generates a new dirdeclor-array structure from scratch. See also change-dirdeclor-array, which can "change" an existing structure, instead.
This is an ordinary
Macro:
(defmacro make-dirdeclor-array (&rest args) (std::make-aggregate 'dirdeclor-array args '((:declor) (:qualspecs) (:size?)) 'make-dirdeclor-array nil))
Function:
(defun dirdeclor-array (declor qualspecs size?) (declare (xargs :guard (and (dirdeclorp declor) (typequal/attribspec-listp qualspecs) (expr-optionp size?)))) (declare (xargs :guard t)) (b* ((declor (mbe :logic (dirdeclor-fix declor) :exec declor)) (qualspecs (mbe :logic (typequal/attribspec-list-fix qualspecs) :exec qualspecs)) (size? (mbe :logic (expr-option-fix size?) :exec size?))) (cons :array (cons declor (cons qualspecs size?)))))