Next: expander lexenv prim primitives, Previous: expander lexenv prim cmacros, Up: expander lexenv prim [Index]
A syntactic binding representing a non–core syntax with transformer function implemented by the expander has descriptor with format:
(macro . ?name)
where ?name is a symbol representing the public name of the
syntax. The non–core syntax transformer functions are implemented by
the expander in the module exporting the function
non-core-macro-transformer
, which is used to map non–core syntax
names to transformer functions.
The implementation of non–core syntaxes can be decomposed into uses of other syntaxes. Some of these syntaxes are:
define-struct define-record-type define-condition-type define-enumeration or and xor cond case let* let-values let*-values syntax-rules quasiquote quasisyntax with-syntax identifier-syntax let*-syntax define-syntax-rule define-auxiliary-syntaxes define-syntax* do when unless while until for returnable case-define define* case-define* lambda* case-lambda* define-values receive receive-and-return begin0 include assert try with-unwind-protection guard