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;
}
val parse : Pervasives.in_channel -> Fl_metascanner.pkg_expr
val print : Pervasives.out_channel -> Fl_metascanner.pkg_expr -> unit
val lookup :
string -> string list -> Fl_metascanner.pkg_definition list -> string
val predicate_exists : string -> Fl_metascanner.pkg_definition list -> bool
end`