anchor.diff:      let prepareToHighlighting (graphOpt : ParserInputGraph<'token> option) tokenToTreeNode = 
           if graphOpt.IsSome
           then
  +            
               let tokensList = new ResizeArray<_>()
   
  -            let inGraph = graphOpt.Value 
  +            let inGraph = graphOpt.Value
  +            let edges = ResizeArray()
  +            for e in inGraph.Edges do
  +                let tokenName = e.Tag |> tokenToNumber |> numToString
  +                edges.Add( new TaggedEdge<int, string>(e.Source, e.Target, tokenName))
  +            let vertices = inGraph.Vertices
  +                     
  +            let drawGraph = DrawingGraph(vertices, edges)
               inGraph.TopologicalSort()
               |> Seq.iter 
                   (fun vertex -> 
  
positive.code:                         |> Seq.iter (fun edge -> tokensList.Add <| tokenToTreeNode edge.Tag)
                  )
  
              lexingFinished.Trigger(new LexingFinishedArgs<'node>(tokensList, lang))
  
      let processLang graph addLError addPError =
  //        let tokenize g =
  
negative.code: open YC.FST.GraphBasedFst
  open YC.FSA.FsaApproximation
  open YC.FSA.GraphBasedFsa
  open System.Collections.Generic
  
  type TreeGenerationState<'node> = 
      | Start
      | InProgress of 'node * int list
      | End of 'node
      
      //add typegraph
  type DrawingGraph (vertices : IEnumerable<int>, edges : List<TaggedEdge<int, string>>) =
      member this.Vertices = vertices
      member this.Edges = edges
  
  type LexingFinishedArgs<'node> (tokens : ResizeArray<'node>, lang:string, drawGraph : DrawingGraph) =
       inherit System.EventArgs()
       member this.Tokens = tokens
       member this.Lang = lang
       member this.Graph = drawGraph
  
  type ParsingFinishedArgs(lang:string) = 
      inherit System.EventArgs()
      member this.Lang = lang
  
  exception LexerError of string*obj
  
  