X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=blobdiff_plain;f=src%2FqNameSet.ml;h=91309e054a05bae62d0953d0b79600d7a71fe943;hp=4035957b829d6b2772be4a9c23153d670222b3e1;hb=41dd1fed04cabad212f10fce3484545f6e9d9444;hpb=cba2938d929fd5119b1491686ddc224d5af618c6 diff --git a/src/qNameSet.ml b/src/qNameSet.ml index 4035957..91309e0 100644 --- a/src/qNameSet.ml +++ b/src/qNameSet.ml @@ -15,4 +15,31 @@ include FiniteCofinite.Make(Ptset.Make(QName)) -module Weak = FiniteCofinite.Weak(Ptset.Weak(QName)) +let print_finite fmt e conv = + Format.fprintf fmt "{"; + Pretty.print_list ~sep:"," QName.print fmt (conv e); + Format.fprintf fmt "}" + +let printer fmt e test conv inv is_any = + if test e then print_finite fmt e conv + 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 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 is_any + let notstar = from_list specials + let star = diff any notstar + let node = any + let text = singleton QName.text +end