scoped-transformers.rkt (627B)
1 #lang racket 2 3 (require racket/match 4 lens) 5 6 (provide with-scoped-pre-transformer 7 with-scoped-pre-transformers) 8 9 (define ((with-scoped-pre-transformer transformer stx-lens pre-transformer) stx) 10 (transformer (lens-transform stx-lens stx pre-transformer))) 11 12 (define (with-scoped-pre-transformers transformer pre-transformer-lens-pairs) 13 (match pre-transformer-lens-pairs 14 ['() transformer] 15 [(list (list stx-lens pre-transformer) rest ...) 16 (define next-transformer 17 (with-scoped-pre-transformer transformer stx-lens transformer)) 18 (with-scoped-pre-transformers next-transformer rest)]))