code: public Block[] createBlockForStateMap() {
          Block[] map = new Block[numStates];
          for (Block b = blocklistHead; b != null; b = b.nextBlock) {
              int low = b.low, high = b.high;
              for (int i = low; i < high; i++) {
                  int state = blockData[i];
                  map[state] = b;
              }
          }
          return map;
      }
docs: Creates the {@link #blockForState} mapping from the blocks in the block list, and the contents of the {@link
  #blockData} array.
  
  @return a {@link #blockForState} mapping consistent with the {@link #blockData}