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