|
20 | 20 | ;; #:introducer StxIntroducer
|
21 | 21 | ;; ->
|
22 | 22 | ;; RequireTransformer
|
23 |
| -(define (make-unmangling-require-transformer #:mangle-prefix mangle-prefix |
24 |
| - #:introducer intro) |
25 |
| - |
26 |
| - (define-values [id-mangler id-unmangler] |
27 |
| - (make-id-mangler #:prefix mangle-prefix #:introducer intro)) |
28 |
| - (define-values [id-mangler/no-intro id-unmangler/no-intro] |
29 |
| - (make-id-mangler #:prefix mangle-prefix #:introducer identity)) |
30 |
| - |
| 23 | +(define (make-unmangling-require-transformer id-unmangler) |
31 | 24 | (make-require-transformer
|
32 | 25 | (syntax-parser
|
33 | 26 | [(_ {~alt {~optional {~or {~and #:no-introduce no-introduce?}
|
|
36 | 29 | ...
|
37 | 30 | require-spec ...)
|
38 | 31 | #:do [(define id-unmangler*
|
39 |
| - (if (or (@ no-introduce?) (@ prefix)) |
40 |
| - id-unmangler/no-intro |
41 |
| - id-unmangler)) |
42 |
| - (define id-unmangler** |
43 |
| - (if (@ prefix) |
44 |
| - (prefix/unmangler (syntax-e (@ prefix)) id-unmangler*) |
45 |
| - id-unmangler*)) |
| 32 | + (let* ([unm id-unmangler] |
| 33 | + [unm (if (or (@ no-introduce?) (@ prefix)) |
| 34 | + (no-introduce/unmangler unm) |
| 35 | + unm)] |
| 36 | + [unm (if (@ prefix) |
| 37 | + (prefix/unmangler (syntax-e (@ prefix)) unm) |
| 38 | + unm)]) |
| 39 | + unm)) |
46 | 40 |
|
47 | 41 | (define-values [imports sources]
|
48 | 42 | (expand-import #'(combine-in require-spec ...)))]
|
49 | 43 |
|
50 | 44 | (values (for*/list ([i (in-list imports)]
|
51 |
| - [i* (in-value (unmangle-import i id-unmangler**))] |
| 45 | + [i* (in-value (unmangle-import i id-unmangler*))] |
52 | 46 | #:when (if (@ only?) i* #t))
|
53 | 47 | (or i* i))
|
54 | 48 | sources)])))
|
|
57 | 51 | ;; #:introducer StxIntroducer
|
58 | 52 | ;; ->
|
59 | 53 | ;; ProvideTransformer
|
60 |
| -(define (make-mangling-provide-transformer #:mangle-prefix mangle-prefix |
61 |
| - #:introducer intro) |
62 |
| - |
63 |
| - (define-values [id-mangler id-unmangler] |
64 |
| - (make-id-mangler #:prefix mangle-prefix #:introducer intro)) |
65 |
| - (define-values [id-mangler/no-intro id-unmangler/no-intro] |
66 |
| - (make-id-mangler #:prefix mangle-prefix #:introducer identity)) |
67 |
| - |
| 54 | +(define (make-mangling-provide-transformer id-mangler) |
68 | 55 | (make-provide-transformer
|
69 | 56 | (λ (stx modes)
|
70 | 57 | (syntax-parse stx
|
71 | 58 | [(_ {~optional {~and #:no-introduce no-introduce?}} provide-spec ...)
|
72 | 59 | #:do [(define id-mangler*
|
73 | 60 | (if (@ no-introduce?)
|
74 |
| - id-mangler/no-intro |
| 61 | + (no-introduce/mangler id-mangler) |
75 | 62 | id-mangler))
|
76 | 63 |
|
77 | 64 | (define exports
|
|
88 | 75 | (define (unzip xs/ys)
|
89 | 76 | (values (map first xs/ys)
|
90 | 77 | (map second xs/ys)))
|
91 |
| - |
0 commit comments