src/Pure/System/session.scala
changeset 39625 fb0c851e4f9d
parent 39593 1a34187f0b97
child 39626 a5d0bcfb95a3
equal deleted inserted replaced
39624:57496c868dcc 39625:fb0c851e4f9d
   185             val st = global_state.change_yield(_.accumulate(state_id, result.message))
   185             val st = global_state.change_yield(_.accumulate(state_id, result.message))
   186             command_change_buffer ! st.command
   186             command_change_buffer ! st.command
   187           }
   187           }
   188           catch { case _: Document.State.Fail => bad_result(result) }
   188           catch { case _: Document.State.Fail => bad_result(result) }
   189         case _ =>
   189         case _ =>
   190           if (result.is_status) {
   190           if (result.is_exit) prover = null  // FIXME ??
       
   191           else if (result.is_syslog || result.is_stdout) { }
       
   192           else if (result.is_status) {
   191             result.body match {
   193             result.body match {
   192               case List(Isar_Document.Assign(id, edits)) =>
   194               case List(Isar_Document.Assign(id, edits)) =>
   193                 try {
   195                 try {
   194                   val cmds: List[Command] = global_state.change_yield(_.assign(id, edits))
   196                   val cmds: List[Command] = global_state.change_yield(_.assign(id, edits))
   195                   for (cmd <- cmds) command_change_buffer ! cmd
   197                   for (cmd <- cmds) command_change_buffer ! cmd
   196                   assignments.event(Session.Assignment)
   198                   assignments.event(Session.Assignment)
   197                 }
   199                 }
   198                 catch { case _: Document.State.Fail => bad_result(result) }
   200                 catch { case _: Document.State.Fail => bad_result(result) }
   199               case List(Keyword.Command_Decl(name, kind)) => syntax += (name, kind)
   201               case List(Keyword.Command_Decl(name, kind)) => syntax += (name, kind)
   200               case List(Keyword.Keyword_Decl(name)) => syntax += name
   202               case List(Keyword.Keyword_Decl(name)) => syntax += name
   201               case _ => if (!result.is_ready) bad_result(result)
   203               case _ => bad_result(result)
   202             }
   204             }
   203           }
   205           }
   204           else if (result.is_exit) prover = null  // FIXME ??
   206           else bad_result(result)
   205           else if (!(result.is_init || result.is_exit || result.is_system || result.is_stdout))
       
   206             bad_result(result)
       
   207         }
   207         }
   208     }
   208     }
   209     //}}}
   209     //}}}
   210 
   210 
   211 
   211