code: def _docstring_parse(self, blocks):
          
          result = {}
          for block, docline, doclength, key in blocks:
              doctext = "<doc>{}</doc>".format(" ".join(block))
              try:
                  docs = ET.XML(doctext)
                  docstart = self.parser.charindex(docline, 0, self.context)
                  if not key in result:
                      result[key] = [list(docs), docstart, docstart + doclength]
                  else:
                      #If there are docblocks separated by whitespace in the
                      #same element we can't easily keep track of the start and
                      #end character indices anymore.
                      result[key][0].extend(list(docs))
              except ET.ParseError:
                  msg.warn(doctext)
  
          return result
docs: Parses the XML from the specified blocks of docstrings.