-(******************************************************************************)
-(* SXSI : XPath evaluator *)
-(* Kim Nguyen (Kim.Nguyen@nicta.com.au) *)
-(* Copyright NICTA 2008 *)
-(* Distributed under the terms of the LGPL (see LICENCE) *)
-(******************************************************************************)
-module type BINARY =
-sig
- type node_content
- type string_content
- type descr = Nil| Node of node_content | String of string_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
- val is_node : t -> bool
- val left : t -> t
- val right : t -> t
- val first_child : t -> t
- val next_sibling : t -> t
- val parent : t -> t
- val root : t -> t
- val is_root : t -> bool
- val id : t -> int
- val tag : t -> Tag.t
- val print_xml_fast : out_channel -> t -> unit
- val compare : t -> t -> int
- val equal : t -> t -> bool
- module DocIdSet :
- sig
- include Set.S
- end with type elt = string_content
- val string_below : t -> string_content -> bool
- val contains : t -> string -> DocIdSet.t
- val contains_old : t -> string -> DocIdSet.t
- val contains_iter : t -> string -> DocIdSet.t
- val count_contains : t -> string -> int
- val count : t -> string -> int
- val dump : t -> unit
- val get_string : t -> string_content -> string
- val has_tagged_desc : t -> Tag.t -> bool
- val has_tagged_foll : t -> Tag.t -> bool
- val tagged_desc : t -> Tag.t -> t
- val tagged_foll : t -> Tag.t -> t
- val tagged_next : t -> Tag.t -> t
- val subtree_tags : t -> Tag.t -> int
- val is_left : t -> bool
-end
-
-module Binary : BINARY
-
-IFDEF DEBUG
-THEN
-module DEBUGTREE : sig
- include BINARY
- val print_stats : Format.formatter -> unit
-end
-ENDIF
+type t
+val init_contains : t -> string -> unit
+val init_naive_contains : t -> string -> unit
+val is_nil : t -> bool
+val is_node : t -> bool
+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 compare : t -> t -> int
+val equal : t -> t -> bool
+val mk_nil : t -> t
+val root : t -> t
+val is_root : t -> bool
+val parent : t -> t
+val first_child : t -> t
+val next_sibling : t -> t
+val next_sibling_ctx : t -> t -> t
+val left : t -> t
+val right : t -> t
+val id : t -> int
+val tag : t -> Tag.t
+val text_below : t -> t
+val text_next : t -> t -> t
+val tagged_desc : Tag.t -> t -> t
+val tagged_foll_below : Tag.t -> t -> t -> t
+val select_desc_only : Ptset.t -> t -> t
+val select_foll_only : Ptset.t -> t -> t -> t
+val select_below : Ptset.t -> Ptset.t -> t -> t
+val select_next : Ptset.t -> Ptset.t -> t -> t -> t
+val count : t -> string -> int
+val print_xml_fast : out_channel -> t -> unit
+val node_child : t -> t
+val node_sibling : t -> t
+val node_sibling_ctx : t -> t -> t
+val tags_below : t -> Tag.t -> Ptset.t
+val tags_after : t -> Tag.t -> Ptset.t
+val tags : t -> Tag.t -> Ptset.t*Ptset.t