updated for version 7.0001
diff --git a/runtime/syntax/simula.vim b/runtime/syntax/simula.vim
new file mode 100644
index 0000000..e952ee2
--- /dev/null
+++ b/runtime/syntax/simula.vim
@@ -0,0 +1,99 @@
+" Vim syntax file
+" Language:	Simula
+" Maintainer:	Haakon Riiser <hakonrk@fys.uio.no>
+" URL:		http://folk.uio.no/hakonrk/vim/syntax/simula.vim
+" Last Change:	2001 May 15
+
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if version < 600
+    syn clear
+elseif exists("b:current_syntax")
+    finish
+endif
+
+" No case sensitivity in Simula
+syn case	ignore
+
+syn match	simulaComment		"^%.*$" contains=simulaTodo
+syn region	simulaComment		start="!\|\<comment\>" end=";" contains=simulaTodo
+
+" Text between the keyword 'end' and either a semicolon or one of the
+" keywords 'end', 'else', 'when' or 'otherwise' is also a comment
+syn region	simulaComment		start="\<end\>"lc=3 matchgroup=Statement end=";\|\<\(end\|else\|when\|otherwise\)\>"
+
+syn match	simulaCharError		"'.\{-2,}'"
+syn match	simulaCharacter		"'.'"
+syn match	simulaCharacter		"'!\d\{-}!'" contains=simulaSpecialChar
+syn match	simulaString		'".\{-}"' contains=simulaSpecialChar,simulaTodo
+
+syn keyword	simulaBoolean		true false
+syn keyword	simulaCompound		begin end
+syn keyword	simulaConditional	else if otherwise then until when
+syn keyword	simulaConstant		none notext
+syn keyword	simulaFunction		procedure
+syn keyword	simulaOperator		eq eqv ge gt imp in is le lt ne new not qua
+syn keyword	simulaRepeat		while for
+syn keyword	simulaReserved		activate after at before delay go goto label prior reactivate switch to
+syn keyword	simulaStatement		do inner inspect step this
+syn keyword	simulaStorageClass	external hidden name protected value
+syn keyword	simulaStructure		class
+syn keyword	simulaType		array boolean character integer long real short text virtual
+syn match	simulaAssigned		"\<\h\w*\s*\((.*)\)\=\s*:\(=\|-\)"me=e-2
+syn match	simulaOperator		"[&:=<>+\-*/]"
+syn match	simulaOperator		"\<and\(\s\+then\)\=\>"
+syn match	simulaOperator		"\<or\(\s\+else\)\=\>"
+syn match	simulaReferenceType	"\<ref\s*(.\{-})"
+syn match	simulaSemicolon		";"
+syn match	simulaSpecial		"[(),.]"
+syn match	simulaSpecialCharErr	"!\d\{-4,}!" contained
+syn match	simulaSpecialCharErr	"!!" contained
+syn match	simulaSpecialChar	"!\d\{-}!" contains=simulaSpecialCharErr contained
+syn match	simulaTodo		"xxx\+" contained
+
+" Integer number (or float without `.')
+syn match	simulaNumber		"-\=\<\d\+\>"
+" Real with optional exponent
+syn match	simulaReal		"-\=\<\d\+\(\.\d\+\)\=\(&&\=[+-]\=\d\+\)\=\>"
+" Real starting with a `.', optional exponent
+syn match	simulaReal		"-\=\.\d\+\(&&\=[+-]\=\d\+\)\=\>"
+
+if version >= 508 || !exists("did_simula_syntax_inits")
+    if version < 508
+	let did_simula_syntax_inits = 1
+	command -nargs=+ HiLink hi link <args>
+    else
+	command -nargs=+ HiLink hi def link <args>
+    endif
+
+    HiLink simulaAssigned		Identifier
+    HiLink simulaBoolean		Boolean
+    HiLink simulaCharacter		Character
+    HiLink simulaCharError		Error
+    HiLink simulaComment		Comment
+    HiLink simulaCompound		Statement
+    HiLink simulaConditional		Conditional
+    HiLink simulaConstant		Constant
+    HiLink simulaFunction		Function
+    HiLink simulaNumber			Number
+    HiLink simulaOperator		Operator
+    HiLink simulaReal			Float
+    HiLink simulaReferenceType		Type
+    HiLink simulaRepeat			Repeat
+    HiLink simulaReserved		Error
+    HiLink simulaSemicolon		Statement
+    HiLink simulaSpecial		Special
+    HiLink simulaSpecialChar		SpecialChar
+    HiLink simulaSpecialCharErr		Error
+    HiLink simulaStatement		Statement
+    HiLink simulaStorageClass		StorageClass
+    HiLink simulaString			String
+    HiLink simulaStructure		Structure
+    HiLink simulaTodo			Todo
+    HiLink simulaType			Type
+
+    delcommand HiLink
+endif
+
+let b:current_syntax = "simula"
+" vim: sts=4 sw=4 ts=8