X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=src%2Fruntime.mli;h=fd36d23813005b6ba385b17b453dcc4f2d9b821c;hb=refs%2Fheads%2Fl3jit-refactor;hp=eec59805e5d7898c0fbef59ea418765d5bc81e3f;hpb=0578813dc7114276daf382d47661f027c973eb35;p=SXSI%2Fxpathcomp.git diff --git a/src/runtime.mli b/src/runtime.mli index eec5980..fd36d23 100644 --- a/src/runtime.mli +++ b/src/runtime.mli @@ -2,7 +2,16 @@ module type S = sig type result_set val top_down_run : Ata.t -> Tree.t -> Tree.node -> result_set val bottom_up_run : Ata.t -> Tree.t -> Compile.text_query * string -> result_set - val grammar_run : Ata.t -> Grammar.t -> unit -> result_set + val grammar_run : Ata.t -> Grammar2.t -> unit -> result_set end module Make (U : ResJIT.S) : S with type result_set = U.NS.t + +type 'a result_ops = { + empty : 'a; + subtree_tags : Tree.t -> Tree.node -> Tag.t -> 'a; + subtree_elements : Tree.t -> Tree.node -> 'a; + exec : 'a array -> 'a array -> 'a array -> Tree.node -> ResJIT.code -> unit; +} + +val top_down_run : 'a result_ops -> Ata.t -> Tree.t -> Tree.node -> 'a