1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
(* $Id: test_write.ml,v 1.4 2001/06/28 21:24:38 gerd Exp $
* ----------------------------------------------------------------------
*
*)
open Pxp_document;;
open Pxp_yacc;;
open Pxp_types;;
let error_happened = ref false;;
let rec prerr_error e =
prerr_endline (string_of_exn e)
;;
class warner =
object
method warn w =
prerr_endline ("WARNING: " ^ w)
end
;;
let parse_and_write in_filename =
let spec =
let e = new element_impl default_extension in
make_spec_from_mapping
~super_root_exemplar: (new super_root_impl default_extension)
~default_pinstr_exemplar: (new pinstr_impl default_extension)
~data_exemplar: (new data_impl default_extension)
~default_element_exemplar: e
~element_mapping: (Hashtbl.create 1)
()
in
let config =
{ default_config with
warner = new warner;
enable_pinstr_nodes = true;
enable_super_root_node = true;
encoding = `Enc_utf8;
}
in
try
let tree =
parse_document_entity
config
(from_file in_filename)
spec
in
tree # write (`Out_channel stdout) `Enc_utf8;
with
e ->
error_happened := true;
prerr_error e
;;
let main() =
let in_file = ref "" in
Arg.parse
[ "-in", (Arg.String (fun s -> in_file := s)),
" <file> Set the XML file to read";
]
(fun x -> raise (Arg.Bad "Unexpected argument"))
"
usage: test_write [ options ]
List of options:";
if !in_file = "" then begin
prerr_endline "No input file specified.";
exit 1
end;
parse_and_write !in_file
;;
main();
if !error_happened then exit(1);;
(* ======================================================================
* History:
*
* $Log: test_write.ml,v $
* Revision 1.4 2001/06/28 21:24:38 gerd
* Out_channel -> `Out_channel
*
* Revision 1.3 2001/05/17 22:35:46 gerd
* Updated.
*
* Revision 1.2 2000/08/16 23:44:21 gerd
* Updates because of changes of the PXP API.
*
* Revision 1.1 2000/07/16 17:50:39 gerd
* Initial revision.
*
*)
|