OpamFormat.VSourceThese base converters raise Unexpected when not run on the right input (which is then converted to Bad_format by the parser.
positive or null integer
Trimmed string
Command arguments, i.e. strings or idents
Strings or bools
"a b c"; also allows just "a" to be parsed as a singleton list
"(a b c)"
Options in the value type sense, i.e. a value with an optional list of parameters in braces: "value {op1 op2}"
val map_list :
?depth:int ->
(OpamTypes.value, 'a) OpamPp.t ->
(OpamTypes.value, 'a list) OpamPp.tAn expected list depth may be specified to enable removal of extra brackets (never use ~depth for an inner list)
Normalises to the given list depth when parsing, and removes brackets that can be made implicit when printing
val map_option :
(OpamTypes.value, 'a) OpamPp.t ->
(OpamTypes.value list, 'b) OpamPp.t ->
(OpamTypes.value, 'a * 'b) OpamPp.tMaps on the two terms of an option constructor.
val map_options_2 :
(OpamTypes.value, 'a) OpamPp.t ->
(OpamTypes.value list, 'b) OpamPp.t ->
(OpamTypes.value list, 'c) OpamPp.t ->
(OpamTypes.value, 'a * 'b * 'c) OpamPp.tMaps over two options (e.g. v {op1} {op2})
val map_options_3 :
(OpamTypes.value, 'a) OpamPp.t ->
(OpamTypes.value list, 'b) OpamPp.t ->
(OpamTypes.value list, 'c) OpamPp.t ->
(OpamTypes.value list, 'd) OpamPp.t ->
(OpamTypes.value, 'a * 'b * 'c * 'd) OpamPp.tMaps over three options (e.g. v {op1} {op2} {op3})
val map_pair :
(OpamTypes.value, 'a) OpamPp.t ->
(OpamTypes.value, 'b) OpamPp.t ->
(OpamTypes.value, 'a * 'b) OpamPp.tA pair is simply a list with two elements in the value type
val map_triple :
(OpamTypes.value, 'a) OpamPp.t ->
(OpamTypes.value, 'b) OpamPp.t ->
(OpamTypes.value, 'c) OpamPp.t ->
(OpamTypes.value, 'a * 'b * 'c) OpamPp.tA triple is simply a list with three elements in the value type
Specialised url parser when the backend is already known
val filter_ident :
(OpamTypes.value,
OpamTypes.name option list * OpamTypes.variable * (string * string) option)
OpamPp.tArguments in commands (term + optional filter)
val command :
(OpamTypes.value,
(OpamTypes.simple_arg * OpamTypes.filter option) list
* OpamTypes.filter option)
OpamPp.tval constraints :
(OpamTypes.value, 'a) OpamPp.t ->
(OpamTypes.value list, (OpamFormula.relop * 'a) OpamFormula.formula) OpamPp.tSimple dependency constraints
val filtered_constraints :
(OpamTypes.value, 'version) OpamPp.t ->
(OpamTypes.value list,
'version OpamTypes.filter_or_constraint OpamFormula.formula)
OpamPp.tDependency constraints mixed with filters
Package versions
Package versions as filters, as they may appear in dependency (may be an expanded string or an ident)
A package name, encoded as a string, but with restrictions
val package_atom :
(OpamTypes.value list, 'a) OpamPp.t ->
(OpamTypes.value, OpamTypes.name * 'a) OpamPp.tReturns an atom parser ("package" {>= "version"}) from a constraint and a version parser
val package_formula :
[< `Conj | `Disj ] ->
(OpamTypes.value list, 'a) OpamPp.t ->
(OpamTypes.value, (OpamTypes.name * 'a) OpamFormula.formula) OpamPp.tTakes a parser for constraints. Lists without operator will be understood as conjunctions or disjunctions depending on the first argument.
val package_formula_items :
[< `Conj | `Disj ] ->
(OpamTypes.value list, 'a) OpamPp.t ->
(OpamTypes.value list, (OpamTypes.name * 'a) OpamFormula.formula) OpamPp.tLike package_formula, but takes the list items directly
Environment variable updates syntax