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?