docs: def register(self, table):
          """Adds a shared table to the catalog.
  
          Args:
              table (SymbolTable): A non-system, shared symbol table.
          """
          if table.table_type.is_system:
              raise ValueError('Cannot add system table to catalog')
          if not table.table_type.is_shared:
              raise ValueError('Cannot add local table to catalog')
          if table.is_substitute:
              raise ValueError('Cannot add substitute table to catalog')
  
          versions = self.__tables.get(table.name)
          if versions is None:
              versions = {}
              self.__tables[table.name] = versions
          versions[table.version] = table