1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: Simula 3071d4279SBram Moolenaar" Maintainer: Haakon Riiser <[email protected]> 4071d4279SBram Moolenaar" URL: http://folk.uio.no/hakonrk/vim/syntax/simula.vim 5071d4279SBram Moolenaar" Last Change: 2001 May 15 6071d4279SBram Moolenaar 789bcfda6SBram Moolenaar" quit when a syntax file was already loaded 889bcfda6SBram Moolenaarif exists("b:current_syntax") 9071d4279SBram Moolenaar finish 10071d4279SBram Moolenaarendif 11071d4279SBram Moolenaar 12071d4279SBram Moolenaar" No case sensitivity in Simula 13071d4279SBram Moolenaarsyn case ignore 14071d4279SBram Moolenaar 15071d4279SBram Moolenaarsyn match simulaComment "^%.*$" contains=simulaTodo 16071d4279SBram Moolenaarsyn region simulaComment start="!\|\<comment\>" end=";" contains=simulaTodo 17071d4279SBram Moolenaar 18071d4279SBram Moolenaar" Text between the keyword 'end' and either a semicolon or one of the 19071d4279SBram Moolenaar" keywords 'end', 'else', 'when' or 'otherwise' is also a comment 20071d4279SBram Moolenaarsyn region simulaComment start="\<end\>"lc=3 matchgroup=Statement end=";\|\<\(end\|else\|when\|otherwise\)\>" 21071d4279SBram Moolenaar 22071d4279SBram Moolenaarsyn match simulaCharError "'.\{-2,}'" 23071d4279SBram Moolenaarsyn match simulaCharacter "'.'" 24071d4279SBram Moolenaarsyn match simulaCharacter "'!\d\{-}!'" contains=simulaSpecialChar 25071d4279SBram Moolenaarsyn match simulaString '".\{-}"' contains=simulaSpecialChar,simulaTodo 26071d4279SBram Moolenaar 27071d4279SBram Moolenaarsyn keyword simulaBoolean true false 28071d4279SBram Moolenaarsyn keyword simulaCompound begin end 29071d4279SBram Moolenaarsyn keyword simulaConditional else if otherwise then until when 30071d4279SBram Moolenaarsyn keyword simulaConstant none notext 31071d4279SBram Moolenaarsyn keyword simulaFunction procedure 32071d4279SBram Moolenaarsyn keyword simulaOperator eq eqv ge gt imp in is le lt ne new not qua 33071d4279SBram Moolenaarsyn keyword simulaRepeat while for 34071d4279SBram Moolenaarsyn keyword simulaReserved activate after at before delay go goto label prior reactivate switch to 35071d4279SBram Moolenaarsyn keyword simulaStatement do inner inspect step this 36071d4279SBram Moolenaarsyn keyword simulaStorageClass external hidden name protected value 37071d4279SBram Moolenaarsyn keyword simulaStructure class 38071d4279SBram Moolenaarsyn keyword simulaType array boolean character integer long real short text virtual 39071d4279SBram Moolenaarsyn match simulaAssigned "\<\h\w*\s*\((.*)\)\=\s*:\(=\|-\)"me=e-2 40071d4279SBram Moolenaarsyn match simulaOperator "[&:=<>+\-*/]" 41071d4279SBram Moolenaarsyn match simulaOperator "\<and\(\s\+then\)\=\>" 42071d4279SBram Moolenaarsyn match simulaOperator "\<or\(\s\+else\)\=\>" 43071d4279SBram Moolenaarsyn match simulaReferenceType "\<ref\s*(.\{-})" 44071d4279SBram Moolenaarsyn match simulaSemicolon ";" 45071d4279SBram Moolenaarsyn match simulaSpecial "[(),.]" 46071d4279SBram Moolenaarsyn match simulaSpecialCharErr "!\d\{-4,}!" contained 47071d4279SBram Moolenaarsyn match simulaSpecialCharErr "!!" contained 48071d4279SBram Moolenaarsyn match simulaSpecialChar "!\d\{-}!" contains=simulaSpecialCharErr contained 49071d4279SBram Moolenaarsyn match simulaTodo "xxx\+" contained 50071d4279SBram Moolenaar 51071d4279SBram Moolenaar" Integer number (or float without `.') 52071d4279SBram Moolenaarsyn match simulaNumber "-\=\<\d\+\>" 53071d4279SBram Moolenaar" Real with optional exponent 54071d4279SBram Moolenaarsyn match simulaReal "-\=\<\d\+\(\.\d\+\)\=\(&&\=[+-]\=\d\+\)\=\>" 55071d4279SBram Moolenaar" Real starting with a `.', optional exponent 56071d4279SBram Moolenaarsyn match simulaReal "-\=\.\d\+\(&&\=[+-]\=\d\+\)\=\>" 57071d4279SBram Moolenaar 58071d4279SBram Moolenaar 59*f37506f6SBram Moolenaarhi def link simulaAssigned Identifier 60*f37506f6SBram Moolenaarhi def link simulaBoolean Boolean 61*f37506f6SBram Moolenaarhi def link simulaCharacter Character 62*f37506f6SBram Moolenaarhi def link simulaCharError Error 63*f37506f6SBram Moolenaarhi def link simulaComment Comment 64*f37506f6SBram Moolenaarhi def link simulaCompound Statement 65*f37506f6SBram Moolenaarhi def link simulaConditional Conditional 66*f37506f6SBram Moolenaarhi def link simulaConstant Constant 67*f37506f6SBram Moolenaarhi def link simulaFunction Function 68*f37506f6SBram Moolenaarhi def link simulaNumber Number 69*f37506f6SBram Moolenaarhi def link simulaOperator Operator 70*f37506f6SBram Moolenaarhi def link simulaReal Float 71*f37506f6SBram Moolenaarhi def link simulaReferenceType Type 72*f37506f6SBram Moolenaarhi def link simulaRepeat Repeat 73*f37506f6SBram Moolenaarhi def link simulaReserved Error 74*f37506f6SBram Moolenaarhi def link simulaSemicolon Statement 75*f37506f6SBram Moolenaarhi def link simulaSpecial Special 76*f37506f6SBram Moolenaarhi def link simulaSpecialChar SpecialChar 77*f37506f6SBram Moolenaarhi def link simulaSpecialCharErr Error 78*f37506f6SBram Moolenaarhi def link simulaStatement Statement 79*f37506f6SBram Moolenaarhi def link simulaStorageClass StorageClass 80*f37506f6SBram Moolenaarhi def link simulaString String 81*f37506f6SBram Moolenaarhi def link simulaStructure Structure 82*f37506f6SBram Moolenaarhi def link simulaTodo Todo 83*f37506f6SBram Moolenaarhi def link simulaType Type 84071d4279SBram Moolenaar 85071d4279SBram Moolenaar 86071d4279SBram Moolenaarlet b:current_syntax = "simula" 87071d4279SBram Moolenaar" vim: sts=4 sw=4 ts=8 88