package archetype
Module Archetype.PositionSource
Extension of standard library's positions.
Extended lexing positions
Abstract type for pairs of positions in the lexing stream.
value dv returns the raw value that underlies the decorated value dv.
position dv returns the position that decorates the decorated value dv.
destruct dv returns the couple of position and value of a decorated value dv.
with_cpos p v decorates v with a lexical position p.
with_poss start stop v decorates v with a position (start, stop).
This value is used when an object does not come from a particular input location.
mapd f v extends the decoration from v to both members of the pair f v.
Accessors
column p returns the number of characters from the beginning of the line of the Lexing.position p.
column p returns the line number of to the Lexing.position p.
characters p1 p2 returns the character interval between p1 and p2 assuming they are located in the same line.
start_of_position p returns the beginning of a position p.
end_of_position p returns the end of a position p.
filename_of_position p returns the filename of a position p.
Position handling
join p1 p2 returns a position that starts where p1 starts and stops where p2 stops.
lex_join l1 l2 returns a position that starts at l1 and stops at l2.
string_of_lex_pos p returns a string representation for the lexing position p.
string_of_pos p returns the standard (Emacs-like) representation of the position p.
pos_or_undef po is the identity function except if po = None, in that case, it returns undefined_position.
Interaction with the lexer runtime
cpos lexbuf returns the current position of the lexer.
string_of_cpos p returns a string representation of the lexer's current position.