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