(* 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 save : t -> string -> unit
+ val load : ?sample:int -> string -> t
val tag_pool : t -> Tag.pool
val string : t -> string
val descr : t -> descr
external int_of_node : 'a node -> int = "%identity"
- external parse_xml_uri : string -> int -> bool -> bool -> t = "caml_call_shredder_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"
+ external save_tree : t -> string -> unit = "caml_xml_tree_save"
+ external load_tree : string -> int -> t = "caml_xml_tree_load"
+
module Text =
struct
let parse_xml_uri str = node_of_t
- (parse_xml_uri str
- !Options.sample_factor !Options.index_empty_texts !Options.disable_text_collection)
+ (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
- (parse_xml_string str
- !Options.sample_factor !Options.index_empty_texts !Options.disable_text_collection)
+ (MM((parse_xml_string str
+ !Options.sample_factor
+ !Options.index_empty_texts
+ !Options.disable_text_collection),__LOCATION__))
+
+
+ let save t str = save_tree t.doc str
+
+ let load ?(sample=64) str = node_of_t (load_tree str sample)
external pool : doc -> Tag.pool = "%identity"
-
-
+IFDEF DEBUG
+THEN
module DEBUGTREE
= struct
end
module Binary = DEBUGTREE
+ELSE
+module Binary = XML.Binary
+END (* IFDEF DEBUG *)