xref: /vim-8.2.3635/runtime/syntax/sdl.vim (revision f37506f6)
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