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