generalized `begin-for-syntax'

original commit: d3c56c9f13327d07513f8b6bf7ea0230acb7f489
This commit is contained in:
Matthew Flatt 2011-09-05 16:08:16 -06:00
parent c69253c388
commit 2b861d3e67
2 changed files with 27 additions and 23 deletions

View File

@ -20,7 +20,10 @@
fn))
(string->path s))]
[(-build-path elem ...)
(module-or-top-identifier=? #'-build-path build-path-stx)
(begin
(collect-garbage)
(module-identifier=? #'-build-path build-path-stx)
(module-or-top-identifier=? #'-build-path build-path-stx))
(let ([l (syntax-object->datum (syntax (elem ...)))])
(when (null? l)
(raise-syntax-error

View File

@ -5,7 +5,8 @@
(#%provide require require-for-syntax require-for-template require-for-label
provide provide-for-syntax provide-for-label)
(define-values-for-syntax (rebuild-elem)
(begin-for-syntax
(define-values (rebuild-elem)
(lambda (stx elem sub pos loop ids)
;; For sub-forms, we loop and reconstruct:
(for-each (lambda (id)
@ -26,7 +27,7 @@
(cons (loop (car elem))
(cdr elem))
(cons (car elem)
(rloop (cdr elem) (sub1 pos))))))))
(rloop (cdr elem) (sub1 pos)))))))))
(define-syntaxes (require require-for-syntax require-for-template require-for-label)