Basic constructor macro for snippet-info structures.
(make-snippet-info [:name <name>] [:input-size <input-size>] [:output-size <output-size>] [:addr <addr>])
This is the usual way to construct snippet-info structures. It simply conses together a structure with the specified fields.
This macro generates a new snippet-info structure from scratch. See also change-snippet-info, which can "change" an existing structure, instead.
This is an ordinary
Macro:
(defmacro make-snippet-info (&rest args) (std::make-aggregate 'snippet-info args '((:name) (:input-size) (:output-size) (:addr)) 'make-snippet-info nil))
Function:
(defun snippet-info (name input-size output-size addr) (declare (xargs :guard (and (stringp name) (natp input-size) (posp output-size) (canonical-address-p addr)))) (declare (xargs :guard t)) (let ((__function__ 'snippet-info)) (declare (ignorable __function__)) (b* ((name (mbe :logic (acl2::str-fix name) :exec name)) (input-size (mbe :logic (nfix input-size) :exec input-size)) (output-size (mbe :logic (pos-fix output-size) :exec output-size)) (addr (mbe :logic (canonical-address-fix addr) :exec addr))) (list name input-size output-size addr))))