106 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " 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
 |