X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=main.ml;h=62950442ae52e6a813cd456a3326f1e1319122ab;hb=04630ec1de987f525c6594fcada17bb49ee79d6a;hp=c8ca27e2f7de79652a2e016bd19f9810013c6f71;hpb=3623eefccfb5fc69e19ad975a3669f51a2a8b276;p=SXSI%2Fxpathcomp.git diff --git a/main.ml b/main.ml index c8ca27e..6295044 100644 --- a/main.ml +++ b/main.ml @@ -21,6 +21,7 @@ let time f x = ;; let total_time () = List.fold_left (+.) 0. !l;; + let main filename query output = Printf.eprintf "Parsing document : %!"; let v = time Tree.Binary.parse_xml_uri filename in @@ -38,12 +39,13 @@ let main filename query output = let auto = time XPath.Compile.compile query in XPath.Ast.print Format.err_formatter query; Format.eprintf "\n%!"; - +(* Format.eprintf "Internal rep of the tree is :\n%!"; + Tree.Binary.dump v; *) Printf.eprintf "TopDown (No BackTrack) : \n"; - time (TopDown.run auto) v; - P(Printf.eprintf "Max states in TopDownNOBT : %i\n%!" auto.max_states); + time (fun v -> ignore (TopDown.accept auto v)) v; + 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 -> @@ -52,18 +54,22 @@ let main filename query output = let oc = open_out f in output_string oc "\n"; BST.iter (fun t -> Tree.Binary.print_xml_fast oc t; - output_string oc "\n------------------"; - output_char oc '\n') auto.result) (); + output_char oc '\n') auto.result) (); end; Printf.eprintf "Total time : %fms\n Coherence : %i\n%!" (total_time()) ;; - let argc = Array.length Sys.argv;; if (argc < 3 || argc >4) then (prerr_endline ("usage : " ^ Sys.argv.(0) ^ " \'query\'[ ]"); exit 1) ;; -main Sys.argv.(1) Sys.argv.(2) (if argc == 4 then Some Sys.argv.(3) else None) ;; + + +main Sys.argv.(1) Sys.argv.(2) (if argc == 4 then Some Sys.argv.(3) else None) ;; + +Printf.eprintf "\n=================================================\nDEBUGGING\n%!"; +Tree.DEBUGTREE.print_stats Format.err_formatter;; +