1" Vim syntax file 2" Language: RFC 2614 - An API for Service Location registration file 3" Maintainer: Nikolai Weibull <now@bitwi.se> 4" Latest Revision: 2006-04-19 5 6if exists("b:current_syntax") 7 finish 8endif 9 10let s:cpo_save = &cpo 11set cpo&vim 12 13syn keyword slpregTodo contained TODO FIXME XXX NOTE 14 15syn region slpregComment display oneline start='^[#;]' end='$' 16 \ contains=slpregTodo,@Spell 17 18syn match slpregBegin display '^' 19 \ nextgroup=slpregServiceURL, 20 \ slpregComment 21 22syn match slpregServiceURL contained display 'service:' 23 \ nextgroup=slpregServiceType 24 25syn match slpregServiceType contained display '\a[[:alpha:][:digit:]+-]*\%(\.\a[[:alpha:][:digit:]+-]*\)\=\%(:\a[[:alpha:][:digit:]+-]*\)\=' 26 \ nextgroup=slpregServiceSAPCol 27 28syn match slpregServiceSAPCol contained display ':' 29 \ nextgroup=slpregSAP 30 31syn match slpregSAP contained '[^,]\+' 32 \ nextgroup=slpregLangSep 33"syn match slpregSAP contained display '\%(//\%(\%([[:alpha:][:digit:]$-_.~!*\'(),+;&=]*@\)\=\%([[:alnum:]][[:alnum:]-]*[[:alnum:]]\|[[:alnum:]]\.\)*\%(\a[[:alnum:]-]*[[:alnum:]]\|\a\)\%(:\d\+\)\=\)\=\|/at/\%([[:alpha:][:digit:]$-_.~]\|\\\x\x\)\{1,31}:\%([[:alpha:][:digit:]$-_.~]\|\\\x\x\)\{1,31}\%([[:alpha:][:digit:]$-_.~]\|\\\x\x\)\{1,31}\|/ipx/\x\{8}:\x\{12}:\x\{4}\)\%(/\%([[:alpha:][:digit:]$-_.~!*\'()+;?:@&=+]\|\\\x\x\)*\)*\%(;[^()\\!<=>~[:cntrl:]* \t_]\+\%(=[^()\\!<=>~[:cntrl:] ]\+\)\=\)*' 34 35syn match slpregLangSep contained display ',' 36 \ nextgroup=slpregLang 37 38syn match slpregLang contained display '\a\{1,8}\%(-\a\{1,8\}\)\=' 39 \ nextgroup=slpregLTimeSep 40 41syn match slpregLTimeSep contained display ',' 42 \ nextgroup=slpregLTime 43 44syn match slpregLTime contained display '\d\{1,5}' 45 \ nextgroup=slpregType,slpregUNewline 46 47syn match slpregType contained display '\a[[:alpha:][:digit:]+-]*' 48 \ nextgroup=slpregUNewLine 49 50syn match slpregUNewLine contained '\s*\n' 51 \ nextgroup=slpregScopes,slpregAttrList skipnl 52 53syn keyword slpregScopes contained scopes 54 \ nextgroup=slpregScopesEq 55 56syn match slpregScopesEq contained '=' nextgroup=slpregScopeName 57 58syn match slpregScopeName contained '[^(),\\!<=>[:cntrl:];*+ ]\+' 59 \ nextgroup=slpregScopeNameSep, 60 \ slpregScopeNewline 61 62syn match slpregScopeNameSep contained ',' 63 \ nextgroup=slpregScopeName 64 65syn match slpregScopeNewline contained '\s*\n' 66 \ nextgroup=slpregAttribute skipnl 67 68syn match slpregAttribute contained '[^(),\\!<=>[:cntrl:]* \t_]\+' 69 \ nextgroup=slpregAttributeEq, 70 \ slpregScopeNewline 71 72syn match slpregAttributeEq contained '=' 73 \ nextgroup=@slpregAttrValue 74 75syn cluster slpregAttrValueCon contains=slpregAttribute,slpregAttrValueSep 76 77syn cluster slpregAttrValue contains=slpregAttrIValue,slpregAttrSValue, 78 \ slpregAttrBValue,slpregAttrSSValue 79 80syn match slpregAttrSValue contained display '[^(),\\!<=>~[:cntrl:]]\+' 81 \ nextgroup=@slpregAttrValueCon skipwhite skipnl 82 83syn match slpregAttrSSValue contained display '\\FF\%(\\\x\x\)\+' 84 \ nextgroup=@slpregAttrValueCon skipwhite skipnl 85 86syn match slpregAttrIValue contained display '[-]\=\d\+\>' 87 \ nextgroup=@slpregAttrValueCon skipwhite skipnl 88 89syn keyword slpregAttrBValue contained true false 90 \ nextgroup=@slpregAttrValueCon skipwhite skipnl 91 92syn match slpregAttrValueSep contained display ',' 93 \ nextgroup=@slpregAttrValue skipwhite skipnl 94 95hi def link slpregTodo Todo 96hi def link slpregComment Comment 97hi def link slpregServiceURL Type 98hi def link slpregServiceType slpregServiceURL 99hi def link slpregServiceSAPCol slpregServiceURL 100hi def link slpregSAP slpregServiceURL 101hi def link slpregDelimiter Delimiter 102hi def link slpregLangSep slpregDelimiter 103hi def link slpregLang String 104hi def link slpregLTimeSep slpregDelimiter 105hi def link slpregLTime Number 106hi def link slpregType Type 107hi def link slpregScopes Identifier 108hi def link slpregScopesEq Operator 109hi def link slpregScopeName String 110hi def link slpregScopeNameSep slpregDelimiter 111hi def link slpregAttribute Identifier 112hi def link slpregAttributeEq Operator 113hi def link slpregAttrSValue String 114hi def link slpregAttrSSValue slpregAttrSValue 115hi def link slpregAttrIValue Number 116hi def link slpregAttrBValue Boolean 117hi def link slpregAttrValueSep slpregDelimiter 118 119let b:current_syntax = "slpreg" 120 121let &cpo = s:cpo_save 122unlet s:cpo_save 123