public void parse(String[] args) {
    int from = 0;
    int to = 1;
    while(from < args.length) {
      to = from + 1;
      if (isKey(args[from]) && isThisKey(args[from])) {
        while(to < args.length && !isKey(args[to])) {
          to++;
        }
        doParse(removeKey(Arrays.copyOfRange(args, from, to)));
      }
      from = to;
    }
  }