src/Pure/Isar/keyword.ML
changeset 58999 ed09ae4ea2d8
parent 58931 3097ec653547
child 59033 9d5662acb19c
--- a/src/Pure/Isar/keyword.ML	Thu Nov 13 17:28:11 2014 +0100
+++ b/src/Pure/Isar/keyword.ML	Thu Nov 13 23:45:15 2014 +0100
@@ -7,7 +7,9 @@
 signature KEYWORD =
 sig
   val diag: string
-  val heading: string
+  val document_heading: string
+  val document_body: string
+  val document_raw: string
   val thy_begin: string
   val thy_end: string
   val thy_decl: string
@@ -41,8 +43,11 @@
   val is_literal: keywords -> string -> bool
   val command_files: keywords -> string -> Path.T -> Path.T list
   val command_tags: keywords -> string -> string list
+  val is_vacuous: keywords -> string -> bool
   val is_diag: keywords -> string -> bool
-  val is_heading: keywords -> string -> bool
+  val is_document_heading: keywords -> string -> bool
+  val is_document_body: keywords -> string -> bool
+  val is_document_raw: keywords -> string -> bool
   val is_theory_begin: keywords -> string -> bool
   val is_theory_load: keywords -> string -> bool
   val is_theory: keywords -> string -> bool
@@ -64,7 +69,9 @@
 (* kinds *)
 
 val diag = "diag";
-val heading = "heading";
+val document_heading = "document_heading";
+val document_body = "document_body";
+val document_raw = "document_raw";
 val thy_begin = "thy_begin";
 val thy_end = "thy_end";
 val thy_decl = "thy_decl";
@@ -87,9 +94,9 @@
 val prf_script = "prf_script";
 
 val kinds =
-  [diag, heading, thy_begin, thy_end, thy_load, thy_decl, thy_decl_block, thy_goal,
-    qed, qed_script, qed_block, qed_global, prf_goal, prf_block, prf_open, prf_close,
-    prf_chain, prf_decl, prf_asm, prf_asm_goal, prf_asm_goal_script, prf_script];
+  [diag, document_heading, document_body, document_raw, thy_begin, thy_end, thy_load, thy_decl,
+    thy_decl_block, thy_goal, qed, qed_script, qed_block, qed_global, prf_goal, prf_block, prf_open,
+    prf_close, prf_chain, prf_decl, prf_asm, prf_asm_goal, prf_asm_goal_script, prf_script];
 
 
 (* specifications *)
@@ -196,9 +203,14 @@
       | SOME {kind, ...} => Symtab.defined tab kind);
   in pred end;
 
+val is_vacuous = command_category [diag, document_heading, document_body, document_raw];
+
 val is_diag = command_category [diag];
 
-val is_heading = command_category [heading];
+val is_document_heading = command_category [document_heading];
+val is_document_body = command_category [document_body];
+val is_document_raw = command_category [document_raw];
+val is_document = command_category [document_heading, document_body, document_raw];
 
 val is_theory_begin = command_category [thy_begin];
 
@@ -215,8 +227,8 @@
     prf_chain, prf_decl, prf_asm, prf_asm_goal, prf_asm_goal_script, prf_script];
 
 val is_proof_body = command_category
-  [diag, heading, prf_block, prf_open, prf_close, prf_chain, prf_decl, prf_asm,
-    prf_asm_goal, prf_asm_goal_script, prf_script];
+  [diag, document_heading, document_body, document_raw, prf_block, prf_open, prf_close,
+    prf_chain, prf_decl, prf_asm, prf_asm_goal, prf_asm_goal_script, prf_script];
 
 val is_theory_goal = command_category [thy_goal];
 val is_proof_goal = command_category [prf_goal, prf_asm_goal, prf_asm_goal_script];