mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 01:34:25 +00:00 
			
		
		
		
	Vim runtime files based on 7.4.384 / hg changeset 7090d7f160f7
Excluding:
  Amiga icons (*.info, icons/)
  doc/hangulin.txt
  tutor/
  spell/
  lang/ (only used for menu translations)
  macros/maze/, macros/hanoi/, macros/life/, macros/urm/
      These were used to test vi compatibility.
  termcap
      "Demonstration of a termcap file (for the Amiga and Archimedes)"
Helped-by: Rich Wareham <rjw57@cam.ac.uk>
Helped-by: John <john.schmidt.h@gmail.com>
Helped-by: Yann <yann@yann-salaun.com>
Helped-by: Christophe Badoit <c.badoit@lesiteimmo.com>
Helped-by: drasill <github@tof2k.com>
Helped-by: Tae Sandoval Murgan <taecilla@gmail.com>
Helped-by: Lowe Thiderman <lowe.thiderman@gmail.com>
		
	
		
			
				
	
	
		
			196 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			196 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
" Vim syntax file
 | 
						|
" Language:	CSP (Communication Sequential Processes, using FDR input syntax)
 | 
						|
" Maintainer:	Jan Bredereke <brederek@tzi.de>
 | 
						|
" Version:	0.6.0
 | 
						|
" Last change:	Mon Mar 25, 2002
 | 
						|
" URL:		http://www.tzi.de/~brederek/vim/
 | 
						|
" Copying:	You may distribute and use this file freely, in the same
 | 
						|
"		way as the vim editor itself.
 | 
						|
"
 | 
						|
" To Do:	- Probably I missed some keywords or operators, please
 | 
						|
"		  fix them and notify me, the maintainer.
 | 
						|
"		- Currently, we do lexical highlighting only. It would be
 | 
						|
"		  nice to have more actual syntax checks, including
 | 
						|
"		  highlighting of wrong syntax.
 | 
						|
"		- The additional syntax for the RT-Tester (pseudo-comments)
 | 
						|
"		  should be optional.
 | 
						|
 | 
						|
" 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
 | 
						|
 | 
						|
" case is significant to FDR:
 | 
						|
syn case match
 | 
						|
 | 
						|
" Block comments in CSP are between {- and -}
 | 
						|
syn region cspComment	start="{-"  end="-}" contains=cspTodo
 | 
						|
" Single-line comments start with --
 | 
						|
syn region cspComment	start="--"  end="$" contains=cspTodo,cspOldRttComment,cspSdlRttComment keepend
 | 
						|
 | 
						|
" Numbers:
 | 
						|
syn match  cspNumber "\<\d\+\>"
 | 
						|
 | 
						|
" Conditionals:
 | 
						|
syn keyword  cspConditional if then else
 | 
						|
 | 
						|
" Operators on processes:
 | 
						|
" -> ? : ! ' ; /\ \ [] |~| [> & [[..<-..]] ||| [|..|] || [..<->..] ; : @ |||
 | 
						|
syn match  cspOperator "->"
 | 
						|
syn match  cspOperator "/\\"
 | 
						|
syn match  cspOperator "[^/]\\"lc=1
 | 
						|
syn match  cspOperator "\[\]"
 | 
						|
syn match  cspOperator "|\~|"
 | 
						|
syn match  cspOperator "\[>"
 | 
						|
syn match  cspOperator "\[\["
 | 
						|
syn match  cspOperator "\]\]"
 | 
						|
syn match  cspOperator "<-"
 | 
						|
syn match  cspOperator "|||"
 | 
						|
syn match  cspOperator "[^|]||[^|]"lc=1,me=e-1
 | 
						|
syn match  cspOperator "[^|{\~]|[^|}\~]"lc=1,me=e-1
 | 
						|
syn match  cspOperator "\[|"
 | 
						|
syn match  cspOperator "|\]"
 | 
						|
syn match  cspOperator "\[[^>]"me=e-1
 | 
						|
syn match  cspOperator "\]"
 | 
						|
syn match  cspOperator "<->"
 | 
						|
syn match  cspOperator "[?:!';@]"
 | 
						|
syn match  cspOperator "&"
 | 
						|
syn match  cspOperator "\."
 | 
						|
 | 
						|
" (not on processes:)
 | 
						|
" syn match  cspDelimiter	"{|"
 | 
						|
" syn match  cspDelimiter	"|}"
 | 
						|
