Quantcast
Channel: SCN : Document List - ABAP Development
Viewing all articles
Browse latest Browse all 935

ABAP code lighter for SCN.sap.com

$
0
0

Hello colleagues!

As there is no support of ABAP programming language in syntax highlighting in SCN's WYSIWYG editor at the moment, I wrote the ABAP code lighter for scn.sap.com.

1.png

 

How to install

In order to install the ABAP code lighter, just copy the source code below and paste it into your ABAP editor (SE80). Then activate it (Ctrl+F3).

 

How to use

1. Copy the source code of your ABAP program in the text editor at the left, then press F8.

1.png

2. Copy generated HTML code from the text editor at the right and paste it in your SCN post in HTML mode.

2.png

Below you can see the source code of the progrm and the result of its work at the same time.

I hope you will like it!

 

*&---------------------------------------------------------------------*

*& Report  Z_CODE_LIGHTER

*&

*&---------------------------------------------------------------------*

*&

*&

*&---------------------------------------------------------------------*

 

REPORT z_code_lighter.

 

CONSTANTS:

  gc_begin         TYPE text1024 VALUE`<BODY_BEGIN>`,

  gc_end           TYPE text1024 VALUE`</BODY_END>`,

  gc_blue          TYPE text1024 VALUE`<SPAN_BLUE>`,

  gc_grey          TYPE text1024 VALUE`<SPAN_GREY>`,

  gc_green         TYPE text1024 VALUE`<SPAN_GREEN>`,

  gc_light_blue    TYPE text1024 VALUE`<SPAN_LIGHT_BLUE>`,

  gc_brown         TYPE text1024 VALUE`<SPAN_BROWN>`,

  gc_violet        TYPE text1024 VALUE`<SPAN_VIOLET>`,

  gc_span_close    TYPE text1024 VALUE`</SPAN_CLOSE>`,

  gc_italic        TYPE text1024 VALUE`<ITALIC>`,

  gc_italic_close  TYPE text1024 VALUE`</ITALIC_CLOSE>`,

  gc_dummy         TYPE text1024 VALUE`<DUMMY>`,

 

  gc_begin0        TYPE text1024 VALUE`<PRE class='jive_text_macro jive_macro_quote' jivemacro='quote' _modifiedtitle='true'>`,

  gc_end0          TYPE text1024 VALUE`</PRE>`,

  gc_blue0         TYPE text1024 VALUE`<SPAN style='color: #0000ff;'>`,

  gc_grey0         TYPE text1024 VALUE`<SPAN style='color: #808080;'>`,

  gc_green0        TYPE text1024 VALUE`<SPAN style='color: #4DA616;'>`,

  gc_light_blue0   TYPE text1024 VALUE`<SPAN style='color: #3399FF;'>`,

  gc_brown0        TYPE text1024 VALUE`<SPAN style='color: #800097;'>`,

  gc_violet0       TYPE text1024 VALUE`<SPAN style='color: #800080;'>`,

  gc_span_close0   TYPE text1024 VALUE`</SPAN>`,

  gc_italic0       TYPE text1024 VALUE`<EM>`,

  gc_italic_close0 TYPE text1024 VALUE`</EM>`.

 

TYPE-POOLS abap.

 

TYPES:

  BEGINOF ty_keyword,

    word TYPE text50,

  ENDOF ty_keyword.

 

DATA:

  go_dock TYPEREFTO cl_gui_docking_container,

  go_container_1 TYPEREFTO cl_gui_container,

  go_editor_1    TYPEREFTO cl_gui_textedit,

  go_container_2 TYPEREFTO cl_gui_container,

  go_editor_2    TYPEREFTO cl_gui_textedit,

  gt_code        TYPESTANDARDTABLEOF text1024,

  gt_keywords    TYPESTANDARDTABLEOF ty_keyword,

  g_suppress     TYPE abap_bool.

 

 

REFRESH gt_keywords.

PERFORM words.

 

SELECTION-SCREENBEGINOFSCREEN2000.

SELECTION-SCREENENDOFSCREEN2000.

 

START-OF-SELECTION.

  CALLSELECTION-SCREEN2000.

 

