Put the node_kind type into a NodeKind module in the Common module.
authorKim Nguyễn <kn@lri.fr>
Wed, 13 Mar 2013 10:19:02 +0000 (11:19 +0100)
committerKim Nguyễn <kn@lri.fr>
Wed, 13 Mar 2013 10:20:58 +0000 (11:20 +0100)
src/tree.mlpack
src/tree/common.ml [new file with mode: 0644]
src/tree/sig.ml

index 599b18f..6dd2e12 100644 (file)
@@ -1,2 +1,3 @@
 tree/Naive
 tree/Sig
+tree/Common
diff --git a/src/tree/common.ml b/src/tree/common.ml
new file mode 100644 (file)
index 0000000..099d751
--- /dev/null
@@ -0,0 +1,40 @@
+(***********************************************************************)
+(*                                                                     *)
+(*                               TAToo                                 *)
+(*                                                                     *)
+(*                     Kim Nguyen, LRI UMR8623                         *)
+(*                   Université Paris-Sud & CNRS                       *)
+(*                                                                     *)
+(*  Copyright 2010-2012 Université Paris-Sud and Centre National de la *)
+(*  Recherche Scientifique. All rights reserved.  This file is         *)
+(*  distributed under the terms of the GNU Lesser General Public       *)
+(*  License, with the special exception on linking described in file   *)
+(*  ../LICENSE.                                                        *)
+(*                                                                     *)
+(***********************************************************************)
+
+(*
+  Time-stamp: <Last modified on 2013-03-11 00:11:53 CET by Kim Nguyen>
+*)
+
+module NodeKind =
+  struct
+    type t =
+        Document | Element | Text | Comment | Attribute | ProcessingInstruction
+      | Node
+
+    let to_string =
+      function
+    Document -> "document"
+    | Element -> "element"
+    | Attribute -> "attribute"
+    | Text -> "text"
+    | Comment -> "comment"
+    | ProcessingInstruction -> "processing-instruction"
+    | Node -> "node"
+    let print ppf k = Format.fprintf ppf "%s" (to_string k)
+
+
+    let is_a k1 k2 =
+      k1 == Node || k2 == Node || k1 == k2
+end
index f9bd0b7..aba5917 100644 (file)
 (***********************************************************************)
 
 (*
-  Time-stamp: <Last modified on 2013-03-05 15:12:47 CET by Kim Nguyen>
+  Time-stamp: <Last modified on 2013-03-11 00:12:27 CET by Kim Nguyen>
 *)
 
 (** Implementation of documents as binary trees *)
+
 module type S =
 sig
   type node
@@ -45,7 +46,6 @@ sig
   val print_xml : out_channel -> t -> node -> unit
   (** Outputs the tree as an XML document on the given output_channel *)
 
-
   val root : t -> node
   (** Returns the root of the tree *)
 
@@ -75,6 +75,9 @@ sig
       QName.text, QName.cdata_section or QName.comment
   *)
 
+  val kind : t -> node -> Common.NodeKind.t
+  (** 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].