anchor.diff:      METHODS _add_str IMPORTING iv_str  TYPE csequence.
       METHODS _add_htm IMPORTING io_html TYPE REF TO lcl_html_helper.
   
  -endclass.                    "lcl_html_helper DEFINITION
  +ENDCLASS.                    "lcl_html_helper DEFINITION
   
   *----------------------------------------------------------------------*
   *       CLASS lcl_html_helper IMPLEMENTATION
  
positive.code:     lo_type = cl_abap_typedescr=>describe_by_data( iv_chunk ).
  
      CASE lo_type->type_kind.
      WHEN cl_abap_typedescr=>typekind_char OR cl_abap_typedescr=>typekind_string.
        _add_str( iv_chunk ).
      WHEN cl_abap_typedescr=>typekind_oref.
        ASSERT iv_chunk IS BOUND. " Dev mistake
        TRY.
          lo_html ?= iv_chunk.
        CATCH cx_sy_move_cast_error.
          ASSERT 1 = 0. " Dev mistake
        ENDTRY.
        _add_htm( lo_html ).
      WHEN OTHERS.
        ASSERT 1 = 0. " Dev mistake
      ENDCASE.
  
    ENDMETHOD.  " add
  
negative.code:     CREATE OBJECT lo_html.
      lt_diffs = mo_diff->get( ).
  
      lo_html->add( '<div class="diff_content">' ).           "#EC NOTEXT
      lo_html->add( '<table class="diff_tab">' ).             "#EC NOTEXT
      lo_html->add( '<tr>' ).                                 "#EC NOTEXT
      lo_html->add( '<th class="num"></th>' ).                "#EC NOTEXT
      lo_html->add( '<th>@LOCAL</th>' ).                      "#EC NOTEXT
      lo_html->add( '<th class="num"></th>' ).                "#EC NOTEXT
      lo_html->add( '<th>@REMOTE</th>' ).                     "#EC NOTEXT
      lo_html->add( '<th class="cmd"><a href=#diff_1>&#x25BC; 1</a></th>' ). "#EC NOTEXT
      lo_html->add( '</tr>' ).                                "#EC NOTEXT
  
      LOOP AT lt_diffs ASSIGNING <ls_diff> WHERE short = abap_true.
        lv_index  = sy-tabix.
        lv_local  = escape( val = <ls_diff>-local  format = cl_abap_format=>e_html_attr ).
        lv_remote = escape( val = <ls_diff>-remote format = cl_abap_format=>e_html_attr ).
  