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