public static String parseWhyArguments(Cons args, Object [] MV_returnarray) {
    { String label = null;
      int depth = Logic.$DEFAULT_EXPLANATION_DEPTH$;
      Keyword style = null;
      boolean summaryP = false;
      Stella_Object firstarg = args.value;

      if (firstarg != null) {
        { Surrogate testValue000 = Stella_Object.safePrimaryType(firstarg);

          if (Surrogate.subtypeOfStringP(testValue000)) {
            { StringWrapper firstarg000 = ((StringWrapper)(firstarg));

              label = firstarg000.wrapperValue;
              args = args.rest;
            }
          }
          else if (Surrogate.subtypeOfIntegerP(testValue000)) {
            { IntegerWrapper firstarg000 = ((IntegerWrapper)(firstarg));

              if (Stella_Object.eqlP(firstarg000, Stella.ONE_WRAPPER)) {
                label = "1";
                args = args.rest;
              }
            }
          }
          else if (Surrogate.subtypeOfFloatP(testValue000)) {
            { FloatWrapper firstarg000 = ((FloatWrapper)(firstarg));

              label = Native.stringify(firstarg000);
              args = args.rest;
            }
          }
          else if (Surrogate.subtypeOfSymbolP(testValue000)) {
            { Symbol firstarg000 = ((Symbol)(firstarg));

              if (Stella.$CHARACTER_TYPE_TABLE$[(int) ((firstarg000.symbolName).charAt(0))] == Logic.KWD_DIGIT) {
                label = firstarg000.symbolName;
                args = args.rest;
              }
            }
          }
          else {
          }
        }
        { Stella_Object arg = null;
          Cons iter000 = args;
          int i = Stella.NULL_INTEGER;
          int iter001 = 0;

          for (;!(iter000 == Stella.NIL); iter000 = iter000.rest, iter001 = iter001 + 1) {
            arg = iter000.value;
            i = iter001;
            if (Logic.commandOptionEqlP(arg, "BRIEF")) {
              style = Logic.KWD_BRIEF;
            }
            if (Logic.commandOptionEqlP(arg, "VERBOSE")) {
              style = Logic.KWD_VERBOSE;
            }
            if (Logic.commandOptionEqlP(arg, "SUMMARY")) {
              summaryP = true;
            }
            if (Stella_Object.integerP(arg)) {
              depth = ((IntegerWrapper)(arg)).wrapperValue;
            }
            if (arg == Logic.KWD_DEPTH) {
              if (args.nth(i + 1) == null) {
                depth = Stella.NULL_INTEGER;
              }
            }
            if (Logic.commandOptionEqlP(arg, "ALL")) {
              depth = Stella.NULL_INTEGER;
            }
          }
        }
      }
      { String _return_temp = label;

        MV_returnarray[0] = style;
        MV_returnarray[1] = IntegerWrapper.wrapInteger(depth);
        MV_returnarray[2] = BooleanWrapper.wrapBoolean(summaryP);
        return (_return_temp);
      }
    }
  }