(******************************************************************************) (* 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_below : t -> Ptset.t -> Ptset.t -> t val tagged_next : t -> Ptset.t -> Ptset.t -> t -> t val tagged_desc_only : t -> Ptset.t -> t val tagged_foll_only : t -> Ptset.t -> t -> t val text_below : t -> t val text_next : t -> t -> t val init_tagged_next : t -> Tag.t -> unit val subtree_tags : t -> Tag.t -> int val is_left : t -> bool val print_id : Format.formatter -> t -> unit val test_xml_tree : Format.formatter -> Ptset.t -> t -> unit val init_contains : t -> string -> unit val init_naive_contains : t -> string -> unit val mk_nil : t -> t val test_jump : t -> Tag.t -> unit end module Binary : BINARY IFDEF DEBUG THEN module DEBUGTREE : sig include BINARY val print_stats : Format.formatter -> unit end ENDIF