package opam-lib
Install
Dune Dependency
Authors
-
TThomas Gazagnaire <thomas@gazagnaire.org>
-
AAnil Madhavapeddy <anil@recoil.org>
-
FFabrice Le Fessant <Fabrice.Le_fessant@inria.fr>
-
FFrederic Tuong <tuong@users.gforge.inria.fr>
-
LLouis Gesbert <louis.gesbert@ocamlpro.com>
-
GGuillem Rieu <guillem.rieu@ocamlpro.com>
-
VVincent Bernardoff <vb@luminar.eu.org>
-
RRoberto Di Cosmo <roberto@dicosmo.org>
Maintainers
Sources
sha256=625767c3465219cc8799aad1449c74279b31686db0821300cfdb92fbff17e9fd
md5=e0688c0cf9a55f93ee93f62d07cf6b74
doc/opam-lib.format/OpamFormat/index.html
Module OpamFormat
Format of OPAM configuration files.
val empty : OpamTypes.file
The empty file
val map :
(string -> OpamTypes.value -> (string * OpamTypes.value) option) ->
OpamTypes.file ->
OpamTypes.file
map a file
val variables : OpamTypes.file_item list -> (string * OpamTypes.value) list
Get all the variable definitions from a list of items
val sections :
OpamTypes.file_item list ->
(string * OpamTypes.file_section) list
Get all the sections from a list of items
val is_valid :
?allow_extended:bool ->
OpamTypes.file_item list ->
string list ->
bool
Check whether a list of items contains only valid variable definitions.
val invalid_fields :
?allow_extended:bool ->
OpamTypes.file_item list ->
string list ->
string list
Find all the invalid fields. If allow_extended
is specified and true, fields starting with "x-"
are not reported
Parsing functions
exception Bad_format of OpamTypes.pos option * string list * string
All the following parsing function raise Bad_format
in case the input does not have the right format.
val bad_format : ?pos:OpamTypes.pos -> ('a, unit, string, 'b) format4 -> 'a
Raise Bad_format
.
val string_of_bad_format : ?file:OpamTypes.filename -> exn -> string
val add_pos : OpamTypes.pos -> exn -> exn
Adds a position to a Bad_format exception if it doesn't have one yet
val value_pos : OpamTypes.value -> OpamTypes.pos
Get the position out of a value
val values_pos : OpamTypes.value list -> OpamTypes.pos option
Get the position of the first element out of a value list
val parse_bool : OpamTypes.value -> bool
Parse a boolean
val parse_int : OpamTypes.value -> int
Parse an integer
val parse_ident : OpamTypes.value -> string
Parse an ident
val parse_string : OpamTypes.value -> string
Parse a string
val parse_list : (OpamTypes.value -> 'a) -> OpamTypes.value -> 'a list
Parse a list of 'things'
val parse_list_list : (OpamTypes.value -> 'a) -> OpamTypes.value -> 'a list
Parse a list of list of 'things'
val parse_group : (OpamTypes.value -> 'a) -> OpamTypes.value -> 'a list
Parse a group of 'things'
val parse_option :
(OpamTypes.value -> 'a) ->
(OpamTypes.value list -> 'b) ->
OpamTypes.value ->
'a * 'b option
Parse a value and its option of 'things'
val parse_single_option :
(OpamTypes.value -> 'a) ->
(OpamTypes.value -> 'b) ->
OpamTypes.value ->
'a * 'b option
Parse a value and a single optional value
val parse_string_option :
(OpamTypes.value list -> 'a) ->
OpamTypes.value ->
string * 'a option
Parse a string with an optional argument
val parse_string_list : OpamTypes.value -> string list
Parse a list of strings
val parse_single_string : OpamTypes.value list -> string
Parse a single string
val parse_pair :
(OpamTypes.value -> 'a) ->
(OpamTypes.value -> 'b) ->
OpamTypes.value ->
'a * 'b
Parse a pair of strings
val parse_or : (string * (OpamTypes.value -> 'a)) list -> OpamTypes.value -> 'a
Try to parse the value using function from the list. All the parsing functions are tried until one succeeds. The first argument is a debug message.
Creation functions
val make_bool : bool -> OpamTypes.value
Create a boolean
val make_int : int -> OpamTypes.value
Create an integer
val make_ident : string -> OpamTypes.value
Create an ident
val make_string : string -> OpamTypes.value
Create a string
val make_list : ('a -> OpamTypes.value) -> 'a list -> OpamTypes.value
Create a list of 'things'
val make_string_list : string list -> OpamTypes.value
Create a list of strings
val make_group : ('a -> OpamTypes.value) -> 'a list -> OpamTypes.value
Create a group of 'things'
val make_option :
('a -> OpamTypes.value) ->
('b -> OpamTypes.value list) ->
('a * 'b option) ->
OpamTypes.value
Create a value and its optional arguments
val make_pair :
('a -> OpamTypes.value) ->
('b -> OpamTypes.value) ->
('a * 'b) ->
OpamTypes.value
Create a pair
val make_string_pair : (string * string) -> OpamTypes.value
Create a pair of strings
val make_section : OpamTypes.file_section -> OpamTypes.file_item
Create a file section
val make_variable : (string * OpamTypes.value) -> OpamTypes.file_item
Create a variable
Printing functions
val string_of_value : OpamTypes.value -> string
Print a value
val string_of_values : OpamTypes.value list -> string
Print a list of values
val string_of_file : simplify:bool -> OpamTypes.file -> string
Print a file
Finding functions
val assoc : OpamTypes.file_item list -> string -> (OpamTypes.value -> 'a) -> 'a
Get the value of a field
val assoc_option :
OpamTypes.file_item list ->
string ->
(OpamTypes.value -> 'a) ->
'a option
Get the value of a field. If the field does not exist, return None
val assoc_default :
'a ->
OpamTypes.file_item list ->
string ->
(OpamTypes.value -> 'a) ->
'a
Get the value of a field. If the variable does not exist, return a default value
val assoc_list :
OpamTypes.file_item list ->
string ->
(OpamTypes.value -> 'a list) ->
'a list
Get the value associated to a variable. If the variable does not exists, return
val assoc_string_list : OpamTypes.file_item list -> string -> string list
Get the string list associated to a variable. If the variable does not exist, return
val get_section_by_kind :
OpamTypes.file_item list ->
string ->
OpamTypes.file_section
Get one section of a certain kind
val get_all_section_by_kind :
OpamTypes.file_item list ->
string ->
OpamTypes.file_section list
Get all the sections of a certain kind
val assoc_sections :
OpamTypes.file_item list ->
string ->
(OpamTypes.file_section -> 'a) ->
'a list
Get sections
Formula
This section is dedicated to the parsing and creatin of dependency and conflict formaulas. It's maybe easier to do that directly in the parser ...
val parse_package_name :
?expected:OpamTypes.name ->
OpamTypes.value ->
OpamTypes.name
val parse_package_version :
?expected:OpamTypes.version ->
OpamTypes.value ->
OpamTypes.version
val parse_constraints : OpamTypes.value list -> OpamFormula.version_formula
Parser for version constraints in formulas
val parse_ext_constraints :
OpamTypes.value list ->
OpamTypes.package_dep_flag list * OpamFormula.version_formula
Parser for version constraints in formula with dependency flags
val make_constraints : OpamFormula.version_formula -> OpamTypes.value list
Builder for version constraints in formulas
val make_ext_constraints :
(OpamTypes.package_dep_flag list * OpamFormula.version_formula) ->
OpamTypes.value list
Builder for version constraints in formula with dependency flags
val parse_formula :
[ `Conj | `Disj ] ->
(OpamTypes.value list -> 'a) ->
OpamTypes.value ->
(OpamTypes.name * 'a) OpamTypes.generic_formula
Parse package formula as a `Conj
unction or `Disj
unction, using the given parser for constraints
val make_formula :
[ `Conj | `Disj ] ->
('a -> OpamTypes.value list) ->
(OpamTypes.name * 'a) OpamTypes.generic_formula ->
OpamTypes.value
Build a formula as a `Conj
unction or `Disj
unction, building constraints with the given function
val parse_compiler_version : OpamTypes.value -> OpamTypes.compiler_version
Parse compiler versions
val parse_compiler_constraint :
OpamTypes.value ->
OpamTypes.compiler_constraint
Parse compiler constraints
val make_compiler_constraint : OpamTypes.compiler_constraint -> OpamTypes.value
Build a compiler constraint
val parse_os_constraint :
OpamTypes.value ->
(bool * string) OpamTypes.generic_formula
Parse an OS constraint
val make_os_constraint :
(bool * string) OpamTypes.generic_formula ->
OpamTypes.value
Build an OS constraint
Environment variables
val parse_env_variable : OpamTypes.value -> string * string * string
Parsing
val make_env_variable : (string * string * string) -> OpamTypes.value
Making
filter expressions
val parse_filter : OpamTypes.value list -> OpamTypes.filter
Parsing
val make_filter : OpamTypes.filter -> OpamTypes.value list
Creation
val parse_single_command : OpamTypes.value -> OpamTypes.arg list
Unfiltered argument list
val make_single_command : OpamTypes.arg list -> OpamTypes.value
val parse_command : OpamTypes.value -> OpamTypes.command
Parse a command
val make_command : OpamTypes.command -> OpamTypes.value
Create a command
val parse_commands : OpamTypes.value -> OpamTypes.command list
Parse a list of commands
val make_commands : OpamTypes.command list -> OpamTypes.value
Create a list of commands
val parse_messages : OpamTypes.value -> (string * OpamTypes.filter option) list
Parse a list of commands
val make_libraries : (string * OpamTypes.filter option) list -> OpamTypes.value
Create a list of libraries/syntax
val parse_libraries :
OpamTypes.value ->
(string * OpamTypes.filter option) list
Parse a list of libraries/syntax
val make_flag : OpamTypes.package_flag -> OpamTypes.value
Create a package flag
val parse_flag : OpamTypes.value -> OpamTypes.package_flag
Parse a package flag
Tags
val parse_tags : OpamTypes.value -> OpamTypes.tags
Parse tags
val make_tags : OpamTypes.tags -> OpamTypes.value
Make tags
Features
val parse_features :
OpamTypes.value ->
(OpamVariable.t * string * OpamTypes.filter) list
Parse features list
val make_features :
(OpamVariable.t * string * OpamTypes.filter) list ->
OpamTypes.value
Make features list