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.
10711071]
10721072}
10731073
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+
10741079@defform[(with-compound-rewriter name-symbol
10751080 proc
10761081 expression)]{
Original file line number Diff line number Diff line change 5353 with-compound-rewriter
5454 with-compound-rewriters
5555 with-atomic-rewriter
56+ with-atomic-rewriters
5657 STIX?
5758 white-bracket-sizing
5859 apply-rewrites
8687 (basic-text "\u22ef " (default-style))
8788 (basic-text "... " (default-style)))))
8889 (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)
9195 (syntax-parse stx
92- [(_ name transformer e:expr)
96+ [(_ ([ name transformer] ... ) e:expr)
9397 #:declare name
9498 (expr/c #'symbol?
9599 #:name "atomic-rewriter name " )
96100 #:declare transformer
97101 (expr/c #'(or/c (-> pict?) string?)
98102 #: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))]))
104110
105111 ;; compound-rewrite-table : (listof lw) -> (listof (union lw pict string))
106112 (define compound-rewrite-table
Original file line number Diff line number Diff line change 309309 'subst subst-rw
310310 (render-metafunction subst)))
311311 "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 " )
312319
313320
314321;; make sure two metafunctions simultaneously rewritten line up properly
You can’t perform that action at this time.
0 commit comments