src/Tools/jEdit/src/prover/IsabelleSKParser.scala
author immler@in.tum.de
Thu, 18 Dec 2008 01:10:20 +0100
changeset 34406 f81cd75ae331
parent 34401 44241a37b74a
child 34407 aad6834ba380
permissions -rw-r--r--
restructured: independent provers in different buffers

/*
 * IsabelleSKParser.scala
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package isabelle.prover

import isabelle.jedit.{Plugin}
import sidekick.{SideKickParser, SideKickParsedData, IAsset}
import org.gjt.sp.jedit.{Buffer, ServiceManager}
import javax.swing.tree.DefaultMutableTreeNode
import errorlist.DefaultErrorSource;

class IsabelleSKParser extends SideKickParser("isabelle") {
  
  override def parse(b : Buffer,
                     errorSource : DefaultErrorSource)
    : SideKickParsedData = {
      Plugin.plugin.prover_setup(b) match {
        case None =>
          val data = new SideKickParsedData("WARNING:")
          data.root.add(new DefaultMutableTreeNode("can only parse buffer which is activated via IsabellePlugin -> activate"))
          data
        case Some(prover_setup) =>
          val prover = prover_setup.prover
          val document = prover.document
          val data = new SideKickParsedData(b.getPath)

          for(command <- document.commands){
            data.root.add(command.root_node.swing_node)
          }
          data
      }
    }

}