xref: /vim-8.2.3635/runtime/syntax/treetop.vim (revision 214641f7)
1662db673SBram Moolenaar" Vim syntax file
2662db673SBram Moolenaar" Language:             Treetop
3*214641f7SBram Moolenaar" Previous Maintainer:  Nikolai Weibull <[email protected]>
4662db673SBram Moolenaar" Latest Revision:      2011-03-14
5662db673SBram Moolenaar
6662db673SBram Moolenaarif exists("b:current_syntax")
7662db673SBram Moolenaar  finish
8662db673SBram Moolenaarendif
9662db673SBram Moolenaar
10662db673SBram Moolenaarlet s:cpo_save = &cpo
11662db673SBram Moolenaarset cpo&vim
12662db673SBram Moolenaar
13662db673SBram Moolenaarsyn keyword treetopTodo
14662db673SBram Moolenaar      \ contained
15662db673SBram Moolenaar      \ TODO
16662db673SBram Moolenaar      \ FIXME
17662db673SBram Moolenaar      \ XXX
18662db673SBram Moolenaar      \ NOTE
19662db673SBram Moolenaar
20662db673SBram Moolenaarsyn match treetopComment
21662db673SBram Moolenaar                        \ '#.*'
22662db673SBram Moolenaar                        \ display
23662db673SBram Moolenaar                        \ contains=treetopTodo
24662db673SBram Moolenaar
25662db673SBram Moolenaarsyn include @treetopRuby syntax/ruby.vim
26662db673SBram Moolenaarunlet b:current_syntax
27662db673SBram Moolenaar
28662db673SBram Moolenaarsyn keyword treetopKeyword
29662db673SBram Moolenaar                         \ require
30662db673SBram Moolenaar                         \ end
31662db673SBram Moolenaarsyn region  treetopKeyword
32662db673SBram Moolenaar                         \ matchgroup=treetopKeyword
33662db673SBram Moolenaar                         \ start='\<\%(grammar\|include\|module\)\>\ze\s'
34662db673SBram Moolenaar                         \ end='$'
35662db673SBram Moolenaar                         \ transparent
36662db673SBram Moolenaar                         \ oneline
37662db673SBram Moolenaar                         \ keepend
38662db673SBram Moolenaar                         \ contains=@treetopRuby
39662db673SBram Moolenaarsyn keyword treetopKeyword
40662db673SBram Moolenaar                         \ rule
41662db673SBram Moolenaar                         \ nextgroup=treetopRuleName
42662db673SBram Moolenaar                         \ skipwhite skipnl
43662db673SBram Moolenaar
44662db673SBram Moolenaarsyn match   treetopGrammarName
45662db673SBram Moolenaar                             \ '\u\w*'
46662db673SBram Moolenaar                             \ contained
47662db673SBram Moolenaar
48662db673SBram Moolenaarsyn match   treetopRubyModuleName
49662db673SBram Moolenaar                                \ '\u\w*'
50662db673SBram Moolenaar                                \ contained
51662db673SBram Moolenaar
52662db673SBram Moolenaarsyn match   treetopRuleName
53662db673SBram Moolenaar                          \ '\h\w*'
54662db673SBram Moolenaar                          \ contained
55662db673SBram Moolenaar
56662db673SBram Moolenaarsyn region  treetopString
57662db673SBram Moolenaar                        \ matchgroup=treetopStringDelimiter
58662db673SBram Moolenaar                        \ start=+"+
59662db673SBram Moolenaar                        \ end=+"+
60662db673SBram Moolenaarsyn region  treetopString
61662db673SBram Moolenaar                        \ matchgroup=treetopStringDelimiter
62662db673SBram Moolenaar                        \ start=+'+
63662db673SBram Moolenaar                        \ end=+'+
64662db673SBram Moolenaar
65662db673SBram Moolenaarsyn region  treetopCharacterClass
66662db673SBram Moolenaar                                \ matchgroup=treetopCharacterClassDelimiter
67662db673SBram Moolenaar                                \ start=+\[+
68662db673SBram Moolenaar                                \ skip=+\\\]+
69662db673SBram Moolenaar                                \ end=+\]+
70662db673SBram Moolenaar
71662db673SBram Moolenaarsyn region  treetopRubyBlock
72662db673SBram Moolenaar                           \ matchgroup=treetopRubyBlockDelimiter
73662db673SBram Moolenaar                           \ start=+{+
74662db673SBram Moolenaar                           \ end=+}+
75662db673SBram Moolenaar                           \ contains=@treetopRuby
76662db673SBram Moolenaar
77662db673SBram Moolenaarsyn region  treetopSemanticPredicate
78662db673SBram Moolenaar                           \ matchgroup=treetopSemanticPredicateDelimiter
79662db673SBram Moolenaar                           \ start=+[!&]{+
80662db673SBram Moolenaar                           \ end=+}+
81662db673SBram Moolenaar                           \ contains=@treetopRuby
82662db673SBram Moolenaar
83662db673SBram Moolenaarsyn region  treetopSubclassDeclaration
84662db673SBram Moolenaar                           \ matchgroup=treetopSubclassDeclarationDelimiter
85662db673SBram Moolenaar                           \ start=+<+
86662db673SBram Moolenaar                           \ end=+>+
87662db673SBram Moolenaar                           \ contains=@treetopRuby
88662db673SBram Moolenaar
89662db673SBram Moolenaarsyn match   treetopEllipsis
90662db673SBram Moolenaar                          \ +''+
91662db673SBram Moolenaar
92662db673SBram Moolenaarhi def link treetopTodo                         Todo
93662db673SBram Moolenaarhi def link treetopComment                      Comment
94662db673SBram Moolenaarhi def link treetopKeyword                      Keyword
95662db673SBram Moolenaarhi def link treetopGrammarName                  Constant
96662db673SBram Moolenaarhi def link treetopRubyModuleName               Constant
97662db673SBram Moolenaarhi def link treetopRuleName                     Identifier
98662db673SBram Moolenaarhi def link treetopString                       String
99662db673SBram Moolenaarhi def link treetopStringDelimiter              treetopString
100662db673SBram Moolenaarhi def link treetopCharacterClass               treetopString
101662db673SBram Moolenaarhi def link treetopCharacterClassDelimiter      treetopCharacterClass
102662db673SBram Moolenaarhi def link treetopRubyBlockDelimiter           PreProc
103662db673SBram Moolenaarhi def link treetopSemanticPredicateDelimiter   PreProc
104662db673SBram Moolenaarhi def link treetopSubclassDeclarationDelimiter PreProc
105662db673SBram Moolenaarhi def link treetopEllipsis                     Special
106662db673SBram Moolenaar
107662db673SBram Moolenaarlet b:current_syntax = 'treetop'
108662db673SBram Moolenaar
109662db673SBram Moolenaarlet &cpo = s:cpo_save
110662db673SBram Moolenaarunlet s:cpo_save
111