code: def process_execdocs(self, docs, anexec, key, add=True):
          
          #Paramdocs has a list of docstrings for summary, usage, parameters, etc.
          #check which belong to parameters and associate them, otherwise append
          #them to the executable.
          for doc in docs:
              if doc.doctype == "parameter":
                  if doc.pointsto is not None and doc.pointsto in anexec.parameters:
                      if add:
                          anexec.parameters[doc.pointsto].docstring.append(doc)
                      else:
                          anexec.parameters[doc.pointsto].overwrite_docs(doc)
                  else: 
                      #the parameter docstring is orphaned, give a warning.
                      wmsg = ("the docstring for parameter '{}' had no corresponding "
                              "parameter in the executable definition for '{}' ({}).")
                      msg.warn(wmsg.format(doc.pointsto, anexec.name, anexec.module.filepath))
              elif doc.doctype == "group":
                  if "name" not in doc.attributes:
                      doc.attributes["name"] = "default"
                  kids = self._process_docgroup(doc, anexec)
                  if add:
                      anexec.docstring.extend(kids)
                  else:
                      for kid in kids:
                          anexec.overwrite_docs(kid)
              else:
                  #The docstring must be for the executable
                  if add:
                      anexec.docstring.append(doc)
                  else:
                      anexec.overwrite_docs(doc)
docs: Associates parameter documentation with parameters for the executable
          and any remaining docs with the executable itself.
  
           - key: the module.executable identifier for the function or subroutine.