Split the Options module in two to remove a circular dependency in
[SXSI/xpathcomp.git] / src / tree.ml
index e729034..0c62ec7 100644 (file)
@@ -81,7 +81,7 @@ struct
   let do_text b t =
     if Buffer.length t > 0 then begin
       let s = Buffer.contents t in
-      if (!Options.index_empty_texts) || not (is_whitespace s) then
+      if (!Config.index_empty_texts) || not (is_whitespace s) then
        begin
          open_tag b "<$>";
          text b s;
@@ -123,17 +123,17 @@ struct
     let finalize () =
       do_text build buf;
       close_tag build "";
-      Logger.print Format.err_formatter "Finished parsing@\n";
-      Logger.print Format.err_formatter "Starting index construction@\n";
+      LOG ( __ "parsing" 2 "%s\n" "Finished parsing");
+      LOG ( __ "indexing" 2 "%s\n" "Starting index construction");
       let r = close_document build in
-      Logger.print Format.err_formatter "Finished index construction@\n";
+      LOG ( __ "indexing" 2 "%s\n" "Finished index construction");
       r
     in
     Expat.set_start_element_handler parser_ (start_element_handler parser_ build buf);
     Expat.set_end_element_handler parser_ (end_element_handler parser_ build buf);
     Expat.set_character_data_handler parser_ (character_data_handler parser_ build buf);
-    Logger.print Format.err_formatter "Started parsing@\n";
-    open_document build !Options.sample_factor !Options.disable_text_collection !Options.text_index_type;
+    LOG ( __ "parsing" 2 "%s\n" "Started parsing");
+    open_document build !Config.sample_factor !Config.disable_text_collection !Config.text_index_type;
     open_tag build "";
     parser_, finalize
 
@@ -347,10 +347,10 @@ let rec iter_array_tag i a len tree node acc =
     iter_array_tag (i+1) a len tree node
       (acc - (tree_subtree_tags tree node a.(i)))
 
-external tree_subtree_elements : tree -> [`Tree] Node.t -> tag_list -> int = "caml_xml_tree_subtree_elements" "noalloc"
+external tree_subtree_elements : tree -> [`Tree] Node.t -> int = "caml_xml_tree_subtree_elements" "noalloc"
 
 let subtree_elements t node =
-  tree_subtree_elements t.doc node t.attribute_array
+  tree_subtree_elements t.doc node
 (*
 let subtree_elements t node =
   let size = tree_subtree_size t.doc node - 1 in
@@ -540,9 +540,9 @@ let is_node t = t != nil
 let is_root t = t == root
 
 let node_of_t t  =
-  Logger.print err_formatter "Initializing tag structure@\n";
+  LOG ( __ "indexing" 2 "%s\n" "Initializing tag structure");
   let _ = Tag.init (mk_tag_ops t) in
-  Logger.print err_formatter "Starting tag table construction@\n";
+  LOG ( __ "indexing" 2 "%s\n" "Starting tag table construction");
   let f, n, c, d = time collect_labels t ~msg:"Building tag relationship table" in
   let c = Array.map TagS.to_ptset c in
   let n = Array.map TagS.to_ptset n in
@@ -633,7 +633,7 @@ let load ?(sample=64) ?(load_text=true) str =
   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");
-    (let vs = input_line in_c in if vs <> version_string then failwith "Invalid version file");
+    (let vs = input_line in_c in if vs <> version_string then failwith "Unsupported index format");
     let c = load_tag_table in_c in
     let s = load_tag_table in_c in
     let d = load_tag_table in_c in
@@ -804,8 +804,6 @@ Largest tag id: %i@\n@?"
       (Ptset.Int.cardinal alltags)
       (Ptset.Int.max_elt alltags)
 
-(*
-  Logger.print err_formatter "Average depth: %f, number of leaves %i@\n@?" ((float_of_int a)/. (float_of_int b)) b
-;;
 
-*)
+type tree_pointer = tree
+let get_tree_pointer x = x.doc