ATSELECTION-SCREEN.

  REFRESH gt_code.

  CALLMETHOD go_editor_1->get_text_as_r3table

    IMPORTING

      table = gt_code.

 

  PERFORM color.

 

  FIELD-SYMBOLS<s_code>LIKELINEOF gt_code.

  LOOPAT gt_code ASSIGNING<s_code>.

    CONCATENATE`<P style='font-family:courier;color:black'>`<s_code>'</P>'INTO<s_code>.

  ENDLOOP.

 

  DATA: gt_code_tmp LIKE gt_code.

  gt_code_tmp = gt_code.

  REFRESH gt_code.

 

  APPEND gc_begin TO gt_code.

  APPENDLINESOF gt_code_tmp TO gt_code.

  APPEND gc_end TO gt_code.

 

  LOOPAT gt_code ASSIGNING<s_code>.

    REPLACEALLOCCURRENCESOF gc_begin        IN<s_code>WITH gc_begin0.

    REPLACEALLOCCURRENCESOF gc_end          IN<s_code>WITH gc_end0.

    REPLACEALLOCCURRENCESOF gc_blue         IN<s_code>WITH gc_blue0.

    REPLACEALLOCCURRENCESOF gc_grey         IN<s_code>WITH gc_grey0.

    REPLACEALLOCCURRENCESOF gc_green        IN<s_code>WITH gc_green0.

    REPLACEALLOCCURRENCESOF gc_light_blue   IN<s_code>WITH gc_light_blue0.

    REPLACEALLOCCURRENCESOF gc_brown        IN<s_code>WITH gc_brown0.

    REPLACEALLOCCURRENCESOF gc_violet       IN<s_code>WITH gc_violet0.

    REPLACEALLOCCURRENCESOF gc_span_close   IN<s_code>WITH gc_span_close0.

    REPLACEALLOCCURRENCESOF gc_italic       IN<s_code>WITH gc_italic0.

    REPLACEALLOCCURRENCESOF gc_italic_close IN<s_code>WITH gc_italic_close0.

  ENDLOOP.

 

  CALLMETHOD go_editor_2->set_text_as_r3table

    EXPORTING

      table          = gt_code

    EXCEPTIONS

      error_dp       = 1

      error_dp_create = 2

      OTHERS         = 3.

 

  CALLSELECTION-SCREEN2000.

 

ATSELECTION-SCREENOUTPUT.

  CHECK go_dock ISNOTBOUND.

  CREATEOBJECT go_dock

    EXPORTING

      parent = cl_gui_container=>screen0

      side  = cl_gui_docking_container=>dock_at_left

      ratio = 90.

 

  DATA go_splitter TYPEREFTO cl_gui_splitter_container.

 

  CREATEOBJECT go_splitter

    EXPORTING

      parent = go_dock

      rows   = 1

      columns = 2.

 

  CHECK go_container_1 ISNOTBOUND.

  CALLMETHOD go_splitter->get_container

    EXPORTING

      row      = 1

      column   = 1

    RECEIVING

      container = go_container_1.

 

  CHECK go_editor_1 ISNOTBOUND.

 

  CREATEOBJECT go_editor_1

    EXPORTING

      parent                    = go_container_1

      wordwrap_mode             = cl_gui_textedit=>wordwrap_at_fixed_position

      wordwrap_position         = 1024

      wordwrap_to_linebreak_mode = cl_gui_textedit=>true.

 

  CHECK go_container_2 ISNOTBOUND.

  CALLMETHOD go_splitter->get_container

    EXPORTING

      row      = 1

      column   = 2

    RECEIVING

      container = go_container_2.

 

  CHECK go_container_2 ISBOUND.

  CHECK go_editor_2 ISNOTBOUND.

 

  CREATEOBJECT go_editor_2

    EXPORTING

      parent                    = go_container_2

      wordwrap_mode             = cl_gui_textedit=>wordwrap_at_fixed_position

      wordwrap_position         = 1024

      wordwrap_to_linebreak_mode = cl_gui_textedit=>true.

 

  IF go_editor_2 ISBOUND.

    CALLMETHOD go_editor_2->set_readonly_mode.

  ENDIF.

 

 

*&---------------------------------------------------------------------*

*&      Form  color

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

