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