Remove the timestamp header in source files. This information is
[tatoo.git] / src / qNameSet.ml
index e1fa8a1..91309e0 100644 (file)
 (*                                                                     *)
 (***********************************************************************)
 
-(*
-  Time-stamp: <Last modified on 2013-01-30 19:07:29 CET by Kim Nguyen>
-*)
-
 include FiniteCofinite.Make(Ptset.Make(QName))
 
 let print_finite fmt e conv =
@@ -24,17 +20,26 @@ let print_finite fmt e conv =
   Pretty.print_list ~sep:"," QName.print fmt (conv e);
   Format.fprintf fmt "}"
 
-let printer fmt e test conv inv  =
+let printer fmt e test conv inv is_any =
   if test e then print_finite fmt e conv
-  else begin
-    Format.fprintf fmt "%s \\ " Pretty.big_sigma;
-    print_finite fmt (inv e) conv
-  end
+  else
+    let () = Format.fprintf fmt "%s" Pretty.big_sigma in
+    if not (is_any e) then begin Format.fprintf fmt "-";print_finite fmt (inv e) conv end
+
+let print fmt e = printer fmt e is_finite elements complement is_any
 
-let print fmt e = printer fmt e is_finite elements complement
+let specials = [ QName.document; QName.text; QName.text ]
+let notstar = from_list specials
+let star = diff any notstar
+let node = any
+let text = singleton QName.text
 
 module Weak =
 struct
   include FiniteCofinite.Weak(Ptset.Weak(QName))
-  let print fmt e =  printer fmt e is_finite elements complement
+  let print fmt e =  printer fmt e is_finite elements complement is_any
+  let notstar = from_list specials
+  let star = diff any notstar
+  let node = any
+  let text = singleton QName.text
 end