home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / runtime / dos / syntax / bindzone.vim < prev    next >
Encoding:
Text File  |  2012-05-31  |  5.2 KB  |  111 lines

  1. " Vim syntax file
  2. " Language:     BIND zone files (RFC 1035)
  3. " Maintainer:   Julian Mehnle <julian@mehnle.net>
  4. " URL:          http://www.mehnle.net/source/odds+ends/vim/syntax/
  5. " Last Change:  Thu 2011-07-16 20:42:00 UTC
  6. " Based on an earlier version by ╨Æ╤Å╤ç╨╡╤ü╨╗╨░╨▓ ╨ô╨╛╤Ç╨▒╨░╨╜╨╡╨▓ (Slava Gorbanev), with
  7. " heavy modifications.
  8. " $Id: bindzone.vim 12 2011-07-16 21:09:57Z julian $
  9.  
  10. " For version 5.x: Clear all syntax items
  11. " For version 6.x: Quit when a syntax file was already loaded
  12. if version < 600
  13.   syntax clear
  14. elseif exists("b:current_syntax")
  15.   finish
  16. endif
  17.  
  18. syn case match
  19.  
  20. " Directives
  21. syn region      zoneRRecord     start=/^/ end=/$/ contains=zoneOwnerName,zoneSpecial,zoneTTL,zoneClass,zoneRRType,zoneComment,zoneUnknown
  22.  
  23. syn match       zoneDirective   /^\$ORIGIN\s\+/   nextgroup=zoneOrigin,zoneUnknown
  24. syn match       zoneDirective   /^\$TTL\s\+/      nextgroup=zoneTTL,zoneUnknown
  25. syn match       zoneDirective   /^\$INCLUDE\s\+/  nextgroup=zoneText,zoneUnknown
  26. syn match       zoneDirective   /^\$GENERATE\s/
  27.  
  28. syn match       zoneUnknown     contained /\S\+/
  29.  
  30. syn match       zoneOwnerName   contained /^[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\)\@=/ nextgroup=zoneTTL,zoneClass,zoneRRType skipwhite
  31. syn match       zoneOrigin      contained  /[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\|$\)\@=/
  32. syn match       zoneDomain      contained  /[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\|$\)\@=/
  33.  
  34. syn match       zoneSpecial     contained /^[@*.]\s/
  35. syn match       zoneTTL         contained /\s\@<=\d[0-9WwDdHhMmSs]*\(\s\|$\)\@=/ nextgroup=zoneClass,zoneRRType skipwhite
  36. syn keyword     zoneClass       contained IN CHAOS nextgroup=zoneRRType,zoneTTL skipwhite
  37. syn keyword     zoneRRType      contained A AAAA CNAME DNAME HINFO MX NS PTR SOA SRV TXT SPF nextgroup=zoneRData skipwhite
  38. syn match       zoneRData       contained /[^;]*/ contains=zoneDomain,zoneIPAddr,zoneIP6Addr,zoneText,zoneNumber,zoneParen,zoneUnknown
  39.  
  40. syn match       zoneIPAddr      contained /\<[0-9]\{1,3}\(\.[0-9]\{1,3}\)\{,3}\>/
  41.  
  42. "   Plain IPv6 address          IPv6-embedded-IPv4 address
  43. "   1111:2:3:4:5:6:7:8          1111:2:3:4:5:6:127.0.0.1
  44. syn match       zoneIP6Addr     contained /\<\(\x\{1,4}:\)\{6}\(\x\{1,4}:\x\{1,4}\|\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/
  45. "   ::[...:]8                   ::[...:]127.0.0.1
  46. syn 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}\)\>/
  47. "   1111::[...:]8               1111::[...:]127.0.0.1
  48. syn 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}\)\>/
  49. "   1111:2::[...:]8             1111:2::[...:]127.0.0.1
  50. syn 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}\)\>/
  51. "   1111:2:3::[...:]8           1111:2:3::[...:]127.0.0.1
  52. syn 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}\)\>/
  53. "   1111:2:3:4::[...:]8         1111:2:3:4::[...:]127.0.0.1
  54. syn 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}\)\>/
  55. "   1111:2:3:4:5::[...:]8       1111:2:3:4:5::127.0.0.1
  56. syn 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}\)\>/
  57. "   1111:2:3:4:5:6::8           -
  58. syn match       zoneIP6Addr     contained /\<\(\x\{1,4}:\)\{6}:\x\{1,4}\>/
  59. "   1111[:...]::                -
  60. syn match       zoneIP6Addr     contained /\<\(\x\{1,4}:\)\{1,7}:\(\s\|;\|$\)\@=/
  61.  
  62. syn match       zoneText        contained /"\([^"\\]\|\\.\)*"\(\s\|;\|$\)\@=/
  63. syn match       zoneNumber      contained /\<[0-9]\+\(\s\|;\|$\)\@=/
  64. syn match       zoneSerial      contained /\<[0-9]\{9,10}\(\s\|;\|$\)\@=/
  65.  
  66. syn match       zoneErrParen    /)/
  67. syn region      zoneParen       contained start="(" end=")" contains=zoneSerial,zoneTTL,zoneNumber,zoneComment
  68. syn match       zoneComment     /;.*/
  69.  
  70. " Define the default highlighting.
  71. " For version 5.7 and earlier: only when not done already
  72. " For version 5.8 and later: only when an item doesn't have highlighting yet
  73. if version >= 508 || !exists("did_bind_zone_syn_inits")
  74.   if version < 508
  75.     let did_bind_zone_syn_inits = 1
  76.     command -nargs=+ HiLink hi link <args>
  77.   else
  78.     command -nargs=+ HiLink hi def link <args>
  79.   endif
  80.  
  81.   HiLink zoneDirective    Macro
  82.   
  83.   HiLink zoneUnknown      Error
  84.   
  85.   HiLink zoneOrigin       Statement
  86.   HiLink zoneOwnerName    Statement
  87.   HiLink zoneDomain       Identifier
  88.   
  89.   HiLink zoneSpecial      Special
  90.   HiLink zoneTTL          Constant
  91.   HiLink zoneClass        Include
  92.   HiLink zoneRRType       Type
  93.   
  94.   HiLink zoneIPAddr       Number
  95.   HiLink zoneIP6Addr      Number
  96.   HiLink zoneText         String
  97.   HiLink zoneNumber       Number
  98.   HiLink zoneSerial       Special
  99.   
  100.   HiLink zoneErrParen     Error
  101.   HiLink zoneComment      Comment
  102.  
  103.   delcommand HiLink
  104. endif
  105.  
  106. let b:current_syntax = "bindzone"
  107.  
  108. " vim:sts=2 sw=2
  109.