Next: , Previous: , Up: expander lexenv internal   [Index]


15.3.6.4 Internal syntactic bindings: expand–time values

A syntactic binding representing a keyword binding associated to an expand–time value has descriptor with format:

(local-etv . (?object . ?expanded-expr))

where: ?object is the actual value computed at expand time; ?expanded-expr is the result of fully expanding the right–hand side of the syntax definition. ?object is the result of compiling and evaluating ?expanded-expr.

For every top level binding of this type, the following symbolic expression is added to the visit code of the library being expanded:

(set! ?loc ?expanded-code)

where ?loc is the storage location gensym of the macro.

These syntactic bindings are established by define-syntax, let-syntax and similar, when their right–hand side evaluates to the return value of make-expand-time-value.