X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FDEVEL%2Fpxp%2Fpxp%2Fcompatibility%2Fmarkup_reader.ml;fp=helm%2FDEVEL%2Fpxp%2Fpxp%2Fcompatibility%2Fmarkup_reader.ml;h=a196c22194c9fbf4b003beaac5f51edcdde9e110;hb=c03d2c1fdab8d228cb88aaba5ca0f556318bebc5;hp=0000000000000000000000000000000000000000;hpb=758057e85325f94cd88583feb1fdf6b038e35055;p=helm.git diff --git a/helm/DEVEL/pxp/pxp/compatibility/markup_reader.ml b/helm/DEVEL/pxp/pxp/compatibility/markup_reader.ml new file mode 100644 index 000000000..a196c2219 --- /dev/null +++ b/helm/DEVEL/pxp/pxp/compatibility/markup_reader.ml @@ -0,0 +1,119 @@ +(* $Id$ + * ---------------------------------------------------------------------- + *) + +open Markup_types;; + +class type resolver = + object + method open_in : ext_id -> Lexing.lexbuf + method close_in : unit + method change_encoding : string -> unit + method clone : resolver + end +;; + +(* General note: close_in is simulated by close_all. Of course, this is + * wrong, but it should not matter + *) + + +class resolve_read_channel ch the_warner = + object (self) + val pxp_resolver = + new Pxp_reader.resolve_read_this_channel + ~auto_close:false + ch + val warner = the_warner + + initializer + pxp_resolver # init_warner + (warner : Markup_types.collect_warnings :> Pxp_types.collect_warnings); + pxp_resolver # init_rep_encoding `Enc_iso88591; + + method open_in xid = + pxp_resolver # open_in xid + + method close_in = + pxp_resolver # close_all (* sic! *) + + method change_encoding enc = + pxp_resolver # change_encoding enc + + method clone = + ( {< pxp_resolver = pxp_resolver # clone >} : #resolver :> resolver ) + + end +;; + + +class resolve_read_string str = + object (self) + val pxp_resolver = + new Pxp_reader.resolve_read_this_string str + val warner = new Pxp_types.drop_warnings + + initializer + pxp_resolver # init_warner warner; + pxp_resolver # init_rep_encoding `Enc_iso88591; + + method open_in xid = + pxp_resolver # open_in xid + + method close_in = + pxp_resolver # close_all (* sic! *) + + method change_encoding enc = + pxp_resolver # change_encoding enc + + method clone = + ( {< pxp_resolver = pxp_resolver # clone >} : #resolver :> resolver ) + end +;; + + +class resolve_as_file the_warner = + object (self) + val pxp_resolver = + new Pxp_reader.resolve_as_file + ~system_encoding:`Enc_iso88591 + () + val warner = the_warner + + initializer + pxp_resolver # init_warner + (warner : Markup_types.collect_warnings :> Pxp_types.collect_warnings); + pxp_resolver # init_rep_encoding `Enc_iso88591; + + method open_in xid = + pxp_resolver # open_in xid + + method close_in = + pxp_resolver # close_all (* sic! *) + + method change_encoding enc = + pxp_resolver # change_encoding enc + + method clone = + ( {< pxp_resolver = pxp_resolver # clone >} : #resolver :> resolver ) + end +;; + + +(* ====================================================================== + * History: + * + * $Log$ + * Revision 1.1 2000/11/17 09:57:30 lpadovan + * Initial revision + * + * Revision 1.3 2000/07/14 21:35:35 gerd + * Updated because of the simplification of Pxp_types.collect_warnings. + * + * Revision 1.2 2000/07/08 17:40:50 gerd + * Updated the simulation. + * + * Revision 1.1 2000/05/29 23:43:51 gerd + * Initial compatibility revision. + * + *)