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