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