src/Pure/Isar/args.ML
changeset 8803 189203bb4b34
parent 8687 24bff69370f0
child 8896 c80aba8c1d5e
--- a/src/Pure/Isar/args.ML	Fri May 05 21:58:18 2000 +0200
+++ b/src/Pure/Isar/args.ML	Fri May 05 21:58:44 2000 +0200
@@ -1,6 +1,7 @@
 (*  Title:      Pure/Isar/args.ML
     ID:         $Id$
     Author:     Markus Wenzel, TU Muenchen
+    License:    GPL (GNU GENERAL PUBLIC LICENSE)
 
 Concrete argument syntax (of attributes and methods).
 *)
@@ -19,6 +20,8 @@
   val position: (T list -> 'a * 'b) -> T list -> ('a * Position.T) * 'b
   val !!! : (T list -> 'a) -> T list -> 'a
   val $$$ : string -> T list -> string * T list
+  val colon: T list -> string * T list
+  val parens: (T list -> 'a * T list) -> T list -> 'a * T list
   val name: T list -> string * T list
   val name_dummy: T list -> string option * T list
   val nat: T list -> int * T list
@@ -103,6 +106,9 @@
 fun $$$$ x = Scan.one (fn Arg (k, (y, _)) => (k = Ident orelse k = Keyword) andalso x = y);
 fun $$$ x = $$$$ x >> val_of;
 
+val colon = $$$ ":";
+fun parens scan = $$$ "(" |-- scan --| $$$ ")";
+
 val name = Scan.one (fn Arg (k, (x, _)) => k = Ident orelse k = String) >> val_of;
 val name_dummy = $$$ "_" >> K None || name >> Some;