Add #:define-splicing-syntax-class option

This commit is contained in:
Georges Dupéron 2016-09-05 02:19:02 +02:00
parent faade53994
commit e5ed74dc61

View File

@ -21,10 +21,16 @@
(define-syntax define-eh-alternative-mixin (define-syntax define-eh-alternative-mixin
(syntax-parser (syntax-parser
[(_ name ((~literal pattern) pat) ...) [(_ name (~maybe #:define-splicing-syntax-class splicing-name)
#'(define-eh-mixin-expander name ((~literal pattern) pat) ...)
#`(begin
(define-eh-mixin-expander name
(λ (_) (λ (_)
(quote-syntax (~or pat ...))))])) (quote-syntax (~or pat ...))))
#,@(if (attribute splicing-name)
#'((define-splicing-syntax-class splicing-name
(pattern {~seq-no-order {name}})))
#'()))]))
(define-for-syntax (inline-or stx) (define-for-syntax (inline-or stx)
(syntax-case stx () (syntax-case stx ()
@ -42,7 +48,7 @@
(syntax-case stx () (syntax-case stx ()
[(self pat ...) [(self pat ...)
((λ (x) #;(pretty-write (syntax->datum x)) x) ((λ (x) #;(pretty-write (syntax->datum x)) x)
(let () (with-disappeared-uses
(define counter 0) (define counter 0)
(define (increment-counter) (define (increment-counter)
(begin0 counter (begin0 counter