view runtime/syntax/sather.vim @ 8461:988ddc5742f5 v7.4.1521

commit https://github.com/vim/vim/commit/8322e1f06e8fa39a6bb790a7d8d7db5d7aff3366 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Mar 8 19:20:04 2016 +0100 patch 7.4.1521 Problem: File permission test fails on MS-Windows. Solution: Expect a different permission.
author Christian Brabandt <cb@256bit.org>
date Tue, 08 Mar 2016 19:30:05 +0100
parents 3fc0f57ecb91
children 43efa4f5a8ea
line wrap: on
line source

" 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