blob: eb3f8a1e85ae15f986c35924439df287570c700b [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Simula
3" Maintainer: Haakon Riiser <hakonrk@fys.uio.no>
4" URL: http://folk.uio.no/hakonrk/vim/syntax/simula.vim
5" Last Change: 2001 May 15
6
Bram Moolenaar89bcfda2016-08-30 23:26:57 +02007" quit when a syntax file was already loaded
8if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +00009 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
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020058command -nargs=+ HiLink hi def link <args>
Bram Moolenaar071d4272004-06-13 20:20:40 +000059
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020060HiLink 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
Bram Moolenaar071d4272004-06-13 20:20:40 +000085
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020086delcommand HiLink
Bram Moolenaar071d4272004-06-13 20:20:40 +000087
88let b:current_syntax = "simula"
89" vim: sts=4 sw=4 ts=8