10dc065eeSBram Moolenaar" Vim syntax file 20dc065eeSBram Moolenaar" Language: RFC 2614 - An API for Service Location configuration 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 slpconfTodo contained TODO FIXME XXX NOTE 140dc065eeSBram Moolenaar 150dc065eeSBram Moolenaarsyn region slpconfComment display oneline start='^[#;]' end='$' 160dc065eeSBram Moolenaar \ contains=slpconfTodo,@Spell 170dc065eeSBram Moolenaar 180dc065eeSBram Moolenaarsyn match slpconfBegin display '^' 190dc065eeSBram Moolenaar \ nextgroup=slpconfTag, 200dc065eeSBram Moolenaar \ slpconfComment skipwhite 210dc065eeSBram Moolenaar 220dc065eeSBram Moolenaarsyn keyword slpconfTag contained net 230dc065eeSBram Moolenaar \ nextgroup=slpconfNetTagDot 240dc065eeSBram Moolenaar 250dc065eeSBram Moolenaarsyn match slpconfNetTagDot contained display '.' 260dc065eeSBram Moolenaar \ nextgroup=slpconfNetTag 270dc065eeSBram Moolenaar 280dc065eeSBram Moolenaarsyn keyword slpconfNetTag contained slp 290dc065eeSBram Moolenaar \ nextgroup=slpconfNetSlpTagdot 300dc065eeSBram Moolenaar 310dc065eeSBram Moolenaarsyn match slpconfNetSlpTagDot contained display '.' 320dc065eeSBram Moolenaar \ nextgroup=slpconfNetSlpTag 330dc065eeSBram Moolenaar 340dc065eeSBram Moolenaarsyn keyword slpconfNetSlpTag contained isDA traceDATraffic traceMsg 350dc065eeSBram Moolenaar \ traceDrop traceReg isBroadcastOnly 360dc065eeSBram Moolenaar \ passiveDADetection securityEnabled 370dc065eeSBram Moolenaar \ nextgroup=slpconfBooleanEq,slpconfBooleanHome 380dc065eeSBram Moolenaar \ skipwhite 390dc065eeSBram Moolenaar 400dc065eeSBram Moolenaarsyn match slpconfBooleanHome contained display 410dc065eeSBram Moolenaar \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}' 420dc065eeSBram Moolenaar \ nextgroup=slpconfBooleanEq skipwhite 430dc065eeSBram Moolenaar 440dc065eeSBram Moolenaarsyn match slpconfBooleanEq contained display '=' 450dc065eeSBram Moolenaar \ nextgroup=slpconfBoolean skipwhite 460dc065eeSBram Moolenaar 470dc065eeSBram Moolenaarsyn keyword slpconfBoolean contained true false TRUE FALSE 480dc065eeSBram Moolenaar 490dc065eeSBram Moolenaarsyn keyword slpconfNetSlpTag contained DAHeartBeat multicastTTL 500dc065eeSBram Moolenaar \ DAActiveDiscoveryInterval 510dc065eeSBram Moolenaar \ multicastMaximumWait multicastTimeouts 520dc065eeSBram Moolenaar \ randomWaitBound MTU maxResults 530dc065eeSBram Moolenaar \ nextgroup=slpconfIntegerEq,slpconfIntegerHome 540dc065eeSBram Moolenaar \ skipwhite 550dc065eeSBram Moolenaar 560dc065eeSBram Moolenaarsyn match slpconfIntegerHome contained display 570dc065eeSBram Moolenaar \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}' 580dc065eeSBram Moolenaar \ nextgroup=slpconfIntegerEq skipwhite 590dc065eeSBram Moolenaar 600dc065eeSBram Moolenaarsyn match slpconfIntegerEq contained display '=' 610dc065eeSBram Moolenaar \ nextgroup=slpconfInteger skipwhite 620dc065eeSBram Moolenaar 630dc065eeSBram Moolenaarsyn match slpconfInteger contained display '\<\d\+\>' 640dc065eeSBram Moolenaar 650dc065eeSBram Moolenaarsyn keyword slpconfNetSlpTag contained DAAttributes SAAttributes 660dc065eeSBram Moolenaar \ nextgroup=slpconfAttrEq,slpconfAttrHome 670dc065eeSBram Moolenaar \ skipwhite 680dc065eeSBram Moolenaar 690dc065eeSBram Moolenaarsyn match slpconfAttrHome contained display 700dc065eeSBram Moolenaar \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}' 710dc065eeSBram Moolenaar \ nextgroup=slpconfAttrEq skipwhite 720dc065eeSBram Moolenaar 730dc065eeSBram Moolenaarsyn match slpconfAttrEq contained display '=' 740dc065eeSBram Moolenaar \ nextgroup=slpconfAttrBegin skipwhite 750dc065eeSBram Moolenaar 760dc065eeSBram Moolenaarsyn match slpconfAttrBegin contained display '(' 770dc065eeSBram Moolenaar \ nextgroup=slpconfAttrTag skipwhite 780dc065eeSBram Moolenaar 790dc065eeSBram Moolenaarsyn match slpconfAttrTag contained display 800dc065eeSBram Moolenaar \ '[^* \t_(),\\!<=>~[:cntrl:]]\+' 810dc065eeSBram Moolenaar \ nextgroup=slpconfAttrTagEq skipwhite 820dc065eeSBram Moolenaar 830dc065eeSBram Moolenaarsyn match slpconfAttrTagEq contained display '=' 840dc065eeSBram Moolenaar \ nextgroup=@slpconfAttrValue skipwhite 850dc065eeSBram Moolenaar 860dc065eeSBram Moolenaarsyn cluster slpconfAttrValueCon contains=slpconfAttrValueSep,slpconfAttrEnd 870dc065eeSBram Moolenaar 880dc065eeSBram Moolenaarsyn cluster slpconfAttrValue contains=slpconfAttrIValue,slpconfAttrSValue, 890dc065eeSBram Moolenaar \ slpconfAttrBValue,slpconfAttrSSValue 900dc065eeSBram Moolenaar 910dc065eeSBram Moolenaarsyn match slpconfAttrSValue contained display '[^ (),\\!<=>~[:cntrl:]]\+' 920dc065eeSBram Moolenaar \ nextgroup=@slpconfAttrValueCon skipwhite 930dc065eeSBram Moolenaar 940dc065eeSBram Moolenaarsyn match slpconfAttrSSValue contained display '\\FF\%(\\\x\x\)\+' 950dc065eeSBram Moolenaar \ nextgroup=@slpconfAttrValueCon skipwhite 960dc065eeSBram Moolenaar 970dc065eeSBram Moolenaarsyn match slpconfAttrIValue contained display '[-]\=\d\+\>' 980dc065eeSBram Moolenaar \ nextgroup=@slpconfAttrValueCon skipwhite 990dc065eeSBram Moolenaar 1000dc065eeSBram Moolenaarsyn keyword slpconfAttrBValue contained true false 1010dc065eeSBram Moolenaar \ nextgroup=@slpconfAttrValueCon skipwhite 1020dc065eeSBram Moolenaar 1030dc065eeSBram Moolenaarsyn match slpconfAttrValueSep contained display ',' 1040dc065eeSBram Moolenaar \ nextgroup=@slpconfAttrValue skipwhite 1050dc065eeSBram Moolenaar 1060dc065eeSBram Moolenaarsyn match slpconfAttrEnd contained display ')' 1070dc065eeSBram Moolenaar \ nextgroup=slpconfAttrSep skipwhite 1080dc065eeSBram Moolenaar 1090dc065eeSBram Moolenaarsyn match slpconfAttrSep contained display ',' 1100dc065eeSBram Moolenaar \ nextgroup=slpconfAttrBegin skipwhite 1110dc065eeSBram Moolenaar 1120dc065eeSBram Moolenaarsyn keyword slpconfNetSlpTag contained useScopes typeHint 1130dc065eeSBram Moolenaar \ nextgroup=slpconfStringsEq,slpconfStringsHome 1140dc065eeSBram Moolenaar \ skipwhite 1150dc065eeSBram Moolenaar 1160dc065eeSBram Moolenaarsyn match slpconfStringsHome contained display 1170dc065eeSBram Moolenaar \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}' 1180dc065eeSBram Moolenaar \ nextgroup=slpconfStringsEq skipwhite 1190dc065eeSBram Moolenaar 1200dc065eeSBram Moolenaarsyn match slpconfStringsEq contained display '=' 1210dc065eeSBram Moolenaar \ nextgroup=slpconfStrings skipwhite 1220dc065eeSBram Moolenaar 1230dc065eeSBram Moolenaarsyn match slpconfStrings contained display 1240dc065eeSBram Moolenaar \ '\%([[:digit:][:alpha:]]\|[!-+./:-@[-`{-~-]\|\\\x\x\)\+' 1250dc065eeSBram Moolenaar \ nextgroup=slpconfStringsSep skipwhite 1260dc065eeSBram Moolenaar 1270dc065eeSBram Moolenaarsyn match slpconfStringsSep contained display ',' 1280dc065eeSBram Moolenaar \ nextgroup=slpconfStrings skipwhite 1290dc065eeSBram Moolenaar 1300dc065eeSBram Moolenaarsyn keyword slpconfNetSlpTag contained DAAddresses 1310dc065eeSBram Moolenaar \ nextgroup=slpconfAddressesEq,slpconfAddrsHome 1320dc065eeSBram Moolenaar \ skipwhite 1330dc065eeSBram Moolenaar 1340dc065eeSBram Moolenaarsyn match slpconfAddrsHome contained display 1350dc065eeSBram Moolenaar \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}' 1360dc065eeSBram Moolenaar \ nextgroup=slpconfAddressesEq skipwhite 1370dc065eeSBram Moolenaar 1380dc065eeSBram Moolenaarsyn match slpconfAddressesEq contained display '=' 1390dc065eeSBram Moolenaar \ nextgroup=@slpconfAddresses skipwhite 1400dc065eeSBram Moolenaar 1410dc065eeSBram Moolenaarsyn cluster slpconfAddresses contains=slpconfFQDNs,slpconfHostnumbers 1420dc065eeSBram Moolenaar 1430dc065eeSBram Moolenaarsyn match slpconfFQDNs contained display 1440dc065eeSBram Moolenaar \ '\a[[:alnum:]-]*[[:alnum:]]\|\a' 1450dc065eeSBram Moolenaar \ nextgroup=slpconfAddressesSep skipwhite 1460dc065eeSBram Moolenaar 1470dc065eeSBram Moolenaarsyn match slpconfHostnumbers contained display 1480dc065eeSBram Moolenaar \ '\d\{1,3}\%(\.\d\{1,3}\)\{3}' 1490dc065eeSBram Moolenaar \ nextgroup=slpconfAddressesSep skipwhite 1500dc065eeSBram Moolenaar 1510dc065eeSBram Moolenaarsyn match slpconfAddressesSep contained display ',' 1520dc065eeSBram Moolenaar \ nextgroup=@slpconfAddresses skipwhite 1530dc065eeSBram Moolenaar 1540dc065eeSBram Moolenaarsyn keyword slpconfNetSlpTag contained serializedRegURL 1550dc065eeSBram Moolenaar \ nextgroup=slpconfStringEq,slpconfStringHome 1560dc065eeSBram Moolenaar \ skipwhite 1570dc065eeSBram Moolenaar 1580dc065eeSBram Moolenaarsyn match slpconfStringHome contained display 1590dc065eeSBram Moolenaar \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}' 1600dc065eeSBram Moolenaar \ nextgroup=slpconfStringEq skipwhite 1610dc065eeSBram Moolenaar 1620dc065eeSBram Moolenaarsyn match slpconfStringEq contained display '=' 1630dc065eeSBram Moolenaar \ nextgroup=slpconfString skipwhite 1640dc065eeSBram Moolenaar 1650dc065eeSBram Moolenaarsyn match slpconfString contained display 1660dc065eeSBram Moolenaar \ '\%([!-+./:-@[-`{-~-]\|\\\x\x\)\+\|[[:digit:][:alpha:]]' 1670dc065eeSBram Moolenaar 1680dc065eeSBram Moolenaarsyn keyword slpconfNetSlpTag contained multicastTimeouts DADiscoveryTimeouts 1690dc065eeSBram Moolenaar \ datagramTimeouts 1700dc065eeSBram Moolenaar \ nextgroup=slpconfIntegersEq, 1710dc065eeSBram Moolenaar \ slpconfIntegersHome skipwhite 1720dc065eeSBram Moolenaar 1730dc065eeSBram Moolenaarsyn match slpconfIntegersHome contained display 1740dc065eeSBram Moolenaar \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}' 1750dc065eeSBram Moolenaar \ nextgroup=slpconfIntegersEq skipwhite 1760dc065eeSBram Moolenaar 1770dc065eeSBram Moolenaarsyn match slpconfIntegersEq contained display '=' 1780dc065eeSBram Moolenaar \ nextgroup=slpconfIntegers skipwhite 1790dc065eeSBram Moolenaar 1800dc065eeSBram Moolenaarsyn match slpconfIntegers contained display '\<\d\+\>' 1810dc065eeSBram Moolenaar \ nextgroup=slpconfIntegersSep skipwhite 1820dc065eeSBram Moolenaar 1830dc065eeSBram Moolenaarsyn match slpconfIntegersSep contained display ',' 1840dc065eeSBram Moolenaar \ nextgroup=slpconfIntegers skipwhite 1850dc065eeSBram Moolenaar 1860dc065eeSBram Moolenaarsyn keyword slpconfNetSlpTag contained interfaces 1870dc065eeSBram Moolenaar \ nextgroup=slpconfHostnumsEq, 1880dc065eeSBram Moolenaar \ slpconfHostnumsHome skipwhite 1890dc065eeSBram Moolenaar 1900dc065eeSBram Moolenaarsyn match slpconfHostnumsHome contained display 1910dc065eeSBram Moolenaar \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}' 1920dc065eeSBram Moolenaar \ nextgroup=slpconfHostnumsEq skipwhite 1930dc065eeSBram Moolenaar 1940dc065eeSBram Moolenaarsyn match slpconfHostnumsEq contained display '=' 1950dc065eeSBram Moolenaar \ nextgroup=slpconfOHostnumbers skipwhite 1960dc065eeSBram Moolenaar 1970dc065eeSBram Moolenaarsyn match slpconfOHostnumbers contained display 1980dc065eeSBram Moolenaar \ '\d\{1,3}\%(\.\d\{1,3}\)\{3}' 1990dc065eeSBram Moolenaar \ nextgroup=slpconfHostnumsSep skipwhite 2000dc065eeSBram Moolenaar 2010dc065eeSBram Moolenaarsyn match slpconfHostnumsSep contained display ',' 2020dc065eeSBram Moolenaar \ nextgroup=slpconfOHostnumbers skipwhite 2030dc065eeSBram Moolenaar 2040dc065eeSBram Moolenaarsyn keyword slpconfNetSlpTag contained locale 2050dc065eeSBram Moolenaar \ nextgroup=slpconfLocaleEq,slpconfLocaleHome 2060dc065eeSBram Moolenaar \ skipwhite 2070dc065eeSBram Moolenaar 2080dc065eeSBram Moolenaarsyn match slpconfLocaleHome contained display 2090dc065eeSBram Moolenaar \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}' 2100dc065eeSBram Moolenaar \ nextgroup=slpconfLocaleEq skipwhite 2110dc065eeSBram Moolenaar 2120dc065eeSBram Moolenaarsyn match slpconfLocaleEq contained display '=' 2130dc065eeSBram Moolenaar \ nextgroup=slpconfLocale skipwhite 2140dc065eeSBram Moolenaar 2150dc065eeSBram Moolenaarsyn match slpconfLocale contained display '\a\{1,8}\%(-\a\{1,8}\)\=' 2160dc065eeSBram Moolenaar 2170dc065eeSBram Moolenaarhi def link slpconfTodo Todo 2180dc065eeSBram Moolenaarhi def link slpconfComment Comment 2190dc065eeSBram Moolenaarhi def link slpconfTag Identifier 2200dc065eeSBram Moolenaarhi def link slpconfDelimiter Delimiter 2210dc065eeSBram Moolenaarhi def link slpconfNetTagDot slpconfDelimiter 2220dc065eeSBram Moolenaarhi def link slpconfNetTag slpconfTag 2230dc065eeSBram Moolenaarhi def link slpconfNetSlpTagDot slpconfNetTagDot 2240dc065eeSBram Moolenaarhi def link slpconfNetSlpTag slpconfTag 2250dc065eeSBram Moolenaarhi def link slpconfHome Special 2260dc065eeSBram Moolenaarhi def link slpconfBooleanHome slpconfHome 2270dc065eeSBram Moolenaarhi def link slpconfEq Operator 2280dc065eeSBram Moolenaarhi def link slpconfBooleanEq slpconfEq 2290dc065eeSBram Moolenaarhi def link slpconfBoolean Boolean 2300dc065eeSBram Moolenaarhi def link slpconfIntegerHome slpconfHome 2310dc065eeSBram Moolenaarhi def link slpconfIntegerEq slpconfEq 2320dc065eeSBram Moolenaarhi def link slpconfInteger Number 2330dc065eeSBram Moolenaarhi def link slpconfAttrHome slpconfHome 2340dc065eeSBram Moolenaarhi def link slpconfAttrEq slpconfEq 2350dc065eeSBram Moolenaarhi def link slpconfAttrBegin slpconfDelimiter 2360dc065eeSBram Moolenaarhi def link slpconfAttrTag slpconfTag 2370dc065eeSBram Moolenaarhi def link slpconfAttrTagEq slpconfEq 2380dc065eeSBram Moolenaarhi def link slpconfAttrIValue slpconfInteger 2390dc065eeSBram Moolenaarhi def link slpconfAttrSValue slpconfString 2400dc065eeSBram Moolenaarhi def link slpconfAttrBValue slpconfBoolean 2410dc065eeSBram Moolenaarhi def link slpconfAttrSSValue slpconfString 2420dc065eeSBram Moolenaarhi def link slpconfSeparator slpconfDelimiter 2430dc065eeSBram Moolenaarhi def link slpconfAttrValueSep slpconfSeparator 2440dc065eeSBram Moolenaarhi def link slpconfAttrEnd slpconfAttrBegin 2450dc065eeSBram Moolenaarhi def link slpconfAttrSep slpconfSeparator 2460dc065eeSBram Moolenaarhi def link slpconfStringsHome slpconfHome 2470dc065eeSBram Moolenaarhi def link slpconfStringsEq slpconfEq 2480dc065eeSBram Moolenaarhi def link slpconfStrings slpconfString 2490dc065eeSBram Moolenaarhi def link slpconfStringsSep slpconfSeparator 2500dc065eeSBram Moolenaarhi def link slpconfAddrsHome slpconfHome 2510dc065eeSBram Moolenaarhi def link slpconfAddressesEq slpconfEq 2520dc065eeSBram Moolenaarhi def link slpconfFQDNs String 2530dc065eeSBram Moolenaarhi def link slpconfHostnumbers Number 2540dc065eeSBram Moolenaarhi def link slpconfAddressesSep slpconfSeparator 2550dc065eeSBram Moolenaarhi def link slpconfStringHome slpconfHome 2560dc065eeSBram Moolenaarhi def link slpconfStringEq slpconfEq 2570dc065eeSBram Moolenaarhi def link slpconfString String 2580dc065eeSBram Moolenaarhi def link slpconfIntegersHome slpconfHome 2590dc065eeSBram Moolenaarhi def link slpconfIntegersEq slpconfEq 2600dc065eeSBram Moolenaarhi def link slpconfIntegers slpconfInteger 2610dc065eeSBram Moolenaarhi def link slpconfIntegersSep slpconfSeparator 2620dc065eeSBram Moolenaarhi def link slpconfHostnumsHome slpconfHome 2630dc065eeSBram Moolenaarhi def link slpconfHostnumsEq slpconfEq 2640dc065eeSBram Moolenaarhi def link slpconfOHostnumbers slpconfHostnumbers 2650dc065eeSBram Moolenaarhi def link slpconfHostnumsSep slpconfSeparator 2660dc065eeSBram Moolenaarhi def link slpconfLocaleHome slpconfHome 2670dc065eeSBram Moolenaarhi def link slpconfLocaleEq slpconfEq 2680dc065eeSBram Moolenaarhi def link slpconfLocale slpconfString 2690dc065eeSBram Moolenaar 2700dc065eeSBram Moolenaarlet b:current_syntax = "slpconf" 2710dc065eeSBram Moolenaar 2720dc065eeSBram Moolenaarlet &cpo = s:cpo_save 2730dc065eeSBram Moolenaarunlet s:cpo_save 274