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 |