public static Cons matchSubstring(String substring, boolean parsingTimeP) {
    { String teststring = Native.stringDowncase(substring);
      Stella_Object testValue = null;

      if ((!parsingTimeP) &&
          ((substring.length() == 1) &&
           BooleanWrapper.coerceWrappedBooleanToBoolean(((BooleanWrapper)(testValue = Stella_Object.dateTimeDivider(CharacterWrapper.wrapCharacter(substring.charAt(0)))))))) {
        return (Cons.consList(Cons.cons(Stella.SYM_STELLA_DATE_TIME_DIVIDER, Cons.cons(testValue, Stella.NIL))));
      }
      if (((IntegerWrapper)(testValue = Stella_Object.month(StringWrapper.wrapString(teststring)))) != null) {
        return (Cons.consList(Cons.cons(Stella.SYM_STELLA_MONTH, Cons.cons(testValue, Stella.NIL))));
      }
      if (((Keyword)(testValue = Stella_Object.weekday(StringWrapper.wrapString(teststring)))) != null) {
        return (Cons.consList(Cons.cons(Stella.SYM_STELLA_WEEKDAY, Cons.cons(testValue, Stella.NIL))));
      }
      if (((Symbol)(testValue = Stella_Object.amPm(StringWrapper.wrapString(teststring)))) != null) {
        return (Cons.consList(Cons.cons(Stella.SYM_STELLA_AM_PM, Cons.cons(testValue, Stella.NIL))));
      }
      if (((Symbol)(testValue = Stella_Object.noonMidn(StringWrapper.wrapString(teststring)))) != null) {
        return (Cons.consList(Cons.cons(Stella.SYM_STELLA_NOON_MIDN, Cons.cons(testValue, Stella.NIL))));
      }
      if (((FloatWrapper)(testValue = Stella_Object.zone(StringWrapper.wrapString(teststring)))) != null) {
        return (Cons.consList(Cons.cons(Stella.SYM_STELLA_ZONE, Cons.cons(testValue, Stella.NIL))));
      }
      if (((Symbol)(testValue = Stella_Object.specialp(StringWrapper.wrapString(teststring)))) != null) {
        return (Cons.consList(Cons.cons(Stella.SYM_STELLA_SPECIAL, Cons.cons(testValue, Stella.NIL))));
      }
      if (((Boolean)(Stella.$ERROR_ON_MISMATCH$.get())).booleanValue()) {
        { OutputStringStream stream000 = OutputStringStream.newOutputStringStream();

          stream000.nativeStream.print("\"~A\" is not a recognized word or abbreviation.`" + substring + "'");
          throw ((StellaException)(StellaException.newStellaException(stream000.theStringReader()).fillInStackTrace()));
        }
      }
      else {
        return (Stella.NIL);
      }
    }
  }