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