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")
13 syn keyword cdrtocTodo
20 syn cluster cdrtocCommentContents
25 syn cluster cdrtocHeaderFollowsInitial
27 \ cdrtocHeaderCommentInitial,
28 \ cdrtocHeaderCatalog,
29 \ cdrtocHeaderTOCType,
33 syn match cdrtocHeaderBegin
34 \ nextgroup=@cdrtocHeaderFollowsInitial
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'
49 execute 'hi def link' a:name 'cdrtocComment'
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'
60 call s:def_comment(comment_group, a:nextgroup)
63 function s:def_keyword(name, nextgroup, keyword)
64 call s:def_keywords(a:name, a:nextgroup, [a:keyword])
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'
74 \ '@' . a:pattern . '@'
76 call s:def_comment(comment_group, a:nextgroup)
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'
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)
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
118 \ cdrtocHeaderLanguageMapLanguageNumber,
119 \ cdrtocHeaderLanguageMapEnd
121 call s:def_match('cdrtocHeaderLanguageMapCountryCode',
122 \ '@cdrtocHeaderLanguageMapCountryCodeFollow',
125 call s:def_keyword('cdrtocHeaderLanguageMapCountryCodeName',
126 \ '@cdrtocHeaderLanguageMapCountryCodeFollow',
129 call s:def_match('cdrtocHeaderLanguageMapEnd',
130 \ 'cdrtocHeaderLanguage,cdrtocHeaderCDTextEnd',
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',
141 syn cluster cdrtocHeaderCDTextData
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',
157 \ 'cdrtocHeaderCDTextDataStringDelimiters',
158 \ 'cdrtocHeaderCDTextDataStringSpecialChar')
160 syn match cdrtocHeaderCDTextDataStringSpecialChar
163 \ '\\\%(\o\o\o\|["\\]\)'
165 call s:def_match('cdrtocHeaderCDTextDataBinaryStart',
166 \ 'cdrtocHeaderCDTextDataBinaryInteger',
169 call s:def_match('cdrtocHeaderCDTextDataBinaryInteger',
170 \ 'cdrtocHeaderCDTextDataBinarySeparator,cdrtocHeaderCDTextDataBinaryEnd',
173 call s:def_match('cdrtocHeaderCDTextDataBinarySeparator',
174 \ 'cdrtocHeaderCDTextDataBinaryInteger',
177 call s:def_match('cdrtocHeaderCDTextDataBinaryEnd',
178 \ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd',
181 call s:def_match('cdrtocHeaderLanguageEnd',
182 \ 'cdrtocHeaderLanguage,cdrtocHeaderCDTextEnd',
185 call s:def_match('cdrtocHeaderCDTextEnd',
189 syn cluster cdrtocTrackFollow
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',
207 syn cluster cdrtocTrackFlags
210 \ cdrtocTrackFlagCopy,
211 \ cdrtocTrackFlagPreEmphasis,
214 call s:def_keyword('cdrtocTrackFlagNo',
215 \ 'cdrtocTrackFlagCopy,cdrtocTrackFlagPreEmphasis',
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',
244 syn cluster cdrtocTrackCDTextData
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',
259 \ 'cdrtocTrackCDTextDataStringDelimiters',
260 \ 'cdrtocTrackCDTextDataStringSpecialChar')
262 syn match cdrtocTrackCDTextDataStringSpecialChar
265 \ '\\\%(\o\o\o\|["\\]\)'
267 call s:def_match('cdrtocTrackCDTextDataBinaryStart',
268 \ 'cdrtocTrackCDTextDataBinaryInteger',
271 call s:def_match('cdrtocTrackCDTextDataBinaryInteger',
272 \ 'cdrtocTrackCDTextDataBinarySeparator,cdrtocTrackCDTextDataBinaryEnd',
275 call s:def_match('cdrtocTrackCDTextDataBinarySeparator',
276 \ 'cdrtocTrackCDTextDataBinaryInteger',
279 call s:def_match('cdrtocTrackCDTextDataBinaryEnd',
280 \ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd',
283 call s:def_match('cdrtocTrackCDTextLanguageEnd',
284 \ 'cdrtocTrackCDTextLanguage,cdrtocTrackCDTextEnd',
287 call s:def_match('cdrtocTrackCDTextEnd',
288 \ 'cdrtocTrackPregap,@cdrtocTrackContents',
291 call s:def_keyword('cdrtocTrackPregap', 'cdrtocTrackPregapMMSSFF', 'PREGAP')
293 call s:def_match('cdrtocTrackPregapMMSSFF',
294 \ '@cdrtocTrackContents',
297 syn cluster cdrtocTrackContents
299 \ cdrtocTrackSubTrack,
302 syn cluster cdrtocTrackContentsFollow
304 \ @cdrtocTrackContents,
308 call s:def_keywords('cdrtocTrackSubTrack',
309 \ 'cdrtocTrackSubTrackFileFilename',
310 \ ['FILE', 'AUDIOFILE'])
312 call s:def_region('cdrtocTrackSubTrackFileFilename',
313 \ 'cdrtocTrackSubTrackFileStart',
317 \ 'cdrtocTrackSubTrackFileFilenameDelimiters',
318 \ 'cdrtocTrackSubTrackFileFilenameSpecialChar')
320 syn match cdrtocTrackSubTrackFileFilenameSpecialChar
323 \ '\\\%(\o\o\o\|["\\]\)'
325 call s:def_match('cdrtocTrackSubTrackFileStart',
326 \ 'cdrtocTrackSubTrackFileLength,@cdrtocTrackContentsFollow',
329 call s:def_match('cdrtocTrackSubTrackFileLength',
330 \ '@cdrtocTrackContentsFollow',
333 call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackContentDatafileFilename', 'DATAFILE')
335 call s:def_region('cdrtocTrackSubTrackDatafileFilename',
336 \ 'cdrtocTrackSubTrackDatafileLength',
340 \ 'cdrtocTrackSubTrackDatafileFilenameDelimiters',
341 \ 'cdrtocTrackSubTrackDatafileFilenameSpecialChar')
343 syn match cdrtocTrackSubTrackdatafileFilenameSpecialChar
346 \ '\\\%(\o\o\o\|["\\]\)'
348 call s:def_match('cdrtocTrackDatafileLength',
349 \ '@cdrtocTrackContentsFollow',
352 call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackContentFifoFilename', 'DATAFILE')
354 call s:def_region('cdrtocTrackSubTrackFifoFilename',
355 \ 'cdrtocTrackSubTrackFifoLength',
359 \ 'cdrtocTrackSubTrackFifoFilenameDelimiters',
360 \ 'cdrtocTrackSubTrackFifoFilenameSpecialChar')
362 syn match cdrtocTrackSubTrackdatafileFilenameSpecialChar
365 \ '\\\%(\o\o\o\|["\\]\)'
367 call s:def_match('cdrtocTrackFifoLength',
368 \ '@cdrtocTrackContentsFollow',
371 call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackSilenceLength', 'SILENCE')
373 call s:def_match('cdrtocTrackSilenceLength',
374 \ '@cdrtocTrackContentsFollow',
377 call s:def_keyword('cdrtocTrackSubTrack',
378 \ 'cdrtocTrackSubTrackZeroDataMode,' .
379 \ 'cdrtocTrackSubTrackZeroDataSubChannelMode,' .
380 \ 'cdrtocTrackSubTrackZeroDataLength',
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',
392 call s:def_match('cdrtocTrackSubTrackZeroDataLength',
393 \ '@cdrtocTrackContentsFollow',
396 call s:def_keyword('cdrtocTrackMarker',
397 \ '@cdrtocTrackContentsFollow,cdrtocTrackMarkerStartMMSSFF',
400 call s:def_match('cdrtocTrackMarkerStartMMSSFF',
401 \ '@cdrtocTrackContentsFollow',
404 call s:def_keyword('cdrtocTrackMarker',
405 \ '@cdrtocTrackContentsFollow,cdrtocTrackMarkerEndMMSSFF',
408 call s:def_match('cdrtocTrackMarkerEndMMSSFF',
409 \ '@cdrtocTrackContentsFollow',
412 call s:def_keyword('cdrtocTrackIndex', 'cdrtocTrackIndexMMSSFF', 'INDEX')
414 call s:def_match('cdrtocTrackIndexMMSSFF',
415 \ 'cdrtocTrackIndex,cdrtocTrack',
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
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