;;
let total_time () = List.fold_left (+.) 0. !l;;
+let test filename query output =
+ Printf.eprintf "Parsing document : %!";
+ let v = time Tree.Binary.parse_xml_uri filename in
+(* Tree.dump v;
+ Printf.eprintf "\n\n\n\n\n%!";
+ Tree.Binary.print_xml_fast stderr v *)
+ Printf.eprintf "Full Traversal\n%!";
+ time (Tree.full_traversal) v;
+ Printf.eprintf "Traversal\n%!";
+ time (Tree.traversal) v;
+ Printf.eprintf "CPP Traversal\n%!";
+ time (Tree.cpp_traversal) v
+
+
let main filename query output =
Printf.eprintf "Parsing document : %!";
let v = time Tree.Binary.parse_xml_uri filename in
Printf.eprintf "TopDown (No BackTrack) : \n";
time (fun v -> ignore (TopDown.accept auto v)) v;
- P(Printf.eprintf "Max states in TopDownNOBT : %i\n%!" auto.max_states);
+ Printf.eprintf "Number of nodes in the result set : %i\n" (BST.cardinal auto.result);
begin
- match output with
+ match output with
| None -> ()
| Some f ->
(prerr_endline ("usage : " ^ Sys.argv.(0) ^ " <document> \'query\'[ <output> ]");
exit 1)
;;
-main Sys.argv.(1) Sys.argv.(2) (if argc == 4 then Some Sys.argv.(3) else None) ;;
+
+
+test Sys.argv.(1) Sys.argv.(2) (if argc == 4 then Some Sys.argv.(3) else None) ;;