home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / unix / vim-6.2.tar.bz2 / vim-6.2.tar / vim62 / runtime / syntax / natural.vim < prev    next >
Encoding:
Text File  |  2002-03-22  |  6.8 KB  |  206 lines

  1. " Vim syntax file
  2. "
  3. " Language:        NATURAL
  4. " Version:        2.0.26.17
  5. " Maintainer:    Marko Leipert <vim@mleipert.de>
  6. " Last Changed:    2002-02-28 09:50:36
  7. " Support:        http://www.winconsole.de/vim/syntax.html
  8.  
  9. " For version 5.x: Clear all syntax items
  10. " For version 6.x: Quit when this syntax file was already loaded
  11. if v:version < 600
  12.     syntax clear
  13.     set iskeyword+=-,*,#,+,_,/
  14. elseif exists("b:current_syntax")
  15.     finish
  16. else
  17.     setlocal iskeyword+=-,*,#,+,_,/
  18. endif
  19.  
  20. " NATURAL is case insensitive
  21. syntax case ignore
  22.  
  23. " preprocessor
  24. syn keyword naturalInclude        include nextgroup=naturalObjName skipwhite
  25.  
  26. " define data
  27. syn keyword naturalKeyword        define data end-define
  28. syn keyword naturalKeyword        independent global parameter local redefine view
  29. syn keyword naturalKeyword        const[ant] init initial
  30.  
  31. " loops
  32. syn keyword naturalLoop            read end-read end-work find end-find histogram end-histogram
  33. syn keyword naturalLoop            end-all sort end-sort sorted descending ascending
  34. syn keyword naturalRepeat        repeat end-repeat while until for step end-for
  35. syn keyword naturalKeyword        in file with field starting from ending at thru by isn where
  36. syn keyword naturalError        on error end-error
  37. syn keyword naturalKeyword        accept reject end-enddata number unique retain as release
  38. syn keyword naturalKeyword        start end-start break end-break physical page top sequence
  39. syn keyword naturalKeyword        end-toppage end-endpage end-endfile before processing
  40. syn keyword naturalKeyword        end-before
  41.  
  42. " conditionals
  43. syn keyword naturalConditional    if then else end-if end-norec
  44. syn keyword naturalConditional    decide end-decide value when condition none any
  45.  
  46. " assignment / calculation
  47. syn keyword naturalKeyword        reset assign move left right justified compress to into edited
  48. syn keyword naturalKeyword        add subtract multiply divide compute name
  49. syn keyword naturalKeyword        all giving remainder rounded leaving space
  50. syn keyword naturalKeyword        examine full replace giving separate delimiter modified
  51. syn keyword naturalKeyword        suspend identical suppress
  52.  
  53. " program flow
  54. syn keyword naturalFlow            callnat fetch return enter escape bottom top stack formatted
  55. syn keyword naturalFlow            command call
  56. syn keyword naturalflow            end-subroutine routine
  57.  
  58. " file operations
  59. syn keyword naturalKeyword        update store get delete end transaction work once close
  60.  
  61. " other keywords
  62. syn keyword naturalKeyword        first every of no record[s] found ignore immediate
  63. syn keyword naturalKeyword        set settime key control stop terminate
  64.  
  65. " in-/output
  66. syn keyword naturalKeyword        write display input reinput notitle nohdr map newpage mark
  67. syn keyword naturalKeyword        alarm text help eject index
  68. syn keyword naturalKeyword        format printer skip lines
  69.  
  70. " functions
  71. syn keyword naturalKeyword        abs atn cos exp frac int log sgn sin sqrt tan val old
  72.  
  73. " report mode keywords
  74. syn keyword naturalRMKeyword    same loop obtain indexed do doend
  75.  
  76. " Subroutine name
  77. syn keyword    naturalFlow            perform subroutine nextgroup=naturalFunction skipwhite
  78. syn match    naturalFunction        "\<[a-z][-_a-z0-9]*\>"
  79.  
  80. syn keyword    naturalFlow            using nextgroup=naturalKeyword,naturalObjName skipwhite
  81. syn match    naturalObjName        "\<[a-z][-_a-z0-9]\{,7}\>"
  82.  
  83. " Labels
  84. syn match    naturalLabel        "\<[+#a-z][-_#a-z0-9]*\."
  85. syn match    naturalRef            "\<[+#a-z][-_#a-z0-9]*\>\.\<[+#a-z][*]\=[-_#a-z0-9]*\>"
  86.  
  87. " System variables
  88. syn match    naturalSysVar        "\<\*[a-z][-a-z0-9]*\>"
  89.  
  90. "integer number, or floating point number without a dot.
  91. syn match    naturalNumber        "\<-\=\d\+\>"
  92. "floating point number, with dot
  93. syn match    naturalNumber        "\<-\=\d\+\.\d\+\>"
  94. "floating point number, starting with a dot
  95. syn match    naturalNumber        "\.\d\+"
  96.  
  97. " Formats in write statement
  98. syn match    naturalFormat        "\<\d\+[TX]\>"
  99.  
  100. " String and Character contstants
  101. syn match    naturalString        "H'\x\+'"
  102. syn region  naturalString        start=+"+ end=+"+
  103. syn region    naturalString        start=+'+ end=+'+
  104.  
  105. " Type definition
  106. syn match    naturalAttribute    "\<[-a-z][a-z]=[-a-z0-9_\.,]\+\>"
  107. syn match    naturalType            contained "\<[ABINP]\d\+\(,\d\+\)\=\>"
  108. syn match    naturalType            contained "\<[CL]\>"
  109.  
  110. " "TODO" / other comments
  111. syn keyword naturalTodo            contained todo test
  112. syn match    naturalCommentMark    contained "[a-z][^ \t/:|]*\(\s[^ \t/:'"|]\+\)*:\s"he=e-1
  113.  
  114. " comments
  115. syn region    naturalComment        start="/\*" end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark
  116. syn region    naturalComment        start="^\*[\ \*]" end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark
  117. syn region    naturalComment        start="^\d\{4} \*[\ \*]"lc=5 end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark
  118. syn match    naturalComment        "^*$"
  119. syn match    naturalComment        "^\d\{4} \*$"lc=5
  120. " /* is legal syntax in parentheses e.g. "#ident(label./*)"
  121. syn region    naturalPComment        contained start="/\*\s*[^),]"  end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark
  122.  
  123. " operators
  124. syn keyword    naturalOperator        and or not eq ne gt lt ge le mask scan
  125.  
  126. " constants
  127. syn keyword naturalBoolean        true false
  128.  
  129. syn match    naturalLineNo        "^\d\{4}"
  130.  
  131. " identifiers
  132. syn match    naturalIdent        "\<[+#a-z][-_#a-z0-9]*\>[^\.']"me=e-1
  133. syn match    naturalIdent        "\<[+#a-z][-_#a-z0-9]*$"
  134. syn match    naturalLegalIdent    "[+#a-z][-_#a-z0-9]*/[-_#a-z0-9]*"
  135.  
  136. " parentheses
  137. syn region  naturalPar            matchgroup=naturalParGui start="(" end=")" contains=naturalLabel,naturalRef,naturalOperator,@naturalConstant,naturalType,naturalSysVar,naturalPar,naturalLineNo,naturalPComment
  138. syn match    naturalLineRef        "(\d\{4})"
  139.  
  140. " build syntax groups
  141. syntax cluster naturalConstant    contains=naturalString,naturalNumber,naturalAttribute,naturalBoolean
  142.  
  143. " folding
  144. if v:version >= 600
  145.     set foldignore=*
  146. endif
  147.  
  148.  
  149. if v:version >= 508 || !exists("did_natural_syntax_inits")
  150.     if v:version < 508
  151.         let did_natural_syntax_inits = 1
  152.         command -nargs=+ HiLink hi link <args>
  153.     else
  154.         command -nargs=+ HiLink hi def link <args>
  155.     endif
  156.     " The default methods for highlighting.  Can be overridden later
  157.  
  158.     " Constants
  159.     HiLink naturalFormat        Constant
  160.     HiLink naturalAttribute        Constant
  161.     HiLink naturalNumber        Number
  162.     HiLink naturalString        String
  163.     HiLink naturalBoolean        Boolean
  164.  
  165.     " All kinds of keywords
  166.     HiLink naturalConditional    Conditional
  167.     HiLink naturalRepeat        Repeat
  168.     HiLink naturalLoop            Repeat
  169.     HiLink naturalFlow            Keyword
  170.     HiLink naturalError            Keyword
  171.     HiLink naturalKeyword        Keyword
  172.     HiLink naturalOperator        Operator
  173.     HiLink naturalParGui        Operator
  174.  
  175.     " Labels
  176.     HiLink naturalLabel            Label
  177.     HiLink naturalRefLabel        Label
  178.  
  179.     " Comments
  180.     HiLink naturalPComment        Comment
  181.     HiLink naturalComment        Comment
  182.     HiLink naturalTodo            Todo
  183.     HiLink naturalCommentMark    PreProc
  184.  
  185.     HiLink naturalInclude        Include
  186.     HiLink naturalSysVar        Identifier
  187.     HiLink naturalLineNo        LineNr
  188.     HiLink naturalLineRef        Error
  189.     HiLink naturalSpecial        Special
  190.     HiLink naturalComKey        Todo
  191.  
  192.     " illegal things
  193.     HiLink naturalRMKeyword        Error
  194.     HiLink naturalLegalIdent    Error
  195.  
  196.     HiLink naturalType            Type
  197.     HiLink naturalFunction        Function
  198.     HiLink naturalObjName        Function
  199.  
  200.     delcommand HiLink
  201. endif
  202.  
  203. let b:current_syntax = "natural"
  204.  
  205. " vim:set ts=4 sw=4 noet ft=vim list:
  206.