Defunctorize the ResJIT module.
[SXSI/xpathcomp.git] / src / main.ml
index 42c8822..128ac53 100644 (file)
@@ -76,13 +76,24 @@ let main v query_string output =
 
       if !Options.count_only then
        let module R = ResJIT.Count in
-       let module M = Runtime.Make(R) in
        (* mk_runtime run auto doc arg count print outfile  *)
-       mk_runtime M.top_down_run auto v Tree.root R.NS.length R.NS.serialize None
+       mk_runtime (Runtime.top_down_run {
+         Runtime.empty = R.NS.empty;
+         Runtime.subtree_tags = R.NS.subtree_tags;
+         Runtime.subtree_elements = R.NS.subtree_elements;
+         Runtime.exec = ResJIT.count_exec;
+       })
+         auto v Tree.root R.NS.length R.NS.serialize None
       else
        let module R = ResJIT.Mat in
-       let module M = Runtime.Make(R) in
-       mk_runtime M.top_down_run auto v Tree.root R.NS.length R.NS.serialize !Options.output_file
+       mk_runtime
+         (Runtime.top_down_run {
+           Runtime.empty = R.NS.empty;
+           Runtime.subtree_tags = R.NS.subtree_tags;
+           Runtime.subtree_elements = R.NS.subtree_elements;
+           Runtime.exec = ResJIT.mat_exec;
+       })
+         auto v Tree.root R.NS.length R.NS.serialize !Options.output_file
   in
   runtime ()
 ;;