package catala

  1. Overview
  2. Docs

Source code position

type t

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

Custom visitor for the Pos.marked type

Constructor and getters

val from_lpos : (Lexing.position * Lexing.position) -> t
val from_info : string -> int -> int -> int -> int -> t
val overwrite_law_info : t -> string list -> 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
type input_file =
  1. | FileName of string
  2. | Contents of 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

Visitors

class 'self marked_map : object ... end
class 'self marked_iter : object ... end