Further optimisations, changed the prototype of Tree.mli
[SXSI/xpathcomp.git] / tree.mli
1 type t 
2
3 val init_contains : t -> string -> unit
4 val init_naive_contains : t -> string -> unit
5
6
7 val parse_xml_uri : string -> t
8 val parse_xml_string : string -> t
9 val save : t -> string -> unit
10 val load : ?sample:int -> string -> t
11 val tag_pool : t -> Tag.pool
12
13
14 type 'a node = private int
15 type node_kind = [ `Tree | `Text ]
16 val equal : [ `Tree ] node -> [ `Tree ] node -> bool
17 val compare : [ `Tree ] node -> [ `Tree ] node -> int
18 val dump_node : 'a node -> string
19
20
21 val nil : 'a node
22 val root : [ `Tree ] node
23
24 val is_root : [ `Tree ] node -> bool
25 val is_nil : [ `Tree ] node -> bool
26
27 val parent : t -> [ `Tree ] node -> [ `Tree ] node
28 val first_child : t -> [ `Tree ] node -> [ `Tree ] node
29 val tagged_child : t -> Tag.t -> [ `Tree ] node -> [ `Tree ] node
30
31 val select_child : t -> Ptset.Int.t -> [ `Tree ] node -> [ `Tree ] node
32
33 val next_sibling : t -> [ `Tree ] node -> [ `Tree ] node
34 val next_sibling_ctx : t -> [ `Tree ] node -> [ `Tree ] node ->  [ `Tree ] node
35
36 val tagged_sibling : t ->  Tag.t ->  [ `Tree ] node -> [ `Tree ] node
37 val tagged_sibling_ctx : t -> Tag.t -> [ `Tree ] node -> [ `Tree ] node -> [ `Tree ] node
38
39 val select_sibling : t -> Ptset.Int.t -> [ `Tree ] node -> [ `Tree ] node
40 val select_sibling_ctx : t -> Ptset.Int.t -> [ `Tree ] node -> [ `Tree ] node -> [ `Tree ] node 
41
42
43
44 val tag : t -> [ `Tree ] node -> Tag.t
45 val id : t -> [ `Tree ] node -> int
46
47 val tagged_desc : t -> Tag.t -> [ `Tree ] node -> [`Tree] node
48 val select_desc : t -> Ptset.Int.t -> [ `Tree ] node -> [`Tree] node
49
50 val tagged_foll_ctx : t -> Tag.t ->  [ `Tree ] node -> [`Tree] node -> [ `Tree ] node
51 val select_foll_ctx : t -> Ptset.Int.t ->  [ `Tree ] node -> [`Tree] node -> [ `Tree ] node
52
53 val count : t -> string -> int
54 val print_xml_fast : out_channel -> t -> [ `Tree ] node -> unit
55
56 val tags_below : t -> Tag.t -> Ptset.Int.t
57 val tags_after : t -> Tag.t -> Ptset.Int.t
58 val tags : t ->  Tag.t  -> Ptset.Int.t*Ptset.Int.t
59 val is_below_right : t ->  [`Tree] node ->  [`Tree] node -> bool
60 val is_left : t ->  [`Tree] node -> bool
61
62 val binary_parent : t ->  [`Tree] node -> [`Tree] node 
63
64 val count_contains : t -> string -> int
65 val unsorted_contains : t -> string -> unit
66 val text_size : t -> int
67 val doc_ids : t ->  [`Tree] node ->  [`Text] node *  [`Text] node 
68 val subtree_tags : t -> Tag.t ->  [`Tree] node -> int
69 val get_text : t -> [`Tree] node ->  string
70
71 val dump_tree : Format.formatter -> t -> unit