Extracts a list of public members, types and executables that were declared using
        the public keyword instead of a decoration.

def _process_publics(self, contents):
        """Extracts a list of public members, types and executables that were declared using
        the public keyword instead of a decoration."""
        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)