What you want is `with-module-reading-parameterization
<http://docs.racket-lang.org/syntax/module-helpers.html?q=with-module-reading#%28def._%28%28lib._syntax%2Fmodread..rkt%29._with-module-reading-parameterization%29%29>
`:

(with-module-reading-parameterization
<http://docs.racket-lang.org/syntax/module-helpers.html?q=with-module-reading#%28def._%28%28lib._syntax%2Fmodread..rkt%29._with-module-reading-parameterization%29%29>
(lambda
() (read (open-input-port "my-file.rkt"))))

On Fri Feb 20 2015 at 12:43:15 AM Thomas Gilray <thomas.gil...@gmail.com>
wrote:

> Hi,
>
> I am trying to figure out how to use read-syntax on a port for an entire
> .rkt file. I want to then call (expand ...) on this and get back a (begin
> ...) or (module ...) form for the entire file in fully expanded form. Right
> now I have three issues:
>
> a) I have to skip over the #lang as this is not recognized by read-syntax
> itself
>
> b) I've needed to call read-syntax repeatedly to consume the whole file
> and put each expression in a top-level begin (a pretty klugy workaround)
>
> c) even then, calling expand will report an error that "define" is not
> itself defined. Maybe there is a version of read-syntax that will use
> read-language internally in the right way but I can't find it.
>
> There is probably a way of doing all of this at once, and better, but I
> don't know what that would be. I feel read-language is needed, but I don't
> see how this would work together with read-syntax.
>
> Any advice or pointers would be greatly appreciated!
>
> --
> Tom
>
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users
>
____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to