The Findlib Library : Fl_metascanner

`sig
type formal_pred = [ `NegPred of string | `Pred of string ]
type flavour = [ `Appendix | `BaseDef ]
type pkg_definition = {
def_var : string;
def_flav : Fl_metascanner.flavour;
def_preds : Fl_metascanner.formal_pred list;
def_value : string;
}
type pkg_expr = {
pkg_defs : Fl_metascanner.pkg_definition list;
pkg_children : (string * Fl_metascanner.pkg_expr) list;
}
exception Error of string
val parse : Stdlib.in_channel -> Fl_metascanner.pkg_expr
val parse_lexing : Stdlib.Lexing.lexbuf -> Fl_metascanner.pkg_expr
val print_def : Stdlib.out_channel -> Fl_metascanner.pkg_definition -> unit
val print : Stdlib.out_channel -> Fl_metascanner.pkg_expr -> unit
val lookup :
string -> string list -> Fl_metascanner.pkg_definition list -> string
val lookup_2 :
string ->
string list ->
Fl_metascanner.pkg_definition list ->
string * Fl_metascanner.formal_pred list
val predicate_exists : string -> Fl_metascanner.pkg_definition list -> bool
end`