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