src/Pure/PIDE/prover.scala
changeset 71383 8313dca6dee9
parent 70666 e56ec28fc5e8
child 71601 97ccf48c2f0c
equal deleted inserted replaced
71382:6316debd3a9f 71383:8313dca6dee9
    20 
    20 
    21   class Input(val name: String, val args: List[String]) extends Message
    21   class Input(val name: String, val args: List[String]) extends Message
    22   {
    22   {
    23     override def toString: String =
    23     override def toString: String =
    24       XML.Elem(Markup(Markup.PROVER_COMMAND, List((Markup.NAME, name))),
    24       XML.Elem(Markup(Markup.PROVER_COMMAND, List((Markup.NAME, name))),
    25         args.map(s =>
    25         args.flatMap(s =>
    26           List(XML.newline, XML.elem(Markup.PROVER_ARG, YXML.parse_body(s)))).flatten).toString
    26           List(XML.newline, XML.elem(Markup.PROVER_ARG, YXML.parse_body(s))))).toString
    27   }
    27   }
    28 
    28 
    29   class Output(val message: XML.Elem) extends Message
    29   class Output(val message: XML.Elem) extends Message
    30   {
    30   {
    31     def kind: String = message.markup.name
    31     def kind: String = message.markup.name
   222         var finished = false
   222         var finished = false
   223         while (!finished) {
   223         while (!finished) {
   224           //{{{
   224           //{{{
   225           var c = -1
   225           var c = -1
   226           var done = false
   226           var done = false
   227           while (!done && (result.length == 0 || reader.ready)) {
   227           while (!done && (result.isEmpty || reader.ready)) {
   228             c = reader.read
   228             c = reader.read
   229             if (c >= 0) result.append(c.asInstanceOf[Char])
   229             if (c >= 0) result.append(c.asInstanceOf[Char])
   230             else done = true
   230             else done = true
   231           }
   231           }
   232           if (result.length > 0) {
   232           if (result.nonEmpty) {
   233             output(markup, Nil, List(XML.Text(Symbol.decode(result.toString))))
   233             output(markup, Nil, List(XML.Text(Symbol.decode(result.toString))))
   234             result.clear
   234             result.clear
   235           }
   235           }
   236           else {
   236           else {
   237             reader.close
   237             reader.close