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