neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

cdrtoc.vim (22756B)


      1 " Vim syntax file
      2 " Language:             cdrdao(1) TOC file
      3 " Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
      4 " Latest Revision:      2007-05-10
      5 
      6 if exists("b:current_syntax")
      7  finish
      8 endif
      9 
     10 let s:cpo_save = &cpo
     11 set cpo&vim
     12 
     13 syn keyword cdrtocTodo
     14      \ contained
     15      \ TODO
     16      \ FIXME
     17      \ XXX
     18      \ NOTE
     19 
     20 syn cluster cdrtocCommentContents
     21      \ contains=
     22      \   cdrtocTodo,
     23      \   @Spell
     24 
     25 syn cluster cdrtocHeaderFollowsInitial
     26      \ contains=
     27      \   cdrtocHeaderCommentInitial,
     28      \   cdrtocHeaderCatalog,
     29      \   cdrtocHeaderTOCType,
     30      \   cdrtocHeaderCDText,
     31      \   cdrtocTrack
     32 
     33 syn match   cdrtocHeaderBegin
     34      \ nextgroup=@cdrtocHeaderFollowsInitial
     35      \ skipwhite skipempty
     36      \ '\%^'
     37 
     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\+\)\>'
     41 
     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
     51 
     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)
     59 
     60  call s:def_comment(comment_group, a:nextgroup)
     61 endfunction
     62 
     63 function s:def_keyword(name, nextgroup, keyword)
     64  call s:def_keywords(a:name, a:nextgroup, [a:keyword])
     65 endfunction
     66 
     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 . '@'
     75 
     76  call s:def_comment(comment_group, a:nextgroup)
     77 endfunction
     78 
     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 . '@'
     90 
     91  call s:def_comment(comment_group, a:nextgroup)
     92 endfunction
     93 
     94 call s:def_comment('cdrtocHeaderCommentInitial', '@cdrtocHeaderFollowsInitial')
     95 
     96 call s:def_keyword('cdrtocHeaderCatalog', 'cdrtocHeaderCatalogNumber', 'CATALOG')
     97 
     98 call s:def_match('cdrtocHeaderCatalogNumber', '@cdrtocHeaderFollowsInitial', '"\d\{13\}"')
     99 
    100 call s:def_keywords('cdrtocHeaderTOCType', '@cdrtocHeaderFollowsInitial', ['CD_DA', 'CD_ROM', 'CD_ROM_XA'])
    101 
    102 call 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).
    106 call s:def_match('cdrtocHeaderCDTextStart', 'cdrtocHeaderCDTextLanguageMap', '{')
    107 
    108 call s:def_keyword('cdrtocHeaderCDTextLanguageMap', 'cdrtocHeaderLanguageMapStart', 'LANGUAGE_MAP')
    109 
    110 call s:def_match('cdrtocHeaderLanguageMapStart', 'cdrtocHeaderLanguageMapLanguageNumber', '{')
    111 
    112 call s:def_match('cdrtocHeaderLanguageMapLanguageNumber', 'cdrtocHeaderLanguageMapColon', '\<[0-7]\>')
    113 
    114 call s:def_match('cdrtocHeaderLanguageMapColon', 'cdrtocHeaderLanguageMapCountryCode,cdrtocHeaderLanguageMapCountryCodeName', ':')
    115 
    116 syn cluster cdrtocHeaderLanguageMapCountryCodeFollow
    117      \ contains=
    118      \   cdrtocHeaderLanguageMapLanguageNumber,
    119      \   cdrtocHeaderLanguageMapEnd
    120 
    121 call s:def_match('cdrtocHeaderLanguageMapCountryCode',
    122               \ '@cdrtocHeaderLanguageMapCountryCodeFollow',
    123               \ s:byte_pattern)
    124 
    125 call s:def_keyword('cdrtocHeaderLanguageMapCountryCodeName',
    126                 \ '@cdrtocHeaderLanguageMapCountryCodeFollow',
    127                 \ 'EN')
    128 
    129 call s:def_match('cdrtocHeaderLanguageMapEnd',
    130               \ 'cdrtocHeaderLanguage,cdrtocHeaderCDTextEnd',
    131               \ '}')
    132 
    133 call s:def_keyword('cdrtocHeaderLanguage', 'cdrtocHeaderLanguageNumber', 'LANGUAGE')
    134 
    135 call s:def_match('cdrtocHeaderLanguageNumber', 'cdrtocHeaderLanguageStart', '\<[0-7]\>')
    136 
    137 call s:def_match('cdrtocHeaderLanguageStart',
    138               \ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd',
    139               \ '{')
    140 
    141 syn cluster cdrtocHeaderCDTextData
    142      \ contains=
    143      \   cdrtocHeaderCDTextDataString,
    144      \   cdrtocHeaderCDTextDataBinaryStart
    145 
    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'])
    151 
    152 call s:def_region('cdrtocHeaderCDTextDataString',
    153                \ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd',
    154                \ '"',
    155                \ '\\\\\|\\"',
    156                \ '"',
    157                \ 'cdrtocHeaderCDTextDataStringDelimiters',
    158                \ 'cdrtocHeaderCDTextDataStringSpecialChar')
    159 
    160 syn match   cdrtocHeaderCDTextDataStringSpecialChar
    161      \ contained
    162      \ display
    163      \ '\\\%(\o\o\o\|["\\]\)'
    164 
    165 call s:def_match('cdrtocHeaderCDTextDataBinaryStart',
    166               \ 'cdrtocHeaderCDTextDataBinaryInteger',
    167               \ '{')
    168 
    169 call s:def_match('cdrtocHeaderCDTextDataBinaryInteger',
    170               \ 'cdrtocHeaderCDTextDataBinarySeparator,cdrtocHeaderCDTextDataBinaryEnd',
    171               \ s:byte_pattern)
    172 
    173 call s:def_match('cdrtocHeaderCDTextDataBinarySeparator',
    174               \ 'cdrtocHeaderCDTextDataBinaryInteger',
    175               \ ',')
    176 
    177 call s:def_match('cdrtocHeaderCDTextDataBinaryEnd',
    178               \ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd',
    179               \ '}')
    180 
    181 call s:def_match('cdrtocHeaderLanguageEnd',
    182               \ 'cdrtocHeaderLanguage,cdrtocHeaderCDTextEnd',
    183               \ '}')
    184 
    185 call s:def_match('cdrtocHeaderCDTextEnd',
    186               \ 'cdrtocTrack',
    187               \ '}')
    188 
    189 syn cluster cdrtocTrackFollow
    190      \ contains=
    191      \   @cdrtocTrackFlags,
    192      \   cdrtocTrackCDText,
    193      \   cdrtocTrackPregap,
    194      \   @cdrtocTrackContents
    195 
    196 call s:def_keyword('cdrtocTrack', 'cdrtocTrackMode', 'TRACK')
    197 
    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'])
    202 
    203 call s:def_keywords('cdrtocTrackSubChannelMode',
    204                  \ '@cdrtocTrackFollow',
    205                  \ ['RW', 'RW_RAW'])
    206 
    207 syn cluster cdrtocTrackFlags
    208      \ contains=
    209      \   cdrtocTrackFlagNo,
    210      \   cdrtocTrackFlagCopy,
    211      \   cdrtocTrackFlagPreEmphasis,
    212      \   cdrtocTrackFlag
    213 
    214 call s:def_keyword('cdrtocTrackFlagNo',
    215                 \ 'cdrtocTrackFlagCopy,cdrtocTrackFlagPreEmphasis',
    216                 \ 'NO')
    217 
    218 call s:def_keyword('cdrtocTrackFlagCopy', '@cdrtocTrackFollow', 'COPY')
    219 
    220 call s:def_keyword('cdrtocTrackFlagPreEmphasis', '@cdrtocTrackFollow', 'PRE_EMPHASIS')
    221 
    222 call s:def_keywords('cdrtocTrackFlag',
    223                  \ '@cdrtocTrackFollow',
    224                  \ ['TWO_CHANNEL_AUDIO', 'FOUR_CHANNEL_AUDIO'])
    225 
    226 call s:def_keyword('cdrtocTrackFlag', 'cdrtocTrackISRC', 'ISRC')
    227 
    228 call s:def_match('cdrtocTrackISRC',
    229               \ '@cdrtocTrackFollow',
    230               \ '"[[:upper:][:digit:]]\{5}\d\{7}"')
    231 
    232 call s:def_keyword('cdrtocTrackCDText', 'cdrtocTrackCDTextStart', 'CD_TEXT')
    233 
    234 call s:def_match('cdrtocTrackCDTextStart', 'cdrtocTrackCDTextLanguage', '{')
    235 
    236 call s:def_keyword('cdrtocTrackCDTextLanguage', 'cdrtocTrackCDTextLanguageNumber', 'LANGUAGE')
    237 
    238 call s:def_match('cdrtocTrackCDTextLanguageNumber', 'cdrtocTrackCDTextLanguageStart', '\<[0-7]\>')
    239 
    240 call s:def_match('cdrtocTrackCDTextLanguageStart',
    241               \ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd',
    242               \ '{')
    243 
    244 syn cluster cdrtocTrackCDTextData
    245      \ contains=
    246      \   cdrtocTrackCDTextDataString,
    247      \   cdrtocTrackCDTextDataBinaryStart
    248 
    249 call s:def_keywords('cdrtocTrackCDTextItem',
    250                  \ '@cdrtocTrackCDTextData',
    251                  \ ['TITLE', 'PERFORMER', 'SONGWRITER', 'COMPOSER', 'ARRANGER',
    252                  \  'MESSAGE', 'ISRC'])
    253 
    254 call s:def_region('cdrtocTrackCDTextDataString',
    255                \ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd',
    256                \ '"',
    257                \ '\\\\\|\\"',
    258                \ '"',
    259                \ 'cdrtocTrackCDTextDataStringDelimiters',
    260                \ 'cdrtocTrackCDTextDataStringSpecialChar')
    261 
    262 syn match   cdrtocTrackCDTextDataStringSpecialChar
    263      \ contained
    264      \ display
    265      \ '\\\%(\o\o\o\|["\\]\)'
    266 
    267 call s:def_match('cdrtocTrackCDTextDataBinaryStart',
    268               \ 'cdrtocTrackCDTextDataBinaryInteger',
    269               \ '{')
    270 
    271 call s:def_match('cdrtocTrackCDTextDataBinaryInteger',
    272               \ 'cdrtocTrackCDTextDataBinarySeparator,cdrtocTrackCDTextDataBinaryEnd',
    273               \ s:byte_pattern)
    274 
    275 call s:def_match('cdrtocTrackCDTextDataBinarySeparator',
    276               \ 'cdrtocTrackCDTextDataBinaryInteger',
    277               \ ',')
    278 
    279 call s:def_match('cdrtocTrackCDTextDataBinaryEnd',
    280               \ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd',
    281               \ '}')
    282 
    283 call s:def_match('cdrtocTrackCDTextLanguageEnd',
    284               \ 'cdrtocTrackCDTextLanguage,cdrtocTrackCDTextEnd',
    285               \ '}')
    286 
    287 call s:def_match('cdrtocTrackCDTextEnd',
    288               \ 'cdrtocTrackPregap,@cdrtocTrackContents',
    289               \ '}')
    290 
    291 call s:def_keyword('cdrtocTrackPregap', 'cdrtocTrackPregapMMSSFF', 'PREGAP')
    292 
    293 call s:def_match('cdrtocTrackPregapMMSSFF',
    294               \ '@cdrtocTrackContents',
    295               \ s:mmssff_pattern)
    296 
    297 syn cluster cdrtocTrackContents
    298      \ contains=
    299      \   cdrtocTrackSubTrack,
    300      \   cdrtocTrackMarker
    301 
    302 syn cluster cdrtocTrackContentsFollow
    303      \ contains=
    304      \   @cdrtocTrackContents,
    305      \   cdrtocTrackIndex,
    306      \   cdrtocTrack
    307 
    308 call s:def_keywords('cdrtocTrackSubTrack',
    309                  \ 'cdrtocTrackSubTrackFileFilename',
    310                  \ ['FILE', 'AUDIOFILE'])
    311 
    312 call s:def_region('cdrtocTrackSubTrackFileFilename',
    313                \ 'cdrtocTrackSubTrackFileStart',
    314                \ '"',
    315                \ '\\\\\|\\"',
    316                \ '"',
    317                \ 'cdrtocTrackSubTrackFileFilenameDelimiters',
    318                \ 'cdrtocTrackSubTrackFileFilenameSpecialChar')
    319 
    320 syn match   cdrtocTrackSubTrackFileFilenameSpecialChar
    321      \ contained
    322      \ display
    323      \ '\\\%(\o\o\o\|["\\]\)'
    324 
    325 call s:def_match('cdrtocTrackSubTrackFileStart',
    326               \ 'cdrtocTrackSubTrackFileLength,@cdrtocTrackContentsFollow',
    327               \ s:length_pattern)
    328 
    329 call s:def_match('cdrtocTrackSubTrackFileLength',
    330               \ '@cdrtocTrackContentsFollow',
    331               \ s:length_pattern)
    332 
    333 call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackContentDatafileFilename', 'DATAFILE')
    334 
    335 call s:def_region('cdrtocTrackSubTrackDatafileFilename',
    336                \ 'cdrtocTrackSubTrackDatafileLength',
    337                \ '"',
    338                \ '\\\\\|\\"',
    339                \ '"',
    340                \ 'cdrtocTrackSubTrackDatafileFilenameDelimiters',
    341                \ 'cdrtocTrackSubTrackDatafileFilenameSpecialChar')
    342 
    343 syn match   cdrtocTrackSubTrackdatafileFilenameSpecialChar
    344      \ contained
    345      \ display
    346      \ '\\\%(\o\o\o\|["\\]\)'
    347 
    348 call s:def_match('cdrtocTrackDatafileLength',
    349               \ '@cdrtocTrackContentsFollow',
    350               \ s:length_pattern)
    351 
    352 call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackContentFifoFilename', 'DATAFILE')
    353 
    354 call s:def_region('cdrtocTrackSubTrackFifoFilename',
    355                \ 'cdrtocTrackSubTrackFifoLength',
    356                \ '"',
    357                \ '\\\\\|\\"',
    358                \ '"',
    359                \ 'cdrtocTrackSubTrackFifoFilenameDelimiters',
    360                \ 'cdrtocTrackSubTrackFifoFilenameSpecialChar')
    361 
    362 syn match   cdrtocTrackSubTrackdatafileFilenameSpecialChar
    363      \ contained
    364      \ display
    365      \ '\\\%(\o\o\o\|["\\]\)'
    366 
    367 call s:def_match('cdrtocTrackFifoLength',
    368               \ '@cdrtocTrackContentsFollow',
    369               \ s:length_pattern)
    370 
    371 call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackSilenceLength', 'SILENCE')
    372 
    373 call s:def_match('cdrtocTrackSilenceLength',
    374               \ '@cdrtocTrackContentsFollow',
    375               \ s:length_pattern)
    376 
    377 call s:def_keyword('cdrtocTrackSubTrack',
    378                 \ 'cdrtocTrackSubTrackZeroDataMode,' .
    379                 \ 'cdrtocTrackSubTrackZeroDataSubChannelMode,' .
    380                 \ 'cdrtocTrackSubTrackZeroDataLength',
    381                 \ 'ZERO')
    382 
    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'])
    387 
    388 call s:def_keywords('cdrtocTrackSubTrackZeroDataSubChannelMode',
    389                  \ 'cdrtocTrackSubTrackZeroDataLength',
    390                  \ ['RW', 'RW_RAW'])
    391 
    392 call s:def_match('cdrtocTrackSubTrackZeroDataLength',
    393               \ '@cdrtocTrackContentsFollow',
    394               \ s:length_pattern)
    395 
    396 call s:def_keyword('cdrtocTrackMarker',
    397                 \ '@cdrtocTrackContentsFollow,cdrtocTrackMarkerStartMMSSFF',
    398                 \ 'START')
    399 
    400 call s:def_match('cdrtocTrackMarkerStartMMSSFF',
    401               \ '@cdrtocTrackContentsFollow',
    402               \ s:mmssff_pattern)
    403 
    404 call s:def_keyword('cdrtocTrackMarker',
    405                 \ '@cdrtocTrackContentsFollow,cdrtocTrackMarkerEndMMSSFF',
    406                 \ 'END')
    407 
    408 call s:def_match('cdrtocTrackMarkerEndMMSSFF',
    409               \ '@cdrtocTrackContentsFollow',
    410               \ s:mmssff_pattern)
    411 
    412 call s:def_keyword('cdrtocTrackIndex', 'cdrtocTrackIndexMMSSFF', 'INDEX')
    413 
    414 call s:def_match('cdrtocTrackIndexMMSSFF',
    415               \ 'cdrtocTrackIndex,cdrtocTrack',
    416               \ s:mmssff_pattern)
    417 
    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
    423 
    424 syn sync fromstart
    425 
    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
    533 
    534 let b:current_syntax = "cdrtoc"
    535 
    536 let &cpo = s:cpo_save
    537 unlet s:cpo_save