1" Vim syntax file
2" Language:         cdrdao(1) TOC file
3" Maintainer:       Nikolai Weibull <now@bitwi.se>
4" Latest Revision:  2007-05-10
5
6if exists("b:current_syntax")
7  finish
8endif
9
10let s:cpo_save = &cpo
11set cpo&vim
12
13syn keyword cdrtocTodo
14      \ contained
15      \ TODO
16      \ FIXME
17      \ XXX
18      \ NOTE
19
20syn cluster cdrtocCommentContents
21      \ contains=
22      \   cdrtocTodo,
23      \   @Spell
24
25syn cluster cdrtocHeaderFollowsInitial
26      \ contains=
27      \   cdrtocHeaderCommentInitial,
28      \   cdrtocHeaderCatalog,
29      \   cdrtocHeaderTOCType,
30      \   cdrtocHeaderCDText,
31      \   cdrtocTrack
32
33syn match   cdrtocHeaderBegin
34      \ nextgroup=@cdrtocHeaderFollowsInitial
35      \ skipwhite skipempty
36      \ '\%^'
37
38let s:mmssff_pattern = '\%([0-5]\d\|\d\):\%([0-5]\d\|\d\):\%([0-6]\d\|7[0-5]\|\d\)\>'
39let s:byte_pattern = '\<\%([01]\=\d\{1,2}\|2\%([0-4]\d\|5[0-5]\)\)\>'
40let s:length_pattern = '\%(\%([0-5]\d\|\d\):\%([0-5]\d\|\d\):\%([0-6]\d\|7[0-5]\|\d\)\|\d\+\)\>'
41
42function s:def_comment(name, nextgroup)
43  execute 'syn match' a:name
44        \ 'nextgroup=' . a:nextgroup . ',' . a:name
45        \ 'skipwhite skipempty'
46        \ 'contains=@cdrtocCommentContents'
47        \ 'contained'
48        \ "'//.*$'"
49  execute 'hi def link' a:name 'cdrtocComment'
50endfunction
51
52function s:def_keywords(name, nextgroup, keywords)
53  let comment_group = a:name . 'FollowComment'
54  execute 'syn keyword' a:name
55        \ 'nextgroup=' . a:nextgroup . ',' . comment_group
56        \ 'skipwhite skipempty'
57        \ 'contained'
58        \ join(a:keywords)
59
60  call s:def_comment(comment_group, a:nextgroup)
61endfunction
62
63function s:def_keyword(name, nextgroup, keyword)
64  call s:def_keywords(a:name, a:nextgroup, [a:keyword])
65endfunction
66
67" NOTE: Pattern needs to escape any “@”s.
68function s:def_match(name, nextgroup, pattern)
69  let comment_group = a:name . 'FollowComment'
70  execute 'syn match' a:name
71        \ 'nextgroup=' . a:nextgroup . ',' . comment_group
72        \ 'skipwhite skipempty'
73        \ 'contained'
74        \ '@' . a:pattern . '@'
75
76  call s:def_comment(comment_group, a:nextgroup)
77endfunction
78
79function s:def_region(name, nextgroup, start, skip, end, matchgroup, contains)
80  let comment_group = a:name . 'FollowComment'
81  execute 'syn region' a:name
82        \ 'nextgroup=' . a:nextgroup . ',' . comment_group
83        \ 'skipwhite skipempty'
84        \ 'contained'
85        \ 'matchgroup=' . a:matchgroup
86        \ 'contains=' . a:contains
87        \ 'start=@' . a:start . '@'
88        \ (a:skip != "" ? ('skip=@' . a:skip . '@') : "")
89        \ 'end=@' . a:end . '@'
90
91  call s:def_comment(comment_group, a:nextgroup)
92endfunction
93
94call s:def_comment('cdrtocHeaderCommentInitial', '@cdrtocHeaderFollowsInitial')
95
96call s:def_keyword('cdrtocHeaderCatalog', 'cdrtocHeaderCatalogNumber', 'CATALOG')
97
98call s:def_match('cdrtocHeaderCatalogNumber', '@cdrtocHeaderFollowsInitial', '"\d\{13\}"')
99
100call s:def_keywords('cdrtocHeaderTOCType', '@cdrtocHeaderFollowsInitial', ['CD_DA', 'CD_ROM', 'CD_ROM_XA'])
101
102call s:def_keyword('cdrtocHeaderCDText', 'cdrtocHeaderCDTextStart', 'CD_TEXT')
103
104" TODO: Actually, language maps aren’t required by TocParser.g, but let’s keep
105" things simple (and in agreement with what the manual page says).
106call s:def_match('cdrtocHeaderCDTextStart', 'cdrtocHeaderCDTextLanguageMap', '{')
107
108call s:def_keyword('cdrtocHeaderCDTextLanguageMap', 'cdrtocHeaderLanguageMapStart', 'LANGUAGE_MAP')
109
110call s:def_match('cdrtocHeaderLanguageMapStart', 'cdrtocHeaderLanguageMapLanguageNumber', '{')
111
112call s:def_match('cdrtocHeaderLanguageMapLanguageNumber', 'cdrtocHeaderLanguageMapColon', '\<[0-7]\>')
113
114call s:def_match('cdrtocHeaderLanguageMapColon', 'cdrtocHeaderLanguageMapCountryCode,cdrtocHeaderLanguageMapCountryCodeName', ':')
115
116syn cluster cdrtocHeaderLanguageMapCountryCodeFollow
117      \ contains=
118      \   cdrtocHeaderLanguageMapLanguageNumber,
119      \   cdrtocHeaderLanguageMapEnd
120
121call s:def_match('cdrtocHeaderLanguageMapCountryCode',
122               \ '@cdrtocHeaderLanguageMapCountryCodeFollow',
123               \ s:byte_pattern)
124
125call s:def_keyword('cdrtocHeaderLanguageMapCountryCodeName',
126                 \ '@cdrtocHeaderLanguageMapCountryCodeFollow',
127                 \ 'EN')
128
129call s:def_match('cdrtocHeaderLanguageMapEnd',
130               \ 'cdrtocHeaderLanguage,cdrtocHeaderCDTextEnd',
131               \ '}')
132
133call s:def_keyword('cdrtocHeaderLanguage', 'cdrtocHeaderLanguageNumber', 'LANGUAGE')
134
135call s:def_match('cdrtocHeaderLanguageNumber', 'cdrtocHeaderLanguageStart', '\<[0-7]\>')
136
137call s:def_match('cdrtocHeaderLanguageStart',
138               \ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd',
139               \ '{')
140
141syn cluster cdrtocHeaderCDTextData
142      \ contains=
143      \   cdrtocHeaderCDTextDataString,
144      \   cdrtocHeaderCDTextDataBinaryStart
145
146call s:def_keywords('cdrtocHeaderCDTextItem',
147                  \ '@cdrtocHeaderCDTextData',
148                  \ ['TITLE', 'PERFORMER', 'SONGWRITER', 'COMPOSER',
149                  \  'ARRANGER', 'MESSAGE', 'DISC_ID', 'GENRE', 'TOC_INFO1',
150                  \  'TOC_INFO2', 'UPC_EAN', 'ISRC', 'SIZE_INFO'])
151
152call s:def_region('cdrtocHeaderCDTextDataString',
153                \ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd',
154                \ '"',
155                \ '\\\\\|\\"',
156                \ '"',
157                \ 'cdrtocHeaderCDTextDataStringDelimiters',
158                \ 'cdrtocHeaderCDTextDataStringSpecialChar')
159
160syn match   cdrtocHeaderCDTextDataStringSpecialChar
161      \ contained
162      \ display
163      \ '\\\%(\o\o\o\|["\\]\)'
164
165call s:def_match('cdrtocHeaderCDTextDataBinaryStart',
166               \ 'cdrtocHeaderCDTextDataBinaryInteger',
167               \ '{')
168
169call s:def_match('cdrtocHeaderCDTextDataBinaryInteger',
170               \ 'cdrtocHeaderCDTextDataBinarySeparator,cdrtocHeaderCDTextDataBinaryEnd',
171               \ s:byte_pattern)
172
173call s:def_match('cdrtocHeaderCDTextDataBinarySeparator',
174               \ 'cdrtocHeaderCDTextDataBinaryInteger',
175               \ ',')
176
177call s:def_match('cdrtocHeaderCDTextDataBinaryEnd',
178               \ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd',
179               \ '}')
180
181call s:def_match('cdrtocHeaderLanguageEnd',
182               \ 'cdrtocHeaderLanguage,cdrtocHeaderCDTextEnd',
183               \ '}')
184
185call s:def_match('cdrtocHeaderCDTextEnd',
186               \ 'cdrtocTrack',
187               \ '}')
188
189syn cluster cdrtocTrackFollow
190      \ contains=
191      \   @cdrtocTrackFlags,
192      \   cdrtocTrackCDText,
193      \   cdrtocTrackPregap,
194      \   @cdrtocTrackContents
195
196call s:def_keyword('cdrtocTrack', 'cdrtocTrackMode', 'TRACK')
197
198call s:def_keywords('cdrtocTrackMode',
199                  \ 'cdrtocTrackSubChannelMode,@cdrtocTrackFollow',
200                  \ ['AUDIO', 'MODE1', 'MODE1_RAW', 'MODE2', 'MODE2_FORM1',
201                  \  'MODE2_FORM2', 'MODE2_FORM_MIX', 'MODE2_RAW'])
202
203call s:def_keywords('cdrtocTrackSubChannelMode',
204                  \ '@cdrtocTrackFollow',
205                  \ ['RW', 'RW_RAW'])
206
207syn cluster cdrtocTrackFlags
208      \ contains=
209      \   cdrtocTrackFlagNo,
210      \   cdrtocTrackFlagCopy,
211      \   cdrtocTrackFlagPreEmphasis,
212      \   cdrtocTrackFlag
213
214call s:def_keyword('cdrtocTrackFlagNo',
215                 \ 'cdrtocTrackFlagCopy,cdrtocTrackFlagPreEmphasis',
216                 \ 'NO')
217
218call s:def_keyword('cdrtocTrackFlagCopy', '@cdrtocTrackFollow', 'COPY')
219
220call s:def_keyword('cdrtocTrackFlagPreEmphasis', '@cdrtocTrackFollow', 'PRE_EMPHASIS')
221
222call s:def_keywords('cdrtocTrackFlag',
223                  \ '@cdrtocTrackFollow',
224                  \ ['TWO_CHANNEL_AUDIO', 'FOUR_CHANNEL_AUDIO'])
225
226call s:def_keyword('cdrtocTrackFlag', 'cdrtocTrackISRC', 'ISRC')
227
228call s:def_match('cdrtocTrackISRC',
229               \ '@cdrtocTrackFollow',
230               \ '"[[:upper:][:digit:]]\{5}\d\{7}"')
231
232call s:def_keyword('cdrtocTrackCDText', 'cdrtocTrackCDTextStart', 'CD_TEXT')
233
234call s:def_match('cdrtocTrackCDTextStart', 'cdrtocTrackCDTextLanguage', '{')
235
236call s:def_keyword('cdrtocTrackCDTextLanguage', 'cdrtocTrackCDTextLanguageNumber', 'LANGUAGE')
237
238call s:def_match('cdrtocTrackCDTextLanguageNumber', 'cdrtocTrackCDTextLanguageStart', '\<[0-7]\>')
239
240call s:def_match('cdrtocTrackCDTextLanguageStart',
241               \ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd',
242               \ '{')
243
244syn cluster cdrtocTrackCDTextData
245      \ contains=
246      \   cdrtocTrackCDTextDataString,
247      \   cdrtocTrackCDTextDataBinaryStart
248
249call s:def_keywords('cdrtocTrackCDTextItem',
250                  \ '@cdrtocTrackCDTextData',
251                  \ ['TITLE', 'PERFORMER', 'SONGWRITER', 'COMPOSER', 'ARRANGER',
252                  \  'MESSAGE', 'ISRC'])
253
254call s:def_region('cdrtocTrackCDTextDataString',
255                \ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd',
256                \ '"',
257                \ '\\\\\|\\"',
258                \ '"',
259                \ 'cdrtocTrackCDTextDataStringDelimiters',
260                \ 'cdrtocTrackCDTextDataStringSpecialChar')
261
262syn match   cdrtocTrackCDTextDataStringSpecialChar
263      \ contained
264      \ display
265      \ '\\\%(\o\o\o\|["\\]\)'
266
267call s:def_match('cdrtocTrackCDTextDataBinaryStart',
268               \ 'cdrtocTrackCDTextDataBinaryInteger',
269               \ '{')
270
271call s:def_match('cdrtocTrackCDTextDataBinaryInteger',
272               \ 'cdrtocTrackCDTextDataBinarySeparator,cdrtocTrackCDTextDataBinaryEnd',
273               \ s:byte_pattern)
274
275call s:def_match('cdrtocTrackCDTextDataBinarySeparator',
276               \ 'cdrtocTrackCDTextDataBinaryInteger',
277               \ ',')
278
279call s:def_match('cdrtocTrackCDTextDataBinaryEnd',
280               \ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd',
281               \ '}')
282
283call s:def_match('cdrtocTrackCDTextLanguageEnd',
284               \ 'cdrtocTrackCDTextLanguage,cdrtocTrackCDTextEnd',
285               \ '}')
286
287call s:def_match('cdrtocTrackCDTextEnd',
288               \ 'cdrtocTrackPregap,@cdrtocTrackContents',
289               \ '}')
290
291call s:def_keyword('cdrtocTrackPregap', 'cdrtocTrackPregapMMSSFF', 'PREGAP')
292
293call s:def_match('cdrtocTrackPregapMMSSFF',
294               \ '@cdrtocTrackContents',
295               \ s:mmssff_pattern)
296
297syn cluster cdrtocTrackContents
298      \ contains=
299      \   cdrtocTrackSubTrack,
300      \   cdrtocTrackMarker
301
302syn cluster cdrtocTrackContentsFollow
303      \ contains=
304      \   @cdrtocTrackContents,
305      \   cdrtocTrackIndex,
306      \   cdrtocTrack
307
308call s:def_keywords('cdrtocTrackSubTrack',
309                  \ 'cdrtocTrackSubTrackFileFilename',
310                  \ ['FILE', 'AUDIOFILE'])
311
312call s:def_region('cdrtocTrackSubTrackFileFilename',
313                \ 'cdrtocTrackSubTrackFileStart',
314                \ '"',
315                \ '\\\\\|\\"',
316                \ '"',
317                \ 'cdrtocTrackSubTrackFileFilenameDelimiters',
318                \ 'cdrtocTrackSubTrackFileFilenameSpecialChar')
319
320syn match   cdrtocTrackSubTrackFileFilenameSpecialChar
321      \ contained
322      \ display
323      \ '\\\%(\o\o\o\|["\\]\)'
324
325call s:def_match('cdrtocTrackSubTrackFileStart',
326               \ 'cdrtocTrackSubTrackFileLength,@cdrtocTrackContentsFollow',
327               \ s:length_pattern)
328
329call s:def_match('cdrtocTrackSubTrackFileLength',
330               \ '@cdrtocTrackContentsFollow',
331               \ s:length_pattern)
332
333call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackContentDatafileFilename', 'DATAFILE')
334
335call s:def_region('cdrtocTrackSubTrackDatafileFilename',
336                \ 'cdrtocTrackSubTrackDatafileLength',
337                \ '"',
338                \ '\\\\\|\\"',
339                \ '"',
340                \ 'cdrtocTrackSubTrackDatafileFilenameDelimiters',
341                \ 'cdrtocTrackSubTrackDatafileFilenameSpecialChar')
342
343syn match   cdrtocTrackSubTrackdatafileFilenameSpecialChar
344      \ contained
345      \ display
346      \ '\\\%(\o\o\o\|["\\]\)'
347
348call s:def_match('cdrtocTrackDatafileLength',
349               \ '@cdrtocTrackContentsFollow',
350               \ s:length_pattern)
351
352call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackContentFifoFilename', 'DATAFILE')
353
354call s:def_region('cdrtocTrackSubTrackFifoFilename',
355                \ 'cdrtocTrackSubTrackFifoLength',
356                \ '"',
357                \ '\\\\\|\\"',
358                \ '"',
359                \ 'cdrtocTrackSubTrackFifoFilenameDelimiters',
360                \ 'cdrtocTrackSubTrackFifoFilenameSpecialChar')
361
362syn match   cdrtocTrackSubTrackdatafileFilenameSpecialChar
363      \ contained
364      \ display
365      \ '\\\%(\o\o\o\|["\\]\)'
366
367call s:def_match('cdrtocTrackFifoLength',
368               \ '@cdrtocTrackContentsFollow',
369               \ s:length_pattern)
370
371call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackSilenceLength', 'SILENCE')
372
373call s:def_match('cdrtocTrackSilenceLength',
374               \ '@cdrtocTrackContentsFollow',
375               \ s:length_pattern)
376
377call s:def_keyword('cdrtocTrackSubTrack',
378                 \ 'cdrtocTrackSubTrackZeroDataMode,' .
379                 \ 'cdrtocTrackSubTrackZeroDataSubChannelMode,' .
380                 \ 'cdrtocTrackSubTrackZeroDataLength',
381                 \ 'ZERO')
382
383call s:def_keywords('cdrtocTrackSubTrackZeroDataMode',
384                  \ 'cdrtocTrackSubTrackZeroSubChannelMode,cdrtocTrackSubTrackZeroDataLength',
385                  \ ['AUDIO', 'MODE1', 'MODE1_RAW', 'MODE2', 'MODE2_FORM1',
386                  \  'MODE2_FORM2', 'MODE2_FORM_MIX', 'MODE2_RAW'])
387
388call s:def_keywords('cdrtocTrackSubTrackZeroDataSubChannelMode',
389                  \ 'cdrtocTrackSubTrackZeroDataLength',
390                  \ ['RW', 'RW_RAW'])
391
392call s:def_match('cdrtocTrackSubTrackZeroDataLength',
393               \ '@cdrtocTrackContentsFollow',
394               \ s:length_pattern)
395
396call s:def_keyword('cdrtocTrackMarker',
397                 \ '@cdrtocTrackContentsFollow,cdrtocTrackMarkerStartMMSSFF',
398                 \ 'START')
399
400call s:def_match('cdrtocTrackMarkerStartMMSSFF',
401               \ '@cdrtocTrackContentsFollow',
402               \ s:mmssff_pattern)
403
404call s:def_keyword('cdrtocTrackMarker',
405                 \ '@cdrtocTrackContentsFollow,cdrtocTrackMarkerEndMMSSFF',
406                 \ 'END')
407
408call s:def_match('cdrtocTrackMarkerEndMMSSFF',
409               \ '@cdrtocTrackContentsFollow',
410               \ s:mmssff_pattern)
411
412call s:def_keyword('cdrtocTrackIndex', 'cdrtocTrackIndexMMSSFF', 'INDEX')
413
414call s:def_match('cdrtocTrackIndexMMSSFF',
415               \ 'cdrtocTrackIndex,cdrtocTrack',
416               \ s:mmssff_pattern)
417
418delfunction s:def_region
419delfunction s:def_match
420delfunction s:def_keyword
421delfunction s:def_keywords
422delfunction s:def_comment
423
424syn sync fromstart
425
426hi def link cdrtocKeyword                                  Keyword
427hi def link cdrtocHeaderKeyword                            cdrtocKeyword
428hi def link cdrtocHeaderCDText                             cdrtocHeaderKeyword
429hi def link cdrtocDelimiter                                Delimiter
430hi def link cdrtocCDTextDataBinaryEnd                      cdrtocDelimiter
431hi def link cdrtocHeaderCDTextDataBinaryEnd                cdrtocHeaderCDTextDataBinaryEnd
432hi def link cdrtocNumber                                   Number
433hi def link cdrtocCDTextDataBinaryInteger                  cdrtocNumber
434hi def link cdrtocHeaderCDTextDataBinaryInteger            cdrtocCDTextDataBinaryInteger
435hi def link cdrtocCDTextDataBinarySeparator                cdrtocDelimiter
436hi def link cdrtocHeaderCDTextDataBinarySeparator          cdrtocCDTextDataBinarySeparator
437hi def link cdrtocCDTextDataBinaryStart                    cdrtocDelimiter
438hi def link cdrtocHeaderCDTextDataBinaryStart              cdrtocCDTextDataBinaryStart
439hi def link cdrtocString                                   String
440hi def link cdrtocCDTextDataString                         cdrtocString
441hi def link cdrtocHeaderCDTextDataString                   cdrtocCDTextDataString
442hi def link cdrtocCDTextDataStringDelimiters               cdrtocDelimiter
443hi def link cdrtocHeaderCDTextDataStringDelimiters         cdrtocCDTextDataStringDelimiters
444hi def link cdrtocCDTextDataStringSpecialChar              SpecialChar
445hi def link cdrtocHeaderCDTextDataStringSpecialChar        cdrtocCDTextDataStringSpecialChar
446hi def link cdrtocCDTextEnd                                cdrtocDelimiter
447hi def link cdrtocHeaderCDTextEnd                          cdrtocCDTextEnd
448hi def link cdrtocType                                     Type
449hi def link cdrtocCDTextItem                               cdrtocType
450hi def link cdrtocHeaderCDTextItem                         cdrtocCDTextItem
451hi def link cdrtocHeaderCDTextLanguageMap                  cdrtocHeaderKeyword
452hi def link cdrtocCDTextStart                              cdrtocDelimiter
453hi def link cdrtocHeaderCDTextStart                        cdrtocCDTextStart
454hi def link cdrtocHeaderCatalog                            cdrtocHeaderKeyword
455hi def link cdrtocHeaderCatalogNumber                      cdrtocString
456hi def link cdrtocComment                                  Comment
457hi def link cdrtocHeaderCommentInitial                     cdrtocComment
458hi def link cdrtocHeaderLanguage                           cdrtocKeyword
459hi def link cdrtocLanguageEnd                              cdrtocDelimiter
460hi def link cdrtocHeaderLanguageEnd                        cdrtocLanguageEnd
461hi def link cdrtocHeaderLanguageMapColon                   cdrtocDelimiter
462hi def link cdrtocIdentifier                               Identifier
463hi def link cdrtocHeaderLanguageMapCountryCode             cdrtocNumber
464hi def link cdrtocHeaderLanguageMapCountryCodeName         cdrtocIdentifier
465hi def link cdrtocHeaderLanguageMapEnd                     cdrtocDelimiter
466hi def link cdrtocHeaderLanguageMapLanguageNumber          cdrtocNumber
467hi def link cdrtocHeaderLanguageMapStart                   cdrtocDelimiter
468hi def link cdrtocLanguageNumber                           cdrtocNumber
469hi def link cdrtocHeaderLanguageNumber                     cdrtocLanguageNumber
470hi def link cdrtocLanguageStart                            cdrtocDelimiter
471hi def link cdrtocHeaderLanguageStart                      cdrtocLanguageStart
472hi def link cdrtocHeaderTOCType                            cdrtocType
473hi def link cdrtocTodo                                     Todo
474hi def link cdrtocTrackKeyword                             cdrtocKeyword
475hi def link cdrtocTrack                                    cdrtocTrackKeyword
476hi def link cdrtocTrackCDText                              cdrtocTrackKeyword
477hi def link cdrtocTrackCDTextDataBinaryEnd                 cdrtocHeaderCDTextDataBinaryEnd
478hi def link cdrtocTrackCDTextDataBinaryInteger             cdrtocHeaderCDTextDataBinaryInteger
479hi def link cdrtocTrackCDTextDataBinarySeparator           cdrtocHeaderCDTextDataBinarySeparator
480hi def link cdrtocTrackCDTextDataBinaryStart               cdrtocHeaderCDTextDataBinaryStart
481hi def link cdrtocTrackCDTextDataString                    cdrtocHeaderCDTextDataString
482hi def link cdrtocTrackCDTextDataStringDelimiters          cdrtocCDTextDataStringDelimiters
483hi def link cdrtocTrackCDTextDataStringSpecialChar         cdrtocCDTextDataStringSpecialChar
484hi def link cdrtocTrackCDTextEnd                           cdrtocCDTextEnd
485hi def link cdrtocTrackCDTextItem                          cdrtocCDTextItem
486hi def link cdrtocTrackCDTextStart                         cdrtocCDTextStart
487hi def link cdrtocLength                                   cdrtocNumber
488hi def link cdrtocTrackDatafileLength                      cdrtocLength
489hi def link cdrtocTrackFifoLength                          cdrtocLength
490hi def link cdrtocPreProc                                  PreProc
491hi def link cdrtocTrackFlag                                cdrtocPreProc
492hi def link cdrtocTrackFlagCopy                            cdrtocTrackFlag
493hi def link cdrtocSpecial                                  Special
494hi def link cdrtocTrackFlagNo                              cdrtocSpecial
495hi def link cdrtocTrackFlagPreEmphasis                     cdrtocTrackFlag
496hi def link cdrtocTrackISRC                                cdrtocTrackFlag
497hi def link cdrtocTrackIndex                               cdrtocTrackKeyword
498hi def link cdrtocMMSSFF                                   cdrtocLength
499hi def link cdrtocTrackIndexMMSSFF                         cdrtocMMSSFF
500hi def link cdrtocTrackCDTextLanguage                      cdrtocTrackKeyword
501hi def link cdrtocTrackCDTextLanguageEnd                   cdrtocLanguageEnd
502hi def link cdrtocTrackCDTextLanguageNumber                cdrtocLanguageNumber
503hi def link cdrtocTrackCDTextLanguageStart                 cdrtocLanguageStart
504hi def link cdrtocTrackContents                            StorageClass
505hi def link cdrtocTrackMarker                              cdrtocTrackContents
506hi def link cdrtocTrackMarkerEndMMSSFF                     cdrtocMMSSFF
507hi def link cdrtocTrackMarkerStartMMSSFF                   cdrtocMMSSFF
508hi def link cdrtocTrackMode                                Type
509hi def link cdrtocTrackPregap                              cdrtocTrackContents
510hi def link cdrtocTrackPregapMMSSFF                        cdrtocMMSSFF
511hi def link cdrtocTrackSilenceLength                       cdrtocLength
512hi def link cdrtocTrackSubChannelMode                      cdrtocPreProc
513hi def link cdrtocTrackSubTrack                            cdrtocTrackContents
514hi def link cdrtocFilename                                 cdrtocString
515hi def link cdrtocTrackSubTrackDatafileFilename            cdrtocFilename
516hi def link cdrtocTrackSubTrackDatafileFilenameDelimiters  cdrtocTrackSubTrackDatafileFilename
517hi def link cdrtocSpecialChar                              SpecialChar
518hi def link cdrtocTrackSubTrackDatafileFilenameSpecialChar cdrtocSpecialChar
519hi def link cdrtocTrackSubTrackDatafileLength              cdrtocLength
520hi def link cdrtocTrackSubTrackFifoFilename                cdrtocFilename
521hi def link cdrtocTrackSubTrackFifoFilenameDelimiters      cdrtocTrackSubTrackFifoFilename
522hi def link cdrtocTrackSubTrackFifoFilenameSpecialChar     cdrtocSpecialChar
523hi def link cdrtocTrackSubTrackFifoLength                  cdrtocLength
524hi def link cdrtocTrackSubTrackFileFilename                cdrtocFilename
525hi def link cdrtocTrackSubTrackFileFilenameDelimiters      cdrtocTrackSubTrackFileFilename
526hi def link cdrtocTrackSubTrackFileFilenameSpecialChar     cdrtocSpecialChar
527hi def link cdrtocTrackSubTrackFileLength                  cdrtocLength
528hi def link cdrtocTrackSubTrackFileStart                   cdrtocLength
529hi def link cdrtocTrackSubTrackZeroDataLength              cdrtocLength
530hi def link cdrtocTrackSubTrackZeroDataMode                Type
531hi def link cdrtocTrackSubTrackZeroDataSubChannelMode      cdrtocPreProc
532hi def link cdrtocTrackSubTrackdatafileFilenameSpecialChar cdrtocSpecialChar
533
534let b:current_syntax = "cdrtoc"
535
536let &cpo = s:cpo_save
537unlet s:cpo_save
538