Basic constructor macro for dec/oct/hex-const-hex structures.
(make-dec/oct/hex-const-hex [:prefix <prefix>] [:digits <digits>])
This is the usual way to construct dec/oct/hex-const-hex structures. It simply conses together a structure with the specified fields.
This macro generates a new dec/oct/hex-const-hex structure from scratch. See also change-dec/oct/hex-const-hex, which can "change" an existing structure, instead.
This is an ordinary
Macro:
(defmacro make-dec/oct/hex-const-hex (&rest args) (std::make-aggregate 'dec/oct/hex-const-hex args '((:prefix) (:digits)) 'make-dec/oct/hex-const-hex nil))
Function:
(defun dec/oct/hex-const-hex (prefix digits) (declare (xargs :guard (and (hprefixp prefix) (hex-digit-char-listp digits)))) (declare (xargs :guard t)) (let ((__function__ 'dec/oct/hex-const-hex)) (declare (ignorable __function__)) (b* ((prefix (mbe :logic (hprefix-fix prefix) :exec prefix)) (digits (mbe :logic (str::hex-digit-char-list-fix digits) :exec digits))) (cons :hex (list prefix digits)))))