I need to use menhir with sedlex for whatever reason (utf-8), but don't know how to make the generated parser depend on Sedlexing
instead of Lexing
. Any tips?
When I run
menhir --infer parser.mly
the generated program has lines with Lexing...
. I could change it manually, but there must be another way, no?
EDIT: The parser.ml that is generated should have references to Lexing. Sedlexing is used to create the
lexbuf
that you send in to the parser, but the parser doesn't care if that lexbuf was created by Lexing or Sedlexing, as long as it can use functions likeLexing.lex_start_p
andLexing.lex_curr_p
on it.I used something like
where test.ml uses parser.mly via calls to Parser.
For completeness, the command that's run by ocamlbuild is:
See a full example at https://github.com/unhammer/ocaml_cg_streamparse (branch https://github.com/unhammer/ocaml_cg_streamparse/tree/match-singlechar-example shows a rule that matches a single code point like
a
orß
but notaa
).