anchor.diff:                  else
                       if Array.exists (fun e -> e = rule) condNonTermRules
                       then
  -                        r.Add(new ResultStruct((getEdge <| getLeftExtension !currentExtension), (getPosOnEdge <| getLeftExtension !currentExtension), (getEdge <| getRightExtension !currentExtension), (getPosOnEdge <| getRightExtension !currentExtension), parser.NumToString <| parser.LeftSide.[rule]))
  +                        r.Add(new ResultStruct((getEdge <| getLeftExtension !currentExtension), (getPosOnEdge <| getLeftExtension !currentExtension), (getEdge <| getRightExtension !currentExtension), (getPosOnEdge <| getRightExtension !currentExtension), parser.NumToString <| parser.LeftSide.[rule], !currentLength))
                           |> ignore
                           
                       pop !currentGSSNode !currentIndex !currentExtension !currentLength
  
positive.code:                     if flg then
                          for rule in rules do
                              let newLabel = 1<labelMeasure> * packLabelNew rule 0
                              addContext !currentIndex newLabel v (packExtension index index)    
                  if cP < chainLen - 1
                  then
                      addCntxtForNonTerm cE cP i   
  
negative.code:             then
                  if Array.exists (fun e -> e = rule) condNonTermRules
                  then
                      r.Add(new ResultStruct((getEdge <| getLeftExtension !currentExtension), (getPosOnEdge <| getLeftExtension !currentExtension), (getEdge <| getRightExtension !currentExtension), (getPosOnEdge <| getRightExtension !currentExtension), parser.NumToString <| parser.LeftSide.[rule], !currentLength))
                      |> ignore
                  pop !currentGSSNode !currentIndex !currentExtension !currentLength
              else
  