updated for version 7.0001
diff --git a/runtime/syntax/csp.vim b/runtime/syntax/csp.vim
new file mode 100644
index 0000000..bd6213e
--- /dev/null
+++ b/runtime/syntax/csp.vim
@@ -0,0 +1,195 @@
+" 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