www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

define-scoped-transformers.rkt (629B)


      1 #lang racket
      2 
      3 (require (for-syntax "scoped-transformers.rkt"))
      4 
      5 (provide define-syntax-with-scoped-pre-transformers)
      6 
      7 (define-syntax define-syntax-with-scoped-pre-transformers
      8   (syntax-rules ()
      9     [(_ name ([stx-lens pre-transformer] ...) transformer-expr)
     10      (define-syntax name
     11        (with-scoped-pre-transformers transformer-expr
     12                               (list (list stx-lens pre-transformer) ...)))]
     13     [(_ (name stx) ([stx-lens pre-transformer] ...) transformer-body ...)
     14      (define-syntax-with-scoped-pre-transformers name
     15        ([stx-lens pre-transformer] ...)
     16        (lambda (stx) transformer-body ...))]))