`sig
type lexbuf = {
refill_buff : Lexing.lexbuf -> unit;
mutable lex_buffer : string;
mutable lex_buffer_len : int;
mutable lex_abs_pos : int;
mutable lex_start_pos : int;
mutable lex_curr_pos : int;
mutable lex_last_pos : int;
mutable lex_last_action : int;
mutable lex_eof_reached : bool;
}
val from_channel : Pervasives.in_channel -> Lexing.lexbuf
val from_string : string -> Lexing.lexbuf
val from_function : (string -> int -> int) -> Lexing.lexbuf
val lexeme : Lexing.lexbuf -> string
val lexeme_char : Lexing.lexbuf -> int -> char
val lexeme_start : Lexing.lexbuf -> int
val lexeme_end : Lexing.lexbuf -> int
type lex_tables = {
lex_base : string;
lex_backtrk : string;
lex_default : string;
lex_trans : string;
lex_check : string;
}
external engine : Lexing.lex_tables -> int -> Lexing.lexbuf -> int
= "lex_engine"
end`