(* Copyright NICTA 2008 *)
(* Distributed under the terms of the LGPL (see LICENCE) *)
(******************************************************************************)
+INCLUDE "debug.ml"
module type BINARY =
sig
type node_content
type t
val parse_xml_uri : string -> t
val parse_xml_string : string -> t
+ val tag_pool : t -> Tag.pool
val string : t -> string
val descr : t -> descr
val left : t -> t
external int_of_node : 'a node -> int = "%identity"
- external parse_xml_uri : string -> t = "caml_call_shredder_uri"
- let parse_xml_uri uri = parse_xml_uri uri
-
- external parse_xml_string : string -> t = "caml_call_shredder_string"
- let parse_xml_string uri = parse_xml_string uri
+ external parse_xml_uri : string -> int -> bool -> bool -> t = "caml_call_shredder_uri"
+
+ external parse_xml_string : string -> int -> bool -> bool -> t = "caml_call_shredder_string"
+
module Text =
struct
external is_leaf : t -> [`Tree] node -> bool = "caml_xml_tree_is_leaf"
- external tag : t -> [`Tree ] node -> Tag.t = "caml_xml_tree_tag"
- external tag_id : t -> [`Tree ] node -> unit = "caml_xml_tree_tag_id"
+(* external tag : t -> [`Tree ] node -> T = "caml_xml_tree_tag"*)
+ external tag_id : t -> [`Tree ] node -> Tag.t = "caml_xml_tree_tag_id"
let is_last t n = equal nil (next_sibling t n)
begin
Printf.eprintf "Node %i has tag '%s' DocOrder=%i, DocID of PrevText,MyText,NextText : (%i = %s,%i = %s,%i = %s)\n%!"
(int_of_node id)
- (Tag.to_string (tag t id))
+ (Tag.to_string (tag_id t id))
(node_xml_id t id)
(int_of_node (prev_text t id))
(Text.get_text t (prev_text t id))
node = Node(NC (root t)) }
- let parse_xml_uri str = node_of_t (parse_xml_uri str)
- let parse_xml_string str = node_of_t (parse_xml_string str)
+ let parse_xml_uri str = node_of_t
+ (MM((parse_xml_uri str
+ !Options.sample_factor
+ !Options.index_empty_texts
+ !Options.disable_text_collection),__LOCATION__))
+
+ let parse_xml_string str = node_of_t
+ (MM((parse_xml_string str
+ !Options.sample_factor
+ !Options.index_empty_texts
+ !Options.disable_text_collection),__LOCATION__))
+
+
+ external pool : doc -> Tag.pool = "%identity"
+ let tag_pool t = pool t.doc
let compare a b = match a.node,b.node with
| Node(NC i),Node(NC j) -> compare i j
let tag =
function { node=Node(SC _) } -> Tag.pcdata
- | { doc=d; node=Node(NC n)} -> tag d n
- | _ -> failwith "Tag"
+ | { doc=d; node=Node(NC n)} -> tag_id d n
+ | _ -> failwith "tag"
- let tag_id =
+(* let tag_id =
function { node=Node(SC _) } -> ()
| { doc=d; node=Node(NC n)} -> tag_id d n
| _ -> ()
-
+*)
let string_below t id =
let pid = parent_doc t.doc id in
match t.node with
aux (first_child n);
aux (next_sibling n)
in aux t
+
+ let print_stats _ = ()
end
end
-
-
+IFDEF DEBUG
+THEN
module DEBUGTREE
= struct
end
module Binary = DEBUGTREE
+ELSE
+module Binary = XML.Binary
+END (* IFDEF DEBUG *)