Change from unordered_set<tag> to int array in low-level select_* functions.
[SXSI/xpathcomp.git] / src / tree.mli
index db15525..6640b27 100644 (file)
@@ -7,7 +7,6 @@ val parse_xml_uri : string -> t
 val parse_xml_string : string -> t
 val save : t -> string ->  unit
 val load : ?sample:int -> ?load_text:bool -> string -> t
-val tag_pool : t -> Tag.pool
 
 
 val nil : node
@@ -16,32 +15,30 @@ val size : t -> int
 val is_root : node -> bool
 val is_nil : node -> bool
 
-type unordered_set
+type tag_list
 
-val unordered_set_of_set : Ptset.Int.t -> unordered_set
+val tag_list_of_set : Ptset.Int.t -> tag_list
 
 val first_child : t -> node -> node
 val first_element : t -> node -> node
 val tagged_child : t -> node -> Tag.t -> node
-val select_child : t -> node -> unordered_set -> node
+val select_child : t -> node -> tag_list -> node
 
 
 val next_sibling : t -> node -> node
 val prev_sibling : t -> node -> node
 val next_element : t -> node -> node
-val next_node_before : t -> node -> node -> node
-val tagged_following_sibling : t -> node ->  Tag.t -> node
-val select_following_sibling : t -> node -> unordered_set -> node
+val tagged_sibling : t -> node ->  Tag.t -> node
+val select_sibling : t -> node -> tag_list -> node
 
 val tagged_descendant : t -> node -> Tag.t -> node
 val tagged_next : t -> node -> Tag.t -> node
-val select_descendant : t -> node -> unordered_set -> node
+val select_descendant : t -> node -> tag_list -> node
 
 val tagged_following_before : t -> node -> Tag.t -> node ->  node
-val select_following_before : t -> node -> unordered_set -> node -> node
+val select_following_before : t -> node -> tag_list -> node -> node
 
 val parent : t -> node -> node
-val binary_parent : t -> node -> node
 val is_first_child : t -> node -> bool
 val is_right_descendant : t -> node -> node -> bool
 
@@ -68,7 +65,8 @@ val closing : t -> node -> node
 val stats : t -> unit
 
 val num_tags : t -> int
-val tag_pool : t -> Tag.pool
+
+val tag_operations : t -> Tag.operations
 
 val print_xml : t -> node -> Unix.file_descr -> unit
 val flush : t -> Unix.file_descr -> unit
@@ -86,3 +84,8 @@ val full_text_suffix : t -> string -> node array
 val full_text_equals : t -> string -> node array
 
 val full_text_contains : t -> string -> node array
+
+type bit_vector
+val bit_vector_create : int -> bit_vector
+val bit_vector_unsafe_set : bit_vector -> int -> bool -> unit
+val bit_vector_unsafe_get : bit_vector -> int -> bool