Module Mlang.Pos

A position in the source code is a file, as well as begin and end location of the form col:line

Source code position

type t
val make_position : string -> (Stdlib.Lexing.position * Stdlib.Lexing.position) -> t
val make_position_between : t -> t -> t
val format_position_short : Stdlib.Format.formatter -> t -> unit
val format_position : Stdlib.Format.formatter -> t -> unit
type 'a marked = 'a * t

Everything related to the source code should keep its t stored, to improve error messages

val no_pos : t

Placeholder t

val unmark : 'a marked -> 'a
val get_position : 'a marked -> t
val map_under_mark : ( 'a -> 'b ) -> 'a marked -> 'b marked
val same_pos_as : 'a -> 'b marked -> 'a marked
val unmark_option : 'a marked option -> 'a option
val get_start_line : t -> int
val get_start_column : t -> int
val get_end_line : t -> int
val get_end_column : t -> int
val get_file : t -> string
val indent_number : string -> int
val retrieve_loc_text : t -> string

Given a source code position, retrieves the content of the code by acessing the file and reading its text