public static GeneralizedSymbol internRigidSymbolCaseSensitively(String name, int kindofsym, boolean tryupcasingP) {
    { GeneralizedSymbol symbol = null;

      symbol = GeneralizedSymbol.lookupRigidSymbol(name, kindofsym);
      if (symbol != null) {
        return (symbol);
      }
      if (((Boolean)(Stella.$TRANSIENTOBJECTSp$.get())).booleanValue() &&
          (kindofsym == Stella.SYMBOL_SYM)) {
        symbol = Stella.lookupTransientSymbol(name);
        if (symbol != null) {
          return (symbol);
        }
      }
      if (tryupcasingP) {
        symbol = GeneralizedSymbol.lookupRigidSymbol(Native.stringUpcase(name), kindofsym);
        if (symbol != null) {
          return (symbol);
        }
      }
      switch (kindofsym) {
        case 0: 
          if (((Boolean)(Stella.$TRANSIENTOBJECTSp$.get())).booleanValue()) {
            return (Stella.internTransientSymbol(name));
          }
          else {
            return (Symbol.internPermanentSymbol(name));
          }
        case 1: 
          return (GeneralizedSymbol.internRigidSymbolWrtModule(name, ((Module)(Stella.$MODULE$.get())), Stella.SURROGATE_SYM));
        default:
          { OutputStringStream stream000 = OutputStringStream.newOutputStringStream();

            stream000.nativeStream.print("`" + kindofsym + "' is not a valid case option");
            throw ((StellaException)(StellaException.newStellaException(stream000.theStringReader()).fillInStackTrace()));
          }
      }
    }
  }