1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: AYacc 3071d4279SBram Moolenaar" Maintainer: Mathieu Clabaut <[email protected]> 4b6b046b2SBram Moolenaar" LastChange: 2011 Dec 25 5071d4279SBram Moolenaar" Original: Yacc, maintained by Dr. Charles E. Campbell, Jr. 6071d4279SBram Moolenaar" Comment: Replaced sourcing c.vim file by ada.vim and rename yacc* 7071d4279SBram Moolenaar" in ayacc* 8071d4279SBram Moolenaar 989bcfda6SBram Moolenaar" quit when a syntax file was already loaded 1089bcfda6SBram Moolenaarif exists("b:current_syntax") 11071d4279SBram Moolenaar finish 12071d4279SBram Moolenaarendif 13071d4279SBram Moolenaar 14071d4279SBram Moolenaar" Read the Ada syntax to start with 15071d4279SBram Moolenaarruntime! syntax/ada.vim 16071d4279SBram Moolenaarunlet b:current_syntax 17071d4279SBram Moolenaar 18b6b046b2SBram Moolenaarlet s:cpo_save = &cpo 19b6b046b2SBram Moolenaarset cpo&vim 20b6b046b2SBram Moolenaar 21071d4279SBram Moolenaar" Clusters 22071d4279SBram Moolenaarsyn cluster ayaccActionGroup contains=ayaccDelim,cInParen,cTodo,cIncluded,ayaccDelim,ayaccCurlyError,ayaccUnionCurly,ayaccUnion,cUserLabel,cOctalZero,cCppOut2,cCppSkip,cErrInBracket,cErrInParen,cOctalError 23071d4279SBram Moolenaarsyn cluster ayaccUnionGroup contains=ayaccKey,cComment,ayaccCurly,cType,cStructure,cStorageClass,ayaccUnionCurly 24071d4279SBram Moolenaar 25071d4279SBram Moolenaar" Yacc stuff 26071d4279SBram Moolenaarsyn match ayaccDelim "^[ \t]*[:|;]" 27071d4279SBram Moolenaarsyn match ayaccOper "@\d\+" 28071d4279SBram Moolenaar 29071d4279SBram Moolenaarsyn match ayaccKey "^[ \t]*%\(token\|type\|left\|right\|start\|ident\)\>" 30071d4279SBram Moolenaarsyn match ayaccKey "[ \t]%\(prec\|expect\|nonassoc\)\>" 31071d4279SBram Moolenaarsyn match ayaccKey "\$\(<[a-zA-Z_][a-zA-Z_0-9]*>\)\=[\$0-9]\+" 32071d4279SBram Moolenaarsyn keyword ayaccKeyActn yyerrok yyclearin 33071d4279SBram Moolenaar 34071d4279SBram Moolenaarsyn match ayaccUnionStart "^%union" skipwhite skipnl nextgroup=ayaccUnion 35071d4279SBram Moolenaarsyn region ayaccUnion contained matchgroup=ayaccCurly start="{" matchgroup=ayaccCurly end="}" contains=@ayaccUnionGroup 36071d4279SBram Moolenaarsyn region ayaccUnionCurly contained matchgroup=ayaccCurly start="{" matchgroup=ayaccCurly end="}" contains=@ayaccUnionGroup 37071d4279SBram Moolenaarsyn match ayaccBrkt contained "[<>]" 38071d4279SBram Moolenaarsyn match ayaccType "<[a-zA-Z_][a-zA-Z0-9_]*>" contains=ayaccBrkt 39071d4279SBram Moolenaarsyn match ayaccDefinition "^[A-Za-z][A-Za-z0-9_]*[ \t]*:" 40071d4279SBram Moolenaar 41071d4279SBram Moolenaar" special Yacc separators 42071d4279SBram Moolenaarsyn match ayaccSectionSep "^[ \t]*%%" 43071d4279SBram Moolenaarsyn match ayaccSep "^[ \t]*%{" 44071d4279SBram Moolenaarsyn match ayaccSep "^[ \t]*%}" 45071d4279SBram Moolenaar 46071d4279SBram Moolenaar" I'd really like to highlight just the outer {}. Any suggestions??? 47071d4279SBram Moolenaarsyn match ayaccCurlyError "[{}]" 48071d4279SBram Moolenaarsyn region ayaccAction matchgroup=ayaccCurly start="{" end="}" contains=ALLBUT,@ayaccActionGroup 49071d4279SBram Moolenaar 50071d4279SBram Moolenaar 51071d4279SBram Moolenaar" Internal ayacc highlighting links 52*f37506f6SBram Moolenaarhi def link ayaccBrkt ayaccStmt 53*f37506f6SBram Moolenaarhi def link ayaccKey ayaccStmt 54*f37506f6SBram Moolenaarhi def link ayaccOper ayaccStmt 55*f37506f6SBram Moolenaarhi def link ayaccUnionStart ayaccKey 56071d4279SBram Moolenaar 57071d4279SBram Moolenaar" External ayacc highlighting links 58*f37506f6SBram Moolenaarhi def link ayaccCurly Delimiter 59*f37506f6SBram Moolenaarhi def link ayaccCurlyError Error 60*f37506f6SBram Moolenaarhi def link ayaccDefinition Function 61*f37506f6SBram Moolenaarhi def link ayaccDelim Function 62*f37506f6SBram Moolenaarhi def link ayaccKeyActn Special 63*f37506f6SBram Moolenaarhi def link ayaccSectionSep Todo 64*f37506f6SBram Moolenaarhi def link ayaccSep Delimiter 65*f37506f6SBram Moolenaarhi def link ayaccStmt Statement 66*f37506f6SBram Moolenaarhi def link ayaccType Type 67071d4279SBram Moolenaar 68071d4279SBram Moolenaar" since Bram doesn't like my Delimiter :| 69*f37506f6SBram Moolenaarhi def link Delimiter Type 70071d4279SBram Moolenaar 71071d4279SBram Moolenaarlet b:current_syntax = "ayacc" 72071d4279SBram Moolenaar 73b6b046b2SBram Moolenaarlet &cpo = s:cpo_save 74b6b046b2SBram Moolenaarunlet s:cpo_save 75071d4279SBram Moolenaar" vim: ts=15 76