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