xref: /vim-8.2.3635/runtime/syntax/racc.vim (revision 214641f7)
1" Vim default file
2" Language:             Racc input file
3" Previous Maintainer:  Nikolai Weibull <[email protected]>
4" Latest Revision:      2008-06-22
5
6if exists("b:current_syntax")
7  finish
8endif
9
10let s:cpo_save = &cpo
11set cpo&vim
12
13syn keyword raccTodo        contained TODO FIXME XXX NOTE
14
15syn region  raccComment     start='/\*' end='\*/'
16                            \ contains=raccTodo,@Spell
17syn region  raccComment     display oneline start='#' end='$'
18                            \ contains=raccTodo,@Spell
19
20syn region  raccClass       transparent matchgroup=raccKeyword
21                            \ start='\<class\>' end='\<rule\>'he=e-4
22                            \ contains=raccComment,raccPrecedence,
23                            \ raccTokenDecl,raccExpect,raccOptions,raccConvert,
24                            \ raccStart,
25
26syn region  raccPrecedence  transparent matchgroup=raccKeyword
27                            \ start='\<prechigh\>' end='\<preclow\>'
28                            \ contains=raccComment,raccPrecSpec
29
30syn keyword raccPrecSpec    contained nonassoc left right
31                            \ nextgroup=raccPrecToken,raccPrecString skipwhite
32                            \ skipnl
33
34syn match   raccPrecToken   contained '\<\u[A-Z0-9_]*\>'
35                            \ nextgroup=raccPrecToken,raccPrecString skipwhite
36                            \ skipnl
37
38syn region  raccPrecString  matchgroup=raccPrecString start=+"+
39                            \ skip=+\\\\\|\\"+ end=+"+
40                            \ contains=raccSpecial
41                            \ nextgroup=raccPrecToken,raccPrecString skipwhite
42                            \ skipnl
43syn region  raccPrecString  matchgroup=raccPrecString start=+'+
44                            \ skip=+\\\\\|\\'+ end=+'+ contains=raccSpecial
45                            \ nextgroup=raccPrecToken,raccPrecString skipwhite
46                            \ skipnl
47
48syn keyword raccTokenDecl   contained token
49                            \ nextgroup=raccTokenR skipwhite skipnl
50
51syn match   raccTokenR      contained '\<\u[A-Z0-9_]*\>'
52                            \ nextgroup=raccTokenR skipwhite skipnl
53
54syn keyword raccExpect      contained expect
55                            \ nextgroup=raccNumber skipwhite skipnl
56
57syn match   raccNumber      contained '\<\d\+\>'
58
59syn keyword raccOptions     contained options
60                            \ nextgroup=raccOptionsR skipwhite skipnl
61
62syn keyword raccOptionsR    contained omit_action_call result_var
63                            \ nextgroup=raccOptionsR skipwhite skipnl
64
65syn region  raccConvert     transparent contained matchgroup=raccKeyword
66                            \ start='\<convert\>' end='\<end\>'
67                            \ contains=raccComment,raccConvToken skipwhite
68                            \ skipnl
69
70syn match   raccConvToken   contained '\<\u[A-Z0-9_]*\>'
71                            \ nextgroup=raccString skipwhite skipnl
72
73syn keyword raccStart       contained start
74                            \ nextgroup=raccTargetS skipwhite skipnl
75
76syn match   raccTargetS     contained '\<\l[a-z0-9_]*\>'
77
78syn match   raccSpecial     contained '\\["'\\]'
79
80syn region  raccString      start=+"+ skip=+\\\\\|\\"+ end=+"+
81                            \ contains=raccSpecial
82syn region  raccString      start=+'+ skip=+\\\\\|\\'+ end=+'+
83                            \ contains=raccSpecial
84
85syn region  raccRules       transparent matchgroup=raccKeyword start='\<rule\>'
86                            \ end='\<end\>' contains=raccComment,raccString,
87                            \ raccNumber,raccToken,raccTarget,raccDelimiter,
88                            \ raccAction
89
90syn match   raccTarget      contained '\<\l[a-z0-9_]*\>'
91
92syn match   raccDelimiter   contained '[:|]'
93
94syn match   raccToken       contained '\<\u[A-Z0-9_]*\>'
95
96syn include @raccRuby       syntax/ruby.vim
97
98syn region  raccAction      transparent matchgroup=raccDelimiter
99                            \ start='{' end='}' contains=@raccRuby
100
101syn region  raccHeader      transparent matchgroup=raccPreProc
102                            \ start='^---- header.*' end='^----'he=e-4
103                            \ contains=@raccRuby
104
105syn region  raccInner       transparent matchgroup=raccPreProc
106                            \ start='^---- inner.*' end='^----'he=e-4
107                            \ contains=@raccRuby
108
109syn region  raccFooter      transparent matchgroup=raccPreProc
110                            \ start='^---- footer.*' end='^----'he=e-4
111                            \ contains=@raccRuby
112
113syn sync    match raccSyncHeader    grouphere raccHeader '^---- header'
114syn sync    match raccSyncInner     grouphere raccInner '^---- inner'
115syn sync    match raccSyncFooter    grouphere raccFooter '^---- footer'
116
117hi def link raccTodo        Todo
118hi def link raccComment     Comment
119hi def link raccPrecSpec    Type
120hi def link raccPrecToken   raccToken
121hi def link raccPrecString  raccString
122hi def link raccTokenDecl   Keyword
123hi def link raccToken       Identifier
124hi def link raccTokenR      raccToken
125hi def link raccExpect      Keyword
126hi def link raccNumber      Number
127hi def link raccOptions     Keyword
128hi def link raccOptionsR    Identifier
129hi def link raccConvToken   raccToken
130hi def link raccStart       Keyword
131hi def link raccTargetS     Type
132hi def link raccSpecial     special
133hi def link raccString      String
134hi def link raccTarget      Type
135hi def link raccDelimiter   Delimiter
136hi def link raccPreProc     PreProc
137hi def link raccKeyword     Keyword
138
139let b:current_syntax = "racc"
140
141let &cpo = s:cpo_save
142unlet s:cpo_save
143