Parses any interfaces out of the module preamble which is the pre-contains section
        of the program or module.
        
        :arg parent: the ancle.elements.Module instance that will own the interfaces that get
          parsed from the module.

def parse(self, parent):
        """Parses any interfaces out of the module preamble which is the pre-contains section
        of the program or module.
        
        :arg parent: the ancle.elements.Module instance that will own the interfaces that get
          parsed from the module.
        """
        for iface in self.RE_INTERFACE.finditer(parent.preamble):
            name = iface.group("name")
            symbol = iface.group("symbol")
            contents = iface.group("contents")
            result = Interface(name, [], parent, symbol)
            self._parse_procedures(contents, result)

            #Set the regex start and end char indices
            result.start, result.end = parent.absolute_charindex(iface.string, iface.start(),
                                                                 iface.end())
            self.update_docs(result, parent)
            parent.interfaces[name.lower()] = result