void addCell(int lineNumber) { // line number relative to table
      checkImplicitHeader(lineNumber);

      // add cell
      if (rootCell == null) {
        rootCell = CellContext.empty();
        currentCell = rootCell;
        lineNumberStart = lineNumber;
      } else {
        currentCell = CellContext.withParent(currentCell);
      }

      // add column
      if (lineNumber == lineNumberStart) {
        count++;
        if (rootColumn == null) {
          rootColumn = ColumnContext.empty();
          currentColumn = rootColumn;
        } else {
          currentColumn = ColumnContext.withParent(currentColumn);
        }
      }
    }
 static CellContext withParent(CellContext parent) {
   CellContext cell = CellContext.empty();
   parent.next = cell;
   return cell;
 }