X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fcomponents%2Fbinaries%2Fxoa%2Fxoa.ml;h=e4e0e7c69f17bcbca0b0b6dd7b19f0d6711c6d46;hb=802e118337ebd0f8b732d4939973aae6415b5bec;hp=92b473d7965cc4682769eb41982caff1d4ba0d93;hpb=4de2411d2cecf21630f6675f58e64f8ec6de9b60;p=helm.git diff --git a/matita/components/binaries/xoa/xoa.ml b/matita/components/binaries/xoa/xoa.ml index 92b473d79..e4e0e7c69 100644 --- a/matita/components/binaries/xoa/xoa.ml +++ b/matita/components/binaries/xoa/xoa.ml @@ -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 @@ -21,15 +23,25 @@ let unm_ex s = let unm_or s = Scanf.sscanf s "%u" A.mk_or +let unm_and s = + Scanf.sscanf s "%u" A.mk_and + 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"); - 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"); + L.out_include ooch (R.get_string "xoa.notations" ^ ".ma"); + 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 [ ]*\n" in - Arg.parse [] process help + let help = "Usage: xoa [ -X | ]*\n" in + let help_X = " Clear configuration" in + Arg.parse [ + "-X" , G.Unit R.clear, help_X; + ] process help