cherry pick from local- branch
[SXSI/xpathcomp.git] / tree.mli
index 8cffd18..539103c 100644 (file)
--- a/tree.mli
+++ b/tree.mli
@@ -11,7 +11,7 @@ val load : ?sample:int -> ?load_text:bool -> string -> t
 val tag_pool : t -> Tag.pool
 
 
-type 'a node = private int
+type 'a node
 type node_kind = [ `Tree | `Text ]
 val equal : [ `Tree ] node -> [ `Tree ] node -> bool
 val compare : [ `Tree ] node -> [ `Tree ] node -> int
@@ -20,7 +20,7 @@ val dump_node : 'a node -> string
 
 val nil : [ `Tree ] node
 val root : [ `Tree ] node
-
+val size : t -> int
 val is_root : [ `Tree ] node -> bool
 val is_nil : [ `Tree ] node -> bool
 
@@ -34,25 +34,25 @@ val select_child : t -> Ptset.Int.t -> [ `Tree ] node -> [ `Tree ] node
 val next_sibling : t -> [ `Tree ] node -> [ `Tree ] node
 val next_element : t -> [ `Tree ] node -> [ `Tree ] node
 
-val next_sibling_ctx : t -> [ `Tree ] node -> [ `Tree ] node ->  [ `Tree ] node
-val next_element_ctx : t -> [ `Tree ] node -> [ `Tree ] node ->  [ `Tree ] node
+val next_sibling_below : t -> [ `Tree ] node -> [ `Tree ] node ->  [ `Tree ] node
+val next_element_below : t -> [ `Tree ] node -> [ `Tree ] node ->  [ `Tree ] node
 
-val tagged_sibling : t ->  Tag.t ->  [ `Tree ] node -> [ `Tree ] node
-val tagged_sibling_ctx : t -> Tag.t -> [ `Tree ] node -> [ `Tree ] node -> [ `Tree ] node
+val tagged_following_sibling : t ->  Tag.t ->  [ `Tree ] node -> [ `Tree ] node
+val tagged_following_sibling_below : t -> Tag.t -> [ `Tree ] node -> [ `Tree ] node -> [ `Tree ] node
 
-val select_sibling : t -> Ptset.Int.t -> [ `Tree ] node -> [ `Tree ] node
-val select_sibling_ctx : t -> Ptset.Int.t -> [ `Tree ] node -> [ `Tree ] node -> [ `Tree ] node 
+val select_following_sibling : t -> Ptset.Int.t -> [ `Tree ] node -> [ `Tree ] node
+val select_following_sibling_below : t -> Ptset.Int.t -> [ `Tree ] node -> [ `Tree ] node -> [ `Tree ] node 
 
 
 
 val tag : t -> [ `Tree ] node -> Tag.t
 val id : t -> [ `Tree ] node -> int
 
-val tagged_desc : t -> Tag.t -> [ `Tree ] node -> [`Tree] node
-val select_desc : t -> Ptset.Int.t -> [ `Tree ] node -> [`Tree] node
+val tagged_descendant : t -> Tag.t -> [ `Tree ] node -> [`Tree] node
+val select_descendant : t -> Ptset.Int.t -> [ `Tree ] node -> [`Tree] node
 
-val tagged_foll_ctx : t -> Tag.t ->  [ `Tree ] node -> [`Tree] node -> [ `Tree ] node
-val select_foll_ctx : t -> Ptset.Int.t ->  [ `Tree ] node -> [`Tree] node -> [ `Tree ] node
+val tagged_following_below : t -> Tag.t ->  [ `Tree ] node -> [`Tree] node -> [ `Tree ] node
+val select_following_below : t -> Ptset.Int.t ->  [ `Tree ] node -> [`Tree] node -> [ `Tree ] node
 
 val count : t -> string -> int
 val print_xml_fast : out_channel -> t -> [ `Tree ] node -> unit
@@ -86,3 +86,15 @@ val text_next :  t -> [`Tree] node -> [`Tree] node -> [`Tree] node
 
 val closing : t -> [`Tree] node -> [`Tree] node
 val is_open : t -> [`Tree] node -> bool
+
+val benchmark_jump : t -> Tag.t -> unit
+val benchmark_fcns : t -> int
+val benchmark_fene : t -> int
+val benchmark_lcps : t -> unit
+val benchmark_iter : t -> int
+val stats : t -> unit
+
+val test_suffix : t -> string -> int
+val test_prefix : t -> string -> int
+val test_equals : t -> string -> int
+val test_contains : t -> string -> int