docs: int putSymbol(String symbolName)
      {
  
          if (isReadOnly)
          {
              throw new ReadOnlyValueException(SymbolTable.class);
          }
  
          if (mySymbolsCount == mySymbolNames.length)
          {
              int newlen = mySymbolsCount * 2;
              if (newlen < DEFAULT_CAPACITY)
              {
                  newlen = DEFAULT_CAPACITY;
              }
              String[] temp = new String[newlen];
              System.arraycopy(mySymbolNames, 0, temp, 0, mySymbolsCount);
              mySymbolNames = temp;
          }
  
          int sid = -1;
          if (symbolName != null)
          {
              sid = mySymbolsCount + myFirstLocalSid;
              assert sid == getMaxId() + 1;
  
              putToMapIfNotThere(mySymbolsMap, symbolName, sid);
          }
          mySymbolNames[mySymbolsCount] = symbolName;
          mySymbolsCount++;
  
          return sid;
      }