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