home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 February / OpenLinux 2.3 CD.iso / live / usr / share / vim / syntax / cobol.vim < prev    next >
Encoding:
Text File  |  1999-08-10  |  7.0 KB  |  143 lines

  1. " Vim syntax file
  2. " Language: COBOL
  3. " Maintainers:  Sitaram Chamarty <sitaram@diac.com> and
  4. "               James Mitchell <james_mitchell@acm.org>
  5.  
  6. " Last change:  1998 March 29
  7.  
  8. " MOST important - else most of the keywords wont work!
  9. set isk=@,48-57,-
  10. " set up other basic parameters
  11. syn clear
  12. syn case ignore
  13.  
  14. syn keyword cobolReserved contained ACCEPT ACCESS ADD ADDRESS ADVANCING AFTER ALPHABET ALPHABETIC
  15. syn keyword cobolReserved ALPHABETIC-LOWER ALPHABETIC-UPPER ALPHANUMERIC ALPHANUMERIC-EDITED ALS
  16. syn keyword cobolReserved ALTERNATE AND ANY ARE AREA AREAS ASCENDING ASSIGN AT AUTHOR BEFORE BINARY
  17. syn keyword cobolReserved BLANK BLOCK BOTTOM BY CANCEL CBLL CD CF CH CHARACTER CHARACTERS CLASS
  18. syn keyword cobolReserved CLOCK-UNITS CLOSE COBOL CODE CODE-SET COLLATING COLUMN COMMA COMMON
  19. syn keyword cobolReserved COMMUNICATIONS COMPUTATIONAL COMPUTE CONFIGURATION CONTENT CONTINUE
  20. syn keyword cobolReserved CONTROL CONVERTING CORR CORRESPONDING COUNT CURRENCY DATA DATE DATE-COMPILED
  21. syn keyword cobolReserved DATE-WRITTEN DAY DAY-OF-WEEK DE DEBUG-CONTENTS DEBUG-ITEM DEBUG-LINE
  22. syn keyword cobolReserved DEBUG-NAME DEBUG-SUB-1 DEBUG-SUB-2 DEBUG-SUB-3 DEBUGGING DECIMAL-POINT
  23. syn keyword cobolReserved DELARATIVES DELETE DELIMITED DELIMITEER DEPENDING DESCENDING DESTINATION
  24. syn keyword cobolReserved DETAIL DISABLE DISPLAY DIVIDE DIVISION DOWN DUPLICATES DYNAMIC EGI ELSE EMI
  25. syn keyword cobolReserved ENABLE END-ADD END-COMPUTE END-DELETE END-DIVIDE END-EVALUATE END-IF
  26. syn keyword cobolReserved END-MULTIPLY END-OF-PAGE END-PERFORM END-READ END-RECEIVE END-RETURN
  27. syn keyword cobolReserved END-REWRITE END-SEARCH END-START END-STRING END-SUBTRACT END-UNSTRING
  28. syn keyword cobolReserved END-WRITE ENVIRONMENT EQUAL ERROR ESI EVALUATE EVERY EXCEPTION EXIT
  29. syn keyword cobolReserved EXTEND EXTERNAL FALSE FD FILE FILE-CONTROL FILLER FINAL FIRST FOOTING FOR FROM
  30. syn keyword cobolReserved GENERATE GIVING GLOBAL GREATER GROUP HEADING HIGH-VALUE HIGH-VALUES I-O
  31. syn keyword cobolReserved I-O-CONTROL IDENTIFICATION IN INDEX INDEXED INDICATE INITIAL INITIALIZE
  32. syn keyword cobolReserved INITIATE INPUT INPUT-OUTPUT INSPECT INSTALLATION INTO IS JUST
  33. syn keyword cobolReserved JUSTIFIED KEY LABEL LAST LEADING LEFT LENGTH LOCK MEMORY
  34. syn keyword cobolReserved MERGE MESSAGE MODE MODULES MOVE MULTIPLE MULTIPLY NATIVE NEGATIVE NEXT NO NOT
  35. syn keyword cobolReserved NUMBER NUMERIC NUMERIC-EDITED OBJECT-COMPUTER OCCURS OF OFF OMITTED ON OPEN
  36. syn keyword cobolReserved OPTIONAL OR ORDER ORGANIZATION OTHER OUTPUT OVERFLOW PACKED-DECIMAL PADDING
  37. syn keyword cobolReserved PAGE PAGE-COUNTER PERFORM PF PH PIC PICTURE PLUS POINTER POSITION POSITIVE
  38. syn keyword cobolReserved PRINTING PROCEDURE PROCEDURES PROCEDD PROGRAM PROGRAM-ID PURGE QUEUE QUOTES
  39. syn keyword cobolReserved RANDOM RD READ RECEIVE RECORD RECORDS REDEFINES REEL REFERENCE REFERENCES
  40. syn keyword cobolReserved RELATIVE RELEASE REMAINDER REMOVAL REPLACE REPLACING REPORT REPORTING
  41. syn keyword cobolReserved REPORTS RERUN RESERVE RESET RETURN RETURNING REVERSED REWIND REWRITE RF RH
  42. syn keyword cobolReserved RIGHT ROUNDED RUN SAME SD SEARCH SECTION SECURITY SEGMENT SEGMENT-LIMITED
  43. syn keyword cobolReserved SELECT SEND SENTENCE SEPARATE SEQUENCE SEQUENTIAL SET SIGN SIZE SORT
  44. syn keyword cobolReserved SORT-MERGE SOURCE SOURCE-COMPUTER SPECIAL-NAMES STANDARD
  45. syn keyword cobolReserved STANDARD-1 STANDARD-2 START STATUS STOP STRING SUB-QUEUE-1 SUB-QUEUE-2
  46. syn keyword cobolReserved SUB-QUEUE-3 SUBTRACT SUM SUPPRESS SYMBOLIC SYNC SYNCHRONIZED TABLE TALLYING
  47. syn keyword cobolReserved TAPE TERMINAL TERMINATE TEST TEXT THAN THEN THROUGH THRU TIME TIMES TO TOP
  48. syn keyword cobolReserved TRAILING TRUE TYPE UNIT UNSTRING UNTIL UP UPON USAGE USE USING VALUE VALUES
  49. syn keyword cobolReserved VARYING WHEN WITH WORDS WORKING-STORAGE WRITE 
  50. syn match   cobolReserved "\<CONTAINS\>"
  51. syn match   cobolReserved "\<\(IF\|INVALID\|END\|EOP\)\>"
  52. syn match   cobolReserved "\<ALL\>"
  53.  
  54. syn keyword cobolConstant SPACE SPACES NULL ZERO ZEROES ZEROS LOW-VALUE LOW-VALUES
  55.  
  56. syn match   cobolTodo         "todo" contained
  57. syn match   cobolComment      "^.\{6}\*.*"hs=s+6 contains=cobolTodo
  58. syn match   cobolComment      "^.\{6}/.*"hs=s+6 contains=cobolTodo
  59. syn region  cobolComment      start="*>" end="$" contains=cobolTodo
  60. syn match   cobolCompiler     "^.\{6}$.*"hs=s+6
  61. syn match   cobolContinue     "^.\{6}-"
  62.  
  63. syn match   cobolBadLine      "^.\{6}[^ D*$/].*"hs=s+6
  64.  
  65. syn keyword cobolGoTo         GO GOTO
  66. syn keyword cobolCopy         COPY
  67. " cobolBAD: things that are BAD NEWS!
  68. syn keyword cobolBAD          ALTER ENTER RENAMES
  69.  
  70. " cobolWatch: things that are important when trying to understand a program
  71. syn keyword cobolWatch        OCCURS DEPENDING VARYING BINARY COMP REDEFINES
  72. syn keyword cobolWatch        REPLACING RUN
  73. syn match   cobolWatch        "COMP-[123456XN]"
  74. syn keyword cobolEXECs        EXEC END-EXEC
  75.  
  76. syn match   cobolParas        "^.\{6} \{1,4}[A-Z0-9][^"]\{-}\."hs=s+7
  77.  
  78. syn match   cobolDecl         "^.\{6} \{1,4}\(0\=1\|77\|78\) "hs=s+7,he=e-1
  79. syn match   cobolDecl         "^.\{6} \+[1-4]\d "hs=s+7,he=e-1
  80. syn match   cobolDecl         "^.\{6} \+0\=[2-9] "hs=s+7,he=e-1
  81. syn match   cobolDecl         "^.\{6} \+66 "hs=s+7,he=e-1
  82.  
  83. syn match   cobolWatch        "^.\{6} \+88 "hs=s+7,he=e-1
  84.  
  85. syn match   cobolBadID        "\k\+-\($\|[^A-Z0-9]\)"
  86. syn match   cobolBadID        "[^A-Z0-9]-\d*[A-Z-]\+"hs=s+1
  87.  
  88. syn keyword cobolCALLs        CALL CANCEL GOBACK PERFORM INVOKE 
  89. syn match   cobolCALLs        "EXIT \+PROGRAM"
  90. syn match   cobolExtras       /\<VALUE \+\d\+\./hs=s+6,he=e-1
  91.  
  92. syn match   cobolNumber       "\<-\=\d*\.\=\d\+\>"
  93.  
  94. syn match   cobolString       /".\{-}"/
  95. syn match   cobolString       /'.\{-}'/
  96.  
  97. syn region  cobolLine       start="^.\{6} " end="$" contains=ALL
  98. if exists("cobol_legacy_code")
  99.     syn region  cobolCondFlow     contains=ALLBUT,cobolLine start="\<\(IF\|INVALID\|END\|EOP\)\>" skip=/"[^"]\+"/ end="\."
  100. endif
  101.  
  102. if ! exists("cobol_legacy_code")
  103.     " catch junk in columns 1-6 for modern code
  104.     syn match cobolBAD      "^ \{0,5\}[^ ].*"
  105. endif
  106.  
  107. " many legacy sources have junk in columns 1-6: must be before others
  108. " Stuff after column 72 is in error - must be after all other "match" entries
  109. if exists("cobol_legacy_code")
  110.     syn match   cobolBadLine      "^.\{6}[^*/].\{66,\}"
  111. else
  112.     syn match   cobolBadLine      "^.\{6}.\{67,\}"
  113. endif
  114.  
  115. if !exists("did_cobol_syntax_inits")
  116.   let did_cobol_syntax_inits = 1
  117. "    hi link cobolJunk     Error
  118.     hi link cobolBAD      Error
  119.     hi link cobolBadID    Error
  120.     hi link cobolBadLine  Error
  121.     hi link cobolCALLs    Function
  122.     hi link cobolComment  Comment
  123.     hi link cobolAreaB              Special
  124.     hi link cobolCompiler PreProc
  125.     hi link cobolCondFlow Special
  126.     hi link cobolCopy     PreProc
  127.     hi link cobolDecl     Type
  128.     hi link cobolEXECs    Special
  129.     hi link cobolExtras   Special
  130.     hi link cobolGoTo     Special
  131.     hi link cobolConstant Constant
  132.     hi link cobolNumber   Constant
  133.     hi link cobolParas    Function
  134.     hi link cobolReserved Statement
  135.     hi link cobolString   Constant
  136.     hi link cobolTodo     Todo
  137.     hi link cobolWatch    Special
  138. endif
  139.  
  140. let b:current_syntax = "cobol"
  141.  
  142. " vim: ts=6 nowrap
  143.