diff options
Diffstat (limited to 'syntax/sather.vim')
| -rw-r--r-- | syntax/sather.vim | 96 | 
1 files changed, 96 insertions, 0 deletions
diff --git a/syntax/sather.vim b/syntax/sather.vim new file mode 100644 index 00000000..cccd786d --- /dev/null +++ b/syntax/sather.vim @@ -0,0 +1,96 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 +   +" 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 + +" quit when a syntax file was already loaded +if 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. +" Only when an item doesn't have highlighting yet + +hi def link satherBranch		satherStatement +hi def link satherLabel		satherStatement +hi def link satherConditional	satherStatement +hi def link satherSynchronize	satherStatement +hi def link satherRepeat		satherStatement +hi def link satherExceptions	satherStatement +hi def link satherStorageClass	satherDeclarative +hi def link satherMethodDecl	satherDeclarative +hi def link satherClassDecl	satherDeclarative +hi def link satherScopeDecl	satherDeclarative +hi def link satherBoolValue	satherValue +hi def link satherSpecial		satherValue +hi def link satherString		satherValue +hi def link satherCharacter	satherValue +hi def link satherSpecialCharacter satherValue +hi def link satherNumber		satherValue +hi def link satherStatement	Statement +hi def link satherOperator		Statement +hi def link satherComment		Comment +hi def link satherType		Type +hi def link satherValue		String +hi def link satherString		String +hi def link satherSpecial		String +hi def link satherCharacter	String +hi def link satherDeclarative	Type +hi def link satherExternal		PreCondit + +let b:current_syntax = "sather" + +" vim: ts=8 + +endif  | 
