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 / runtime / dos / syntax / chill.vim < prev    next >
Encoding:
Text File  |  2010-08-15  |  8.3 KB  |  192 lines

  1. " Vim syntax file
  2. " Language:    CHILL
  3. " Maintainer:    YoungSang Yoon <image@lgic.co.kr>
  4. " Last change:    2004 Jan 21
  5. "
  6.  
  7. " first created by image@lgic.co.kr & modified by paris@lgic.co.kr
  8.  
  9. " CHILL (CCITT High Level Programming Language) is used for
  10. " developing software of ATM switch at LGIC (LG Information
  11. " & Communications LTd.)
  12.  
  13.  
  14. " For version 5.x: Clear all syntax items
  15. " For version 6.x: Quit when a syntax file was already loaded
  16. if version < 600
  17.   syntax clear
  18. elseif exists("b:current_syntax")
  19.   finish
  20. endif
  21.  
  22. " A bunch of useful CHILL keywords
  23. syn keyword    chillStatement    goto GOTO return RETURN returns RETURNS
  24. syn keyword    chillLabel        CASE case ESAC esac
  25. syn keyword    chillConditional    if IF else ELSE elsif ELSIF switch SWITCH THEN then FI fi
  26. syn keyword    chillLogical    NOT not
  27. syn keyword    chillRepeat    while WHILE for FOR do DO od OD TO to
  28. syn keyword    chillProcess    START start STACKSIZE stacksize PRIORITY priority THIS this STOP stop
  29. syn keyword    chillBlock        PROC proc PROCESS process
  30. syn keyword    chillSignal    RECEIVE receive SEND send NONPERSISTENT nonpersistent PERSISTENT peristent SET set EVER ever
  31.  
  32. syn keyword    chillTodo        contained TODO FIXME XXX
  33.  
  34. " String and Character constants
  35. " Highlight special characters (those which have a backslash) differently
  36. syn match    chillSpecial    contained "\\x\x\+\|\\\o\{1,3\}\|\\.\|\\$"
  37. syn region    chillString    start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=chillSpecial
  38. syn match    chillCharacter    "'[^\\]'"
  39. syn match    chillSpecialCharacter "'\\.'"
  40. syn match    chillSpecialCharacter "'\\\o\{1,3\}'"
  41.  
  42. "when wanted, highlight trailing white space
  43. if exists("chill_space_errors")
  44.   syn match    chillSpaceError    "\s*$"
  45.   syn match    chillSpaceError    " \+\t"me=e-1
  46. endif
  47.  
  48. "catch errors caused by wrong parenthesis
  49. syn cluster    chillParenGroup    contains=chillParenError,chillIncluded,chillSpecial,chillTodo,chillUserCont,chillUserLabel,chillBitField
  50. syn region    chillParen        transparent start='(' end=')' contains=ALLBUT,@chillParenGroup
  51. syn match    chillParenError    ")"
  52. syn match    chillInParen    contained "[{}]"
  53.  
  54. "integer number, or floating point number without a dot and with "f".
  55. syn case ignore
  56. syn match    chillNumber        "\<\d\+\(u\=l\=\|lu\|f\)\>"
  57. "floating point number, with dot, optional exponent
  58. syn match    chillFloat        "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
  59. "floating point number, starting with a dot, optional exponent
  60. syn match    chillFloat        "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
  61. "floating point number, without dot, with exponent
  62. syn match    chillFloat        "\<\d\+e[-+]\=\d\+[fl]\=\>"
  63. "hex number
  64. syn match    chillNumber        "\<0x\x\+\(u\=l\=\|lu\)\>"
  65. "syn match chillIdentifier    "\<[a-z_][a-z0-9_]*\>"
  66. syn case match
  67. " flag an octal number with wrong digits
  68. syn match    chillOctalError    "\<0\o*[89]"
  69.  
  70. if exists("chill_comment_strings")
  71.   " A comment can contain chillString, chillCharacter and chillNumber.
  72.   " But a "*/" inside a chillString in a chillComment DOES end the comment!  So we
  73.   " need to use a special type of chillString: chillCommentString, which also ends on
  74.   " "*/", and sees a "*" at the start of the line as comment again.
  75.   " Unfortunately this doesn't very well work for // type of comments :-(
  76.   syntax match    chillCommentSkip    contained "^\s*\*\($\|\s\+\)"
  77.   syntax region chillCommentString    contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=chillSpecial,chillCommentSkip
  78.   syntax region chillComment2String    contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=chillSpecial
  79.   syntax region chillComment    start="/\*" end="\*/" contains=chillTodo,chillCommentString,chillCharacter,chillNumber,chillFloat,chillSpaceError
  80.   syntax match  chillComment    "//.*" contains=chillTodo,chillComment2String,chillCharacter,chillNumber,chillSpaceError
  81. else
  82.   syn region    chillComment    start="/\*" end="\*/" contains=chillTodo,chillSpaceError
  83.   syn match    chillComment    "//.*" contains=chillTodo,chillSpaceError
  84. endif
  85. syntax match    chillCommentError    "\*/"
  86.  
  87. syn keyword    chillOperator    SIZE size
  88. syn keyword    chillType        dcl DCL int INT char CHAR bool BOOL REF ref LOC loc INSTANCE instance
  89. syn keyword    chillStructure    struct STRUCT enum ENUM newmode NEWMODE synmode SYNMODE
  90. "syn keyword    chillStorageClass
  91. syn keyword    chillBlock        PROC proc END end
  92. syn keyword    chillScope        GRANT grant SEIZE seize
  93. syn keyword    chillEDML        select SELECT delete DELETE update UPDATE in IN seq SEQ WHERE where INSERT insert include INCLUDE exclude EXCLUDE
  94. syn keyword    chillBoolConst    true TRUE false FALSE
  95.  
  96. syn region    chillPreCondit    start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=chillComment,chillString,chillCharacter,chillNumber,chillCommentError,chillSpaceError
  97. syn region    chillIncluded    contained start=+"+ skip=+\\\\\|\\"+ end=+"+
  98. syn match    chillIncluded    contained "<[^>]*>"
  99. syn match    chillInclude    "^\s*#\s*include\>\s*["<]" contains=chillIncluded
  100. "syn match chillLineSkip    "\\$"
  101. syn cluster    chillPreProcGroup    contains=chillPreCondit,chillIncluded,chillInclude,chillDefine,chillInParen,chillUserLabel
  102. syn region    chillDefine        start="^\s*#\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,@chillPreProcGroup
  103. syn region    chillPreProc    start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,@chillPreProcGroup
  104.  
  105. " Highlight User Labels
  106. syn cluster    chillMultiGroup    contains=chillIncluded,chillSpecial,chillTodo,chillUserCont,chillUserLabel,chillBitField
  107. syn region    chillMulti        transparent start='?' end=':' contains=ALLBUT,@chillMultiGroup
  108. " Avoid matching foo::bar() in C++ by requiring that the next char is not ':'
  109. syn match    chillUserCont    "^\s*\I\i*\s*:$" contains=chillUserLabel
  110. syn match    chillUserCont    ";\s*\I\i*\s*:$" contains=chillUserLabel
  111. syn match    chillUserCont    "^\s*\I\i*\s*:[^:]"me=e-1 contains=chillUserLabel
  112. syn match    chillUserCont    ";\s*\I\i*\s*:[^:]"me=e-1 contains=chillUserLabel
  113.  
  114. syn match    chillUserLabel    "\I\i*" contained
  115.  
  116. " Avoid recognizing most bitfields as labels
  117. syn match    chillBitField    "^\s*\I\i*\s*:\s*[1-9]"me=e-1
  118. syn match    chillBitField    ";\s*\I\i*\s*:\s*[1-9]"me=e-1
  119.  
  120. syn match    chillBracket    contained "[<>]"
  121. if !exists("chill_minlines")
  122.   let chill_minlines = 15
  123. endif
  124. exec "syn sync ccomment chillComment minlines=" . chill_minlines
  125.  
  126. " Define the default highlighting.
  127. " For version 5.7 and earlier: only when not done already
  128. " For version 5.8 and later: only when an item doesn't have highlighting yet
  129. if version >= 508 || !exists("did_ch_syntax_inits")
  130.   if version < 508
  131.     let did_ch_syntax_inits = 1
  132.     command -nargs=+ HiLink hi link <args>
  133.   else
  134.     command -nargs=+ HiLink hi def link <args>
  135.   endif
  136.  
  137.   HiLink chillLabel    Label
  138.   HiLink chillUserLabel    Label
  139.   HiLink chillConditional    Conditional
  140.   " hi chillConditional    term=bold ctermfg=red guifg=red gui=bold
  141.  
  142.   HiLink chillRepeat    Repeat
  143.   HiLink chillProcess    Repeat
  144.   HiLink chillSignal    Repeat
  145.   HiLink chillCharacter    Character
  146.   HiLink chillSpecialCharacter chillSpecial
  147.   HiLink chillNumber    Number
  148.   HiLink chillFloat    Float
  149.   HiLink chillOctalError    chillError
  150.   HiLink chillParenError    chillError
  151.   HiLink chillInParen    chillError
  152.   HiLink chillCommentError    chillError
  153.   HiLink chillSpaceError    chillError
  154.   HiLink chillOperator    Operator
  155.   HiLink chillStructure    Structure
  156.   HiLink chillBlock    Operator
  157.   HiLink chillScope    Operator
  158.   "hi chillEDML     term=underline ctermfg=DarkRed guifg=Red
  159.   HiLink chillEDML    PreProc
  160.   "hi chillBoolConst    term=bold ctermfg=brown guifg=brown
  161.   HiLink chillBoolConst    Constant
  162.   "hi chillLogical    term=bold ctermfg=brown guifg=brown
  163.   HiLink chillLogical    Constant
  164.   HiLink chillStorageClass    StorageClass
  165.   HiLink chillInclude    Include
  166.   HiLink chillPreProc    PreProc
  167.   HiLink chillDefine    Macro
  168.   HiLink chillIncluded    chillString
  169.   HiLink chillError    Error
  170.   HiLink chillStatement    Statement
  171.   HiLink chillPreCondit    PreCondit
  172.   HiLink chillType    Type
  173.   HiLink chillCommentError    chillError
  174.   HiLink chillCommentString chillString
  175.   HiLink chillComment2String chillString
  176.   HiLink chillCommentSkip    chillComment
  177.   HiLink chillString    String
  178.   HiLink chillComment    Comment
  179.   " hi chillComment    term=None ctermfg=lightblue guifg=lightblue
  180.   HiLink chillSpecial    SpecialChar
  181.   HiLink chillTodo    Todo
  182.   HiLink chillBlock    Statement
  183.   "HiLink chillIdentifier    Identifier
  184.   HiLink chillBracket    Delimiter
  185.  
  186.   delcommand HiLink
  187. endif
  188.  
  189. let b:current_syntax = "chill"
  190.  
  191. " vim: ts=8
  192.