FORM color.

 

  DATA:

    l_gt  TYPE text100,

    l_lt  TYPE text100,

    l_gt2 TYPE text100,

    l_lt2 TYPE text100.

 

  FIELD-SYMBOLS<s_code>LIKELINEOF gt_code.

 

 

  LOOPAT gt_code ASSIGNING<s_code>.

 

    CONCATENATE'&g''t;'INTO l_gt.

    CONCATENATE'&l''t;'INTO l_lt.

 

    REPLACEALLOCCURRENCESOF'>'IN<s_code>WITH l_gt.

    REPLACEALLOCCURRENCESOF'<'IN<s_code>WITH l_lt.

 

    CONCATENATE gc_brown l_gt gc_span_close INTO l_gt2.

    CONCATENATE gc_brown l_lt gc_span_close INTO l_lt2.

 

    REPLACEALLOCCURRENCESOF l_gt IN<s_code>WITH l_gt2.

    REPLACEALLOCCURRENCESOF l_lt IN<s_code>WITH l_lt2.

 

    IF<s_code>(1) = '*'.

*     Comments with asterisk:

      PERFORM color_comments USING'\*.*' gc_grey gc_span_close

                          CHANGING<s_code>.

    ELSE.

*     Key words:

      PERFORM color_key_words USING'[a-zA-Z_-]+\w' gc_blue gc_span_close

                           CHANGING<s_code>.

 

*     Digits in brackets:

      DATA: l_open  TYPE text1024,

            l_close TYPE text1024.

      CONCATENATE'(' gc_light_blue INTO l_open.

      CONCATENATE gc_span_close ')'INTO l_close.

      PERFORM color_text USING'\((\d+)\)'"regex

                               l_open      "open tag

                               l_close     "close tag

                      CHANGING<s_code>.

 

      CONCATENATE gc_brown '(' gc_span_close INTO l_gt.

      CONCATENATE gc_brown ')' gc_span_close INTO l_lt.

      REPLACEALLOCCURRENCESOF'('IN<s_code>WITH l_gt.

      REPLACEALLOCCURRENCESOF')'IN<s_code>WITH l_lt.

 

*     Detached digits (TODO):

      PERFORM color_text USING'\d\d*'"regex

                                gc_light_blue           "open tag

                                gc_span_close           "close tag

                       CHANGING<s_code>.

 

      CONCATENATE gc_violet ',' gc_span_close INTO l_gt.

      CONCATENATE gc_violet '.' gc_span_close INTO l_lt.

      REPLACEALLOCCURRENCESOF','IN<s_code>WITH l_gt.

      REPLACEALLOCCURRENCESOF'.'IN<s_code>WITH l_lt.

 

      CONCATENATE gc_violet `=>` gc_span_close INTO l_gt.

      REPLACEALLOCCURRENCESOF`=>`IN<s_code>WITH l_gt.

 

      CONCATENATE gc_violet `->` gc_span_close INTO l_gt.

      REPLACEALLOCCURRENCESOF`->`IN<s_code>WITH l_gt.

 

      CONCATENATE gc_violet ` = ` gc_span_close INTO l_gt.

      REPLACEALLOCCURRENCESOF` = `IN<s_code>WITH l_gt.

 

*     Text in inverted commas:

      PERFORM color_text USING`([\'][^\']*[\'])` gc_green gc_span_close

                      CHANGING<s_code>.

 

*     Texs in SQL-like inverted commas:

      PERFORM color_text USING'([\`][^\`]*[\`])' gc_green gc_span_close

                      CHANGING<s_code>.

 

*     Comments with quotation marks:

      PERFORM color_comments USING'".*' gc_grey gc_span_close

                          CHANGING<s_code>.

    ENDIF.

  ENDLOOP.

 

ENDFORM.                    "color

 

 

*&---------------------------------------------------------------------*

*&      Form  color_key_words

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*      -->U_REGEX      text

*      -->U_OPEN_TAG   text

*      -->U_CLOSE_TAG  text

*      -->CS_CODE      text

*----------------------------------------------------------------------*

