Defunctorize the ResJIT module.
[SXSI/xpathcomp.git] / src / runtime.mli
1 module type S = sig
2   type result_set
3   val top_down_run : Ata.t -> Tree.t -> Tree.node -> result_set
4   val bottom_up_run : Ata.t -> Tree.t -> Compile.text_query * string -> result_set
5   val grammar_run : Ata.t -> Grammar2.t -> unit -> result_set
6 end
7
8 module Make (U : ResJIT.S) : S with type result_set = U.NS.t
9
10 type 'a result_ops = {
11   empty : 'a;
12   subtree_tags : Tree.t -> Tree.node -> Tag.t -> 'a;
13   subtree_elements : Tree.t -> Tree.node -> 'a;
14   exec : 'a array -> 'a array -> 'a array -> Tree.node -> ResJIT.code -> unit;
15 }
16
17 val top_down_run : 'a result_ops -> Ata.t -> Tree.t -> Tree.node -> 'a