ayacc.vim 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. " Vim syntax file
  2. " Language: AYacc
  3. " Maintainer: Mathieu Clabaut <mathieu.clabaut@free.fr>
  4. " LastChange: 2011 Dec 25
  5. " Original: Yacc, maintained by Dr. Charles E. Campbell, Jr.
  6. " Comment: Replaced sourcing c.vim file by ada.vim and rename yacc*
  7. " in ayacc*
  8. " quit when a syntax file was already loaded
  9. if exists("b:current_syntax")
  10. finish
  11. endif
  12. " Read the Ada syntax to start with
  13. runtime! syntax/ada.vim
  14. unlet b:current_syntax
  15. let s:cpo_save = &cpo
  16. set cpo&vim
  17. " Clusters
  18. syn cluster ayaccActionGroup contains=ayaccDelim,cInParen,cTodo,cIncluded,ayaccDelim,ayaccCurlyError,ayaccUnionCurly,ayaccUnion,cUserLabel,cOctalZero,cCppOut2,cCppSkip,cErrInBracket,cErrInParen,cOctalError
  19. syn cluster ayaccUnionGroup contains=ayaccKey,cComment,ayaccCurly,cType,cStructure,cStorageClass,ayaccUnionCurly
  20. " Yacc stuff
  21. syn match ayaccDelim "^[ \t]*[:|;]"
  22. syn match ayaccOper "@\d\+"
  23. syn match ayaccKey "^[ \t]*%\(token\|type\|left\|right\|start\|ident\)\>"
  24. syn match ayaccKey "[ \t]%\(prec\|expect\|nonassoc\)\>"
  25. syn match ayaccKey "\$\(<[a-zA-Z_][a-zA-Z_0-9]*>\)\=[\$0-9]\+"
  26. syn keyword ayaccKeyActn yyerrok yyclearin
  27. syn match ayaccUnionStart "^%union" skipwhite skipnl nextgroup=ayaccUnion
  28. syn region ayaccUnion contained matchgroup=ayaccCurly start="{" matchgroup=ayaccCurly end="}" contains=@ayaccUnionGroup
  29. syn region ayaccUnionCurly contained matchgroup=ayaccCurly start="{" matchgroup=ayaccCurly end="}" contains=@ayaccUnionGroup
  30. syn match ayaccBrkt contained "[<>]"
  31. syn match ayaccType "<[a-zA-Z_][a-zA-Z0-9_]*>" contains=ayaccBrkt
  32. syn match ayaccDefinition "^[A-Za-z][A-Za-z0-9_]*[ \t]*:"
  33. " special Yacc separators
  34. syn match ayaccSectionSep "^[ \t]*%%"
  35. syn match ayaccSep "^[ \t]*%{"
  36. syn match ayaccSep "^[ \t]*%}"
  37. " I'd really like to highlight just the outer {}. Any suggestions???
  38. syn match ayaccCurlyError "[{}]"
  39. syn region ayaccAction matchgroup=ayaccCurly start="{" end="}" contains=ALLBUT,@ayaccActionGroup
  40. " Internal ayacc highlighting links
  41. hi def link ayaccBrkt ayaccStmt
  42. hi def link ayaccKey ayaccStmt
  43. hi def link ayaccOper ayaccStmt
  44. hi def link ayaccUnionStart ayaccKey
  45. " External ayacc highlighting links
  46. hi def link ayaccCurly Delimiter
  47. hi def link ayaccCurlyError Error
  48. hi def link ayaccDefinition Function
  49. hi def link ayaccDelim Function
  50. hi def link ayaccKeyActn Special
  51. hi def link ayaccSectionSep Todo
  52. hi def link ayaccSep Delimiter
  53. hi def link ayaccStmt Statement
  54. hi def link ayaccType Type
  55. " since Bram doesn't like my Delimiter :|
  56. hi def link Delimiter Type
  57. let b:current_syntax = "ayacc"
  58. let &cpo = s:cpo_save
  59. unlet s:cpo_save
  60. " vim: ts=15