]> matita.cs.unibo.it Git - helm.git/blob - helm/DEVEL/pxp/pxp/compatibility/markup_reader.ml
Initial revision
[helm.git] / helm / DEVEL / pxp / pxp / compatibility / markup_reader.ml
1 (* $Id$
2  * ----------------------------------------------------------------------
3  *)
4
5 open Markup_types;;
6
7 class type resolver =
8   object
9     method open_in : ext_id -> Lexing.lexbuf
10     method close_in : unit
11     method change_encoding : string -> unit
12     method clone : resolver
13   end
14 ;;
15
16 (* General note: close_in is simulated by close_all. Of course, this is
17  * wrong, but it should not matter 
18  *)
19
20
21 class resolve_read_channel ch the_warner =
22   object (self)
23     val pxp_resolver = 
24             new Pxp_reader.resolve_read_this_channel 
25               ~auto_close:false
26               ch
27     val warner = the_warner
28
29     initializer
30       pxp_resolver # init_warner 
31         (warner : Markup_types.collect_warnings :> Pxp_types.collect_warnings);
32       pxp_resolver # init_rep_encoding `Enc_iso88591;
33
34     method open_in xid =
35       pxp_resolver # open_in xid
36
37     method close_in =
38       pxp_resolver # close_all   (* sic! *)
39
40     method change_encoding enc =
41       pxp_resolver # change_encoding enc
42
43     method clone =
44       ( {< pxp_resolver = pxp_resolver # clone >} : #resolver :> resolver )
45
46   end
47 ;;
48
49
50 class resolve_read_string str =
51   object (self)
52     val pxp_resolver = 
53             new Pxp_reader.resolve_read_this_string str
54     val warner = new Pxp_types.drop_warnings
55
56     initializer
57       pxp_resolver # init_warner warner;
58       pxp_resolver # init_rep_encoding `Enc_iso88591;
59
60     method open_in xid =
61       pxp_resolver # open_in xid
62
63     method close_in =
64       pxp_resolver # close_all   (* sic! *)
65
66     method change_encoding enc =
67       pxp_resolver # change_encoding enc
68
69     method clone =
70       ( {< pxp_resolver = pxp_resolver # clone >} : #resolver :> resolver )
71   end
72 ;;
73
74
75 class resolve_as_file the_warner =
76   object (self)
77     val pxp_resolver = 
78             new Pxp_reader.resolve_as_file
79               ~system_encoding:`Enc_iso88591
80               ()
81     val warner = the_warner
82
83     initializer
84       pxp_resolver # init_warner
85         (warner : Markup_types.collect_warnings :> Pxp_types.collect_warnings);
86       pxp_resolver # init_rep_encoding `Enc_iso88591;
87
88     method open_in xid =
89       pxp_resolver # open_in xid
90
91     method close_in =
92       pxp_resolver # close_all   (* sic! *)
93
94     method change_encoding enc =
95       pxp_resolver # change_encoding enc
96
97     method clone =
98       ( {< pxp_resolver = pxp_resolver # clone >} : #resolver :> resolver )
99   end
100 ;;
101
102
103 (* ======================================================================
104  * History:
105  * 
106  * $Log$
107  * Revision 1.1  2000/11/17 09:57:30  lpadovan
108  * Initial revision
109  *
110  * Revision 1.3  2000/07/14 21:35:35  gerd
111  *      Updated because of the simplification of Pxp_types.collect_warnings.
112  *
113  * Revision 1.2  2000/07/08 17:40:50  gerd
114  *      Updated the simulation.
115  *
116  * Revision 1.1  2000/05/29 23:43:51  gerd
117  *      Initial compatibility revision.
118  *
119  *)