src/Pure/Isar/outer_keyword.scala
changeset 36681 dffeca08d3bf
parent 34166 446a33b874b3
equal deleted inserted replaced
36680:82f81d128111 36681:dffeca08d3bf
     7 package isabelle
     7 package isabelle
     8 
     8 
     9 
     9 
    10 object Outer_Keyword
    10 object Outer_Keyword
    11 {
    11 {
       
    12   /* kinds */
       
    13 
    12   val MINOR = "minor"
    14   val MINOR = "minor"
    13   val CONTROL = "control"
    15   val CONTROL = "control"
    14   val DIAG = "diag"
    16   val DIAG = "diag"
    15   val THY_BEGIN = "theory-begin"
    17   val THY_BEGIN = "theory-begin"
    16   val THY_SWITCH = "theory-switch"
    18   val THY_SWITCH = "theory-switch"
    31   val PRF_DECL = "proof-decl"
    33   val PRF_DECL = "proof-decl"
    32   val PRF_ASM = "proof-asm"
    34   val PRF_ASM = "proof-asm"
    33   val PRF_ASM_GOAL = "proof-asm-goal"
    35   val PRF_ASM_GOAL = "proof-asm-goal"
    34   val PRF_SCRIPT = "proof-script"
    36   val PRF_SCRIPT = "proof-script"
    35 
    37 
       
    38 
       
    39   /* categories */
       
    40 
    36   val minor = Set(MINOR)
    41   val minor = Set(MINOR)
    37   val control = Set(CONTROL)
    42   val control = Set(CONTROL)
    38   val diag = Set(DIAG)
    43   val diag = Set(DIAG)
    39   val heading = Set(THY_HEADING, PRF_HEADING)
    44   val heading = Set(THY_HEADING, PRF_HEADING)
    40   val theory1 = Set(THY_BEGIN, THY_SWITCH, THY_END)
    45   val theory1 = Set(THY_BEGIN, THY_SWITCH, THY_END)
    41   val theory2 = Set(THY_DECL, THY_GOAL)
    46   val theory2 = Set(THY_DECL, THY_GOAL)
    42   val proof1 =
    47   val proof1 =
    43     Set(QED, QED_BLOCK, QED_GLOBAL, PRF_GOAL, PRF_BLOCK, PRF_OPEN, PRF_CLOSE, PRF_CHAIN, PRF_DECL)
    48     Set(QED, QED_BLOCK, QED_GLOBAL, PRF_GOAL, PRF_BLOCK, PRF_OPEN, PRF_CLOSE, PRF_CHAIN, PRF_DECL)
    44   val proof2 = Set(PRF_ASM, PRF_ASM_GOAL)
    49   val proof2 = Set(PRF_ASM, PRF_ASM_GOAL)
    45   val improper = Set(THY_SCRIPT, PRF_SCRIPT)
    50   val improper = Set(THY_SCRIPT, PRF_SCRIPT)
       
    51 
       
    52 
       
    53   /* reports */
       
    54 
       
    55   object Keyword_Decl {
       
    56     def unapply(msg: XML.Tree): Option[String] =
       
    57       msg match {
       
    58         case XML.Elem(Markup.KEYWORD_DECL, List((Markup.NAME, name)), _) => Some(name)
       
    59         case _ => None
       
    60       }
       
    61   }
       
    62 
       
    63   object Command_Decl {
       
    64     def unapply(msg: XML.Tree): Option[(String, String)] =
       
    65       msg match {
       
    66         case XML.Elem(Markup.COMMAND_DECL, List((Markup.NAME, name), (Markup.KIND, kind)), _) =>
       
    67           Some((name, kind))
       
    68         case _ => None
       
    69       }
       
    70   }
    46 }
    71 }
    47 
    72