[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Francois Rouaix <frouaix@l...> |
| Subject: | Re: ocamlyacc/lex reentrancy |
I don't use ocamlyacc, but I do have lots of ocamllex lexers that need
to be reentrant. I don't remember if I've posted that trick to the list
already, but this is what you can do:
In your opening section of the lexer:
{
type t = <something to store the data>
let create_data () = .... (* unit -> t *)
}
and then for all rules, use
rule somerule = parse
| somepattern { (fun lexdata -> action) }
And, when invoking a lexer function or entry point, you need to pass the
additionnal argument, a in
somerule lexbuf lexdata
--f