external parse_xml_uri : string -> int -> bool -> bool -> tree = "caml_call_shredder_uri"
external parse_xml_string : string -> int -> bool -> bool -> tree = "caml_call_shredder_string"
external tree_print_xml_fast3 : tree -> [`Tree ] node -> Unix.file_descr ->unit = "caml_xml_tree_print"
-external tree_save : tree -> Unix.file_descr -> unit = "caml_xml_tree_save"
-external tree_load : Unix.file_descr -> bool -> int -> tree = "caml_xml_tree_load"
+external tree_save : tree -> Unix.file_descr -> string -> unit = "caml_xml_tree_save"
+external tree_load : Unix.file_descr -> string -> bool -> int -> tree = "caml_xml_tree_load"
external nullt : unit -> 'a node = "caml_xml_tree_nullt"
(* we need to move the fd to the correct position *)
flush out_c;
ignore (Unix.lseek fd (pos_out out_c) Unix.SEEK_SET);
- tree_save t.doc fd;
+ tree_save t.doc fd str;
close_out out_c
;;
let in_c = Unix.in_channel_of_descr fd in
let _ = set_binary_mode_in in_c true in
let load_table () =
- (let ms = input_line in_c in if ms <> magic_string then failwith ("Invalid index file " ^ ms));
+ (let ms = input_line in_c in if ms <> magic_string then failwith "Invalid index file");
(let vs = input_line in_c in if vs <> version_string then failwith "Invalid version file");
let table : (Tag.t,(Ptset.Int.t*Ptset.Int.t*Ptset.Int.t*Ptset.Int.t)) Hashtbl.t =
Marshal.from_channel in_c
ntable
in
let _ = Printf.eprintf "\nLoading tag table : " in
- let ntable = time ~count:0 load_table () in
+ let ntable = time (load_table) () in
ignore(Unix.lseek fd (pos_in in_c) Unix.SEEK_SET);
- let tree = { doc = tree_load fd load_text sample;
+ let tree = { doc = tree_load fd str load_text sample;
ttable = ntable;}
in close_in in_c;
tree
fun n -> tree_select_following_sibling t.doc n v
let next_sibling_below t = (); fun n _ -> tree_next_sibling t.doc n
-let next_element_below t = (); fun n _ -> tree_next_element t.doc n
+let next_element_below t = (); fun n _ -> tree_next_element t.doc n
+
let tagged_following_sibling_below t tag = (); fun n _ -> tree_tagged_following_sibling t.doc n tag
let select_following_sibling_below t = fun ts ->