package biocaml

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

File positions. A position within a file is defined by:

source - Name of the file or other kind of source such as a URL.

line - Line number within the source. The first line is numbered 1. Set to None for binary files where the concept of a line isn't applicable.

offset - If a line number is given, this is the position from the start of the line. The first position is 1. If no line number is given, this is the offset from the beginning of source. The exact semantics of offset depends on the type of source. For example, for Unicode text files, the offset might be the character position instead of a byte position.

It is valid to omit any field. Omitting all fields denotes a dummy or unknown position. Omitting source while providing line or offset is probably not sensible but isn't disallowed. Even if the source is an unnamed entity, some descriptive text should be provided, e.g. "stdin" is better than saying None. Negative values for line and offset also shouldn't be used, but we do not bother disallowing it.

type t = {
  1. source : string option;
  2. line : int option;
  3. offset : int option;
}
include Sexplib0.Sexpable.S with type t := t
val t_of_sexp : Sexplib0.Sexp.t -> t
val sexp_of_t : t -> Sexplib0.Sexp.t
val make : ?source:string -> ?line:int -> ?offset:int -> unit -> t
val unknown : t

Position with all fields set to None.

val incr_line : ?n:int -> t -> t

incr_line ?n pos increments the line number of pos by n. Default: n = 1. If pos.line = None, it is treated as zero, i.e. the returned line number is set to n.

val to_string : t -> string

Print string in a human legible format. No particular format is guaranteed.