sig
  type pattern = Plexing.pattern
  exception Error of string
  type 'a glexer =
    'Plexing.lexer = {
    tok_func : 'Plexing.lexer_func;
    tok_using : Token.pattern -> unit;
    tok_removing : Token.pattern -> unit;
    mutable tok_match : Token.pattern -> '-> string;
    tok_text : Token.pattern -> string;
    mutable tok_comm : Ploc.t list option;
  }
  type 'a lexer_func = char Stream.t -> 'Stream.t * Token.location_function
  and location_function = int -> Ploc.t
  val lexer_text : Token.pattern -> string
  val default_match : Token.pattern -> string * string -> string
  val lexer_func_of_parser :
    (char Stream.t * int Pervasives.ref * int Pervasives.ref -> 'a * Ploc.t) ->
    'Token.lexer_func
  val lexer_func_of_ocamllex : (Lexing.lexbuf -> 'a) -> 'Token.lexer_func
  val make_stream_and_location :
    (unit -> 'a * Ploc.t) -> 'Stream.t * Token.location_function
  val eval_char : string -> char
  val eval_string : Ploc.t -> string -> string
  val restore_lexing_info : (int * int) option Pervasives.ref
  val line_nb : int Pervasives.ref Pervasives.ref
  val bol_pos : int Pervasives.ref Pervasives.ref
  type location = Ploc.t
  val make_loc : int * int -> Ploc.t
  val dummy_loc : Ploc.t
end