summaryrefslogtreecommitdiffstats
path: root/syntax/simula.vim
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2020-10-06 18:54:19 +0200
committerAdam Stankiewicz <sheerun@sher.pl>2020-10-06 18:54:19 +0200
commitbc9757916ed09763d96283ee62dbed58bd713a11 (patch)
tree07fbb58e9a4f4cbf5206d89f61e4d570e64d2c1a /syntax/simula.vim
parentc6fa4d2bf5eb5301f4d3f123031cf34839a5508d (diff)
downloadvim-polyglot-bc9757916ed09763d96283ee62dbed58bd713a11.tar.gz
vim-polyglot-bc9757916ed09763d96283ee62dbed58bd713a11.zip
Add all vim filetypes
Diffstat (limited to 'syntax/simula.vim')
-rw-r--r--syntax/simula.vim91
1 files changed, 91 insertions, 0 deletions
diff --git a/syntax/simula.vim b/syntax/simula.vim
new file mode 100644
index 00000000..2806cfe7
--- /dev/null
+++ b/syntax/simula.vim
@@ -0,0 +1,91 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'simula') == -1
+
+" 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
+
+endif