1" Vim syntax file 2" Language: Sather/pSather 3" Maintainer: Claudio Fleiner <[email protected]> 4" URL: http://www.fleiner.com/vim/syntax/sather.vim 5" Last Change: 2003 May 11 6 7" Sather is a OO-language developped at the International Computer Science 8" Institute (ICSI) in Berkeley, CA. pSather is a parallel extension to Sather. 9" Homepage: http://www.icsi.berkeley.edu/~sather 10" Sather files use .sa as suffix 11 12" quit when a syntax file was already loaded 13if exists("b:current_syntax") 14 finish 15endif 16 17" keyword definitions 18syn keyword satherExternal extern 19syn keyword satherBranch break continue 20syn keyword satherLabel when then 21syn keyword satherConditional if else elsif end case typecase assert with 22syn match satherConditional "near$" 23syn match satherConditional "far$" 24syn match satherConditional "near *[^(]"he=e-1 25syn match satherConditional "far *[^(]"he=e-1 26syn keyword satherSynchronize lock guard sync 27syn keyword satherRepeat loop parloop do 28syn match satherRepeat "while!" 29syn match satherRepeat "break!" 30syn match satherRepeat "until!" 31syn keyword satherBoolValue true false 32syn keyword satherValue self here cluster 33syn keyword satherOperator new "== != & ^ | && || 34syn keyword satherOperator and or not 35syn match satherOperator "[#!]" 36syn match satherOperator ":-" 37syn keyword satherType void attr where 38syn match satherType "near *("he=e-1 39syn match satherType "far *("he=e-1 40syn keyword satherStatement return 41syn keyword satherStorageClass static const 42syn keyword satherExceptions try raise catch 43syn keyword satherMethodDecl is pre post 44syn keyword satherClassDecl abstract value class include 45syn keyword satherScopeDecl public private readonly 46 47 48syn match satherSpecial contained "\\\d\d\d\|\\." 49syn region satherString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=satherSpecial 50syn match satherCharacter "'[^\\]'" 51syn match satherSpecialCharacter "'\\.'" 52syn match satherNumber "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>" 53syn match satherCommentSkip contained "^\s*\*\($\|\s\+\)" 54syn region satherComment2String contained start=+"+ skip=+\\\\\|\\"+ end=+$\|"+ contains=satherSpecial 55syn match satherComment "--.*" contains=satherComment2String,satherCharacter,satherNumber 56 57 58syn sync ccomment satherComment 59 60" Define the default highlighting. 61" Only when an item doesn't have highlighting yet 62 63hi def link satherBranch satherStatement 64hi def link satherLabel satherStatement 65hi def link satherConditional satherStatement 66hi def link satherSynchronize satherStatement 67hi def link satherRepeat satherStatement 68hi def link satherExceptions satherStatement 69hi def link satherStorageClass satherDeclarative 70hi def link satherMethodDecl satherDeclarative 71hi def link satherClassDecl satherDeclarative 72hi def link satherScopeDecl satherDeclarative 73hi def link satherBoolValue satherValue 74hi def link satherSpecial satherValue 75hi def link satherString satherValue 76hi def link satherCharacter satherValue 77hi def link satherSpecialCharacter satherValue 78hi def link satherNumber satherValue 79hi def link satherStatement Statement 80hi def link satherOperator Statement 81hi def link satherComment Comment 82hi def link satherType Type 83hi def link satherValue String 84hi def link satherString String 85hi def link satherSpecial String 86hi def link satherCharacter String 87hi def link satherDeclarative Type 88hi def link satherExternal PreCondit 89 90let b:current_syntax = "sather" 91 92" vim: ts=8 93