Merge branch 'local-ocamlbuild' into local-trunk
[SXSI/xpathcomp.git] / src / tree.mli
diff --git a/src/tree.mli b/src/tree.mli
new file mode 100644 (file)
index 0000000..1fa5c3b
--- /dev/null
@@ -0,0 +1,86 @@
+
+type node = [ `Tree ] Node.t
+type t
+(** The type for documents *)
+
+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
+val root : node
+val size : t -> int
+val is_root : node -> bool
+val is_nil : node -> bool
+
+type unordered_set
+
+val unordered_set_of_set : Ptset.Int.t -> unordered_set
+
+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 next_sibling : t -> node -> node
+val prev_sibling : t -> node -> node
+val next_element : t -> node -> node
+val tagged_following_sibling : t -> node ->  Tag.t -> node
+val select_following_sibling : t -> node -> unordered_set -> node
+
+val tagged_descendant : t -> node -> Tag.t -> node
+val select_descendant : t -> node -> unordered_set -> node
+
+val tagged_following_before : t -> node -> Tag.t -> node ->  node
+val select_following_before : t -> node -> unordered_set -> 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
+
+val tag : t -> node -> Tag.t
+
+val attribute_tags : t -> Ptset.Int.t
+
+val element_tags : t -> Ptset.Int.t
+
+val node_tags : t -> Ptset.Int.t
+
+val tags : t ->  Tag.t  -> Ptset.Int.t*Ptset.Int.t*Ptset.Int.t*Ptset.Int.t
+
+val dump_tag_table : t -> unit
+
+val subtree_tags : t -> node -> Tag.t -> int
+
+val subtree_size : t -> node -> int
+
+val subtree_elements : t -> node -> int
+
+val closing : t -> node -> node
+
+val stats : t -> unit
+
+val num_tags : t -> int
+val tag_pool : t -> Tag.pool
+
+val print_xml : t -> node -> Unix.file_descr -> unit
+val flush : t -> Unix.file_descr -> unit
+
+module Predicate : Hcons.S with type data = (t -> node -> bool) ref
+
+val mk_pred : [ `Prefix | `Suffix | `Equals | `Contains ] -> string -> Predicate.t
+
+val full_text_query : [ `Prefix | `Suffix | `Equals | `Contains ] -> t -> string -> node array
+
+val full_text_prefix : t -> string -> node array
+
+val full_text_suffix : t -> string -> node array
+
+val full_text_equals : t -> string -> node array
+
+val full_text_contains : t -> string -> node array