]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/components/binaries/matex/matex.ml
initial support for LaTeX-defined notatopn
[helm.git] / matita / components / binaries / matex / matex.ml
index 59460ce4a116239ce660e4f19387b9c8674b768b..24775c0a66c02d021308167fbbf2f8c8dd4c07eb 100644 (file)
@@ -24,19 +24,29 @@ module K = Kernel
 
 let help_O = "<dir> Set this output directory"
 let help_X = " Clear configuration and options"
-let help_p = " omit types (default: no)"
-let help_t = " Test anticipation (default: no)"
+let help_a = " Log alpha-unconverted identifiers (default: no)"
+let help_g = " Global alpha-conversion (default: no)"
+let help_l = "<file> Output the list of generated files in this file"
+let help_p = " Omit types (default: no)"
+let help_t = " Test term transformations (default: no)"
 
 let help   = ""
 
 (* internal functions *******************************************************)
 
+let alpha_decode = R.triple R.string R.string R.string
+
+let macro_decode = R.triple R.string R.string R.int
+
 let init registry =
    R.load_from registry; 
    if !G.no_init then begin
       K.init ();
       G.no_init := false;
-   end
+   end;
+   G.alpha_type := R.get_list alpha_decode "matex.alpha.type";
+   G.alpha_sort := R.get_list alpha_decode "matex.alpha.sort";
+   G.macro      := R.get_list macro_decode "matex.macro"
 
 let is_registry s =
    F.check_suffix s ".conf.xml"
@@ -47,6 +57,10 @@ let no_init () =
 let malformed s =
    failwith ("MaTeX: main: malformed argument: " ^ s)
 
+let set_list fname =
+   let file = F.concat !G.out_dir fname in
+   G.close_list (); G.list_och := Some (open_out file)
+
 let process s =
    if is_registry s then init s
    else if !G.no_init then no_init ()
@@ -54,12 +68,17 @@ let process s =
    else malformed s
 
 let main =
-try
+begin try
    A.parse [
       "-O", A.String ((:=) G.out_dir), help_O;
       "-X", A.Unit G.clear, help_X;
+      "-a", A.Set G.log_alpha, help_a;
+      "-g", A.Set G.global_alpha, help_g;
+      "-l", A.String set_list, help_l;
       "-p", A.Set G.no_types, help_p;
       "-t", A.Set G.test, help_t;
    ] process help
 with
    | X.Error s -> X.log s
+end;
+G.close_list ()