X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=src%2Ftree.mli;fp=src%2Ftree.mli;h=1fa5c3ba6525514ef9530e23043e26412e53f99c;hb=4b52da1a20a4fe031930bb96d2ca46bec06dc529;hp=0000000000000000000000000000000000000000;hpb=a223af3254fb51c279cfbccdc18c59484fdca74e;p=SXSI%2Fxpathcomp.git diff --git a/src/tree.mli b/src/tree.mli new file mode 100644 index 0000000..1fa5c3b --- /dev/null +++ b/src/tree.mli @@ -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