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