equal
deleted
inserted
replaced
22 case object Assignment |
22 case object Assignment |
23 case class Commands_Changed(set: Set[Command]) |
23 case class Commands_Changed(set: Set[Command]) |
24 |
24 |
25 sealed abstract class Phase |
25 sealed abstract class Phase |
26 case object Inactive extends Phase |
26 case object Inactive extends Phase |
27 case object Exit extends Phase |
27 case object Startup extends Phase |
28 case object Ready extends Phase |
28 case object Ready extends Phase |
29 case object Shutdown extends Phase |
29 case object Shutdown extends Phase |
30 } |
30 } |
31 |
31 |
32 |
32 |
207 catch { case _: Document.State.Fail => bad_result(result) } |
207 catch { case _: Document.State.Fail => bad_result(result) } |
208 case _ => |
208 case _ => |
209 if (result.is_syslog) { |
209 if (result.is_syslog) { |
210 reverse_syslog ::= result.message |
210 reverse_syslog ::= result.message |
211 if (result.is_ready) phase = Session.Ready |
211 if (result.is_ready) phase = Session.Ready |
212 else if (result.is_exit) { |
212 else if (result.is_exit) phase = Session.Inactive |
213 phase = Session.Exit |
|
214 phase = Session.Inactive |
|
215 } |
|
216 } |
213 } |
217 else if (result.is_stdout) { } |
214 else if (result.is_stdout) { } |
218 else if (result.is_status) { |
215 else if (result.is_status) { |
219 result.body match { |
216 result.body match { |
220 case List(Isar_Document.Assign(id, edits)) => |
217 case List(Isar_Document.Assign(id, edits)) => |
258 case change: Document.Change if prover != null => handle_change(change) |
255 case change: Document.Change if prover != null => handle_change(change) |
259 |
256 |
260 case result: Isabelle_Process.Result => handle_result(result) |
257 case result: Isabelle_Process.Result => handle_result(result) |
261 |
258 |
262 case Start(timeout, args) if prover == null => |
259 case Start(timeout, args) if prover == null => |
|
260 phase = Session.Startup |
263 prover = new Isabelle_Process(system, timeout, self, args:_*) with Isar_Document |
261 prover = new Isabelle_Process(system, timeout, self, args:_*) with Isar_Document |
264 |
262 |
265 case Stop if phase == Session.Ready => |
263 case Stop if phase == Session.Ready => |
266 global_state.change(_ => Document.State.init) // FIXME event bus!? |
264 global_state.change(_ => Document.State.init) // FIXME event bus!? |
267 phase = Session.Shutdown |
265 phase = Session.Shutdown |