<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def parse_top_level(self):
 """The top level parser will do a loop where it looks for a single contact parse and then eats all whitespace until there is no more input left or another contact is found to be parsed and stores them. """

        contacts = []
        while not self.eos:
            contact = self.parse_contact()  # match a contact expression.
            if not contact:  # There was no contact so end file.
                break  # This would be a nice place to put other expressions.
            contacts.append(contact)
            # skip all whitespace between the end of the last contact and the
            # next non whitespace character, ie until something interesting.
            self.parse_whitespace()
        output = {}
        for key, value in contacts:
            output[key] = value
        return output