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