blob: 4b3c5a17ae2f62677c7f0802c10150a09afc86cf [file] [log] [blame]
" Vim syntax file
" Language: RFC 2614 - An API for Service Location configuration file
" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
" Latest Revision: 2005-07-04
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
syn keyword slpconfTodo contained TODO FIXME XXX NOTE
syn region slpconfComment display oneline start='^[#;]' end='$'
\ contains=slpconfTodo,@Spell
syn match slpconfBegin display '^'
\ nextgroup=slpconfTag,
\ slpconfComment skipwhite
syn keyword slpconfTag contained net
\ nextgroup=slpconfNetTagDot
syn match slpconfNetTagDot contained display '.'
\ nextgroup=slpconfNetTag
syn keyword slpconfNetTag contained slp
\ nextgroup=slpconfNetSlpTagdot
syn match slpconfNetSlpTagDot contained display '.'
\ nextgroup=slpconfNetSlpTag
syn keyword slpconfNetSlpTag contained isDA traceDATraffic traceMsg
\ traceDrop traceReg isBroadcastOnly
\ passiveDADetection securityEnabled
\ nextgroup=slpconfBooleanEq,slpconfBooleanHome
\ skipwhite
syn match slpconfBooleanHome contained display
\ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
\ nextgroup=slpconfBooleanEq skipwhite
syn match slpconfBooleanEq contained display '='
\ nextgroup=slpconfBoolean skipwhite
syn keyword slpconfBoolean contained true false TRUE FALSE
syn keyword slpconfNetSlpTag contained DAHeartBeat multicastTTL
\ DAActiveDiscoveryInterval
\ multicastMaximumWait multicastTimeouts
\ randomWaitBound MTU maxResults
\ nextgroup=slpconfIntegerEq,slpconfIntegerHome
\ skipwhite
syn match slpconfIntegerHome contained display
\ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
\ nextgroup=slpconfIntegerEq skipwhite
syn match slpconfIntegerEq contained display '='
\ nextgroup=slpconfInteger skipwhite
syn match slpconfInteger contained display '\<\d\+\>'
syn keyword slpconfNetSlpTag contained DAAttributes SAAttributes
\ nextgroup=slpconfAttrEq,slpconfAttrHome
\ skipwhite
syn match slpconfAttrHome contained display
\ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
\ nextgroup=slpconfAttrEq skipwhite
syn match slpconfAttrEq contained display '='
\ nextgroup=slpconfAttrBegin skipwhite
syn match slpconfAttrBegin contained display '('
\ nextgroup=slpconfAttrTag skipwhite
syn match slpconfAttrTag contained display
\ '[^* \t_(),\\!<=>~[:cntrl:]]\+'
\ nextgroup=slpconfAttrTagEq skipwhite
syn match slpconfAttrTagEq contained display '='
\ nextgroup=@slpconfAttrValue skipwhite
syn cluster slpconfAttrValueCon contains=slpconfAttrValueSep,slpconfAttrEnd
syn cluster slpconfAttrValue contains=slpconfAttrIValue,slpconfAttrSValue,
\ slpconfAttrBValue,slpconfAttrSSValue
syn match slpconfAttrSValue contained display '[^ (),\\!<=>~[:cntrl:]]\+'
\ nextgroup=@slpconfAttrValueCon skipwhite
syn match slpconfAttrSSValue contained display '\\FF\%(\\\x\x\)\+'
\ nextgroup=@slpconfAttrValueCon skipwhite
syn match slpconfAttrIValue contained display '[-]\=\d\+\>'
\ nextgroup=@slpconfAttrValueCon skipwhite
syn keyword slpconfAttrBValue contained true false
\ nextgroup=@slpconfAttrValueCon skipwhite
syn match slpconfAttrValueSep contained display ','
\ nextgroup=@slpconfAttrValue skipwhite
syn match slpconfAttrEnd contained display ')'
\ nextgroup=slpconfAttrSep skipwhite
syn match slpconfAttrSep contained display ','
\ nextgroup=slpconfAttrBegin skipwhite
syn keyword slpconfNetSlpTag contained useScopes typeHint
\ nextgroup=slpconfStringsEq,slpconfStringsHome
\ skipwhite
syn match slpconfStringsHome contained display
\ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
\ nextgroup=slpconfStringsEq skipwhite
syn match slpconfStringsEq contained display '='
\ nextgroup=slpconfStrings skipwhite
syn match slpconfStrings contained display
\ '\%([[:digit:][:alpha:]]\|[!-+./:-@[-`{-~-]\|\\\x\x\)\+'
\ nextgroup=slpconfStringsSep skipwhite
syn match slpconfStringsSep contained display ','
\ nextgroup=slpconfStrings skipwhite
syn keyword slpconfNetSlpTag contained DAAddresses
\ nextgroup=slpconfAddressesEq,slpconfAddrsHome
\ skipwhite
syn match slpconfAddrsHome contained display
\ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
\ nextgroup=slpconfAddressesEq skipwhite
syn match slpconfAddressesEq contained display '='
\ nextgroup=@slpconfAddresses skipwhite
syn cluster slpconfAddresses contains=slpconfFQDNs,slpconfHostnumbers
syn match slpconfFQDNs contained display
\ '\a[[:alnum:]-]*[[:alnum:]]\|\a'
\ nextgroup=slpconfAddressesSep skipwhite
syn match slpconfHostnumbers contained display
\ '\d\{1,3}\%(\.\d\{1,3}\)\{3}'
\ nextgroup=slpconfAddressesSep skipwhite
syn match slpconfAddressesSep contained display ','
\ nextgroup=@slpconfAddresses skipwhite
syn keyword slpconfNetSlpTag contained serializedRegURL
\ nextgroup=slpconfStringEq,slpconfStringHome
\ skipwhite
syn match slpconfStringHome contained display
\ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
\ nextgroup=slpconfStringEq skipwhite
syn match slpconfStringEq contained display '='
\ nextgroup=slpconfString skipwhite
syn match slpconfString contained display
\ '\%([!-+./:-@[-`{-~-]\|\\\x\x\)\+\|[[:digit:][:alpha:]]'
syn keyword slpconfNetSlpTag contained multicastTimeouts DADiscoveryTimeouts
\ datagramTimeouts
\ nextgroup=slpconfIntegersEq,
\ slpconfIntegersHome skipwhite
syn match slpconfIntegersHome contained display
\ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
\ nextgroup=slpconfIntegersEq skipwhite
syn match slpconfIntegersEq contained display '='
\ nextgroup=slpconfIntegers skipwhite
syn match slpconfIntegers contained display '\<\d\+\>'
\ nextgroup=slpconfIntegersSep skipwhite
syn match slpconfIntegersSep contained display ','
\ nextgroup=slpconfIntegers skipwhite
syn keyword slpconfNetSlpTag contained interfaces
\ nextgroup=slpconfHostnumsEq,
\ slpconfHostnumsHome skipwhite
syn match slpconfHostnumsHome contained display
\ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
\ nextgroup=slpconfHostnumsEq skipwhite
syn match slpconfHostnumsEq contained display '='
\ nextgroup=slpconfOHostnumbers skipwhite
syn match slpconfOHostnumbers contained display
\ '\d\{1,3}\%(\.\d\{1,3}\)\{3}'
\ nextgroup=slpconfHostnumsSep skipwhite
syn match slpconfHostnumsSep contained display ','
\ nextgroup=slpconfOHostnumbers skipwhite
syn keyword slpconfNetSlpTag contained locale
\ nextgroup=slpconfLocaleEq,slpconfLocaleHome
\ skipwhite
syn match slpconfLocaleHome contained display
\ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
\ nextgroup=slpconfLocaleEq skipwhite
syn match slpconfLocaleEq contained display '='
\ nextgroup=slpconfLocale skipwhite
syn match slpconfLocale contained display '\a\{1,8}\%(-\a\{1,8}\)\='
hi def link slpconfTodo Todo
hi def link slpconfComment Comment
hi def link slpconfTag Identifier
hi def link slpconfDelimiter Delimiter
hi def link slpconfNetTagDot slpconfDelimiter
hi def link slpconfNetTag slpconfTag
hi def link slpconfNetSlpTagDot slpconfNetTagDot
hi def link slpconfNetSlpTag slpconfTag
hi def link slpconfHome Special
hi def link slpconfBooleanHome slpconfHome
hi def link slpconfEq Operator
hi def link slpconfBooleanEq slpconfEq
hi def link slpconfBoolean Boolean
hi def link slpconfIntegerHome slpconfHome
hi def link slpconfIntegerEq slpconfEq
hi def link slpconfInteger Number
hi def link slpconfAttrHome slpconfHome
hi def link slpconfAttrEq slpconfEq
hi def link slpconfAttrBegin slpconfDelimiter
hi def link slpconfAttrTag slpconfTag
hi def link slpconfAttrTagEq slpconfEq
hi def link slpconfAttrIValue slpconfInteger
hi def link slpconfAttrSValue slpconfString
hi def link slpconfAttrBValue slpconfBoolean
hi def link slpconfAttrSSValue slpconfString
hi def link slpconfSeparator slpconfDelimiter
hi def link slpconfAttrValueSep slpconfSeparator
hi def link slpconfAttrEnd slpconfAttrBegin
hi def link slpconfAttrSep slpconfSeparator
hi def link slpconfStringsHome slpconfHome
hi def link slpconfStringsEq slpconfEq
hi def link slpconfStrings slpconfString
hi def link slpconfStringsSep slpconfSeparator
hi def link slpconfAddrsHome slpconfHome
hi def link slpconfAddressesEq slpconfEq
hi def link slpconfFQDNs String
hi def link slpconfHostnumbers Number
hi def link slpconfAddressesSep slpconfSeparator
hi def link slpconfStringHome slpconfHome
hi def link slpconfStringEq slpconfEq
hi def link slpconfString String
hi def link slpconfIntegersHome slpconfHome
hi def link slpconfIntegersEq slpconfEq
hi def link slpconfIntegers slpconfInteger
hi def link slpconfIntegersSep slpconfSeparator
hi def link slpconfHostnumsHome slpconfHome
hi def link slpconfHostnumsEq slpconfEq
hi def link slpconfOHostnumbers slpconfHostnumbers
hi def link slpconfHostnumsSep slpconfSeparator
hi def link slpconfLocaleHome slpconfHome
hi def link slpconfLocaleEq slpconfEq
hi def link slpconfLocale slpconfString
let b:current_syntax = "slpconf"
let &cpo = s:cpo_save
unlet s:cpo_save