diff runtime/syntax/sather.vim @ 0:76efa0be13f1

Initial revision
author atsuki
date Sat, 10 Nov 2007 15:07:22 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/runtime/syntax/sather.vim	Sat Nov 10 15:07:22 2007 +0900
@@ -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