public String scanNonWhiteSpaceString() throws StringScanException {
    StringBuffer sbuf = new StringBuffer(len);
    int idxSave = idx;
    char c;
    
    skipWhiteSpace();
    if (idx == len) {
      StringScanException e = new StringScanException(idx, "end of input");
      idx = idxSave;
      throw e;
    } else {
      c = buf[idx++];
      while (idx < len && !Character.isWhitespace(c)
          && stringDelimiters.indexOf(c) == -1) {
        sbuf.append(c);
        c = buf[idx++];
      }
      if (Character.isWhitespace(c) || stringDelimiters.indexOf(c) != -1) {
        idx--;
      } else {
        sbuf.append(c);
      }
    }
    return sbuf.toString();
  }