Implement copy and composition of automata.
[tatoo.git] / src / tatoo.ml
index 2c32062..1dff2a4 100644 (file)
 (*                                                                     *)
 (***********************************************************************)
 
-(*
-  Time-stamp: <Last modified on 2013-04-22 18:48:48 CEST by Kim Nguyen>
-*)
-
 open Format
 
 let time f arg msg =
@@ -24,7 +20,7 @@ let time f arg msg =
   let r = f arg in
   let t2 = Unix.gettimeofday () in
   let time = (t2 -. t1) *. 1000. in
-  if !Options.stats then fprintf err_formatter "@[STATS: %s: %fms@]@." msg time;
+  Logger.msg `STATS "%s: %fms" msg time;
   r
 
 
@@ -44,21 +40,20 @@ let main () =
   let auto =
     time Xpath.Compile.path query "compiling XPath query"
   in
+  let auto = time Ata.copy auto "copying Automaton" in
   let output =
     match !Options.output_file with
     | None | Some "-" | Some "/dev/stdout" -> stdout
     | Some f -> open_out f
   in
   if !Options.stats then begin
-    fprintf err_formatter "@[STATS: Query: %a @]@." Xpath.Ast.print_path query;
-    fprintf err_formatter "@[STATS: @[Automaton: @\n";
-    Ata.print err_formatter auto;
-    fprintf err_formatter "@]@]@.";
+    Logger.msg `STATS "Query: %a " Xpath.Ast.print_path query;
+    Logger.msg `STATS "@[Automaton: @\n%a@]" Ata.print auto;
   end;
 
-  let module Naive = Eval.Make(Naive_tree) in
+  let module Naive = Run.Make(Naive_tree) in
   let results =
-    time (Naive.eval auto doc) (Naive_tree.root doc) "evaluating query"
+    time (Naive.eval auto doc) ([Naive_tree.root doc]) "evaluating query"
   in
   time (fun () ->
   output_string output "<xml_result>\n";
@@ -73,7 +68,7 @@ let main () =
   output_string output "</xml_result>\n";
   flush output;
   if output != stdout then close_out output
+
 ) () "serializing results"