]> matita.cs.unibo.it Git - helm.git/blob - matita/components/binaries/matex/options.ml
- initial support for sigma-types
[helm.git] / matita / components / binaries / matex / options.ml
1 (*
2     ||M||  This file is part of HELM, an Hypertextual, Electronic        
3     ||A||  Library of Mathematics, developed at the Computer Science     
4     ||T||  Department, University of Bologna, Italy.                     
5     ||I||                                                                
6     ||T||  HELM is free software; you can redistribute it and/or         
7     ||A||  modify it under the terms of the GNU General Public License   
8     \   /  version 2 or (at your option) any later version.      
9      \ /   This software is distributed as is, NO WARRANTY.     
10       V_______________________________________________________________ *)
11
12 module F = Filename
13
14 module R = Helm_registry
15 module P = NCicPp
16
17 (* internal *****************************************************************)
18
19 let default_no_init = true
20
21 let default_out_dir = F.current_dir_name
22
23 let default_proc_id = "H"
24
25 let default_check = false
26
27 let default_no_types = false
28
29 let default_no_proofs = false
30
31 let default_global_alpha = false
32
33 let default_log_alpha = false
34
35 let default_log_missing = false
36
37 let default_list_och = None
38
39 let default_alpha = []
40
41 let default_macro = []
42
43 let default_sigs = []
44
45 (* interface ****************************************************************)
46
47 let dno_id = "_"                            (* identifier for not-occurring premises *)
48
49 let nan = -1                                (* not a number *)
50
51 let status = new P.status
52
53 let no_init = ref default_no_init
54
55 let out_dir = ref default_out_dir           (* directory of generated files *)
56
57 let proc_id = ref default_proc_id           (* identifer for anticipations *)
58
59 let check = ref default_check               (* check transformations *)
60
61 let no_types = ref default_no_types         (* omit types *)
62
63 let no_proofs = ref default_no_proofs       (* omit proofs *)
64
65 let global_alpha = ref default_global_alpha (* log alpha-unconverted identifiers *)
66
67 let log_alpha = ref default_log_alpha       (* log alpha-unconverted identifiers *)
68
69 let log_missing = ref default_log_missing   (* log missing notational macros *)
70
71 let list_och = ref default_list_och         (* output stream for list file *)
72
73 let alpha_type = ref default_alpha          (* data for type-based alpha-conversion *)
74
75 let alpha_sort = ref default_alpha          (* data for sort-based alpha-conversion *)
76
77 let alpha_gref = ref default_alpha          (* data for constant renaming *)
78
79 let macro_gref = ref default_macro          (* data for eta-conversion and constant rendering *)
80
81 let sigs_gref = ref default_sigs            (* data for sigma-type rendering *)
82
83 let is_global_id s =
84    !global_alpha && s <> dno_id
85
86 let close_list () = match !list_och with
87    | None     -> ()
88    | Some och -> close_out och
89
90 let clear () =
91    R.clear (); close_list ();
92    no_init := default_no_init;
93    out_dir := default_out_dir;
94    proc_id := default_proc_id;
95    check := default_check;
96    no_types := default_no_types;
97    no_proofs := default_no_proofs;
98    global_alpha := default_global_alpha;
99    log_alpha := default_log_alpha;
100    log_missing := default_log_missing;
101    list_och := default_list_och;
102    alpha_type := default_alpha;
103    alpha_sort := default_alpha;
104    alpha_gref := default_alpha;
105    macro_gref := default_macro;
106    sigs_gref := default_sigs