diff options
Diffstat (limited to 'runtime/syntax/sather.vim')
-rw-r--r-- | runtime/syntax/sather.vim | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/runtime/syntax/sather.vim b/runtime/syntax/sather.vim new file mode 100644 index 000000000..759591bf8 --- /dev/null +++ b/runtime/syntax/sather.vim @@ -0,0 +1,105 @@ +" Vim syntax file +" Language: Sather/pSather +" Maintainer: Claudio Fleiner <claudio@fleiner.com> +" URL: http://www.fleiner.com/vim/syntax/sather.vim +" Last Change: 2003 May 11 + +" Sather is a OO-language developped at the International Computer Science +" Institute (ICSI) in Berkeley, CA. pSather is a parallel extension to Sather. +" Homepage: http://www.icsi.berkeley.edu/~sather +" Sather files use .sa as suffix + +" 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 + +" keyword definitions +syn keyword satherExternal extern +syn keyword satherBranch break continue +syn keyword satherLabel when then +syn keyword satherConditional if else elsif end case typecase assert with +syn match satherConditional "near$" +syn match satherConditional "far$" +syn match satherConditional "near *[^(]"he=e-1 +syn match satherConditional "far *[^(]"he=e-1 +syn keyword satherSynchronize lock guard sync +syn keyword satherRepeat loop parloop do +syn match satherRepeat "while!" +syn match satherRepeat "break!" +syn match satherRepeat "until!" +syn keyword satherBoolValue true false +syn keyword satherValue self here cluster +syn keyword satherOperator new "== != & ^ | && || +syn keyword satherOperator and or not +syn match satherOperator "[#!]" +syn match satherOperator ":-" +syn keyword satherType void attr where +syn match satherType "near *("he=e-1 +syn match satherType "far *("he=e-1 +syn keyword satherStatement return +syn keyword satherStorageClass static const +syn keyword satherExceptions try raise catch +syn keyword satherMethodDecl is pre post +syn keyword satherClassDecl abstract value class include +syn keyword satherScopeDecl public private readonly + + +syn match satherSpecial contained "\\\d\d\d\|\\." +syn region satherString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=satherSpecial +syn match satherCharacter "'[^\\]'" +syn match satherSpecialCharacter "'\\.'" +syn match satherNumber "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>" +syn match satherCommentSkip contained "^\s*\*\($\|\s\+\)" +syn region satherComment2String contained start=+"+ skip=+\\\\\|\\"+ end=+$\|"+ contains=satherSpecial +syn match satherComment "--.*" contains=satherComment2String,satherCharacter,satherNumber + + +syn sync ccomment satherComment + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_sather_syn_inits") + if version < 508 + let did_sather_syn_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + + HiLink satherBranch satherStatement + HiLink satherLabel satherStatement + HiLink satherConditional satherStatement + HiLink satherSynchronize satherStatement + HiLink satherRepeat satherStatement + HiLink satherExceptions satherStatement + HiLink satherStorageClass satherDeclarative + HiLink satherMethodDecl satherDeclarative + HiLink satherClassDecl satherDeclarative + HiLink satherScopeDecl satherDeclarative + HiLink satherBoolValue satherValue + HiLink satherSpecial satherValue + HiLink satherString satherValue + HiLink satherCharacter satherValue + HiLink satherSpecialCharacter satherValue + HiLink satherNumber satherValue + HiLink satherStatement Statement + HiLink satherOperator Statement + HiLink satherComment Comment + HiLink satherType Type + HiLink satherValue String + HiLink satherString String + HiLink satherSpecial String + HiLink satherCharacter String + HiLink satherDeclarative Type + HiLink satherExternal PreCondit + delcommand HiLink +endif + +let b:current_syntax = "sather" + +" vim: ts=8 |