FORM color_key_words USING u_regex     TYPE text1024

                           u_open_tag  TYPE text1024

                           u_close_tag TYPE text1024

                  CHANGING cs_code     TYPEany.

 

  DATA:

    lt_code    LIKE gt_code,

    lo_matcher TYPEREFTO cl_abap_matcher,

    lf_success TYPE abap_bool VALUE abap_true,

    ls_match   TYPE match_result,

    l_keyword  TYPE text1024,

    l_offset   TYPE i,

    l_newtext  TYPE text1024.

 

  FIELD-SYMBOLS:

    <s_line>  LIKELINEOF lo_matcher->table,

    <s_code>  LIKELINEOF gt_code,

    <keyword>LIKELINEOF gt_keywords.

 

 

  APPEND cs_code TO lt_code.

  lo_matcher = cl_abap_matcher=>create( pattern    = u_regex

                                        ignore_case = abap_true

                                        table      = lt_code ).

  CHECK lo_matcher ISBOUND.

  WHILE lf_success = abap_true.

    lf_success = lo_matcher->find_next().

    CHECK lf_success = abap_true.

    ls_match = lo_matcher->get_match().

    CHECK ls_match ISNOTINITIAL.

    READTABLE lo_matcher->table ASSIGNING<s_line>INDEX ls_match-line.

    CHECK sy-subrc = 0.

    READTABLE gt_code ASSIGNING<s_code>INDEX ls_match-line.

    CHECK sy-subrc = 0.

    CHECK<s_line>(1)NE'*'.

    l_keyword = <s_line>+ls_match-offset(ls_match-length).

    TRANSLATE l_keyword TOUPPERCASE.

    IF g_suppress = abap_true.

      g_suppress = abap_false.

      CONTINUE.

    ENDIF.

    READTABLE gt_keywords ASSIGNING<keyword>WITHKEY word = l_keyword.

    CHECK sy-subrc = 0.

    IF<keyword> = 'FORM'.

      g_suppress = abap_true.

    ENDIF.

    l_offset = ls_match-offset - 1.

    IF l_offset GE0AND l_offset LT STRLEN(<s_line>).

      CHECK<s_line>+l_offset(1) = ` `.

    ENDIF.

    CONCATENATE u_open_tag <s_line>+ls_match-offset(ls_match-length) u_close_tag INTO l_newtext.

    lf_success = lo_matcher->replace_found( l_newtext ).

  ENDWHILE.

 

  lt_code = lo_matcher->table.

  READTABLE lt_code INTO cs_code INDEX1.

 

ENDFORM.                    "color_key_words

 

 

*&---------------------------------------------------------------------*

*&      Form  color_comments

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*      -->U_REGEX      text

*      -->U_OPEN_TAG   text

*      -->U_CLOSE_TAG  text

*      -->CS_CODE      text

*----------------------------------------------------------------------*

FORM color_comments USING u_regex     TYPE text1024

                          u_open_tag  TYPE text1024

                          u_close_tag TYPE text1024

                 CHANGING cs_code     TYPE text1024.

 

  DATA:

    l_open_tag  TYPE text1024,

    l_close_tag TYPE text1024.

 

  CONCATENATE gc_italic u_open_tag        INTO l_open_tag.

  CONCATENATE u_close_tag gc_italic_close INTO l_close_tag.

 

  PERFORM color_text USING u_regex

                           l_open_tag

                           l_close_tag

                  CHANGING cs_code.

 

ENDFORM.                    "color_comments

 

 

*&---------------------------------------------------------------------*

*&      Form  color_text

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*      -->U_REGEX      text

*      -->U_OPEN_TAG   text

*      -->U_CLOSE_TAG  text

*      -->CS_CODE      text

*----------------------------------------------------------------------*

