* @param offset
   * @param kindofsym
   * @return GeneralizedSymbol
   */
  public static GeneralizedSymbol internBootstrapSymbolAt(String name, int offset, int kindofsym) {
    { ExtensibleSymbolArray symbolarray = null;
      GeneralizedSymbol symbol = null;

      switch (kindofsym) {
        case 0: 
          symbol = Symbol.lookupSymbol(name);
        break;
        case 1: 
          symbol = Surrogate.lookupSurrogate(name);
        break;
        case 2: 
          symbol = Keyword.lookupKeyword(name);
        break;
        default:
          { OutputStringStream stream000 = OutputStringStream.newOutputStringStream();

            stream000.nativeStream.print("`" + kindofsym + "' is not a valid case option");
            throw ((StellaException)(StellaException.newStellaException(stream000.theStringReader()).fillInStackTrace()));
          }
      }
      if (symbol != null) {
        if (!(symbol.symbolId == offset)) {
          Stella.STANDARD_WARNING.nativeStream.println("Warning: intern-bootstrap-symbol-at: `" + symbol + "' is already interned at offset `" + symbol.symbolId + "'");
        }
        return (symbol);
      }
      symbolarray = Stella.selectSymbolArray(kindofsym);
      if (ExtensibleSymbolArray.legalSymbolArrayOffsetP(symbolarray, offset) &&
          (GeneralizedSymbol.getGeneralizedSymbolFromOffset(symbolarray, offset) != null)) {
        symbol = GeneralizedSymbol.getGeneralizedSymbolFromOffset(symbolarray, offset);
        Stella.STANDARD_WARNING.nativeStream.println("Warning: intern-bootstrap-symbol-at: `" + symbol + "' is already interned at offset `" + offset + "'");
        return (symbol);
      }
      { ExtensibleSymbolArray array = Stella.selectSymbolArray(kindofsym);

        return (GeneralizedSymbol.helpInternGeneralizedSymbol(name, kindofsym, array, offset, ((Module)(Stella.$MODULE$.get()))));
      }
    }
  }