43 val command_keyword: string -> T option |
43 val command_keyword: string -> T option |
44 val command_tags: string -> string list |
44 val command_tags: string -> string list |
45 val dest: unit -> string list * string list |
45 val dest: unit -> string list * string list |
46 val keyword_statusN: string |
46 val keyword_statusN: string |
47 val status: unit -> unit |
47 val status: unit -> unit |
48 val declare: string -> T option -> unit |
48 val define: string * T option -> unit |
49 val is_diag: string -> bool |
49 val is_diag: string -> bool |
50 val is_control: string -> bool |
50 val is_control: string -> bool |
51 val is_regular: string -> bool |
51 val is_regular: string -> bool |
52 val is_heading: string -> bool |
52 val is_heading: string -> bool |
53 val is_theory_begin: string -> bool |
53 val is_theory_begin: string -> bool |
212 val _ = List.app keyword_status (sort_strings (Scan.dest_lexicon minor)); |
212 val _ = List.app keyword_status (sort_strings (Scan.dest_lexicon minor)); |
213 val _ = List.app command_status (sort_wrt #1 (Symtab.dest commands)); |
213 val _ = List.app command_status (sort_wrt #1 (Symtab.dest commands)); |
214 in () end; |
214 in () end; |
215 |
215 |
216 |
216 |
217 (* declare *) |
217 (* define *) |
218 |
218 |
219 fun declare name NONE = |
219 fun define (name, NONE) = |
220 (change_keywords (fn ((minor, major), commands) => |
220 (change_keywords (fn ((minor, major), commands) => |
221 let |
221 let |
222 val minor' = Scan.extend_lexicon (Symbol.explode name) minor; |
222 val minor' = Scan.extend_lexicon (Symbol.explode name) minor; |
223 in ((minor', major), commands) end); |
223 in ((minor', major), commands) end); |
224 keyword_status name) |
224 keyword_status name) |
225 | declare name (SOME kind) = |
225 | define (name, SOME kind) = |
226 (change_keywords (fn ((minor, major), commands) => |
226 (change_keywords (fn ((minor, major), commands) => |
227 let |
227 let |
228 val major' = Scan.extend_lexicon (Symbol.explode name) major; |
228 val major' = Scan.extend_lexicon (Symbol.explode name) major; |
229 val commands' = Symtab.update (name, kind) commands; |
229 val commands' = Symtab.update (name, kind) commands; |
230 in ((minor, major'), commands') end); |
230 in ((minor, major'), commands') end); |