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