13 lines
537 B
Racket
13 lines
537 B
Racket
#lang racket
|
|
(require generic-syntax-expanders rackunit)
|
|
(define-expander-type foo)
|
|
(define-foo-expander foo1 (λ _ #''ok))
|
|
(define-syntax (bar stx)
|
|
(syntax-case stx ()
|
|
[(_ body)
|
|
(expand-all-foo-expanders #'body)]))
|
|
;; When hovering "foo1" in the code below with the mouse, an arrow should
|
|
;; be shown in DrRacket from the foo1 in (define-foo-expander foo1 …) above.
|
|
;; This is not automatically checked, as it would be difficult/brittle to check
|
|
;; for the syntax property. Patches welcome.
|
|
(check-equal? (bar (foo1)) 'ok) |