" Vim syntax file
" Language: SDL
" Maintainer: Michael Piefel <[email protected]>
" Last Change: 2 May 2001
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
if !exists("sdl_2000")
syntax case ignore
endif
" A bunch of useful SDL keywords
syn keyword sdlStatement task else nextstate
syn keyword sdlStatement in out with from interface
syn keyword sdlStatement to via env and use
syn keyword sdlStatement process procedure block system service type
syn keyword sdlStatement endprocess endprocedure endblock endsystem
syn keyword sdlStatement package endpackage connection endconnection
syn keyword sdlStatement channel endchannel connect
syn keyword sdlStatement synonym dcl signal gate timer signallist signalset
syn keyword sdlStatement create output set reset call
syn keyword sdlStatement operators literals
syn keyword sdlStatement active alternative any as atleast constants
syn keyword sdlStatement default endalternative endmacro endoperator
syn keyword sdlStatement endselect endsubstructure external
syn keyword sdlStatement if then fi for import macro macrodefinition
syn keyword sdlStatement macroid mod nameclass nodelay not operator or
syn keyword sdlStatement parent provided referenced rem
syn keyword sdlStatement select spelling substructure xor
syn keyword sdlNewState state endstate
syn keyword sdlInput input start stop return none save priority
syn keyword sdlConditional decision enddecision join
syn keyword sdlVirtual virtual redefined finalized adding inherits
syn keyword sdlExported remote exported export
if !exists("sdl_no_96")
syn keyword sdlStatement all axioms constant endgenerator endrefinement endservice
syn keyword sdlStatement error fpar generator literal map noequality ordering
syn keyword sdlStatement refinement returns revealed reverse service signalroute
syn keyword sdlStatement view viewed
syn keyword sdlExported imported
endif
if exists("sdl_2000")
syn keyword sdlStatement abstract aggregation association break choice composition
syn keyword sdlStatement continue endmethod handle method
syn keyword sdlStatement ordered private protected public
syn keyword sdlException exceptionhandler endexceptionhandler onexception
syn keyword sdlException catch new raise
" The same in uppercase
syn keyword sdlStatement TASK ELSE NEXTSTATE
syn keyword sdlStatement IN OUT WITH FROM INTERFACE
syn keyword sdlStatement TO VIA ENV AND USE
syn keyword sdlStatement PROCESS PROCEDURE BLOCK SYSTEM SERVICE TYPE
syn keyword sdlStatement ENDPROCESS ENDPROCEDURE ENDBLOCK ENDSYSTEM
syn keyword sdlStatement PACKAGE ENDPACKAGE CONNECTION ENDCONNECTION
syn keyword sdlStatement CHANNEL ENDCHANNEL CONNECT
syn keyword sdlStatement SYNONYM DCL SIGNAL GATE TIMER SIGNALLIST SIGNALSET
syn keyword sdlStatement CREATE OUTPUT SET RESET CALL
syn keyword sdlStatement OPERATORS LITERALS
syn keyword sdlStatement ACTIVE ALTERNATIVE ANY AS ATLEAST CONSTANTS
syn keyword sdlStatement DEFAULT ENDALTERNATIVE ENDMACRO ENDOPERATOR
syn keyword sdlStatement ENDSELECT ENDSUBSTRUCTURE EXTERNAL
syn keyword sdlStatement IF THEN FI FOR IMPORT MACRO MACRODEFINITION
syn keyword sdlStatement MACROID MOD NAMECLASS NODELAY NOT OPERATOR OR
syn keyword sdlStatement PARENT PROVIDED REFERENCED REM
syn keyword sdlStatement SELECT SPELLING SUBSTRUCTURE XOR
syn keyword sdlNewState STATE ENDSTATE
syn keyword sdlInput INPUT START STOP RETURN NONE SAVE PRIORITY
syn keyword sdlConditional DECISION ENDDECISION JOIN
syn keyword sdlVirtual VIRTUAL REDEFINED FINALIZED ADDING INHERITS
syn keyword sdlExported REMOTE EXPORTED EXPORT
syn keyword sdlStatement ABSTRACT AGGREGATION ASSOCIATION BREAK CHOICE COMPOSITION
syn keyword sdlStatement CONTINUE ENDMETHOD ENDOBJECT ENDVALUE HANDLE METHOD OBJECT
syn keyword sdlStatement ORDERED PRIVATE PROTECTED PUBLIC
syn keyword sdlException EXCEPTIONHANDLER ENDEXCEPTIONHANDLER ONEXCEPTION
syn keyword sdlException CATCH NEW RAISE
endif
" String and Character contstants
" Highlight special characters (those which have a backslash) differently
syn match sdlSpecial contained "\\\d\d\d\|\\."
syn region sdlString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial
syn region sdlString start=+'+ skip=+''+ end=+'+
" No, this doesn't happen, I just wanted to scare you. SDL really allows all
" these characters for identifiers; fortunately, keywords manage without them.
" set iskeyword=@,48-57,_,192-214,216-246,248-255,-
syn region sdlComment start="/\*" end="\*/"
syn region sdlComment start="comment" end=";"
syn region sdlComment start="--" end="--\|$"
syn match sdlCommentError "\*/"
syn keyword sdlOperator present
syn keyword sdlType integer real natural duration pid boolean time
syn keyword sdlType character charstring ia5string
syn keyword sdlType self now sender offspring
syn keyword sdlStructure asntype endasntype syntype endsyntype struct
if !exists("sdl_no_96")
syn keyword sdlStructure newtype endnewtype
endif
if exists("sdl_2000")
syn keyword sdlStructure object endobject value endvalue
" The same in uppercase
syn keyword sdlStructure OBJECT ENDOBJECT VALUE ENDVALUE
syn keyword sdlOperator PRESENT
syn keyword sdlType INTEGER NATURAL DURATION PID BOOLEAN TIME
syn keyword sdlType CHARSTRING IA5STRING
syn keyword sdlType SELF NOW SENDER OFFSPRING
syn keyword sdlStructure ASNTYPE ENDASNTYPE SYNTYPE ENDSYNTYPE STRUCT
endif
" ASN.1 in SDL
syn case match
syn keyword sdlType SET OF BOOLEAN INTEGER REAL BIT OCTET
syn keyword sdlType SEQUENCE CHOICE
syn keyword sdlType STRING OBJECT IDENTIFIER NULL
syn sync ccomment sdlComment
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508 || !exists("did_sdl_syn_inits")
if version < 508
let did_sdl_syn_inits = 1
command -nargs=+ HiLink hi link <args>
command -nargs=+ Hi hi <args>
else
command -nargs=+ HiLink hi def link <args>
command -nargs=+ Hi hi def <args>
endif
HiLink sdlException Label
HiLink sdlConditional sdlStatement
HiLink sdlVirtual sdlStatement
HiLink sdlExported sdlFlag
HiLink sdlCommentError sdlError
HiLink sdlOperator Operator
HiLink sdlStructure sdlType
Hi sdlStatement term=bold ctermfg=4 guifg=Blue
Hi sdlFlag term=bold ctermfg=4 guifg=Blue gui=italic
Hi sdlNewState term=italic ctermfg=2 guifg=Magenta gui=underline
Hi sdlInput term=bold guifg=Red
HiLink sdlType Type
HiLink sdlString String
HiLink sdlComment Comment
HiLink sdlSpecial Special
HiLink sdlError Error
delcommand HiLink
delcommand Hi
endif
let b:current_syntax = "sdl"
" vim: ts=8
|