Merge branch 'vim-runtime'
[vim_mainline.git] / runtime / syntax / cdrtoc.vim
blobfa752dbfb8395ea604ae01b61be736d80b811404
1 " Vim syntax file
2 " Language:         cdrdao(1) TOC file
3 " Maintainer:       Nikolai Weibull <now@bitwi.se>
4 " Latest Revision:  2007-05-10
6 if exists("b:current_syntax")
7   finish
8 endif
10 let s:cpo_save = &cpo
11 set cpo&vim
13 syn keyword cdrtocTodo
14       \ contained
15       \ TODO
16       \ FIXME
17       \ XXX
18       \ NOTE
20 syn cluster cdrtocCommentContents
21       \ contains=
22       \   cdrtocTodo,
23       \   @Spell
25 syn cluster cdrtocHeaderFollowsInitial
26       \ contains=
27       \   cdrtocHeaderCommentInitial,
28       \   cdrtocHeaderCatalog,
29       \   cdrtocHeaderTOCType,
30       \   cdrtocHeaderCDText,
31       \   cdrtocTrack
33 syn match   cdrtocHeaderBegin
34       \ nextgroup=@cdrtocHeaderFollowsInitial
35       \ skipwhite skipempty
36       \ '\%^'
38 let s:mmssff_pattern = '\%([0-5]\d\|\d\):\%([0-5]\d\|\d\):\%([0-6]\d\|7[0-5]\|\d\)\>'
39 let s:byte_pattern = '\<\%([01]\=\d\{1,2}\|2\%([0-4]\d\|5[0-5]\)\)\>'
40 let s:length_pattern = '\%(\%([0-5]\d\|\d\):\%([0-5]\d\|\d\):\%([0-6]\d\|7[0-5]\|\d\)\|\d\+\)\>'
42 function 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'
50 endfunction
52 function 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)
60   call s:def_comment(comment_group, a:nextgroup)
61 endfunction
63 function s:def_keyword(name, nextgroup, keyword)
64   call s:def_keywords(a:name, a:nextgroup, [a:keyword])
65 endfunction
67 " NOTE: Pattern needs to escape any “@”s.
68 function 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 . '@'
76   call s:def_comment(comment_group, a:nextgroup)
77 endfunction
79 function 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 . '@'
91   call s:def_comment(comment_group, a:nextgroup)
92 endfunction
94 call s:def_comment('cdrtocHeaderCommentInitial', '@cdrtocHeaderFollowsInitial')
96 call s:def_keyword('cdrtocHeaderCatalog', 'cdrtocHeaderCatalogNumber', 'CATALOG')
98 call s:def_match('cdrtocHeaderCatalogNumber', '@cdrtocHeaderFollowsInitial', '"\d\{13\}"')
100 call s:def_keywords('cdrtocHeaderTOCType', '@cdrtocHeaderFollowsInitial', ['CD_DA', 'CD_ROM', 'CD_ROM_XA'])
102 call s:def_keyword('cdrtocHeaderCDText', 'cdrtocHeaderCDTextStart', 'CD_TEXT')
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).
106 call s:def_match('cdrtocHeaderCDTextStart', 'cdrtocHeaderCDTextLanguageMap', '{')
108 call s:def_keyword('cdrtocHeaderCDTextLanguageMap', 'cdrtocHeaderLanguageMapStart', 'LANGUAGE_MAP')
110 call s:def_match('cdrtocHeaderLanguageMapStart', 'cdrtocHeaderLanguageMapLanguageNumber', '{')
112 call s:def_match('cdrtocHeaderLanguageMapLanguageNumber', 'cdrtocHeaderLanguageMapColon', '\<[0-7]\>')
114 call s:def_match('cdrtocHeaderLanguageMapColon', 'cdrtocHeaderLanguageMapCountryCode,cdrtocHeaderLanguageMapCountryCodeName', ':')
116 syn cluster cdrtocHeaderLanguageMapCountryCodeFollow
117       \ contains=
118       \   cdrtocHeaderLanguageMapLanguageNumber,
119       \   cdrtocHeaderLanguageMapEnd
121 call s:def_match('cdrtocHeaderLanguageMapCountryCode',
122                \ '@cdrtocHeaderLanguageMapCountryCodeFollow',
123                \ s:byte_pattern)
125 call s:def_keyword('cdrtocHeaderLanguageMapCountryCodeName',
126                  \ '@cdrtocHeaderLanguageMapCountryCodeFollow',
127                  \ 'EN')
129 call s:def_match('cdrtocHeaderLanguageMapEnd',
130                \ 'cdrtocHeaderLanguage,cdrtocHeaderCDTextEnd',
131                \ '}')
133 call s:def_keyword('cdrtocHeaderLanguage', 'cdrtocHeaderLanguageNumber', 'LANGUAGE')
135 call s:def_match('cdrtocHeaderLanguageNumber', 'cdrtocHeaderLanguageStart', '\<[0-7]\>')
137 call s:def_match('cdrtocHeaderLanguageStart',
138                \ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd',
139                \ '{')
141 syn cluster cdrtocHeaderCDTextData
142       \ contains=
143       \   cdrtocHeaderCDTextDataString,
144       \   cdrtocHeaderCDTextDataBinaryStart
146 call 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'])
152 call s:def_region('cdrtocHeaderCDTextDataString',
153                 \ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd',
154                 \ '"',
155                 \ '\\\\\|\\"',
156                 \ '"',
157                 \ 'cdrtocHeaderCDTextDataStringDelimiters',
158                 \ 'cdrtocHeaderCDTextDataStringSpecialChar')
160 syn match   cdrtocHeaderCDTextDataStringSpecialChar
161       \ contained
162       \ display
163       \ '\\\%(\o\o\o\|["\\]\)'
165 call s:def_match('cdrtocHeaderCDTextDataBinaryStart',
166                \ 'cdrtocHeaderCDTextDataBinaryInteger',
167                \ '{')
169 call s:def_match('cdrtocHeaderCDTextDataBinaryInteger',
170                \ 'cdrtocHeaderCDTextDataBinarySeparator,cdrtocHeaderCDTextDataBinaryEnd',
171                \ s:byte_pattern)
173 call s:def_match('cdrtocHeaderCDTextDataBinarySeparator',
174                \ 'cdrtocHeaderCDTextDataBinaryInteger',
175                \ ',')
177 call s:def_match('cdrtocHeaderCDTextDataBinaryEnd',
178                \ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd',
179                \ '}')
181 call s:def_match('cdrtocHeaderLanguageEnd',
182                \ 'cdrtocHeaderLanguage,cdrtocHeaderCDTextEnd',
183                \ '}')
185 call s:def_match('cdrtocHeaderCDTextEnd',
186                \ 'cdrtocTrack',
187                \ '}')
189 syn cluster cdrtocTrackFollow
190       \ contains=
191       \   @cdrtocTrackFlags,
192       \   cdrtocTrackCDText,
193       \   cdrtocTrackPregap,
194       \   @cdrtocTrackContents
196 call s:def_keyword('cdrtocTrack', 'cdrtocTrackMode', 'TRACK')
198 call s:def_keywords('cdrtocTrackMode',
199                   \ 'cdrtocTrackSubChannelMode,@cdrtocTrackFollow',
200                   \ ['AUDIO', 'MODE1', 'MODE1_RAW', 'MODE2', 'MODE2_FORM1',
201                   \  'MODE2_FORM2', 'MODE2_FORM_MIX', 'MODE2_RAW'])
203 call s:def_keywords('cdrtocTrackSubChannelMode',
204                   \ '@cdrtocTrackFollow',
205                   \ ['RW', 'RW_RAW'])
207 syn cluster cdrtocTrackFlags
208       \ contains=
209       \   cdrtocTrackFlagNo,
210       \   cdrtocTrackFlagCopy,
211       \   cdrtocTrackFlagPreEmphasis,
212       \   cdrtocTrackFlag
214 call s:def_keyword('cdrtocTrackFlagNo',
215                  \ 'cdrtocTrackFlagCopy,cdrtocTrackFlagPreEmphasis',
216                  \ 'NO')
218 call s:def_keyword('cdrtocTrackFlagCopy', '@cdrtocTrackFollow', 'COPY')
220 call s:def_keyword('cdrtocTrackFlagPreEmphasis', '@cdrtocTrackFollow', 'PRE_EMPHASIS')
222 call s:def_keywords('cdrtocTrackFlag',
223                   \ '@cdrtocTrackFollow',
224                   \ ['TWO_CHANNEL_AUDIO', 'FOUR_CHANNEL_AUDIO'])
226 call s:def_keyword('cdrtocTrackFlag', 'cdrtocTrackISRC', 'ISRC')
228 call s:def_match('cdrtocTrackISRC',
229                \ '@cdrtocTrackFollow',
230                \ '"[[:upper:][:digit:]]\{5}\d\{7}"')
232 call s:def_keyword('cdrtocTrackCDText', 'cdrtocTrackCDTextStart', 'CD_TEXT')
234 call s:def_match('cdrtocTrackCDTextStart', 'cdrtocTrackCDTextLanguage', '{')
236 call s:def_keyword('cdrtocTrackCDTextLanguage', 'cdrtocTrackCDTextLanguageNumber', 'LANGUAGE')
238 call s:def_match('cdrtocTrackCDTextLanguageNumber', 'cdrtocTrackCDTextLanguageStart', '\<[0-7]\>')
240 call s:def_match('cdrtocTrackCDTextLanguageStart',
241                \ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd',
242                \ '{')
244 syn cluster cdrtocTrackCDTextData
245       \ contains=
246       \   cdrtocTrackCDTextDataString,
247       \   cdrtocTrackCDTextDataBinaryStart
249 call s:def_keywords('cdrtocTrackCDTextItem',
250                   \ '@cdrtocTrackCDTextData',
251                   \ ['TITLE', 'PERFORMER', 'SONGWRITER', 'COMPOSER', 'ARRANGER',
252                   \  'MESSAGE', 'ISRC'])
254 call s:def_region('cdrtocTrackCDTextDataString',
255                 \ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd',
256                 \ '"',
257                 \ '\\\\\|\\"',
258                 \ '"',
259                 \ 'cdrtocTrackCDTextDataStringDelimiters',
260                 \ 'cdrtocTrackCDTextDataStringSpecialChar')
262 syn match   cdrtocTrackCDTextDataStringSpecialChar
263       \ contained
264       \ display
265       \ '\\\%(\o\o\o\|["\\]\)'
267 call s:def_match('cdrtocTrackCDTextDataBinaryStart',
268                \ 'cdrtocTrackCDTextDataBinaryInteger',
269                \ '{')
271 call s:def_match('cdrtocTrackCDTextDataBinaryInteger',
272                \ 'cdrtocTrackCDTextDataBinarySeparator,cdrtocTrackCDTextDataBinaryEnd',
273                \ s:byte_pattern)
275 call s:def_match('cdrtocTrackCDTextDataBinarySeparator',
276                \ 'cdrtocTrackCDTextDataBinaryInteger',
277                \ ',')
279 call s:def_match('cdrtocTrackCDTextDataBinaryEnd',
280                \ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd',
281                \ '}')
283 call s:def_match('cdrtocTrackCDTextLanguageEnd',
284                \ 'cdrtocTrackCDTextLanguage,cdrtocTrackCDTextEnd',
285                \ '}')
287 call s:def_match('cdrtocTrackCDTextEnd',
288                \ 'cdrtocTrackPregap,@cdrtocTrackContents',
289                \ '}')
291 call s:def_keyword('cdrtocTrackPregap', 'cdrtocTrackPregapMMSSFF', 'PREGAP')
293 call s:def_match('cdrtocTrackPregapMMSSFF',
294                \ '@cdrtocTrackContents',
295                \ s:mmssff_pattern)
297 syn cluster cdrtocTrackContents
298       \ contains=
299       \   cdrtocTrackSubTrack,
300       \   cdrtocTrackMarker
302 syn cluster cdrtocTrackContentsFollow
303       \ contains=
304       \   @cdrtocTrackContents,
305       \   cdrtocTrackIndex,
306       \   cdrtocTrack
308 call s:def_keywords('cdrtocTrackSubTrack',
309                   \ 'cdrtocTrackSubTrackFileFilename',
310                   \ ['FILE', 'AUDIOFILE'])
312 call s:def_region('cdrtocTrackSubTrackFileFilename',
313                 \ 'cdrtocTrackSubTrackFileStart',
314                 \ '"',
315                 \ '\\\\\|\\"',
316                 \ '"',
317                 \ 'cdrtocTrackSubTrackFileFilenameDelimiters',
318                 \ 'cdrtocTrackSubTrackFileFilenameSpecialChar')
320 syn match   cdrtocTrackSubTrackFileFilenameSpecialChar
321       \ contained
322       \ display
323       \ '\\\%(\o\o\o\|["\\]\)'
325 call s:def_match('cdrtocTrackSubTrackFileStart',
326                \ 'cdrtocTrackSubTrackFileLength,@cdrtocTrackContentsFollow',
327                \ s:length_pattern)
329 call s:def_match('cdrtocTrackSubTrackFileLength',
330                \ '@cdrtocTrackContentsFollow',
331                \ s:length_pattern)
333 call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackContentDatafileFilename', 'DATAFILE')
335 call s:def_region('cdrtocTrackSubTrackDatafileFilename',
336                 \ 'cdrtocTrackSubTrackDatafileLength',
337                 \ '"',
338                 \ '\\\\\|\\"',
339                 \ '"',
340                 \ 'cdrtocTrackSubTrackDatafileFilenameDelimiters',
341                 \ 'cdrtocTrackSubTrackDatafileFilenameSpecialChar')
343 syn match   cdrtocTrackSubTrackdatafileFilenameSpecialChar
344       \ contained
345       \ display
346       \ '\\\%(\o\o\o\|["\\]\)'
348 call s:def_match('cdrtocTrackDatafileLength',
349                \ '@cdrtocTrackContentsFollow',
350                \ s:length_pattern)
352 call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackContentFifoFilename', 'DATAFILE')
354 call s:def_region('cdrtocTrackSubTrackFifoFilename',
355                 \ 'cdrtocTrackSubTrackFifoLength',
356                 \ '"',
357                 \ '\\\\\|\\"',
358                 \ '"',
359                 \ 'cdrtocTrackSubTrackFifoFilenameDelimiters',
360                 \ 'cdrtocTrackSubTrackFifoFilenameSpecialChar')
362 syn match   cdrtocTrackSubTrackdatafileFilenameSpecialChar
363       \ contained
364       \ display
365       \ '\\\%(\o\o\o\|["\\]\)'
367 call s:def_match('cdrtocTrackFifoLength',
368                \ '@cdrtocTrackContentsFollow',
369                \ s:length_pattern)
371 call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackSilenceLength', 'SILENCE')
373 call s:def_match('cdrtocTrackSilenceLength',
374                \ '@cdrtocTrackContentsFollow',
375                \ s:length_pattern)
377 call s:def_keyword('cdrtocTrackSubTrack',
378                  \ 'cdrtocTrackSubTrackZeroDataMode,' .
379                  \ 'cdrtocTrackSubTrackZeroDataSubChannelMode,' .
380                  \ 'cdrtocTrackSubTrackZeroDataLength',
381                  \ 'ZERO')
383 call s:def_keywords('cdrtocTrackSubTrackZeroDataMode',
384                   \ 'cdrtocTrackSubTrackZeroSubChannelMode,cdrtocTrackSubTrackZeroDataLength',
385                   \ ['AUDIO', 'MODE1', 'MODE1_RAW', 'MODE2', 'MODE2_FORM1',
386                   \  'MODE2_FORM2', 'MODE2_FORM_MIX', 'MODE2_RAW'])
388 call s:def_keywords('cdrtocTrackSubTrackZeroDataSubChannelMode',
389                   \ 'cdrtocTrackSubTrackZeroDataLength',
390                   \ ['RW', 'RW_RAW'])
392 call s:def_match('cdrtocTrackSubTrackZeroDataLength',
393                \ '@cdrtocTrackContentsFollow',
394                \ s:length_pattern)
396 call s:def_keyword('cdrtocTrackMarker',
397                  \ '@cdrtocTrackContentsFollow,cdrtocTrackMarkerStartMMSSFF',
398                  \ 'START')
400 call s:def_match('cdrtocTrackMarkerStartMMSSFF',
401                \ '@cdrtocTrackContentsFollow',
402                \ s:mmssff_pattern)
404 call s:def_keyword('cdrtocTrackMarker',
405                  \ '@cdrtocTrackContentsFollow,cdrtocTrackMarkerEndMMSSFF',
406                  \ 'END')
408 call s:def_match('cdrtocTrackMarkerEndMMSSFF',
409                \ '@cdrtocTrackContentsFollow',
410                \ s:mmssff_pattern)
412 call s:def_keyword('cdrtocTrackIndex', 'cdrtocTrackIndexMMSSFF', 'INDEX')
414 call s:def_match('cdrtocTrackIndexMMSSFF',
415                \ 'cdrtocTrackIndex,cdrtocTrack',
416                \ s:mmssff_pattern)
418 delfunction s:def_region
419 delfunction s:def_match
420 delfunction s:def_keyword
421 delfunction s:def_keywords
422 delfunction s:def_comment
424 syn sync fromstart
426 hi def link cdrtocKeyword                                  Keyword
427 hi def link cdrtocHeaderKeyword                            cdrtocKeyword
428 hi def link cdrtocHeaderCDText                             cdrtocHeaderKeyword
429 hi def link cdrtocDelimiter                                Delimiter
430 hi def link cdrtocCDTextDataBinaryEnd                      cdrtocDelimiter
431 hi def link cdrtocHeaderCDTextDataBinaryEnd                cdrtocHeaderCDTextDataBinaryEnd
432 hi def link cdrtocNumber                                   Number
433 hi def link cdrtocCDTextDataBinaryInteger                  cdrtocNumber
434 hi def link cdrtocHeaderCDTextDataBinaryInteger            cdrtocCDTextDataBinaryInteger
435 hi def link cdrtocCDTextDataBinarySeparator                cdrtocDelimiter
436 hi def link cdrtocHeaderCDTextDataBinarySeparator          cdrtocCDTextDataBinarySeparator
437 hi def link cdrtocCDTextDataBinaryStart                    cdrtocDelimiter
438 hi def link cdrtocHeaderCDTextDataBinaryStart              cdrtocCDTextDataBinaryStart
439 hi def link cdrtocString                                   String
440 hi def link cdrtocCDTextDataString                         cdrtocString
441 hi def link cdrtocHeaderCDTextDataString                   cdrtocCDTextDataString
442 hi def link cdrtocCDTextDataStringDelimiters               cdrtocDelimiter
443 hi def link cdrtocHeaderCDTextDataStringDelimiters         cdrtocCDTextDataStringDelimiters
444 hi def link cdrtocCDTextDataStringSpecialChar              SpecialChar
445 hi def link cdrtocHeaderCDTextDataStringSpecialChar        cdrtocCDTextDataStringSpecialChar
446 hi def link cdrtocCDTextEnd                                cdrtocDelimiter
447 hi def link cdrtocHeaderCDTextEnd                          cdrtocCDTextEnd
448 hi def link cdrtocType                                     Type
449 hi def link cdrtocCDTextItem                               cdrtocType
450 hi def link cdrtocHeaderCDTextItem                         cdrtocCDTextItem
451 hi def link cdrtocHeaderCDTextLanguageMap                  cdrtocHeaderKeyword
452 hi def link cdrtocCDTextStart                              cdrtocDelimiter
453 hi def link cdrtocHeaderCDTextStart                        cdrtocCDTextStart
454 hi def link cdrtocHeaderCatalog                            cdrtocHeaderKeyword
455 hi def link cdrtocHeaderCatalogNumber                      cdrtocString
456 hi def link cdrtocComment                                  Comment
457 hi def link cdrtocHeaderCommentInitial                     cdrtocComment
458 hi def link cdrtocHeaderLanguage                           cdrtocKeyword
459 hi def link cdrtocLanguageEnd                              cdrtocDelimiter
460 hi def link cdrtocHeaderLanguageEnd                        cdrtocLanguageEnd
461 hi def link cdrtocHeaderLanguageMapColon                   cdrtocDelimiter
462 hi def link cdrtocIdentifier                               Identifier
463 hi def link cdrtocHeaderLanguageMapCountryCode             cdrtocNumber
464 hi def link cdrtocHeaderLanguageMapCountryCodeName         cdrtocIdentifier
465 hi def link cdrtocHeaderLanguageMapEnd                     cdrtocDelimiter
466 hi def link cdrtocHeaderLanguageMapLanguageNumber          cdrtocNumber
467 hi def link cdrtocHeaderLanguageMapStart                   cdrtocDelimiter
468 hi def link cdrtocLanguageNumber                           cdrtocNumber
469 hi def link cdrtocHeaderLanguageNumber                     cdrtocLanguageNumber
470 hi def link cdrtocLanguageStart                            cdrtocDelimiter
471 hi def link cdrtocHeaderLanguageStart                      cdrtocLanguageStart
472 hi def link cdrtocHeaderTOCType                            cdrtocType
473 hi def link cdrtocTodo                                     Todo
474 hi def link cdrtocTrackKeyword                             cdrtocKeyword
475 hi def link cdrtocTrack                                    cdrtocTrackKeyword
476 hi def link cdrtocTrackCDText                              cdrtocTrackKeyword
477 hi def link cdrtocTrackCDTextDataBinaryEnd                 cdrtocHeaderCDTextDataBinaryEnd
478 hi def link cdrtocTrackCDTextDataBinaryInteger             cdrtocHeaderCDTextDataBinaryInteger
479 hi def link cdrtocTrackCDTextDataBinarySeparator           cdrtocHeaderCDTextDataBinarySeparator
480 hi def link cdrtocTrackCDTextDataBinaryStart               cdrtocHeaderCDTextDataBinaryStart
481 hi def link cdrtocTrackCDTextDataString                    cdrtocHeaderCDTextDataString
482 hi def link cdrtocTrackCDTextDataStringDelimiters          cdrtocCDTextDataStringDelimiters
483 hi def link cdrtocTrackCDTextDataStringSpecialChar         cdrtocCDTextDataStringSpecialChar
484 hi def link cdrtocTrackCDTextEnd                           cdrtocCDTextEnd
485 hi def link cdrtocTrackCDTextItem                          cdrtocCDTextItem
486 hi def link cdrtocTrackCDTextStart                         cdrtocCDTextStart
487 hi def link cdrtocLength                                   cdrtocNumber
488 hi def link cdrtocTrackDatafileLength                      cdrtocLength
489 hi def link cdrtocTrackFifoLength                          cdrtocLength
490 hi def link cdrtocPreProc                                  PreProc
491 hi def link cdrtocTrackFlag                                cdrtocPreProc
492 hi def link cdrtocTrackFlagCopy                            cdrtocTrackFlag
493 hi def link cdrtocSpecial                                  Special
494 hi def link cdrtocTrackFlagNo                              cdrtocSpecial
495 hi def link cdrtocTrackFlagPreEmphasis                     cdrtocTrackFlag
496 hi def link cdrtocTrackISRC                                cdrtocTrackFlag
497 hi def link cdrtocTrackIndex                               cdrtocTrackKeyword
498 hi def link cdrtocMMSSFF                                   cdrtocLength
499 hi def link cdrtocTrackIndexMMSSFF                         cdrtocMMSSFF
500 hi def link cdrtocTrackCDTextLanguage                      cdrtocTrackKeyword
501 hi def link cdrtocTrackCDTextLanguageEnd                   cdrtocLanguageEnd
502 hi def link cdrtocTrackCDTextLanguageNumber                cdrtocLanguageNumber
503 hi def link cdrtocTrackCDTextLanguageStart                 cdrtocLanguageStart
504 hi def link cdrtocTrackContents                            StorageClass
505 hi def link cdrtocTrackMarker                              cdrtocTrackContents
506 hi def link cdrtocTrackMarkerEndMMSSFF                     cdrtocMMSSFF
507 hi def link cdrtocTrackMarkerStartMMSSFF                   cdrtocMMSSFF
508 hi def link cdrtocTrackMode                                Type
509 hi def link cdrtocTrackPregap                              cdrtocTrackContents
510 hi def link cdrtocTrackPregapMMSSFF                        cdrtocMMSSFF
511 hi def link cdrtocTrackSilenceLength                       cdrtocLength
512 hi def link cdrtocTrackSubChannelMode                      cdrtocPreProc
513 hi def link cdrtocTrackSubTrack                            cdrtocTrackContents
514 hi def link cdrtocFilename                                 cdrtocString
515 hi def link cdrtocTrackSubTrackDatafileFilename            cdrtocFilename
516 hi def link cdrtocTrackSubTrackDatafileFilenameDelimiters  cdrtocTrackSubTrackDatafileFilename
517 hi def link cdrtocSpecialChar                              SpecialChar
518 hi def link cdrtocTrackSubTrackDatafileFilenameSpecialChar cdrtocSpecialChar
519 hi def link cdrtocTrackSubTrackDatafileLength              cdrtocLength
520 hi def link cdrtocTrackSubTrackFifoFilename                cdrtocFilename
521 hi def link cdrtocTrackSubTrackFifoFilenameDelimiters      cdrtocTrackSubTrackFifoFilename
522 hi def link cdrtocTrackSubTrackFifoFilenameSpecialChar     cdrtocSpecialChar
523 hi def link cdrtocTrackSubTrackFifoLength                  cdrtocLength
524 hi def link cdrtocTrackSubTrackFileFilename                cdrtocFilename
525 hi def link cdrtocTrackSubTrackFileFilenameDelimiters      cdrtocTrackSubTrackFileFilename
526 hi def link cdrtocTrackSubTrackFileFilenameSpecialChar     cdrtocSpecialChar
527 hi def link cdrtocTrackSubTrackFileLength                  cdrtocLength
528 hi def link cdrtocTrackSubTrackFileStart                   cdrtocLength
529 hi def link cdrtocTrackSubTrackZeroDataLength              cdrtocLength
530 hi def link cdrtocTrackSubTrackZeroDataMode                Type
531 hi def link cdrtocTrackSubTrackZeroDataSubChannelMode      cdrtocPreProc
532 hi def link cdrtocTrackSubTrackdatafileFilenameSpecialChar cdrtocSpecialChar
534 let b:current_syntax = "cdrtoc"
536 let &cpo = s:cpo_save
537 unlet s:cpo_save