blob: 7df38d1955fb044e0d590f6c39f8a8d2910ac6ed [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: SDL
Bram Moolenaarb6b046b2011-12-30 13:11:27 +01003" Maintainer: Michael Piefel <entwurf@piefel.de>
Bram Moolenaar071d4272004-06-13 20:20:40 +00004" Last Change: 2 May 2001
5
Bram Moolenaar89bcfda2016-08-30 23:26:57 +02006" quit when a syntax file was already loaded
7if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +00008 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.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200129" Only when an item doesn't have highlighting yet
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200130command -nargs=+ Hi hi def <args>
Bram Moolenaar071d4272004-06-13 20:20:40 +0000131
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200132hi 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
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200139Hi 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
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200143hi def link sdlType Type
144hi def link sdlString String
145hi def link sdlComment Comment
146hi def link sdlSpecial Special
147hi def link sdlError Error
Bram Moolenaar071d4272004-06-13 20:20:40 +0000148
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200149delcommand Hi
Bram Moolenaar071d4272004-06-13 20:20:40 +0000150
151let b:current_syntax = "sdl"
152
153" vim: ts=8