;; "Explicit Renaming" transformer
(transformer-keyword 'ER-MACRO-TRANSFORMER->EXPANDER
er-macro-transformer->expander))
-
-(define classifier:non-hygienic-macro-transformer
- (transformer-keyword 'NON-HYGIENIC-MACRO-TRANSFORMER->EXPANDER
- non-hygienic-macro-transformer->expander))
\f
;;;; Core primitives
(parent (runtime syntax))
(export ()
er-macro-transformer->expander
- non-hygienic-macro-transformer->expander
rsc-macro-transformer->expander
sc-macro-transformer->expander
syntactic-keyword->item))
classifier:er-macro-transformer
classifier:let-syntax
classifier:letrec-syntax
- classifier:non-hygienic-macro-transformer
classifier:rsc-macro-transformer
classifier:sc-macro-transformer
compiler:delay
(define-classifier 'ER-MACRO-TRANSFORMER classifier:er-macro-transformer)
(define-classifier 'LET-SYNTAX classifier:let-syntax)
(define-classifier 'LETREC-SYNTAX classifier:letrec-syntax)
- (define-classifier 'NON-HYGIENIC-MACRO-TRANSFORMER
- classifier:non-hygienic-macro-transformer)
(define-classifier 'RSC-MACRO-TRANSFORMER classifier:rsc-macro-transformer)
(define-classifier 'SC-MACRO-TRANSFORMER classifier:sc-macro-transformer)
(if (interpreter-environment? env) 'runtime-top-level 'runtime))
(lambda (env name)
(and (symbol? name)
- (let ((item (environment-lookup-macro env name)))
- (if (procedure? item)
- ;; **** Kludge to support bootstrapping.
- (non-hygienic-macro-transformer->expander item env)
- item))))
+ (environment-lookup-macro env name)))
(lambda (env name item)
(environment-define-macro env name item))
(lambda (env name)
(identifier=? use-environment x
use-environment y)))
-(define (non-hygienic-macro-transformer->expander transformer
- closing-environment)
- closing-environment
- (make-expander-item
- (lambda (form use-environment)
- (close-syntax (apply transformer (cdr form))
- use-environment))))
-
(define (syntactic-keyword->item keyword environment)
(let ((item (environment-lookup-macro environment keyword)))
(if (not item)