docs: public int addArgument(String str, String next) {
      int i = commandLineArgs.length;
      int consumed = 1;
      commandLineArgs = Arrays.copyOf(commandLineArgs, i + 1);
      /*
       * Flags have a null string as val and flag of true; Binding have non-empty
       * name, a non-null val (possibly ""), and a flag of false; Plain strings
       * have an empty name, "", a non-null, non-empty val, and a flag of true;
       */
      if( str.startsWith("-") ){
        int startOffset = (str.startsWith("--"))? 2 : 1;
        String arg = "";
        String opt;
        boolean flag = false;
        int eqPos = str.indexOf("=");
        if( eqPos > 0 ||  (next!=null && !next.startsWith("-"))){
          if( eqPos > 0 ){
            opt = str.substring(startOffset, eqPos);
            arg = str.substring(eqPos + 1);
          }else{
            opt = str.substring(startOffset);
            arg = next;
            consumed = 2;
          }
        }else{
          flag = true;
          opt = str.substring(startOffset);
        }
        commandLineArgs[i] = new Entry(opt, arg, flag, i);
        return consumed;
      }else{
        commandLineArgs[i] = new Entry("", str, true, i);
        return consumed;
      }
    }