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