src/Pure/Isar/keyword.ML
changeset 74566 8e0f0317e266
parent 74555 3ba399ecdfaf
child 74567 40910c47d7a1
equal deleted inserted replaced
74565:11b8f026d6ce 74566:8e0f0317e266
    50   val no_command_keywords: keywords -> keywords
    50   val no_command_keywords: keywords -> keywords
    51   val empty_keywords: keywords
    51   val empty_keywords: keywords
    52   val merge_keywords: keywords * keywords -> keywords
    52   val merge_keywords: keywords * keywords -> keywords
    53   val add_keywords: ((string * Position.T) * spec) list -> keywords -> keywords
    53   val add_keywords: ((string * Position.T) * spec) list -> keywords -> keywords
    54   val add_minor_keywords: string list -> keywords -> keywords
    54   val add_minor_keywords: string list -> keywords -> keywords
       
    55   val add_major_keywords: string list -> keywords -> keywords
    55   val is_keyword: keywords -> string -> bool
    56   val is_keyword: keywords -> string -> bool
    56   val is_command: keywords -> string -> bool
    57   val is_command: keywords -> string -> bool
    57   val is_literal: keywords -> string -> bool
    58   val is_literal: keywords -> string -> bool
    58   val dest_commands: keywords -> string list
    59   val dest_commands: keywords -> string list
    59   val command_markup: keywords -> string -> Markup.T option
    60   val command_markup: keywords -> string -> Markup.T option
   201       in (minor, major', commands') end));
   202       in (minor, major', commands') end));
   202 
   203 
   203 val add_minor_keywords =
   204 val add_minor_keywords =
   204   add_keywords o map (fn name => ((name, Position.none), no_spec));
   205   add_keywords o map (fn name => ((name, Position.none), no_spec));
   205 
   206 
       
   207 val add_major_keywords =
       
   208   add_keywords o map (fn name => ((name, Position.none), (diag, [])));
       
   209 
   206 
   210 
   207 (* keyword status *)
   211 (* keyword status *)
   208 
   212 
   209 fun is_keyword keywords s = Scan.is_literal (minor_keywords keywords) (Symbol.explode s);
   213 fun is_keyword keywords s = Scan.is_literal (minor_keywords keywords) (Symbol.explode s);
   210 fun is_command (Keywords {commands, ...}) = Symtab.defined commands;
   214 fun is_command (Keywords {commands, ...}) = Symtab.defined commands;