]> matita.cs.unibo.it Git - helm.git/blob - helm/DEVEL/pxp/pxp/rtests/negative/test_negative.ml
Initial revision
[helm.git] / helm / DEVEL / pxp / pxp / rtests / negative / test_negative.ml
1 (* $Id$
2  * ----------------------------------------------------------------------
3  *
4  *)
5
6
7 open Pxp_document;;
8 open Pxp_yacc;;
9 open Pxp_types;;
10
11 let error_happened = ref false;;
12
13 let rec print_error e =
14   print_endline (string_of_exn e)
15 ;;
16
17 class warner =
18   object 
19     method warn w =
20       print_endline ("WARNING: " ^ w)
21   end
22 ;;
23
24 let parse debug wf iso88591 filename =
25   try 
26   let config =
27       { default_config with 
28           warner = new warner;
29           debugging_mode = debug;
30           encoding = if iso88591 then `Enc_iso88591 else `Enc_utf8;
31           idref_pass = true;
32       }
33   in
34     let parse_fn =
35       if wf then parse_wfdocument_entity 
36       else 
37         let index = new hash_index in
38         parse_document_entity 
39           ?transform_dtd:None 
40           ~id_index:(index :> 'ext index)
41     in
42     let tree =
43       parse_fn
44         config
45         (from_file filename)
46         default_spec
47     in
48     print_endline "Parsed without error";
49   with
50       e ->
51         error_happened := true;
52         print_error e
53 ;;
54
55
56 let main() =
57   let debug = ref false in
58   let wf = ref false in
59   let iso88591 = ref false in
60   let files = ref [] in
61   Arg.parse
62       [ "-d",   Arg.Set debug, "turn debugging mode on";
63         "-wf",  Arg.Set wf,    "check only on well-formedness";
64         "-iso-8859-1", Arg.Set iso88591, "use ISO-8859-1 as internal encoding instead of UTF-8";
65       ]
66       (fun x -> files := x :: !files)
67       "
68 usage: test_negative [options] file ...
69
70 List of options:";
71   files := List.rev !files;
72   List.iter (parse !debug !wf !iso88591) !files;
73 ;;
74
75
76 main();
77 if !error_happened then exit(1);;
78
79 (* ======================================================================
80  * History:
81  * 
82  * $Log$
83  * Revision 1.1  2000/11/17 09:57:33  lpadovan
84  * Initial revision
85  *
86  * Revision 1.6  2000/07/14 14:57:12  gerd
87  *      Updated: warner
88  *
89  * Revision 1.5  2000/07/14 14:20:11  gerd
90  *      Updated because of PXP interface changes.
91  *
92  * Revision 1.4  2000/07/09 01:49:09  gerd
93  *      Updated because of PXP interface changes.
94  *
95  * Revision 1.3  2000/06/04 20:31:21  gerd
96  *      Updates because of renamed PXP modules.
97  *
98  * Revision 1.2  2000/05/28 17:23:22  gerd
99  *      Updated.
100  *
101  * Revision 1.1  2000/05/01 15:58:50  gerd
102  *      Initial revision.
103  *
104  * 
105  *)