anchor.diff:    size_t last_newline;
     size_t final_newline;
   
  -  VALUE listener;
  -  VALUE rows;
  -  VALUE current_row;
  +  VALUE listener; // Possible memory leak, but Valgrind doesn't seem to detect it
   
     listener_cb store_comment_content;
     listener_cb store_tag_content;
  
positive.code:     con = rb_str_new(PTR_TO(content_start), LEN(content_start, p));
      rb_funcall(con, rb_intern("strip!"), 0);
  
      rb_ary_push(lexer->current_row, con);
    }
  
    action start_row {
      lexer->current_row = rb_ary_new();    
    }  
  
    action store_row {
      rb_ary_push(lexer->rows, lexer->current_row);
    }
  
    action store_table {
      rb_funcall(lexer->listener, rb_intern("table"), 2, lexer->rows, INT2FIX(lexer->current_line));
    }
  
    action end_feature {
  
negative.code:   action start_table {
      p = p - 1;
      lexer->current_line = lexer->line_number;
      rb_ary_clear(rows);
      rb_ary_clear(current_row);
    }
    
    action begin_cell_content {
  