" syn match  cspDelimiter	"{[^-|]"me=e-1
 | 
						|
" syn match  cspDelimiter	"[^-|]}"lc=1
 | 
						|
 | 
						|
" Keywords:
 | 
						|
syn keyword cspKeyword		length null head tail concat elem
 | 
						|
syn keyword cspKeyword		union inter diff Union Inter member card
 | 
						|
syn keyword cspKeyword		empty set Set Seq
 | 
						|
syn keyword cspKeyword		true false and or not within let
 | 
						|
syn keyword cspKeyword		nametype datatype diamond normal
 | 
						|
syn keyword cspKeyword		sbisim tau_loop_factor model_compress
 | 
						|
syn keyword cspKeyword		explicate
 | 
						|
syn match cspKeyword		"transparent"
 | 
						|
syn keyword cspKeyword		external chase prioritize
 | 
						|
syn keyword cspKeyword		channel Events
 | 
						|
syn keyword cspKeyword		extensions productions
 | 
						|
syn keyword cspKeyword		Bool Int
 | 
						|
 | 
						|
" Reserved keywords:
 | 
						|
syn keyword cspReserved		attribute embed module subtype
 | 
						|
 | 
						|
" Include:
 | 
						|
syn region cspInclude matchgroup=cspIncludeKeyword start="^include" end="$" keepend contains=cspIncludeArg
 | 
						|
syn region cspIncludeArg start='\s\+\"' end= '\"\s*' contained
 | 
						|
 | 
						|
" Assertions:
 | 
						|
syn keyword cspAssert		assert deterministic divergence free deadlock
 | 
						|
syn keyword cspAssert		livelock
 | 
						|
syn match cspAssert		"\[T="
 | 
						|
syn match cspAssert		"\[F="
 | 
						|
syn match cspAssert		"\[FD="
 | 
						|
syn match cspAssert		"\[FD\]"
 | 
						|
syn match cspAssert		"\[F\]"
 | 
						|
 | 
						|
" Types and Sets
 | 
						|
" (first char a capital, later at least one lower case, no trailing underscore):
 | 
						|
syn match cspType     "\<_*[A-Z][A-Z_0-9]*[a-z]\(\|[A-Za-z_0-9]*[A-Za-z0-9]\)\>"
 | 
						|
 | 
						|
" Processes (all upper case, no trailing underscore):
 | 
						|
" (For identifiers that could be types or sets, too, this second rule set
 | 
						|
" wins.)
 | 
						|
syn match cspProcess		"\<[A-Z_][A-Z_0-9]*[A-Z0-9]\>"
 | 
						|
syn match cspProcess		"\<[A-Z_]\>"
 | 
						|
 | 
						|
" reserved identifiers for tool output (ending in underscore):
 | 
						|
syn match cspReservedIdentifier	"\<[A-Za-z_][A-Za-z_0-9]*_\>"
 | 
						|
 | 
						|
" ToDo markers:
 | 
						|
syn match cspTodo		"FIXME"	contained
 | 
						|
syn match cspTodo		"TODO"	contained
 | 
						|
syn match cspTodo		"!!!"	contained
 | 
						|
 | 
						|
" RT-Tester pseudo comments:
 | 
						|
" (The now obsolete syntax:)
 | 
						|
syn match cspOldRttComment	"^--\$\$AM_UNDEF"lc=2		contained
 | 
						|
syn match cspOldRttComment	"^--\$\$AM_ERROR"lc=2		contained
 | 
						|
syn match cspOldRttComment	"^--\$\$AM_WARNING"lc=2		contained
 | 
						|
syn match cspOldRttComment	"^--\$\$AM_SET_TIMER"lc=2	contained
 | 
						|
syn match cspOldRttComment	"^--\$\$AM_RESET_TIMER"lc=2	contained
 | 
						|
syn match cspOldRttComment	"^--\$\$AM_ELAPSED_TIMER"lc=2	contained
 | 
						|
syn match cspOldRttComment	"^--\$\$AM_OUTPUT"lc=2		contained
 | 
						|
syn match cspOldRttComment	"^--\$\$AM_INPUT"lc=2		contained
 | 
						|
" (The current syntax:)
 | 
						|
syn region cspRttPragma matchgroup=cspRttPragmaKeyword start="^pragma\s\+" end="\s*$" oneline keepend contains=cspRttPragmaArg,cspRttPragmaSdl
 | 
						|
syn keyword cspRttPragmaArg	AM_ERROR AM_WARNING AM_SET_TIMER contained
 | 
						|
