anchor.diff:  
           for module' in grammar do
               for r in module'.rules do
  -                let nonterm = NonTerminal <| Source.toString r.name           //is this nonterm name?
  +                let nonterm = NonTerminal <| Source.toString r.name
  +                if not <| nonterminals.Contains nonterm
  +                then
  +                    nonterminals.Add nonterm
  +                    if r.isStart
  +                    then
  +                        S := nonterm
  +
                   match r.body with
                   | PSeq([elem],_,_) ->
                       match elem.rule with
  
positive.code:         
          let rulesHolder = new RulesHolder(crl_result, srl_result, erl_result)
  
          recognizeGraph graph squareMatrix rulesHolder nonterminals S
  
negative.code:         (parsingMatrix.[S], multCount)
  
  
      let graphParse (graph:Graph.T)
                    squareMatrix
                    (loadIL:t<Source.t, Source.t>) =
          let grammar = loadIL.grammar
          
          let S = ref (NonTerminal "")
          let nonterminals = new ResizeArray<NonTerminal>()
          let crl = new Dictionary<NonTerminal * NonTerminal, ResizeArray<NonTerminal*Probability.T>>()
          let srl = new Dictionary<char, ResizeArray<NonTerminal*Probability.T>>()
          let crl_result = new Dictionary<NonTerminal * NonTerminal, (NonTerminal * Probability.T) list>()
  