Basic constructor macro for vl-blockstmt structures.
(make-vl-blockstmt [:blocktype <blocktype>] [:stmts <stmts>] [:name <name>] [:atts <atts>] [:vardecls <vardecls>] [:paramdecls <paramdecls>] [:typedefs <typedefs>] [:imports <imports>] [:loaditems <loaditems>])
This is the usual way to construct vl-blockstmt structures. It simply conses together a structure with the specified fields.
This macro generates a new vl-blockstmt structure from scratch. See also change-vl-blockstmt, which can "change" an existing structure, instead.
This is an ordinary
Macro:
(defmacro make-vl-blockstmt (&rest args) (std::make-aggregate 'vl-blockstmt args '((:blocktype) (:stmts) (:name) (:atts) (:vardecls) (:paramdecls) (:typedefs) (:imports) (:loaditems)) 'make-vl-blockstmt nil))
Function:
(defun vl-blockstmt (blocktype stmts name atts vardecls paramdecls typedefs imports loaditems) (declare (xargs :guard (and (vl-blocktype-p blocktype) (vl-stmtlist-p stmts) (maybe-stringp name) (vl-atts-p atts) (vl-vardecllist-p vardecls) (vl-paramdecllist-p paramdecls) (vl-typedeflist-p typedefs) (vl-importlist-p imports) (vl-blockitemlist-p loaditems)))) (declare (xargs :guard t)) (let ((__function__ 'vl-blockstmt)) (declare (ignorable __function__)) (b* ((blocktype (mbe :logic (vl-blocktype-fix blocktype) :exec blocktype)) (stmts (mbe :logic (vl-stmtlist-fix stmts) :exec stmts)) (name (mbe :logic (maybe-string-fix name) :exec name)) (atts (mbe :logic (vl-atts-fix atts) :exec atts)) (vardecls (mbe :logic (vl-vardecllist-fix vardecls) :exec vardecls)) (paramdecls (mbe :logic (vl-paramdecllist-fix paramdecls) :exec paramdecls)) (typedefs (mbe :logic (vl-typedeflist-fix typedefs) :exec typedefs)) (imports (mbe :logic (vl-importlist-fix imports) :exec imports)) (loaditems (mbe :logic (vl-blockitemlist-fix loaditems) :exec loaditems))) (cons :vl-blockstmt (std::prod-cons (std::prod-cons (std::prod-cons blocktype stmts) (std::prod-cons name atts)) (std::prod-cons (std::prod-cons vardecls paramdecls) (std::prod-cons typedefs (std::prod-cons imports loaditems))))))))