'Parses documentation independent of language and docstyle.
:return:
The list of all the parsed sections of the documentation. Every
section is a namedtuple of either ``Description`` or ``Parameter``
or ``ReturnValue``.
:raises NotImplementedError:
When no parsing method is present for the given language and
docstyle.'

def parse(self):

    if ((self.language == 'python') and (self.docstyle == 'default')):
        return self._parse_documentation_with_symbols((':param    ', ':'), (':raises    ', ':'), ':return:')
    elif ((self.language == 'python') and (self.docstyle == 'doxygen')):
        return self._parse_documentation_with_symbols(('@param    ', '    '), ('@raises    ', '    '), '@return    ')
    elif ((self.language == 'java') and (self.docstyle == 'default')):
        return self._parse_documentation_with_symbols(('@param        ', '    '), ('@raises        ', '    '), '@return    ')
    elif ((self.language == 'golang') and (self.docstyle == 'golang')):
        return self.documentation.splitlines(keepends=True)
    else:
        raise NotImplementedError('Documentation    parsing    for    {0.language!r}    in    {0.docstyle!r}    has    not    been    implemented    yet'.format(self))
