2014-07-10 21:05:51 -07:00
|
|
|
" 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
|
|
|
|
|
2017-04-28 12:06:44 -07:00
|
|
|
" quit when a syntax file was already loaded
|
|
|
|
if exists("b:current_syntax")
|
2014-07-10 21:05:51 -07:00
|
|
|
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\+\)\=\>"
|
|
|
|
|
2017-04-28 12:06:44 -07:00
|
|
|
command -nargs=+ HiLink hi def link <args>
|
2014-07-10 21:05:51 -07:00
|
|
|
|
2017-04-28 12:06:44 -07:00
|
|
|
HiLink simulaAssigned Identifier
|
|
|
|
HiLink simulaBoolean Boolean
|
|
|
|
HiLink simulaCharacter Character
|
|
|
|
HiLink simulaCharError Error
|
|
|
|
HiLink simulaComment Comment
|
|
|
|
HiLink simulaCompound Statement
|
|
|
|
HiLink simulaConditional Conditional
|
|
|
|
HiLink simulaConstant Constant
|
|
|
|
HiLink simulaFunction Function
|
|
|
|
HiLink simulaNumber Number
|
|
|
|
HiLink simulaOperator Operator
|
|
|
|
HiLink simulaReal Float
|
|
|
|
HiLink simulaReferenceType Type
|
|
|
|
HiLink simulaRepeat Repeat
|
|
|
|
HiLink simulaReserved Error
|
|
|
|
HiLink simulaSemicolon Statement
|
|
|
|
HiLink simulaSpecial Special
|
|
|
|
HiLink simulaSpecialChar SpecialChar
|
|
|
|
HiLink simulaSpecialCharErr Error
|
|
|
|
HiLink simulaStatement Statement
|
|
|
|
HiLink simulaStorageClass StorageClass
|
|
|
|
HiLink simulaString String
|
|
|
|
HiLink simulaStructure Structure
|
|
|
|
HiLink simulaTodo Todo
|
|
|
|
HiLink simulaType Type
|
2014-07-10 21:05:51 -07:00
|
|
|
|
2017-04-28 12:06:44 -07:00
|
|
|
delcommand HiLink
|
2014-07-10 21:05:51 -07:00
|
|
|
|
|
|
|
let b:current_syntax = "simula"
|
|
|
|
" vim: sts=4 sw=4 ts=8
|