package catala

  1. Overview
  2. Docs

Source code position

type t = Stdlib.Lexing.position * Stdlib.Lexing.position

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

Constructor and getters

val from_info : string -> int -> int -> int -> int -> t
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

Formatters

val to_string : t -> string

Formats a position like this:

in file <file>, from <start_line>:<start_col> to <end_line>:<end_col>
val to_string_short : t -> string

Formats a position like this:

<file>;<start_line>:<start_col>--<end_line>:<end_col>
val retrieve_loc_text : t -> string

Open the file corresponding to the position and retrieves the text concerned by the position

AST markings

type 'a marked = 'a * t

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

val no_pos : t

Placeholder position

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
OCaml

Innovation. Community. Security.