*/
  public static void registerCmdLineOption(Cons options) {
    { PropertyList theoptions = Stella_Object.parseOptions(options, Cons.list$(Cons.cons(Stella.KWD_DOCUMENTATION, Cons.cons(Stella.SGT_STELLA_STRING, Cons.cons(Stella.KWD_KEY, Cons.cons(Stella.SGT_STELLA_STRING, Cons.cons(Stella.KWD_KEY2, Cons.cons(Stella.SGT_STELLA_STRING, Cons.cons(Stella.KWD_KEY3, Cons.cons(Stella.SGT_STELLA_STRING, Cons.cons(Stella.KWD_KEYS, Cons.cons(Stella.SGT_STELLA_CONS, Cons.cons(Stella.KWD_VALUE_TYPE, Cons.cons(Stella.SGT_STELLA_TYPE, Cons.cons(Stella.KWD_MULTI_VALUEDp, Cons.cons(Stella.SGT_STELLA_BOOLEAN, Cons.cons(Stella.KWD_N_ARGUMENTS, Cons.cons(Stella.SGT_STELLA_INTEGER, Cons.cons(Stella.KWD_DEFAULT_VALUE, Cons.cons(Stella.SGT_STELLA_OBJECT, Cons.cons(Stella.KWD_PROPERTY, Cons.cons(Stella.SGT_STELLA_STRING, Cons.cons(Stella.KWD_HANDLER, Cons.cons(Stella.SGT_STELLA_SYMBOL, Cons.cons(Stella.KWD_ERROR_ACTION, Cons.cons(Stella.SGT_STELLA_KEYWORD, Cons.cons(Stella.NIL, Stella.NIL)))))))))))))))))))))))))), true, false);
      CmdLineOption cmdlineoption = CmdLineOption.newCmdLineOption();
      Stella_Object value = null;

      cmdlineoption.documentation = ((StringWrapper)(theoptions.lookupWithDefault(Stella.KWD_DOCUMENTATION, StringWrapper.wrapString("Not documented.")))).wrapperValue;
      value = theoptions.lookup(Stella.KWD_KEY);
      if (value != null) {
        cmdlineoption.keys = Cons.cons(value, cmdlineoption.keys);
      }
      value = theoptions.lookup(Stella.KWD_KEY2);
      if (value != null) {
        cmdlineoption.keys = Cons.cons(value, cmdlineoption.keys);
      }
      value = theoptions.lookup(Stella.KWD_KEY3);
      if (value != null) {
        cmdlineoption.keys = Cons.cons(value, cmdlineoption.keys);
      }
      { Stella_Object val = null;
        Cons iter000 = ((Cons)(theoptions.lookupWithDefault(Stella.KWD_KEYS, Stella.NIL)));

        for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
          val = iter000.value;
          value = Stella_Object.coerceValueToType(val, Stella.SGT_STELLA_STRING, true);
          cmdlineoption.keys = Cons.cons(value, cmdlineoption.keys);
        }
      }
      cmdlineoption.keys = cmdlineoption.keys.reverse();
      cmdlineoption.valueType = ((Surrogate)(theoptions.lookupWithDefault(Stella.KWD_VALUE_TYPE, Stella.SGT_STELLA_STRING)));
      cmdlineoption.multiValuedP = BooleanWrapper.coerceWrappedBooleanToBoolean(((BooleanWrapper)(theoptions.lookupWithDefault(Stella.KWD_MULTI_VALUEDp, Stella.FALSE_WRAPPER))));
      cmdlineoption.nArguments = ((IntegerWrapper)(theoptions.lookupWithDefault(Stella.KWD_N_ARGUMENTS, IntegerWrapper.wrapInteger(0)))).wrapperValue;
      cmdlineoption.defaultValue = theoptions.lookup(Stella.KWD_DEFAULT_VALUE);
      cmdlineoption.configurationProperty = ((StringWrapper)(theoptions.lookupWithDefault(Stella.KWD_PROPERTY, Stella.NULL_STRING_WRAPPER))).wrapperValue;
      value = theoptions.lookup(Stella.KWD_HANDLER);
      if (value != null) {
        value = Symbol.lookupFunction(((Symbol)(value)));
        if (value == null) {
          { OutputStringStream stream000 = OutputStringStream.newOutputStringStream();

            stream000.nativeStream.print("register-cmd-line-option: cannot find handler function: `" + theoptions.lookup(Stella.KWD_HANDLER) + "'");
            throw ((StellaException)(StellaException.newStellaException(stream000.theStringReader()).fillInStackTrace()));
          }
        }
        cmdlineoption.handler = ((MethodSlot)(value)).functionCode;
      }
      cmdlineoption.errorAction = ((Keyword)(theoptions.lookupWithDefault(Stella.KWD_ERROR_ACTION, Stella.KWD_ERROR)));
      { StringWrapper key = null;
        Cons iter001 = cmdlineoption.keys;

        for (;!(iter001 == Stella.NIL); iter001 = iter001.rest) {
          key = ((StringWrapper)(iter001.value));
          Stella.$REGISTERED_COMMAND_LINE_OPTIONS$.insertAt(key, cmdlineoption);
        }
      }
    }
  }