forked from aniani/vim
		
	
		
			
				
	
	
		
			100 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " 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
 |