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
+let print fmt e = printer fmt e is_finite elements complement is_any
+
+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