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