17 lines
629 B
Racket
17 lines
629 B
Racket
#lang racket
|
|
|
|
(require (for-syntax "scoped-transformers.rkt"))
|
|
|
|
(provide define-syntax-with-scoped-pre-transformers)
|
|
|
|
(define-syntax define-syntax-with-scoped-pre-transformers
|
|
(syntax-rules ()
|
|
[(_ name ([stx-lens pre-transformer] ...) transformer-expr)
|
|
(define-syntax name
|
|
(with-scoped-pre-transformers transformer-expr
|
|
(list (list stx-lens pre-transformer) ...)))]
|
|
[(_ (name stx) ([stx-lens pre-transformer] ...) transformer-body ...)
|
|
(define-syntax-with-scoped-pre-transformers name
|
|
([stx-lens pre-transformer] ...)
|
|
(lambda (stx) transformer-body ...))]))
|