File tree Expand file tree Collapse file tree 3 files changed +26
-8
lines changed
redex-doc/redex/scribblings/ref
redex-pict-lib/redex/private Expand file tree Collapse file tree 3 files changed +26
-8
lines changed Original file line number Diff line number Diff line change @@ -1071,6 +1071,11 @@ appears in a pattern.
1071
1071
]
1072
1072
}
1073
1073
1074
+ @defform[(with-atomic-rewriters ([name-symbol string-or-thunk-returning-pict] ...)
1075
+ expression)]{
1076
+ Shorthand for nested @racket[with-atomic-rewriter] expressions.
1077
+ @history[#:added "1.4"]}
1078
+
1074
1079
@defform[(with-compound-rewriter name-symbol
1075
1080
proc
1076
1081
expression)]{
Original file line number Diff line number Diff line change 53
53
with-compound-rewriter
54
54
with-compound-rewriters
55
55
with-atomic-rewriter
56
+ with-atomic-rewriters
56
57
STIX?
57
58
white-bracket-sizing
58
59
apply-rewrites
86
87
(basic-text "\u22ef " (default-style))
87
88
(basic-text "... " (default-style)))))
88
89
(hole "[] " ))))
89
-
90
- (define-syntax (with-atomic-rewriter stx)
90
+
91
+ (define-syntax-rule
92
+ (with-atomic-rewriter name rewriter body)
93
+ (with-atomic-rewriters ([name rewriter]) body))
94
+ (define-syntax (with-atomic-rewriters stx)
91
95
(syntax-parse stx
92
- [(_ name transformer e:expr)
96
+ [(_ ([ name transformer] ... ) e:expr)
93
97
#:declare name
94
98
(expr/c #'symbol?
95
99
#:name "atomic-rewriter name " )
96
100
#:declare transformer
97
101
(expr/c #'(or/c (-> pict?) string?)
98
102
#:name "atomic-rewriter rewrite " )
99
- #`(parameterize ([atomic-rewrite-table
100
- (cons (list name.c #,(wrap-expr/c #'(or/c string? (-> pict?))
101
- #'transformer.c ))
102
- (atomic-rewrite-table))])
103
- e)]))
103
+ (with-syntax ([(rewriter ... ) (for/list ([t (in-list (syntax->list #'(transformer.c ... )))])
104
+ (wrap-expr/c #'(or/c string? (-> pict?))
105
+ t))])
106
+ #`(parameterize ([atomic-rewrite-table
107
+ (append (list (list name.c rewriter) ... )
108
+ (atomic-rewrite-table))])
109
+ e))]))
104
110
105
111
;; compound-rewrite-table : (listof lw) -> (listof (union lw pict string))
106
112
(define compound-rewrite-table
Original file line number Diff line number Diff line change 309
309
'subst subst-rw
310
310
(render-metafunction subst)))
311
311
"metafunction-subst.png " )
312
+ (btest (with-atomic-rewriters
313
+ (['number "number " ]
314
+ ['number "number " ]) ;; these rewriters have no effect; here to test that path in the code
315
+ (with-compound-rewriter
316
+ 'subst subst-rw
317
+ (render-metafunction subst)))
318
+ "metafunction-subst.png " )
312
319
313
320
314
321
;; make sure two metafunctions simultaneously rewritten line up properly
You can’t perform that action at this time.
0 commit comments