code: def _process_publics(self, contents):
          
          matches = self.RE_PUBLIC.finditer(contents)
          result = {}
          start = 0
          for public in matches:
              methods = public.group("methods")
              #We need to keep track of where the public declarations start so that the unit
              #testing framework can insert public statements for those procedures being tested
              #who are not marked as public
              if start == 0:
                  start = public.start("methods")
              for item in re.split(r"[\s&\n,]+", methods.strip()):
                  if item.lower() in ["interface", "type", "use"]:
                      #We have obviously reached the end of the actual public
                      #declaration in this regex match.
                      break
                  self._dict_increment(result, item.lower())
          return (result, start)
docs: Extracts a list of public members, types and executables that were declared using
          the public keyword instead of a decoration.