func (tb *tableBuffer) cell(val *nodeValue) {
	if len(tb.buffers) == 0 {
		tb.openRow()
	}
	buffers := tb.buffers[tb.deep]
	if len(buffers) > 0 {
		curr := buffers[len(buffers)-1]
		curr.values = append(curr.values, val)
	}
}
cell to create a new cell in row
package tabify
type tableBuffer struct {
	deep    int
	buffers map[int][]*rowBuffer
}
func newTableBuffer() *tableBuffer {
	buffers := make(map[int][]*rowBuffer)
	return &tableBuffer{
		buffers: buffers,
	}
}
func (tb *tableBuffer) openRow() {
	rb := &rowBuffer{
		parent: len(tb.buffers[tb.deep]) - 1,
	}
	tb.deep++
	tb.buffers[tb.deep] = append(tb.buffers[tb.deep], rb)
}
func (tb *tableBuffer) closeRow() {
	if tb.deep > 0 {
		tb.deep--
	}
}