|
|
|
@ -130,14 +130,16 @@
|
|
|
|
|
|
|
|
|
|
(define-syntax (for/splice/base stx)
|
|
|
|
|
(syntax-case stx ()
|
|
|
|
|
[(_ ([ID SEQ] ...) . BODY)
|
|
|
|
|
[(_ ITERATORS . BODY)
|
|
|
|
|
(with-syntax ([SPLICING-TAG (datum->syntax stx (setup:splicing-tag))]
|
|
|
|
|
[FORM (or (syntax-property stx 'form) #'for/list)])
|
|
|
|
|
#'(apply SPLICING-TAG (FORM ([ID SEQ] ...)
|
|
|
|
|
#'(apply SPLICING-TAG (FORM ITERATORS
|
|
|
|
|
(SPLICING-TAG . BODY))))]))
|
|
|
|
|
|
|
|
|
|
(define-syntax-rule (for/splice . BODY) #'(for/splice/base . BODY))
|
|
|
|
|
(define-syntax-rule (for*/splice . BODY) (syntax-property #'(for/splice/base . BODY) 'form #'for*/list))
|
|
|
|
|
(define-syntax for/splice (make-rename-transformer #'for/splice/base))
|
|
|
|
|
(define-syntax (for*/splice stx)
|
|
|
|
|
(syntax-case stx ()
|
|
|
|
|
[(_ . BODY) (syntax-property #'(for/splice/base . BODY) 'form #'for*/list)]))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(provide when/block) ; bw compat
|
|
|
|
|