TAL environments are simply lists of binding-sets, a binding set can be either a hash table, an object or an alist.
TAL Environment protocol
Macro TAL-VALUE Get the tal variable called NAME from -TAL-ENVIRONMENT-
Generic Function LOOKUP-TAL-VARIABLE Return the value assciated with NAME (a symbol) in the environment ENVIRONMENT.
Generic Function FETCH-TAL-VALUE Return the value associated with NAME in the binding set BINDING.
Function EXTEND-ENVIRONMENT Create a new environment with all the bindings in NEW-ENVIRONMENT and ENVIRONMENT.
Standard Environment
Function MAKE-STANDARD-TAL-ENVIRONMENT Returns an environment consisting of BINDING-SETS.
Method (LOOKUP-TAL-VARIABLE T LIST) Return the value associated with NAME in the environment ENV.
(define-condition setf-tal-variable-error (error) ((variable-name :initarg :variable-name) (environment :initarg :environment)) (:report (lambda (c s) (format s "Error setting the tal variable ~S~:[.~; in the environment ~S.~]" (slot-value c 'variable-name) (slot-boundp c 'environment) (slot-value c 'environment)))))
(define-condition unfound-tal-variable (setf-tal-variable-error) () (:report (lambda (c s) (format s "Attempting to set unknown tal variable ~S~:[.~; in the environment ~S.~]" (slot-value c 'variable-name) (slot-boundp c 'environment) (slot-value c 'environment)))))
(define-condition unsettable-tal-variable (setf-tal-variable-error) () (:report (lambda (c s) (format s "The tal variable ~S is unsettable~:[.~; in the environment ~S.~]" (slot-value c 'variable-name) (slot-boundp c 'environment) (slot-value c 'environment)))))
Function TAL-ENV Creates a fresh tal environment from the plist PAIRS.
Assoc list binding set
Object binding sets
Hash table binding sets