src/Pure/Isar/outer_syntax.scala
changeset 46940 a40be2f10ca9
parent 46712 8650d9a95736
child 46941 c0f776b661fa
--- a/src/Pure/Isar/outer_syntax.scala	Thu Mar 15 09:55:42 2012 +0100
+++ b/src/Pure/Isar/outer_syntax.scala	Thu Mar 15 10:16:21 2012 +0100
@@ -34,6 +34,7 @@
     result.toString
   }
 
+  type Decl = (String, Option[(String, List[String])])
   def init(): Outer_Syntax = new Outer_Syntax()
 }
 
@@ -51,8 +52,12 @@
       if (Keyword.control(kind)) completion else completion + (name, replace))
 
   def + (name: String, kind: String): Outer_Syntax = this + (name, kind, name)
-
   def + (name: String): Outer_Syntax = this + (name, Keyword.MINOR)
+  def + (decl: Outer_Syntax.Decl): Outer_Syntax =
+    decl match {
+      case ((name, Some((kind, _)))) => this + (name, kind)
+      case ((name, None)) => this + name
+    }
 
   def is_command(name: String): Boolean =
     keyword_kind(name) match {