]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/xmode/modes/cil.xml
xmode.modes: updating with recent xmode files
[factor.git] / basis / xmode / modes / cil.xml
index 93b3816477382f579ff178fd2ff76ebc9c60aa4b..cf03d2e47b23f43ef664fafb772ce4f0a1e2cc29 100644 (file)
-<?xml version="1.0"?>\r
-\r
-<!DOCTYPE MODE SYSTEM "xmode.dtd">\r
-\r
-<!--\r
-       .NET CIL by Cullen Linn (linnc@cs.arizona.edu)\r
-    (pg102 or 198 of PartitionII)\r
--->\r
-\r
-<MODE>\r
-\r
-       <PROPS>\r
-               <PROPERTY NAME="indentOpenBrackets" VALUE="{" />\r
-               <PROPERTY NAME="indentCloseBrackets" VALUE="}" />\r
-               <PROPERTY NAME="commentStart" VALUE="/*" />\r
-               <PROPERTY NAME="commentEnd" VALUE="*/" />\r
-               <PROPERTY NAME="lineComment" VALUE="//" />\r
-               <PROPERTY NAME="wordBreakChars" VALUE=",+\\" />\r
-       </PROPS>\r
-\r
-       <RULES HIGHLIGHT_DIGITS="TRUE" IGNORE_CASE="TRUE">\r
-\r
-               <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">\r
-                       <BEGIN>'</BEGIN>\r
-                       <END>'</END>\r
-               </SPAN>\r
-\r
-        <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>\r
-\r
-        <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>\r
-               <SEQ TYPE="OPERATOR">)</SEQ>\r
-\r
-               <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">\r
-                       <BEGIN>"</BEGIN>\r
-                       <END>"</END>\r
-               </SPAN>\r
-\r
-               <MARK_PREVIOUS TYPE="LABEL" MATCH_TYPE="OPERATOR" AT_LINE_START="TRUE">:</MARK_PREVIOUS>\r
-\r
-               <KEYWORDS>\r
-        <KEYWORD1>public</KEYWORD1>\r
-            <KEYWORD1>private</KEYWORD1>\r
-            <KEYWORD1>family</KEYWORD1>\r
-            <KEYWORD1>assembly</KEYWORD1>\r
-            <KEYWORD1>famandassem</KEYWORD1>\r
-            <KEYWORD1>famorassem</KEYWORD1>\r
-            <KEYWORD1>autochar</KEYWORD1>\r
-            <KEYWORD1>abstract</KEYWORD1>\r
-            <KEYWORD1>ansi</KEYWORD1>\r
-            <KEYWORD1>beforefieldinit</KEYWORD1>\r
-            <KEYWORD1>explicit</KEYWORD1>\r
-            <KEYWORD1>interface</KEYWORD1>\r
-            <KEYWORD1>nested</KEYWORD1>\r
-            <KEYWORD1>rtspecialname</KEYWORD1>\r
-            <KEYWORD1>sealed</KEYWORD1>\r
-            <KEYWORD1>sequential</KEYWORD1>\r
-            <KEYWORD1>serializable</KEYWORD1>\r
-            <KEYWORD1>specialname</KEYWORD1>\r
-            <KEYWORD1>unicode</KEYWORD1>\r
-            <KEYWORD1>final</KEYWORD1>\r
-            <KEYWORD1>hidebysig</KEYWORD1>\r
-            <KEYWORD1>newslot</KEYWORD1>\r
-            <KEYWORD1>pinvokeimpl</KEYWORD1>\r
-            <KEYWORD1>static</KEYWORD1>\r
-            <KEYWORD1>virtual</KEYWORD1>\r
-            <KEYWORD1>cil</KEYWORD1>\r
-            <KEYWORD1>forwardref</KEYWORD1>\r
-            <KEYWORD1>internalcall</KEYWORD1>\r
-            <KEYWORD1>managed</KEYWORD1>\r
-            <KEYWORD1>native</KEYWORD1>\r
-            <KEYWORD1>noinlining</KEYWORD1>\r
-            <KEYWORD1>runtime</KEYWORD1>\r
-            <KEYWORD1>synchronized</KEYWORD1>\r
-            <KEYWORD1>unmanaged</KEYWORD1>\r
-            <KEYWORD1>typedref</KEYWORD1>\r
-            <KEYWORD1>cdecl</KEYWORD1>\r
-            <KEYWORD1>fastcall</KEYWORD1>\r
-            <KEYWORD1>stdcall</KEYWORD1>\r
-            <KEYWORD1>thiscall</KEYWORD1>\r
-            <KEYWORD1>platformapi</KEYWORD1>\r
-            <KEYWORD1>initonly</KEYWORD1>\r
-            <KEYWORD1>literal</KEYWORD1>\r
-            <KEYWORD1>marshal</KEYWORD1>\r
-            <KEYWORD1>notserialized</KEYWORD1>\r
-            <KEYWORD1>addon</KEYWORD1>\r
-            <KEYWORD1>removeon</KEYWORD1>\r
-            <KEYWORD1>catch</KEYWORD1>\r
-            <KEYWORD1>fault</KEYWORD1>\r
-            <KEYWORD1>filter</KEYWORD1>\r
-            <KEYWORD1>handler</KEYWORD1>\r
-\r
-            <!--Assembly Directives (Meta-Data)-->\r
-            <KEYWORD2>.assembly</KEYWORD2>\r
-            <KEYWORD2>.assembly extern</KEYWORD2>\r
-            <KEYWORD2>.class</KEYWORD2>\r
-            <KEYWORD2>.class extern</KEYWORD2>\r
-            <KEYWORD2>.field</KEYWORD2>\r
-            <KEYWORD2>.method</KEYWORD2>\r
-            <KEYWORD2>.property</KEYWORD2>\r
-            <KEYWORD2>.get</KEYWORD2>\r
-            <KEYWORD2>.set</KEYWORD2>\r
-            <KEYWORD2>.other</KEYWORD2>\r
-            <KEYWORD2>.ctor</KEYWORD2>\r
-            <KEYWORD2>.corflags</KEYWORD2>\r
-            <KEYWORD2>.custom</KEYWORD2>\r
-            <KEYWORD2>.data</KEYWORD2>\r
-            <KEYWORD2>.file</KEYWORD2>\r
-            <KEYWORD2>.mresource</KEYWORD2>\r
-            <KEYWORD2>.module</KEYWORD2>\r
-            <KEYWORD2>.module extern</KEYWORD2>\r
-            <KEYWORD2>.subsystem</KEYWORD2>\r
-            <KEYWORD2>.vtfixup</KEYWORD2>\r
-            <KEYWORD2>.publickeytoken</KEYWORD2>\r
-            <KEYWORD2>.ver</KEYWORD2>\r
-            <KEYWORD2>.hash algorithm</KEYWORD2>\r
-            <KEYWORD2>.culture</KEYWORD2>\r
-            <KEYWORD2>.namespace</KEYWORD2>\r
-            <KEYWORD2>.event</KEYWORD2>\r
-            <KEYWORD2>.fire</KEYWORD2>\r
-            <KEYWORD2>.override</KEYWORD2>\r
-            <KEYWORD2>.try</KEYWORD2>\r
-            <KEYWORD2>.catch</KEYWORD2>\r
-            <KEYWORD2>.finally</KEYWORD2>\r
-            <KEYWORD2>.locals</KEYWORD2>\r
-            <KEYWORD2>.maxstack</KEYWORD2>\r
-            <KEYWORD2>.entrypoint</KEYWORD2>\r
-            <KEYWORD2>.pack</KEYWORD2>\r
-            <KEYWORD2>.size</KEYWORD2>\r
-\r
-            <!--Implementation Specific Metadata-->\r
-            <KEYWORD2>.file alignment</KEYWORD2>\r
-            <KEYWORD2>.imagebase</KEYWORD2>\r
-            <KEYWORD2>.language</KEYWORD2>\r
-            <KEYWORD2>.namespace</KEYWORD2>\r
-\r
-\r
-            <KEYWORD3>string</KEYWORD3>\r
-            <KEYWORD3>object</KEYWORD3>\r
-            <KEYWORD3>bool</KEYWORD3>\r
-            <KEYWORD3>true</KEYWORD3>\r
-            <KEYWORD3>false</KEYWORD3>\r
-            <KEYWORD3>bytearray</KEYWORD3>\r
-            <KEYWORD3>char</KEYWORD3>\r
-            <KEYWORD3>float32</KEYWORD3>\r
-            <KEYWORD3>float64</KEYWORD3>\r
-            <KEYWORD3>int8</KEYWORD3>\r
-            <KEYWORD3>int16</KEYWORD3>\r
-            <KEYWORD3>int32</KEYWORD3>\r
-            <KEYWORD3>int64</KEYWORD3>\r
-            <KEYWORD3>nullref</KEYWORD3>\r
-\r
-\r
-            <OPERATOR>&amp;</OPERATOR>\r
-            <OPERATOR>*</OPERATOR>\r
-            <OPERATOR>}</OPERATOR>\r
-            <OPERATOR>{</OPERATOR>\r
-\r
-            <!--arithmetic opcodes-->\r
-            <FUNCTION>add</FUNCTION>\r
-            <FUNCTION>add.ovf</FUNCTION>\r
-            <FUNCTION>add.ovf.un</FUNCTION>\r
-            <FUNCTION>div</FUNCTION>\r
-            <FUNCTION>div.un</FUNCTION>\r
-            <FUNCTION>mul</FUNCTION>\r
-            <FUNCTION>mul.ovf</FUNCTION>\r
-            <FUNCTION>mul.ovf.un</FUNCTION>\r
-            <FUNCTION>sub</FUNCTION>\r
-            <FUNCTION>sub.ovf</FUNCTION>\r
-            <FUNCTION>sub.ovf.un</FUNCTION>\r
-\r
-            <!--logical-->\r
-            <FUNCTION>and</FUNCTION>\r
-            <FUNCTION>not</FUNCTION>\r
-            <FUNCTION>or</FUNCTION>\r
-            <FUNCTION>xor</FUNCTION>\r
-\r
-            <!--Branches-->\r
-            <FUNCTION>beq</FUNCTION>\r
-            <FUNCTION>beq.s</FUNCTION>\r
-            <FUNCTION>bge</FUNCTION>\r
-            <FUNCTION>bge.s</FUNCTION>\r
-            <FUNCTION>bge.un</FUNCTION>\r
-            <FUNCTION>bge.un.s</FUNCTION>\r
-            <FUNCTION>bgt</FUNCTION>\r
-            <FUNCTION>bgt.s</FUNCTION>\r
-            <FUNCTION>bgt.un</FUNCTION>\r
-            <FUNCTION>bgt.un.s</FUNCTION>\r
-            <FUNCTION>ble</FUNCTION>\r
-            <FUNCTION>ble.s</FUNCTION>\r
-            <FUNCTION>ble.un</FUNCTION>\r
-            <FUNCTION>ble.un.s</FUNCTION>\r
-            <FUNCTION>blt</FUNCTION>\r
-            <FUNCTION>blt.s</FUNCTION>\r
-            <FUNCTION>blt.un</FUNCTION>\r
-            <FUNCTION>blt.un.s</FUNCTION>\r
-            <FUNCTION>bne.un</FUNCTION>\r
-            <FUNCTION>bne.un.s</FUNCTION>\r
-            <FUNCTION>br</FUNCTION>\r
-            <FUNCTION>brfalse</FUNCTION>\r
-            <FUNCTION>brfalse.s</FUNCTION>\r
-            <FUNCTION>brtrue</FUNCTION>\r
-            <FUNCTION>brtrue.s</FUNCTION>\r
-            <FUNCTION>br.s</FUNCTION>\r
-\r
-            <!--Conversions-->\r
-            <FUNCTION>conv.i</FUNCTION>\r
-            <FUNCTION>conv.i1</FUNCTION>\r
-            <FUNCTION>conv.i2</FUNCTION>\r
-            <FUNCTION>conv.i4</FUNCTION>\r
-            <FUNCTION>conv.i8</FUNCTION>\r
-            <FUNCTION>conv.ovf.i</FUNCTION>\r
-            <FUNCTION>conv.ovf.i1</FUNCTION>\r
-            <FUNCTION>conv.ovf.i1.un</FUNCTION>\r
-            <FUNCTION>conv.ovf.i2</FUNCTION>\r
-            <FUNCTION>conv.ovf.i2.un</FUNCTION>\r
-            <FUNCTION>conv.ovf.i4</FUNCTION>\r
-            <FUNCTION>conv.ovf.i4.un</FUNCTION>\r
-            <FUNCTION>conv.ovf.i8</FUNCTION>\r
-            <FUNCTION>conv.ovf.i8.un</FUNCTION>\r
-            <FUNCTION>conv.ovf.i.un</FUNCTION>\r
-            <FUNCTION>conv.ovf.u</FUNCTION>\r
-            <FUNCTION>conv.ovf.u1</FUNCTION>\r
-            <FUNCTION>conv.ovf.u1.un</FUNCTION>\r
-            <FUNCTION>conv.ovf.u2</FUNCTION>\r
-            <FUNCTION>conv.ovf.u2.un</FUNCTION>\r
-            <FUNCTION>conv.ovf.u4</FUNCTION>\r
-            <FUNCTION>conv.ovf.u4.un</FUNCTION>\r
-            <FUNCTION>conv.ovf.u8</FUNCTION>\r
-            <FUNCTION>conv.ovf.u8.un</FUNCTION>\r
-            <FUNCTION>conv.ovf.u.un</FUNCTION>\r
-            <FUNCTION>conv.r4</FUNCTION>\r
-            <FUNCTION>conv.r8</FUNCTION>\r
-            <FUNCTION>conv.r.un</FUNCTION>\r
-            <FUNCTION>conv.u</FUNCTION>\r
-            <FUNCTION>conv.u1</FUNCTION>\r
-            <FUNCTION>conv.u2</FUNCTION>\r
-            <FUNCTION>conv.u4</FUNCTION>\r
-            <FUNCTION>conv.u8</FUNCTION>\r
-\r
-            <!--Loads and Stores-->\r
-            <FUNCTION>ldarg</FUNCTION>\r
-            <FUNCTION>ldarga</FUNCTION>\r
-            <FUNCTION>ldarga.s</FUNCTION>\r
-            <FUNCTION>ldarg.0</FUNCTION>\r
-            <FUNCTION>ldarg.1</FUNCTION>\r
-            <FUNCTION>ldarg.2</FUNCTION>\r
-            <FUNCTION>ldarg.3</FUNCTION>\r
-            <FUNCTION>ldarg.s</FUNCTION>\r
-            <FUNCTION>ldc.i4</FUNCTION>\r
-            <FUNCTION>ldc.i4.0</FUNCTION>\r
-            <FUNCTION>ldc.i4.1</FUNCTION>\r
-            <FUNCTION>ldc.i4.2</FUNCTION>\r
-            <FUNCTION>ldc.i4.3</FUNCTION>\r
-            <FUNCTION>ldc.i4.4</FUNCTION>\r
-            <FUNCTION>ldc.i4.5</FUNCTION>\r
-            <FUNCTION>ldc.i4.6</FUNCTION>\r
-            <FUNCTION>ldc.i4.7</FUNCTION>\r
-            <FUNCTION>ldc.i4.8</FUNCTION>\r
-            <FUNCTION>ldc.i4.m1</FUNCTION>\r
-            <FUNCTION>ldc.i4.s</FUNCTION>\r
-            <FUNCTION>ldc.i8</FUNCTION>\r
-            <FUNCTION>ldc.r4</FUNCTION>\r
-            <FUNCTION>ldc.r8</FUNCTION>\r
-            <FUNCTION>ldelema</FUNCTION>\r
-            <FUNCTION>ldelem.i</FUNCTION>\r
-            <FUNCTION>ldelem.i1</FUNCTION>\r
-            <FUNCTION>ldelem.i2</FUNCTION>\r
-            <FUNCTION>ldelem.i4</FUNCTION>\r
-            <FUNCTION>ldelem.i8</FUNCTION>\r
-            <FUNCTION>ldelem.r4</FUNCTION>\r
-            <FUNCTION>ldelem.r8</FUNCTION>\r
-            <FUNCTION>ldelem.ref</FUNCTION>\r
-            <FUNCTION>ldelem.u1</FUNCTION>\r
-            <FUNCTION>ldelem.u2</FUNCTION>\r
-            <FUNCTION>ldelem.u4</FUNCTION>\r
-            <FUNCTION>ldfld</FUNCTION>\r
-            <FUNCTION>ldflda</FUNCTION>\r
-            <FUNCTION>ldftn</FUNCTION>\r
-            <FUNCTION>ldind.i</FUNCTION>\r
-            <FUNCTION>ldind.i1</FUNCTION>\r
-            <FUNCTION>ldind.i2</FUNCTION>\r
-            <FUNCTION>ldind.i4</FUNCTION>\r
-            <FUNCTION>ldind.i8</FUNCTION>\r
-            <FUNCTION>ldind.r4</FUNCTION>\r
-            <FUNCTION>ldind.r8</FUNCTION>\r
-            <FUNCTION>ldind.ref</FUNCTION>\r
-            <FUNCTION>ldind.u1</FUNCTION>\r
-            <FUNCTION>ldind.u2</FUNCTION>\r
-            <FUNCTION>ldind.u4</FUNCTION>\r
-            <FUNCTION>ldlen</FUNCTION>\r
-            <FUNCTION>ldloc</FUNCTION>\r
-            <FUNCTION>ldloca</FUNCTION>\r
-            <FUNCTION>ldloca.s</FUNCTION>\r
-            <FUNCTION>ldloc.0</FUNCTION>\r
-            <FUNCTION>ldloc.1</FUNCTION>\r
-            <FUNCTION>ldloc.2</FUNCTION>\r
-            <FUNCTION>ldloc.3</FUNCTION>\r
-            <FUNCTION>ldloc.s</FUNCTION>\r
-            <FUNCTION>ldnull</FUNCTION>\r
-            <FUNCTION>ldobj</FUNCTION>\r
-            <FUNCTION>ldsfld</FUNCTION>\r
-            <FUNCTION>ldsflda</FUNCTION>\r
-            <FUNCTION>ldstr</FUNCTION>\r
-            <FUNCTION>ldtoken</FUNCTION>\r
-            <FUNCTION>ldvirtftn</FUNCTION>\r
-            <FUNCTION>starg</FUNCTION>\r
-            <FUNCTION>starg.s</FUNCTION>\r
-            <FUNCTION>stelem.i</FUNCTION>\r
-            <FUNCTION>stelem.i1</FUNCTION>\r
-            <FUNCTION>stelem.i2</FUNCTION>\r
-            <FUNCTION>stelem.i4</FUNCTION>\r
-            <FUNCTION>stelem.i8</FUNCTION>\r
-            <FUNCTION>stelem.r4</FUNCTION>\r
-            <FUNCTION>stelem.r8</FUNCTION>\r
-            <FUNCTION>stelem.ref</FUNCTION>\r
-            <FUNCTION>stfld</FUNCTION>\r
-            <FUNCTION>stind.i</FUNCTION>\r
-            <FUNCTION>stind.i1</FUNCTION>\r
-            <FUNCTION>stind.i2</FUNCTION>\r
-            <FUNCTION>stind.i4</FUNCTION>\r
-            <FUNCTION>stind.i8</FUNCTION>\r
-            <FUNCTION>stind.r4</FUNCTION>\r
-            <FUNCTION>stind.r8</FUNCTION>\r
-            <FUNCTION>stind.ref</FUNCTION>\r
-            <FUNCTION>stloc</FUNCTION>\r
-            <FUNCTION>stloc.0</FUNCTION>\r
-            <FUNCTION>stloc.1</FUNCTION>\r
-            <FUNCTION>stloc.2</FUNCTION>\r
-            <FUNCTION>stloc.3</FUNCTION>\r
-            <FUNCTION>stloc.s</FUNCTION>\r
-            <FUNCTION>stobj</FUNCTION>\r
-            <FUNCTION>stsfld</FUNCTION>\r
-\r
-            <FUNCTION>call</FUNCTION>\r
-            <FUNCTION>calli</FUNCTION>\r
-            <FUNCTION>callvirt</FUNCTION>\r
-            <FUNCTION>castclass</FUNCTION>\r
-            <FUNCTION>ceq</FUNCTION>\r
-            <FUNCTION>cgt</FUNCTION>\r
-            <FUNCTION>cgt.un</FUNCTION>\r
-            <FUNCTION>ckfinite</FUNCTION>\r
-            <FUNCTION>clt</FUNCTION>\r
-            <FUNCTION>clt.un</FUNCTION>\r
-            <FUNCTION>cpblk</FUNCTION>\r
-            <FUNCTION>cpobj</FUNCTION>\r
-\r
-            <FUNCTION>initblk</FUNCTION>\r
-            <FUNCTION>initobj</FUNCTION>\r
-            <FUNCTION>newarr</FUNCTION>\r
-            <FUNCTION>newobj</FUNCTION>\r
-\r
-            <FUNCTION>dup</FUNCTION>\r
-            <FUNCTION>endfilter</FUNCTION>\r
-            <FUNCTION>isinst</FUNCTION>\r
-            <FUNCTION>box</FUNCTION>\r
-            <FUNCTION>unbox</FUNCTION>\r
-            <FUNCTION>arglist</FUNCTION>\r
-            <FUNCTION>break</FUNCTION>\r
-            <FUNCTION>jmp</FUNCTION>\r
-            <FUNCTION>ret</FUNCTION>\r
-            <FUNCTION>leave</FUNCTION>\r
-            <FUNCTION>leave.s</FUNCTION>\r
-            <FUNCTION>localloc</FUNCTION>\r
-            <FUNCTION>mkrefany</FUNCTION>\r
-            <FUNCTION>neg</FUNCTION>\r
-            <FUNCTION>switch</FUNCTION>\r
-            <FUNCTION>nop</FUNCTION>\r
-            <FUNCTION>pop</FUNCTION>\r
-            <FUNCTION>refanytype</FUNCTION>\r
-            <FUNCTION>refanyval</FUNCTION>\r
-            <FUNCTION>rem</FUNCTION>\r
-            <FUNCTION>rem.un</FUNCTION>\r
-            <FUNCTION>throw</FUNCTION>\r
-            <FUNCTION>rethrow</FUNCTION>\r
-            <FUNCTION>endfinally</FUNCTION>\r
-            <FUNCTION>shl</FUNCTION>\r
-            <FUNCTION>shr</FUNCTION>\r
-            <FUNCTION>shr.un</FUNCTION>\r
-            <FUNCTION>sizeof</FUNCTION>\r
-            <FUNCTION>tailcall</FUNCTION>\r
-            <FUNCTION>unaligned</FUNCTION>\r
-            <FUNCTION>volatile</FUNCTION>\r
-               </KEYWORDS>\r
-       </RULES>\r
-</MODE>\r
+<?xml version="1.0"?>
+
+<!DOCTYPE MODE SYSTEM "xmode.dtd">
+
+<!--
+       .NET CIL by Cullen Linn (linnc@cs.arizona.edu)
+    (pg102 or 198 of PartitionII)
+-->
+
+<MODE>
+
+       <PROPS>
+               <PROPERTY NAME="indentOpenBrackets" VALUE="{" />
+               <PROPERTY NAME="indentCloseBrackets" VALUE="}" />
+               <PROPERTY NAME="commentStart" VALUE="/*" />
+               <PROPERTY NAME="commentEnd" VALUE="*/" />
+               <PROPERTY NAME="lineComment" VALUE="//" />
+               <PROPERTY NAME="wordBreakChars" VALUE=",+\\" />
+       </PROPS>
+
+       <RULES HIGHLIGHT_DIGITS="TRUE" IGNORE_CASE="TRUE">
+
+               <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
+                       <BEGIN>'</BEGIN>
+                       <END>'</END>
+               </SPAN>
+
+        <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>
+
+        <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>
+               <SEQ TYPE="OPERATOR">)</SEQ>
+
+               <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
+                       <BEGIN>"</BEGIN>
+                       <END>"</END>
+               </SPAN>
+
+               <MARK_PREVIOUS TYPE="LABEL" MATCH_TYPE="OPERATOR" AT_LINE_START="TRUE">:</MARK_PREVIOUS>
+
+               <KEYWORDS>
+        <KEYWORD1>public</KEYWORD1>
+            <KEYWORD1>private</KEYWORD1>
+            <KEYWORD1>family</KEYWORD1>
+            <KEYWORD1>assembly</KEYWORD1>
+            <KEYWORD1>famandassem</KEYWORD1>
+            <KEYWORD1>famorassem</KEYWORD1>
+            <KEYWORD1>autochar</KEYWORD1>
+            <KEYWORD1>abstract</KEYWORD1>
+            <KEYWORD1>ansi</KEYWORD1>
+            <KEYWORD1>beforefieldinit</KEYWORD1>
+            <KEYWORD1>explicit</KEYWORD1>
+            <KEYWORD1>interface</KEYWORD1>
+            <KEYWORD1>nested</KEYWORD1>
+            <KEYWORD1>rtspecialname</KEYWORD1>
+            <KEYWORD1>sealed</KEYWORD1>
+            <KEYWORD1>sequential</KEYWORD1>
+            <KEYWORD1>serializable</KEYWORD1>
+            <KEYWORD1>specialname</KEYWORD1>
+            <KEYWORD1>unicode</KEYWORD1>
+            <KEYWORD1>final</KEYWORD1>
+            <KEYWORD1>hidebysig</KEYWORD1>
+            <KEYWORD1>newslot</KEYWORD1>
+            <KEYWORD1>pinvokeimpl</KEYWORD1>
+            <KEYWORD1>static</KEYWORD1>
+            <KEYWORD1>virtual</KEYWORD1>
+            <KEYWORD1>cil</KEYWORD1>
+            <KEYWORD1>forwardref</KEYWORD1>
+            <KEYWORD1>internalcall</KEYWORD1>
+            <KEYWORD1>managed</KEYWORD1>
+            <KEYWORD1>native</KEYWORD1>
+            <KEYWORD1>noinlining</KEYWORD1>
+            <KEYWORD1>runtime</KEYWORD1>
+            <KEYWORD1>synchronized</KEYWORD1>
+            <KEYWORD1>unmanaged</KEYWORD1>
+            <KEYWORD1>typedref</KEYWORD1>
+            <KEYWORD1>cdecl</KEYWORD1>
+            <KEYWORD1>fastcall</KEYWORD1>
+            <KEYWORD1>stdcall</KEYWORD1>
+            <KEYWORD1>thiscall</KEYWORD1>
+            <KEYWORD1>platformapi</KEYWORD1>
+            <KEYWORD1>initonly</KEYWORD1>
+            <KEYWORD1>literal</KEYWORD1>
+            <KEYWORD1>marshal</KEYWORD1>
+            <KEYWORD1>notserialized</KEYWORD1>
+            <KEYWORD1>addon</KEYWORD1>
+            <KEYWORD1>removeon</KEYWORD1>
+            <KEYWORD1>catch</KEYWORD1>
+            <KEYWORD1>fault</KEYWORD1>
+            <KEYWORD1>filter</KEYWORD1>
+            <KEYWORD1>handler</KEYWORD1>
+
+            <!--Assembly Directives (Meta-Data)-->
+            <KEYWORD2>.assembly</KEYWORD2>
+            <KEYWORD2>.assembly extern</KEYWORD2>
+            <KEYWORD2>.class</KEYWORD2>
+            <KEYWORD2>.class extern</KEYWORD2>
+            <KEYWORD2>.field</KEYWORD2>
+            <KEYWORD2>.method</KEYWORD2>
+            <KEYWORD2>.property</KEYWORD2>
+            <KEYWORD2>.get</KEYWORD2>
+            <KEYWORD2>.set</KEYWORD2>
+            <KEYWORD2>.other</KEYWORD2>
+            <KEYWORD2>.ctor</KEYWORD2>
+            <KEYWORD2>.corflags</KEYWORD2>
+            <KEYWORD2>.custom</KEYWORD2>
+            <KEYWORD2>.data</KEYWORD2>
+            <KEYWORD2>.file</KEYWORD2>
+            <KEYWORD2>.mresource</KEYWORD2>
+            <KEYWORD2>.module</KEYWORD2>
+            <KEYWORD2>.module extern</KEYWORD2>
+            <KEYWORD2>.subsystem</KEYWORD2>
+            <KEYWORD2>.vtfixup</KEYWORD2>
+            <KEYWORD2>.publickeytoken</KEYWORD2>
+            <KEYWORD2>.ver</KEYWORD2>
+            <KEYWORD2>.hash algorithm</KEYWORD2>
+            <KEYWORD2>.culture</KEYWORD2>
+            <KEYWORD2>.namespace</KEYWORD2>
+            <KEYWORD2>.event</KEYWORD2>
+            <KEYWORD2>.fire</KEYWORD2>
+            <KEYWORD2>.override</KEYWORD2>
+            <KEYWORD2>.try</KEYWORD2>
+            <KEYWORD2>.catch</KEYWORD2>
+            <KEYWORD2>.finally</KEYWORD2>
+            <KEYWORD2>.locals</KEYWORD2>
+            <KEYWORD2>.maxstack</KEYWORD2>
+            <KEYWORD2>.entrypoint</KEYWORD2>
+            <KEYWORD2>.pack</KEYWORD2>
+            <KEYWORD2>.size</KEYWORD2>
+
+            <!--Implementation Specific Metadata-->
+            <KEYWORD2>.file alignment</KEYWORD2>
+            <KEYWORD2>.imagebase</KEYWORD2>
+            <KEYWORD2>.language</KEYWORD2>
+            <KEYWORD2>.namespace</KEYWORD2>
+
+
+            <KEYWORD3>string</KEYWORD3>
+            <KEYWORD3>object</KEYWORD3>
+            <KEYWORD3>bool</KEYWORD3>
+            <KEYWORD3>true</KEYWORD3>
+            <KEYWORD3>false</KEYWORD3>
+            <KEYWORD3>bytearray</KEYWORD3>
+            <KEYWORD3>char</KEYWORD3>
+            <KEYWORD3>float32</KEYWORD3>
+            <KEYWORD3>float64</KEYWORD3>
+            <KEYWORD3>int8</KEYWORD3>
+            <KEYWORD3>int16</KEYWORD3>
+            <KEYWORD3>int32</KEYWORD3>
+            <KEYWORD3>int64</KEYWORD3>
+            <KEYWORD3>nullref</KEYWORD3>
+
+
+            <OPERATOR>&amp;</OPERATOR>
+            <OPERATOR>*</OPERATOR>
+            <OPERATOR>}</OPERATOR>
+            <OPERATOR>{</OPERATOR>
+
+            <!--arithmetic opcodes-->
+            <FUNCTION>add</FUNCTION>
+            <FUNCTION>add.ovf</FUNCTION>
+            <FUNCTION>add.ovf.un</FUNCTION>
+            <FUNCTION>div</FUNCTION>
+            <FUNCTION>div.un</FUNCTION>
+            <FUNCTION>mul</FUNCTION>
+            <FUNCTION>mul.ovf</FUNCTION>
+            <FUNCTION>mul.ovf.un</FUNCTION>
+            <FUNCTION>sub</FUNCTION>
+            <FUNCTION>sub.ovf</FUNCTION>
+            <FUNCTION>sub.ovf.un</FUNCTION>
+
+            <!--logical-->
+            <FUNCTION>and</FUNCTION>
+            <FUNCTION>not</FUNCTION>
+            <FUNCTION>or</FUNCTION>
+            <FUNCTION>xor</FUNCTION>
+
+            <!--Branches-->
+            <FUNCTION>beq</FUNCTION>
+            <FUNCTION>beq.s</FUNCTION>
+            <FUNCTION>bge</FUNCTION>
+            <FUNCTION>bge.s</FUNCTION>
+            <FUNCTION>bge.un</FUNCTION>
+            <FUNCTION>bge.un.s</FUNCTION>
+            <FUNCTION>bgt</FUNCTION>
+            <FUNCTION>bgt.s</FUNCTION>
+            <FUNCTION>bgt.un</FUNCTION>
+            <FUNCTION>bgt.un.s</FUNCTION>
+            <FUNCTION>ble</FUNCTION>
+            <FUNCTION>ble.s</FUNCTION>
+            <FUNCTION>ble.un</FUNCTION>
+            <FUNCTION>ble.un.s</FUNCTION>
+            <FUNCTION>blt</FUNCTION>
+            <FUNCTION>blt.s</FUNCTION>
+            <FUNCTION>blt.un</FUNCTION>
+            <FUNCTION>blt.un.s</FUNCTION>
+            <FUNCTION>bne.un</FUNCTION>
+            <FUNCTION>bne.un.s</FUNCTION>
+            <FUNCTION>br</FUNCTION>
+            <FUNCTION>brfalse</FUNCTION>
+            <FUNCTION>brfalse.s</FUNCTION>
+            <FUNCTION>brtrue</FUNCTION>
+            <FUNCTION>brtrue.s</FUNCTION>
+            <FUNCTION>br.s</FUNCTION>
+
+            <!--Conversions-->
+            <FUNCTION>conv.i</FUNCTION>
+            <FUNCTION>conv.i1</FUNCTION>
+            <FUNCTION>conv.i2</FUNCTION>
+            <FUNCTION>conv.i4</FUNCTION>
+            <FUNCTION>conv.i8</FUNCTION>
+            <FUNCTION>conv.ovf.i</FUNCTION>
+            <FUNCTION>conv.ovf.i1</FUNCTION>
+            <FUNCTION>conv.ovf.i1.un</FUNCTION>
+            <FUNCTION>conv.ovf.i2</FUNCTION>
+            <FUNCTION>conv.ovf.i2.un</FUNCTION>
+            <FUNCTION>conv.ovf.i4</FUNCTION>
+            <FUNCTION>conv.ovf.i4.un</FUNCTION>
+            <FUNCTION>conv.ovf.i8</FUNCTION>
+            <FUNCTION>conv.ovf.i8.un</FUNCTION>
+            <FUNCTION>conv.ovf.i.un</FUNCTION>
+            <FUNCTION>conv.ovf.u</FUNCTION>
+            <FUNCTION>conv.ovf.u1</FUNCTION>
+            <FUNCTION>conv.ovf.u1.un</FUNCTION>
+            <FUNCTION>conv.ovf.u2</FUNCTION>
+            <FUNCTION>conv.ovf.u2.un</FUNCTION>
+            <FUNCTION>conv.ovf.u4</FUNCTION>
+            <FUNCTION>conv.ovf.u4.un</FUNCTION>
+            <FUNCTION>conv.ovf.u8</FUNCTION>
+            <FUNCTION>conv.ovf.u8.un</FUNCTION>
+            <FUNCTION>conv.ovf.u.un</FUNCTION>
+            <FUNCTION>conv.r4</FUNCTION>
+            <FUNCTION>conv.r8</FUNCTION>
+            <FUNCTION>conv.r.un</FUNCTION>
+            <FUNCTION>conv.u</FUNCTION>
+            <FUNCTION>conv.u1</FUNCTION>
+            <FUNCTION>conv.u2</FUNCTION>
+            <FUNCTION>conv.u4</FUNCTION>
+            <FUNCTION>conv.u8</FUNCTION>
+
+            <!--Loads and Stores-->
+            <FUNCTION>ldarg</FUNCTION>
+            <FUNCTION>ldarga</FUNCTION>
+            <FUNCTION>ldarga.s</FUNCTION>
+            <FUNCTION>ldarg.0</FUNCTION>
+            <FUNCTION>ldarg.1</FUNCTION>
+            <FUNCTION>ldarg.2</FUNCTION>
+            <FUNCTION>ldarg.3</FUNCTION>
+            <FUNCTION>ldarg.s</FUNCTION>
+            <FUNCTION>ldc.i4</FUNCTION>
+            <FUNCTION>ldc.i4.0</FUNCTION>
+            <FUNCTION>ldc.i4.1</FUNCTION>
+            <FUNCTION>ldc.i4.2</FUNCTION>
+            <FUNCTION>ldc.i4.3</FUNCTION>
+            <FUNCTION>ldc.i4.4</FUNCTION>
+            <FUNCTION>ldc.i4.5</FUNCTION>
+            <FUNCTION>ldc.i4.6</FUNCTION>
+            <FUNCTION>ldc.i4.7</FUNCTION>
+            <FUNCTION>ldc.i4.8</FUNCTION>
+            <FUNCTION>ldc.i4.m1</FUNCTION>
+            <FUNCTION>ldc.i4.s</FUNCTION>
+            <FUNCTION>ldc.i8</FUNCTION>
+            <FUNCTION>ldc.r4</FUNCTION>
+            <FUNCTION>ldc.r8</FUNCTION>
+            <FUNCTION>ldelema</FUNCTION>
+            <FUNCTION>ldelem.i</FUNCTION>
+            <FUNCTION>ldelem.i1</FUNCTION>
+            <FUNCTION>ldelem.i2</FUNCTION>
+            <FUNCTION>ldelem.i4</FUNCTION>
+            <FUNCTION>ldelem.i8</FUNCTION>
+            <FUNCTION>ldelem.r4</FUNCTION>
+            <FUNCTION>ldelem.r8</FUNCTION>
+            <FUNCTION>ldelem.ref</FUNCTION>
+            <FUNCTION>ldelem.u1</FUNCTION>
+            <FUNCTION>ldelem.u2</FUNCTION>
+            <FUNCTION>ldelem.u4</FUNCTION>
+            <FUNCTION>ldfld</FUNCTION>
+            <FUNCTION>ldflda</FUNCTION>
+            <FUNCTION>ldftn</FUNCTION>
+            <FUNCTION>ldind.i</FUNCTION>
+            <FUNCTION>ldind.i1</FUNCTION>
+            <FUNCTION>ldind.i2</FUNCTION>
+            <FUNCTION>ldind.i4</FUNCTION>
+            <FUNCTION>ldind.i8</FUNCTION>
+            <FUNCTION>ldind.r4</FUNCTION>
+            <FUNCTION>ldind.r8</FUNCTION>
+            <FUNCTION>ldind.ref</FUNCTION>
+            <FUNCTION>ldind.u1</FUNCTION>
+            <FUNCTION>ldind.u2</FUNCTION>
+            <FUNCTION>ldind.u4</FUNCTION>
+            <FUNCTION>ldlen</FUNCTION>
+            <FUNCTION>ldloc</FUNCTION>
+            <FUNCTION>ldloca</FUNCTION>
+            <FUNCTION>ldloca.s</FUNCTION>
+            <FUNCTION>ldloc.0</FUNCTION>
+            <FUNCTION>ldloc.1</FUNCTION>
+            <FUNCTION>ldloc.2</FUNCTION>
+            <FUNCTION>ldloc.3</FUNCTION>
+            <FUNCTION>ldloc.s</FUNCTION>
+            <FUNCTION>ldnull</FUNCTION>
+            <FUNCTION>ldobj</FUNCTION>
+            <FUNCTION>ldsfld</FUNCTION>
+            <FUNCTION>ldsflda</FUNCTION>
+            <FUNCTION>ldstr</FUNCTION>
+            <FUNCTION>ldtoken</FUNCTION>
+            <FUNCTION>ldvirtftn</FUNCTION>
+            <FUNCTION>starg</FUNCTION>
+            <FUNCTION>starg.s</FUNCTION>
+            <FUNCTION>stelem.i</FUNCTION>
+            <FUNCTION>stelem.i1</FUNCTION>
+            <FUNCTION>stelem.i2</FUNCTION>
+            <FUNCTION>stelem.i4</FUNCTION>
+            <FUNCTION>stelem.i8</FUNCTION>
+            <FUNCTION>stelem.r4</FUNCTION>
+            <FUNCTION>stelem.r8</FUNCTION>
+            <FUNCTION>stelem.ref</FUNCTION>
+            <FUNCTION>stfld</FUNCTION>
+            <FUNCTION>stind.i</FUNCTION>
+            <FUNCTION>stind.i1</FUNCTION>
+            <FUNCTION>stind.i2</FUNCTION>
+            <FUNCTION>stind.i4</FUNCTION>
+            <FUNCTION>stind.i8</FUNCTION>
+            <FUNCTION>stind.r4</FUNCTION>
+            <FUNCTION>stind.r8</FUNCTION>
+            <FUNCTION>stind.ref</FUNCTION>
+            <FUNCTION>stloc</FUNCTION>
+            <FUNCTION>stloc.0</FUNCTION>
+            <FUNCTION>stloc.1</FUNCTION>
+            <FUNCTION>stloc.2</FUNCTION>
+            <FUNCTION>stloc.3</FUNCTION>
+            <FUNCTION>stloc.s</FUNCTION>
+            <FUNCTION>stobj</FUNCTION>
+            <FUNCTION>stsfld</FUNCTION>
+
+            <FUNCTION>call</FUNCTION>
+            <FUNCTION>calli</FUNCTION>
+            <FUNCTION>callvirt</FUNCTION>
+            <FUNCTION>castclass</FUNCTION>
+            <FUNCTION>ceq</FUNCTION>
+            <FUNCTION>cgt</FUNCTION>
+            <FUNCTION>cgt.un</FUNCTION>
+            <FUNCTION>ckfinite</FUNCTION>
+            <FUNCTION>clt</FUNCTION>
+            <FUNCTION>clt.un</FUNCTION>
+            <FUNCTION>cpblk</FUNCTION>
+            <FUNCTION>cpobj</FUNCTION>
+
+            <FUNCTION>initblk</FUNCTION>
+            <FUNCTION>initobj</FUNCTION>
+            <FUNCTION>newarr</FUNCTION>
+            <FUNCTION>newobj</FUNCTION>
+
+            <FUNCTION>dup</FUNCTION>
+            <FUNCTION>endfilter</FUNCTION>
+            <FUNCTION>isinst</FUNCTION>
+            <FUNCTION>box</FUNCTION>
+            <FUNCTION>unbox</FUNCTION>
+            <FUNCTION>arglist</FUNCTION>
+            <FUNCTION>break</FUNCTION>
+            <FUNCTION>jmp</FUNCTION>
+            <FUNCTION>ret</FUNCTION>
+            <FUNCTION>leave</FUNCTION>
+            <FUNCTION>leave.s</FUNCTION>
+            <FUNCTION>localloc</FUNCTION>
+            <FUNCTION>mkrefany</FUNCTION>
+            <FUNCTION>neg</FUNCTION>
+            <FUNCTION>switch</FUNCTION>
+            <FUNCTION>nop</FUNCTION>
+            <FUNCTION>pop</FUNCTION>
+            <FUNCTION>refanytype</FUNCTION>
+            <FUNCTION>refanyval</FUNCTION>
+            <FUNCTION>rem</FUNCTION>
+            <FUNCTION>rem.un</FUNCTION>
+            <FUNCTION>throw</FUNCTION>
+            <FUNCTION>rethrow</FUNCTION>
+            <FUNCTION>endfinally</FUNCTION>
+            <FUNCTION>shl</FUNCTION>
+            <FUNCTION>shr</FUNCTION>
+            <FUNCTION>shr.un</FUNCTION>
+            <FUNCTION>sizeof</FUNCTION>
+            <FUNCTION>tailcall</FUNCTION>
+            <FUNCTION>unaligned</FUNCTION>
+            <FUNCTION>volatile</FUNCTION>
+               </KEYWORDS>
+       </RULES>
+</MODE>