Basic constructor macro for iconst structures.
(make-iconst [:core <core>]
[:suffix? <suffix?>]
[:info <info>])
This is the usual way to construct iconst structures. It simply conses together a structure with the specified fields.
This macro generates a new iconst structure from scratch. See also change-iconst, which can "change" an existing structure, instead.
This is an ordinary
Macro:
(defmacro make-iconst (&rest args) (std::make-aggregate 'iconst args '((:core) (:suffix?) (:info)) 'make-iconst nil))
Function:
(defun iconst (core suffix? info) (declare (xargs :guard (and (dec/oct/hex-constp core) (isuffix-optionp suffix?) (acl2::any-p info)))) (declare (xargs :guard t)) (b* ((core (mbe :logic (dec/oct/hex-const-fix core) :exec core)) (suffix? (mbe :logic (isuffix-option-fix suffix?) :exec suffix?)) (info (mbe :logic (identity info) :exec info))) (cons core (cons suffix? info))))