type lexbuf =
{ refill_buff : lexbuf -> unit;
mutable lex_buffer : bytes;
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;
mutable lex_mem : int array;
mutable lex_start_p : position;
mutable lex_curr_p : position;
}
lex_abs_pos is an integer indicating the number of characters read so far?! Or something else? What do lex_start_pos, let_curr_pos, and lex_last_pos mean?
Don’t we already have lex_start_p for the start of the current token, and lex_curr_p for the end of the current token?