" Vim syntax file" Language: AYacc" Maintainer: Mathieu Clabaut <mathieu.clabaut@free.fr>" LastChange: 02 May 2001" Original: Yacc, maintained by Dr. Charles E. Campbell, Jr." Comment: Replaced sourcing c.vim file by ada.vim and rename yacc*" in ayacc*" For version 5.x: Clear all syntax items" For version 6.x: Quit when a syntax file was already loadedif version < 600 syntax clearelseif exists("b:current_syntax") finishendif" Read the Ada syntax to start withif version < 600 so <sfile>:p:h/ada.vimelse runtime! syntax/ada.vim unlet b:current_syntaxendif" Clusterssyn cluster ayaccActionGroup contains=ayaccDelim,cInParen,cTodo,cIncluded,ayaccDelim,ayaccCurlyError,ayaccUnionCurly,ayaccUnion,cUserLabel,cOctalZero,cCppOut2,cCppSkip,cErrInBracket,cErrInParen,cOctalErrorsyn cluster ayaccUnionGroup contains=ayaccKey,cComment,ayaccCurly,cType,cStructure,cStorageClass,ayaccUnionCurly" Yacc stuffsyn match ayaccDelim "^[ \t]*[:|;]"syn match ayaccOper "@\d\+"syn match ayaccKey "^[ \t]*%\(token\|type\|left\|right\|start\|ident\)\>"syn match ayaccKey "[ \t]%\(prec\|expect\|nonassoc\)\>"syn match ayaccKey "\$\(<[a-zA-Z_][a-zA-Z_0-9]*>\)\=[\$0-9]\+"syn keyword ayaccKeyActn yyerrok yyclearinsyn match ayaccUnionStart "^%union" skipwhite skipnl nextgroup=ayaccUnionsyn region ayaccUnion contained matchgroup=ayaccCurly start="{" matchgroup=ayaccCurly end="}" contains=@ayaccUnionGroupsyn region ayaccUnionCurly contained matchgroup=ayaccCurly start="{" matchgroup=ayaccCurly end="}" contains=@ayaccUnionGroupsyn match ayaccBrkt contained "[<>]"syn match ayaccType "<[a-zA-Z_][a-zA-Z0-9_]*>" contains=ayaccBrktsyn match ayaccDefinition "^[A-Za-z][A-Za-z0-9_]*[ \t]*:"" special Yacc separatorssyn match ayaccSectionSep "^[ \t]*%%"syn match ayaccSep "^[ \t]*%{"syn match ayaccSep "^[ \t]*%}"" I'd really like to highlight just the outer {}. Any suggestions???syn match ayaccCurlyError "[{}]"syn region ayaccAction matchgroup=ayaccCurly start="{" end="}" contains=ALLBUT,@ayaccActionGroupif version >= 508 || !exists("did_ayacc_syntax_inits") if version < 508 let did_ayacc_syntax_inits = 1 command -nargs=+ HiLink hi link <args> else command -nargs=+ HiLink hi def link <args> endif " Internal ayacc highlighting links HiLink ayaccBrkt ayaccStmt HiLink ayaccKey ayaccStmt HiLink ayaccOper ayaccStmt HiLink ayaccUnionStart ayaccKey " External ayacc highlighting links HiLink ayaccCurly Delimiter HiLink ayaccCurlyError Error HiLink ayaccDefinition Function HiLink ayaccDelim Function HiLink ayaccKeyActn Special HiLink ayaccSectionSep Todo HiLink ayaccSep Delimiter HiLink ayaccStmt Statement HiLink ayaccType Type " since Bram doesn't like my Delimiter :| HiLink Delimiter Type delcommand HiLinkendiflet b:current_syntax = "ayacc"" vim: ts=15
" Vim syntax file
" Language: AYacc
" Maintainer: Mathieu Clabaut <mathieu.clabaut@free.fr>
" LastChange: 02 May 2001
" Original: Yacc, maintained by Dr. Charles E. Campbell, Jr.
" Comment: Replaced sourcing c.vim file by ada.vim and rename yacc*
" in ayacc*
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
" Read the Ada syntax to start with
if version < 600
so <sfile>:p:h/ada.vim
else
runtime! syntax/ada.vim
unlet b:current_syntax
endif
" Clusters
syn cluster ayaccActionGroup contains=ayaccDelim,cInParen,cTodo,cIncluded,ayaccDelim,ayaccCurlyError,ayaccUnionCurly,ayaccUnion,cUserLabel,cOctalZero,cCppOut2,cCppSkip,cErrInBracket,cErrInParen,cOctalError
syn cluster ayaccUnionGroup contains=ayaccKey,cComment,ayaccCurly,cType,cStructure,cStorageClass,ayaccUnionCurly
" Yacc stuff
syn match ayaccDelim "^[ \t]*[:|;]"
syn match ayaccOper "@\d\+"
syn match ayaccKey "^[ \t]*%\(token\|type\|left\|right\|start\|ident\)\>"
syn match ayaccKey "[ \t]%\(prec\|expect\|nonassoc\)\>"
syn match ayaccKey "\$\(<[a-zA-Z_][a-zA-Z_0-9]*>\)\=[\$0-9]\+"
syn keyword ayaccKeyActn yyerrok yyclearin
syn match ayaccUnionStart "^%union" skipwhite skipnl nextgroup=ayaccUnion
syn region ayaccUnion contained matchgroup=ayaccCurly start="{" matchgroup=ayaccCurly end="}" contains=@ayaccUnionGroup
syn region ayaccUnionCurly contained matchgroup=ayaccCurly start="{" matchgroup=ayaccCurly end="}" contains=@ayaccUnionGroup
syn match ayaccBrkt contained "[<>]"
syn match ayaccType "<[a-zA-Z_][a-zA-Z0-9_]*>" contains=ayaccBrkt
syn match ayaccDefinition "^[A-Za-z][A-Za-z0-9_]*[ \t]*:"
" special Yacc separators
syn match ayaccSectionSep "^[ \t]*%%"
syn match ayaccSep "^[ \t]*%{"
syn match ayaccSep "^[ \t]*%}"
" I'd really like to highlight just the outer {}. Any suggestions???
syn match ayaccCurlyError "[{}]"
syn region ayaccAction matchgroup=ayaccCurly start="{" end="}" contains=ALLBUT,@ayaccActionGroup
if version >= 508 || !exists("did_ayacc_syntax_inits")
if version < 508
let did_ayacc_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
" Internal ayacc highlighting links
HiLink ayaccBrkt ayaccStmt
HiLink ayaccKey ayaccStmt
HiLink ayaccOper ayaccStmt
HiLink ayaccUnionStart ayaccKey
" External ayacc highlighting links
HiLink ayaccCurly Delimiter
HiLink ayaccCurlyError Error
HiLink ayaccDefinition Function
HiLink ayaccDelim Function
HiLink ayaccKeyActn Special
HiLink ayaccSectionSep Todo
HiLink ayaccSep Delimiter
HiLink ayaccStmt Statement
HiLink ayaccType Type
" since Bram doesn't like my Delimiter :|
HiLink Delimiter Type
delcommand HiLink
endif
let b:current_syntax = "ayacc"
" vim: ts=15