summaryrefslogtreecommitdiffstats
path: root/runtime/syntax/abap.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2012-11-15 21:28:22 +0100
committerBram Moolenaar <Bram@vim.org>2012-11-15 21:28:22 +0100
commit97d62497f51902f404c7dcc72683411df911593e (patch)
tree24e9e549d9786c5549edcb17f98b7f81d9bfd40a /runtime/syntax/abap.vim
parent41b884b27387cd4c0ba1d039ea3bb2b7beac21c2 (diff)
Updated runtime files.
Diffstat (limited to 'runtime/syntax/abap.vim')
-rw-r--r--runtime/syntax/abap.vim145
1 files changed, 73 insertions, 72 deletions
diff --git a/runtime/syntax/abap.vim b/runtime/syntax/abap.vim
index 8f7306d9dd..fd4b480034 100644
--- a/runtime/syntax/abap.vim
+++ b/runtime/syntax/abap.vim
@@ -1,8 +1,8 @@
" Vim ABAP syntax file
" Language: SAP - ABAP/R4
-" Revision: 2.0
+" Revision: 2.1
" Maintainer: Marius Piedallu van Wyk <lailoken@gmail.com>
-" Last Change: 2012 Oct 12
+" Last Change: 2012 Oct 23
" Comment: Thanks to EPI-USE Labs for all your assistance. :)
" For version < 6.0: Clear all syntax items
@@ -16,7 +16,7 @@ endif
" Always ignore case
syn case ignore
-" Symbol Operators
+" Symbol Operators (space delimited)
syn match abapSymbolOperator "\W+\W"
syn match abapSymbolOperator "\W-\W"
syn match abapSymbolOperator "\W/\W"
@@ -49,99 +49,105 @@ else
set iskeyword=48-57,_,A-Z,a-z,/
endif
-syn match abapNamespace "/\w\+/"
+syn match abapNamespace "\</\w\+/"
" multi-word statements
-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\)\|USING\)"
-syn match abapComplexStatement "\(WHERE\W\+\(LINE\)\)"
-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 "\<\(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\)\?\>"
+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\>"
" hyphenated-word statements
-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 "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\)\?"
+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\)\?\>"
" ABAP statements
syn keyword abapStatement ADD ALIAS ALIASES ASSERT ASSIGN ASSIGNING AT
-syn keyword abapStatement BACK BOUND
+syn keyword abapStatement BACK
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
syn keyword abapStatement GENERATE GET
syn keyword abapStatement HIDE
-syn keyword abapStatement IF IMPORT IMPORTING INDEX INFOTYPES INITIAL INITIALIZATION INTERFACE INTERFACES INPUT INSERT IMPLEMENTATION IS
+syn keyword abapStatement IF IMPORT IMPORTING INDEX INFOTYPES INITIALIZATION INTERFACE INTERFACES INPUT INSERT IMPLEMENTATION
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
-syn keyword abapStatement RAISE RANGES RECEIVE REDEFINITION REFERENCE REFRESH REJECT REPLACE REPORT RESERVE RESTORE RETURNING ROLLBACK
+syn keyword abapStatement RAISE RANGES RECEIVE RECEIVING REDEFINITION REFERENCE REFRESH REJECT REPLACE REPORT RESERVE RESTORE RETURNING ROLLBACK
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
syn keyword abapStatement WHEN WHILE WINDOW WRITE
" More statemets
+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
syn keyword abapStatement OCCURS STRUCTURE OBJECT PROPERTY
syn keyword abapStatement CASTING APPEND RAISING VALUE COLOR
syn keyword abapStatement CHANGING EXCEPTION EXCEPTIONS DEFAULT CHECKBOX COMMENT
syn keyword abapStatement ID NUMBER FOR TITLE OUTPUT
" Special ABAP specific tables:
-syn match abapSpecial "\(\W\|^\)\(sy\|\(p\|pa\)\d\d\d\d\|t\d\d\d.\|innnn\)\(\W\|$\)"ms=s+1,me=e-1
-syn match abapSpecialTables "\(sy\|\(p\|pa\)\d\d\d\d\|t\d\d\d.\|innnn\)-"me=e-1 contained
-syn match abapSpecial "\(\W\|^\)\w\+-\(\w\+-\w\+\|\w\+\)"ms=s+1 contains=abapSpecialTables,abapStatement,abapComplexStatement
+syn match abapSpecialTables "\<\(sy\|\(p\|pa\)\d\d\d\d\|t\d\d\d.\|innnn\)-"me=e-1 contained
+syn match abapStructure "\<\w\+-[^\>]"me=e-2 contains=abapSpecialTables,abapStatement,abapComplexStatement
+syn match abapField "-\w\+"ms=s+1
" Pointer
syn match abapSpecial "<\w\+>"
-" Abap constants:
+" Abap common constants:
syn keyword abapSpecial TRUE FALSE NULL SPACE
" Includes
@@ -155,15 +161,8 @@ syn keyword abapOperator abs sign ceil floor trunc frac acos asin atan cos sin t
syn keyword abapOperator cosh sinh tanh exp log log10 sqrt
" String operators
-syn keyword abapOperator strlen xstrlen charlen numofchar dbmaxlen
+syn keyword abapStatement strlen xstrlen charlen numofchar dbmaxlen
-" Table operators
-syn keyword abapOperator lines
-
-" Table operators (SELECT operators)
-syn keyword abapOperator INTO WHERE GROUP BY HAVING ORDER BY SINGLE
-syn keyword abapOperator APPENDING CORRESPONDING FIELDS OF TABLE
-syn keyword abapOperator LEFT RIGHT OUTER INNER JOIN AS CLIENT SPECIFIED BYPASSING BUFFER UP TO ROWS CONNECTING
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.
@@ -193,7 +192,7 @@ if version >= 508 || !exists("did_abap_syntax_inits")
HiLink abapComplexStatement Statement
HiLink abapSpecial Special
HiLink abapNamespace Special
- HiLink abapSpecialTables PreProc
+ HiLink abapSpecialTables Special
HiLink abapSymbolOperator abapOperator
HiLink abapOperator Operator
HiLink abapCharString String
@@ -201,6 +200,8 @@ if version >= 508 || !exists("did_abap_syntax_inits")
HiLink abapFloat Float
HiLink abapTypes Type
HiLink abapSymbol Structure
+ HiLink abapStructure Structure
+ HiLink abapField Variable
HiLink abapNumber Number
HiLink abapHex Number