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