1" Vim syntax file
2" Language:         udev(8) permissions 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 match   udevpermBegin       display '^' nextgroup=udevpermDevice
14
15syn match   udevpermDevice      contained display '[^:]\+'
16                                \ contains=udevpermPattern
17                                \ nextgroup=udevpermUserColon
18
19syn match   udevpermPattern     contained '[*?]'
20syn region  udevpermPattern     contained start='\[!\=' end='\]'
21                                \ contains=udevpermPatRange
22
23syn match   udevpermPatRange    contained '[^[-]-[^]-]'
24
25syn match   udevpermUserColon   contained display ':'
26                                \ nextgroup=udevpermUser
27
28syn match   udevpermUser        contained display '[^:]\+'
29                                \ nextgroup=udevpermGroupColon
30
31syn match   udevpermGroupColon  contained display ':'
32                                \ nextgroup=udevpermGroup
33
34syn match   udevpermGroup       contained display '[^:]\+'
35                                \ nextgroup=udevpermPermColon
36
37syn match   udevpermPermColon   contained display ':'
38                                \ nextgroup=udevpermPerm
39
40syn match   udevpermPerm        contained display '\<0\=\o\+\>'
41                                \ contains=udevpermOctalZero
42
43syn match   udevpermOctalZero   contained display '\<0'
44syn match   udevpermOctalError  contained display '\<0\o*[89]\d*\>'
45
46syn keyword udevpermTodo        contained TODO FIXME XXX NOTE
47
48syn region  udevpermComment     display oneline start='^\s*#' end='$'
49                                \ contains=udevpermTodo,@Spell
50
51hi def link udevpermTodo        Todo
52hi def link udevpermComment     Comment
53hi def link udevpermDevice      String
54hi def link udevpermPattern     SpecialChar
55hi def link udevpermPatRange    udevpermPattern
56hi def link udevpermColon       Normal
57hi def link udevpermUserColon   udevpermColon
58hi def link udevpermUser        Identifier
59hi def link udevpermGroupColon  udevpermColon
60hi def link udevpermGroup       Type
61hi def link udevpermPermColon   udevpermColon
62hi def link udevpermPerm        Number
63hi def link udevpermOctalZero   PreProc
64hi def link udevpermOctalError  Error
65
66let b:current_syntax = "udevperm"
67
68let &cpo = s:cpo_save
69unlet s:cpo_save
70