1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
|
" Vim syntax file
" Language: RFC 2614 - An API for Service Location configuration file
" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
" Latest Revision: 2005-07-04
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
syn keyword slpconfTodo contained TODO FIXME XXX NOTE
syn region slpconfComment display oneline start='^[#;]' end='$'
\ contains=slpconfTodo,@Spell
syn match slpconfBegin display '^'
\ nextgroup=slpconfTag,
\ slpconfComment skipwhite
syn keyword slpconfTag contained net
\ nextgroup=slpconfNetTagDot
syn match slpconfNetTagDot contained display '.'
\ nextgroup=slpconfNetTag
syn keyword slpconfNetTag contained slp
\ nextgroup=slpconfNetSlpTagdot
syn match slpconfNetSlpTagDot contained display '.'
\ nextgroup=slpconfNetSlpTag
syn keyword slpconfNetSlpTag contained isDA traceDATraffic traceMsg
\ traceDrop traceReg isBroadcastOnly
\ passiveDADetection securityEnabled
\ nextgroup=slpconfBooleanEq,slpconfBooleanHome
\ skipwhite
syn match slpconfBooleanHome contained display
\ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
\ nextgroup=slpconfBooleanEq skipwhite
syn match slpconfBooleanEq contained display '='
\ nextgroup=slpconfBoolean skipwhite
syn keyword slpconfBoolean contained true false TRUE FALSE
syn keyword slpconfNetSlpTag contained DAHeartBeat multicastTTL
\ DAActiveDiscoveryInterval
\ multicastMaximumWait multicastTimeouts
\ randomWaitBound MTU maxResults
\ nextgroup=slpconfIntegerEq,slpconfIntegerHome
\ skipwhite
syn match slpconfIntegerHome contained display
\ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
\ nextgroup=slpconfIntegerEq skipwhite
syn match slpconfIntegerEq contained display '='
\ nextgroup=slpconfInteger skipwhite
syn match slpconfInteger contained display '\<\d\+\>'
syn keyword slpconfNetSlpTag contained DAAttributes SAAttributes
\ nextgroup=slpconfAttrEq,slpconfAttrHome
\ skipwhite
syn match slpconfAttrHome contained display
\ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
\ nextgroup=slpconfAttrEq skipwhite
syn match slpconfAttrEq contained display '='
\ nextgroup=slpconfAttrBegin skipwhite
syn match slpconfAttrBegin contained display '('
\ nextgroup=slpconfAttrTag skipwhite
syn match slpconfAttrTag contained display
\ '[^* \t_(),\\!<=>~[:cntrl:]]\+'
\ nextgroup=slpconfAttrTagEq skipwhite
syn match slpconfAttrTagEq contained display '='
\ nextgroup=@slpconfAttrValue skipwhite
syn cluster slpconfAttrValueCon contains=slpconfAttrValueSep,slpconfAttrEnd
syn cluster slpconfAttrValue contains=slpconfAttrIValue,slpconfAttrSValue,
\ slpconfAttrBValue,slpconfAttrSSValue
syn match slpconfAttrSValue contained display '[^ (),\\!<=>~[:cntrl:]]\+'
\ nextgroup=@slpconfAttrValueCon skipwhite
syn match slpconfAttrSSValue contained display '\\FF\%(\\\x\x\)\+'
\ nextgroup=@slpconfAttrValueCon skipwhite
syn match slpconfAttrIValue contained display '[-]\=\d\+\>'
\ nextgroup=@slpconfAttrValueCon skipwhite
syn keyword slpconfAttrBValue contained true false
\ nextgroup=@slpconfAttrValueCon skipwhite
syn match slpconfAttrValueSep contained display ','
\ nextgroup=@slpconfAttrValue skipwhite
syn match slpconfAttrEnd contained display ')'
\ nextgroup=slpconfAttrSep skipwhite
syn match slpconfAttrSep contained display ','
\ nextgroup=slpconfAttrBegin skipwhite
syn keyword slpconfNetSlpTag contained useScopes typeHint
\ nextgroup=slpconfStringsEq,slpconfStringsHome
\ skipwhite
syn match slpconfStringsHome contained display
\ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
\ nextgroup=slpconfStringsEq skipwhite
syn match slpconfStringsEq contained display '='
\ nextgroup=slpconfStrings skipwhite
syn match slpconfStrings contained display
\ '\%([[:digit:][:alpha:]]\|[!-+./:-@[-`{-~-]\|\\\x\x\)\+'
\ nextgroup=slpconfStringsSep skipwhite
syn match slpconfStringsSep contained display ','
\ nextgroup=slpconfStrings skipwhite
syn keyword slpconfNetSlpTag contained DAAddresses
\ nextgroup=slpconfAddressesEq,slpconfAddrsHome
\ skipwhite
syn match slpconfAddrsHome contained display
\ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
\ nextgroup=slpconfAddressesEq skipwhite
syn match slpconfAddressesEq contained display '='
\ nextgroup=@slpconfAddresses skipwhite
syn cluster slpconfAddresses contains=slpconfFQDNs,slpconfHostnumbers
syn match slpconfFQDNs contained display
\ '\a[[:alnum:]-]*[[:alnum:]]\|\a'
\ nextgroup=slpconfAddressesSep skipwhite
syn match slpconfHostnumbers contained display
\ '\d\{1,3}\%(\.\d\{1,3}\)\{3}'
\ nextgroup=slpconfAddressesSep skipwhite
syn match slpconfAddressesSep contained display ','
\ nextgroup=@slpconfAddresses skipwhite
syn keyword slpconfNetSlpTag contained serializedRegURL
\ nextgroup=slpconfStringEq,slpconfStringHome
\ skipwhite
syn match slpconfStringHome contained display
\ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
\ nextgroup=slpconfStringEq skipwhite
syn match slpconfStringEq contained display '='
\ nextgroup=slpconfString skipwhite
syn match slpconfString contained display
\ '\%([!-+./:-@[-`{-~-]\|\\\x\x\)\+\|[[:digit:][:alpha:]]'
syn keyword slpconfNetSlpTag contained multicastTimeouts DADiscoveryTimeouts
\ datagramTimeouts
\ nextgroup=slpconfIntegersEq,
\ slpconfIntegersHome skipwhite
syn match slpconfIntegersHome contained display
\ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
\ nextgroup=slpconfIntegersEq skipwhite
syn match slpconfIntegersEq contained display '='
\ nextgroup=slpconfIntegers skipwhite
syn match slpconfIntegers contained display '\<\d\+\>'
\ nextgroup=slpconfIntegersSep skipwhite
syn match slpconfIntegersSep contained display ','
\ nextgroup=slpconfIntegers skipwhite
syn keyword slpconfNetSlpTag contained interfaces
\ nextgroup=slpconfHostnumsEq,
\ slpconfHostnumsHome skipwhite
syn match slpconfHostnumsHome contained display
\ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
\ nextgroup=slpconfHostnumsEq skipwhite
syn match slpconfHostnumsEq contained display '='
\ nextgroup=slpconfOHostnumbers skipwhite
syn match slpconfOHostnumbers contained display
\ '\d\{1,3}\%(\.\d\{1,3}\)\{3}'
\ nextgroup=slpconfHostnumsSep skipwhite
syn match slpconfHostnumsSep contained display ','
\ nextgroup=slpconfOHostnumbers skipwhite
syn keyword slpconfNetSlpTag contained locale
\ nextgroup=slpconfLocaleEq,slpconfLocaleHome
\ skipwhite
syn match slpconfLocaleHome contained display
\ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
\ nextgroup=slpconfLocaleEq skipwhite
syn match slpconfLocaleEq contained display '='
\ nextgroup=slpconfLocale skipwhite
syn match slpconfLocale contained display '\a\{1,8}\%(-\a\{1,8}\)\='
hi def link slpconfTodo Todo
hi def link slpconfComment Comment
hi def link slpconfTag Identifier
hi def link slpconfDelimiter Delimiter
hi def link slpconfNetTagDot slpconfDelimiter
hi def link slpconfNetTag slpconfTag
hi def link slpconfNetSlpTagDot slpconfNetTagDot
hi def link slpconfNetSlpTag slpconfTag
hi def link slpconfHome Special
hi def link slpconfBooleanHome slpconfHome
hi def link slpconfEq Operator
hi def link slpconfBooleanEq slpconfEq
hi def link slpconfBoolean Boolean
hi def link slpconfIntegerHome slpconfHome
hi def link slpconfIntegerEq slpconfEq
hi def link slpconfInteger Number
hi def link slpconfAttrHome slpconfHome
hi def link slpconfAttrEq slpconfEq
hi def link slpconfAttrBegin slpconfDelimiter
hi def link slpconfAttrTag slpconfTag
hi def link slpconfAttrTagEq slpconfEq
hi def link slpconfAttrIValue slpconfInteger
hi def link slpconfAttrSValue slpconfString
hi def link slpconfAttrBValue slpconfBoolean
hi def link slpconfAttrSSValue slpconfString
hi def link slpconfSeparator slpconfDelimiter
hi def link slpconfAttrValueSep slpconfSeparator
hi def link slpconfAttrEnd slpconfAttrBegin
hi def link slpconfAttrSep slpconfSeparator
hi def link slpconfStringsHome slpconfHome
hi def link slpconfStringsEq slpconfEq
hi def link slpconfStrings slpconfString
hi def link slpconfStringsSep slpconfSeparator
hi def link slpconfAddrsHome slpconfHome
hi def link slpconfAddressesEq slpconfEq
hi def link slpconfFQDNs String
hi def link slpconfHostnumbers Number
hi def link slpconfAddressesSep slpconfSeparator
hi def link slpconfStringHome slpconfHome
hi def link slpconfStringEq slpconfEq
hi def link slpconfString String
hi def link slpconfIntegersHome slpconfHome
hi def link slpconfIntegersEq slpconfEq
hi def link slpconfIntegers slpconfInteger
hi def link slpconfIntegersSep slpconfSeparator
hi def link slpconfHostnumsHome slpconfHome
hi def link slpconfHostnumsEq slpconfEq
hi def link slpconfOHostnumbers slpconfHostnumbers
hi def link slpconfHostnumsSep slpconfSeparator
hi def link slpconfLocaleHome slpconfHome
hi def link slpconfLocaleEq slpconfEq
hi def link slpconfLocale slpconfString
let b:current_syntax = "slpconf"
let &cpo = s:cpo_save
unlet s:cpo_save
|