2014-07-10 21:05:51 -07:00
|
|
|
|
" Vim syntax file
|
2017-11-05 21:05:54 -07:00
|
|
|
|
" Language: cdrdao(1) TOC file
|
|
|
|
|
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
|
|
|
|
" Latest Revision: 2007-05-10
|
2014-07-10 21:05:51 -07:00
|
|
|
|
|
|
|
|
|
if exists("b:current_syntax")
|
|
|
|
|
finish
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
let s:cpo_save = &cpo
|
|
|
|
|
set cpo&vim
|
|
|
|
|
|
|
|
|
|
syn keyword cdrtocTodo
|
|
|
|
|
\ contained
|
|
|
|
|
\ TODO
|
|
|
|
|
\ FIXME
|
|
|
|
|
\ XXX
|
|
|
|
|
\ NOTE
|
|
|
|
|
|
|
|
|
|
syn cluster cdrtocCommentContents
|
|
|
|
|
\ contains=
|
|
|
|
|
\ cdrtocTodo,
|
|
|
|
|
\ @Spell
|
|
|
|
|
|
|
|
|
|
syn cluster cdrtocHeaderFollowsInitial
|
|
|
|
|
\ contains=
|
|
|
|
|
\ cdrtocHeaderCommentInitial,
|
|
|
|
|
\ cdrtocHeaderCatalog,
|
|
|
|
|
\ cdrtocHeaderTOCType,
|
|
|
|
|
\ cdrtocHeaderCDText,
|
|
|
|
|
\ cdrtocTrack
|
|
|
|
|
|
|
|
|
|
syn match cdrtocHeaderBegin
|
|
|
|
|
\ nextgroup=@cdrtocHeaderFollowsInitial
|
|
|
|
|
\ skipwhite skipempty
|
|
|
|
|
\ '\%^'
|
|
|
|
|
|
|
|
|
|
let s:mmssff_pattern = '\%([0-5]\d\|\d\):\%([0-5]\d\|\d\):\%([0-6]\d\|7[0-5]\|\d\)\>'
|
|
|
|
|
let s:byte_pattern = '\<\%([01]\=\d\{1,2}\|2\%([0-4]\d\|5[0-5]\)\)\>'
|
|
|
|
|
let s:length_pattern = '\%(\%([0-5]\d\|\d\):\%([0-5]\d\|\d\):\%([0-6]\d\|7[0-5]\|\d\)\|\d\+\)\>'
|
|
|
|
|
|
|
|
|
|
function s:def_comment(name, nextgroup)
|
|
|
|
|
execute 'syn match' a:name
|
|
|
|
|
\ 'nextgroup=' . a:nextgroup . ',' . a:name
|
|
|
|
|
\ 'skipwhite skipempty'
|
|
|
|
|
\ 'contains=@cdrtocCommentContents'
|
|
|
|
|
\ 'contained'
|
|
|
|
|
\ "'//.*$'"
|
|
|
|
|
execute 'hi def link' a:name 'cdrtocComment'
|
|
|
|
|
endfunction
|
|
|
|
|
|
|
|
|
|
function s:def_keywords(name, nextgroup, keywords)
|
|
|
|
|
let comment_group = a:name . 'FollowComment'
|
|
|
|
|
execute 'syn keyword' a:name
|
|
|
|
|
\ 'nextgroup=' . a:nextgroup . ',' . comment_group
|
|
|
|
|
\ 'skipwhite skipempty'
|
|
|
|
|
\ 'contained'
|
|
|
|
|
\ join(a:keywords)
|
|
|
|
|
|
|
|
|
|
call s:def_comment(comment_group, a:nextgroup)
|
|
|
|
|
endfunction
|
|
|
|
|
|
|
|
|
|
function s:def_keyword(name, nextgroup, keyword)
|
|
|
|
|
call s:def_keywords(a:name, a:nextgroup, [a:keyword])
|
|
|
|
|
endfunction
|
|
|
|
|
|
|
|
|
|
" NOTE: Pattern needs to escape any “@”s.
|
|
|
|
|
function s:def_match(name, nextgroup, pattern)
|
|
|
|
|
let comment_group = a:name . 'FollowComment'
|
|
|
|
|
execute 'syn match' a:name
|
|
|
|
|
\ 'nextgroup=' . a:nextgroup . ',' . comment_group
|
|
|
|
|
\ 'skipwhite skipempty'
|
|
|
|
|
\ 'contained'
|
|
|
|
|
\ '@' . a:pattern . '@'
|
|
|
|
|
|
|
|
|
|
call s:def_comment(comment_group, a:nextgroup)
|
|
|
|
|
endfunction
|
|
|
|
|
|
|
|
|
|
function s:def_region(name, nextgroup, start, skip, end, matchgroup, contains)
|
|
|
|
|
let comment_group = a:name . 'FollowComment'
|
|
|
|
|
execute 'syn region' a:name
|
|
|
|
|
\ 'nextgroup=' . a:nextgroup . ',' . comment_group
|
|
|
|
|
\ 'skipwhite skipempty'
|
|
|
|
|
\ 'contained'
|
|
|
|
|
\ 'matchgroup=' . a:matchgroup
|
|
|
|
|
\ 'contains=' . a:contains
|
|
|
|
|
\ 'start=@' . a:start . '@'
|
|
|
|
|
\ (a:skip != "" ? ('skip=@' . a:skip . '@') : "")
|
|
|
|
|
\ 'end=@' . a:end . '@'
|
|
|
|
|
|
|
|
|
|
call s:def_comment(comment_group, a:nextgroup)
|
|
|
|
|
endfunction
|
|
|
|
|
|
|
|
|
|
call s:def_comment('cdrtocHeaderCommentInitial', '@cdrtocHeaderFollowsInitial')
|
|
|
|
|
|
|
|
|
|
call s:def_keyword('cdrtocHeaderCatalog', 'cdrtocHeaderCatalogNumber', 'CATALOG')
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocHeaderCatalogNumber', '@cdrtocHeaderFollowsInitial', '"\d\{13\}"')
|
|
|
|
|
|
|
|
|
|
call s:def_keywords('cdrtocHeaderTOCType', '@cdrtocHeaderFollowsInitial', ['CD_DA', 'CD_ROM', 'CD_ROM_XA'])
|
|
|
|
|
|
|
|
|
|
call s:def_keyword('cdrtocHeaderCDText', 'cdrtocHeaderCDTextStart', 'CD_TEXT')
|
|
|
|
|
|
|
|
|
|
" TODO: Actually, language maps aren’t required by TocParser.g, but let’s keep
|
|
|
|
|
" things simple (and in agreement with what the manual page says).
|
|
|
|
|
call s:def_match('cdrtocHeaderCDTextStart', 'cdrtocHeaderCDTextLanguageMap', '{')
|
|
|
|
|
|
|
|
|
|
call s:def_keyword('cdrtocHeaderCDTextLanguageMap', 'cdrtocHeaderLanguageMapStart', 'LANGUAGE_MAP')
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocHeaderLanguageMapStart', 'cdrtocHeaderLanguageMapLanguageNumber', '{')
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocHeaderLanguageMapLanguageNumber', 'cdrtocHeaderLanguageMapColon', '\<[0-7]\>')
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocHeaderLanguageMapColon', 'cdrtocHeaderLanguageMapCountryCode,cdrtocHeaderLanguageMapCountryCodeName', ':')
|
|
|
|
|
|
|
|
|
|
syn cluster cdrtocHeaderLanguageMapCountryCodeFollow
|
|
|
|
|
\ contains=
|
|
|
|
|
\ cdrtocHeaderLanguageMapLanguageNumber,
|
|
|
|
|
\ cdrtocHeaderLanguageMapEnd
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocHeaderLanguageMapCountryCode',
|
|
|
|
|
\ '@cdrtocHeaderLanguageMapCountryCodeFollow',
|
|
|
|
|
\ s:byte_pattern)
|
|
|
|
|
|
|
|
|
|
call s:def_keyword('cdrtocHeaderLanguageMapCountryCodeName',
|
|
|
|
|
\ '@cdrtocHeaderLanguageMapCountryCodeFollow',
|
|
|
|
|
\ 'EN')
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocHeaderLanguageMapEnd',
|
|
|
|
|
\ 'cdrtocHeaderLanguage,cdrtocHeaderCDTextEnd',
|
|
|
|
|
\ '}')
|
|
|
|
|
|
|
|
|
|
call s:def_keyword('cdrtocHeaderLanguage', 'cdrtocHeaderLanguageNumber', 'LANGUAGE')
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocHeaderLanguageNumber', 'cdrtocHeaderLanguageStart', '\<[0-7]\>')
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocHeaderLanguageStart',
|
|
|
|
|
\ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd',
|
|
|
|
|
\ '{')
|
|
|
|
|
|
|
|
|
|
syn cluster cdrtocHeaderCDTextData
|
|
|
|
|
\ contains=
|
|
|
|
|
\ cdrtocHeaderCDTextDataString,
|
|
|
|
|
\ cdrtocHeaderCDTextDataBinaryStart
|
|
|
|
|
|
|
|
|
|
call s:def_keywords('cdrtocHeaderCDTextItem',
|
|
|
|
|
\ '@cdrtocHeaderCDTextData',
|
|
|
|
|
\ ['TITLE', 'PERFORMER', 'SONGWRITER', 'COMPOSER',
|
|
|
|
|
\ 'ARRANGER', 'MESSAGE', 'DISC_ID', 'GENRE', 'TOC_INFO1',
|
|
|
|
|
\ 'TOC_INFO2', 'UPC_EAN', 'ISRC', 'SIZE_INFO'])
|
|
|
|
|
|
|
|
|
|
call s:def_region('cdrtocHeaderCDTextDataString',
|
|
|
|
|
\ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd',
|
|
|
|
|
\ '"',
|
|
|
|
|
\ '\\\\\|\\"',
|
|
|
|
|
\ '"',
|
|
|
|
|
\ 'cdrtocHeaderCDTextDataStringDelimiters',
|
|
|
|
|
\ 'cdrtocHeaderCDTextDataStringSpecialChar')
|
|
|
|
|
|
|
|
|
|
syn match cdrtocHeaderCDTextDataStringSpecialChar
|
|
|
|
|
\ contained
|
|
|
|
|
\ display
|
|
|
|
|
\ '\\\%(\o\o\o\|["\\]\)'
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocHeaderCDTextDataBinaryStart',
|
|
|
|
|
\ 'cdrtocHeaderCDTextDataBinaryInteger',
|
|
|
|
|
\ '{')
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocHeaderCDTextDataBinaryInteger',
|
|
|
|
|
\ 'cdrtocHeaderCDTextDataBinarySeparator,cdrtocHeaderCDTextDataBinaryEnd',
|
|
|
|
|
\ s:byte_pattern)
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocHeaderCDTextDataBinarySeparator',
|
|
|
|
|
\ 'cdrtocHeaderCDTextDataBinaryInteger',
|
|
|
|
|
\ ',')
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocHeaderCDTextDataBinaryEnd',
|
|
|
|
|
\ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd',
|
|
|
|
|
\ '}')
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocHeaderLanguageEnd',
|
|
|
|
|
\ 'cdrtocHeaderLanguage,cdrtocHeaderCDTextEnd',
|
|
|
|
|
\ '}')
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocHeaderCDTextEnd',
|
|
|
|
|
\ 'cdrtocTrack',
|
|
|
|
|
\ '}')
|
|
|
|
|
|
|
|
|
|
syn cluster cdrtocTrackFollow
|
|
|
|
|
\ contains=
|
|
|
|
|
\ @cdrtocTrackFlags,
|
|
|
|
|
\ cdrtocTrackCDText,
|
|
|
|
|
\ cdrtocTrackPregap,
|
|
|
|
|
\ @cdrtocTrackContents
|
|
|
|
|
|
|
|
|
|
call s:def_keyword('cdrtocTrack', 'cdrtocTrackMode', 'TRACK')
|
|
|
|
|
|
|
|
|
|
call s:def_keywords('cdrtocTrackMode',
|
|
|
|
|
\ 'cdrtocTrackSubChannelMode,@cdrtocTrackFollow',
|
|
|
|
|
\ ['AUDIO', 'MODE1', 'MODE1_RAW', 'MODE2', 'MODE2_FORM1',
|
|
|
|
|
\ 'MODE2_FORM2', 'MODE2_FORM_MIX', 'MODE2_RAW'])
|
|
|
|
|
|
|
|
|
|
call s:def_keywords('cdrtocTrackSubChannelMode',
|
|
|
|
|
\ '@cdrtocTrackFollow',
|
|
|
|
|
\ ['RW', 'RW_RAW'])
|
|
|
|
|
|
|
|
|
|
syn cluster cdrtocTrackFlags
|
|
|
|
|
\ contains=
|
|
|
|
|
\ cdrtocTrackFlagNo,
|
|
|
|
|
\ cdrtocTrackFlagCopy,
|
|
|
|
|
\ cdrtocTrackFlagPreEmphasis,
|
|
|
|
|
\ cdrtocTrackFlag
|
|
|
|
|
|
|
|
|
|
call s:def_keyword('cdrtocTrackFlagNo',
|
|
|
|
|
\ 'cdrtocTrackFlagCopy,cdrtocTrackFlagPreEmphasis',
|
|
|
|
|
\ 'NO')
|
|
|
|
|
|
|
|
|
|
call s:def_keyword('cdrtocTrackFlagCopy', '@cdrtocTrackFollow', 'COPY')
|
|
|
|
|
|
|
|
|
|
call s:def_keyword('cdrtocTrackFlagPreEmphasis', '@cdrtocTrackFollow', 'PRE_EMPHASIS')
|
|
|
|
|
|
|
|
|
|
call s:def_keywords('cdrtocTrackFlag',
|
|
|
|
|
\ '@cdrtocTrackFollow',
|
|
|
|
|
\ ['TWO_CHANNEL_AUDIO', 'FOUR_CHANNEL_AUDIO'])
|
|
|
|
|
|
|
|
|
|
call s:def_keyword('cdrtocTrackFlag', 'cdrtocTrackISRC', 'ISRC')
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocTrackISRC',
|
|
|
|
|
\ '@cdrtocTrackFollow',
|
|
|
|
|
\ '"[[:upper:][:digit:]]\{5}\d\{7}"')
|
|
|
|
|
|
|
|
|
|
call s:def_keyword('cdrtocTrackCDText', 'cdrtocTrackCDTextStart', 'CD_TEXT')
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocTrackCDTextStart', 'cdrtocTrackCDTextLanguage', '{')
|
|
|
|
|
|
|
|
|
|
call s:def_keyword('cdrtocTrackCDTextLanguage', 'cdrtocTrackCDTextLanguageNumber', 'LANGUAGE')
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocTrackCDTextLanguageNumber', 'cdrtocTrackCDTextLanguageStart', '\<[0-7]\>')
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocTrackCDTextLanguageStart',
|
|
|
|
|
\ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd',
|
|
|
|
|
\ '{')
|
|
|
|
|
|
|
|
|
|
syn cluster cdrtocTrackCDTextData
|
|
|
|
|
\ contains=
|
|
|
|
|
\ cdrtocTrackCDTextDataString,
|
|
|
|
|
\ cdrtocTrackCDTextDataBinaryStart
|
|
|
|
|
|
|
|
|
|
call s:def_keywords('cdrtocTrackCDTextItem',
|
|
|
|
|
\ '@cdrtocTrackCDTextData',
|
|
|
|
|
\ ['TITLE', 'PERFORMER', 'SONGWRITER', 'COMPOSER', 'ARRANGER',
|
|
|
|
|
\ 'MESSAGE', 'ISRC'])
|
|
|
|
|
|
|
|
|
|
call s:def_region('cdrtocTrackCDTextDataString',
|
|
|
|
|
\ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd',
|
|
|
|
|
\ '"',
|
|
|
|
|
\ '\\\\\|\\"',
|
|
|
|
|
\ '"',
|
|
|
|
|
\ 'cdrtocTrackCDTextDataStringDelimiters',
|
|
|
|
|
\ 'cdrtocTrackCDTextDataStringSpecialChar')
|
|
|
|
|
|
|
|
|
|
syn match cdrtocTrackCDTextDataStringSpecialChar
|
|
|
|
|
\ contained
|
|
|
|
|
\ display
|
|
|
|
|
\ '\\\%(\o\o\o\|["\\]\)'
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocTrackCDTextDataBinaryStart',
|
|
|
|
|
\ 'cdrtocTrackCDTextDataBinaryInteger',
|
|
|
|
|
\ '{')
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocTrackCDTextDataBinaryInteger',
|
|
|
|
|
\ 'cdrtocTrackCDTextDataBinarySeparator,cdrtocTrackCDTextDataBinaryEnd',
|
|
|
|
|
\ s:byte_pattern)
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocTrackCDTextDataBinarySeparator',
|
|
|
|
|
\ 'cdrtocTrackCDTextDataBinaryInteger',
|
|
|
|
|
\ ',')
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocTrackCDTextDataBinaryEnd',
|
|
|
|
|
\ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd',
|
|
|
|
|
\ '}')
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocTrackCDTextLanguageEnd',
|
|
|
|
|
\ 'cdrtocTrackCDTextLanguage,cdrtocTrackCDTextEnd',
|
|
|
|
|
\ '}')
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocTrackCDTextEnd',
|
|
|
|
|
\ 'cdrtocTrackPregap,@cdrtocTrackContents',
|
|
|
|
|
\ '}')
|
|
|
|
|
|
|
|
|
|
call s:def_keyword('cdrtocTrackPregap', 'cdrtocTrackPregapMMSSFF', 'PREGAP')
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocTrackPregapMMSSFF',
|
|
|
|
|
\ '@cdrtocTrackContents',
|
|
|
|
|
\ s:mmssff_pattern)
|
|
|
|
|
|
|
|
|
|
syn cluster cdrtocTrackContents
|
|
|
|
|
\ contains=
|
|
|
|
|
\ cdrtocTrackSubTrack,
|
|
|
|
|
\ cdrtocTrackMarker
|
|
|
|
|
|
|
|
|
|
syn cluster cdrtocTrackContentsFollow
|
|
|
|
|
\ contains=
|
|
|
|
|
\ @cdrtocTrackContents,
|
|
|
|
|
\ cdrtocTrackIndex,
|
|
|
|
|
\ cdrtocTrack
|
|
|
|
|
|
|
|
|
|
call s:def_keywords('cdrtocTrackSubTrack',
|
|
|
|
|
\ 'cdrtocTrackSubTrackFileFilename',
|
|
|
|
|
\ ['FILE', 'AUDIOFILE'])
|
|
|
|
|
|
|
|
|
|
call s:def_region('cdrtocTrackSubTrackFileFilename',
|
|
|
|
|
\ 'cdrtocTrackSubTrackFileStart',
|
|
|
|
|
\ '"',
|
|
|
|
|
\ '\\\\\|\\"',
|
|
|
|
|
\ '"',
|
|
|
|
|
\ 'cdrtocTrackSubTrackFileFilenameDelimiters',
|
|
|
|
|
\ 'cdrtocTrackSubTrackFileFilenameSpecialChar')
|
|
|
|
|
|
|
|
|
|
syn match cdrtocTrackSubTrackFileFilenameSpecialChar
|
|
|
|
|
\ contained
|
|
|
|
|
\ display
|
|
|
|
|
\ '\\\%(\o\o\o\|["\\]\)'
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocTrackSubTrackFileStart',
|
|
|
|
|
\ 'cdrtocTrackSubTrackFileLength,@cdrtocTrackContentsFollow',
|
|
|
|
|
\ s:length_pattern)
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocTrackSubTrackFileLength',
|
|
|
|
|
\ '@cdrtocTrackContentsFollow',
|
|
|
|
|
\ s:length_pattern)
|
|
|
|
|
|
|
|
|
|
call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackContentDatafileFilename', 'DATAFILE')
|
|
|
|
|
|
|
|
|
|
call s:def_region('cdrtocTrackSubTrackDatafileFilename',
|
|
|
|
|
\ 'cdrtocTrackSubTrackDatafileLength',
|
|
|
|
|
\ '"',
|
|
|
|
|
\ '\\\\\|\\"',
|
|
|
|
|
\ '"',
|
|
|
|
|
\ 'cdrtocTrackSubTrackDatafileFilenameDelimiters',
|
|
|
|
|
\ 'cdrtocTrackSubTrackDatafileFilenameSpecialChar')
|
|
|
|
|
|
|
|
|
|
syn match cdrtocTrackSubTrackdatafileFilenameSpecialChar
|
|
|
|
|
\ contained
|
|
|
|
|
\ display
|
|
|
|
|
\ '\\\%(\o\o\o\|["\\]\)'
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocTrackDatafileLength',
|
|
|
|
|
\ '@cdrtocTrackContentsFollow',
|
|
|
|
|
\ s:length_pattern)
|
|
|
|
|
|
|
|
|
|
call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackContentFifoFilename', 'DATAFILE')
|
|
|
|
|
|
|
|
|
|
call s:def_region('cdrtocTrackSubTrackFifoFilename',
|
|
|
|
|
\ 'cdrtocTrackSubTrackFifoLength',
|
|
|
|
|
\ '"',
|
|
|
|
|
\ '\\\\\|\\"',
|
|
|
|
|
\ '"',
|
|
|
|
|
\ 'cdrtocTrackSubTrackFifoFilenameDelimiters',
|
|
|
|
|
\ 'cdrtocTrackSubTrackFifoFilenameSpecialChar')
|
|
|
|
|
|
|
|
|
|
syn match cdrtocTrackSubTrackdatafileFilenameSpecialChar
|
|
|
|
|
\ contained
|
|
|
|
|
\ display
|
|
|
|
|
\ '\\\%(\o\o\o\|["\\]\)'
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocTrackFifoLength',
|
|
|
|
|
\ '@cdrtocTrackContentsFollow',
|
|
|
|
|
\ s:length_pattern)
|
|
|
|
|
|
|
|
|
|
call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackSilenceLength', 'SILENCE')
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocTrackSilenceLength',
|
|
|
|
|
\ '@cdrtocTrackContentsFollow',
|
|
|
|
|
\ s:length_pattern)
|
|
|
|
|
|
|
|
|
|
call s:def_keyword('cdrtocTrackSubTrack',
|
|
|
|
|
\ 'cdrtocTrackSubTrackZeroDataMode,' .
|
|
|
|
|
\ 'cdrtocTrackSubTrackZeroDataSubChannelMode,' .
|
|
|
|
|
\ 'cdrtocTrackSubTrackZeroDataLength',
|
|
|
|
|
\ 'ZERO')
|
|
|
|
|
|
|
|
|
|
call s:def_keywords('cdrtocTrackSubTrackZeroDataMode',
|
|
|
|
|
\ 'cdrtocTrackSubTrackZeroSubChannelMode,cdrtocTrackSubTrackZeroDataLength',
|
|
|
|
|
\ ['AUDIO', 'MODE1', 'MODE1_RAW', 'MODE2', 'MODE2_FORM1',
|
|
|
|
|
\ 'MODE2_FORM2', 'MODE2_FORM_MIX', 'MODE2_RAW'])
|
|
|
|
|
|
|
|
|
|
call s:def_keywords('cdrtocTrackSubTrackZeroDataSubChannelMode',
|
|
|
|
|
\ 'cdrtocTrackSubTrackZeroDataLength',
|
|
|
|
|
\ ['RW', 'RW_RAW'])
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocTrackSubTrackZeroDataLength',
|
|
|
|
|
\ '@cdrtocTrackContentsFollow',
|
|
|
|
|
\ s:length_pattern)
|
|
|
|
|
|
|
|
|
|
call s:def_keyword('cdrtocTrackMarker',
|
|
|
|
|
\ '@cdrtocTrackContentsFollow,cdrtocTrackMarkerStartMMSSFF',
|
|
|
|
|
\ 'START')
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocTrackMarkerStartMMSSFF',
|
|
|
|
|
\ '@cdrtocTrackContentsFollow',
|
|
|
|
|
\ s:mmssff_pattern)
|
|
|
|
|
|
|
|
|
|
call s:def_keyword('cdrtocTrackMarker',
|
|
|
|
|
\ '@cdrtocTrackContentsFollow,cdrtocTrackMarkerEndMMSSFF',
|
|
|
|
|
\ 'END')
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocTrackMarkerEndMMSSFF',
|
|
|
|
|
\ '@cdrtocTrackContentsFollow',
|
|
|
|
|
\ s:mmssff_pattern)
|
|
|
|
|
|
|
|
|
|
call s:def_keyword('cdrtocTrackIndex', 'cdrtocTrackIndexMMSSFF', 'INDEX')
|
|
|
|
|
|
|
|
|
|
call s:def_match('cdrtocTrackIndexMMSSFF',
|
|
|
|
|
\ 'cdrtocTrackIndex,cdrtocTrack',
|
|
|
|
|
\ s:mmssff_pattern)
|
|
|
|
|
|
|
|
|
|
delfunction s:def_region
|
|
|
|
|
delfunction s:def_match
|
|
|
|
|
delfunction s:def_keyword
|
|
|
|
|
delfunction s:def_keywords
|
|
|
|
|
delfunction s:def_comment
|
|
|
|
|
|
|
|
|
|
syn sync fromstart
|
|
|
|
|
|
|
|
|
|
hi def link cdrtocKeyword Keyword
|
|
|
|
|
hi def link cdrtocHeaderKeyword cdrtocKeyword
|
|
|
|
|
hi def link cdrtocHeaderCDText cdrtocHeaderKeyword
|
|
|
|
|
hi def link cdrtocDelimiter Delimiter
|
|
|
|
|
hi def link cdrtocCDTextDataBinaryEnd cdrtocDelimiter
|
|
|
|
|
hi def link cdrtocHeaderCDTextDataBinaryEnd cdrtocHeaderCDTextDataBinaryEnd
|
|
|
|
|
hi def link cdrtocNumber Number
|
|
|
|
|
hi def link cdrtocCDTextDataBinaryInteger cdrtocNumber
|
|
|
|
|
hi def link cdrtocHeaderCDTextDataBinaryInteger cdrtocCDTextDataBinaryInteger
|
|
|
|
|
hi def link cdrtocCDTextDataBinarySeparator cdrtocDelimiter
|
|
|
|
|
hi def link cdrtocHeaderCDTextDataBinarySeparator cdrtocCDTextDataBinarySeparator
|
|
|
|
|
hi def link cdrtocCDTextDataBinaryStart cdrtocDelimiter
|
|
|
|
|
hi def link cdrtocHeaderCDTextDataBinaryStart cdrtocCDTextDataBinaryStart
|
|
|
|
|
hi def link cdrtocString String
|
|
|
|
|
hi def link cdrtocCDTextDataString cdrtocString
|
|
|
|
|
hi def link cdrtocHeaderCDTextDataString cdrtocCDTextDataString
|
|
|
|
|
hi def link cdrtocCDTextDataStringDelimiters cdrtocDelimiter
|
|
|
|
|
hi def link cdrtocHeaderCDTextDataStringDelimiters cdrtocCDTextDataStringDelimiters
|
|
|
|
|
hi def link cdrtocCDTextDataStringSpecialChar SpecialChar
|
|
|
|
|
hi def link cdrtocHeaderCDTextDataStringSpecialChar cdrtocCDTextDataStringSpecialChar
|
|
|
|
|
hi def link cdrtocCDTextEnd cdrtocDelimiter
|
|
|
|
|
hi def link cdrtocHeaderCDTextEnd cdrtocCDTextEnd
|
|
|
|
|
hi def link cdrtocType Type
|
|
|
|
|
hi def link cdrtocCDTextItem cdrtocType
|
|
|
|
|
hi def link cdrtocHeaderCDTextItem cdrtocCDTextItem
|
|
|
|
|
hi def link cdrtocHeaderCDTextLanguageMap cdrtocHeaderKeyword
|
|
|
|
|
hi def link cdrtocCDTextStart cdrtocDelimiter
|
|
|
|
|
hi def link cdrtocHeaderCDTextStart cdrtocCDTextStart
|
|
|
|
|
hi def link cdrtocHeaderCatalog cdrtocHeaderKeyword
|
|
|
|
|
hi def link cdrtocHeaderCatalogNumber cdrtocString
|
|
|
|
|
hi def link cdrtocComment Comment
|
|
|
|
|
hi def link cdrtocHeaderCommentInitial cdrtocComment
|
|
|
|
|
hi def link cdrtocHeaderLanguage cdrtocKeyword
|
|
|
|
|
hi def link cdrtocLanguageEnd cdrtocDelimiter
|
|
|
|
|
hi def link cdrtocHeaderLanguageEnd cdrtocLanguageEnd
|
|
|
|
|
hi def link cdrtocHeaderLanguageMapColon cdrtocDelimiter
|
|
|
|
|
hi def link cdrtocIdentifier Identifier
|
|
|
|
|
hi def link cdrtocHeaderLanguageMapCountryCode cdrtocNumber
|
|
|
|
|
hi def link cdrtocHeaderLanguageMapCountryCodeName cdrtocIdentifier
|
|
|
|
|
hi def link cdrtocHeaderLanguageMapEnd cdrtocDelimiter
|
|
|
|
|
hi def link cdrtocHeaderLanguageMapLanguageNumber cdrtocNumber
|
|
|
|
|
hi def link cdrtocHeaderLanguageMapStart cdrtocDelimiter
|
|
|
|
|
hi def link cdrtocLanguageNumber cdrtocNumber
|
|
|
|
|
hi def link cdrtocHeaderLanguageNumber cdrtocLanguageNumber
|
|
|
|
|
hi def link cdrtocLanguageStart cdrtocDelimiter
|
|
|
|
|
hi def link cdrtocHeaderLanguageStart cdrtocLanguageStart
|
|
|
|
|
hi def link cdrtocHeaderTOCType cdrtocType
|
|
|
|
|
hi def link cdrtocTodo Todo
|
|
|
|
|
hi def link cdrtocTrackKeyword cdrtocKeyword
|
|
|
|
|
hi def link cdrtocTrack cdrtocTrackKeyword
|
|
|
|
|
hi def link cdrtocTrackCDText cdrtocTrackKeyword
|
|
|
|
|
hi def link cdrtocTrackCDTextDataBinaryEnd cdrtocHeaderCDTextDataBinaryEnd
|
|
|
|
|
hi def link cdrtocTrackCDTextDataBinaryInteger cdrtocHeaderCDTextDataBinaryInteger
|
|
|
|
|
hi def link cdrtocTrackCDTextDataBinarySeparator cdrtocHeaderCDTextDataBinarySeparator
|
|
|
|
|
hi def link cdrtocTrackCDTextDataBinaryStart cdrtocHeaderCDTextDataBinaryStart
|
|
|
|
|
hi def link cdrtocTrackCDTextDataString cdrtocHeaderCDTextDataString
|
|
|
|
|
hi def link cdrtocTrackCDTextDataStringDelimiters cdrtocCDTextDataStringDelimiters
|
|
|
|
|
hi def link cdrtocTrackCDTextDataStringSpecialChar cdrtocCDTextDataStringSpecialChar
|
|
|
|
|
hi def link cdrtocTrackCDTextEnd cdrtocCDTextEnd
|
|
|
|
|
hi def link cdrtocTrackCDTextItem cdrtocCDTextItem
|
|
|
|
|
hi def link cdrtocTrackCDTextStart cdrtocCDTextStart
|
|
|
|
|
hi def link cdrtocLength cdrtocNumber
|
|
|
|
|
hi def link cdrtocTrackDatafileLength cdrtocLength
|
|
|
|
|
hi def link cdrtocTrackFifoLength cdrtocLength
|
|
|
|
|
hi def link cdrtocPreProc PreProc
|
|
|
|
|
hi def link cdrtocTrackFlag cdrtocPreProc
|
|
|
|
|
hi def link cdrtocTrackFlagCopy cdrtocTrackFlag
|
|
|
|
|
hi def link cdrtocSpecial Special
|
|
|
|
|
hi def link cdrtocTrackFlagNo cdrtocSpecial
|
|
|
|
|
hi def link cdrtocTrackFlagPreEmphasis cdrtocTrackFlag
|
|
|
|
|
hi def link cdrtocTrackISRC cdrtocTrackFlag
|
|
|
|
|
hi def link cdrtocTrackIndex cdrtocTrackKeyword
|
|
|
|
|
hi def link cdrtocMMSSFF cdrtocLength
|
|
|
|
|
hi def link cdrtocTrackIndexMMSSFF cdrtocMMSSFF
|
|
|
|
|
hi def link cdrtocTrackCDTextLanguage cdrtocTrackKeyword
|
|
|
|
|
hi def link cdrtocTrackCDTextLanguageEnd cdrtocLanguageEnd
|
|
|
|
|
hi def link cdrtocTrackCDTextLanguageNumber cdrtocLanguageNumber
|
|
|
|
|
hi def link cdrtocTrackCDTextLanguageStart cdrtocLanguageStart
|
|
|
|
|
hi def link cdrtocTrackContents StorageClass
|
|
|
|
|
hi def link cdrtocTrackMarker cdrtocTrackContents
|
|
|
|
|
hi def link cdrtocTrackMarkerEndMMSSFF cdrtocMMSSFF
|
|
|
|
|
hi def link cdrtocTrackMarkerStartMMSSFF cdrtocMMSSFF
|
|
|
|
|
hi def link cdrtocTrackMode Type
|
|
|
|
|
hi def link cdrtocTrackPregap cdrtocTrackContents
|
|
|
|
|
hi def link cdrtocTrackPregapMMSSFF cdrtocMMSSFF
|
|
|
|
|
hi def link cdrtocTrackSilenceLength cdrtocLength
|
|
|
|
|
hi def link cdrtocTrackSubChannelMode cdrtocPreProc
|
|
|
|
|
hi def link cdrtocTrackSubTrack cdrtocTrackContents
|
|
|
|
|
hi def link cdrtocFilename cdrtocString
|
|
|
|
|
hi def link cdrtocTrackSubTrackDatafileFilename cdrtocFilename
|
|
|
|
|
hi def link cdrtocTrackSubTrackDatafileFilenameDelimiters cdrtocTrackSubTrackDatafileFilename
|
|
|
|
|
hi def link cdrtocSpecialChar SpecialChar
|
|
|
|
|
hi def link cdrtocTrackSubTrackDatafileFilenameSpecialChar cdrtocSpecialChar
|
|
|
|
|
hi def link cdrtocTrackSubTrackDatafileLength cdrtocLength
|
|
|
|
|
hi def link cdrtocTrackSubTrackFifoFilename cdrtocFilename
|
|
|
|
|
hi def link cdrtocTrackSubTrackFifoFilenameDelimiters cdrtocTrackSubTrackFifoFilename
|
|
|
|
|
hi def link cdrtocTrackSubTrackFifoFilenameSpecialChar cdrtocSpecialChar
|
|
|
|
|
hi def link cdrtocTrackSubTrackFifoLength cdrtocLength
|
|
|
|
|
hi def link cdrtocTrackSubTrackFileFilename cdrtocFilename
|
|
|
|
|
hi def link cdrtocTrackSubTrackFileFilenameDelimiters cdrtocTrackSubTrackFileFilename
|
|
|
|
|
hi def link cdrtocTrackSubTrackFileFilenameSpecialChar cdrtocSpecialChar
|
|
|
|
|
hi def link cdrtocTrackSubTrackFileLength cdrtocLength
|
|
|
|
|
hi def link cdrtocTrackSubTrackFileStart cdrtocLength
|
|
|
|
|
hi def link cdrtocTrackSubTrackZeroDataLength cdrtocLength
|
|
|
|
|
hi def link cdrtocTrackSubTrackZeroDataMode Type
|
|
|
|
|
hi def link cdrtocTrackSubTrackZeroDataSubChannelMode cdrtocPreProc
|
|
|
|
|
hi def link cdrtocTrackSubTrackdatafileFilenameSpecialChar cdrtocSpecialChar
|
|
|
|
|
|
|
|
|
|
let b:current_syntax = "cdrtoc"
|
|
|
|
|
|
|
|
|
|
let &cpo = s:cpo_save
|
|
|
|
|
unlet s:cpo_save
|