This file is indexed.

/usr/lib/ocaml/oasis/OASISValues.mli is in liboasis-ocaml-dev 0.4.10-2build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
(******************************************************************************)
(* OASIS: architecture for building OCaml libraries and applications          *)
(*                                                                            *)
(* Copyright (C) 2011-2016, Sylvain Le Gall                                   *)
(* Copyright (C) 2008-2011, OCamlCore SARL                                    *)
(*                                                                            *)
(* This library is free software; you can redistribute it and/or modify it    *)
(* under the terms of the GNU Lesser General Public License as published by   *)
(* the Free Software Foundation; either version 2.1 of the License, or (at    *)
(* your option) any later version, with the OCaml static compilation          *)
(* exception.                                                                 *)
(*                                                                            *)
(* This library is distributed in the hope that it will be useful, but        *)
(* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY *)
(* or FITNESS FOR A PARTICULAR PURPOSE. See the file COPYING for more         *)
(* details.                                                                   *)
(*                                                                            *)
(* You should have received a copy of the GNU Lesser General Public License   *)
(* along with this library; if not, write to the Free Software Foundation,    *)
(* Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA              *)
(******************************************************************************)


(** Parse, print and check values

    This module allows to parse values that should match a particular content
    (URL, list).

    The whole module is {b not exported}.

    @author Sylvain Le Gall
*)


(** {2 Types and exception} *)


(** Definition of a value. *)
type 'a t =
  {
    parse: ctxt:OASISContext.t -> string -> 'a;
    (** Parse a string into value *)
    update: 'a -> 'a -> 'a;
    (** Merge two values into one *)
    print: 'a -> string;
    (** Convert a value to string *)
  }


(** The value exist but there is no easy way to represent it.
*)
exception Not_printable


(** It is not possible to combine values.
*)
exception Not_combinable


(** Always raise {!Not_combinable}.
*)
val update_fail: 'a -> 'b -> 'c


(** {2 Basic values and combinators} *)


(** Hidden value to build phantom data storage, cannot set/get
    it using string.
*)
val blackbox: 'a t


(** String value. *)
val string: string t


(** String value, must not be "". *)
val string_not_empty: string t


(** Boolean value, use [bool_of_string] to parse. *)
val boolean: bool t


(** Extra check to see if the string value, can be expanded
    using [Buffer.add_substitute] rules.
*)
val expandable: string t -> string t


(** [dot_separated v] When parsing split the input string using '.' separator
    and apply [v.parse]. Merge by concatenate two values, and print by joining
    [v.print] generated strings using a '.' separator. Don't strip whitespaces.
*)
val dot_separated: 'a t -> 'a list t


(** Same as {!dot_separated} using ',' as separator. Strip whitespaces before
    and after the input string.
*)
val comma_separated: 'a t -> 'a list t


(** Same {!dot_separated} using '\n' as separator. Strip whitespaces before and
    after the input string.
*)
val newline_separated: 'a t -> 'a list t


(** Same as {!dot_separated} using blanks as separator. *)
val space_separated: string list t


(** [with_optional_parentheses v_main v_opt] Combine two values. The input
    string ["abcd (defg)"] is split between the part not between parentheses
    and the one between. [v_main] is applied to the first one and [v_opt] to
    the latter. If no parentheses is found, only apply [v_main].
*)
val with_optional_parentheses: 'a t -> 'b t -> ('a * 'b option) t


(** Optional value. *)
val opt: 'a t -> 'a option t


(** [choices nm lst] Value that must be in a list of predefined choices.
    Find the right association in [lst], comparison is case insensitive.
    If something failed output a message using [nm] as the name of the
    value represented.
*)
val choices: (unit -> string) -> (string * 'a) list -> 'a t


(** {2 Standard values} *)


(** URL value. *)
val url: string t


(** Copyright value. *)
val copyright: string t


(** File value. *)
val file: string t


(** File list value. *)
val files: string list t


(** File with glob value. *)
val file_glob: string t


(** Directory value. *)
val directory: string t


(** Module list value. *)
val modules: string list t


(** Category list value. *)
val categories: string list t


(** Findlib package name value, without its path. *)
val findlib_name: string t


(** Findlib package name with path value, e.g. oasis.base. *)
val findlib_full: string t


(** Internal library. *)
val internal_library: string t


(** Command line. *)
val command_line: (string * string list) t


(** Arguments of command line programs.  See {!OASISUtils.POSIX.split}
    for more information. *)
val command_line_options: string list t