You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
beautiful-racket/beautiful-racket-lib/br/quicklang.rkt

34 lines
1.1 KiB
Racket

#lang br
(require (for-syntax racket/list sugar/debug))
(provide (except-out (all-from-out br) #%module-begin)
(rename-out [quicklang-mb #%module-begin])
(for-syntax (all-from-out sugar/debug)))
(define-macro (quicklang-mb . EXPRS)
#'(#%module-begin
(provide #%top #%app #%datum #%top-interaction)
. EXPRS))
(module reader racket/base
(provide (rename-out
[br-read read]
[br-read-syntax read-syntax]
[at:get-info get-info]))
(module at-reader syntax/module-reader
#:language 'br/quicklang
#:info br-get-info
#:read at:read
#:read-syntax at:read-syntax
(require br/get-info (prefix-in at: scribble/reader)))
(require debug/reader (prefix-in at: 'at-reader))
#|
Use wrap-reader on the whole-module read function that would be exported
by the reader module, not the single-expression read function like
at:read-syntax that you deal with within syntax/module-reader or normal use.
|#
(define br-read (wrap-reader at:read))
(define br-read-syntax (wrap-reader at:read-syntax)))