code: def _ExtractSymbols(self, descriptors):
      
  
      for desc in descriptors:
        yield (_PrefixWithDot(desc.full_name), desc)
        for symbol in self._ExtractSymbols(desc.nested_types):
          yield symbol
        for enum in desc.enum_types:
          yield (_PrefixWithDot(enum.full_name), enum)
docs: Pulls out all the symbols from descriptor protos.
  
      Args:
        descriptors: The messages to extract descriptors from.
      Yields:
        A two element tuple of the type name and descriptor object.