package ppxlib

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
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.

For a detailled presentation of good practices regarding locations, refer to the section in the manual.

type t = Astlib.Location.t = {
  1. loc_start : Stdlib.Lexing.position;
  2. loc_end : Stdlib.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 : Stdlib.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, Ppxlib__.Import.Caml.Format.formatter, unit, 'b) Stdlib.format4 -> 'a

Raise a located error. Should be avoided as much as possible, in favor of error_extensionf. See the relevant part of the tutorial.

val of_lexbuf : Stdlib.Lexing.lexbuf -> t

Return the location corresponding to the last matched regular expression

val report_exception : Ppxlib__.Import.Caml.Format.formatter -> exn -> unit

Report an exception on the given formatter

val print : Ppxlib__.Import.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 : Stdlib.Lexing.position -> Stdlib.Lexing.position -> int
val min_pos : Stdlib.Lexing.position -> Stdlib.Lexing.position -> Stdlib.Lexing.position
val max_pos : Stdlib.Lexing.position -> Stdlib.Lexing.position -> Stdlib.Lexing.position
val compare : t -> t -> int
module Error : sig ... end
val error_extensionf : loc:t -> ('a, Stdlib.Format.formatter, unit, string Astlib.Location.loc * Astlib.Ast_500.Parsetree.payload) Stdlib.format4 -> 'a

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

For a detailed explanation on error reporting, refer to the relevant part of the tutorial.

exception Error of Error.t
OCaml

Innovation. Community. Security.