6 Xpath.Parser.parse (Ulexing.from_utf8_string p)
9 let () = Table_options.parse () in
11 let fd, close_fd = match !Table_options.input_file with
12 None | Some "-" | Some "/dev/stdin" ->stdin,ignore
14 let fd = open_in input in fd, fun() -> close_in fd
16 (*let inc = open_in Sys.argv.(1) in*)
17 let doc = Naive_tree.load_xml_file fd in
24 !Table_options.queries
26 let t1 = Unix.gettimeofday () in
28 List.map (fun query -> compile_xpath query) queries
31 List.map (fun qtree -> Query_tree.minimize_qtree qtree) query_tree_list
33 let root = Bitvector.create (Naive_tree.size doc) in
34 Bitvector.set root 0 true;
36 let v = eval_qtree doc root q in
37 let res = decode_bit doc v in
38 print_string "<xml_result num=\"1\" >\n";
39 print_node_list doc res;
40 print_string "</xml_result>\n";
43 let t2 = Unix.gettimeofday () in
44 let t = (t2 -. t1) *. 1000. in
45 let _ = if !Table_options.count then
46 Format.fprintf Format.std_formatter "there are %i nodes\nit takes %fms\n" !Query_tree.compteur t;