src/Pure/Isar/outer_parse.ML
changeset 11792 311eee3d63b6
parent 11651 201b3f76c7b7
child 12047 e151e66da2d6
equal deleted inserted replaced
11791:2c201f3b018e 11792:311eee3d63b6
    12   val group: string -> (token list -> 'a) -> token list -> 'a
    12   val group: string -> (token list -> 'a) -> token list -> 'a
    13   val !!! : (token list -> 'a) -> token list -> 'a
    13   val !!! : (token list -> 'a) -> token list -> 'a
    14   val !!!! : (token list -> 'a) -> token list -> 'a
    14   val !!!! : (token list -> 'a) -> token list -> 'a
    15   val $$$ : string -> token list -> string * token list
    15   val $$$ : string -> token list -> string * token list
    16   val semicolon: token list -> string * token list
    16   val semicolon: token list -> string * token list
       
    17   val underscore: token list -> string * token list
    17   val position: (token list -> 'a * 'b) -> token list -> ('a * Position.T) * 'b
    18   val position: (token list -> 'a * 'b) -> token list -> ('a * Position.T) * 'b
    18   val command: token list -> string * token list
    19   val command: token list -> string * token list
    19   val keyword: token list -> string * token list
    20   val keyword: token list -> string * token list
    20   val short_ident: token list -> string * token list
    21   val short_ident: token list -> string * token list
    21   val long_ident: token list -> string * token list
    22   val long_ident: token list -> string * token list
   141   group (T.str_of_kind T.Keyword ^ " " ^ quote x)
   142   group (T.str_of_kind T.Keyword ^ " " ^ quote x)
   142     (Scan.one (T.keyword_with (equal x)) >> T.val_of);
   143     (Scan.one (T.keyword_with (equal x)) >> T.val_of);
   143 
   144 
   144 val semicolon = $$$ ";";
   145 val semicolon = $$$ ";";
   145 
   146 
       
   147 val underscore = sym_ident :-- (fn "_" => Scan.succeed () | _ => Scan.fail) >> #1;
       
   148 
   146 val nat = number >> (fst o Term.read_int o Symbol.explode);
   149 val nat = number >> (fst o Term.read_int o Symbol.explode);
   147 
   150 
   148 val not_eof = Scan.one T.not_eof;
   151 val not_eof = Scan.one T.not_eof;
   149 
   152 
   150 val opt_unit = Scan.optional ($$$ "(" -- $$$ ")" >> (K ())) ();
   153 val opt_unit = Scan.optional ($$$ "(" -- $$$ ")" >> (K ())) ();