diff runtime/syntax/treetop.vim @ 2725:6f63330ec225

Updated runtime files.
author Bram Moolenaar <bram@vim.org>
date Tue, 22 Mar 2011 14:05:35 +0100
parents
children 1218c5353e2b
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/treetop.vim
@@ -0,0 +1,110 @@
+" Vim syntax file
+" Language:         Treetop
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2011-03-14
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword treetopTodo
+      \ contained
+      \ TODO
+      \ FIXME
+      \ XXX
+      \ NOTE
+
+syn match treetopComment
+                        \ '#.*'
+                        \ display
+                        \ contains=treetopTodo
+
+syn include @treetopRuby syntax/ruby.vim
+unlet b:current_syntax
+
+syn keyword treetopKeyword
+                         \ require
+                         \ end
+syn region  treetopKeyword
+                         \ matchgroup=treetopKeyword
+                         \ start='\<\%(grammar\|include\|module\)\>\ze\s'
+                         \ end='$'
+                         \ transparent
+                         \ oneline
+                         \ keepend
+                         \ contains=@treetopRuby
+syn keyword treetopKeyword
+                         \ rule
+                         \ nextgroup=treetopRuleName
+                         \ skipwhite skipnl
+
+syn match   treetopGrammarName
+                             \ '\u\w*'
+                             \ contained
+
+syn match   treetopRubyModuleName
+                                \ '\u\w*'
+                                \ contained
+
+syn match   treetopRuleName
+                          \ '\h\w*'
+                          \ contained
+
+syn region  treetopString
+                        \ matchgroup=treetopStringDelimiter
+                        \ start=+"+
+                        \ end=+"+
+syn region  treetopString
+                        \ matchgroup=treetopStringDelimiter
+                        \ start=+'+
+                        \ end=+'+
+
+syn region  treetopCharacterClass
+                                \ matchgroup=treetopCharacterClassDelimiter
+                                \ start=+\[+
+                                \ skip=+\\\]+
+                                \ end=+\]+
+
+syn region  treetopRubyBlock
+                           \ matchgroup=treetopRubyBlockDelimiter
+                           \ start=+{+
+                           \ end=+}+
+                           \ contains=@treetopRuby
+
+syn region  treetopSemanticPredicate
+                           \ matchgroup=treetopSemanticPredicateDelimiter
+                           \ start=+[!&]{+
+                           \ end=+}+
+                           \ contains=@treetopRuby
+
+syn region  treetopSubclassDeclaration
+                           \ matchgroup=treetopSubclassDeclarationDelimiter
+                           \ start=+<+
+                           \ end=+>+
+                           \ contains=@treetopRuby
+
+syn match   treetopEllipsis
+                          \ +''+
+
+hi def link treetopTodo                         Todo
+hi def link treetopComment                      Comment
+hi def link treetopKeyword                      Keyword
+hi def link treetopGrammarName                  Constant
+hi def link treetopRubyModuleName               Constant
+hi def link treetopRuleName                     Identifier
+hi def link treetopString                       String
+hi def link treetopStringDelimiter              treetopString
+hi def link treetopCharacterClass               treetopString
+hi def link treetopCharacterClassDelimiter      treetopCharacterClass
+hi def link treetopRubyBlockDelimiter           PreProc
+hi def link treetopSemanticPredicateDelimiter   PreProc
+hi def link treetopSubclassDeclarationDelimiter PreProc
+hi def link treetopEllipsis                     Special
+
+let b:current_syntax = 'treetop'
+
+let &cpo = s:cpo_save
+unlet s:cpo_save