equal
deleted
inserted
replaced
6 |
6 |
7 signature OPTIONS = |
7 signature OPTIONS = |
8 sig |
8 sig |
9 type T |
9 type T |
10 val empty: T |
10 val empty: T |
|
11 val typ: T -> string -> string |
11 val bool: T -> string -> bool |
12 val bool: T -> string -> bool |
12 val int: T -> string -> int |
13 val int: T -> string -> int |
13 val real: T -> string -> real |
14 val real: T -> string -> real |
14 val string: T -> string -> string |
15 val string: T -> string -> string |
15 val declare: {name: string, typ: string, value: string} -> T -> T |
16 val declare: {name: string, typ: string, value: string} -> T -> T |
16 val decode: XML.body -> T |
17 val decode: XML.body -> T |
17 val default: unit -> T |
18 val default: unit -> T |
|
19 val default_bool: string -> bool |
|
20 val default_int: string -> int |
|
21 val default_real: string -> real |
|
22 val default_string: string -> string |
18 val set_default: T -> unit |
23 val set_default: T -> unit |
19 val reset_default: unit -> unit |
24 val reset_default: unit -> unit |
20 val load_default: unit -> unit |
25 val load_default: unit -> unit |
21 end; |
26 end; |
22 |
27 |
31 val stringT = "string"; |
36 val stringT = "string"; |
32 |
37 |
33 datatype T = Options of {typ: string, value: string} Symtab.table; |
38 datatype T = Options of {typ: string, value: string} Symtab.table; |
34 |
39 |
35 val empty = Options Symtab.empty; |
40 val empty = Options Symtab.empty; |
|
41 |
|
42 |
|
43 (* typ *) |
|
44 |
|
45 fun typ (Options tab) name = |
|
46 (case Symtab.lookup tab name of |
|
47 SOME opt => #typ opt |
|
48 | NONE => error ("Unknown option " ^ quote name)); |
36 |
49 |
37 |
50 |
38 (* get *) |
51 (* get *) |
39 |
52 |
40 fun get T parse (Options tab) name = |
53 fun get T parse (Options tab) name = |
85 fun default () = |
98 fun default () = |
86 (case Synchronized.value global_default of |
99 (case Synchronized.value global_default of |
87 SOME options => options |
100 SOME options => options |
88 | NONE => error "No global default options"); |
101 | NONE => error "No global default options"); |
89 |
102 |
|
103 fun default_bool name = bool (default ()) name; |
|
104 fun default_int name = int (default ()) name; |
|
105 fun default_real name = real (default ()) name; |
|
106 fun default_string name = string (default ()) name; |
|
107 |
90 fun set_default options = Synchronized.change global_default (K (SOME options)); |
108 fun set_default options = Synchronized.change global_default (K (SOME options)); |
91 fun reset_default () = Synchronized.change global_default (K NONE); |
109 fun reset_default () = Synchronized.change global_default (K NONE); |
92 |
110 |
93 fun load_default () = |
111 fun load_default () = |
94 (case getenv "ISABELLE_PROCESS_OPTIONS" of |
112 (case getenv "ISABELLE_PROCESS_OPTIONS" of |