anchor.diff:  ;;;;****************************************************************************
   
   (defpackage "COM.INFORMATIMAGO.COMMON-LISP.HTML-PARSER.PARSE-HTML"
  -   (:use "COMMON-LISP"
  +  (:use "COMMON-LISP"
           "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.UTILITY"
           "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.LIST"
           "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.STRING"
  
positive.code: 
  
  (defvar *row-kind* :body)
  (defstruct row   kind tag pattributes cells)
  (defstruct cell           pattributes lines)
  
  
  (defun collect-table-cells (element)
    (when (listp element)
      (case (html-tag element)
        ((:table)  (let ((*row-kind* :body)
                         (rows       '()))
                     (dolist (child (html-contents element) rows)
                       (when (listp child)
                         (case (html-tag child)
                           ((:thead :tbody) (appendf rows (collect-table-cells child)))
                           ((:th :tr)       (appendf rows (list (collect-table-cells child))))
                           ((:caption :col :colgroup) #| ignore for now |#)
  
negative.code: Simple tables are rendered, but colspan and rowspan are ignored.
  "
    (let ((*standard-output* stream))
      (if (string-equal (element-tag html) :document)
          (dolist (child (element-children html))
            (write-text child))
          (write-text html))))
  
  
  