Basic constructor macro for dirdeclor-array structures.
(make-dirdeclor-array [:decl <decl>] [:tyquals <tyquals>] [:expr? <expr?>])
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 '((:decl) (:tyquals) (:expr?)) 'make-dirdeclor-array nil))
Function:
(defun dirdeclor-array (decl tyquals expr?) (declare (xargs :guard (and (dirdeclorp decl) (type-qual-listp tyquals) (expr-optionp expr?)))) (declare (xargs :guard t)) (let ((__function__ 'dirdeclor-array)) (declare (ignorable __function__)) (b* ((decl (mbe :logic (dirdeclor-fix decl) :exec decl)) (tyquals (mbe :logic (type-qual-list-fix tyquals) :exec tyquals)) (expr? (mbe :logic (expr-option-fix expr?) :exec expr?))) (cons :array (list decl tyquals expr?)))))