]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/cil.xml
xmode.modes: updating with recent xmode files
[factor.git] / basis / xmode / modes / cil.xml
1 <?xml version="1.0"?>
2
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">
4
5 <!--
6         .NET CIL by Cullen Linn (linnc@cs.arizona.edu)
7     (pg102 or 198 of PartitionII)
8 -->
9
10 <MODE>
11
12         <PROPS>
13                 <PROPERTY NAME="indentOpenBrackets" VALUE="{" />
14                 <PROPERTY NAME="indentCloseBrackets" VALUE="}" />
15                 <PROPERTY NAME="commentStart" VALUE="/*" />
16                 <PROPERTY NAME="commentEnd" VALUE="*/" />
17                 <PROPERTY NAME="lineComment" VALUE="//" />
18                 <PROPERTY NAME="wordBreakChars" VALUE=",+\\" />
19         </PROPS>
20
21         <RULES HIGHLIGHT_DIGITS="TRUE" IGNORE_CASE="TRUE">
22
23                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
24                         <BEGIN>'</BEGIN>
25                         <END>'</END>
26                 </SPAN>
27
28         <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>
29
30         <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>
31                 <SEQ TYPE="OPERATOR">)</SEQ>
32
33                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
34                         <BEGIN>"</BEGIN>
35                         <END>"</END>
36                 </SPAN>
37
38                 <MARK_PREVIOUS TYPE="LABEL" MATCH_TYPE="OPERATOR" AT_LINE_START="TRUE">:</MARK_PREVIOUS>
39
40                 <KEYWORDS>
41         <KEYWORD1>public</KEYWORD1>
42             <KEYWORD1>private</KEYWORD1>
43             <KEYWORD1>family</KEYWORD1>
44             <KEYWORD1>assembly</KEYWORD1>
45             <KEYWORD1>famandassem</KEYWORD1>
46             <KEYWORD1>famorassem</KEYWORD1>
47             <KEYWORD1>autochar</KEYWORD1>
48             <KEYWORD1>abstract</KEYWORD1>
49             <KEYWORD1>ansi</KEYWORD1>
50             <KEYWORD1>beforefieldinit</KEYWORD1>
51             <KEYWORD1>explicit</KEYWORD1>
52             <KEYWORD1>interface</KEYWORD1>
53             <KEYWORD1>nested</KEYWORD1>
54             <KEYWORD1>rtspecialname</KEYWORD1>
55             <KEYWORD1>sealed</KEYWORD1>
56             <KEYWORD1>sequential</KEYWORD1>
57             <KEYWORD1>serializable</KEYWORD1>
58             <KEYWORD1>specialname</KEYWORD1>
59             <KEYWORD1>unicode</KEYWORD1>
60             <KEYWORD1>final</KEYWORD1>
61             <KEYWORD1>hidebysig</KEYWORD1>
62             <KEYWORD1>newslot</KEYWORD1>
63             <KEYWORD1>pinvokeimpl</KEYWORD1>
64             <KEYWORD1>static</KEYWORD1>
65             <KEYWORD1>virtual</KEYWORD1>
66             <KEYWORD1>cil</KEYWORD1>
67             <KEYWORD1>forwardref</KEYWORD1>
68             <KEYWORD1>internalcall</KEYWORD1>
69             <KEYWORD1>managed</KEYWORD1>
70             <KEYWORD1>native</KEYWORD1>
71             <KEYWORD1>noinlining</KEYWORD1>
72             <KEYWORD1>runtime</KEYWORD1>
73             <KEYWORD1>synchronized</KEYWORD1>
74             <KEYWORD1>unmanaged</KEYWORD1>
75             <KEYWORD1>typedref</KEYWORD1>
76             <KEYWORD1>cdecl</KEYWORD1>
77             <KEYWORD1>fastcall</KEYWORD1>
78             <KEYWORD1>stdcall</KEYWORD1>
79             <KEYWORD1>thiscall</KEYWORD1>
80             <KEYWORD1>platformapi</KEYWORD1>
81             <KEYWORD1>initonly</KEYWORD1>
82             <KEYWORD1>literal</KEYWORD1>
83             <KEYWORD1>marshal</KEYWORD1>
84             <KEYWORD1>notserialized</KEYWORD1>
85             <KEYWORD1>addon</KEYWORD1>
86             <KEYWORD1>removeon</KEYWORD1>
87             <KEYWORD1>catch</KEYWORD1>
88             <KEYWORD1>fault</KEYWORD1>
89             <KEYWORD1>filter</KEYWORD1>
90             <KEYWORD1>handler</KEYWORD1>
91
92             <!--Assembly Directives (Meta-Data)-->
93             <KEYWORD2>.assembly</KEYWORD2>
94             <KEYWORD2>.assembly extern</KEYWORD2>
95             <KEYWORD2>.class</KEYWORD2>
96             <KEYWORD2>.class extern</KEYWORD2>
97             <KEYWORD2>.field</KEYWORD2>
98             <KEYWORD2>.method</KEYWORD2>
99             <KEYWORD2>.property</KEYWORD2>
100             <KEYWORD2>.get</KEYWORD2>
101             <KEYWORD2>.set</KEYWORD2>
102             <KEYWORD2>.other</KEYWORD2>
103             <KEYWORD2>.ctor</KEYWORD2>
104             <KEYWORD2>.corflags</KEYWORD2>
105             <KEYWORD2>.custom</KEYWORD2>
106             <KEYWORD2>.data</KEYWORD2>
107             <KEYWORD2>.file</KEYWORD2>
108             <KEYWORD2>.mresource</KEYWORD2>
109             <KEYWORD2>.module</KEYWORD2>
110             <KEYWORD2>.module extern</KEYWORD2>
111             <KEYWORD2>.subsystem</KEYWORD2>
112             <KEYWORD2>.vtfixup</KEYWORD2>
113             <KEYWORD2>.publickeytoken</KEYWORD2>
114             <KEYWORD2>.ver</KEYWORD2>
115             <KEYWORD2>.hash algorithm</KEYWORD2>
116             <KEYWORD2>.culture</KEYWORD2>
117             <KEYWORD2>.namespace</KEYWORD2>
118             <KEYWORD2>.event</KEYWORD2>
119             <KEYWORD2>.fire</KEYWORD2>
120             <KEYWORD2>.override</KEYWORD2>
121             <KEYWORD2>.try</KEYWORD2>
122             <KEYWORD2>.catch</KEYWORD2>
123             <KEYWORD2>.finally</KEYWORD2>
124             <KEYWORD2>.locals</KEYWORD2>
125             <KEYWORD2>.maxstack</KEYWORD2>
126             <KEYWORD2>.entrypoint</KEYWORD2>
127             <KEYWORD2>.pack</KEYWORD2>
128             <KEYWORD2>.size</KEYWORD2>
129
130             <!--Implementation Specific Metadata-->
131             <KEYWORD2>.file alignment</KEYWORD2>
132             <KEYWORD2>.imagebase</KEYWORD2>
133             <KEYWORD2>.language</KEYWORD2>
134             <KEYWORD2>.namespace</KEYWORD2>
135
136
137             <KEYWORD3>string</KEYWORD3>
138             <KEYWORD3>object</KEYWORD3>
139             <KEYWORD3>bool</KEYWORD3>
140             <KEYWORD3>true</KEYWORD3>
141             <KEYWORD3>false</KEYWORD3>
142             <KEYWORD3>bytearray</KEYWORD3>
143             <KEYWORD3>char</KEYWORD3>
144             <KEYWORD3>float32</KEYWORD3>
145             <KEYWORD3>float64</KEYWORD3>
146             <KEYWORD3>int8</KEYWORD3>
147             <KEYWORD3>int16</KEYWORD3>
148             <KEYWORD3>int32</KEYWORD3>
149             <KEYWORD3>int64</KEYWORD3>
150             <KEYWORD3>nullref</KEYWORD3>
151
152
153             <OPERATOR>&amp;</OPERATOR>
154             <OPERATOR>*</OPERATOR>
155             <OPERATOR>}</OPERATOR>
156             <OPERATOR>{</OPERATOR>
157
158             <!--arithmetic opcodes-->
159             <FUNCTION>add</FUNCTION>
160             <FUNCTION>add.ovf</FUNCTION>
161             <FUNCTION>add.ovf.un</FUNCTION>
162             <FUNCTION>div</FUNCTION>
163             <FUNCTION>div.un</FUNCTION>
164             <FUNCTION>mul</FUNCTION>
165             <FUNCTION>mul.ovf</FUNCTION>
166             <FUNCTION>mul.ovf.un</FUNCTION>
167             <FUNCTION>sub</FUNCTION>
168             <FUNCTION>sub.ovf</FUNCTION>
169             <FUNCTION>sub.ovf.un</FUNCTION>
170
171             <!--logical-->
172             <FUNCTION>and</FUNCTION>
173             <FUNCTION>not</FUNCTION>
174             <FUNCTION>or</FUNCTION>
175             <FUNCTION>xor</FUNCTION>
176
177             <!--Branches-->
178             <FUNCTION>beq</FUNCTION>
179             <FUNCTION>beq.s</FUNCTION>
180             <FUNCTION>bge</FUNCTION>
181             <FUNCTION>bge.s</FUNCTION>
182             <FUNCTION>bge.un</FUNCTION>
183             <FUNCTION>bge.un.s</FUNCTION>
184             <FUNCTION>bgt</FUNCTION>
185             <FUNCTION>bgt.s</FUNCTION>
186             <FUNCTION>bgt.un</FUNCTION>
187             <FUNCTION>bgt.un.s</FUNCTION>
188             <FUNCTION>ble</FUNCTION>
189             <FUNCTION>ble.s</FUNCTION>
190             <FUNCTION>ble.un</FUNCTION>
191             <FUNCTION>ble.un.s</FUNCTION>
192             <FUNCTION>blt</FUNCTION>
193             <FUNCTION>blt.s</FUNCTION>
194             <FUNCTION>blt.un</FUNCTION>
195             <FUNCTION>blt.un.s</FUNCTION>
196             <FUNCTION>bne.un</FUNCTION>
197             <FUNCTION>bne.un.s</FUNCTION>
198             <FUNCTION>br</FUNCTION>
199             <FUNCTION>brfalse</FUNCTION>
200             <FUNCTION>brfalse.s</FUNCTION>
201             <FUNCTION>brtrue</FUNCTION>
202             <FUNCTION>brtrue.s</FUNCTION>
203             <FUNCTION>br.s</FUNCTION>
204
205             <!--Conversions-->
206             <FUNCTION>conv.i</FUNCTION>
207             <FUNCTION>conv.i1</FUNCTION>
208             <FUNCTION>conv.i2</FUNCTION>
209             <FUNCTION>conv.i4</FUNCTION>
210             <FUNCTION>conv.i8</FUNCTION>
211             <FUNCTION>conv.ovf.i</FUNCTION>
212             <FUNCTION>conv.ovf.i1</FUNCTION>
213             <FUNCTION>conv.ovf.i1.un</FUNCTION>
214             <FUNCTION>conv.ovf.i2</FUNCTION>
215             <FUNCTION>conv.ovf.i2.un</FUNCTION>
216             <FUNCTION>conv.ovf.i4</FUNCTION>
217             <FUNCTION>conv.ovf.i4.un</FUNCTION>
218             <FUNCTION>conv.ovf.i8</FUNCTION>
219             <FUNCTION>conv.ovf.i8.un</FUNCTION>
220             <FUNCTION>conv.ovf.i.un</FUNCTION>
221             <FUNCTION>conv.ovf.u</FUNCTION>
222             <FUNCTION>conv.ovf.u1</FUNCTION>
223             <FUNCTION>conv.ovf.u1.un</FUNCTION>
224             <FUNCTION>conv.ovf.u2</FUNCTION>
225             <FUNCTION>conv.ovf.u2.un</FUNCTION>
226             <FUNCTION>conv.ovf.u4</FUNCTION>
227             <FUNCTION>conv.ovf.u4.un</FUNCTION>
228             <FUNCTION>conv.ovf.u8</FUNCTION>
229             <FUNCTION>conv.ovf.u8.un</FUNCTION>
230             <FUNCTION>conv.ovf.u.un</FUNCTION>
231             <FUNCTION>conv.r4</FUNCTION>
232             <FUNCTION>conv.r8</FUNCTION>
233             <FUNCTION>conv.r.un</FUNCTION>
234             <FUNCTION>conv.u</FUNCTION>
235             <FUNCTION>conv.u1</FUNCTION>
236             <FUNCTION>conv.u2</FUNCTION>
237             <FUNCTION>conv.u4</FUNCTION>
238             <FUNCTION>conv.u8</FUNCTION>
239
240             <!--Loads and Stores-->
241             <FUNCTION>ldarg</FUNCTION>
242             <FUNCTION>ldarga</FUNCTION>
243             <FUNCTION>ldarga.s</FUNCTION>
244             <FUNCTION>ldarg.0</FUNCTION>
245             <FUNCTION>ldarg.1</FUNCTION>
246             <FUNCTION>ldarg.2</FUNCTION>
247             <FUNCTION>ldarg.3</FUNCTION>
248             <FUNCTION>ldarg.s</FUNCTION>
249             <FUNCTION>ldc.i4</FUNCTION>
250             <FUNCTION>ldc.i4.0</FUNCTION>
251             <FUNCTION>ldc.i4.1</FUNCTION>
252             <FUNCTION>ldc.i4.2</FUNCTION>
253             <FUNCTION>ldc.i4.3</FUNCTION>
254             <FUNCTION>ldc.i4.4</FUNCTION>
255             <FUNCTION>ldc.i4.5</FUNCTION>
256             <FUNCTION>ldc.i4.6</FUNCTION>
257             <FUNCTION>ldc.i4.7</FUNCTION>
258             <FUNCTION>ldc.i4.8</FUNCTION>
259             <FUNCTION>ldc.i4.m1</FUNCTION>
260             <FUNCTION>ldc.i4.s</FUNCTION>
261             <FUNCTION>ldc.i8</FUNCTION>
262             <FUNCTION>ldc.r4</FUNCTION>
263             <FUNCTION>ldc.r8</FUNCTION>
264             <FUNCTION>ldelema</FUNCTION>
265             <FUNCTION>ldelem.i</FUNCTION>
266             <FUNCTION>ldelem.i1</FUNCTION>
267             <FUNCTION>ldelem.i2</FUNCTION>
268             <FUNCTION>ldelem.i4</FUNCTION>
269             <FUNCTION>ldelem.i8</FUNCTION>
270             <FUNCTION>ldelem.r4</FUNCTION>
271             <FUNCTION>ldelem.r8</FUNCTION>
272             <FUNCTION>ldelem.ref</FUNCTION>
273             <FUNCTION>ldelem.u1</FUNCTION>
274             <FUNCTION>ldelem.u2</FUNCTION>
275             <FUNCTION>ldelem.u4</FUNCTION>
276             <FUNCTION>ldfld</FUNCTION>
277             <FUNCTION>ldflda</FUNCTION>
278             <FUNCTION>ldftn</FUNCTION>
279             <FUNCTION>ldind.i</FUNCTION>
280             <FUNCTION>ldind.i1</FUNCTION>
281             <FUNCTION>ldind.i2</FUNCTION>
282             <FUNCTION>ldind.i4</FUNCTION>
283             <FUNCTION>ldind.i8</FUNCTION>
284             <FUNCTION>ldind.r4</FUNCTION>
285             <FUNCTION>ldind.r8</FUNCTION>
286             <FUNCTION>ldind.ref</FUNCTION>
287             <FUNCTION>ldind.u1</FUNCTION>
288             <FUNCTION>ldind.u2</FUNCTION>
289             <FUNCTION>ldind.u4</FUNCTION>
290             <FUNCTION>ldlen</FUNCTION>
291             <FUNCTION>ldloc</FUNCTION>
292             <FUNCTION>ldloca</FUNCTION>
293             <FUNCTION>ldloca.s</FUNCTION>
294             <FUNCTION>ldloc.0</FUNCTION>
295             <FUNCTION>ldloc.1</FUNCTION>
296             <FUNCTION>ldloc.2</FUNCTION>
297             <FUNCTION>ldloc.3</FUNCTION>
298             <FUNCTION>ldloc.s</FUNCTION>
299             <FUNCTION>ldnull</FUNCTION>
300             <FUNCTION>ldobj</FUNCTION>
301             <FUNCTION>ldsfld</FUNCTION>
302             <FUNCTION>ldsflda</FUNCTION>
303             <FUNCTION>ldstr</FUNCTION>
304             <FUNCTION>ldtoken</FUNCTION>
305             <FUNCTION>ldvirtftn</FUNCTION>
306             <FUNCTION>starg</FUNCTION>
307             <FUNCTION>starg.s</FUNCTION>
308             <FUNCTION>stelem.i</FUNCTION>
309             <FUNCTION>stelem.i1</FUNCTION>
310             <FUNCTION>stelem.i2</FUNCTION>
311             <FUNCTION>stelem.i4</FUNCTION>
312             <FUNCTION>stelem.i8</FUNCTION>
313             <FUNCTION>stelem.r4</FUNCTION>
314             <FUNCTION>stelem.r8</FUNCTION>
315             <FUNCTION>stelem.ref</FUNCTION>
316             <FUNCTION>stfld</FUNCTION>
317             <FUNCTION>stind.i</FUNCTION>
318             <FUNCTION>stind.i1</FUNCTION>
319             <FUNCTION>stind.i2</FUNCTION>
320             <FUNCTION>stind.i4</FUNCTION>
321             <FUNCTION>stind.i8</FUNCTION>
322             <FUNCTION>stind.r4</FUNCTION>
323             <FUNCTION>stind.r8</FUNCTION>
324             <FUNCTION>stind.ref</FUNCTION>
325             <FUNCTION>stloc</FUNCTION>
326             <FUNCTION>stloc.0</FUNCTION>
327             <FUNCTION>stloc.1</FUNCTION>
328             <FUNCTION>stloc.2</FUNCTION>
329             <FUNCTION>stloc.3</FUNCTION>
330             <FUNCTION>stloc.s</FUNCTION>
331             <FUNCTION>stobj</FUNCTION>
332             <FUNCTION>stsfld</FUNCTION>
333
334             <FUNCTION>call</FUNCTION>
335             <FUNCTION>calli</FUNCTION>
336             <FUNCTION>callvirt</FUNCTION>
337             <FUNCTION>castclass</FUNCTION>
338             <FUNCTION>ceq</FUNCTION>
339             <FUNCTION>cgt</FUNCTION>
340             <FUNCTION>cgt.un</FUNCTION>
341             <FUNCTION>ckfinite</FUNCTION>
342             <FUNCTION>clt</FUNCTION>
343             <FUNCTION>clt.un</FUNCTION>
344             <FUNCTION>cpblk</FUNCTION>
345             <FUNCTION>cpobj</FUNCTION>
346
347             <FUNCTION>initblk</FUNCTION>
348             <FUNCTION>initobj</FUNCTION>
349             <FUNCTION>newarr</FUNCTION>
350             <FUNCTION>newobj</FUNCTION>
351
352             <FUNCTION>dup</FUNCTION>
353             <FUNCTION>endfilter</FUNCTION>
354             <FUNCTION>isinst</FUNCTION>
355             <FUNCTION>box</FUNCTION>
356             <FUNCTION>unbox</FUNCTION>
357             <FUNCTION>arglist</FUNCTION>
358             <FUNCTION>break</FUNCTION>
359             <FUNCTION>jmp</FUNCTION>
360             <FUNCTION>ret</FUNCTION>
361             <FUNCTION>leave</FUNCTION>
362             <FUNCTION>leave.s</FUNCTION>
363             <FUNCTION>localloc</FUNCTION>
364             <FUNCTION>mkrefany</FUNCTION>
365             <FUNCTION>neg</FUNCTION>
366             <FUNCTION>switch</FUNCTION>
367             <FUNCTION>nop</FUNCTION>
368             <FUNCTION>pop</FUNCTION>
369             <FUNCTION>refanytype</FUNCTION>
370             <FUNCTION>refanyval</FUNCTION>
371             <FUNCTION>rem</FUNCTION>
372             <FUNCTION>rem.un</FUNCTION>
373             <FUNCTION>throw</FUNCTION>
374             <FUNCTION>rethrow</FUNCTION>
375             <FUNCTION>endfinally</FUNCTION>
376             <FUNCTION>shl</FUNCTION>
377             <FUNCTION>shr</FUNCTION>
378             <FUNCTION>shr.un</FUNCTION>
379             <FUNCTION>sizeof</FUNCTION>
380             <FUNCTION>tailcall</FUNCTION>
381             <FUNCTION>unaligned</FUNCTION>
382             <FUNCTION>volatile</FUNCTION>
383                 </KEYWORDS>
384         </RULES>
385 </MODE>