anchor.diff:  
         CASE <match>-token.
           WHEN c_token-xml_tag.
  -          <match>-text_tag = substring( val = iv_line off = <match>-offset len = <match>-length ).
  -          IF <match>-text_tag = '>' AND lv_prev_token = c_token-xml_tag. " No other matches between two tags
  +          <match>-text_tag = substring( val = iv_line
  +                                        off = <match>-offset
  +                                        len = <match>-length ).
  +
  +          " No other matches between two tags
  +          IF <match>-text_tag = '>' AND lv_prev_token = c_token-xml_tag.
               lv_state = 'C'.
               <prev>-length = <match>-offset - <prev>-offset + <match>-length.
               DELETE ct_matches INDEX lv_index.
               CONTINUE.
  -          ELSEIF <match>-text_tag = '>' AND lv_prev_token <> c_token-xml_tag. " Adjust length and offset of closing tag
  +
  +          " Adjust length and offset of closing tag
  +          ELSEIF <match>-text_tag = '>' AND lv_prev_token <> c_token-xml_tag.
               lv_state = 'C'.
               <match>-length = <match>-offset - <prev>-offset - <prev>-length + <match>-length.
               <match>-offset = <prev>-offset + <prev>-length.
  
positive.code: *----------------------------------------------------------------------*
  *       CLASS lcl_syntax_abap DEFINITION
  *----------------------------------------------------------------------*
  *
  *----------------------------------------------------------------------*
  CLASS lcl_syntax_abap DEFINITION INHERITING FROM lcl_syntax_highlighter FINAL.
  
    PUBLIC SECTION.
  
     CLASS-METHODS class_constructor.
     METHODS constructor.
  
      CONSTANTS:
        BEGIN OF c_css,
          keyword  TYPE string VALUE 'keyword',                "#EC NOTEXT
          text     TYPE string VALUE 'text',                   "#EC NOTEXT
          comment  TYPE string VALUE 'comment',                "#EC NOTEXT
        END OF c_css.
  
      CONSTANTS:
        BEGIN OF c_token,
          keyword  TYPE c VALUE 'K',                           "#EC NOTEXT
          text     TYPE c VALUE 'T',                           "#EC NOTEXT
          comment  TYPE c VALUE 'C',                           "#EC NOTEXT
        END OF c_token.
  
    PROTECTED SECTION.
  
      CLASS-DATA:
        c_keyword_regex TYPE REF TO cl_abap_regex, " Temporary
        BEGIN OF c_regex,
          comment  TYPE string,
          text     TYPE string,
          keyword  TYPE string,
        END OF c_regex.
  
      CLASS-METHODS get_keywords
        RETURNING VALUE(rv_string) TYPE string.
  
      METHODS order_matches REDEFINITION.
  
  ENDCLASS.                       " lcl_syntax_abap DEFINITION
  
  *----------------------------------------------------------------------*
  *       CLASS lcl_syntax_xml DEFINITION
  *----------------------------------------------------------------------*
  *
  *----------------------------------------------------------------------*
  CLASS lcl_syntax_xml DEFINITION INHERITING FROM lcl_syntax_highlighter FINAL.
  
  
negative.code:       RETURN.
      ENDIF.
  
      me->parse_line( EXPORTING iv_line    = iv_line
                      IMPORTING et_matches = lt_matches ).
  
      me->order_matches( EXPORTING iv_line    = iv_line
                         CHANGING  ct_matches = lt_matches ).
  