cdrtoc.vim 22 KB

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