blob: de8bdade6702039e156f2570e26389f757f0198d [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Sather/pSather
3" Maintainer: Claudio Fleiner <claudio@fleiner.com>
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
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020012" quit when a syntax file was already loaded
13if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000014 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.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020061" Only when an item doesn't have highlighting yet
Bram Moolenaar071d4272004-06-13 20:20:40 +000062
Bram Moolenaarf37506f2016-08-31 22:22:10 +020063hi 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
Bram Moolenaar071d4272004-06-13 20:20:40 +000089
90let b:current_syntax = "sather"
91
92" vim: ts=8