Basic constructor macro for lhatom-var structures.
(make-lhatom-var [:name <name>] [:rsh <rsh>])
This is the usual way to construct lhatom-var structures. It simply conses together a structure with the specified fields.
This macro generates a new lhatom-var structure from scratch. See also change-lhatom-var, which can "change" an existing structure, instead.
This is an ordinary
Macro:
(defmacro make-lhatom-var (&rest args) (std::make-aggregate 'lhatom-var args '((:name) (:rsh)) 'make-lhatom-var nil))
Function:
(defun lhatom-var (name rsh) (declare (xargs :guard (and (svar-p name) (natp rsh)))) (declare (xargs :guard t)) (let ((__function__ 'lhatom-var)) (declare (ignorable __function__)) (b* ((name (mbe :logic (svar-fix name) :exec name)) (rsh (mbe :logic (nfix rsh) :exec rsh))) (if (and (eql 0 rsh) (not (eq name :z))) name (cons name rsh)))))