Change from unordered_set<tag> to int array in low-level select_* functions.
[SXSI/xpathcomp.git] / src / tree.mli
1
2 type node = [ `Tree ] Node.t
3 type t
4 (** The type for documents *)
5
6 val parse_xml_uri : string -> t
7 val parse_xml_string : string -> t
8 val save : t -> string ->  unit
9 val load : ?sample:int -> ?load_text:bool -> string -> t
10
11
12 val nil : node
13 val root : node
14 val size : t -> int
15 val is_root : node -> bool
16 val is_nil : node -> bool
17
18 type tag_list
19
20 val tag_list_of_set : Ptset.Int.t -> tag_list
21
22 val first_child : t -> node -> node
23 val first_element : t -> node -> node
24 val tagged_child : t -> node -> Tag.t -> node
25 val select_child : t -> node -> tag_list -> node
26
27
28 val next_sibling : t -> node -> node
29 val prev_sibling : t -> node -> node
30 val next_element : t -> node -> node
31 val tagged_sibling : t -> node ->  Tag.t -> node
32 val select_sibling : t -> node -> tag_list -> node
33
34 val tagged_descendant : t -> node -> Tag.t -> node
35 val tagged_next : t -> node -> Tag.t -> node
36 val select_descendant : t -> node -> tag_list -> node
37
38 val tagged_following_before : t -> node -> Tag.t -> node ->  node
39 val select_following_before : t -> node -> tag_list -> node -> node
40
41 val parent : t -> node -> node
42 val is_first_child : t -> node -> bool
43 val is_right_descendant : t -> node -> node -> bool
44
45 val tag : t -> node -> Tag.t
46
47 val attribute_tags : t -> Ptset.Int.t
48
49 val element_tags : t -> Ptset.Int.t
50
51 val node_tags : t -> Ptset.Int.t
52
53 val tags : t ->  Tag.t  -> Ptset.Int.t*Ptset.Int.t*Ptset.Int.t*Ptset.Int.t
54
55 val dump_tag_table : t -> unit
56
57 val subtree_tags : t -> node -> Tag.t -> int
58
59 val subtree_size : t -> node -> int
60
61 val subtree_elements : t -> node -> int
62
63 val closing : t -> node -> node
64
65 val stats : t -> unit
66
67 val num_tags : t -> int
68
69 val tag_operations : t -> Tag.operations
70
71 val print_xml : t -> node -> Unix.file_descr -> unit
72 val flush : t -> Unix.file_descr -> unit
73
74 module Predicate : Hcons.S with type data = (t -> node -> bool) ref
75
76 val mk_pred : [ `Prefix | `Suffix | `Equals | `Contains ] -> string -> Predicate.t
77
78 val full_text_query : [ `Prefix | `Suffix | `Equals | `Contains ] -> t -> string -> node array
79
80 val full_text_prefix : t -> string -> node array
81
82 val full_text_suffix : t -> string -> node array
83
84 val full_text_equals : t -> string -> node array
85
86 val full_text_contains : t -> string -> node array
87
88 type bit_vector
89 val bit_vector_create : int -> bit_vector
90 val bit_vector_unsafe_set : bit_vector -> int -> bool -> unit
91 val bit_vector_unsafe_get : bit_vector -> int -> bool