anchor.diff:      let maxV = inputFstLexer.Vertices |> Seq.max |> ref
       let visited = ResizeArray.init (!maxV + 1) (fun _ -> false)
       let edges = new ResizeArray<_>()
  -
  +    let reduced = ref false
  +    let flag = ref false
       let bfs vertex (stt: StateInfo<_>) =
           let queueV = new Queue<_>()
           queueV.Enqueue(vertex,stt)
  
positive.code:                 for v in inputFstLexer.OutEdges(topV) do                    
                      if not <| (v.Tag.OutSymb = Eps)  
                      then
                      //еще раз пройтись, чтобы найти невыполненные action
                          idF := match v.Tag.OutSymb with
                                  | Smbl x -> x
                                  | x -> failwith "Unexpected symbol in function calculation:%A" x 
  
negative.code:             let idF = ref 0
              let topV,curStt = queueV.Dequeue()
              
  //            if curStt.curBr <> null && !reduce
  //            then 
  //                curStt.Positions.Add(new Position<_>(curStt.start_offset, curStt.cur_offset, curStt.curBr)) 
  //                reduce := false           
  
              if not <| visited.[topV]
              then
                  visited.[topV] <- true
  