anchor.diff:          // Currently processed token
           let curTokens = processChunk enum.Current |> ref
           let curLvl = ref (!curTokens).CurLvl
  -        let errorLvl = ref -1
           let isEOF = ref false
           /// Here all tokens from the input will be collected
           let tokens = new BlockResizeArray<_>()
  
positive.code: 
          ignore <| addVertex [|startState, 0, None|]
          let inline trd (_,_,x) = x
  
          let print fName =
  #if DEBUG
              let path = (sprintf fName !curLvl) |> string |> System.IO.Path.GetDirectoryName
              if path |> System.IO.Directory.Exists |> not
              then System.IO.Directory.CreateDirectory path |> ignore
              let vertices = usedStates.ToArray() |> Array.map (fun i -> stateToVertex.[i])                    
              drawDot parserSource.TokenToNumber tokens parserSource.LeftSide vertices parserSource.NumToString parserSource.ErrorIndex
                          <| sprintf fName !curLvl     
  #endif
              ()
  
          let makeReductions () =
              print "dot\stack_7_%A"
              while reductions.Count > 0 do
                  let vertex, prod, pos, edgeOpt = reductions.Pop()
                  let nonTerm = parserSource.LeftSide.[prod]
  
negative.code:         new TokensInfo<_>(Array.map (fun (t,nl) -> new TokenWithInfo<_>(t,nl, parserSource.TokenToNumber t))ts,cl)
      
      let pushesMap = new Dictionary<_,ResizeArray<_>>(10)
  
      let enum = tokens.GetEnumerator()
      // Change if it doesn't equal to zero. Now it's true according to states building algorithm
      let startState = 0
  