X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=blobdiff_plain;f=src%2FqNameSet.ml;fp=src%2FqNameSet.ml;h=d895ff3943e4f15afc9a02248c82ebaff57388aa;hp=0000000000000000000000000000000000000000;hb=b00bff88c7902e828804c06b7f9dc55222fdc84e;hpb=03b6a364e7240ca827585e7baff225a0aaa33bc6 diff --git a/src/qNameSet.ml b/src/qNameSet.ml new file mode 100644 index 0000000..d895ff3 --- /dev/null +++ b/src/qNameSet.ml @@ -0,0 +1,49 @@ +(***********************************************************************) +(* *) +(* 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: +*) + +include FiniteCofinite.Make(Ptset.Make(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