package forester

  1. Overview
  2. Docs
A tool for tending mathematical forests

Install

dune-project
 Dependency

Authors

Maintainers

Sources

5.0.tar.gz
md5=24f4aed96a8b8af33aba13fba66f1b37
sha512=d36b896aca11858bb4a00fc704c16cc27a1f197bdb3e479d6132fd70f70d67d7158096285cb0b6fb00db14417f0f822cc27fe65d82f0971e42378fd8271ce573

doc/src/forester.core/Range.ml.html

Source file Range.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
(*
 * SPDX-FileCopyrightText: 2024 The Forester Project Contributors
 *
 * SPDX-License-Identifier: GPL-3.0-or-later
 *)

include Asai.Range

let pp_located pp_arg fmt (x : 'a located) =
  pp_arg fmt x.value

let map f node = {node with value = f node.value}

type string_source = Asai.Range.string_source = {
  title: string option;
  content: string;
}
[@@deriving repr]

type source = [
  | `File of string
  | `String of string_source
]
[@@deriving repr]

type position = Asai.Range.position = {
  source: source;
  offset: int;
  start_of_line: int;
  line_num: int;
}
[@@deriving repr]

let t : t Repr.t =
  let open Repr in
  variant
    "t"
    begin
      fun range end_of_file t ->
        match view t with
        | `Range (x, y) -> range (x, y)
        | `End_of_file x -> end_of_file x
    end
  |~ case1 "Range" (pair position_t position_t) make
  |~ case1 "End_of_file" position_t eof
  |> sealv

type 'a located = 'a Asai.Range.located = {loc: t option; value: 'a}
[@@deriving repr]
OCaml

Innovation. Community. Security.