Basic constructor macro for regex-charset structures.
(make-regex-charset [:chars <chars>] [:negp <negp>])
This is the usual way to construct regex-charset structures. It simply conses together a structure with the specified fields.
This macro generates a new regex-charset structure from scratch. See also change-regex-charset, which can "change" an existing structure, instead.
This is an ordinary
Macro:
(defmacro make-regex-charset (&rest args) (std::make-aggregate 'regex-charset args '((:chars) (:negp)) 'make-regex-charset nil))
Function:
(defun regex-charset (chars negp) (declare (xargs :guard (and (stringp chars) (booleanp negp)))) (declare (xargs :guard t)) (let ((__function__ 'regex-charset)) (declare (ignorable __function__)) (b* ((chars (mbe :logic (acl2::str-fix chars) :exec chars)) (negp (mbe :logic (acl2::bool-fix negp) :exec negp))) (cons :charset (list chars negp)))))