Lines Matching +refs:struct +refs:id +refs:rename +refs:transformer
99 (make-rename-transformer
107 (procedure-rename
127 #`(begin (lazy-require-syntax1/rename modpath (import ...) #,stx) ...)]))
130 ;; Implementation 1: syntax-local-value to get macro transformer
134 ;; bindings like struct names (you can use them as constructors, but not
137 (define-syntax (lazy-require-syntax1/transformer stx)
159 ;; Implementation 2: lazy rename-transformers
161 ;; This version is more flexible, since rename-transformers support
163 ;; (eg struct information).
166 (struct lazy-rename-transformer (get-id)
167 #:property prop:rename-transformer
169 (syntax-property ((lazy-rename-transformer-get-id self))
172 (define-syntax (lazy-require-syntax1/rename stx)
180 (with-syntax ([(get-id ...) (generate-temporaries #'(exp-name ...))]
185 (define (get-id) (quote-syntax exp-name)) ...
186 (provide get-id ...))
189 (lazy-require [(submod ".." aux-mod1) (get-id ...)])
190 (provide get-id ...))
191 (require (for-syntax (only-in (submod "." aux-mod2) [get-id get-id] ...)))
193 ;; doesn't force (get-id) trying to decide whether to bypass renamer.
194 (define-syntax bind-aux (lazy-rename-transformer get-id)) ...
196 (make-rename-transformer