code: def parse(self, parent):
          
          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
docs: 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.