FORM color_text USING u_regex     TYPE text1024

                      u_open_tag  TYPE text1024

                      u_close_tag TYPE text1024

             CHANGING cs_code     TYPE text1024.

 

  TYPES:

    BEGINOF ty_res,

      textTYPE text1024,

    ENDOF ty_res.

 

  DATA:

    ls_match  TYPE match_result,

    ls_res    TYPE ty_res,

    lt_res    TYPESTANDARDTABLEOF ty_res,

    l_offset  TYPE i,

    l_length  TYPE i,

    l_newtext TYPE text1024,

    lf_change TYPE flag.

 

  DO999TIMES.

    lf_change = abap_true.

    CLEAR ls_match.

    FINDFIRSTOCCURRENCEOFREGEX u_regex IN cs_code MATCHOFFSET ls_match-offset

                                                      MATCHLENGTH ls_match-length.

    IF ls_match-length >0.

      IF u_regex = '\((\d+)\)'."Remove brackets from digits in brackets

        SUBTRACT2FROM ls_match-length.

        ADD1TO ls_match-offset.

      ELSEIF u_regex = '\d\d*'.

 

        l_offset = ls_match-offset - 1.

        IF cs_code+l_offset(1) = ` `

        OR cs_code+l_offset(1) = space

        OR cs_code+l_offset(1)ISINITIAL.

          lf_change = abap_true.

          l_offset = ls_match-offset + ls_match-length.

          IF l_offset GE0AND l_offset LT STRLEN( cs_code ).

            IF cs_code+l_offset(1) = ` `

            OR cs_code+l_offset(1) = space

            OR cs_code+l_offset(1)ISINITIAL

            OR cs_code+l_offset(1) = '.'.

              lf_change = abap_true.

            ELSE.

              lf_change = abap_false.

            ENDIF.

          ENDIF.

        ELSE.

          lf_change = abap_false.

        ENDIF.

      ENDIF.

 

      ls_res-text = cs_code+ls_match-offset(ls_match-length).

      REPLACEALLOCCURRENCESOFREGEX'[\<][^\>]+[\>]'IN ls_res-text WITH''."Clear text content from HTML-tags

      APPEND ls_res TO lt_res.

 

      IF lf_change = abap_false.

        l_newtext = gc_dummy.

      ELSE.

        CONCATENATE u_open_tag gc_dummy u_close_tag INTO l_newtext.

      ENDIF.

      REPLACEFIRSTOCCURRENCEOFREGEX u_regex IN cs_code WITH l_newtext.

    ELSE.

      EXIT.

    ENDIF.

  ENDDO.

 

  LOOPAT lt_res INTO ls_res.

    REPLACEFIRSTOCCURRENCEOF gc_dummy IN cs_code WITH ls_res-text.

  ENDLOOP.

 

ENDFORM.                    "color_text

 

 

DEFINE add_word.

  append&1 to gt_keywords.

END-OF-DEFINITION.

 

 

*&---------------------------------------------------------------------*

*&      Form  words

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

