48 val keyword: string -> unit |
48 val keyword: string -> unit |
49 val command: string -> T -> unit |
49 val command: string -> T -> unit |
50 val is_theory: string -> bool |
50 val is_theory: string -> bool |
51 val is_proof: string -> bool |
51 val is_proof: string -> bool |
52 val is_diag: string -> bool |
52 val is_diag: string -> bool |
|
53 val is_theory_goal: string -> bool |
|
54 val is_proof_goal: string -> bool |
|
55 val is_qed: string -> bool |
|
56 val is_qed_global: string -> bool |
53 end; |
57 end; |
54 |
58 |
55 structure OuterKeyword: OUTER_KEYWORD = |
59 structure OuterKeyword: OUTER_KEYWORD = |
56 struct |
60 struct |
57 |
61 |
161 (change_lexicons (apsnd (Scan.extend_lexicon (Symbol.explode name))); |
165 (change_lexicons (apsnd (Scan.extend_lexicon (Symbol.explode name))); |
162 change_commands (Symtab.update (name, kind)); |
166 change_commands (Symtab.update (name, kind)); |
163 Output.status (Pretty.string_of (report_command (name, kind)))); |
167 Output.status (Pretty.string_of (report_command (name, kind)))); |
164 |
168 |
165 |
169 |
166 (* overall category *) |
170 (* command categories *) |
167 |
171 |
168 fun command_category ks name = |
172 fun command_category ks name = |
169 (case command_keyword name of |
173 (case command_keyword name of |
170 NONE => false |
174 NONE => false |
171 | SOME k => member (op =) ks (kind_of k)); |
175 | SOME k => member (op = o pairself kind_of) ks k); |
172 |
176 |
173 val is_theory = command_category |
177 val is_theory = command_category |
174 (map kind_of [thy_begin, thy_switch, thy_end, thy_heading, thy_decl, thy_script, thy_goal]); |
178 [thy_begin, thy_switch, thy_end, thy_heading, thy_decl, thy_script, thy_goal]; |
175 |
179 |
176 val is_proof = command_category |
180 val is_proof = command_category |
177 (map kind_of [qed, qed_block, qed_global, prf_heading, prf_goal, prf_block, prf_open, prf_close, |
181 [qed, qed_block, qed_global, prf_heading, prf_goal, prf_block, prf_open, prf_close, |
178 prf_chain, prf_decl, prf_asm, prf_asm_goal, prf_script]); |
182 prf_chain, prf_decl, prf_asm, prf_asm_goal, prf_script]; |
179 |
183 |
180 val is_diag = command_category [kind_of diag]; |
184 val is_diag = command_category [diag]; |
|
185 |
|
186 val is_theory_goal = command_category [thy_goal]; |
|
187 val is_proof_goal = command_category [prf_goal, prf_asm_goal]; |
|
188 val is_qed = command_category [qed, qed_block]; |
|
189 val is_qed_global = command_category [qed_global]; |
181 |
190 |
182 end; |
191 end; |