anchor.diff:                  errorList <- errInfo :: errorList
                   wasError <- ref true
               else
  -                
  -                //makeReductions ()
  -                //attachEdges()
                   let vertices = usedStates.ToArray() |> Array.map (fun i -> stateToVertex.[i])                    
                   drawDot parserSource.TokenToNumber tokens parserSource.LeftSide vertices parserSource.NumToString parserSource.ErrorIndex
                               <| sprintf "dot/stack_%d_0.dot" !curLvl
  -                if !isEOF //&& !NeadSh
  +                if !isEOF
                   then
                       try 
                           
  
positive.code:                     then
                          if pushesMap.ContainsKey !curLvl
                          then
                              printfn "_____%A________" !curLvl
                              Array.iter (printfn "%A") vertices
                              drawDot parserSource.TokenToNumber tokens parserSource.LeftSide vertices parserSource.NumToString parserSource.ErrorIndex
                                  <| sprintf "dot/stack_%d_2.dot" !curLvl    
                              for vertex in usedStates do
                                  stateToVertex.[vertex] <- null
                              usedStates.Clear()
  
negative.code:                                     let newVertex = addVertex [|state, !curLvl,  Some (vertex, newAstNode)|]
                                      addSimpleEdge vertex newAstNode simpleEdges.[state]
                              pushesMap.Remove(!curLvl) |> ignore
                              makeReductions ()
                              attachEdges()
                              let vertices = usedStates.ToArray() |> Array.map (fun i -> stateToVertex.[i])                    
  