src/Pure/Isar/args.ML
changeset 10150 a068c666c53e
parent 10035 c095955e7575
child 11503 4c25eef6f325
equal deleted inserted replaced
10149:7cfdf6a330a0 10150:a068c666c53e
    27   val query: T list -> string * T list
    27   val query: T list -> string * T list
    28   val bang: T list -> string * T list
    28   val bang: T list -> string * T list
    29   val query_colon: T list -> string * T list
    29   val query_colon: T list -> string * T list
    30   val bang_colon: T list -> string * T list
    30   val bang_colon: T list -> string * T list
    31   val parens: (T list -> 'a * T list) -> T list -> 'a * T list
    31   val parens: (T list -> 'a * T list) -> T list -> 'a * T list
       
    32   val bracks: (T list -> 'a * T list) -> T list -> 'a * T list
    32   val mode: string -> 'a * T list -> bool * ('a * T list)
    33   val mode: string -> 'a * T list -> bool * ('a * T list)
    33   val name: T list -> string * T list
    34   val name: T list -> string * T list
    34   val name_dummy: T list -> string option * T list
    35   val name_dummy: T list -> string option * T list
    35   val nat: T list -> int * T list
    36   val nat: T list -> int * T list
    36   val int: T list -> int * T list
    37   val int: T list -> int * T list
   129 val bang = $$$ "!";
   130 val bang = $$$ "!";
   130 val query_colon = $$$ "?:";
   131 val query_colon = $$$ "?:";
   131 val bang_colon = $$$ "!:";
   132 val bang_colon = $$$ "!:";
   132 
   133 
   133 fun parens scan = $$$ "(" |-- scan --| $$$ ")";
   134 fun parens scan = $$$ "(" |-- scan --| $$$ ")";
       
   135 fun bracks scan = $$$ "[" |-- scan --| $$$ "]";
   134 fun mode s = Scan.lift (Scan.optional (parens ($$$$ s) >> K true) false);
   136 fun mode s = Scan.lift (Scan.optional (parens ($$$$ s) >> K true) false);
   135 
   137 
   136 val name = Scan.one (fn Arg (k, (x, _)) => k = Ident orelse k = String) >> val_of;
   138 val name = Scan.one (fn Arg (k, (x, _)) => k = Ident orelse k = String) >> val_of;
   137 val name_dummy = $$$ "_" >> K None || name >> Some;
   139 val name_dummy = $$$ "_" >> K None || name >> Some;
   138 
   140