'Assembles parsed documentation to the original documentation.
This function assembles the whole documentation comment, with the
given markers and indentation.'

@lru_cache(maxsize=1)
def assemble(self):

    lines = self.documentation.splitlines(keepends=True)
    assembled = (self.indent + self.marker[0])
    if (len(lines) == 0):
        return (self.marker[0] + self.marker[2])
    assembled += lines[0]
    assembled += ''.join((('\n' if ((line == '\n') and (not self.marker[1])) else ((self.indent + self.marker[1]) + line)) for line in lines[1:]))
    assembled = (assembled if (self.marker[1] == self.marker[2]) else ((assembled + (self.indent if (lines[(-1)][(-1)] == '\n') else '')) + self.marker[2]))
    assembled = ((('\n' * self.top_padding) + assembled) + ('\n' * self.bottom_padding))
    return assembled
