1" Vim default file 2" Language: Racc input file 3" Maintainer: Nikolai Weibull <[email protected]> 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 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 113hi def link raccTodo Todo 114hi def link raccComment Comment 115hi def link raccPrecSpec Type 116hi def link raccPrecToken raccToken 117hi def link raccPrecString raccString 118hi def link raccTokenDecl Keyword 119hi def link raccToken Identifier 120hi def link raccTokenR raccToken 121hi def link raccExpect Keyword 122hi def link raccNumber Number 123hi def link raccOptions Keyword 124hi def link raccOptionsR Identifier 125hi def link raccConvToken raccToken 126hi def link raccStart Keyword 127hi def link raccTargetS Type 128hi def link raccSpecial special 129hi def link raccString String 130hi def link raccTarget Type 131hi def link raccDelimiter Delimiter 132hi def link raccPreProc PreProc 133hi def link raccKeyword Keyword 134 135let b:current_syntax = "racc" 136 137let &cpo = s:cpo_save 138unlet s:cpo_save 139