Maurizio, Modules, including Scribble documents, are read in their entirety before any compilation or evaluation is performed. The read error you have seen happens long before your mymodule language gets involved. There are a few different ways to fix the example. First, you could put a #reader directive before the code in question, so your <...> syntax would be used there. Second, you could use your <...> reader for the entire Scribble document by changing your #lang line. This probably requires a new language implementation similar to #lang s-exp that specifies the reader but allows you to specify any language bindings, in this case scribble/manual. Third, you could build the example code at runtime by reading from a string.
Carl Eastlund On Mon, Jun 27, 2011 at 12:17 PM, maurizio.giorda <[email protected]> wrote: > Hi everyone, > > I have developed a racket module that implements a new > language. In this module I have readtable re-definition like this: > > ------------mymodule.rkt--------------------- > (module mymodule > (require racket/base) > ... > ; new readtable with extensions to support the reading of a new > ; data structure: "mset" is a tuple of elements, like < 1, 2, 3 > > (define mset-readtable > (make-readtable #f #\< 'terminating-macro parse-open-mset )) > > ; change the reader to support my new data structure "mset" > (current-readtable mset-readtable) > ... > ) > ---------------------------------------------------- > > Now I am trying to write documentation for this module with scribble. > When I use the @interaction in the followign way: > > ------------mymodule.scrbl--------------------- > #lang scribble/manual > @(require scribble/eval) > ... > @interaction[ > (require mymodule) > (make-mset #(1 2 3 4)) > (define t2 < 1, 2, 3, 4 >) > ] > ... > ------------------------------------------------------- > > I got this in the produced documetation web page: > -------------------------------------------------------- >> (require mymodule) >> (make-mset #(1 2 3 4)) > <1, 2, 3, 4> >> (define t2 < 1,2,3,4 >) > eval:3:0: define: bad syntax (multiple expressions after > identifier) in: (define t2 < 1 (unquote 2) (unquote 3) > (unquote 4) >) > -------------------------------------------------------- > > "make-mset" is my data structure constructor function, and it works > (you see the printout on the 3rd line), > but the same constructor should be called by the reader when > processing the "< 1, 2, 3, 4 >" input. > So my conclusion is that, for some reasons, the scribble > reader have not set my readtable extensions. > Does anyone know what is wrong? > > Maurizio Giordano > > PS: I also tried using @eval[...] > with a sandbox evalutator defined by me with > the "required" module loaded into it... but it gives > me the same result. _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users

