code: def _parse_members(self, contents, anexec, params, mode="insert"):
          
          #First get the variables declared in the body of the executable, these can
          #be either locals or parameter declarations.
          members = self.vparser.parse(contents, anexec)
  
          #If the name matches one in the parameter list, we can connect them
          for param in list(params):
              lparam = param.lower()
              if lparam in members:
                  if mode == "insert" and not lparam in anexec.parameters:
                      anexec.add_parameter(members[lparam])
                  elif mode == "delete":
                      anexec.remove_parameter(members[lparam])
              
          #The remaining members that aren't in parameters are the local variables
          for key in members:
              if mode == "insert":
                  if not key.lower() in anexec.parameters:
                      anexec.members[key] = members[key]
              elif mode == "delete" and key in anexec.members:
                  del anexec.members[key]
  
          #Next we need to get hold of the docstrings for these members
          if mode == "insert":
              memdocs = self.docparser.parse_docs(contents, anexec)
              if anexec.name in memdocs:
                  docs = self.docparser.to_doc(memdocs[anexec.name][0], anexec.name)
                  self.docparser.process_memberdocs(docs, anexec)
  
              #Also process the embedded types and executables who may have
              #docstrings just like regular executables/types do.
              self.docparser.process_embedded(memdocs, anexec)
docs: Parses the local variables for the contents of the specified executable.