Merge branch 'hack/autopaste'
[vim-kana.git] / runtime / syntax / simula.vim
blobe952ee26c33ee7cdf88a4984fd6a1b109b08c48b
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
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
15 " No case sensitivity in Simula
16 syn case        ignore
18 syn match       simulaComment           "^%.*$" contains=simulaTodo
19 syn region      simulaComment           start="!\|\<comment\>" end=";" contains=simulaTodo
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\)\>"
25 syn match       simulaCharError         "'.\{-2,}'"
26 syn match       simulaCharacter         "'.'"
27 syn match       simulaCharacter         "'!\d\{-}!'" contains=simulaSpecialChar
28 syn match       simulaString            '".\{-}"' contains=simulaSpecialChar,simulaTodo
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
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\+\)\=\>"
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
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
95     delcommand HiLink
96 endif
98 let b:current_syntax = "simula"
99 " vim: sts=4 sw=4 ts=8