src/Pure/Tools/debugger.scala
author wenzelm
Fri, 17 Jul 2015 21:40:47 +0200
changeset 60749 f727b99faaf7
child 60765 e43e71a75838
permissions -rw-r--r--
skeleton for interactive debugger;

/*  Title:      Pure/Tools/debugger.scala
    Author:     Makarius

Interactive debugger for Isabelle/ML.
*/

package isabelle


object Debugger
{
  /* GUI interaction */

  case object Event


  /* manager thread */

  private lazy val manager: Consumer_Thread[Any] =
    Consumer_Thread.fork[Any]("Debugger.manager", daemon = true)(
      consume = (arg: Any) =>
      {
        // FIXME
        true
      },
      finish = () =>
      {
        // FIXME
      }
    )


  /* protocol handler */

  class Handler extends Session.Protocol_Handler
  {
    override def stop(prover: Prover)
    {
      manager.shutdown()
    }

    val functions = Map.empty[String, (Prover, Prover.Protocol_Output) => Boolean]  // FIXME
  }
}