12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- " 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
- " quit when a syntax file was already loaded
- if 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\+\)\=\>"
- hi def link simulaAssigned Identifier
- hi def link simulaBoolean Boolean
- hi def link simulaCharacter Character
- hi def link simulaCharError Error
- hi def link simulaComment Comment
- hi def link simulaCompound Statement
- hi def link simulaConditional Conditional
- hi def link simulaConstant Constant
- hi def link simulaFunction Function
- hi def link simulaNumber Number
- hi def link simulaOperator Operator
- hi def link simulaReal Float
- hi def link simulaReferenceType Type
- hi def link simulaRepeat Repeat
- hi def link simulaReserved Error
- hi def link simulaSemicolon Statement
- hi def link simulaSpecial Special
- hi def link simulaSpecialChar SpecialChar
- hi def link simulaSpecialCharErr Error
- hi def link simulaStatement Statement
- hi def link simulaStorageClass StorageClass
- hi def link simulaString String
- hi def link simulaStructure Structure
- hi def link simulaTodo Todo
- hi def link simulaType Type
- let b:current_syntax = "simula"
- " vim: sts=4 sw=4 ts=8
|