1" pf syntax file 2" Language: OpenBSD packet filter configuration (pf.conf) 3" Maintainer: Camiel Dobbelaar <cd@sentia.nl> 4" Last Change: 2003 May 27 5 6" For version 5.x: Clear all syntax items 7" For version 6.x: Quit when a syntax file was already loaded 8if version < 600 9 syntax clear 10elseif exists("b:current_syntax") 11 finish 12endif 13 14setlocal foldmethod=syntax 15syn sync fromstart 16 17syn cluster pfNotLS contains=pfComment,pfTodo,pfVarAssign 18syn keyword pfCmd altq anchor antispoof binat nat pass 19syn keyword pfCmd queue rdr scrub table set 20syn keyword pfService auth bgp domain finger ftp http https ident 21syn keyword pfService imap irc isakmp kerberos mail nameserver nfs 22syn keyword pfService nntp ntp pop3 portmap pptp rpcbind rsync smtp 23syn keyword pfService snmp snmptrap socks ssh sunrpc syslog telnet 24syn keyword pfService tftp www 25syn keyword pfTodo TODO XXX contained 26syn keyword pfWildAddr all any 27syn match pfCmd /block\s/ 28syn match pfComment /#.*$/ contains=pfTodo 29syn match pfCont /\\$/ 30syn match pfErrClose /}/ 31syn match pfIPv4 /\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}/ 32syn match pfIPv6 /[a-fA-F0-9:]*::[a-fA-F0-9:.]*/ 33syn match pfIPv6 /[a-fA-F0-9:]\+:[a-fA-F0-9:]\+:[a-fA-F0-9:.]\+/ 34syn match pfNetmask /\/\d\+/ 35syn match pfNum /[a-zA-Z0-9_:.]\@<!\d\+[a-zA-Z0-9_:.]\@!/ 36syn match pfTable /<\s*[a-zA-Z][a-zA-Z0-9_]*\s*>/ 37syn match pfVar /$[a-zA-Z][a-zA-Z0-9_]*/ 38syn match pfVarAssign /^\s*[a-zA-Z][a-zA-Z0-9_]*\s*=/me=e-1 39syn region pfFold1 start=/^#\{1}>/ end=/^#\{1,3}>/me=s-1 transparent fold 40syn region pfFold2 start=/^#\{2}>/ end=/^#\{2,3}>/me=s-1 transparent fold 41syn region pfFold3 start=/^#\{3}>/ end=/^#\{3}>/me=s-1 transparent fold 42syn region pfList start=/{/ end=/}/ transparent contains=ALLBUT,pfErrClose,@pfNotLS 43syn region pfString start=/"/ end=/"/ transparent contains=ALLBUT,pfString,@pfNotLS 44syn region pfString start=/'/ end=/'/ transparent contains=ALLBUT,pfString,@pfNotLS 45 46" Define the default highlighting. 47" For version 5.7 and earlier: only when not done already 48" For version 5.8 and later: only when an item doesn't have highlighting yet 49if version >= 508 || !exists("did_c_syn_inits") 50 if version < 508 51 let did_c_syn_inits = 1 52 command -nargs=+ HiLink hi link <args> 53 else 54 command -nargs=+ HiLink hi def link <args> 55 endif 56 57 HiLink pfCmd Statement 58 HiLink pfComment Comment 59 HiLink pfCont Statement 60 HiLink pfErrClose Error 61 HiLink pfIPv4 Type 62 HiLink pfIPv6 Type 63 HiLink pfNetmask Constant 64 HiLink pfNum Constant 65 HiLink pfService Constant 66 HiLink pfTable Identifier 67 HiLink pfTodo Todo 68 HiLink pfVar Identifier 69 HiLink pfVarAssign Identifier 70 HiLink pfWildAddr Type 71 72 delcommand HiLink 73endif 74 75let b:current_syntax = "pf" 76