1" Vim syntax file 2" Language: SDL 3" Maintainer: Michael Piefel <[email protected]> 4" Last Change: 2 May 2001 5 6" quit when a syntax file was already loaded 7if exists("b:current_syntax") 8 finish 9endif 10 11if !exists("sdl_2000") 12 syntax case ignore 13endif 14 15" A bunch of useful SDL keywords 16syn keyword sdlStatement task else nextstate 17syn keyword sdlStatement in out with from interface 18syn keyword sdlStatement to via env and use 19syn keyword sdlStatement process procedure block system service type 20syn keyword sdlStatement endprocess endprocedure endblock endsystem 21syn keyword sdlStatement package endpackage connection endconnection 22syn keyword sdlStatement channel endchannel connect 23syn keyword sdlStatement synonym dcl signal gate timer signallist signalset 24syn keyword sdlStatement create output set reset call 25syn keyword sdlStatement operators literals 26syn keyword sdlStatement active alternative any as atleast constants 27syn keyword sdlStatement default endalternative endmacro endoperator 28syn keyword sdlStatement endselect endsubstructure external 29syn keyword sdlStatement if then fi for import macro macrodefinition 30syn keyword sdlStatement macroid mod nameclass nodelay not operator or 31syn keyword sdlStatement parent provided referenced rem 32syn keyword sdlStatement select spelling substructure xor 33syn keyword sdlNewState state endstate 34syn keyword sdlInput input start stop return none save priority 35syn keyword sdlConditional decision enddecision join 36syn keyword sdlVirtual virtual redefined finalized adding inherits 37syn keyword sdlExported remote exported export 38 39if !exists("sdl_no_96") 40 syn keyword sdlStatement all axioms constant endgenerator endrefinement endservice 41 syn keyword sdlStatement error fpar generator literal map noequality ordering 42 syn keyword sdlStatement refinement returns revealed reverse service signalroute 43 syn keyword sdlStatement view viewed 44 syn keyword sdlExported imported 45endif 46 47if exists("sdl_2000") 48 syn keyword sdlStatement abstract aggregation association break choice composition 49 syn keyword sdlStatement continue endmethod handle method 50 syn keyword sdlStatement ordered private protected public 51 syn keyword sdlException exceptionhandler endexceptionhandler onexception 52 syn keyword sdlException catch new raise 53 " The same in uppercase 54 syn keyword sdlStatement TASK ELSE NEXTSTATE 55 syn keyword sdlStatement IN OUT WITH FROM INTERFACE 56 syn keyword sdlStatement TO VIA ENV AND USE 57 syn keyword sdlStatement PROCESS PROCEDURE BLOCK SYSTEM SERVICE TYPE 58 syn keyword sdlStatement ENDPROCESS ENDPROCEDURE ENDBLOCK ENDSYSTEM 59 syn keyword sdlStatement PACKAGE ENDPACKAGE CONNECTION ENDCONNECTION 60 syn keyword sdlStatement CHANNEL ENDCHANNEL CONNECT 61 syn keyword sdlStatement SYNONYM DCL SIGNAL GATE TIMER SIGNALLIST SIGNALSET 62 syn keyword sdlStatement CREATE OUTPUT SET RESET CALL 63 syn keyword sdlStatement OPERATORS LITERALS 64 syn keyword sdlStatement ACTIVE ALTERNATIVE ANY AS ATLEAST CONSTANTS 65 syn keyword sdlStatement DEFAULT ENDALTERNATIVE ENDMACRO ENDOPERATOR 66 syn keyword sdlStatement ENDSELECT ENDSUBSTRUCTURE EXTERNAL 67 syn keyword sdlStatement IF THEN FI FOR IMPORT MACRO MACRODEFINITION 68 syn keyword sdlStatement MACROID MOD NAMECLASS NODELAY NOT OPERATOR OR 69 syn keyword sdlStatement PARENT PROVIDED REFERENCED REM 70 syn keyword sdlStatement SELECT SPELLING SUBSTRUCTURE XOR 71 syn keyword sdlNewState STATE ENDSTATE 72 syn keyword sdlInput INPUT START STOP RETURN NONE SAVE PRIORITY 73 syn keyword sdlConditional DECISION ENDDECISION JOIN 74 syn keyword sdlVirtual VIRTUAL REDEFINED FINALIZED ADDING INHERITS 75 syn keyword sdlExported REMOTE EXPORTED EXPORT 76 77 syn keyword sdlStatement ABSTRACT AGGREGATION ASSOCIATION BREAK CHOICE COMPOSITION 78 syn keyword sdlStatement CONTINUE ENDMETHOD ENDOBJECT ENDVALUE HANDLE METHOD OBJECT 79 syn keyword sdlStatement ORDERED PRIVATE PROTECTED PUBLIC 80 syn keyword sdlException EXCEPTIONHANDLER ENDEXCEPTIONHANDLER ONEXCEPTION 81 syn keyword sdlException CATCH NEW RAISE 82endif 83 84" String and Character contstants 85" Highlight special characters (those which have a backslash) differently 86syn match sdlSpecial contained "\\\d\d\d\|\\." 87syn region sdlString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial 88syn region sdlString start=+'+ skip=+''+ end=+'+ 89 90" No, this doesn't happen, I just wanted to scare you. SDL really allows all 91" these characters for identifiers; fortunately, keywords manage without them. 92" set iskeyword=@,48-57,_,192-214,216-246,248-255,- 93 94syn region sdlComment start="/\*" end="\*/" 95syn region sdlComment start="comment" end=";" 96syn region sdlComment start="--" end="--\|$" 97syn match sdlCommentError "\*/" 98 99syn keyword sdlOperator present 100syn keyword sdlType integer real natural duration pid boolean time 101syn keyword sdlType character charstring ia5string 102syn keyword sdlType self now sender offspring 103syn keyword sdlStructure asntype endasntype syntype endsyntype struct 104 105if !exists("sdl_no_96") 106 syn keyword sdlStructure newtype endnewtype 107endif 108 109if exists("sdl_2000") 110 syn keyword sdlStructure object endobject value endvalue 111 " The same in uppercase 112 syn keyword sdlStructure OBJECT ENDOBJECT VALUE ENDVALUE 113 syn keyword sdlOperator PRESENT 114 syn keyword sdlType INTEGER NATURAL DURATION PID BOOLEAN TIME 115 syn keyword sdlType CHARSTRING IA5STRING 116 syn keyword sdlType SELF NOW SENDER OFFSPRING 117 syn keyword sdlStructure ASNTYPE ENDASNTYPE SYNTYPE ENDSYNTYPE STRUCT 118endif 119 120" ASN.1 in SDL 121syn case match 122syn keyword sdlType SET OF BOOLEAN INTEGER REAL BIT OCTET 123syn keyword sdlType SEQUENCE CHOICE 124syn keyword sdlType STRING OBJECT IDENTIFIER NULL 125 126syn sync ccomment sdlComment 127 128" Define the default highlighting. 129" Only when an item doesn't have highlighting yet 130command -nargs=+ Hi hi def <args> 131 132hi def link sdlException Label 133hi def link sdlConditional sdlStatement 134hi def link sdlVirtual sdlStatement 135hi def link sdlExported sdlFlag 136hi def link sdlCommentError sdlError 137hi def link sdlOperator Operator 138hi def link sdlStructure sdlType 139Hi sdlStatement term=bold ctermfg=4 guifg=Blue 140Hi sdlFlag term=bold ctermfg=4 guifg=Blue gui=italic 141Hi sdlNewState term=italic ctermfg=2 guifg=Magenta gui=underline 142Hi sdlInput term=bold guifg=Red 143hi def link sdlType Type 144hi def link sdlString String 145hi def link sdlComment Comment 146hi def link sdlSpecial Special 147hi def link sdlError Error 148 149delcommand Hi 150 151let b:current_syntax = "sdl" 152 153" vim: ts=8 154