# Module OpamFilter

    module OpamFilter: sig .. end

Manage filters

    val to_string : OpamTypes.filter -> string

Pretty-print

    val fold_down_left : ('a -> OpamTypes.filter -> 'a) -> 'a -> OpamTypes.filter -> 'a

Folds on the tree of a filter

    val variables : OpamTypes.filter -> OpamTypes.full_variable list

Returns all the variables appearing in a filter (including the ones within string interpolations

    type env = OpamTypes.full_variable -> OpamTypes.variable_contents option

Type of filter environment.

    type fident = OpamTypes.name list * OpamTypes.variable * (string * string) option

The type of filter idents with (optionally multiple) qualifying package names and optional string converter

    val expand_string : env -> string -> string

Rewrites string interpolations within a string

    val eval : ?default:OpamTypes.variable_contents ->
           env -> OpamTypes.filter -> OpamTypes.variable_contents

Computes the value of a filter. May raise `Failure` if `default` isn't provided

    val eval_to_bool : ?default:bool -> env -> OpamTypes.filter -> bool

Like `to_value` but casts the result to a bool. Raises `Invalid_argument` if not a valid bool and no default supplied.

    val opt_eval_to_bool : env -> OpamTypes.filter option -> bool

Same as `eval_to_bool`, but takes an option as filter and returns always `true` on `None`, `false` when the filter is `Undefined`. This is the most common behaviour for using "filters" for filtering

    val eval_to_string : ?default:string -> env -> OpamTypes.filter -> string

Like `to_value` but casts the result to a string

    val ident_of_var : OpamTypes.full_variable -> fident

Wraps a full_variable into a fident accessor

    val ident_value : ?default:OpamTypes.variable_contents ->
           env -> fident -> OpamTypes.variable_contents

Resolves a filter ident. Like `eval`, may raise Failure if no default is provided

    val ident_string : ?default:string -> env -> fident -> string

Like `ident_value`, but casts the result to a string

    val ident_bool : ?default:bool -> env -> fident -> bool

Like `ident_value`, but casts the result to a bool

    val expand_interpolations_in_file : env -> OpamTypes.basename -> unit

Rewrites `basename`.in to `basename`, expanding interpolations

    val commands : env -> OpamTypes.command list -> string list list

Processes filters evaluation in a command list: parameter expansion and conditional filtering

    val single_command : env -> OpamTypes.arg list -> string list

Process a simpler command, without filters

    val commands_variables : OpamTypes.command list -> OpamTypes.full_variable list

Extracts variables appearing in a list of commands