def METHOD_NAME(self, parent, blocks):
    """ Parse a table block and build table. """
    block = blocks.pop(0).split('\n')
    header = block[0].strip()
    rows = [] if len(block) < 3 else block[2:]
    # Get alignment of columns
    align = []
    for c in self.separator:
        c = c.strip()
        if c.startswith(':') and c.endswith(':'):
            align.append('center')
        elif c.startswith(':'):
            align.append('left')
        elif c.endswith(':'):
            align.append('right')
        else:
            align.append(None)
    # Build table
    table = etree.SubElement(parent, 'table')
    thead = etree.SubElement(table, 'thead')
    self._build_row(header, thead, align)
    tbody = etree.SubElement(table, 'tbody')
    for row in rows:
        self._build_row(row.strip(), tbody, align)