generalized `begin-for-syntax'
original commit: d3c56c9f13327d07513f8b6bf7ea0230acb7f489
This commit is contained in:
parent
c69253c388
commit
2b861d3e67
|
@ -20,7 +20,10 @@
|
||||||
fn))
|
fn))
|
||||||
(string->path s))]
|
(string->path s))]
|
||||||
[(-build-path elem ...)
|
[(-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 ...)))])
|
(let ([l (syntax-object->datum (syntax (elem ...)))])
|
||||||
(when (null? l)
|
(when (null? l)
|
||||||
(raise-syntax-error
|
(raise-syntax-error
|
||||||
|
|
|
@ -5,7 +5,8 @@
|
||||||
(#%provide require require-for-syntax require-for-template require-for-label
|
(#%provide require require-for-syntax require-for-template require-for-label
|
||||||
provide provide-for-syntax provide-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)
|
(lambda (stx elem sub pos loop ids)
|
||||||
;; For sub-forms, we loop and reconstruct:
|
;; For sub-forms, we loop and reconstruct:
|
||||||
(for-each (lambda (id)
|
(for-each (lambda (id)
|
||||||
|
@ -26,7 +27,7 @@
|
||||||
(cons (loop (car elem))
|
(cons (loop (car elem))
|
||||||
(cdr elem))
|
(cdr elem))
|
||||||
(cons (car 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)
|
(define-syntaxes (require require-for-syntax require-for-template require-for-label)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user