sig
  exception Lex_error
  val lex_eol : Lexing.lexbuf -> unit
  val parse_lexbuf :
    lexer:(Lexing.lexbuf -> 'a) ->
    parser:((Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b) ->
    Lexing.lexbuf -> 'b
  val parse_string :
    lexer:(Lexing.lexbuf -> 'a) ->
    parser:((Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b) -> string -> 'b
  val parse_file :
    lexer:(Lexing.lexbuf -> 'a) ->
    parser:((Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b) -> string -> 'b
end