code: private List<Lr0State> lpgAccess(Lr0State state, Item item)
      {
          Set<Lr0State> result = new NumSet<>();
          result.add(state);
  
          for (int i = item.getDot(); i > 0; i--)
          {
              Set<Lr0State> nset = new NumSet<>();
              for (Lr0State st : result)
              {
                  Set<Lr0State> in = st.getInStates();
                  if (in != null)
                  {
                      nset.addAll(in);
                  }
              }
              result = nset;
          }
          // this is just for getting similar states as jikes do
          List<Lr0State> list = new ArrayList<>();
          list.addAll(result);
          Collections.sort(list);
          Collections.reverse(list);
          return list;
      }
docs: **************************************************************************