(***********************************************************************) (* *) (* TAToo *) (* *) (* Kim Nguyen, LRI UMR8623 *) (* Université Paris-Sud & CNRS *) (* *) (* Copyright 2010-2012 Université Paris-Sud and Centre National de la *) (* Recherche Scientifique. All rights reserved. This file is *) (* distributed under the terms of the GNU Lesser General Public *) (* License, with the special exception on linking described in file *) (* ../LICENSE. *) (* *) (***********************************************************************) (* Time-stamp: *) let doc = let fd = open_in Sys.argv.(1) in let d = Tree.Naive.load_xml_file fd in close_in fd; d let query = let arg2 = Sys.argv.(2) in Xpath.Parser.parse (Ulexing.from_latin1_string arg2) let auto = Xpath.Compile.path query open Format let () = fprintf err_formatter "Query: %a\n%!" Xpath.Ast.print_path query; fprintf err_formatter "Automata: %a\n%!" Auto.Ata.print auto; fprintf err_formatter "Evaluating automaton:\n%!"; let module Naive = Auto.Eval.Make(Tree.Naive) in let t1 = Unix.gettimeofday() in let results = Naive.eval auto doc (Tree.Naive.root doc) in let teval = (Unix.gettimeofday () -. t1) *. 1000. in let t1 = Unix.gettimeofday () in output_string stdout "\n"; List.iter (fun n -> Tree.Naive.print_xml stdout doc n; output_char stdout '\n' ) results; output_string stdout "\n"; let tprint = (Unix.gettimeofday () -. t1) *. 1000. in flush stdout; fprintf err_formatter "evaluation time: %fms\nserialization time: %fms\n%!" teval tprint