1" Vim syntax file
2" Language:         login.access(5) configuration file
3" Maintainer:       Nikolai Weibull <now@bitwi.se>
4" Latest Revision:  2006-04-19
5
6if exists("b:current_syntax")
7  finish
8endif
9
10let s:cpo_save = &cpo
11set cpo&vim
12
13syn keyword loginaccessTodo           contained TODO FIXME XXX NOTE
14
15syn region  loginaccessComment        display oneline start='^#' end='$'
16                                      \ contains=loginaccessTodo,@Spell
17
18syn match   loginaccessBegin          display '^'
19                                      \ nextgroup=loginaccessPermission,
20                                      \ loginaccessComment skipwhite
21
22syn match   loginaccessPermission     contained display '[^#]'
23                                      \ contains=loginaccessPermError
24                                      \ nextgroup=loginaccessUserSep
25
26syn match   loginaccessPermError      contained display '[^+-]'
27
28syn match   loginaccessUserSep        contained display ':'
29                                      \ nextgroup=loginaccessUsers,
30                                      \ loginaccessAllUsers,
31                                      \ loginaccessExceptUsers
32
33syn match   loginaccessUsers          contained display '[^, \t:]\+'
34                                      \ nextgroup=loginaccessUserIntSep,
35                                      \ loginaccessOriginSep
36
37syn match   loginaccessAllUsers       contained display '\<ALL\>'
38                                      \ nextgroup=loginaccessUserIntSep,
39                                      \ loginaccessOriginSep
40
41syn match   loginaccessLocalUsers     contained display '\<LOCAL\>'
42                                      \ nextgroup=loginaccessUserIntSep,
43                                      \ loginaccessOriginSep
44
45syn match   loginaccessExceptUsers    contained display '\<EXCEPT\>'
46                                      \ nextgroup=loginaccessUserIntSep,
47                                      \ loginaccessOriginSep
48
49syn match   loginaccessUserIntSep     contained display '[, \t]'
50                                      \ nextgroup=loginaccessUsers,
51                                      \ loginaccessAllUsers,
52                                      \ loginaccessExceptUsers
53
54syn match   loginaccessOriginSep      contained display ':'
55                                      \ nextgroup=loginaccessOrigins,
56                                      \ loginaccessAllOrigins,
57                                      \ loginaccessExceptOrigins
58
59syn match   loginaccessOrigins        contained display '[^, \t]\+'
60                                      \ nextgroup=loginaccessOriginIntSep
61
62syn match   loginaccessAllOrigins     contained display '\<ALL\>'
63                                      \ nextgroup=loginaccessOriginIntSep
64
65syn match   loginaccessLocalOrigins   contained display '\<LOCAL\>'
66                                      \ nextgroup=loginaccessOriginIntSep
67
68syn match   loginaccessExceptOrigins  contained display '\<EXCEPT\>'
69                                      \ nextgroup=loginaccessOriginIntSep
70
71syn match   loginaccessOriginIntSep   contained display '[, \t]'
72                                      \ nextgroup=loginaccessOrigins,
73                                      \ loginaccessAllOrigins,
74                                      \ loginaccessExceptOrigins
75
76hi def link loginaccessTodo           Todo
77hi def link loginaccessComment        Comment
78hi def link loginaccessPermission     Type
79hi def link loginaccessPermError      Error
80hi def link loginaccessUserSep        Delimiter
81hi def link loginaccessUsers          Identifier
82hi def link loginaccessAllUsers       Macro
83hi def link loginaccessLocalUsers     Macro
84hi def link loginaccessExceptUsers    Operator
85hi def link loginaccessUserIntSep     loginaccessUserSep
86hi def link loginaccessOriginSep      loginaccessUserSep
87hi def link loginaccessOrigins        Identifier
88hi def link loginaccessAllOrigins     Macro
89hi def link loginaccessLocalOrigins   Macro
90hi def link loginaccessExceptOrigins  loginaccessExceptUsers
91hi def link loginaccessOriginIntSep   loginaccessUserSep
92
93let b:current_syntax = "loginaccess"
94
95let &cpo = s:cpo_save
96unlet s:cpo_save
97