[bugfix] avoid auxiliary keywords such as unquote or unquote-splicing
from being renamed
This commit is contained in:
parent
725297384a
commit
b231d63297
|
@ -599,6 +599,16 @@
|
||||||
(let ((expr (walk (lambda (x) (if (symbol? x) (inject x) x)) expr)))
|
(let ((expr (walk (lambda (x) (if (symbol? x) (inject x) x)) expr)))
|
||||||
(make-syntactic-closure mac-env '() (f expr inject compare)))))
|
(make-syntactic-closure mac-env '() (f expr inject compare)))))
|
||||||
|
|
||||||
|
(define-syntax define-auxiliary-syntax
|
||||||
|
(ir-macro-transformer
|
||||||
|
(lambda (expr i c)
|
||||||
|
`(define-syntax ,(cadr expr)
|
||||||
|
(sc-macro-transformer
|
||||||
|
(lambda (expr env)
|
||||||
|
(error "invalid use of auxiliary syntax")))))))
|
||||||
|
|
||||||
|
(define-auxiliary-syntax unquote)
|
||||||
|
(define-auxiliary-syntax unquote-splicing)
|
||||||
(define-syntax or
|
(define-syntax or
|
||||||
(ir-macro-transformer
|
(ir-macro-transformer
|
||||||
(lambda (expr inject compare)
|
(lambda (expr inject compare)
|
||||||
|
|
Loading…
Reference in New Issue