There is also a `with-module-reading-parameterization` that sets up the reader to do this.
On Wed, Feb 18, 2015, 10:36 PM Sam Tobin-Hochstadt <sa...@cs.indiana.edu> wrote: > On Wed, Feb 18, 2015 at 10:22 PM, Thomas Gilray <thomas.gil...@gmail.com> > wrote: > > Hi everyone, > > > > I am trying to figure out how to use read-syntax on a port for an entire > > .rkt file. I then want to call (expand ...) on this and get back a (begin > > ...) or (module ...) for the entire file in fully expanded form. > > > > If I run (expand #`(define ...)) under a #lang racket, everything works. > If > > I place this in a file and use read-syntax however, each top-level > > expression is returned individually, the language declaration isn't > > supported, and without this information the expander complains that > "define" > > isn't defined. How do I properly read-syntax a whole file at once? > > > > Any ideas would be greatly appreciated. > > I've implemented this a couple times recently, probably the best > version is here: > https://github.com/samth/pycket/blob/master/pycket/pycket-lang/expand.rkt > > The short answer is that you want to use `read-accept-lang` to enable > #lang, call `read-syntax` once on the port, and the call `expand` in a > new namespace (probably created with `make-base-namespace`). > > Sam > ____________________ > Racket Users list: > http://lists.racket-lang.org/users >
____________________ Racket Users list: http://lists.racket-lang.org/users