public boolean parseLine(@NotNull CharSequence line) {
      int offset = 0;

      if (myResult.isEmpty()) {
        if (!CharArrayUtil.regionMatches(line, offset, myRecordStart)) {
          return false;
        }
        offset += myRecordStart.length();
      }

      while (offset < line.length()) {
        if (atRecordEnd(line, offset)) {
          myResult.finishItem();
          if (!hasCompleteOptionsList()) {
            throwGFE("Parsed incomplete options " + myResult.getResult() + " for " +
                     Arrays.toString(myOptions), line);
          }
          return true;
        }

        if (CharArrayUtil.regionMatches(line, offset, myItemsSeparator)) {
          myResult.finishItem();
          offset += myItemsSeparator.length();
        }
        else {
          char c = line.charAt(offset);
          myResult.append(c);
          offset++;
        }
      }

      myResult.append('\n');

      return false;
    }
public boolean parseLine(@NotNull CharSequence line)