src/Tools/jEdit/src/prover/IsabelleSKParser.scala
changeset 34462 fefbd0421e4e
parent 34460 cc5b9f02fbea
parent 34461 2dd8ced4f2ae
child 34463 b510b7d88de2
equal deleted inserted replaced
34460:cc5b9f02fbea 34462:fefbd0421e4e
     1 /*
       
     2  * IsabelleSKParser.scala
       
     3  *
       
     4  * To change this template, choose Tools | Template Manager
       
     5  * and open the template in the editor.
       
     6  */
       
     7 
       
     8 package isabelle.prover
       
     9 
       
    10 import isabelle.jedit.{Plugin}
       
    11 import sidekick.{SideKickParser, SideKickParsedData, IAsset}
       
    12 import org.gjt.sp.jedit.{Buffer, ServiceManager}
       
    13 import javax.swing.tree.DefaultMutableTreeNode
       
    14 import errorlist.DefaultErrorSource;
       
    15 
       
    16 class IsabelleSKParser extends SideKickParser("isabelle") {
       
    17   
       
    18   override def parse(b : Buffer,
       
    19                      errorSource : DefaultErrorSource)
       
    20     : SideKickParsedData = {
       
    21       Plugin.plugin.prover_setup(b) match {
       
    22         case None =>
       
    23           val data = new SideKickParsedData("WARNING:")
       
    24           data.root.add(new DefaultMutableTreeNode("can only parse buffer which is activated via IsabellePlugin -> activate"))
       
    25           data
       
    26         case Some(prover_setup) =>
       
    27           val prover = prover_setup.prover
       
    28           val document = prover.document
       
    29           val data = new SideKickParsedData(b.getPath)
       
    30 
       
    31           for(command <- document.commands){
       
    32             data.root.add(command.root_node.swing_node)
       
    33           }
       
    34           data
       
    35       }
       
    36     }
       
    37 
       
    38 }