10dc065eeSBram Moolenaar" Vim syntax file 20dc065eeSBram Moolenaar" Language: RFC 2614 - An API for Service Location registration file 3*214641f7SBram Moolenaar" Previous Maintainer: Nikolai Weibull <[email protected]> 457657d85SBram Moolenaar" Latest Revision: 2006-04-19 50dc065eeSBram Moolenaar 60dc065eeSBram Moolenaarif exists("b:current_syntax") 70dc065eeSBram Moolenaar finish 80dc065eeSBram Moolenaarendif 90dc065eeSBram Moolenaar 100dc065eeSBram Moolenaarlet s:cpo_save = &cpo 110dc065eeSBram Moolenaarset cpo&vim 120dc065eeSBram Moolenaar 130dc065eeSBram Moolenaarsyn keyword slpregTodo contained TODO FIXME XXX NOTE 140dc065eeSBram Moolenaar 150dc065eeSBram Moolenaarsyn region slpregComment display oneline start='^[#;]' end='$' 160dc065eeSBram Moolenaar \ contains=slpregTodo,@Spell 170dc065eeSBram Moolenaar 180dc065eeSBram Moolenaarsyn match slpregBegin display '^' 190dc065eeSBram Moolenaar \ nextgroup=slpregServiceURL, 200dc065eeSBram Moolenaar \ slpregComment 210dc065eeSBram Moolenaar 220dc065eeSBram Moolenaarsyn match slpregServiceURL contained display 'service:' 230dc065eeSBram Moolenaar \ nextgroup=slpregServiceType 240dc065eeSBram Moolenaar 250dc065eeSBram Moolenaarsyn match slpregServiceType contained display '\a[[:alpha:][:digit:]+-]*\%(\.\a[[:alpha:][:digit:]+-]*\)\=\%(:\a[[:alpha:][:digit:]+-]*\)\=' 260dc065eeSBram Moolenaar \ nextgroup=slpregServiceSAPCol 270dc065eeSBram Moolenaar 280dc065eeSBram Moolenaarsyn match slpregServiceSAPCol contained display ':' 290dc065eeSBram Moolenaar \ nextgroup=slpregSAP 300dc065eeSBram Moolenaar 310dc065eeSBram Moolenaarsyn match slpregSAP contained '[^,]\+' 320dc065eeSBram Moolenaar \ nextgroup=slpregLangSep 330dc065eeSBram Moolenaar"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:] ]\+\)\=\)*' 340dc065eeSBram Moolenaar 350dc065eeSBram Moolenaarsyn match slpregLangSep contained display ',' 360dc065eeSBram Moolenaar \ nextgroup=slpregLang 370dc065eeSBram Moolenaar 380dc065eeSBram Moolenaarsyn match slpregLang contained display '\a\{1,8}\%(-\a\{1,8\}\)\=' 390dc065eeSBram Moolenaar \ nextgroup=slpregLTimeSep 400dc065eeSBram Moolenaar 410dc065eeSBram Moolenaarsyn match slpregLTimeSep contained display ',' 420dc065eeSBram Moolenaar \ nextgroup=slpregLTime 430dc065eeSBram Moolenaar 440dc065eeSBram Moolenaarsyn match slpregLTime contained display '\d\{1,5}' 450dc065eeSBram Moolenaar \ nextgroup=slpregType,slpregUNewline 460dc065eeSBram Moolenaar 470dc065eeSBram Moolenaarsyn match slpregType contained display '\a[[:alpha:][:digit:]+-]*' 480dc065eeSBram Moolenaar \ nextgroup=slpregUNewLine 490dc065eeSBram Moolenaar 500dc065eeSBram Moolenaarsyn match slpregUNewLine contained '\s*\n' 510dc065eeSBram Moolenaar \ nextgroup=slpregScopes,slpregAttrList skipnl 520dc065eeSBram Moolenaar 530dc065eeSBram Moolenaarsyn keyword slpregScopes contained scopes 540dc065eeSBram Moolenaar \ nextgroup=slpregScopesEq 550dc065eeSBram Moolenaar 560dc065eeSBram Moolenaarsyn match slpregScopesEq contained '=' nextgroup=slpregScopeName 570dc065eeSBram Moolenaar 580dc065eeSBram Moolenaarsyn match slpregScopeName contained '[^(),\\!<=>[:cntrl:];*+ ]\+' 590dc065eeSBram Moolenaar \ nextgroup=slpregScopeNameSep, 600dc065eeSBram Moolenaar \ slpregScopeNewline 610dc065eeSBram Moolenaar 620dc065eeSBram Moolenaarsyn match slpregScopeNameSep contained ',' 630dc065eeSBram Moolenaar \ nextgroup=slpregScopeName 640dc065eeSBram Moolenaar 650dc065eeSBram Moolenaarsyn match slpregScopeNewline contained '\s*\n' 660dc065eeSBram Moolenaar \ nextgroup=slpregAttribute skipnl 670dc065eeSBram Moolenaar 680dc065eeSBram Moolenaarsyn match slpregAttribute contained '[^(),\\!<=>[:cntrl:]* \t_]\+' 690dc065eeSBram Moolenaar \ nextgroup=slpregAttributeEq, 700dc065eeSBram Moolenaar \ slpregScopeNewline 710dc065eeSBram Moolenaar 720dc065eeSBram Moolenaarsyn match slpregAttributeEq contained '=' 730dc065eeSBram Moolenaar \ nextgroup=@slpregAttrValue 740dc065eeSBram Moolenaar 750dc065eeSBram Moolenaarsyn cluster slpregAttrValueCon contains=slpregAttribute,slpregAttrValueSep 760dc065eeSBram Moolenaar 770dc065eeSBram Moolenaarsyn cluster slpregAttrValue contains=slpregAttrIValue,slpregAttrSValue, 780dc065eeSBram Moolenaar \ slpregAttrBValue,slpregAttrSSValue 790dc065eeSBram Moolenaar 800dc065eeSBram Moolenaarsyn match slpregAttrSValue contained display '[^(),\\!<=>~[:cntrl:]]\+' 810dc065eeSBram Moolenaar \ nextgroup=@slpregAttrValueCon skipwhite skipnl 820dc065eeSBram Moolenaar 830dc065eeSBram Moolenaarsyn match slpregAttrSSValue contained display '\\FF\%(\\\x\x\)\+' 840dc065eeSBram Moolenaar \ nextgroup=@slpregAttrValueCon skipwhite skipnl 850dc065eeSBram Moolenaar 860dc065eeSBram Moolenaarsyn match slpregAttrIValue contained display '[-]\=\d\+\>' 870dc065eeSBram Moolenaar \ nextgroup=@slpregAttrValueCon skipwhite skipnl 880dc065eeSBram Moolenaar 890dc065eeSBram Moolenaarsyn keyword slpregAttrBValue contained true false 900dc065eeSBram Moolenaar \ nextgroup=@slpregAttrValueCon skipwhite skipnl 910dc065eeSBram Moolenaar 920dc065eeSBram Moolenaarsyn match slpregAttrValueSep contained display ',' 930dc065eeSBram Moolenaar \ nextgroup=@slpregAttrValue skipwhite skipnl 940dc065eeSBram Moolenaar 950dc065eeSBram Moolenaarhi def link slpregTodo Todo 960dc065eeSBram Moolenaarhi def link slpregComment Comment 970dc065eeSBram Moolenaarhi def link slpregServiceURL Type 980dc065eeSBram Moolenaarhi def link slpregServiceType slpregServiceURL 990dc065eeSBram Moolenaarhi def link slpregServiceSAPCol slpregServiceURL 1000dc065eeSBram Moolenaarhi def link slpregSAP slpregServiceURL 1010dc065eeSBram Moolenaarhi def link slpregDelimiter Delimiter 1020dc065eeSBram Moolenaarhi def link slpregLangSep slpregDelimiter 1030dc065eeSBram Moolenaarhi def link slpregLang String 1040dc065eeSBram Moolenaarhi def link slpregLTimeSep slpregDelimiter 1050dc065eeSBram Moolenaarhi def link slpregLTime Number 1060dc065eeSBram Moolenaarhi def link slpregType Type 1070dc065eeSBram Moolenaarhi def link slpregScopes Identifier 1080dc065eeSBram Moolenaarhi def link slpregScopesEq Operator 1090dc065eeSBram Moolenaarhi def link slpregScopeName String 1100dc065eeSBram Moolenaarhi def link slpregScopeNameSep slpregDelimiter 1110dc065eeSBram Moolenaarhi def link slpregAttribute Identifier 1120dc065eeSBram Moolenaarhi def link slpregAttributeEq Operator 1130dc065eeSBram Moolenaarhi def link slpregAttrSValue String 1140dc065eeSBram Moolenaarhi def link slpregAttrSSValue slpregAttrSValue 1150dc065eeSBram Moolenaarhi def link slpregAttrIValue Number 1160dc065eeSBram Moolenaarhi def link slpregAttrBValue Boolean 1170dc065eeSBram Moolenaarhi def link slpregAttrValueSep slpregDelimiter 1180dc065eeSBram Moolenaar 1190dc065eeSBram Moolenaarlet b:current_syntax = "slpreg" 1200dc065eeSBram Moolenaar 1210dc065eeSBram Moolenaarlet &cpo = s:cpo_save 1220dc065eeSBram Moolenaarunlet s:cpo_save 123