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