<SyntaxDefinition name="ILAsm" extensions=".il" xmlns="http://icsharpcode.net/sharpdevelop/syntaxdefinition/2008">
	<Color name="Comment" foreground="Green" exampleText="// comment" />
	<Color name="String" foreground="Magenta" exampleText="&quot;Hello, World!&quot;" />
	<Color name="Instructions" foreground="Blue" exampleText="nop;" />
	<Color name="Keywords" foreground="Blue" fontWeight="bold" exampleText="true" />
	<Color name="Directives" foreground="Green" fontWeight="bold" exampleText=".class" />
	<Color name="Security" foreground="Red" exampleText="request" />
	
	<RuleSet ignoreCase="false">
		<Keywords color="Instructions">
			<Word>nop</Word>
			<Word>break</Word>
			<Word>ldarg.0</Word>
			<Word>ldarg.1</Word>
			<Word>ldarg.2</Word>
			<Word>ldarg.3</Word>
			<Word>ldloc.0</Word>
			<Word>ldloc.1</Word>
			<Word>ldloc.2</Word>
			<Word>ldloc.3</Word>
			<Word>stloc.0</Word>
			<Word>stloc.1</Word>
			<Word>stloc.2</Word>
			<Word>stloc.3</Word>
			<Word>ldarg.s</Word>
			<Word>ldarga.s</Word>
			<Word>starg.s</Word>
			<Word>ldloc.s</Word>
			<Word>ldloca.s</Word>
			<Word>stloc.s</Word>
			<Word>ldnull</Word>
			<Word>ldc.i4.m1</Word>
			<Word>ldc.i4.0</Word>
			<Word>ldc.i4.1</Word>
			<Word>ldc.i4.2</Word>
			<Word>ldc.i4.3</Word>
			<Word>ldc.i4.4</Word>
			<Word>ldc.i4.5</Word>
			<Word>ldc.i4.6</Word>
			<Word>ldc.i4.7</Word>
			<Word>ldc.i4.8</Word>
			<Word>ldc.i4.s</Word>
			<Word>ldc.i4</Word>
			<Word>ldc.i8</Word>
			<Word>ldc.r4</Word>
			<Word>ldc.r8</Word>
			<Word>dup</Word>
			<Word>pop</Word>
			<Word>jmp</Word>
			<Word>call</Word>
			<Word>calli</Word>
			<Word>ret</Word>
			<Word>br.s</Word>
			<Word>brfalse.s</Word>
			<Word>brtrue.s</Word>
			<Word>beq.s</Word>
			<Word>bge.s</Word>
			<Word>bgt.s</Word>
			<Word>ble.s</Word>
			<Word>blt.s</Word>
			<Word>bne.un.s</Word>
			<Word>bge.un.s</Word>
			<Word>bgt.un.s</Word>
			<Word>ble.un.s</Word>
			<Word>blt.un.s</Word>
			<Word>br</Word>
			<Word>brfalse</Word>
			<Word>brtrue</Word>
			<Word>beq</Word>
			<Word>bge</Word>
			<Word>bgt</Word>
			<Word>ble</Word>
			<Word>blt</Word>
			<Word>bne.un</Word>
			<Word>bge.un</Word>
			<Word>bgt.un</Word>
			<Word>ble.un</Word>
			<Word>blt.un</Word>
			<Word>switch</Word>
			<Word>ldind.i1</Word>
			<Word>ldind.u1</Word>
			<Word>ldind.i2</Word>
			<Word>ldind.u2</Word>
			<Word>ldind.i4</Word>
			<Word>ldind.u4</Word>
			<Word>ldind.i8</Word>
			<Word>ldind.i</Word>
			<Word>ldind.r4</Word>
			<Word>ldind.r8</Word>
			<Word>ldind.ref</Word>
			<Word>stind.ref</Word>
			<Word>stind.i1</Word>
			<Word>stind.i2</Word>
			<Word>stind.i4</Word>
			<Word>stind.i8</Word>
			<Word>stind.r4</Word>
			<Word>stind.r8</Word>
			<Word>add</Word>
			<Word>sub</Word>
			<Word>mul</Word>
			<Word>div</Word>
			<Word>div.un</Word>
			<Word>rem</Word>
			<Word>rem.un</Word>
			<Word>and</Word>
			<Word>or</Word>
			<Word>xor</Word>
			<Word>shl</Word>
			<Word>shr</Word>
			<Word>shr.un</Word>
			<Word>neg</Word>
			<Word>not</Word>
			<Word>conv.i1</Word>
			<Word>conv.i2</Word>
			<Word>conv.i4</Word>
			<Word>conv.i8</Word>
			<Word>conv.r4</Word>
			<Word>conv.r8</Word>
			<Word>conv.u4</Word>
			<Word>conv.u8</Word>
			<Word>callvirt</Word>
			<Word>cpobj</Word>
			<Word>ldobj</Word>
			<Word>ldstr</Word>
			<Word>newobj</Word>
			<Word>castclass</Word>
			<Word>isinst</Word>
			<Word>conv.r.un</Word>
			<Word>unbox</Word>
			<Word>throw</Word>
			<Word>ldfld</Word>
			<Word>ldflda</Word>
			<Word>stfld</Word>
			<Word>ldsfld</Word>
			<Word>ldsflda</Word>
			<Word>stsfld</Word>
			<Word>stobj</Word>
			<Word>conv.ovf.i1.un</Word>
			<Word>conv.ovf.i2.un</Word>
			<Word>conv.ovf.i4.un</Word>
			<Word>conv.ovf.i8.un</Word>
			<Word>conv.ovf.u1.un</Word>
			<Word>conv.ovf.u2.un</Word>
			<Word>conv.ovf.u4.un</Word>
			<Word>conv.ovf.u8.un</Word>
			<Word>conv.ovf.i.un</Word>
			<Word>conv.ovf.u.un</Word>
			<Word>box</Word>
			<Word>newarr</Word>
			<Word>ldlen</Word>
			<Word>ldelema</Word>
			<Word>ldelem.i1</Word>
			<Word>ldelem.u1</Word>
			<Word>ldelem.i2</Word>
			<Word>ldelem.u2</Word>
			<Word>ldelem.i4</Word>
			<Word>ldelem.u4</Word>
			<Word>ldelem.i8</Word>
			<Word>ldelem.i</Word>
			<Word>ldelem.r4</Word>
			<Word>ldelem.r8</Word>
			<Word>ldelem.ref</Word>
			<Word>stelem.i</Word>
			<Word>stelem.i1</Word>
			<Word>stelem.i2</Word>
			<Word>stelem.i4</Word>
			<Word>stelem.i8</Word>
			<Word>stelem.r4</Word>
			<Word>stelem.r8</Word>
			<Word>stelem.ref</Word>
			<Word>conv.ovf.i1</Word>
			<Word>conv.ovf.u1</Word>
			<Word>conv.ovf.i2</Word>
			<Word>conv.ovf.u2</Word>
			<Word>conv.ovf.i4</Word>
			<Word>conv.ovf.u4</Word>
			<Word>conv.ovf.i8</Word>
			<Word>conv.ovf.u8</Word>
			<Word>refanyval</Word>
			<Word>ckfinite</Word>
			<Word>mkrefany</Word>
			<Word>ldtoken</Word>
			<Word>conv.u2</Word>
			<Word>conv.u1</Word>
			<Word>conv.i</Word>
			<Word>conv.ovf.i</Word>
			<Word>conv.ovf.u</Word>
			<Word>add.ovf</Word>
			<Word>add.ovf.un</Word>
			<Word>mul.ovf</Word>
			<Word>mul.ovf.un</Word>
			<Word>sub.ovf</Word>
			<Word>sub.ovf.un</Word>
			<Word>endfinally</Word>
			<Word>leave</Word>
			<Word>leave.s</Word>
			<Word>stind.i</Word>
			<Word>conv.u</Word>
			<Word>prefix7</Word>
			<Word>prefix6</Word>
			<Word>prefix5</Word>
			<Word>prefix4</Word>
			<Word>prefix3</Word>
			<Word>prefix2</Word>
			<Word>prefix1</Word>
			<Word>prefixref</Word>
			<Word>arglist</Word>
			<Word>ceq</Word>
			<Word>cgt</Word>
			<Word>cgt.un</Word>
			<Word>clt</Word>
			<Word>clt.un</Word>
			<Word>ldftn</Word>
			<Word>ldvirtftn</Word>
			<Word>ldarg</Word>
			<Word>ldarga</Word>
			<Word>starg</Word>
			<Word>ldloc</Word>
			<Word>ldloca</Word>
			<Word>stloc</Word>
			<Word>localloc</Word>
			<Word>endfilter</Word>
			<Word>unaligned.</Word>
			<Word>volatile.</Word>
			<Word>tail.</Word>
			<Word>initobj</Word>
			<Word>cpblk</Word>
			<Word>initblk</Word>
			<Word>rethrow</Word>
			<Word>sizeof</Word>
			<Word>refanytype</Word>
			<Word>illegal</Word>
			<Word>endmac</Word>
			<Word>brnull</Word>
			<Word>brnull.s</Word>
			<Word>brzero</Word>
			<Word>brzero.s</Word>
			<Word>brinst</Word>
			<Word>brinst.s</Word>
			<Word>ldind.u8</Word>
			<Word>ldelem.u8</Word>
			<Word>ldc.i4.M1</Word>
			<Word>endfault</Word>
		</Keywords>
		<Keywords color="Keywords">
			<Word>void</Word>
			<Word>bool</Word>
			<Word>char</Word>
			<Word>wchar</Word>
			<Word>int</Word>
			<Word>int8</Word>
			<Word>int16</Word>
			<Word>int32</Word>
			<Word>int64</Word>
			<Word>uint8</Word>
			<Word>uint16</Word>
			<Word>uint32</Word>
			<Word>uint64</Word>
			<Word>float</Word>
			<Word>float32</Word>
			<Word>float64</Word>
			<Word>refany</Word>
			<Word>typedref</Word>
			<Word>object</Word>
			<Word>string</Word>
			<Word>native</Word>
			<Word>unsigned</Word>
			<Word>value</Word>
			<Word>valuetype</Word>
			<Word>class</Word>
			<Word>const</Word>
			<Word>vararg</Word>
			<Word>default</Word>
			<Word>stdcall</Word>
			<Word>thiscall</Word>
			<Word>fastcall</Word>
			<Word>unmanaged</Word>
			<Word>not_in_gc_heap</Word>
			<Word>beforefieldinit</Word>
			<Word>instance</Word>
			<Word>filter</Word>
			<Word>catch</Word>
			<Word>static</Word>
			<Word>public</Word>
			<Word>private</Word>
			<Word>synchronized</Word>
			<Word>interface</Word>
			<Word>extends</Word>
			<Word>implements</Word>
			<Word>handler</Word>
			<Word>finally</Word>
			<Word>fault</Word>
			<Word>to</Word>
			<Word>abstract</Word>
			<Word>auto</Word>
			<Word>sequential</Word>
			<Word>explicit</Word>
			<Word>wrapper</Word>
			<Word>ansi</Word>
			<Word>unicode</Word>
			<Word>autochar</Word>
			<Word>import</Word>
			<Word>enum</Word>
			<Word>virtual</Word>
			<Word>notremotable</Word>
			<Word>special</Word>
			<Word>il</Word>
			<Word>cil</Word>
			<Word>optil</Word>
			<Word>managed</Word>
			<Word>preservesig</Word>
			<Word>runtime</Word>
			<Word>method</Word>
			<Word>field</Word>
			<Word>bytearray</Word>
			<Word>final</Word>
			<Word>sealed</Word>
			<Word>specialname</Word>
			<Word>family</Word>
			<Word>assembly</Word>
			<Word>famandassem</Word>
			<Word>famorassem</Word>
			<Word>privatescope</Word>
			<Word>nested</Word>
			<Word>hidebysig</Word>
			<Word>newslot</Word>
			<Word>rtspecialname</Word>
			<Word>pinvokeimpl</Word>
			<Word>unmanagedexp</Word>
			<Word>reqsecobj</Word>
			<Word>.ctor</Word>
			<Word>.cctor</Word>
			<Word>initonly</Word>
			<Word>literal</Word>
			<Word>notserialized</Word>
			<Word>forwardref</Word>
			<Word>internalcall</Word>
			<Word>noinlining</Word>
			<Word>aggressiveinlining</Word>
			<Word>nomangle</Word>
			<Word>lasterr</Word>
			<Word>winapi</Word>
			<Word>cdecl</Word>
			<Word>stdcall</Word>
			<Word>thiscall</Word>
			<Word>fastcall</Word>
			<Word>as</Word>
			<Word>pinned</Word>
			<Word>modreq</Word>
			<Word>modopt</Word>
			<Word>serializable</Word>
			<Word>at</Word>
			<Word>tls</Word>
			<Word>true</Word>
			<Word>false</Word>
			<Word>strict</Word>
		</Keywords>
		<Keywords color="Directives">
			<Word>.class</Word>
			<Word>.namespace</Word>
			<Word>.method</Word>
			<Word>.field</Word>
			<Word>.emitbyte</Word>
			<Word>.try</Word>
			<Word>.maxstack</Word>
			<Word>.locals</Word>
			<Word>.entrypoint</Word>
			<Word>.zeroinit</Word>
			<Word>.pdirect</Word>
			<Word>.data</Word>
			<Word>.event</Word>
			<Word>.addon</Word>
			<Word>.removeon</Word>
			<Word>.fire</Word>
			<Word>.other</Word>
			<Word>protected</Word>
			<Word>.property</Word>
			<Word>.set</Word>
			<Word>.get</Word>
			<Word>default</Word>
			<Word>.import</Word>
			<Word>.permission</Word>
			<Word>.permissionset</Word>
			<Word>.line</Word>
			<Word>.language</Word>
			<Word>#line</Word>
		</Keywords>
		<Keywords color="Security">
			<Word>request</Word>
			<Word>demand</Word>
			<Word>assert</Word>
			<Word>deny</Word>
			<Word>permitonly</Word>
			<Word>linkcheck</Word>
			<Word>inheritcheck</Word>
			<Word>reqmin</Word>
			<Word>reqopt</Word>
			<Word>reqrefuse</Word>
			<Word>prejitgrant</Word>
			<Word>prejitdeny</Word>
			<Word>noncasdemand</Word>
			<Word>noncaslinkdemand</Word>
			<Word>noncasinheritance</Word>
		</Keywords>
		<Keywords color="Directives">
			<!-- custom value specifier -->
			<Word>.custom</Word>
			<!-- IL method attribute  -->
			<Word>init</Word>
			<!-- Class layout directives -->
			<Word>.size</Word>
			<Word>.pack</Word>
			<!-- Manifest-related keywords -->
			<Word>.file</Word>
			<Word>nometadata</Word>
			<Word>.hash</Word>
			<Word>.assembly</Word>
			<Word>implicitcom</Word>
			<Word>noappdomain</Word>
			<Word>noprocess</Word>
			<Word>nomachine</Word>
			<Word>.publickey</Word>
			<Word>.publickeytoken</Word>
			<Word>algorithm</Word>
			<Word>.ver</Word>
			<Word>.locale</Word>
			<Word>extern</Word>
			<Word>.export</Word>
			<Word>.manifestres</Word>
			<Word>.mresource</Word>
			<Word>.localized</Word>
			
			<!-- Field marshaling keywords -->
			<Word>.module</Word>
			<Word>marshal</Word>
			<Word>custom</Word>
			<Word>sysstring</Word>
			<Word>fixed</Word>
			<Word>variant</Word>
			<Word>currency</Word>
			<Word>syschar</Word>
			<Word>decimal</Word>
			<Word>date</Word>
			<Word>bstr</Word>
			<Word>tbstr</Word>
			<Word>lpstr</Word>
			<Word>lpwstr</Word>
			<Word>lptstr</Word>
			<Word>objectref</Word>
			<Word>iunknown</Word>
			<Word>idispatch</Word>
			<Word>struct</Word>
			<Word>safearray</Word>
			<Word>byvalstr</Word>
			<Word>lpvoid</Word>
			<Word>any</Word>
			<Word>array</Word>
			<Word>lpstruct</Word>
			
			<!-- VTable fixup keywords  -->
			<Word>.vtfixup</Word>
			<Word>fromunmanaged</Word>
			<Word>callmostderived</Word>
			<Word>.vtentry</Word>
			
			<!-- Parameter attributes  -->
			<Word>in</Word>
			<Word>out</Word>
			<Word>opt</Word>
			<Word>lcid</Word>
			<Word>retval</Word>
			<Word>.param</Word>
			
			<!-- Method implementations  -->
			<Word>.override</Word>
			<Word>with</Word>
			
			<!-- VariantType keywords  -->
			<Word>null</Word>
			<Word>error</Word>
			<Word>hresult</Word>
			<Word>carray</Word>
			<Word>userdefined</Word>
			<Word>record</Word>
			<Word>filetime</Word>
			<Word>blob</Word>
			<Word>stream</Word>
			<Word>storage</Word>
			<Word>streamed_object</Word>
			<Word>stored_object</Word>
			<Word>blob_object</Word>
			<Word>cf</Word>
			<Word>clsid</Word>
			<Word>vector</Word>
			
			<!-- Null reference keyword for InitOpt  -->
			<Word>nullref</Word>
			
			<!-- Header flags keywords  -->
			<Word>.subsystem</Word>
			<Word>.corflags</Word>
			<Word>.stackreserve</Word>
			<Word>alignment</Word>
			<Word>.imagebase</Word>
		</Keywords>
		<Span color="Comment" ruleSet="CommentMarkerSet">
			<Begin>//</Begin>
		</Span>
		<Span color="Comment" ruleSet="CommentMarkerSet">
			<Begin>/\*</Begin>
			<End>\*/</End>
		</Span>
		<Span color="String">
			<Begin>"</Begin>
			<End>"</End>
		</Span>
	</RuleSet>
	<RuleSet name="CommentMarkerSet" ignoreCase="false">
		<Keywords foreground="#FFFF0000" fontWeight="bold">
			<Word>TODO</Word>
			<Word>FIXME</Word>
		</Keywords>
		<Keywords foreground="#EEE0E000" fontWeight="bold">
			<Word>HACK</Word>
			<Word>UNDONE</Word>
		</Keywords>
	</RuleSet>
</SyntaxDefinition>