]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/pxp/pxp/rtests/write/test_write.ml
Initial revision
[helm.git] / helm / DEVEL / pxp / pxp / rtests / write / test_write.ml
diff --git a/helm/DEVEL/pxp/pxp/rtests/write/test_write.ml b/helm/DEVEL/pxp/pxp/rtests/write/test_write.ml
new file mode 100644 (file)
index 0000000..48defd2
--- /dev/null
@@ -0,0 +1,94 @@
+(* $Id$
+ * ----------------------------------------------------------------------
+ *
+ *)
+
+
+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:      e
+      ~default_pinstr_exemplar:  e
+      ~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$
+ * Revision 1.1  2000/11/17 09:57:35  lpadovan
+ * Initial revision
+ *
+ * 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.
+ *
+ *)