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