1071d4279SBram Moolenaar" Vim syntax file 2fc1421ebSBram Moolenaar" Language: BIND zone files (RFC 1035) 3fc1421ebSBram Moolenaar" Maintainer: Julian Mehnle <[email protected]> 4fc1421ebSBram Moolenaar" URL: http://www.mehnle.net/source/odds+ends/vim/syntax/ 59729301aSBram Moolenaar" Last Change: Thu 2011-07-16 20:42:00 UTC 6fc1421ebSBram Moolenaar" 7fc1421ebSBram Moolenaar" Based on an earlier version by Вячеслав Горбанев (Slava Gorbanev), with 8fc1421ebSBram Moolenaar" heavy modifications. 9fc1421ebSBram Moolenaar" 109729301aSBram Moolenaar" $Id: bindzone.vim 12 2011-07-16 21:09:57Z julian $ 11071d4279SBram Moolenaar 1289bcfda6SBram Moolenaar" quit when a syntax file was already loaded 1389bcfda6SBram Moolenaarif exists("b:current_syntax") 14071d4279SBram Moolenaar finish 15071d4279SBram Moolenaarendif 16071d4279SBram Moolenaar 17071d4279SBram Moolenaarsyn case match 18071d4279SBram Moolenaar 19fc1421ebSBram Moolenaar" Directives 20fc1421ebSBram Moolenaarsyn region zoneRRecord start=/^/ end=/$/ contains=zoneOwnerName,zoneSpecial,zoneTTL,zoneClass,zoneRRType,zoneComment,zoneUnknown 21071d4279SBram Moolenaar 22fc1421ebSBram Moolenaarsyn match zoneDirective /^\$ORIGIN\s\+/ nextgroup=zoneOrigin,zoneUnknown 239729301aSBram Moolenaarsyn match zoneDirective /^\$TTL\s\+/ nextgroup=zoneTTL,zoneUnknown 24fc1421ebSBram Moolenaarsyn match zoneDirective /^\$INCLUDE\s\+/ nextgroup=zoneText,zoneUnknown 25fc1421ebSBram Moolenaarsyn match zoneDirective /^\$GENERATE\s/ 26071d4279SBram Moolenaar 27fc1421ebSBram Moolenaarsyn match zoneUnknown contained /\S\+/ 28071d4279SBram Moolenaar 29fc1421ebSBram Moolenaarsyn match zoneOwnerName contained /^[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\)\@=/ nextgroup=zoneTTL,zoneClass,zoneRRType skipwhite 30fc1421ebSBram Moolenaarsyn match zoneOrigin contained /[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\|$\)\@=/ 31fc1421ebSBram Moolenaarsyn match zoneDomain contained /[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\|$\)\@=/ 32071d4279SBram Moolenaar 33fc1421ebSBram Moolenaarsyn match zoneSpecial contained /^[@*.]\s/ 349729301aSBram Moolenaarsyn match zoneTTL contained /\s\@<=\d[0-9WwDdHhMmSs]*\(\s\|$\)\@=/ nextgroup=zoneClass,zoneRRType skipwhite 35*5be4ceecSBram Moolenaarsyn keyword zoneClass contained IN CHAOS CH HS HESIOD nextgroup=zoneRRType,zoneTTL skipwhite 36*5be4ceecSBram Moolenaarsyn keyword zoneRRType contained A AAAA CERT CNAME DNAME DNSKEY DS HINFO LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM PTR RP RRSIG SSHFP SOA SPF SRV TLSA TXT nextgroup=zoneRData skipwhite 37fc1421ebSBram Moolenaarsyn match zoneRData contained /[^;]*/ contains=zoneDomain,zoneIPAddr,zoneIP6Addr,zoneText,zoneNumber,zoneParen,zoneUnknown 38071d4279SBram Moolenaar 39fc1421ebSBram Moolenaarsyn match zoneIPAddr contained /\<[0-9]\{1,3}\(\.[0-9]\{1,3}\)\{,3}\>/ 40071d4279SBram Moolenaar 41fc1421ebSBram Moolenaar" Plain IPv6 address IPv6-embedded-IPv4 address 42fc1421ebSBram Moolenaar" 1111:2:3:4:5:6:7:8 1111:2:3:4:5:6:127.0.0.1 43fc1421ebSBram Moolenaarsyn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{6}\(\x\{1,4}:\x\{1,4}\|\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/ 44fc1421ebSBram Moolenaar" ::[...:]8 ::[...:]127.0.0.1 45fc1421ebSBram Moolenaarsyn match zoneIP6Addr contained /\s\@<=::\(\(\x\{1,4}:\)\{,6}\x\{1,4}\|\(\x\{1,4}:\)\{,5}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/ 46fc1421ebSBram Moolenaar" 1111::[...:]8 1111::[...:]127.0.0.1 47fc1421ebSBram Moolenaarsyn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{1}:\(\(\x\{1,4}:\)\{,5}\x\{1,4}\|\(\x\{1,4}:\)\{,4}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/ 48fc1421ebSBram Moolenaar" 1111:2::[...:]8 1111:2::[...:]127.0.0.1 49fc1421ebSBram Moolenaarsyn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{2}:\(\(\x\{1,4}:\)\{,4}\x\{1,4}\|\(\x\{1,4}:\)\{,3}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/ 50fc1421ebSBram Moolenaar" 1111:2:3::[...:]8 1111:2:3::[...:]127.0.0.1 51fc1421ebSBram Moolenaarsyn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{3}:\(\(\x\{1,4}:\)\{,3}\x\{1,4}\|\(\x\{1,4}:\)\{,2}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/ 52fc1421ebSBram Moolenaar" 1111:2:3:4::[...:]8 1111:2:3:4::[...:]127.0.0.1 53fc1421ebSBram Moolenaarsyn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{4}:\(\(\x\{1,4}:\)\{,2}\x\{1,4}\|\(\x\{1,4}:\)\{,1}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/ 54fc1421ebSBram Moolenaar" 1111:2:3:4:5::[...:]8 1111:2:3:4:5::127.0.0.1 55fc1421ebSBram Moolenaarsyn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{5}:\(\(\x\{1,4}:\)\{,1}\x\{1,4}\|\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/ 56fc1421ebSBram Moolenaar" 1111:2:3:4:5:6::8 - 57fc1421ebSBram Moolenaarsyn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{6}:\x\{1,4}\>/ 58fc1421ebSBram Moolenaar" 1111[:...]:: - 59fc1421ebSBram Moolenaarsyn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{1,7}:\(\s\|;\|$\)\@=/ 60071d4279SBram Moolenaar 61fc1421ebSBram Moolenaarsyn match zoneText contained /"\([^"\\]\|\\.\)*"\(\s\|;\|$\)\@=/ 62fc1421ebSBram Moolenaarsyn match zoneNumber contained /\<[0-9]\+\(\s\|;\|$\)\@=/ 63fc1421ebSBram Moolenaarsyn match zoneSerial contained /\<[0-9]\{9,10}\(\s\|;\|$\)\@=/ 64071d4279SBram Moolenaar 65071d4279SBram Moolenaarsyn match zoneErrParen /)/ 669729301aSBram Moolenaarsyn region zoneParen contained start="(" end=")" contains=zoneSerial,zoneTTL,zoneNumber,zoneComment 67fc1421ebSBram Moolenaarsyn match zoneComment /;.*/ 68071d4279SBram Moolenaar 69071d4279SBram Moolenaar" Define the default highlighting. 7089bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet 71071d4279SBram Moolenaar 72f37506f6SBram Moolenaarhi def link zoneDirective Macro 73fc1421ebSBram Moolenaar 74f37506f6SBram Moolenaarhi def link zoneUnknown Error 75fc1421ebSBram Moolenaar 76f37506f6SBram Moolenaarhi def link zoneOrigin Statement 77f37506f6SBram Moolenaarhi def link zoneOwnerName Statement 78f37506f6SBram Moolenaarhi def link zoneDomain Identifier 79071d4279SBram Moolenaar 80f37506f6SBram Moolenaarhi def link zoneSpecial Special 81f37506f6SBram Moolenaarhi def link zoneTTL Constant 82f37506f6SBram Moolenaarhi def link zoneClass Include 83f37506f6SBram Moolenaarhi def link zoneRRType Type 84fc1421ebSBram Moolenaar 85f37506f6SBram Moolenaarhi def link zoneIPAddr Number 86f37506f6SBram Moolenaarhi def link zoneIP6Addr Number 87f37506f6SBram Moolenaarhi def link zoneText String 88f37506f6SBram Moolenaarhi def link zoneNumber Number 89f37506f6SBram Moolenaarhi def link zoneSerial Special 90fc1421ebSBram Moolenaar 91f37506f6SBram Moolenaarhi def link zoneErrParen Error 92f37506f6SBram Moolenaarhi def link zoneComment Comment 93fc1421ebSBram Moolenaar 94071d4279SBram Moolenaar 95071d4279SBram Moolenaarlet b:current_syntax = "bindzone" 96071d4279SBram Moolenaar 97fc1421ebSBram Moolenaar" vim:sts=2 sw=2 98