--- /dev/null
+(* $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.
+ *
+ *)