src/Pure/Isar/toplevel.scala
changeset 38480 e5eed57913d0
parent 38429 9951852fae91
equal deleted inserted replaced
38479:e628da370072 38480:e5eed57913d0
    13   case class Forked(forks: Int) extends Status
    13   case class Forked(forks: Int) extends Status
    14   case object Unprocessed extends Status
    14   case object Unprocessed extends Status
    15   case object Finished extends Status
    15   case object Finished extends Status
    16   case object Failed extends Status
    16   case object Failed extends Status
    17 
    17 
    18   def command_status(markup: List[Markup]): Status =
    18   def command_status(markup: XML.Body): Status =
    19   {
    19   {
    20     val forks = (0 /: markup) {
    20     val forks = (0 /: markup) {
    21       case (i, Markup(Markup.FORKED, _)) => i + 1
    21       case (i, XML.Elem(Markup(Markup.FORKED, _), _)) => i + 1
    22       case (i, Markup(Markup.JOINED, _)) => i - 1
    22       case (i, XML.Elem(Markup(Markup.JOINED, _), _)) => i - 1
    23       case (i, _) => i
    23       case (i, _) => i
    24     }
    24     }
    25     if (forks != 0) Forked(forks)
    25     if (forks != 0) Forked(forks)
    26     else if (markup.exists(_.name == Markup.FAILED)) Failed
    26     else if (markup.exists { case XML.Elem(Markup(Markup.FAILED, _), _) => true case _ => false })
    27     else if (markup.exists(_.name == Markup.FINISHED)) Finished
    27       Failed
       
    28     else if (markup.exists { case XML.Elem(Markup(Markup.FINISHED, _), _) => true case _ => false })
       
    29       Finished
    28     else Unprocessed
    30     else Unprocessed
    29   }
    31   }
    30 }
    32 }
    31 
    33