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