Module Fl_metascanner

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