142eeac35SBram Moolenaar" Vim default file 242eeac35SBram Moolenaar" Language: Racc input file 3*214641f7SBram Moolenaar" Previous Maintainer: Nikolai Weibull <[email protected]> 4e37d50a5SBram Moolenaar" Latest Revision: 2008-06-22 542eeac35SBram Moolenaar 642eeac35SBram Moolenaarif exists("b:current_syntax") 742eeac35SBram Moolenaar finish 842eeac35SBram Moolenaarendif 942eeac35SBram Moolenaar 1042eeac35SBram Moolenaarlet s:cpo_save = &cpo 1142eeac35SBram Moolenaarset cpo&vim 1242eeac35SBram Moolenaar 1342eeac35SBram Moolenaarsyn keyword raccTodo contained TODO FIXME XXX NOTE 1442eeac35SBram Moolenaar 150dc065eeSBram Moolenaarsyn region raccComment start='/\*' end='\*/' 1642eeac35SBram Moolenaar \ contains=raccTodo,@Spell 170dc065eeSBram Moolenaarsyn region raccComment display oneline start='#' end='$' 1842eeac35SBram Moolenaar \ contains=raccTodo,@Spell 1942eeac35SBram Moolenaar 2042eeac35SBram Moolenaarsyn region raccClass transparent matchgroup=raccKeyword 2142eeac35SBram Moolenaar \ start='\<class\>' end='\<rule\>'he=e-4 2242eeac35SBram Moolenaar \ contains=raccComment,raccPrecedence, 2342eeac35SBram Moolenaar \ raccTokenDecl,raccExpect,raccOptions,raccConvert, 2442eeac35SBram Moolenaar \ raccStart, 2542eeac35SBram Moolenaar 2642eeac35SBram Moolenaarsyn region raccPrecedence transparent matchgroup=raccKeyword 2742eeac35SBram Moolenaar \ start='\<prechigh\>' end='\<preclow\>' 2842eeac35SBram Moolenaar \ contains=raccComment,raccPrecSpec 2942eeac35SBram Moolenaar 3042eeac35SBram Moolenaarsyn keyword raccPrecSpec contained nonassoc left right 3142eeac35SBram Moolenaar \ nextgroup=raccPrecToken,raccPrecString skipwhite 3242eeac35SBram Moolenaar \ skipnl 3342eeac35SBram Moolenaar 34e37d50a5SBram Moolenaarsyn match raccPrecToken contained '\<\u[A-Z0-9_]*\>' 3542eeac35SBram Moolenaar \ nextgroup=raccPrecToken,raccPrecString skipwhite 3642eeac35SBram Moolenaar \ skipnl 3742eeac35SBram Moolenaar 3842eeac35SBram Moolenaarsyn region raccPrecString matchgroup=raccPrecString start=+"+ 3942eeac35SBram Moolenaar \ skip=+\\\\\|\\"+ end=+"+ 4042eeac35SBram Moolenaar \ contains=raccSpecial 4142eeac35SBram Moolenaar \ nextgroup=raccPrecToken,raccPrecString skipwhite 4242eeac35SBram Moolenaar \ skipnl 4342eeac35SBram Moolenaarsyn region raccPrecString matchgroup=raccPrecString start=+'+ 4442eeac35SBram Moolenaar \ skip=+\\\\\|\\'+ end=+'+ contains=raccSpecial 4542eeac35SBram Moolenaar \ nextgroup=raccPrecToken,raccPrecString skipwhite 4642eeac35SBram Moolenaar \ skipnl 4742eeac35SBram Moolenaar 4842eeac35SBram Moolenaarsyn keyword raccTokenDecl contained token 4942eeac35SBram Moolenaar \ nextgroup=raccTokenR skipwhite skipnl 5042eeac35SBram Moolenaar 51e37d50a5SBram Moolenaarsyn match raccTokenR contained '\<\u[A-Z0-9_]*\>' 5242eeac35SBram Moolenaar \ nextgroup=raccTokenR skipwhite skipnl 5342eeac35SBram Moolenaar 5442eeac35SBram Moolenaarsyn keyword raccExpect contained expect 5542eeac35SBram Moolenaar \ nextgroup=raccNumber skipwhite skipnl 5642eeac35SBram Moolenaar 5742eeac35SBram Moolenaarsyn match raccNumber contained '\<\d\+\>' 5842eeac35SBram Moolenaar 5942eeac35SBram Moolenaarsyn keyword raccOptions contained options 6042eeac35SBram Moolenaar \ nextgroup=raccOptionsR skipwhite skipnl 6142eeac35SBram Moolenaar 6242eeac35SBram Moolenaarsyn keyword raccOptionsR contained omit_action_call result_var 6342eeac35SBram Moolenaar \ nextgroup=raccOptionsR skipwhite skipnl 6442eeac35SBram Moolenaar 6542eeac35SBram Moolenaarsyn region raccConvert transparent contained matchgroup=raccKeyword 6642eeac35SBram Moolenaar \ start='\<convert\>' end='\<end\>' 6742eeac35SBram Moolenaar \ contains=raccComment,raccConvToken skipwhite 6842eeac35SBram Moolenaar \ skipnl 6942eeac35SBram Moolenaar 70e37d50a5SBram Moolenaarsyn match raccConvToken contained '\<\u[A-Z0-9_]*\>' 7142eeac35SBram Moolenaar \ nextgroup=raccString skipwhite skipnl 7242eeac35SBram Moolenaar 7342eeac35SBram Moolenaarsyn keyword raccStart contained start 7442eeac35SBram Moolenaar \ nextgroup=raccTargetS skipwhite skipnl 7542eeac35SBram Moolenaar 76e37d50a5SBram Moolenaarsyn match raccTargetS contained '\<\l[a-z0-9_]*\>' 7742eeac35SBram Moolenaar 7842eeac35SBram Moolenaarsyn match raccSpecial contained '\\["'\\]' 7942eeac35SBram Moolenaar 800dc065eeSBram Moolenaarsyn region raccString start=+"+ skip=+\\\\\|\\"+ end=+"+ 810dc065eeSBram Moolenaar \ contains=raccSpecial 820dc065eeSBram Moolenaarsyn region raccString start=+'+ skip=+\\\\\|\\'+ end=+'+ 830dc065eeSBram Moolenaar \ contains=raccSpecial 8442eeac35SBram Moolenaar 8542eeac35SBram Moolenaarsyn region raccRules transparent matchgroup=raccKeyword start='\<rule\>' 8642eeac35SBram Moolenaar \ end='\<end\>' contains=raccComment,raccString, 8742eeac35SBram Moolenaar \ raccNumber,raccToken,raccTarget,raccDelimiter, 8842eeac35SBram Moolenaar \ raccAction 8942eeac35SBram Moolenaar 90e37d50a5SBram Moolenaarsyn match raccTarget contained '\<\l[a-z0-9_]*\>' 9142eeac35SBram Moolenaar 9242eeac35SBram Moolenaarsyn match raccDelimiter contained '[:|]' 9342eeac35SBram Moolenaar 94e37d50a5SBram Moolenaarsyn match raccToken contained '\<\u[A-Z0-9_]*\>' 9542eeac35SBram Moolenaar 9642eeac35SBram Moolenaarsyn include @raccRuby syntax/ruby.vim 9742eeac35SBram Moolenaar 9842eeac35SBram Moolenaarsyn region raccAction transparent matchgroup=raccDelimiter 9942eeac35SBram Moolenaar \ start='{' end='}' contains=@raccRuby 10042eeac35SBram Moolenaar 10142eeac35SBram Moolenaarsyn region raccHeader transparent matchgroup=raccPreProc 10242eeac35SBram Moolenaar \ start='^---- header.*' end='^----'he=e-4 10342eeac35SBram Moolenaar \ contains=@raccRuby 10442eeac35SBram Moolenaar 10542eeac35SBram Moolenaarsyn region raccInner transparent matchgroup=raccPreProc 10642eeac35SBram Moolenaar \ start='^---- inner.*' end='^----'he=e-4 10742eeac35SBram Moolenaar \ contains=@raccRuby 10842eeac35SBram Moolenaar 10942eeac35SBram Moolenaarsyn region raccFooter transparent matchgroup=raccPreProc 11042eeac35SBram Moolenaar \ start='^---- footer.*' end='^----'he=e-4 11142eeac35SBram Moolenaar \ contains=@raccRuby 11242eeac35SBram Moolenaar 1133d27a45fSBram Moolenaarsyn sync match raccSyncHeader grouphere raccHeader '^---- header' 1143d27a45fSBram Moolenaarsyn sync match raccSyncInner grouphere raccInner '^---- inner' 1153d27a45fSBram Moolenaarsyn sync match raccSyncFooter grouphere raccFooter '^---- footer' 1163d27a45fSBram Moolenaar 11742eeac35SBram Moolenaarhi def link raccTodo Todo 11842eeac35SBram Moolenaarhi def link raccComment Comment 11942eeac35SBram Moolenaarhi def link raccPrecSpec Type 12042eeac35SBram Moolenaarhi def link raccPrecToken raccToken 12142eeac35SBram Moolenaarhi def link raccPrecString raccString 12242eeac35SBram Moolenaarhi def link raccTokenDecl Keyword 12342eeac35SBram Moolenaarhi def link raccToken Identifier 12442eeac35SBram Moolenaarhi def link raccTokenR raccToken 12542eeac35SBram Moolenaarhi def link raccExpect Keyword 12642eeac35SBram Moolenaarhi def link raccNumber Number 12742eeac35SBram Moolenaarhi def link raccOptions Keyword 12842eeac35SBram Moolenaarhi def link raccOptionsR Identifier 12942eeac35SBram Moolenaarhi def link raccConvToken raccToken 13042eeac35SBram Moolenaarhi def link raccStart Keyword 13142eeac35SBram Moolenaarhi def link raccTargetS Type 13242eeac35SBram Moolenaarhi def link raccSpecial special 13342eeac35SBram Moolenaarhi def link raccString String 13442eeac35SBram Moolenaarhi def link raccTarget Type 13542eeac35SBram Moolenaarhi def link raccDelimiter Delimiter 13642eeac35SBram Moolenaarhi def link raccPreProc PreProc 13742eeac35SBram Moolenaarhi def link raccKeyword Keyword 13842eeac35SBram Moolenaar 13942eeac35SBram Moolenaarlet b:current_syntax = "racc" 14042eeac35SBram Moolenaar 14142eeac35SBram Moolenaarlet &cpo = s:cpo_save 14242eeac35SBram Moolenaarunlet s:cpo_save 143