| 
									
										
										
										
											2004-09-02 19:12:26 +00:00
										 |  |  | " Vim ABAP syntax file | 
					
						
							| 
									
										
										
										
											2006-04-13 20:37:35 +00:00
										 |  |  | "    Language: SAP - ABAP/R4 | 
					
						
							| 
									
										
										
										
											2012-10-21 03:02:54 +02:00
										 |  |  | "  Maintainer: Marius Piedallu van Wyk <lailoken@gmail.com> | 
					
						
							| 
									
										
										
										
											2021-01-11 19:40:15 +01:00
										 |  |  | " Last Change: 2021 Jan 02 | 
					
						
							| 
									
										
										
										
											2012-10-21 03:02:54 +02:00
										 |  |  | "     Comment: Thanks to EPI-USE Labs for all your assistance. :) | 
					
						
							| 
									
										
										
										
											2004-09-02 19:12:26 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-18 21:41:50 +01:00
										 |  |  | " Quit when a syntax file was already loaded | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | if exists("b:current_syntax") | 
					
						
							| 
									
										
										
										
											2004-09-02 19:12:26 +00:00
										 |  |  |   finish | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Always ignore case | 
					
						
							|  |  |  | syn case ignore | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 21:28:22 +01:00
										 |  |  | " Symbol Operators (space delimited) | 
					
						
							| 
									
										
										
										
											2012-10-21 03:02:54 +02:00
										 |  |  | syn match   abapSymbolOperator  "\W+\W" | 
					
						
							|  |  |  | syn match   abapSymbolOperator  "\W-\W" | 
					
						
							|  |  |  | syn match   abapSymbolOperator  "\W/\W" | 
					
						
							|  |  |  | syn match   abapSymbolOperator  "\W%\W" | 
					
						
							|  |  |  | syn match   abapSymbolOperator  "\W=\W" | 
					
						
							|  |  |  | syn match   abapSymbolOperator  "\W<\W" | 
					
						
							|  |  |  | syn match   abapSymbolOperator  "\W>\W" | 
					
						
							|  |  |  | syn match   abapSymbolOperator  "\W\*\W" | 
					
						
							|  |  |  | syn match   abapSymbolOperator  "\W[<>]=\W" | 
					
						
							|  |  |  | syn match   abapSymbolOperator  "\W<>\W" | 
					
						
							|  |  |  | syn match   abapSymbolOperator  "\W\*\*\W" | 
					
						
							|  |  |  | syn match   abapSymbolOperator  "\[\]" | 
					
						
							|  |  |  | syn match   abapSymbolOperator  "->\*\?" | 
					
						
							|  |  |  | syn match   abapSymbolOperator  "=>" | 
					
						
							|  |  |  | syn match   abapSymbolOperator  "[()~:,\.&$]" | 
					
						
							| 
									
										
										
										
											2004-09-02 19:12:26 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " Literals | 
					
						
							| 
									
										
										
										
											2012-10-21 03:02:54 +02:00
										 |  |  | syn region  abapCharString matchgroup=abapCharString start="'" end="'" contains=abapCharStringEscape | 
					
						
							|  |  |  | syn match   abapCharStringEscape contained "''" | 
					
						
							| 
									
										
										
										
											2004-09-02 19:12:26 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-21 03:02:54 +02:00
										 |  |  | syn region  abapString matchgroup=abapString start="`" end="`" contains=abapStringEscape | 
					
						
							|  |  |  | syn match   abapStringEscape contained "``" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match   abapNumber  "\-\=\<\d\+\>" | 
					
						
							| 
									
										
										
										
											2004-09-02 19:12:26 +00:00
										 |  |  | syn region  abapHex     matchgroup=abapHex start="X'" end="'" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | setlocal iskeyword=48-57,_,A-Z,a-z,/ | 
					
						
							| 
									
										
										
										
											2004-09-02 19:12:26 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 21:28:22 +01:00
										 |  |  | syn match   abapNamespace        "\</\w\+/" | 
					
						
							| 
									
										
										
										
											2012-10-21 03:02:54 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | " multi-word statements | 
					
						
							| 
									
										
										
										
											2012-11-15 21:28:22 +01:00
										 |  |  | syn match   abapComplexStatement "\<\(WITH\W\+\(HEADER\W\+LINE\|FRAME\|KEY\)\|WITH\)\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<NO\W\+STANDARD\W\+PAGE\W\+HEADING\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<\(EXIT\W\+FROM\W\+STEP\W\+LOOP\|EXIT\)\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<\(BEGIN\W\+OF\W\+\(BLOCK\|LINE\)\|BEGIN\W\+OF\)\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<\(END\W\+OF\W\+\(BLOCK\|LINE\)\|END\W\+OF\)\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<NO\W\+INTERVALS\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<RESPECTING\W\+BLANKS\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<SEPARATED\W\+BY\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<USING\(\W\+EDIT\W\+MASK\)\?\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<WHERE\(\W\+LINE\)\?\>" | 
					
						
							| 
									
										
										
										
											2018-12-18 21:41:50 +01:00
										 |  |  | syn match   abapComplexStatement "\<GET\W\+\(TIME\(\W\+STAMP\)\?\(\W\+FIELD\)\?\|PF-STATUS\|BADI\|BIT\|CONNECTION\|CURSOR\|REFERENCE\W\+OF\)\>" | 
					
						
							| 
									
										
										
										
											2012-11-15 21:28:22 +01:00
										 |  |  | syn match   abapComplexStatement "\<RADIOBUTTON\W\+GROUP\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<REF\W\+TO\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<\(PUBLIC\|PRIVATE\|PROTECTED\)\(\W\+SECTION\)\?\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<DELETING\W\+\(TRAILING\|LEADING\)\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<\(ALL\W\+OCCURRENCES\)\|\(\(FIRST\|LAST\)\W\+OCCURRENCE\)\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<INHERITING\W\+FROM\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<\(UP\W\+\)\?TO\>" | 
					
						
							| 
									
										
										
										
											2012-10-21 03:02:54 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | " hyphenated-word statements | 
					
						
							| 
									
										
										
										
											2012-11-15 21:28:22 +01:00
										 |  |  | syn match   abapComplexStatement "\<LINE-COUNT\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<ADD-CORRESPONDING\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<AUTHORITY-CHECK\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<BREAK-POINT\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<CLASS-DATA\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<CLASS-METHODS\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<CLASS-METHOD\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<DIVIDE-CORRESPONDING\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<EDITOR-CALL\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<END-OF-DEFINITION\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<END-OF-PAGE\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<END-OF-SELECTION\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<FIELD-GROUPS\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<FIELD-SYMBOLS\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<FUNCTION-POOL\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<IS\W\+\(NOT\W\+\)\?\(ASSIGNED\|BOUND\|INITIAL\|SUPPLIED\)\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<MOVE-CORRESPONDING\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<MULTIPLY-CORRESPONDING\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<NEW-LINE\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<NEW-PAGE\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<NEW-SECTION\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<PRINT-CONTROL\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<RP-PROVIDE-FROM-LAST\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<SELECT-OPTIONS\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<SELECTION-SCREEN\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<START-OF-SELECTION\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<SUBTRACT-CORRESPONDING\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<SYNTAX-CHECK\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<SYNTAX-TRACE\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<TOP-OF-PAGE\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<TYPE-POOL\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<TYPE-POOLS\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<LINE-SIZE\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<LINE-COUNT\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<MESSAGE-ID\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<DISPLAY-MODE\>" | 
					
						
							|  |  |  | syn match   abapComplexStatement "\<READ\(-ONLY\)\?\>" | 
					
						
							| 
									
										
										
										
											2012-10-21 03:02:54 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-09-02 19:12:26 +00:00
										 |  |  | " ABAP statements | 
					
						
							| 
									
										
										
										
											2012-10-21 03:02:54 +02:00
										 |  |  | syn keyword abapStatement ADD ALIAS ALIASES ASSERT ASSIGN ASSIGNING AT | 
					
						
							| 
									
										
										
										
											2012-11-15 21:28:22 +01:00
										 |  |  | syn keyword abapStatement BACK | 
					
						
							| 
									
										
										
										
											2012-10-21 03:02:54 +02:00
										 |  |  | syn keyword abapStatement CALL CASE CATCH CHECK CLASS CLEAR CLOSE CNT COLLECT COMMIT COMMUNICATION COMPUTE CONCATENATE CONDENSE CONSTANTS CONTINUE CONTROLS CONVERT CREATE CURRENCY | 
					
						
							|  |  |  | syn keyword abapStatement DATA DEFINE DEFINITION DEFERRED DELETE DESCRIBE DETAIL DIVIDE DO | 
					
						
							|  |  |  | syn keyword abapStatement ELSE ELSEIF ENDAT ENDCASE ENDCLASS ENDDO ENDEXEC ENDFORM ENDFUNCTION ENDIF ENDIFEND ENDINTERFACE ENDLOOP ENDMETHOD ENDMODULE ENDON ENDPROVIDE ENDSELECT ENDTRY ENDWHILE EVENT EVENTS EXEC EXIT EXPORT EXPORTING EXTRACT | 
					
						
							|  |  |  | syn keyword abapStatement FETCH FIELDS FORM FORMAT FREE FROM FUNCTION | 
					
						
							| 
									
										
										
										
											2018-12-18 21:41:50 +01:00
										 |  |  | syn keyword abapStatement GENERATE | 
					
						
							| 
									
										
										
										
											2004-09-02 19:12:26 +00:00
										 |  |  | syn keyword abapStatement HIDE | 
					
						
							| 
									
										
										
										
											2012-11-15 21:28:22 +01:00
										 |  |  | syn keyword abapStatement IF IMPORT IMPORTING INDEX INFOTYPES INITIALIZATION INTERFACE INTERFACES INPUT INSERT IMPLEMENTATION  | 
					
						
							| 
									
										
										
										
											2012-10-21 03:02:54 +02:00
										 |  |  | syn keyword abapStatement LEAVE LIKE LINE LOAD LOCAL LOOP | 
					
						
							|  |  |  | syn keyword abapStatement MESSAGE METHOD METHODS MODIFY MODULE MOVE MULTIPLY | 
					
						
							|  |  |  | syn keyword abapStatement ON OVERLAY OPTIONAL OTHERS | 
					
						
							|  |  |  | syn keyword abapStatement PACK PARAMETERS PERFORM POSITION PROGRAM PROVIDE PUT | 
					
						
							| 
									
										
										
										
											2012-11-15 21:28:22 +01:00
										 |  |  | syn keyword abapStatement RAISE RANGES RECEIVE RECEIVING REDEFINITION REFERENCE REFRESH REJECT REPLACE REPORT RESERVE RESTORE RETURNING ROLLBACK | 
					
						
							| 
									
										
										
										
											2012-10-21 03:02:54 +02:00
										 |  |  | syn keyword abapStatement SCAN SCROLL SEARCH SELECT SET SHIFT SKIP SORT SORTED SPLIT STANDARD STATICS STEP STOP SUBMIT SUBTRACT SUM SUMMARY SUPPRESS | 
					
						
							|  |  |  | syn keyword abapStatement TABLES TIMES TRANSFER TRANSLATE TRY TYPE TYPES | 
					
						
							|  |  |  | syn keyword abapStatement UNASSIGN ULINE UNPACK UPDATE | 
					
						
							| 
									
										
										
										
											2004-09-02 19:12:26 +00:00
										 |  |  | syn keyword abapStatement WHEN WHILE WINDOW WRITE | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-10-16 09:53:37 +02:00
										 |  |  | " More statements | 
					
						
							| 
									
										
										
										
											2012-11-15 21:28:22 +01:00
										 |  |  | syn keyword abapStatement LINES | 
					
						
							|  |  |  | syn keyword abapStatement INTO GROUP BY HAVING ORDER BY SINGLE | 
					
						
							|  |  |  | syn keyword abapStatement APPENDING CORRESPONDING FIELDS OF TABLE | 
					
						
							|  |  |  | syn keyword abapStatement LEFT RIGHT OUTER INNER JOIN AS CLIENT SPECIFIED BYPASSING BUFFER ROWS CONNECTING | 
					
						
							| 
									
										
										
										
											2004-09-02 19:12:26 +00:00
										 |  |  | syn keyword abapStatement OCCURS STRUCTURE OBJECT PROPERTY | 
					
						
							|  |  |  | syn keyword abapStatement CASTING APPEND RAISING VALUE COLOR | 
					
						
							| 
									
										
										
										
											2012-10-21 03:02:54 +02:00
										 |  |  | syn keyword abapStatement CHANGING EXCEPTION EXCEPTIONS DEFAULT CHECKBOX COMMENT | 
					
						
							|  |  |  | syn keyword abapStatement ID NUMBER FOR TITLE OUTPUT | 
					
						
							| 
									
										
										
										
											2004-09-02 19:12:26 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " Special ABAP specific tables: | 
					
						
							| 
									
										
										
										
											2013-06-15 21:39:51 +02:00
										 |  |  | syn match   abapSpecialTables "\<\(sy\|\(hrp\|p\|pa\)\d\d\d\d\|t\d\d\d.\|innnn\)-"me=e-1 contained | 
					
						
							| 
									
										
										
										
											2012-11-15 21:28:22 +01:00
										 |  |  | syn match   abapStructure     "\<\w\+-[^\>]"me=e-2 contains=abapSpecialTables,abapStatement,abapComplexStatement | 
					
						
							|  |  |  | syn match   abapField         "-\w\+"ms=s+1 | 
					
						
							| 
									
										
										
										
											2004-09-02 19:12:26 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " Pointer | 
					
						
							|  |  |  | syn match   abapSpecial  "<\w\+>" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 21:28:22 +01:00
										 |  |  | " Abap common constants: | 
					
						
							| 
									
										
										
										
											2004-09-02 19:12:26 +00:00
										 |  |  | syn keyword abapSpecial  TRUE FALSE NULL SPACE | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Includes | 
					
						
							|  |  |  | syn region abapInclude   start="include" end="." contains=abapComment | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Types | 
					
						
							| 
									
										
										
										
											2018-12-18 21:41:50 +01:00
										 |  |  | syn keyword abapTypes    c n i int8 p f d t x string xstring decfloat16 decfloat34 | 
					
						
							| 
									
										
										
										
											2004-09-02 19:12:26 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " Atritmitic operators | 
					
						
							|  |  |  | syn keyword abapOperator abs sign ceil floor trunc frac acos asin atan cos sin tan | 
					
						
							|  |  |  | syn keyword abapOperator cosh sinh tanh exp log log10 sqrt | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " String operators | 
					
						
							| 
									
										
										
										
											2012-11-15 21:28:22 +01:00
										 |  |  | syn keyword abapStatement strlen xstrlen charlen numofchar dbmaxlen | 
					
						
							| 
									
										
										
										
											2004-09-02 19:12:26 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | syn keyword abapOperator EQ NE LT LE GT GE NOT AND OR XOR IN LIKE BETWEEN | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " An error? Not strictly... but cannot think of reason this is intended. | 
					
						
							|  |  |  | syn match   abapError    "\.\." | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Comments | 
					
						
							|  |  |  | syn region  abapComment  start="^\*" end="$" contains=abapTodo | 
					
						
							|  |  |  | syn match   abapComment  "\".*" contains=abapTodo | 
					
						
							| 
									
										
										
										
											2006-04-13 20:37:35 +00:00
										 |  |  | syn keyword abapTodo     contained TODO NOTE | 
					
						
							| 
									
										
										
										
											2012-10-21 03:02:54 +02:00
										 |  |  | syn match   abapTodo     "\#EC\W\+\w\+" | 
					
						
							| 
									
										
										
										
											2004-09-02 19:12:26 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " Define the default highlighting. | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | " Only when an item doesn't have highlighting yet | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | hi def link abapError          Error | 
					
						
							|  |  |  | hi def link abapComment        Comment | 
					
						
							|  |  |  | hi def link abapInclude        Include | 
					
						
							|  |  |  | hi def link abapStatement      Statement | 
					
						
							|  |  |  | hi def link abapComplexStatement      Statement | 
					
						
							|  |  |  | hi def link abapSpecial        Special | 
					
						
							|  |  |  | hi def link abapNamespace      Special | 
					
						
							|  |  |  | hi def link abapSpecialTables  Special | 
					
						
							|  |  |  | hi def link abapSymbolOperator abapOperator | 
					
						
							|  |  |  | hi def link abapOperator       Operator | 
					
						
							|  |  |  | hi def link abapCharString     String | 
					
						
							|  |  |  | hi def link abapString         String | 
					
						
							|  |  |  | hi def link abapFloat          Float | 
					
						
							|  |  |  | hi def link abapTypes          Type | 
					
						
							|  |  |  | hi def link abapSymbol         Structure | 
					
						
							|  |  |  | hi def link abapStructure      Structure | 
					
						
							|  |  |  | hi def link abapField          Variable | 
					
						
							|  |  |  | hi def link abapNumber         Number | 
					
						
							|  |  |  | hi def link abapHex            Number | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-09-02 19:12:26 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | let b:current_syntax = "abap" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-11 19:40:15 +01:00
										 |  |  | " vim: ts=8 sw=2 |