[bugfix] avoid auxiliary keywords such as unquote or unquote-splicing

from being renamed
This commit is contained in:
Yuichi Nishiwaki 2013-12-09 09:27:28 -08:00
parent 725297384a
commit b231d63297
1 changed files with 10 additions and 0 deletions

View File

@ -599,6 +599,16 @@
(let ((expr (walk (lambda (x) (if (symbol? x) (inject x) x)) expr)))
(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
(ir-macro-transformer
(lambda (expr inject compare)