Ajout des fonctions is_next_sibling, is_first_child, prev_sibling et parent_of_first
[tatoo.git] / src / tree.ml
index 8f37be5..9e6c71c 100644 (file)
@@ -18,7 +18,8 @@
 module NodeKind =
   struct
     type t =
-        Document | Element | Text | Comment | Attribute | ProcessingInstruction | Node
+      Document | Element | Text | Comment | Attribute
+    | ProcessingInstruction | Node
 
     let to_string =
       function
@@ -104,9 +105,23 @@ sig
   (** Returns the kind of the given node *)
 
   val preorder : t -> node -> int
-  (** Returns the position of a node in pre-order in the tree. The
-    root has preorder 0. [nil] has pre-order [-1].
+  (** [preorder t n] returns the pre-order position of [n] in [t].
+      [preodrder t (root t) == 0] and [preorder t nil < 0].
   *)
 
+  val by_preorder : t -> int -> node
+  (** [by_preorder t i] returns the node with preorder [i]
+  *)
   val print_node : Format.formatter -> node -> unit
+
+  val is_first_child : t -> node -> bool
+  val is_next_sibling : t -> node -> bool
+  val prev_sibling : t -> node -> node
+ (** [prev_sibling t n] returns the previous_sibling of node [n] in tree [t].
+      Returns [nil] if [n] is the first child of a node.
+  *)
+  val parent_of_first : t -> node -> node
+ (** [parent_of_first t n] returns the parent of node [n] in tree [t] .
+      Returns [nil] if [n] isn't the first child of a node.
+  *)
 end