anchor.diff:              for i in gr.edge do
                   graph.AddEdge(new TaggedEdge<string,string>(first(i), second(i), third(i))) |> ignore
   
  -
               //Initialize Graphviz algorithm
               let graphViz = new GraphvizAlgorithm<string, Edge<string>>(clustGraph)
               let evHandler (evArgs : FormatVertexEventArgs<string>) =
  
positive.code:                     match res with
                      | hd :: tl -> match (containsString(hd, grammar.terminals)) with
                                    |true->
                                      gr.edge <- (patt + ":" + listToString(acc) + "." + listToString(hd :: tl), patt + ":" + listToString(acc @ [hd]) + "." + listToString(tl), "scan") :: gr.edge;
                                      getEdges(tl, acc @ [hd], patt)
                                    |false->
                                          gr.edge <- (patt + ":" + listToString(acc) + "." + listToString(hd :: tl), "." + hd, "call") :: gr.edge
                                          gr.edge <- (hd + ".", patt + ":" + listToString(acc @ [hd]) + "." + listToString(tl), "return") :: gr.edge
                                          getEdges(tl, acc @ [hd], patt)
                      | _ -> gr.edge <- gr.edge
                  getEdges(res, [], patt)
              ////////////////////////////////////////////////////
  
  
  
              //Make graph from vertix and edges lists
              let graph = new AdjacencyGraph<string, Edge<string>>();
  
negative.code:             gr.nonterms <- gr.starts :: gr.nonterms
              let grammar = new Grammar(pd = gr.productions, nt = gr.nonterms, t = gr.terms, s = gr.starts)
  
              ////////////////////////////////////Build a lists of edges and vertex
              for nt in grammar.nonterminals do
                  gr.vertex <- (nt + ".") :: gr.vertex
  