]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/components/binaries/xoa/xoa.ml
- lambdadelta: third recursive part of preservation finally proved!
[helm.git] / matita / components / binaries / xoa / xoa.ml
index de451f8148f9e17c0a64cd12dc3fdbc6e19d29f1..ae5bd03abc9c8da298f39e89c9af86da4880bbef 100644 (file)
@@ -9,7 +9,9 @@
      \ /   This software is distributed as is, NO WARRANTY.     
       V_______________________________________________________________ *)
 
-module R   = Helm_registry
+module G = Arg
+
+module R = Helm_registry
 
 module L = Lib
 module A = Ast
@@ -26,14 +28,19 @@ let unm_and s =
 
 let process conf =
    let preamble = L.get_preamble conf in
-   let ooch = L.open_out preamble (R.get_string "xoa.objects") in
-   let noch = L.open_out preamble (R.get_string "xoa.notations") in
-   List.iter (L.out_include ooch) (R.get_list R.string "xoa.include");   
-   List.iter (E.generate ooch noch) (R.get_list unm_ex "xoa.ex");
-   List.iter (E.generate ooch noch) (R.get_list unm_or "xoa.or");
-   List.iter (E.generate ooch noch) (R.get_list unm_and "xoa.and");
-   close_out noch; close_out ooch
+   if R.has "xoa.objects" && R.has "xoa.notations" then begin
+      let ooch = L.open_out preamble (R.get_string "xoa.objects") in
+      let noch = L.open_out preamble (R.get_string "xoa.notations") in
+      List.iter (L.out_include ooch) (R.get_list R.string "xoa.include");   
+      List.iter (E.generate ooch noch) (R.get_list unm_ex "xoa.ex");
+      List.iter (E.generate ooch noch) (R.get_list unm_or "xoa.or");
+      List.iter (E.generate ooch noch) (R.get_list unm_and "xoa.and");
+      close_out noch; close_out ooch
+   end
 
 let _ =
-   let help = "Usage: xoa [ <configuration file> ]*\n" in
-   Arg.parse [] process help
+   let help = "Usage: xoa [ -X | <configuration file> ]*\n" in
+   let help_X  = " Clear configuration" in   
+   Arg.parse [
+      "-X" , G.Unit R.clear, help_X;
+   ] process help