blob: fab3a916ead7aafea00d240d2dfd1483c10a1641 [file] [log] [blame]
Bram Moolenaar42eeac32005-06-29 22:40:58 +00001" Vim syntax file
Bram Moolenaar214641f2017-03-05 17:04:09 +01002" Language: xinetd.conf(5) configuration file
3" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
4" Latest Revision: 2006-04-19
Bram Moolenaar42eeac32005-06-29 22:40:58 +00005
6if exists("b:current_syntax")
7 finish
8endif
9
10let s:cpo_save = &cpo
11set cpo&vim
12
13syn keyword xinetdTodo contained TODO FIXME XXX NOTE
14
15syn region xinetdComment display oneline start='^\s*#' end='$'
16 \ contains=xinetdTodo,@Spell
17
18syn match xinetdService '^\s*service\>'
19 \ nextgroup=xinetdServiceName skipwhite
20
21syn match xinetdServiceName contained '\S\+'
22 \ nextgroup=xinetdServiceGroup skipwhite skipnl
23
24syn match xinetdDefaults '^\s*defaults'
25 \ nextgroup=xinetdServiceGroup skipwhite skipnl
26
27syn region xinetdServiceGroup contained transparent
28 \ matchgroup=xinetdServiceGroupD start='{'
29 \ matchgroup=xinetdServiceGroupD end='}'
30 \ contains=xinetdAttribute,xinetdReqAttribute,
31 \ xinetdDisable
32
33syn keyword xinetdReqAttribute contained user server protocol
34 \ nextgroup=xinetdStringEq skipwhite
35
36syn keyword xinetdAttribute contained id group bind
37 \ interface
38 \ nextgroup=xinetdStringEq skipwhite
39
40syn match xinetdStringEq contained display '='
41 \ nextgroup=xinetdString skipwhite
42
43syn match xinetdString contained display '\S\+'
44
45syn keyword xinetdAttribute contained type nextgroup=xinetdTypeEq skipwhite
46
47syn match xinetdTypeEq contained display '='
48 \ nextgroup=xinetdType skipwhite
49
50syn keyword xinetdType contained RPC INTERNAL TCPMUX TCPMUXPLUS
51 \ UNLISTED
52 \ nextgroup=xinetdType skipwhite
53
54syn keyword xinetdAttribute contained flags
55 \ nextgroup=xinetdFlagsEq skipwhite
56
57syn cluster xinetdFlagsC contains=xinetdFlags,xinetdDeprFlags
58
59syn match xinetdFlagsEq contained display '='
60 \ nextgroup=@xinetdFlagsC skipwhite
61
62syn keyword xinetdFlags contained INTERCEPT NORETRY IDONLY NAMEINARGS
63 \ NODELAY KEEPALIVE NOLIBWRAP SENSOR IPv4 IPv6
64 \ nextgroup=@xinetdFlagsC skipwhite
65
66syn keyword xinetdDeprFlags contained REUSE nextgroup=xinetdFlagsC skipwhite
67
68syn keyword xinetdDisable contained disable
69 \ nextgroup=xinetdBooleanEq skipwhite
70
71syn match xinetdBooleanEq contained display '='
72 \ nextgroup=xinetdBoolean skipwhite
73
74syn keyword xinetdBoolean contained yes no
75
76syn keyword xinetdReqAttribute contained socket_type
77 \ nextgroup=xinetdSocketTypeEq skipwhite
78
79syn match xinetdSocketTypeEq contained display '='
80 \ nextgroup=xinetdSocketType skipwhite
81
82syn keyword xinetdSocketType contained stream dgram raw seqpacket
83
84syn keyword xinetdReqAttribute contained wait
85 \ nextgroup=xinetdBooleanEq skipwhite
86
87syn keyword xinetdAttribute contained groups mdns
88 \ nextgroup=xinetdBooleanEq skipwhite
89
90syn keyword xinetdAttribute contained instances per_source rlimit_cpu
91 \ rlimit_data rlimit_rss rlimit_stack
92 \ nextgroup=xinetdUNumberEq skipwhite
93
94syn match xinetdUNumberEq contained display '='
95 \ nextgroup=xinetdUnlimited,xinetdNumber
96 \ skipwhite
97
98syn keyword xinetdUnlimited contained UNLIMITED
99
100syn match xinetdNumber contained display '\<\d\+\>'
101
102syn keyword xinetdAttribute contained nice
103 \ nextgroup=xinetdSignedNumEq skipwhite
104
105syn match xinetdSignedNumEq contained display '='
106 \ nextgroup=xinetdSignedNumber skipwhite
107
108syn match xinetdSignedNumber contained display '[+-]\=\d\+\>'
109
110syn keyword xinetdAttribute contained server_args
111 \ enabled
112 \ nextgroup=xinetdStringsEq skipwhite
113
114syn match xinetdStringsEq contained display '='
115 \ nextgroup=xinetdStrings skipwhite
116
117syn match xinetdStrings contained display '\S\+'
118 \ nextgroup=xinetdStrings skipwhite
119
120syn keyword xinetdAttribute contained only_from no_access passenv
121 \ nextgroup=xinetdStringsAdvEq skipwhite
122
123syn match xinetdStringsAdvEq contained display '[+-]\=='
124 \ nextgroup=xinetdStrings skipwhite
125
126syn keyword xinetdAttribute contained access_times
127 \ nextgroup=xinetdTimeRangesEq skipwhite
128
129syn match xinetdTimeRangesEq contained display '='
130 \ nextgroup=xinetdTimeRanges skipwhite
131
132syn match xinetdTimeRanges contained display
133 \ '\%(0?\d\|1\d\|2[0-3]\):\%(0?\d\|[1-5]\d\)-\%(0?\d\|1\d\|2[0-3]\):\%(0?\d\|[1-5]\d\)'
134 \ nextgroup=xinetdTimeRanges skipwhite
135
136syn keyword xinetdAttribute contained log_type nextgroup=xinetdLogTypeEq
137 \ skipwhite
138
139syn match xinetdLogTypeEq contained display '='
140 \ nextgroup=xinetdLogType skipwhite
141
142syn keyword xinetdLogType contained SYSLOG nextgroup=xinetdSyslogType
143 \ skipwhite
144
145syn keyword xinetdLogType contained FILE nextgroup=xinetdLogFile skipwhite
146
147syn keyword xinetdSyslogType contained daemon auth authpriv user mail lpr
148 \ news uucp ftp local0 local1 local2 local3
149 \ local4 local5 local6 local7
150 \ nextgroup=xinetdSyslogLevel skipwhite
151
152syn keyword xinetdSyslogLevel contained emerg alert crit err warning notice
153 \ info debug
154
155syn match xinetdLogFile contained display '\S\+'
156 \ nextgroup=xinetdLogSoftLimit skipwhite
157
158syn match xinetdLogSoftLimit contained display '\<\d\+\>'
159 \ nextgroup=xinetdLogHardLimit skipwhite
160
161syn match xinetdLogHardLimit contained display '\<\d\+\>'
162
163syn keyword xinetdAttribute contained log_on_success
164 \ nextgroup=xinetdLogSuccessEq skipwhite
165
166syn match xinetdLogSuccessEq contained display '[+-]\=='
167 \ nextgroup=xinetdLogSuccess skipwhite
168
169syn keyword xinetdLogSuccess contained PID HOST USERID EXIT DURATION TRAFFIC
170 \ nextgroup=xinetdLogSuccess skipwhite
171
172syn keyword xinetdAttribute contained log_on_failure
173 \ nextgroup=xinetdLogFailureEq skipwhite
174
175syn match xinetdLogFailureEq contained display '[+-]\=='
176 \ nextgroup=xinetdLogFailure skipwhite
177
178syn keyword xinetdLogFailure contained HOST USERID ATTEMPT
179 \ nextgroup=xinetdLogFailure skipwhite
180
181syn keyword xinetdReqAttribute contained rpc_version
182 \ nextgroup=xinetdRPCVersionEq skipwhite
183
184syn match xinetdRPCVersionEq contained display '='
185 \ nextgroup=xinetdRPCVersion skipwhite
186
187syn match xinetdRPCVersion contained display '\d\+\%(-\d\+\)\=\>'
188
189syn keyword xinetdReqAttribute contained rpc_number port
190 \ nextgroup=xinetdNumberEq skipwhite
191
192syn match xinetdNumberEq contained display '='
193 \ nextgroup=xinetdNumber skipwhite
194
195syn keyword xinetdAttribute contained env nextgroup=xinetdEnvEq skipwhite
196
197syn match xinetdEnvEq contained display '+\=='
198 \ nextgroup=xinetdEnvName skipwhite
199
200syn match xinetdEnvName contained display '[^=]\+'
201 \ nextgroup=xinetdEnvNameEq
202
203syn match xinetdEnvNameEq contained display '=' nextgroup=xinetdEnvValue
204
205syn match xinetdEnvValue contained display '\S\+'
206 \ nextgroup=xinetdEnvName skipwhite
207
208syn keyword xinetdAttribute contained banner banner_success banner_failure
209 \ nextgroup=xinetdPathEq skipwhite
210
211syn keyword xinetdPPAttribute include includedir
212 \ nextgroup=xinetdPath skipwhite
213
214syn match xinetdPathEq contained display '='
215 \ nextgroup=xinetdPath skipwhite
216
217syn match xinetdPath contained display '\S\+'
218
219syn keyword xinetdAttribute contained redirect nextgroup=xinetdRedirectEq
220 \ skipwhite
221
222syn match xinetdRedirectEq contained display '='
223 \ nextgroup=xinetdRedirectIP skipwhite
224
225syn match xinetdRedirectIP contained display '\S\+'
226 \ nextgroup=xinetdNumber skipwhite
227
228syn keyword xinetdAttribute contained cps nextgroup=xinetdCPSEq skipwhite
229
230syn match xinetdCPSEq contained display '='
231 \ nextgroup=xinetdCPS skipwhite
232
233syn match xinetdCPS contained display '\<\d\+\>'
234 \ nextgroup=xinetdNumber skipwhite
235
236syn keyword xinetdAttribute contained max_load nextgroup=xinetdFloatEq
237 \ skipwhite
238
239syn match xinetdFloatEq contained display '='
240 \ nextgroup=xinetdFloat skipwhite
241
242syn match xinetdFloat contained display '\d\+\.\d*\|\.\d\+'
243
244syn keyword xinetdAttribute contained umask nextgroup=xinetdOctalEq
245 \ skipwhite
246
247syn match xinetdOctalEq contained display '='
248 \ nextgroup=xinetdOctal,xinetdOctalError
249 \ skipwhite
250
251syn match xinetdOctal contained display '\<0\o\+\>'
252 \ contains=xinetdOctalZero
253syn match xinetdOctalZero contained display '\<0'
254syn match xinetdOctalError contained display '\<0\o*[89]\d*\>'
255
256syn keyword xinetdAttribute contained rlimit_as nextgroup=xinetdASEq
257 \ skipwhite
258
259syn match xinetdASEq contained display '='
260 \ nextgroup=xinetdAS,xinetdUnlimited
261 \ skipwhite
262
263syn match xinetdAS contained display '\d\+' nextgroup=xinetdASMult
264
265syn match xinetdASMult contained display '[KM]'
266
267syn keyword xinetdAttribute contained deny_time nextgroup=xinetdDenyTimeEq
268 \ skipwhite
269
270syn match xinetdDenyTimeEq contained display '='
271 \ nextgroup=xinetdDenyTime,xinetdNumber
272 \ skipwhite
273
274syn keyword xinetdDenyTime contained FOREVER NEVER
275
276hi def link xinetdTodo Todo
277hi def link xinetdComment Comment
278hi def link xinetdService Keyword
279hi def link xinetdServiceName String
280hi def link xinetdDefaults Keyword
281hi def link xinetdServiceGroupD Delimiter
282hi def link xinetdReqAttribute Keyword
283hi def link xinetdAttribute Type
284hi def link xinetdEq Operator
285hi def link xinetdStringEq xinetdEq
286hi def link xinetdString String
287hi def link xinetdTypeEq xinetdEq
288hi def link xinetdType Identifier
289hi def link xinetdFlagsEq xinetdEq
290hi def link xinetdFlags xinetdType
291hi def link xinetdDeprFlags WarningMsg
292hi def link xinetdDisable Special
293hi def link xinetdBooleanEq xinetdEq
294hi def link xinetdBoolean Boolean
295hi def link xinetdSocketTypeEq xinetdEq
296hi def link xinetdSocketType xinetdType
297hi def link xinetdUNumberEq xinetdEq
298hi def link xinetdUnlimited Define
299hi def link xinetdNumber Number
300hi def link xinetdSignedNumEq xinetdEq
301hi def link xinetdSignedNumber xinetdNumber
302hi def link xinetdStringsEq xinetdEq
303hi def link xinetdStrings xinetdString
304hi def link xinetdStringsAdvEq xinetdEq
305hi def link xinetdTimeRangesEq xinetdEq
306hi def link xinetdTimeRanges Number
307hi def link xinetdLogTypeEq xinetdEq
308hi def link xinetdLogType Keyword
309hi def link xinetdSyslogType xinetdType
310hi def link xinetdSyslogLevel Number
311hi def link xinetdLogFile xinetdPath
312hi def link xinetdLogSoftLimit xinetdNumber
313hi def link xinetdLogHardLimit xinetdNumber
314hi def link xinetdLogSuccessEq xinetdEq
315hi def link xinetdLogSuccess xinetdType
316hi def link xinetdLogFailureEq xinetdEq
317hi def link xinetdLogFailure xinetdType
318hi def link xinetdRPCVersionEq xinetdEq
319hi def link xinetdRPCVersion xinetdNumber
320hi def link xinetdNumberEq xinetdEq
321hi def link xinetdEnvEq xinetdEq
322hi def link xinetdEnvName Identifier
323hi def link xinetdEnvNameEq xinetdEq
324hi def link xinetdEnvValue String
325hi def link xinetdPPAttribute PreProc
326hi def link xinetdPathEq xinetdEq
327hi def link xinetdPath String
328hi def link xinetdRedirectEq xinetdEq
329hi def link xinetdRedirectIP String
330hi def link xinetdCPSEq xinetdEq
331hi def link xinetdCPS xinetdNumber
332hi def link xinetdFloatEq xinetdEq
333hi def link xinetdFloat xinetdNumber
334hi def link xinetdOctalEq xinetdEq
335hi def link xinetdOctal xinetdNumber
336hi def link xinetdOctalZero PreProc
337hi def link xinetdOctalError Error
338hi def link xinetdASEq xinetdEq
339hi def link xinetdAS xinetdNumber
340hi def link xinetdASMult PreProc
341hi def link xinetdDenyTimeEq xinetdEq
342hi def link xinetdDenyTime PreProc
343
344let b:current_syntax = "xinetd"
345
346let &cpo = s:cpo_save
347unlet s:cpo_save