]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/pxp/pxp/compatibility/markup_reader.ml
Initial revision
[helm.git] / helm / DEVEL / pxp / pxp / compatibility / markup_reader.ml
diff --git a/helm/DEVEL/pxp/pxp/compatibility/markup_reader.ml b/helm/DEVEL/pxp/pxp/compatibility/markup_reader.ml
new file mode 100644 (file)
index 0000000..a196c22
--- /dev/null
@@ -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.
+ *
+ *)