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