module NodeKind =
struct
type t =
- Document | Element | Text | Comment | Attribute | ProcessingInstruction | Node
+ Document | Element | Text | Comment | Attribute
+ | ProcessingInstruction | Node
let to_string =
function
(** 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