Basic constructor macro for vl-ansi-portdecl structures.
(make-vl-ansi-portdecl [:name <name>] [:loc <loc>] [:dir <dir>] [:typename <typename>] [:type <type>] [:pdims <pdims>] [:udims <udims>] [:nettype <nettype>] [:varp <varp>] [:modport <modport>] [:signedness <signedness>] [:atts <atts>])
This is the usual way to construct vl-ansi-portdecl structures. It simply conses together a structure with the specified fields.
This macro generates a new vl-ansi-portdecl structure from scratch. See also change-vl-ansi-portdecl, which can "change" an existing structure, instead.
This is an ordinary
Macro:
(defmacro make-vl-ansi-portdecl (&rest args) (std::make-aggregate 'vl-ansi-portdecl args '((:name) (:loc) (:dir) (:typename) (:type) (:pdims) (:udims) (:nettype) (:varp) (:modport) (:signedness) (:atts)) 'make-vl-ansi-portdecl nil))
Function:
(defun vl-ansi-portdecl (name loc dir typename type pdims udims nettype varp modport signedness atts) (declare (xargs :guard (and (stringp name) (vl-location-p loc) (vl-maybe-direction-p dir) (maybe-stringp typename) (vl-maybe-datatype-p type) (vl-dimensionlist-p pdims) (vl-dimensionlist-p udims) (vl-maybe-nettypename-p nettype) (booleanp varp) (maybe-stringp modport) (vl-maybe-exprsign-p signedness) (vl-atts-p atts)))) (declare (xargs :guard t)) (let ((__function__ 'vl-ansi-portdecl)) (declare (ignorable __function__)) (b* ((name (mbe :logic (str-fix name) :exec name)) (loc (mbe :logic (vl-location-fix loc) :exec loc)) (dir (mbe :logic (vl-maybe-direction-fix dir) :exec dir)) (typename (mbe :logic (maybe-string-fix typename) :exec typename)) (type (mbe :logic (vl-maybe-datatype-fix type) :exec type)) (pdims (mbe :logic (vl-dimensionlist-fix pdims) :exec pdims)) (udims (mbe :logic (vl-dimensionlist-fix udims) :exec udims)) (nettype (mbe :logic (vl-maybe-nettypename-fix nettype) :exec nettype)) (varp (mbe :logic (acl2::bool-fix varp) :exec varp)) (modport (mbe :logic (maybe-string-fix modport) :exec modport)) (signedness (mbe :logic (vl-maybe-exprsign-fix signedness) :exec signedness)) (atts (mbe :logic (vl-atts-fix atts) :exec atts))) (cons :vl-ansi-portdecl (list (cons 'name name) (cons 'loc loc) (cons 'dir dir) (cons 'typename typename) (cons 'type type) (cons 'pdims pdims) (cons 'udims udims) (cons 'nettype nettype) (cons 'varp varp) (cons 'modport modport) (cons 'signedness signedness) (cons 'atts atts))))))