anchor.diff:                  for v in inputFstLexer.OutEdges(topV) do
                       if v.Tag.OutSymb = Eps
                       then
  -                        //добавляем информацию                        
  +                        //добавляем информацию                       
                           let so,co,br =
                               match v.Tag.InSymb with
                               | Smbl (x,br) -> 
                                   if curStt.curBr = null || br = curStt.curBr
                                   then curStt.start_offset, curStt.cur_offset + 1, br
  -                                else 0,1,br
  +                                else
  +                                    if !reduced = false then curStt.Positions.Add(new Position<_>(curStt.start_offset, curStt.cur_offset, br))
  +                                    if !flag = true then reduced := false
  +                                    0,1,br
                               | x -> failwith "Unexpected symbol in BR calculation:%A" x
                           let newStt = 
                               new StateInfo<_>(
  
positive.code:             let idF = ref 0
              let topV,curStt = queueV.Dequeue()
              
              if curStt.curBr <> null 
              then curStt.Positions.Add(new Position<_>(curStt.start_offset, curStt.cur_offset, curStt.curBr)) 
              
              if not <| visited.[topV]
              then
                  visited.[topV] <- true
  
negative.code:     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)
  