1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: Sather/pSather 3071d4279SBram Moolenaar" Maintainer: Claudio Fleiner <[email protected]> 4071d4279SBram Moolenaar" URL: http://www.fleiner.com/vim/syntax/sather.vim 5071d4279SBram Moolenaar" Last Change: 2003 May 11 6071d4279SBram Moolenaar 7071d4279SBram Moolenaar" Sather is a OO-language developped at the International Computer Science 8071d4279SBram Moolenaar" Institute (ICSI) in Berkeley, CA. pSather is a parallel extension to Sather. 9071d4279SBram Moolenaar" Homepage: http://www.icsi.berkeley.edu/~sather 10071d4279SBram Moolenaar" Sather files use .sa as suffix 11071d4279SBram Moolenaar 1289bcfda6SBram Moolenaar" quit when a syntax file was already loaded 1389bcfda6SBram Moolenaarif exists("b:current_syntax") 14071d4279SBram Moolenaar finish 15071d4279SBram Moolenaarendif 16071d4279SBram Moolenaar 17071d4279SBram Moolenaar" keyword definitions 18071d4279SBram Moolenaarsyn keyword satherExternal extern 19071d4279SBram Moolenaarsyn keyword satherBranch break continue 20071d4279SBram Moolenaarsyn keyword satherLabel when then 21071d4279SBram Moolenaarsyn keyword satherConditional if else elsif end case typecase assert with 22071d4279SBram Moolenaarsyn match satherConditional "near$" 23071d4279SBram Moolenaarsyn match satherConditional "far$" 24071d4279SBram Moolenaarsyn match satherConditional "near *[^(]"he=e-1 25071d4279SBram Moolenaarsyn match satherConditional "far *[^(]"he=e-1 26071d4279SBram Moolenaarsyn keyword satherSynchronize lock guard sync 27071d4279SBram Moolenaarsyn keyword satherRepeat loop parloop do 28071d4279SBram Moolenaarsyn match satherRepeat "while!" 29071d4279SBram Moolenaarsyn match satherRepeat "break!" 30071d4279SBram Moolenaarsyn match satherRepeat "until!" 31071d4279SBram Moolenaarsyn keyword satherBoolValue true false 32071d4279SBram Moolenaarsyn keyword satherValue self here cluster 33071d4279SBram Moolenaarsyn keyword satherOperator new "== != & ^ | && || 34071d4279SBram Moolenaarsyn keyword satherOperator and or not 35071d4279SBram Moolenaarsyn match satherOperator "[#!]" 36071d4279SBram Moolenaarsyn match satherOperator ":-" 37071d4279SBram Moolenaarsyn keyword satherType void attr where 38071d4279SBram Moolenaarsyn match satherType "near *("he=e-1 39071d4279SBram Moolenaarsyn match satherType "far *("he=e-1 40071d4279SBram Moolenaarsyn keyword satherStatement return 41071d4279SBram Moolenaarsyn keyword satherStorageClass static const 42071d4279SBram Moolenaarsyn keyword satherExceptions try raise catch 43071d4279SBram Moolenaarsyn keyword satherMethodDecl is pre post 44071d4279SBram Moolenaarsyn keyword satherClassDecl abstract value class include 45071d4279SBram Moolenaarsyn keyword satherScopeDecl public private readonly 46071d4279SBram Moolenaar 47071d4279SBram Moolenaar 48071d4279SBram Moolenaarsyn match satherSpecial contained "\\\d\d\d\|\\." 49071d4279SBram Moolenaarsyn region satherString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=satherSpecial 50071d4279SBram Moolenaarsyn match satherCharacter "'[^\\]'" 51071d4279SBram Moolenaarsyn match satherSpecialCharacter "'\\.'" 52071d4279SBram Moolenaarsyn match satherNumber "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>" 53071d4279SBram Moolenaarsyn match satherCommentSkip contained "^\s*\*\($\|\s\+\)" 54071d4279SBram Moolenaarsyn region satherComment2String contained start=+"+ skip=+\\\\\|\\"+ end=+$\|"+ contains=satherSpecial 55071d4279SBram Moolenaarsyn match satherComment "--.*" contains=satherComment2String,satherCharacter,satherNumber 56071d4279SBram Moolenaar 57071d4279SBram Moolenaar 58071d4279SBram Moolenaarsyn sync ccomment satherComment 59071d4279SBram Moolenaar 60071d4279SBram Moolenaar" Define the default highlighting. 6189bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet 62071d4279SBram Moolenaar 63*f37506f6SBram Moolenaarhi def link satherBranch satherStatement 64*f37506f6SBram Moolenaarhi def link satherLabel satherStatement 65*f37506f6SBram Moolenaarhi def link satherConditional satherStatement 66*f37506f6SBram Moolenaarhi def link satherSynchronize satherStatement 67*f37506f6SBram Moolenaarhi def link satherRepeat satherStatement 68*f37506f6SBram Moolenaarhi def link satherExceptions satherStatement 69*f37506f6SBram Moolenaarhi def link satherStorageClass satherDeclarative 70*f37506f6SBram Moolenaarhi def link satherMethodDecl satherDeclarative 71*f37506f6SBram Moolenaarhi def link satherClassDecl satherDeclarative 72*f37506f6SBram Moolenaarhi def link satherScopeDecl satherDeclarative 73*f37506f6SBram Moolenaarhi def link satherBoolValue satherValue 74*f37506f6SBram Moolenaarhi def link satherSpecial satherValue 75*f37506f6SBram Moolenaarhi def link satherString satherValue 76*f37506f6SBram Moolenaarhi def link satherCharacter satherValue 77*f37506f6SBram Moolenaarhi def link satherSpecialCharacter satherValue 78*f37506f6SBram Moolenaarhi def link satherNumber satherValue 79*f37506f6SBram Moolenaarhi def link satherStatement Statement 80*f37506f6SBram Moolenaarhi def link satherOperator Statement 81*f37506f6SBram Moolenaarhi def link satherComment Comment 82*f37506f6SBram Moolenaarhi def link satherType Type 83*f37506f6SBram Moolenaarhi def link satherValue String 84*f37506f6SBram Moolenaarhi def link satherString String 85*f37506f6SBram Moolenaarhi def link satherSpecial String 86*f37506f6SBram Moolenaarhi def link satherCharacter String 87*f37506f6SBram Moolenaarhi def link satherDeclarative Type 88*f37506f6SBram Moolenaarhi def link satherExternal PreCondit 89071d4279SBram Moolenaar 90071d4279SBram Moolenaarlet b:current_syntax = "sather" 91071d4279SBram Moolenaar 92071d4279SBram Moolenaar" vim: ts=8 93