src/Pure/Isar/keyword.ML
changeset 58920 2f8168dc0eac
parent 58919 82a71046dce8
child 58923 cb9b69cca999
--- a/src/Pure/Isar/keyword.ML	Thu Nov 06 13:36:19 2014 +0100
+++ b/src/Pure/Isar/keyword.ML	Thu Nov 06 13:44:14 2014 +0100
@@ -37,10 +37,10 @@
   type keywords
   val minor_keywords: keywords -> Scan.lexicon
   val major_keywords: keywords -> Scan.lexicon
+  val no_command_keywords: keywords -> keywords
   val empty_keywords: keywords
   val merge_keywords: keywords * keywords -> keywords
-  val no_command_keywords: keywords -> keywords
-  val add: string * T option -> keywords -> keywords
+  val add_keywords: string * T option -> keywords -> keywords
   val define: string * T option -> unit
   val get_keywords: unit -> keywords
   val is_keyword: keywords -> string -> bool
@@ -142,6 +142,12 @@
 fun map_keywords f (Keywords {minor, major, commands}) =
   make_keywords (f (minor, major, commands));
 
+val no_command_keywords =
+  map_keywords (fn (minor, _, _) => (minor, Scan.empty_lexicon, Symtab.empty));
+
+
+(* build keywords *)
+
 val empty_keywords =
   make_keywords (Scan.empty_lexicon, Scan.empty_lexicon, Symtab.empty);
 
@@ -153,13 +159,7 @@
     Scan.merge_lexicons (major1, major2),
     Symtab.merge (K true) (commands1, commands2));
 
-val no_command_keywords =
-  map_keywords (fn (minor, _, _) => (minor, Scan.empty_lexicon, Symtab.empty));
-
-
-(* add keywords *)
-
-fun add (name, opt_kind) = map_keywords (fn (minor, major, commands) =>
+fun add_keywords (name, opt_kind) = map_keywords (fn (minor, major, commands) =>
   (case opt_kind of
     NONE =>
       let
@@ -176,7 +176,7 @@
 
 local val global_keywords = Unsynchronized.ref empty_keywords in
 
-fun define decl = CRITICAL (fn () => Unsynchronized.change global_keywords (add decl));
+fun define decl = CRITICAL (fn () => Unsynchronized.change global_keywords (add_keywords decl));
 fun get_keywords () = ! global_keywords;
 
 end;