code: private static boolean processFragmentGrouping(final CharIter iter, final CxSmilesState state) {
          if (state.fragGroups == null)
              state.fragGroups = new ArrayList<>();
          List<Integer> dest = new ArrayList<>();
          while (iter.hasNext()) {
              dest.clear();
              if (!processIntList(iter, DOT_SEPARATOR, dest))
                  return false;
              iter.nextIf(COMMA_SEPARATOR);
              if (dest.isEmpty())
                  return true;
              state.fragGroups.add(new ArrayList<>(dest));
          }
          return false;
      }
docs: Fragment grouping defines disconnected components that should be considered part of a single molecule (i.e.
  Salts). Examples include NaH, AlCl3, Cs2CO3, HATU, etc.
  
  @param iter input characters, iterator is progressed by this method
  @param state output CXSMILES state
  @return parse was a success (or not)