1 <?xml version="1.0"?>
\r
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">
\r
6 sdl_pr.xml K. J. Turner <kjt@cs.stir.ac.uk> 26th February 2004
\r
8 SDL (Specification and Description Language) is an ITU standard (Z.100)
\r
9 for a formal specification language used in communications and system specification generally.
\r
11 This mode handles SDL/PR (Phrase Representation), but does not (yet) deal with SDL 2000.
\r
13 Auto-indentation occurs if the following are at the start of a line (ignoring
\r
14 leading white space): "block", "channel", "connection", "decision", "generator", "input", "macro", "newtype", "operator", "package", "procedure", "process", "refinement", "service", "start", "state", "substructure", "syntype", "system".
\r
16 This also happens if the following appear on their own (i.e. also ignoring
\r
17 trailing white space): "signal".
\r
22 <PROPERTY NAME="commentStart" VALUE="/*"/>
\r
23 <PROPERTY NAME="commentEnd" VALUE="*/"/>
\r
24 <PROPERTY NAME="indentNextLines"
\r
25 VALUE="\s*(block|channel|connection|decision|generator|input|macro|newtype|operator|package|procedure|process|refinement|service|start|state|substructure|syntype|system).*|\s*(signal)\s*"/>
\r
28 <RULES IGNORE_CASE="TRUE" HIGHLIGHT_DIGITS="TRUE">
\r
29 <!-- SDT/TAU Comments -->
\r
30 <SPAN TYPE="COMMENT2">
\r
31 <BEGIN>/*#SDTREF</BEGIN>
\r
35 <!-- Standard Comments -->
\r
36 <SPAN TYPE="COMMENT1">
\r
41 <!-- String Literals -->
\r
42 <SPAN TYPE="LITERAL2" NO_LINE_BREAK="TRUE">
\r
47 <SPAN TYPE="LITERAL2" NO_LINE_BREAK="TRUE">
\r
52 <!-- Standard Operators -->
\r
53 <SEQ TYPE="OPERATOR">+</SEQ>
\r
54 <SEQ TYPE="OPERATOR">-</SEQ>
\r
55 <SEQ TYPE="OPERATOR">*</SEQ>
\r
56 <SEQ TYPE="OPERATOR">/</SEQ>
\r
57 <SEQ TYPE="OPERATOR">==</SEQ>
\r
58 <SEQ TYPE="OPERATOR">/=</SEQ>
\r
59 <SEQ TYPE="OPERATOR">:=</SEQ>
\r
60 <SEQ TYPE="OPERATOR">=</SEQ>
\r
61 <SEQ TYPE="OPERATOR"><</SEQ>
\r
62 <SEQ TYPE="OPERATOR"><=</SEQ>
\r
63 <SEQ TYPE="OPERATOR">></SEQ>
\r
64 <SEQ TYPE="OPERATOR">>=</SEQ>
\r
65 <SEQ TYPE="OPERATOR">.</SEQ>
\r
66 <SEQ TYPE="OPERATOR">!</SEQ>
\r
67 <SEQ TYPE="OPERATOR">//</SEQ>
\r
69 <SEQ TYPE="OPERATOR" AT_WORD_START="TRUE">and</SEQ>
\r
70 <SEQ TYPE="OPERATOR" AT_WORD_START="TRUE">mod</SEQ>
\r
71 <SEQ TYPE="OPERATOR" AT_WORD_START="TRUE">not</SEQ>
\r
72 <SEQ TYPE="OPERATOR" AT_WORD_START="TRUE">or</SEQ>
\r
73 <SEQ TYPE="OPERATOR" AT_WORD_START="TRUE">rem</SEQ>
\r
74 <SEQ TYPE="OPERATOR" AT_WORD_START="TRUE">xor</SEQ>
\r
77 <!-- Reserved Words -->
\r
78 <KEYWORD1>active</KEYWORD1>
\r
79 <KEYWORD1>adding</KEYWORD1>
\r
80 <KEYWORD1>all</KEYWORD1>
\r
81 <KEYWORD1>alternative</KEYWORD1>
\r
82 <KEYWORD1>any</KEYWORD1>
\r
83 <KEYWORD1>as</KEYWORD1>
\r
84 <KEYWORD1>atleast</KEYWORD1>
\r
85 <KEYWORD1>axioms</KEYWORD1>
\r
86 <KEYWORD1>block</KEYWORD1>
\r
87 <KEYWORD1>call</KEYWORD1>
\r
88 <KEYWORD1>channel</KEYWORD1>
\r
89 <KEYWORD1>comment</KEYWORD1>
\r
90 <KEYWORD1>connect</KEYWORD1>
\r
91 <KEYWORD1>connection</KEYWORD1>
\r
92 <KEYWORD1>constant</KEYWORD1>
\r
93 <KEYWORD1>constants</KEYWORD1>
\r
94 <KEYWORD1>create</KEYWORD1>
\r
95 <KEYWORD1>dcl</KEYWORD1>
\r
96 <KEYWORD1>decision</KEYWORD1>
\r
97 <KEYWORD1>default</KEYWORD1>
\r
98 <KEYWORD1>else</KEYWORD1>
\r
99 <KEYWORD1>end</KEYWORD1>
\r
100 <KEYWORD1>endalternative</KEYWORD1>
\r
101 <KEYWORD1>endblock</KEYWORD1>
\r
102 <KEYWORD1>endchannel</KEYWORD1>
\r
103 <KEYWORD1>endconnection</KEYWORD1>
\r
104 <KEYWORD1>enddecision</KEYWORD1>
\r
105 <KEYWORD1>endgenerator</KEYWORD1>
\r
106 <KEYWORD1>endmacro</KEYWORD1>
\r
107 <KEYWORD1>endnewtype</KEYWORD1>
\r
108 <KEYWORD1>endoperator</KEYWORD1>
\r
109 <KEYWORD1>endpackage</KEYWORD1>
\r
110 <KEYWORD1>endprocedure</KEYWORD1>
\r
111 <KEYWORD1>endprocess</KEYWORD1>
\r
112 <KEYWORD1>endrefinement</KEYWORD1>
\r
113 <KEYWORD1>endselect</KEYWORD1>
\r
114 <KEYWORD1>endservice</KEYWORD1>
\r
115 <KEYWORD1>endstate</KEYWORD1>
\r
116 <KEYWORD1>endsubstructure</KEYWORD1>
\r
117 <KEYWORD1>endsyntype</KEYWORD1>
\r
118 <KEYWORD1>endsystem</KEYWORD1>
\r
119 <KEYWORD1>env</KEYWORD1>
\r
120 <KEYWORD1>error</KEYWORD1>
\r
121 <KEYWORD1>export</KEYWORD1>
\r
122 <KEYWORD1>exported</KEYWORD1>
\r
123 <KEYWORD1>external</KEYWORD1>
\r
124 <KEYWORD1>fi</KEYWORD1>
\r
125 <KEYWORD1>finalized</KEYWORD1>
\r
126 <KEYWORD1>for</KEYWORD1>
\r
127 <KEYWORD1>fpar</KEYWORD1>
\r
128 <KEYWORD1>from</KEYWORD1>
\r
129 <KEYWORD1>gate</KEYWORD1>
\r
130 <KEYWORD1>generator</KEYWORD1>
\r
131 <KEYWORD1>if</KEYWORD1>
\r
132 <KEYWORD1>import</KEYWORD1>
\r
133 <KEYWORD1>imported</KEYWORD1>
\r
134 <KEYWORD1>in</KEYWORD1>
\r
135 <KEYWORD1>inherits</KEYWORD1>
\r
136 <KEYWORD1>input</KEYWORD1>
\r
137 <KEYWORD1>interface</KEYWORD1>
\r
138 <KEYWORD1>join</KEYWORD1>
\r
139 <KEYWORD1>literal</KEYWORD1>
\r
140 <KEYWORD1>literals</KEYWORD1>
\r
141 <KEYWORD1>macro</KEYWORD1>
\r
142 <KEYWORD1>macrodefinition</KEYWORD1>
\r
143 <KEYWORD1>macroid</KEYWORD1>
\r
144 <KEYWORD1>map</KEYWORD1>
\r
145 <KEYWORD1>nameclass</KEYWORD1>
\r
146 <KEYWORD1>newtype</KEYWORD1>
\r
147 <KEYWORD1>nextstate</KEYWORD1>
\r
148 <KEYWORD1>nodelay</KEYWORD1>
\r
149 <KEYWORD1>noequality</KEYWORD1>
\r
150 <KEYWORD1>none</KEYWORD1>
\r
151 <KEYWORD1>now</KEYWORD1>
\r
152 <KEYWORD1>offspring</KEYWORD1>
\r
153 <KEYWORD1>operator</KEYWORD1>
\r
154 <KEYWORD1>operators</KEYWORD1>
\r
155 <KEYWORD1>ordering</KEYWORD1>
\r
156 <KEYWORD1>out</KEYWORD1>
\r
157 <KEYWORD1>output</KEYWORD1>
\r
158 <KEYWORD1>package</KEYWORD1>
\r
159 <KEYWORD1>parent</KEYWORD1>
\r
160 <KEYWORD1>priority</KEYWORD1>
\r
161 <KEYWORD1>procedure</KEYWORD1>
\r
162 <KEYWORD1>process</KEYWORD1>
\r
163 <KEYWORD1>provided</KEYWORD1>
\r
164 <KEYWORD1>redefined</KEYWORD1>
\r
165 <KEYWORD1>referenced</KEYWORD1>
\r
166 <KEYWORD1>refinement</KEYWORD1>
\r
167 <KEYWORD1>remote</KEYWORD1>
\r
168 <KEYWORD1>reset</KEYWORD1>
\r
169 <KEYWORD1>return</KEYWORD1>
\r
170 <KEYWORD1>returns</KEYWORD1>
\r
171 <KEYWORD1>revealed</KEYWORD1>
\r
172 <KEYWORD1>reverse</KEYWORD1>
\r
173 <KEYWORD1>route</KEYWORD1>
\r
174 <KEYWORD1>save</KEYWORD1>
\r
175 <KEYWORD1>select</KEYWORD1>
\r
176 <KEYWORD1>self</KEYWORD1>
\r
177 <KEYWORD1>sender</KEYWORD1>
\r
178 <KEYWORD1>service</KEYWORD1>
\r
179 <KEYWORD1>set</KEYWORD1>
\r
180 <KEYWORD1>signal</KEYWORD1>
\r
181 <KEYWORD1>signallist</KEYWORD1>
\r
182 <KEYWORD1>signalroute</KEYWORD1>
\r
183 <KEYWORD1>signalset</KEYWORD1>
\r
184 <KEYWORD1>spelling</KEYWORD1>
\r
185 <KEYWORD1>start</KEYWORD1>
\r
186 <KEYWORD1>state</KEYWORD1>
\r
187 <KEYWORD1>stop</KEYWORD1>
\r
188 <KEYWORD1>struct</KEYWORD1>
\r
189 <KEYWORD1>substructure</KEYWORD1>
\r
190 <KEYWORD1>synonym</KEYWORD1>
\r
191 <KEYWORD1>syntype</KEYWORD1>
\r
192 <KEYWORD1>system</KEYWORD1>
\r
193 <KEYWORD1>task</KEYWORD1>
\r
194 <KEYWORD1>then</KEYWORD1>
\r
195 <KEYWORD1>this</KEYWORD1>
\r
196 <KEYWORD1>timer</KEYWORD1>
\r
197 <KEYWORD1>to</KEYWORD1>
\r
198 <KEYWORD1>type</KEYWORD1>
\r
199 <KEYWORD1>use</KEYWORD1>
\r
200 <KEYWORD1>via</KEYWORD1>
\r
201 <KEYWORD1>view</KEYWORD1>
\r
202 <KEYWORD1>viewed</KEYWORD1>
\r
203 <KEYWORD1>virtual</KEYWORD1>
\r
204 <KEYWORD1>with</KEYWORD1>
\r
206 <!-- Standard Library Sorts -->
\r
207 <KEYWORD2>Boolean</KEYWORD2>
\r
208 <KEYWORD2>Character</KEYWORD2>
\r
209 <KEYWORD2>Charstring</KEYWORD2>
\r
210 <KEYWORD2>Duration</KEYWORD2>
\r
211 <KEYWORD2>Integer</KEYWORD2>
\r
212 <KEYWORD2>Natural</KEYWORD2>
\r
213 <KEYWORD2>Real</KEYWORD2>
\r
214 <KEYWORD2>PId</KEYWORD2>
\r
215 <KEYWORD2>Time</KEYWORD2>
\r
217 <!-- Standard Library Generators -->
\r
218 <KEYWORD3>Array</KEYWORD3>
\r
219 <KEYWORD3>String</KEYWORD3>
\r
220 <KEYWORD3>Powerset</KEYWORD3>
\r
222 <!-- Standard Library Literals -->
\r
223 <LITERAL1>false</LITERAL1>
\r
224 <LITERAL1>null</LITERAL1>
\r
225 <LITERAL1>true</LITERAL1>
\r