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