'Given the text `lines` of a row, parse it and append to `self.table`.
The row is parsed according to the current column spec (either
`spanline` if provided or `self.columns`).  For each column, extract
text from each line, and check for text in column margins.  Finally,
adjust for insigificant whitespace.'

def parse_row(self, lines, start, spanline=None):

    if (not (lines or spanline)):
        return
    if spanline:
        columns = self.parse_columns(*spanline)
        span_offset = spanline[1]
    else:
        columns = self.columns[:]
        span_offset = start
    self.check_columns(lines, start, columns)
    row = self.init_row(columns, start)
    for i in range(len(columns)):
        (start, end) = columns[i]
        cellblock = lines.get_2D_block(0, start, len(lines), end)
        cellblock.disconnect()
        cellblock.replace(self.double_width_pad_char, '')
        row[i][3] = cellblock
    self.table.append(row)
