xref: /vim-8.2.3635/runtime/syntax/sather.vim (revision f37506f6)
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