1. Overview
  2. Docs
Module type
Class type

Overrides the Location module of OCaml

There are less functions in this module. However the API should be more stable than the Location module of OCaml.

type t = Astlib.Location.t = {
  1. loc_start : Lexing.position;
  2. loc_end : Lexing.position;
  3. loc_ghost : bool;
val in_file : string -> t

Return an empty ghost range located in a given file.

val set_filename : t -> string -> t

Set the pos_fname both in loc_start and loc_end. Leave the rest as is.

val none : t

An arbitrary value of type t; describes an empty ghost range.

val init : Lexing.lexbuf -> string -> unit

Set the file name and line number of the lexbuf to be the start of the named file.

val raise_errorf : ?loc:t -> ('a, Stdppx.Caml.Format.formatter, unit, 'b) format4 -> 'a

Raise a located error. Should be avoided as much as possible, in favor of error_extensionf.

val of_lexbuf : Lexing.lexbuf -> t

Return the location corresponding to the last matched regular expression

val report_exception : Stdppx.Caml.Format.formatter -> exn -> unit

Report an exception on the given formatter

val print : Stdppx.Caml.Format.formatter -> t -> unit

Prints File "...", line ..., characters ...-...:

type nonrec 'a loc = 'a Astlib.Location.loc = {
  1. txt : 'a;
  2. loc : t;
val compare_pos : Lexing.position -> Lexing.position -> int
val compare : t -> t -> int
module Error : sig ... end
val error_extensionf : loc:t -> ('a, Format.formatter, unit, string Astlib.Location.loc * Astlib.Ast_500.Parsetree.payload) format4 -> 'a

Returns an error extension node. When encountered in the AST, the compiler recognizes it and displays the error properly.

exception Error of Error.t