Basic constructor macro for denv structures.
(make-denv [:call-stack <call-stack>] [:functions <functions>] [:structs <structs>] [:screen <screen>] [:curve <curve>])
This is the usual way to construct denv structures. It simply conses together a structure with the specified fields.
This macro generates a new denv structure from scratch. See also change-denv, which can "change" an existing structure, instead.
This is an ordinary
Macro:
(defmacro make-denv (&rest args) (std::make-aggregate 'denv args '((:call-stack) (:functions) (:structs) (:screen) (:curve)) 'make-denv nil))
Function:
(defun denv (call-stack functions structs screen curve) (declare (xargs :guard (and (call-dinfo-listp call-stack) (function-denvp functions) (struct-denvp structs) (screenp screen) (curvep curve)))) (declare (xargs :guard t)) (let ((__function__ 'denv)) (declare (ignorable __function__)) (b* ((call-stack (mbe :logic (call-dinfo-list-fix call-stack) :exec call-stack)) (functions (mbe :logic (function-denv-fix functions) :exec functions)) (structs (mbe :logic (struct-denv-fix structs) :exec structs)) (screen (mbe :logic (screen-fix screen) :exec screen)) (curve (mbe :logic (curve-fix curve) :exec curve))) (cons :denv (list (cons 'call-stack call-stack) (cons 'functions functions) (cons 'structs structs) (cons 'screen screen) (cons 'curve curve))))))