Module Odoc_model.Location_Source

include module type of struct include Odoc_parser.Loc end

This module concerns locations in source files, both points indicating a specific character and spans between two points.

Basic types

Sourcetype point = Odoc_parser.Loc.point = {
  1. line : int;
  2. column : int;
}

A specific character

Sourcetype span = Odoc_parser.Loc.span = {
  1. file : string;
  2. start : point;
  3. end_ : point;
}

A range of characters between start and end_ in a particular file

Sourceval span : span list -> span

span spans takes a list of spans and returns a single span starting at the start of the first span and ending at the end of the final span

Sourceval nudge_start : int -> span -> span

This adjusts only the column number, implicitly assuming that the offset does not move the location across a newline character.

Located values

Sourcetype +'a with_location = 'a Odoc_parser.Loc.with_location = {
  1. location : span;
  2. value : 'a;
}

Describes values located at a particular span

Sourceval at : span -> 'a -> 'a with_location

Constructor for with_location

Sourceval location : 'a with_location -> span

Returns the location of a located value

Sourceval value : 'a with_location -> 'a

Returns the value of a located value

Sourceval map : ('a -> 'b) -> 'a with_location -> 'b with_location

Map over a located value without changing its location

Sourceval same : _ with_location -> 'b -> 'b with_location

same x y retuns the value y wrapped in a with_location whose location is that of x

Sourceval spans_multiple_lines : _ with_location -> bool

spans_multiple_lines x checks to see whether x is located on a single line or whether it covers more than one.

Sourceval set_end_as_offset_from_start : int -> span -> span
Sourceval in_string : string -> offset:int -> length:int -> span -> span
Sourceval pp : Format.formatter -> span -> unit
Sourceval pp_span_start : Format.formatter -> span -> unit
Sourceval span_equal : span -> span -> bool