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