1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: SDL 3b6b046b2SBram Moolenaar" Maintainer: Michael Piefel <[email protected]> 4071d4279SBram Moolenaar" Last Change: 2 May 2001 5071d4279SBram Moolenaar 689bcfda6SBram Moolenaar" quit when a syntax file was already loaded 789bcfda6SBram Moolenaarif exists("b:current_syntax") 8071d4279SBram Moolenaar finish 9071d4279SBram Moolenaarendif 10071d4279SBram Moolenaar 11071d4279SBram Moolenaarif !exists("sdl_2000") 12071d4279SBram Moolenaar syntax case ignore 13071d4279SBram Moolenaarendif 14071d4279SBram Moolenaar 15071d4279SBram Moolenaar" A bunch of useful SDL keywords 16071d4279SBram Moolenaarsyn keyword sdlStatement task else nextstate 17071d4279SBram Moolenaarsyn keyword sdlStatement in out with from interface 18071d4279SBram Moolenaarsyn keyword sdlStatement to via env and use 19071d4279SBram Moolenaarsyn keyword sdlStatement process procedure block system service type 20071d4279SBram Moolenaarsyn keyword sdlStatement endprocess endprocedure endblock endsystem 21071d4279SBram Moolenaarsyn keyword sdlStatement package endpackage connection endconnection 22071d4279SBram Moolenaarsyn keyword sdlStatement channel endchannel connect 23071d4279SBram Moolenaarsyn keyword sdlStatement synonym dcl signal gate timer signallist signalset 24071d4279SBram Moolenaarsyn keyword sdlStatement create output set reset call 25071d4279SBram Moolenaarsyn keyword sdlStatement operators literals 26071d4279SBram Moolenaarsyn keyword sdlStatement active alternative any as atleast constants 27071d4279SBram Moolenaarsyn keyword sdlStatement default endalternative endmacro endoperator 28071d4279SBram Moolenaarsyn keyword sdlStatement endselect endsubstructure external 29071d4279SBram Moolenaarsyn keyword sdlStatement if then fi for import macro macrodefinition 30071d4279SBram Moolenaarsyn keyword sdlStatement macroid mod nameclass nodelay not operator or 31071d4279SBram Moolenaarsyn keyword sdlStatement parent provided referenced rem 32071d4279SBram Moolenaarsyn keyword sdlStatement select spelling substructure xor 33071d4279SBram Moolenaarsyn keyword sdlNewState state endstate 34071d4279SBram Moolenaarsyn keyword sdlInput input start stop return none save priority 35071d4279SBram Moolenaarsyn keyword sdlConditional decision enddecision join 36071d4279SBram Moolenaarsyn keyword sdlVirtual virtual redefined finalized adding inherits 37071d4279SBram Moolenaarsyn keyword sdlExported remote exported export 38071d4279SBram Moolenaar 39071d4279SBram Moolenaarif !exists("sdl_no_96") 40071d4279SBram Moolenaar syn keyword sdlStatement all axioms constant endgenerator endrefinement endservice 41071d4279SBram Moolenaar syn keyword sdlStatement error fpar generator literal map noequality ordering 42071d4279SBram Moolenaar syn keyword sdlStatement refinement returns revealed reverse service signalroute 43071d4279SBram Moolenaar syn keyword sdlStatement view viewed 44071d4279SBram Moolenaar syn keyword sdlExported imported 45071d4279SBram Moolenaarendif 46071d4279SBram Moolenaar 47071d4279SBram Moolenaarif exists("sdl_2000") 48071d4279SBram Moolenaar syn keyword sdlStatement abstract aggregation association break choice composition 49071d4279SBram Moolenaar syn keyword sdlStatement continue endmethod handle method 50071d4279SBram Moolenaar syn keyword sdlStatement ordered private protected public 51071d4279SBram Moolenaar syn keyword sdlException exceptionhandler endexceptionhandler onexception 52071d4279SBram Moolenaar syn keyword sdlException catch new raise 53071d4279SBram Moolenaar " The same in uppercase 54071d4279SBram Moolenaar syn keyword sdlStatement TASK ELSE NEXTSTATE 55071d4279SBram Moolenaar syn keyword sdlStatement IN OUT WITH FROM INTERFACE 56071d4279SBram Moolenaar syn keyword sdlStatement TO VIA ENV AND USE 57071d4279SBram Moolenaar syn keyword sdlStatement PROCESS PROCEDURE BLOCK SYSTEM SERVICE TYPE 58071d4279SBram Moolenaar syn keyword sdlStatement ENDPROCESS ENDPROCEDURE ENDBLOCK ENDSYSTEM 59071d4279SBram Moolenaar syn keyword sdlStatement PACKAGE ENDPACKAGE CONNECTION ENDCONNECTION 60071d4279SBram Moolenaar syn keyword sdlStatement CHANNEL ENDCHANNEL CONNECT 61071d4279SBram Moolenaar syn keyword sdlStatement SYNONYM DCL SIGNAL GATE TIMER SIGNALLIST SIGNALSET 62071d4279SBram Moolenaar syn keyword sdlStatement CREATE OUTPUT SET RESET CALL 63071d4279SBram Moolenaar syn keyword sdlStatement OPERATORS LITERALS 64071d4279SBram Moolenaar syn keyword sdlStatement ACTIVE ALTERNATIVE ANY AS ATLEAST CONSTANTS 65071d4279SBram Moolenaar syn keyword sdlStatement DEFAULT ENDALTERNATIVE ENDMACRO ENDOPERATOR 66071d4279SBram Moolenaar syn keyword sdlStatement ENDSELECT ENDSUBSTRUCTURE EXTERNAL 67071d4279SBram Moolenaar syn keyword sdlStatement IF THEN FI FOR IMPORT MACRO MACRODEFINITION 68071d4279SBram Moolenaar syn keyword sdlStatement MACROID MOD NAMECLASS NODELAY NOT OPERATOR OR 69071d4279SBram Moolenaar syn keyword sdlStatement PARENT PROVIDED REFERENCED REM 70071d4279SBram Moolenaar syn keyword sdlStatement SELECT SPELLING SUBSTRUCTURE XOR 71071d4279SBram Moolenaar syn keyword sdlNewState STATE ENDSTATE 72071d4279SBram Moolenaar syn keyword sdlInput INPUT START STOP RETURN NONE SAVE PRIORITY 73071d4279SBram Moolenaar syn keyword sdlConditional DECISION ENDDECISION JOIN 74071d4279SBram Moolenaar syn keyword sdlVirtual VIRTUAL REDEFINED FINALIZED ADDING INHERITS 75071d4279SBram Moolenaar syn keyword sdlExported REMOTE EXPORTED EXPORT 76071d4279SBram Moolenaar 77071d4279SBram Moolenaar syn keyword sdlStatement ABSTRACT AGGREGATION ASSOCIATION BREAK CHOICE COMPOSITION 78071d4279SBram Moolenaar syn keyword sdlStatement CONTINUE ENDMETHOD ENDOBJECT ENDVALUE HANDLE METHOD OBJECT 79071d4279SBram Moolenaar syn keyword sdlStatement ORDERED PRIVATE PROTECTED PUBLIC 80071d4279SBram Moolenaar syn keyword sdlException EXCEPTIONHANDLER ENDEXCEPTIONHANDLER ONEXCEPTION 81071d4279SBram Moolenaar syn keyword sdlException CATCH NEW RAISE 82071d4279SBram Moolenaarendif 83071d4279SBram Moolenaar 84071d4279SBram Moolenaar" String and Character contstants 85071d4279SBram Moolenaar" Highlight special characters (those which have a backslash) differently 86071d4279SBram Moolenaarsyn match sdlSpecial contained "\\\d\d\d\|\\." 87071d4279SBram Moolenaarsyn region sdlString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial 88071d4279SBram Moolenaarsyn region sdlString start=+'+ skip=+''+ end=+'+ 89071d4279SBram Moolenaar 90071d4279SBram Moolenaar" No, this doesn't happen, I just wanted to scare you. SDL really allows all 91071d4279SBram Moolenaar" these characters for identifiers; fortunately, keywords manage without them. 92071d4279SBram Moolenaar" set iskeyword=@,48-57,_,192-214,216-246,248-255,- 93071d4279SBram Moolenaar 94071d4279SBram Moolenaarsyn region sdlComment start="/\*" end="\*/" 95071d4279SBram Moolenaarsyn region sdlComment start="comment" end=";" 96071d4279SBram Moolenaarsyn region sdlComment start="--" end="--\|$" 97071d4279SBram Moolenaarsyn match sdlCommentError "\*/" 98071d4279SBram Moolenaar 99071d4279SBram Moolenaarsyn keyword sdlOperator present 100071d4279SBram Moolenaarsyn keyword sdlType integer real natural duration pid boolean time 101071d4279SBram Moolenaarsyn keyword sdlType character charstring ia5string 102071d4279SBram Moolenaarsyn keyword sdlType self now sender offspring 103071d4279SBram Moolenaarsyn keyword sdlStructure asntype endasntype syntype endsyntype struct 104071d4279SBram Moolenaar 105071d4279SBram Moolenaarif !exists("sdl_no_96") 106071d4279SBram Moolenaar syn keyword sdlStructure newtype endnewtype 107071d4279SBram Moolenaarendif 108071d4279SBram Moolenaar 109071d4279SBram Moolenaarif exists("sdl_2000") 110071d4279SBram Moolenaar syn keyword sdlStructure object endobject value endvalue 111071d4279SBram Moolenaar " The same in uppercase 112071d4279SBram Moolenaar syn keyword sdlStructure OBJECT ENDOBJECT VALUE ENDVALUE 113071d4279SBram Moolenaar syn keyword sdlOperator PRESENT 114071d4279SBram Moolenaar syn keyword sdlType INTEGER NATURAL DURATION PID BOOLEAN TIME 115071d4279SBram Moolenaar syn keyword sdlType CHARSTRING IA5STRING 116071d4279SBram Moolenaar syn keyword sdlType SELF NOW SENDER OFFSPRING 117071d4279SBram Moolenaar syn keyword sdlStructure ASNTYPE ENDASNTYPE SYNTYPE ENDSYNTYPE STRUCT 118071d4279SBram Moolenaarendif 119071d4279SBram Moolenaar 120071d4279SBram Moolenaar" ASN.1 in SDL 121071d4279SBram Moolenaarsyn case match 122071d4279SBram Moolenaarsyn keyword sdlType SET OF BOOLEAN INTEGER REAL BIT OCTET 123071d4279SBram Moolenaarsyn keyword sdlType SEQUENCE CHOICE 124071d4279SBram Moolenaarsyn keyword sdlType STRING OBJECT IDENTIFIER NULL 125071d4279SBram Moolenaar 126071d4279SBram Moolenaarsyn sync ccomment sdlComment 127071d4279SBram Moolenaar 128071d4279SBram Moolenaar" Define the default highlighting. 12989bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet 130071d4279SBram Moolenaarcommand -nargs=+ Hi hi def <args> 131071d4279SBram Moolenaar 132*f37506f6SBram Moolenaarhi def link sdlException Label 133*f37506f6SBram Moolenaarhi def link sdlConditional sdlStatement 134*f37506f6SBram Moolenaarhi def link sdlVirtual sdlStatement 135*f37506f6SBram Moolenaarhi def link sdlExported sdlFlag 136*f37506f6SBram Moolenaarhi def link sdlCommentError sdlError 137*f37506f6SBram Moolenaarhi def link sdlOperator Operator 138*f37506f6SBram Moolenaarhi def link sdlStructure sdlType 139071d4279SBram MoolenaarHi sdlStatement term=bold ctermfg=4 guifg=Blue 140071d4279SBram MoolenaarHi sdlFlag term=bold ctermfg=4 guifg=Blue gui=italic 141071d4279SBram MoolenaarHi sdlNewState term=italic ctermfg=2 guifg=Magenta gui=underline 142071d4279SBram MoolenaarHi sdlInput term=bold guifg=Red 143*f37506f6SBram Moolenaarhi def link sdlType Type 144*f37506f6SBram Moolenaarhi def link sdlString String 145*f37506f6SBram Moolenaarhi def link sdlComment Comment 146*f37506f6SBram Moolenaarhi def link sdlSpecial Special 147*f37506f6SBram Moolenaarhi def link sdlError Error 148071d4279SBram Moolenaar 149071d4279SBram Moolenaardelcommand Hi 150071d4279SBram Moolenaar 151071d4279SBram Moolenaarlet b:current_syntax = "sdl" 152071d4279SBram Moolenaar 153071d4279SBram Moolenaar" vim: ts=8 154