FORM words.

 

  add_word 'ABS'.

  add_word 'ACOS'.

  add_word 'ADD'.

  add_word 'ADD-CORRESPONDING'.

  add_word 'ADJACENT'.

  add_word 'AFTER'.

  add_word 'ALIASES'.

  add_word 'ALL'.

  add_word 'ANALYZER'.

  add_word 'AND'.

  add_word 'ANY'.

  add_word 'APPEND'.

  add_word 'AS'.

  add_word 'ASCENDING'.

  add_word 'ASIN'.

  add_word 'ASSIGN'.

  add_word 'ASSIGNED'.

  add_word 'ASSIGNING'.

  add_word 'AT'.

  add_word 'ATAN'.

  add_word 'AUTHORITY-CHECK'.

  add_word 'AVG'.

  add_word 'BACK'.

  add_word 'BOUND'.

  add_word 'BEFORE'.

  add_word 'BEGIN'.

  add_word 'BINARY'.

  add_word 'BIT'.

  add_word 'BIT-AND'.

  add_word 'BIT-NOT'.

  add_word 'BIT-OR'.

  add_word 'BIT-XOR'.

  add_word 'BLANK'.

  add_word 'BLOCK'.

  add_word 'BREAK'.

  add_word 'BREAK-POINT'.

  add_word 'BUFFER'.

  add_word 'BY'.

  add_word 'C'.

  add_word 'CALL'.

  add_word 'CASE'.

  add_word 'CATCH'.

  add_word 'CEIL'.

  add_word 'CENTERED'.

  add_word 'CHAIN'.

  add_word 'CHANGE'.

  add_word 'CHANGING'.

  add_word 'CHECK'.

  add_word 'CHECKBOX'.

  add_word 'CLASS'.

  add_word 'CLASS-DATA'.

  add_word 'CLASS-EVENTS'.

  add_word 'CLASS-METHODS'.

  add_word 'CLASS-POOL'.

  add_word 'CLEAR'.

  add_word 'CLIENT'.

  add_word 'CLOSE'.

  add_word 'CNT'.

  add_word 'CODE'.

  add_word 'COLLECT'.

  add_word 'COMMENT'.

  add_word 'COMMIT'.

  add_word 'COMMUNICATION'.

  add_word 'COMPUTE'.

  add_word 'CONCATENATE'.

  add_word 'CONDENSE'.

  add_word 'CONSTANTS'.

  add_word 'CONTEXT'.

  add_word 'CONTEXTS'.

  add_word 'CONTINUE'.

  add_word 'CONTROL'.

  add_word 'CONTROLS'.

  add_word 'CONVERT'.

  add_word 'COPY'.

  add_word 'CORRESPONDING'.

  add_word 'COS'.

  add_word 'COSH'.

  add_word 'COUNT'.

  add_word 'COUNTRY'.

  add_word 'CREATE'.

  add_word 'CURRENCY'.

  add_word 'CURSOR'.

  add_word 'CUSTOMER-FUNCTION'.

  add_word 'DATA'.

  add_word 'DATABASE'.

  add_word 'DATASET'.

  add_word 'DEFINITION'.

  add_word 'DEFERRED'.

  add_word 'DELETE'.

  add_word 'DECIMALS'.

  add_word 'DEFAULT'.

  add_word 'DEFINE'.

  add_word 'DELETE'.

  add_word 'DEMAND'.

  add_word 'DESCENDING'.

  add_word 'DESCRIBE'.

  add_word 'DIALOG'.

  add_word 'DISPLAY'.

  add_word 'DISTINCT'.

  add_word 'DIV'.

  add_word 'DIVIDE'.

  add_word 'DIVIDE-CORRESPONDING'.

  add_word 'DO'.

  add_word 'DUPLICATES'.

  add_word 'DYNPRO'.

  add_word 'EDIT'.

  add_word 'EDITOR-CALL'.

  add_word 'ELSE'.

  add_word 'ELSEIF'.

  add_word 'END-OF-DEFINITION'.

  add_word 'END-OF-PAGE'.

  add_word 'END-OF-SELECTION'.

  add_word 'END'.

  add_word 'ENDAT'.

  add_word 'ENDCASE'.

  add_word 'ENDCATCH'.

  add_word 'ENDCHAIN'.

  add_word 'ENDCLASS'.

  add_word 'ENDDO'.

  add_word 'ENDEXEC'.

  add_word 'ENDFORM'.

  add_word 'ENDFUNCTION'.

  add_word 'ENDIF'.

  add_word 'ENDINTERFACE'.

  add_word 'ENDLOOP'.

  add_word 'ENDMETHOD'.

  add_word 'ENDMODULE'.

  add_word 'ENDON'.

  add_word 'ENDPROVIDE'.

  add_word 'ENDSELECT'.

  add_word 'ENDWHILE'.

  add_word 'ENTRIES'.

  add_word 'EVENT'.

  add_word 'EVENTS'.

  add_word 'EXEC'.

  add_word 'EXIT'.

  add_word 'EXIT-COMMAND'.

  add_word 'EXP'.

  add_word 'EXPONENT'.

  add_word 'EXPORT'.

  add_word 'EXPORTING'.

  add_word 'EXCEPTIONS'.

  add_word 'EXTENDED'.

  add_word 'EXTRACT'.

  add_word 'FETCH'.

  add_word 'FIELD'.

  add_word 'FIELD-GROUPS'.

  add_word 'FIELD-SYMBOLS'.

  add_word 'FIELDS'.

  add_word 'FINAL'.

  add_word 'FLOOR'.

  add_word 'FOR'.

  add_word 'FORM'.

  add_word 'FORMAT'.

  add_word 'FRAC'.

  add_word 'FRAME'.

  add_word 'FREE'.

  add_word 'FROM'.

  add_word 'FUNCTION'.

  add_word 'FUNCTION-POOL'.

  add_word 'GENERATE'.

  add_word 'GET'.

  add_word 'GROUP'.

  add_word 'HANDLER'.

  add_word 'HASHED'.

  add_word 'HEADER'.

  add_word 'HELP-ID'.

  add_word 'HELP-REQUEST'.

  add_word 'HIDE'.

  add_word 'HOTSPOT'.

  add_word 'ICON'.

  add_word 'ID'.

  add_word 'IF'.

  add_word 'IMPORT'.

  add_word 'IMPORTING'.

  add_word 'IN'.

  add_word 'INCLUDE'.

  add_word 'INDEX'.

  add_word 'INFOTYPES'.

  add_word 'INITIAL'.

  add_word 'INITIALIZATION'.

  add_word 'INNER'.

  add_word 'INPUT'.

  add_word 'INSERT'.

  add_word 'INTENSIFIED'.

  add_word 'INTERFACE'.

  add_word 'INTERFACE-POOL'.

  add_word 'INTERFACES'.

  add_word 'INTO'.

  add_word 'INVERSE'.

  add_word 'IS'.

  add_word 'JOIN'.

  add_word 'KEY'.

  add_word 'LANGUAGE'.

  add_word 'LAST'.

  add_word 'LEAVE'.

  add_word 'LEFT'.

  add_word 'LEFT-JUSTIFIED'.

  add_word 'LIKE'.

  add_word 'LINAL'.

  add_word 'LINE'.

  add_word 'LINE-COUNT'.

  add_word 'LINE-SELECTION'.

  add_word 'LINE-SIZE'.

  add_word 'LINES'.

  add_word 'LIST-PROCESSING'.

  add_word 'LOAD'.

  add_word 'LOAD-OF-PROGRAM'.

  add_word 'LOCAL'.

  add_word 'LOCALE'.

  add_word 'LOG'.

  add_word 'LOG10'.

  add_word 'LOOP'.

  add_word 'M'.

  add_word 'MARGIN'.

  add_word 'MASK'.

  add_word 'MATCHCODE'.

  add_word 'MAX'.

  add_word 'MEMORY'.

  add_word 'MESSAGE'.

  add_word 'MESSAGE-ID'.

  add_word 'MESSAGES'.

  add_word 'METHOD'.

  add_word 'METHODS'.

  add_word 'MIN'.

  add_word 'MOD'.

  add_word 'MODE'.

  add_word 'MODIF'.

  add_word 'MODIFY'.

  add_word 'MODULE'.

  add_word 'MOVE'.

  add_word 'MOVE-CORRESPONDING'.

  add_word 'MULTIPLY'.

  add_word 'MULTIPLY-CORRESPONDING'.

  add_word 'NEW'.

  add_word 'NEW-LINE'.

  add_word 'NEW-PAGE'.

  add_word 'NEXT'.

  add_word 'NO'.

  add_word 'NE'.

  add_word 'NOT'.

  add_word 'NO-GAP'.

  add_word 'NO-GAPS'.

  add_word 'NO-HEADING'.

  add_word 'NO-SCROLLING'.

  add_word 'NO-SIGN'.

  add_word 'NO-TITLE'.

  add_word 'NO-ZERO'.

  add_word 'NODES'.

  add_word 'NON-UNIQUE'.

  add_word 'O'.

  add_word 'OBJECT'.

  add_word 'OBLIGATORY'.

  add_word 'OCCURS'.

  add_word 'OCCURRENCES'.

  add_word 'OF'.

  add_word 'OFF'.

  add_word 'ON'.

  add_word 'OPEN'.

  add_word 'OR'.

  add_word 'ORDER'.

  add_word 'OTHERS'.

  add_word 'OUTER'.

  add_word 'OUTPUT'.

  add_word 'OVERLAY'.

  add_word 'PACK'.

  add_word 'PAGE'.

  add_word 'PARAMETER'.

  add_word 'PARAMETERS'.

  add_word 'PERFORM'.

  add_word 'PF-STATUS'.

  add_word 'POSITION'.

  add_word 'PRINT'.

  add_word 'PRINT-CONTROL'.

  add_word 'PRIVATE'.

  add_word 'PROCESS'.

  add_word 'PROGRAM'.

  add_word 'PROPERTY'.

  add_word 'PROTECTED'.

  add_word 'PROVIDE'.

  add_word 'PUBLIC'.

  add_word 'PUT'.

  add_word 'RADIOBUTTON'.

  add_word 'RAISE'.

  add_word 'RAISING'.

  add_word 'RANGE'.

  add_word 'RANGES'.

  add_word 'READ'.

  add_word 'RECEIVE'.

  add_word 'REF'.

  add_word 'REFRESH'.

  add_word 'REJECT'.

  add_word 'REPLACE'.

  add_word 'REPORT'.

  add_word 'REQUESTED'.

  add_word 'RESERVE'.

  add_word 'RESET'.

  add_word 'RIGHT-JUSTIFIED'.

  add_word 'ROLLBACK'.

  add_word 'ROUND'.

  add_word 'ROWS'.

  add_word 'RTTI'.

  add_word 'RUN'.

  add_word 'SCAN'.

  add_word 'SCAN'.

  add_word 'SCREEN'.

  add_word 'SEARCH'.

  add_word 'SECTION'.

  add_word 'SEPARATED'.

  add_word 'SCROLL'.

  add_word 'SCROLL-BOUNDARY'.

  add_word 'SEARCH'.

  add_word 'SELECT'.

  add_word 'SELECT-OPTIONS'.

  add_word 'SELECTION-SCREEN'.

  add_word 'SELECTION-TABLE'.

  add_word 'SET'.

  add_word 'SHARED'.

  add_word 'SHIFT'.

  add_word 'SIGN'.

  add_word 'SIN'.

  add_word 'SINGLE'.

  add_word 'SINH'.

  add_word 'SIZE'.

  add_word 'SKIP'.

  add_word 'SORT'.

  add_word 'SORTED'.

  add_word 'SPLIT'.

  add_word 'SQL'.

  add_word 'SQRT'.

  add_word 'STAMP'.

  add_word 'STANDARD'.

  add_word 'START-OF-SELECTION'.

  add_word 'STATICS'.

  add_word 'STOP'.

  add_word 'STRUCTURE'.

  add_word 'SUBMIT'.

  add_word 'SUBTRACT'.

  add_word 'SUBTRACT-CORRESPONDING'.

  add_word 'SUM'.

  add_word 'SUPPLY'.

  add_word 'SUPPRESS'.

  add_word 'SYMBOL'.

  add_word 'SYNTAX-CHECK'.

  add_word 'SYNTAX-TRACE'.

  add_word 'SYSTEM-CALL'.

  add_word 'SYSTEM-EXCEPTIONS'.

  add_word 'TABLE'.

  add_word 'TABLE_LINE'.

  add_word 'TABLES'.

  add_word 'TAN'.

  add_word 'TANH'.

  add_word 'TEXT'.

  add_word 'TEXTPOOL'.

  add_word 'TIME'.

  add_word 'TIMES'.

  add_word 'TITLE'.

  add_word 'TITLEBAR'.

  add_word 'TO'.

  add_word 'TOP-OF-PAGE'.

  add_word 'TRANSACTION'.

  add_word 'TRANSFER'.

  add_word 'TRANSLATE'.

  add_word 'TRANSPORTING'.

  add_word 'TRUNC'.

  add_word 'TYPE'.

  add_word 'TYPE-POOL'.

  add_word 'TYPE-POOLS'.

  add_word 'TYPES'.

  add_word 'ULINE'.

  add_word 'UNDER'.

  add_word 'UNIQUE'.

  add_word 'UNIT'.

  add_word 'UNPACK'.

  add_word 'UP'.

  add_word 'UPDATE'.

  add_word 'USER-COMMAND'.

  add_word 'USING'.

  add_word 'UPPER'.

  add_word 'VALUE'.

  add_word 'VALUE-REQUEST'.

  add_word 'VALUES'.

  add_word 'VARY'.

  add_word 'WHEN'.

  add_word 'WHERE'.

  add_word 'WHILE'.

  add_word 'WINDOW'.

  add_word 'WITH'.

  add_word 'WITH-TITLE'.

  add_word 'WORK'.

  add_word 'WRITE'.

  add_word 'X'.

  add_word 'XSTRING'.

  add_word 'Z'.

  add_word 'ZONE'.

*----------------------------*

  add_word 'TRY'.

  add_word 'ENDTRY'.

  add_word 'RECEIVING'.

  add_word 'REGEX'.

  add_word 'EQ'.

  add_word 'NE'.

  add_word 'LT'.

  add_word 'GT'.

  add_word 'LE'.

  add_word 'GE'.

  add_word 'CO'.

  add_word 'CN'.

  add_word 'CA'.

  add_word 'NA'.

  add_word 'CS'.

  add_word 'NS'.

  add_word 'CP'.

  add_word 'NP'.

  add_word 'FIND'.

  add_word 'FIRST'.

  add_word 'OCCURRENCE'.

  add_word 'MATCH'.

  add_word 'OFFSET'.

  add_word 'LENGTH'.

 

ENDFORM.                    "words


Viewing all articles
Browse latest Browse all 935

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>