xref: /vim-8.2.3635/runtime/syntax/simula.vim (revision 89bcfda6)
1" Vim syntax file
2" Language:	Simula
3" Maintainer:	Haakon Riiser <[email protected]>
4" URL:		http://folk.uio.no/hakonrk/vim/syntax/simula.vim
5" Last Change:	2001 May 15
6
7" quit when a syntax file was already loaded
8if exists("b:current_syntax")
9    finish
10endif
11
12" No case sensitivity in Simula
13syn case	ignore
14
15syn match	simulaComment		"^%.*$" contains=simulaTodo
16syn region	simulaComment		start="!\|\<comment\>" end=";" contains=simulaTodo
17
18" Text between the keyword 'end' and either a semicolon or one of the
19" keywords 'end', 'else', 'when' or 'otherwise' is also a comment
20syn region	simulaComment		start="\<end\>"lc=3 matchgroup=Statement end=";\|\<\(end\|else\|when\|otherwise\)\>"
21
22syn match	simulaCharError		"'.\{-2,}'"
23syn match	simulaCharacter		"'.'"
24syn match	simulaCharacter		"'!\d\{-}!'" contains=simulaSpecialChar
25syn match	simulaString		'".\{-}"' contains=simulaSpecialChar,simulaTodo
26
27syn keyword	simulaBoolean		true false
28syn keyword	simulaCompound		begin end
29syn keyword	simulaConditional	else if otherwise then until when
30syn keyword	simulaConstant		none notext
31syn keyword	simulaFunction		procedure
32syn keyword	simulaOperator		eq eqv ge gt imp in is le lt ne new not qua
33syn keyword	simulaRepeat		while for
34syn keyword	simulaReserved		activate after at before delay go goto label prior reactivate switch to
35syn keyword	simulaStatement		do inner inspect step this
36syn keyword	simulaStorageClass	external hidden name protected value
37syn keyword	simulaStructure		class
38syn keyword	simulaType		array boolean character integer long real short text virtual
39syn match	simulaAssigned		"\<\h\w*\s*\((.*)\)\=\s*:\(=\|-\)"me=e-2
40syn match	simulaOperator		"[&:=<>+\-*/]"
41syn match	simulaOperator		"\<and\(\s\+then\)\=\>"
42syn match	simulaOperator		"\<or\(\s\+else\)\=\>"
43syn match	simulaReferenceType	"\<ref\s*(.\{-})"
44syn match	simulaSemicolon		";"
45syn match	simulaSpecial		"[(),.]"
46syn match	simulaSpecialCharErr	"!\d\{-4,}!" contained
47syn match	simulaSpecialCharErr	"!!" contained
48syn match	simulaSpecialChar	"!\d\{-}!" contains=simulaSpecialCharErr contained
49syn match	simulaTodo		"xxx\+" contained
50
51" Integer number (or float without `.')
52syn match	simulaNumber		"-\=\<\d\+\>"
53" Real with optional exponent
54syn match	simulaReal		"-\=\<\d\+\(\.\d\+\)\=\(&&\=[+-]\=\d\+\)\=\>"
55" Real starting with a `.', optional exponent
56syn match	simulaReal		"-\=\.\d\+\(&&\=[+-]\=\d\+\)\=\>"
57
58command -nargs=+ HiLink hi def link <args>
59
60HiLink simulaAssigned		Identifier
61HiLink simulaBoolean		Boolean
62HiLink simulaCharacter		Character
63HiLink simulaCharError		Error
64HiLink simulaComment		Comment
65HiLink simulaCompound		Statement
66HiLink simulaConditional		Conditional
67HiLink simulaConstant		Constant
68HiLink simulaFunction		Function
69HiLink simulaNumber			Number
70HiLink simulaOperator		Operator
71HiLink simulaReal			Float
72HiLink simulaReferenceType		Type
73HiLink simulaRepeat			Repeat
74HiLink simulaReserved		Error
75HiLink simulaSemicolon		Statement
76HiLink simulaSpecial		Special
77HiLink simulaSpecialChar		SpecialChar
78HiLink simulaSpecialCharErr		Error
79HiLink simulaStatement		Statement
80HiLink simulaStorageClass		StorageClass
81HiLink simulaString			String
82HiLink simulaStructure		Structure
83HiLink simulaTodo			Todo
84HiLink simulaType			Type
85
86delcommand HiLink
87
88let b:current_syntax = "simula"
89" vim: sts=4 sw=4 ts=8
90