syn keyword cspRttPragmaArg	AM_RESET_TIMER AM_ELAPSED_TIMER  contained
 | 
						|
syn keyword cspRttPragmaArg	AM_OUTPUT AM_INPUT AM_INTERNAL   contained
 | 
						|
" the "SDL_MATCH" extension:
 | 
						|
syn region cspRttPragmaSdl	matchgroup=cspRttPragmaKeyword start="SDL_MATCH\s\+" end="\s*$" contains=cspRttPragmaSdlArg contained
 | 
						|
syn keyword cspRttPragmaSdlArg	TRANSLATE nextgroup=cspRttPragmaSdlTransName contained
 | 
						|
syn keyword cspRttPragmaSdlArg	PARAM SKIP OPTIONAL CHOICE ARRAY nextgroup=cspRttPragmaSdlName contained
 | 
						|
syn match cspRttPragmaSdlName	"\s*\S\+\s*" nextgroup=cspRttPragmaSdlTail contained
 | 
						|
syn region cspRttPragmaSdlTail  start="" end="\s*$" contains=cspRttPragmaSdlTailArg contained
 | 
						|
syn keyword cspRttPragmaSdlTailArg	SUBSET_USED DEFAULT_VALUE Present contained
 | 
						|
syn match cspRttPragmaSdlTransName	"\s*\w\+\s*" nextgroup=cspRttPragmaSdlTransTail contained
 | 
						|
syn region cspRttPragmaSdlTransTail  start="" end="\s*$" contains=cspRttPragmaSdlTransTailArg contained
 | 
						|
syn keyword cspRttPragmaSdlTransTailArg	sizeof contained
 | 
						|
syn match cspRttPragmaSdlTransTailArg	"\*" contained
 | 
						|
syn match cspRttPragmaSdlTransTailArg	"(" contained
 | 
						|
syn match cspRttPragmaSdlTransTailArg	")" contained
 | 
						|
 | 
						|
" temporary syntax extension for commented-out "pragma SDL_MATCH":
 | 
						|
syn match cspSdlRttComment	"pragma\s\+SDL_MATCH\s\+" nextgroup=cspRttPragmaSdlArg contained
 | 
						|
 | 
						|
syn sync lines=250
 | 
						|
 | 
						|
" 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_csp_syn_inits")
 | 
						|
  if version < 508
 | 
						|
    let did_csp_syn_inits = 1
 | 
						|
    command -nargs=+ HiLink hi link <args>
 | 
						|
  else
 | 
						|
    command -nargs=+ HiLink hi def link <args>
 | 
						|
  endif
 | 
						|
 | 
						|
  " The default methods for highlighting.  Can be overridden later
 | 
						|
  " (For vim version <=5.7, the command groups are defined in
 | 
						|
  " $VIMRUNTIME/syntax/synload.vim )
 | 
						|
  HiLink cspComment			Comment
 | 
						|
  HiLink cspNumber			Number
 | 
						|
  HiLink cspConditional			Conditional
 | 
						|
  HiLink cspOperator			Delimiter
 | 
						|
  HiLink cspKeyword			Keyword
 | 
						|
  HiLink cspReserved			SpecialChar
 | 
						|
  HiLink cspInclude			Error
 | 
						|
  HiLink cspIncludeKeyword		Include
 | 
						|
  HiLink cspIncludeArg			Include
 | 
						|
  HiLink cspAssert			PreCondit
 | 
						|
  HiLink cspType			Type
 | 
						|
  HiLink cspProcess			Function
 | 
						|
  HiLink cspTodo			Todo
 | 
						|
  HiLink cspOldRttComment		Define
 | 
						|
  HiLink cspRttPragmaKeyword		Define
 | 
						|
  HiLink cspSdlRttComment		Define
 | 
						|
  HiLink cspRttPragmaArg		Define
 | 
						|
  HiLink cspRttPragmaSdlArg		Define
 | 
						|
  HiLink cspRttPragmaSdlName		Default
 | 
						|
  HiLink cspRttPragmaSdlTailArg		Define
 | 
						|
  HiLink cspRttPragmaSdlTransName	Default
 | 
						|
  HiLink cspRttPragmaSdlTransTailArg	Define
 | 
						|
  HiLink cspReservedIdentifier	Error
 | 
						|
  " (Currently unused vim method: Debug)
 | 
						|
 | 
						|
  delcommand HiLink
 | 
						|
endif
 | 
						|
 | 
						|
let b:current_syntax = "csp"
 | 
						|
 | 
						|
" vim: ts=8
 |