annotate runtime/syntax/chill.vim @ 0:76efa0be13f1

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