code: private static boolean processCoords(CharIter iter, CxSmilesState state) {
          if (state.atomCoords == null)
              state.atomCoords = new ArrayList<>();
          while (iter.hasNext()) {
  
              // end of coordinate list
              if (iter.curr() == ')') {
                  iter.next();
                  iter.nextIf(','); // optional
                  return true;
              }
  
              double x = readDouble(iter);
              if (!iter.nextIf(','))
                  return false;
              double y = readDouble(iter);
              if (!iter.nextIf(','))
                  return false;
              double z = readDouble(iter);
              iter.nextIf(';');
  
              state.coordFlag = state.coordFlag || z != 0;
              state.atomCoords.add(new double[]{x, y, z});
          }
          return false;
      }
docs: Coordinates are written between parenthesis. The z-coord may be omitted '(0,1,),(2,3,)'.
  @param iter input characters, iterator is progressed by this method
  @param state output CXSMILES state
  @return parse was a success (or not)