racc.vim 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. " Vim default file
  2. " Language: Racc input file
  3. " Previous Maintainer: Nikolai Weibull <now@bitwi.se>
  4. " Latest Revision: 2008-06-22
  5. if exists("b:current_syntax")
  6. finish
  7. endif
  8. let s:cpo_save = &cpo
  9. set cpo&vim
  10. syn keyword raccTodo contained TODO FIXME XXX NOTE
  11. syn region raccComment start='/\*' end='\*/'
  12. \ contains=raccTodo,@Spell
  13. syn region raccComment display oneline start='#' end='$'
  14. \ contains=raccTodo,@Spell
  15. syn region raccClass transparent matchgroup=raccKeyword
  16. \ start='\<class\>' end='\<rule\>'he=e-4
  17. \ contains=raccComment,raccPrecedence,
  18. \ raccTokenDecl,raccExpect,raccOptions,raccConvert,
  19. \ raccStart,
  20. syn region raccPrecedence transparent matchgroup=raccKeyword
  21. \ start='\<prechigh\>' end='\<preclow\>'
  22. \ contains=raccComment,raccPrecSpec
  23. syn keyword raccPrecSpec contained nonassoc left right
  24. \ nextgroup=raccPrecToken,raccPrecString skipwhite
  25. \ skipnl
  26. syn match raccPrecToken contained '\<\u[A-Z0-9_]*\>'
  27. \ nextgroup=raccPrecToken,raccPrecString skipwhite
  28. \ skipnl
  29. syn region raccPrecString matchgroup=raccPrecString start=+"+
  30. \ skip=+\\\\\|\\"+ end=+"+
  31. \ contains=raccSpecial
  32. \ nextgroup=raccPrecToken,raccPrecString skipwhite
  33. \ skipnl
  34. syn region raccPrecString matchgroup=raccPrecString start=+'+
  35. \ skip=+\\\\\|\\'+ end=+'+ contains=raccSpecial
  36. \ nextgroup=raccPrecToken,raccPrecString skipwhite
  37. \ skipnl
  38. syn keyword raccTokenDecl contained token
  39. \ nextgroup=raccTokenR skipwhite skipnl
  40. syn match raccTokenR contained '\<\u[A-Z0-9_]*\>'
  41. \ nextgroup=raccTokenR skipwhite skipnl
  42. syn keyword raccExpect contained expect
  43. \ nextgroup=raccNumber skipwhite skipnl
  44. syn match raccNumber contained '\<\d\+\>'
  45. syn keyword raccOptions contained options
  46. \ nextgroup=raccOptionsR skipwhite skipnl
  47. syn keyword raccOptionsR contained omit_action_call result_var
  48. \ nextgroup=raccOptionsR skipwhite skipnl
  49. syn region raccConvert transparent contained matchgroup=raccKeyword
  50. \ start='\<convert\>' end='\<end\>'
  51. \ contains=raccComment,raccConvToken skipwhite
  52. \ skipnl
  53. syn match raccConvToken contained '\<\u[A-Z0-9_]*\>'
  54. \ nextgroup=raccString skipwhite skipnl
  55. syn keyword raccStart contained start
  56. \ nextgroup=raccTargetS skipwhite skipnl
  57. syn match raccTargetS contained '\<\l[a-z0-9_]*\>'
  58. syn match raccSpecial contained '\\["'\\]'
  59. syn region raccString start=+"+ skip=+\\\\\|\\"+ end=+"+
  60. \ contains=raccSpecial
  61. syn region raccString start=+'+ skip=+\\\\\|\\'+ end=+'+
  62. \ contains=raccSpecial
  63. syn region raccRules transparent matchgroup=raccKeyword start='\<rule\>'
  64. \ end='\<end\>' contains=raccComment,raccString,
  65. \ raccNumber,raccToken,raccTarget,raccDelimiter,
  66. \ raccAction
  67. syn match raccTarget contained '\<\l[a-z0-9_]*\>'
  68. syn match raccDelimiter contained '[:|]'
  69. syn match raccToken contained '\<\u[A-Z0-9_]*\>'
  70. syn include @raccRuby syntax/ruby.vim
  71. syn region raccAction transparent matchgroup=raccDelimiter
  72. \ start='{' end='}' contains=@raccRuby
  73. syn region raccHeader transparent matchgroup=raccPreProc
  74. \ start='^---- header.*' end='^----'he=e-4
  75. \ contains=@raccRuby
  76. syn region raccInner transparent matchgroup=raccPreProc
  77. \ start='^---- inner.*' end='^----'he=e-4
  78. \ contains=@raccRuby
  79. syn region raccFooter transparent matchgroup=raccPreProc
  80. \ start='^---- footer.*' end='^----'he=e-4
  81. \ contains=@raccRuby
  82. syn sync match raccSyncHeader grouphere raccHeader '^---- header'
  83. syn sync match raccSyncInner grouphere raccInner '^---- inner'
  84. syn sync match raccSyncFooter grouphere raccFooter '^---- footer'
  85. hi def link raccTodo Todo
  86. hi def link raccComment Comment
  87. hi def link raccPrecSpec Type
  88. hi def link raccPrecToken raccToken
  89. hi def link raccPrecString raccString
  90. hi def link raccTokenDecl Keyword
  91. hi def link raccToken Identifier
  92. hi def link raccTokenR raccToken
  93. hi def link raccExpect Keyword
  94. hi def link raccNumber Number
  95. hi def link raccOptions Keyword
  96. hi def link raccOptionsR Identifier
  97. hi def link raccConvToken raccToken
  98. hi def link raccStart Keyword
  99. hi def link raccTargetS Type
  100. hi def link raccSpecial special
  101. hi def link raccString String
  102. hi def link raccTarget Type
  103. hi def link raccDelimiter Delimiter
  104. hi def link raccPreProc PreProc
  105. hi def link raccKeyword Keyword
  106. let b:current_syntax = "racc"
  107. let &cpo = s:cpo_save
  108. unlet s:cpo_save