* ILTables.cs: Add imagebase keyword.
[mono.git] / mcs / ilasm / scanner / ILTables.cs
1 // ILTables.cs\r
2 // Mechanically generated  - DO NOT EDIT!\r
3 //\r
4 // (C) Sergey Chaban (serge@wildwestsoftware.com)\r
5 \r
6 using System;\r
7 using System.Collections;\r
8 using System.Reflection.Emit;\r
9 \r
10 namespace Mono.ILASM {\r
11 \r
12 \r
13 \r
14 \r
15 \r
16         public sealed class ILTables {\r
17 \r
18                 private static Hashtable opcodes = null;\r
19                 private static Hashtable keywords = null;\r
20                 private static Hashtable directives = null;\r
21                 private static readonly object mutex;\r
22 \r
23 \r
24                 private ILTables ()\r
25                 {\r
26                 }\r
27 \r
28                 static ILTables ()\r
29                 {\r
30                         mutex = new object ();\r
31                 }\r
32 \r
33                 private static void AllocTable (ref Hashtable tbl, int size)\r
34                 {\r
35                         lock (mutex) {\r
36                                 if (tbl == null)\r
37                                         tbl = new Hashtable (size);\r
38                         }\r
39                 }\r
40 \r
41                 public static Hashtable Opcodes\r
42                 {\r
43                         get {\r
44                                 if (opcodes != null) return opcodes;\r
45 \r
46                                 AllocTable (ref opcodes, 300);\r
47 \r
48                                 opcodes ["nop"] = new InstrToken (OpCodes.Nop);\r
49                                 opcodes ["break"] = new InstrToken (OpCodes.Break);\r
50                                 opcodes ["ldarg.0"] = new InstrToken (OpCodes.Ldarg_0);\r
51                                 opcodes ["ldarg.1"] = new InstrToken (OpCodes.Ldarg_1);\r
52                                 opcodes ["ldarg.2"] = new InstrToken (OpCodes.Ldarg_2);\r
53                                 opcodes ["ldarg.3"] = new InstrToken (OpCodes.Ldarg_3);\r
54                                 opcodes ["ldloc.0"] = new InstrToken (OpCodes.Ldloc_0);\r
55                                 opcodes ["ldloc.1"] = new InstrToken (OpCodes.Ldloc_1);\r
56                                 opcodes ["ldloc.2"] = new InstrToken (OpCodes.Ldloc_2);\r
57                                 opcodes ["ldloc.3"] = new InstrToken (OpCodes.Ldloc_3);\r
58                                 opcodes ["stloc.0"] = new InstrToken (OpCodes.Stloc_0);\r
59                                 opcodes ["stloc.1"] = new InstrToken (OpCodes.Stloc_1);\r
60                                 opcodes ["stloc.2"] = new InstrToken (OpCodes.Stloc_2);\r
61                                 opcodes ["stloc.3"] = new InstrToken (OpCodes.Stloc_3);\r
62                                 opcodes ["ldarg.s"] = new InstrToken (OpCodes.Ldarg_S);\r
63                                 opcodes ["ldarga.s"] = new InstrToken (OpCodes.Ldarga_S);\r
64                                 opcodes ["starg.s"] = new InstrToken (OpCodes.Starg_S);\r
65                                 opcodes ["ldloc.s"] = new InstrToken (OpCodes.Ldloc_S);\r
66                                 opcodes ["ldloca.s"] = new InstrToken (OpCodes.Ldloca_S);\r
67                                 opcodes ["stloc.s"] = new InstrToken (OpCodes.Stloc_S);\r
68                                 opcodes ["ldnull"] = new InstrToken (OpCodes.Ldnull);\r
69                                 opcodes ["ldc.i4.m1"] = new InstrToken (OpCodes.Ldc_I4_M1);\r
70                                 opcodes ["ldc.i4.0"] = new InstrToken (OpCodes.Ldc_I4_0);\r
71                                 opcodes ["ldc.i4.1"] = new InstrToken (OpCodes.Ldc_I4_1);\r
72                                 opcodes ["ldc.i4.2"] = new InstrToken (OpCodes.Ldc_I4_2);\r
73                                 opcodes ["ldc.i4.3"] = new InstrToken (OpCodes.Ldc_I4_3);\r
74                                 opcodes ["ldc.i4.4"] = new InstrToken (OpCodes.Ldc_I4_4);\r
75                                 opcodes ["ldc.i4.5"] = new InstrToken (OpCodes.Ldc_I4_5);\r
76                                 opcodes ["ldc.i4.6"] = new InstrToken (OpCodes.Ldc_I4_6);\r
77                                 opcodes ["ldc.i4.7"] = new InstrToken (OpCodes.Ldc_I4_7);\r
78                                 opcodes ["ldc.i4.8"] = new InstrToken (OpCodes.Ldc_I4_8);\r
79                                 opcodes ["ldc.i4.s"] = new InstrToken (OpCodes.Ldc_I4_S);\r
80                                 opcodes ["ldc.i4"] = new InstrToken (OpCodes.Ldc_I4);\r
81                                 opcodes ["ldc.i8"] = new InstrToken (OpCodes.Ldc_I8);\r
82                                 opcodes ["ldc.r4"] = new InstrToken (OpCodes.Ldc_R4);\r
83                                 opcodes ["ldc.r8"] = new InstrToken (OpCodes.Ldc_R8);\r
84                                 opcodes ["dup"] = new InstrToken (OpCodes.Dup);\r
85                                 opcodes ["pop"] = new InstrToken (OpCodes.Pop);\r
86                                 opcodes ["jmp"] = new InstrToken (OpCodes.Jmp);\r
87                                 opcodes ["call"] = new InstrToken (OpCodes.Call);\r
88                                 opcodes ["calli"] = new InstrToken (OpCodes.Calli);\r
89                                 opcodes ["ret"] = new InstrToken (OpCodes.Ret);\r
90                                 opcodes ["br.s"] = new InstrToken (OpCodes.Br_S);\r
91                                 opcodes ["brfalse.s"] = new InstrToken (OpCodes.Brfalse_S);\r
92                                 opcodes ["brtrue.s"] = new InstrToken (OpCodes.Brtrue_S);\r
93                                 opcodes ["beq.s"] = new InstrToken (OpCodes.Beq_S);\r
94                                 opcodes ["bge.s"] = new InstrToken (OpCodes.Bge_S);\r
95                                 opcodes ["bgt.s"] = new InstrToken (OpCodes.Bgt_S);\r
96                                 opcodes ["ble.s"] = new InstrToken (OpCodes.Ble_S);\r
97                                 opcodes ["blt.s"] = new InstrToken (OpCodes.Blt_S);\r
98                                 opcodes ["bne.un.s"] = new InstrToken (OpCodes.Bne_Un_S);\r
99                                 opcodes ["bge.un.s"] = new InstrToken (OpCodes.Bge_Un_S);\r
100                                 opcodes ["bgt.un.s"] = new InstrToken (OpCodes.Bgt_Un_S);\r
101                                 opcodes ["ble.un.s"] = new InstrToken (OpCodes.Ble_Un_S);\r
102                                 opcodes ["blt.un.s"] = new InstrToken (OpCodes.Blt_Un_S);\r
103                                 opcodes ["br"] = new InstrToken (OpCodes.Br);\r
104                                 opcodes ["brfalse"] = new InstrToken (OpCodes.Brfalse);\r
105                                 opcodes ["brtrue"] = new InstrToken (OpCodes.Brtrue);\r
106                                 opcodes ["beq"] = new InstrToken (OpCodes.Beq);\r
107                                 opcodes ["bge"] = new InstrToken (OpCodes.Bge);\r
108                                 opcodes ["bgt"] = new InstrToken (OpCodes.Bgt);\r
109                                 opcodes ["ble"] = new InstrToken (OpCodes.Ble);\r
110                                 opcodes ["blt"] = new InstrToken (OpCodes.Blt);\r
111                                 opcodes ["bne.un"] = new InstrToken (OpCodes.Bne_Un);\r
112                                 opcodes ["bge.un"] = new InstrToken (OpCodes.Bge_Un);\r
113                                 opcodes ["bgt.un"] = new InstrToken (OpCodes.Bgt_Un);\r
114                                 opcodes ["ble.un"] = new InstrToken (OpCodes.Ble_Un);\r
115                                 opcodes ["blt.un"] = new InstrToken (OpCodes.Blt_Un);\r
116                                 opcodes ["switch"] = new InstrToken (OpCodes.Switch);\r
117                                 opcodes ["ldind.i1"] = new InstrToken (OpCodes.Ldind_I1);\r
118                                 opcodes ["ldind.u1"] = new InstrToken (OpCodes.Ldind_U1);\r
119                                 opcodes ["ldind.i2"] = new InstrToken (OpCodes.Ldind_I2);\r
120                                 opcodes ["ldind.u2"] = new InstrToken (OpCodes.Ldind_U2);\r
121                                 opcodes ["ldind.i4"] = new InstrToken (OpCodes.Ldind_I4);\r
122                                 opcodes ["ldind.u4"] = new InstrToken (OpCodes.Ldind_U4);\r
123                                 opcodes ["ldind.i8"] = new InstrToken (OpCodes.Ldind_I8);\r
124                                 opcodes ["ldind.i"] = new InstrToken (OpCodes.Ldind_I);\r
125                                 opcodes ["ldind.r4"] = new InstrToken (OpCodes.Ldind_R4);\r
126                                 opcodes ["ldind.r8"] = new InstrToken (OpCodes.Ldind_R8);\r
127                                 opcodes ["ldind.ref"] = new InstrToken (OpCodes.Ldind_Ref);\r
128                                 opcodes ["stind.ref"] = new InstrToken (OpCodes.Stind_Ref);\r
129                                 opcodes ["stind.i1"] = new InstrToken (OpCodes.Stind_I1);\r
130                                 opcodes ["stind.i2"] = new InstrToken (OpCodes.Stind_I2);\r
131                                 opcodes ["stind.i4"] = new InstrToken (OpCodes.Stind_I4);\r
132                                 opcodes ["stind.i8"] = new InstrToken (OpCodes.Stind_I8);\r
133                                 opcodes ["stind.r4"] = new InstrToken (OpCodes.Stind_R4);\r
134                                 opcodes ["stind.r8"] = new InstrToken (OpCodes.Stind_R8);\r
135                                 opcodes ["add"] = new InstrToken (OpCodes.Add);\r
136                                 opcodes ["sub"] = new InstrToken (OpCodes.Sub);\r
137                                 opcodes ["mul"] = new InstrToken (OpCodes.Mul);\r
138                                 opcodes ["div"] = new InstrToken (OpCodes.Div);\r
139                                 opcodes ["div.un"] = new InstrToken (OpCodes.Div_Un);\r
140                                 opcodes ["rem"] = new InstrToken (OpCodes.Rem);\r
141                                 opcodes ["rem.un"] = new InstrToken (OpCodes.Rem_Un);\r
142                                 opcodes ["and"] = new InstrToken (OpCodes.And);\r
143                                 opcodes ["or"] = new InstrToken (OpCodes.Or);\r
144                                 opcodes ["xor"] = new InstrToken (OpCodes.Xor);\r
145                                 opcodes ["shl"] = new InstrToken (OpCodes.Shl);\r
146                                 opcodes ["shr"] = new InstrToken (OpCodes.Shr);\r
147                                 opcodes ["shr.un"] = new InstrToken (OpCodes.Shr_Un);\r
148                                 opcodes ["neg"] = new InstrToken (OpCodes.Neg);\r
149                                 opcodes ["not"] = new InstrToken (OpCodes.Not);\r
150                                 opcodes ["conv.i1"] = new InstrToken (OpCodes.Conv_I1);\r
151                                 opcodes ["conv.i2"] = new InstrToken (OpCodes.Conv_I2);\r
152                                 opcodes ["conv.i4"] = new InstrToken (OpCodes.Conv_I4);\r
153                                 opcodes ["conv.i8"] = new InstrToken (OpCodes.Conv_I8);\r
154                                 opcodes ["conv.r4"] = new InstrToken (OpCodes.Conv_R4);\r
155                                 opcodes ["conv.r8"] = new InstrToken (OpCodes.Conv_R8);\r
156                                 opcodes ["conv.u4"] = new InstrToken (OpCodes.Conv_U4);\r
157                                 opcodes ["conv.u8"] = new InstrToken (OpCodes.Conv_U8);\r
158                                 opcodes ["callvirt"] = new InstrToken (OpCodes.Callvirt);\r
159                                 opcodes ["cpobj"] = new InstrToken (OpCodes.Cpobj);\r
160                                 opcodes ["ldobj"] = new InstrToken (OpCodes.Ldobj);\r
161                                 opcodes ["ldstr"] = new InstrToken (OpCodes.Ldstr);\r
162                                 opcodes ["newobj"] = new InstrToken (OpCodes.Newobj);\r
163                                 opcodes ["castclass"] = new InstrToken (OpCodes.Castclass);\r
164                                 opcodes ["isinst"] = new InstrToken (OpCodes.Isinst);\r
165                                 opcodes ["conv.r.un"] = new InstrToken (OpCodes.Conv_R_Un);\r
166                                 opcodes ["unbox"] = new InstrToken (OpCodes.Unbox);\r
167                                 opcodes ["throw"] = new InstrToken (OpCodes.Throw);\r
168                                 opcodes ["ldfld"] = new InstrToken (OpCodes.Ldfld);\r
169                                 opcodes ["ldflda"] = new InstrToken (OpCodes.Ldflda);\r
170                                 opcodes ["stfld"] = new InstrToken (OpCodes.Stfld);\r
171                                 opcodes ["ldsfld"] = new InstrToken (OpCodes.Ldsfld);\r
172                                 opcodes ["ldsflda"] = new InstrToken (OpCodes.Ldsflda);\r
173                                 opcodes ["stsfld"] = new InstrToken (OpCodes.Stsfld);\r
174                                 opcodes ["stobj"] = new InstrToken (OpCodes.Stobj);\r
175                                 opcodes ["conv.ovf.i1.un"] = new InstrToken (OpCodes.Conv_Ovf_I1_Un);\r
176                                 opcodes ["conv.ovf.i2.un"] = new InstrToken (OpCodes.Conv_Ovf_I2_Un);\r
177                                 opcodes ["conv.ovf.i4.un"] = new InstrToken (OpCodes.Conv_Ovf_I4_Un);\r
178                                 opcodes ["conv.ovf.i8.un"] = new InstrToken (OpCodes.Conv_Ovf_I8_Un);\r
179                                 opcodes ["conv.ovf.u1.un"] = new InstrToken (OpCodes.Conv_Ovf_U1_Un);\r
180                                 opcodes ["conv.ovf.u2.un"] = new InstrToken (OpCodes.Conv_Ovf_U2_Un);\r
181                                 opcodes ["conv.ovf.u4.un"] = new InstrToken (OpCodes.Conv_Ovf_U4_Un);\r
182                                 opcodes ["conv.ovf.u8.un"] = new InstrToken (OpCodes.Conv_Ovf_U8_Un);\r
183                                 opcodes ["conv.ovf.i.un"] = new InstrToken (OpCodes.Conv_Ovf_I_Un);\r
184                                 opcodes ["conv.ovf.u.un"] = new InstrToken (OpCodes.Conv_Ovf_U_Un);\r
185                                 // /* Obsolete! */ opcodes ["boxval"] = new InstrToken (OpCodes.Boxval);\r
186                                 opcodes ["box"] = new InstrToken (OpCodes.Box);\r
187                                 opcodes ["newarr"] = new InstrToken (OpCodes.Newarr);\r
188                                 opcodes ["ldlen"] = new InstrToken (OpCodes.Ldlen);\r
189                                 opcodes ["ldelema"] = new InstrToken (OpCodes.Ldelema);\r
190                                 opcodes ["ldelem.i1"] = new InstrToken (OpCodes.Ldelem_I1);\r
191                                 opcodes ["ldelem.u1"] = new InstrToken (OpCodes.Ldelem_U1);\r
192                                 opcodes ["ldelem.i2"] = new InstrToken (OpCodes.Ldelem_I2);\r
193                                 opcodes ["ldelem.u2"] = new InstrToken (OpCodes.Ldelem_U2);\r
194                                 opcodes ["ldelem.i4"] = new InstrToken (OpCodes.Ldelem_I4);\r
195                                 opcodes ["ldelem.u4"] = new InstrToken (OpCodes.Ldelem_U4);\r
196                                 opcodes ["ldelem.i8"] = new InstrToken (OpCodes.Ldelem_I8);\r
197                                 opcodes ["ldelem.i"] = new InstrToken (OpCodes.Ldelem_I);\r
198                                 opcodes ["ldelem.r4"] = new InstrToken (OpCodes.Ldelem_R4);\r
199                                 opcodes ["ldelem.r8"] = new InstrToken (OpCodes.Ldelem_R8);\r
200                                 opcodes ["ldelem.ref"] = new InstrToken (OpCodes.Ldelem_Ref);\r
201                                 opcodes ["stelem.i"] = new InstrToken (OpCodes.Stelem_I);\r
202                                 opcodes ["stelem.i1"] = new InstrToken (OpCodes.Stelem_I1);\r
203                                 opcodes ["stelem.i2"] = new InstrToken (OpCodes.Stelem_I2);\r
204                                 opcodes ["stelem.i4"] = new InstrToken (OpCodes.Stelem_I4);\r
205                                 opcodes ["stelem.i8"] = new InstrToken (OpCodes.Stelem_I8);\r
206                                 opcodes ["stelem.r4"] = new InstrToken (OpCodes.Stelem_R4);\r
207                                 opcodes ["stelem.r8"] = new InstrToken (OpCodes.Stelem_R8);\r
208                                 opcodes ["stelem.ref"] = new InstrToken (OpCodes.Stelem_Ref);\r
209                                 opcodes ["conv.ovf.i1"] = new InstrToken (OpCodes.Conv_Ovf_I1);\r
210                                 opcodes ["conv.ovf.u1"] = new InstrToken (OpCodes.Conv_Ovf_U1);\r
211                                 opcodes ["conv.ovf.i2"] = new InstrToken (OpCodes.Conv_Ovf_I2);\r
212                                 opcodes ["conv.ovf.u2"] = new InstrToken (OpCodes.Conv_Ovf_U2);\r
213                                 opcodes ["conv.ovf.i4"] = new InstrToken (OpCodes.Conv_Ovf_I4);\r
214                                 opcodes ["conv.ovf.u4"] = new InstrToken (OpCodes.Conv_Ovf_U4);\r
215                                 opcodes ["conv.ovf.i8"] = new InstrToken (OpCodes.Conv_Ovf_I8);\r
216                                 opcodes ["conv.ovf.u8"] = new InstrToken (OpCodes.Conv_Ovf_U8);\r
217                                 opcodes ["refanyval"] = new InstrToken (OpCodes.Refanyval);\r
218                                 opcodes ["ckfinite"] = new InstrToken (OpCodes.Ckfinite);\r
219                                 opcodes ["mkrefany"] = new InstrToken (OpCodes.Mkrefany);\r
220                                 opcodes ["ldtoken"] = new InstrToken (OpCodes.Ldtoken);\r
221                                 opcodes ["conv.u2"] = new InstrToken (OpCodes.Conv_U2);\r
222                                 opcodes ["conv.u1"] = new InstrToken (OpCodes.Conv_U1);\r
223                                 opcodes ["conv.i"] = new InstrToken (OpCodes.Conv_I);\r
224                                 opcodes ["conv.ovf.i"] = new InstrToken (OpCodes.Conv_Ovf_I);\r
225                                 opcodes ["conv.ovf.u"] = new InstrToken (OpCodes.Conv_Ovf_U);\r
226                                 opcodes ["add.ovf"] = new InstrToken (OpCodes.Add_Ovf);\r
227                                 opcodes ["add.ovf.un"] = new InstrToken (OpCodes.Add_Ovf_Un);\r
228                                 opcodes ["mul.ovf"] = new InstrToken (OpCodes.Mul_Ovf);\r
229                                 opcodes ["mul.ovf.un"] = new InstrToken (OpCodes.Mul_Ovf_Un);\r
230                                 opcodes ["sub.ovf"] = new InstrToken (OpCodes.Sub_Ovf);\r
231                                 opcodes ["sub.ovf.un"] = new InstrToken (OpCodes.Sub_Ovf_Un);\r
232                                 opcodes ["endfinally"] = new InstrToken (OpCodes.Endfinally);\r
233                                 opcodes ["leave"] = new InstrToken (OpCodes.Leave);\r
234                                 opcodes ["leave.s"] = new InstrToken (OpCodes.Leave_S);\r
235                                 opcodes ["stind.i"] = new InstrToken (OpCodes.Stind_I);\r
236                                 opcodes ["conv.u"] = new InstrToken (OpCodes.Conv_U);\r
237                                 opcodes ["prefix7"] = new InstrToken (OpCodes.Prefix7);\r
238                                 opcodes ["prefix6"] = new InstrToken (OpCodes.Prefix6);\r
239                                 opcodes ["prefix5"] = new InstrToken (OpCodes.Prefix5);\r
240                                 opcodes ["prefix4"] = new InstrToken (OpCodes.Prefix4);\r
241                                 opcodes ["prefix3"] = new InstrToken (OpCodes.Prefix3);\r
242                                 opcodes ["prefix2"] = new InstrToken (OpCodes.Prefix2);\r
243                                 opcodes ["prefix1"] = new InstrToken (OpCodes.Prefix1);\r
244                                 opcodes ["prefixref"] = new InstrToken (OpCodes.Prefixref);\r
245                                 opcodes ["arglist"] = new InstrToken (OpCodes.Arglist);\r
246                                 opcodes ["ceq"] = new InstrToken (OpCodes.Ceq);\r
247                                 opcodes ["cgt"] = new InstrToken (OpCodes.Cgt);\r
248                                 opcodes ["cgt.un"] = new InstrToken (OpCodes.Cgt_Un);\r
249                                 opcodes ["clt"] = new InstrToken (OpCodes.Clt);\r
250                                 opcodes ["clt.un"] = new InstrToken (OpCodes.Clt_Un);\r
251                                 opcodes ["ldftn"] = new InstrToken (OpCodes.Ldftn);\r
252                                 opcodes ["ldvirtftn"] = new InstrToken (OpCodes.Ldvirtftn);\r
253                                 opcodes ["ldarg"] = new InstrToken (OpCodes.Ldarg);\r
254                                 opcodes ["ldarga"] = new InstrToken (OpCodes.Ldarga);\r
255                                 opcodes ["starg"] = new InstrToken (OpCodes.Starg);\r
256                                 opcodes ["ldloc"] = new InstrToken (OpCodes.Ldloc);\r
257                                 opcodes ["ldloca"] = new InstrToken (OpCodes.Ldloca);\r
258                                 opcodes ["stloc"] = new InstrToken (OpCodes.Stloc);\r
259                                 opcodes ["localloc"] = new InstrToken (OpCodes.Localloc);\r
260                                 opcodes ["endfilter"] = new InstrToken (OpCodes.Endfilter);\r
261                                 opcodes ["unaligned."] = new InstrToken (OpCodes.Unaligned);\r
262                                 opcodes ["volatile."] = new InstrToken (OpCodes.Volatile);\r
263                                 opcodes ["tail."] = new InstrToken (OpCodes.Tailcall);\r
264                                 opcodes ["initobj"] = new InstrToken (OpCodes.Initobj);\r
265                                 opcodes ["cpblk"] = new InstrToken (OpCodes.Cpblk);\r
266                                 opcodes ["initblk"] = new InstrToken (OpCodes.Initblk);\r
267                                 opcodes ["rethrow"] = new InstrToken (OpCodes.Rethrow);\r
268                                 opcodes ["sizeof"] = new InstrToken (OpCodes.Sizeof);\r
269                                 opcodes ["refanytype"] = new InstrToken (OpCodes.Refanytype);\r
270 \r
271                                 return opcodes;\r
272                         }\r
273                 }\r
274 \r
275 \r
276                 public static Hashtable Directives\r
277                 {\r
278                         get {\r
279                                 if (directives != null) return directives;\r
280 \r
281                                 AllocTable (ref directives, 300);\r
282 \r
283                                 directives [".addon"] = new ILToken (Token.D_ADDON, ".addon");\r
284                                 directives [".algorithm"] = new ILToken (Token.D_ALGORITHM, ".algorithm");\r
285                                 directives [".assembly"] = new ILToken (Token.D_ASSEMBLY, ".assembly");\r
286                                 directives [".backing"] = new ILToken (Token.D_BACKING, ".backing");\r
287                                 directives [".blob"] = new ILToken (Token.D_BLOB, ".blob");\r
288                                 directives [".capability"] = new ILToken (Token.D_CAPABILITY, ".capability");\r
289                                 directives [".cctor"] = new ILToken (Token.D_CCTOR, ".cctor");\r
290                                 directives [".class"] = new ILToken (Token.D_CLASS, ".class");\r
291                                 directives [".comtype"] = new ILToken (Token.D_COMTYPE, ".comtype");\r
292                                 directives [".config"] = new ILToken (Token.D_CONFIG, ".config");\r
293                                 directives [".imagebase"] = new ILToken (Token.D_IMAGEBASE, ".imagebase");\r
294                                 directives [".corflags"] = new ILToken (Token.D_CORFLAGS, ".corflags");\r
295                                 directives [".ctor"] = new ILToken (Token.D_CTOR, ".ctor");\r
296                                 directives [".custom"] = new ILToken (Token.D_CUSTOM, ".custom");\r
297                                 directives [".data"] = new ILToken (Token.D_DATA, ".data");\r
298                                 directives [".emitbyte"] = new ILToken (Token.D_EMITBYTE, ".emitbyte");\r
299                                 directives [".entrypoint"] = new ILToken (Token.D_ENTRYPOINT, ".entrypoint");\r
300                                 directives [".event"] = new ILToken (Token.D_EVENT, ".event");\r
301                                 directives [".exeloc"] = new ILToken (Token.D_EXELOC, ".exeloc");\r
302                                 directives [".export"] = new ILToken (Token.D_EXPORT, ".export");\r
303                                 directives [".field"] = new ILToken (Token.D_FIELD, ".field");\r
304                                 directives [".file"] = new ILToken (Token.D_FILE, ".file");\r
305                                 directives [".fire"] = new ILToken (Token.D_FIRE, ".fire");\r
306                                 directives [".get"] = new ILToken (Token.D_GET, ".get");\r
307                                 directives [".hash"] = new ILToken (Token.D_HASH, ".hash");\r
308                                 directives [".implicitcom"] = new ILToken (Token.D_IMPLICITCOM, ".implicitcom");\r
309                                 directives [".language"] = new ILToken (Token.D_LANGUAGE, ".language");\r
310                                 directives [".line"] = new ILToken (Token.D_LINE, ".line");\r
311                                 directives ["#line"] = new ILToken (Token.D_XLINE, "#line");\r
312                                 directives [".locale"] = new ILToken (Token.D_LOCALE, ".locale");\r
313                                 directives [".locals"] = new ILToken (Token.D_LOCALS, ".locals");\r
314                                 directives [".manifestres"] = new ILToken (Token.D_MANIFESTRES, ".manifestres");\r
315                                 directives [".maxstack"] = new ILToken (Token.D_MAXSTACK, ".maxstack");\r
316                                 directives [".method"] = new ILToken (Token.D_METHOD, ".method");\r
317                                 directives [".mime"] = new ILToken (Token.D_MIME, ".mime");\r
318                                 directives [".module"] = new ILToken (Token.D_MODULE, ".module");\r
319                                 directives [".mresource"] = new ILToken (Token.D_MRESOURCE, ".mresource");\r
320                                 directives [".namespace"] = new ILToken (Token.D_NAMESPACE, ".namespace");\r
321                                 directives [".originator"] = new ILToken (Token.D_ORIGINATOR, ".originator");\r
322                                 directives [".os"] = new ILToken (Token.D_OS, ".os");\r
323                                 directives [".other"] = new ILToken (Token.D_OTHER, ".other");\r
324                                 directives [".override"] = new ILToken (Token.D_OVERRIDE, ".override");\r
325                                 directives [".pack"] = new ILToken (Token.D_PACK, ".pack");\r
326                                 directives [".param"] = new ILToken (Token.D_PARAM, ".param");\r
327                                 directives [".permission"] = new ILToken (Token.D_PERMISSION, ".permission");\r
328                                 directives [".permissionset"] = new ILToken (Token.D_PERMISSIONSET, ".permissionset");\r
329                                 directives [".processor"] = new ILToken (Token.D_PROCESSOR, ".processor");\r
330                                 directives [".property"] = new ILToken (Token.D_PROPERTY, ".property");\r
331                                 directives [".publickey"] = new ILToken (Token.D_PUBLICKEY, ".publickey");\r
332                                 directives [".publickeytoken"] = new ILToken (Token.D_PUBLICKEYTOKEN, ".publickeytoken");\r
333                                 directives [".removeon"] = new ILToken (Token.D_REMOVEON, ".removeon");\r
334                                 directives [".set"] = new ILToken (Token.D_SET, ".set");\r
335                                 directives [".size"] = new ILToken (Token.D_SIZE, ".size");\r
336                                 directives [".subsystem"] = new ILToken (Token.D_SUBSYSTEM, ".subsystem");\r
337                                 directives [".title"] = new ILToken (Token.D_TITLE, ".title");\r
338                                 directives [".try"] = new ILToken (Token.D_TRY, ".try");\r
339                                 directives [".ver"] = new ILToken (Token.D_VER, ".ver");\r
340                                 directives [".vtable"] = new ILToken (Token.D_VTABLE, ".vtable");\r
341                                 directives [".vtentry"] = new ILToken (Token.D_VTENTRY, ".vtentry");\r
342                                 directives [".vtfixup"] = new ILToken (Token.D_VTFIXUP, ".vtfixup");\r
343                                 directives [".zeroinit"] = new ILToken (Token.D_ZEROINIT, ".zeroinit");\r
344 \r
345                                 return directives;\r
346                         }\r
347                 }\r
348 \r
349 \r
350 \r
351                 public static Hashtable Keywords\r
352                 {\r
353                         get {\r
354                                 if (keywords != null) return keywords;\r
355 \r
356                                 AllocTable (ref keywords, 300);\r
357 \r
358                                 keywords ["at"] = new ILToken (Token.K_AT, "at");\r
359                                 keywords ["as"] = new ILToken (Token.K_AS, "as");\r
360                                 keywords ["implicitcom"] = new ILToken (Token.K_IMPLICITCOM, "implicitcom");\r
361                                 keywords ["implicitres"] = new ILToken (Token.K_IMPLICITRES, "implicitres");\r
362                                 keywords ["noappdomain"] = new ILToken (Token.K_NOAPPDOMAIN, "noappdomain");\r
363                                 keywords ["noprocess"] = new ILToken (Token.K_NOPROCESS, "noprocess");\r
364                                 keywords ["nomachine"] = new ILToken (Token.K_NOMACHINE, "nomachine");\r
365                                 keywords ["extern"] = new ILToken (Token.K_EXTERN, "extern");\r
366                                 keywords ["instance"] = new ILToken (Token.K_INSTANCE, "instance");\r
367                                 keywords ["explicit"] = new ILToken (Token.K_EXPLICIT, "explicit");\r
368                                 keywords ["default"] = new ILToken (Token.K_DEFAULT, "default");\r
369                                 keywords ["vararg"] = new ILToken (Token.K_VARARG, "vararg");\r
370                                 keywords ["unmanaged"] = new ILToken (Token.K_UNMANAGED, "unmanaged");\r
371                                 keywords ["cdecl"] = new ILToken (Token.K_CDECL, "cdecl");\r
372                                 keywords ["stdcall"] = new ILToken (Token.K_STDCALL, "stdcall");\r
373                                 keywords ["thiscall"] = new ILToken (Token.K_THISCALL, "thiscall");\r
374                                 keywords ["fastcall"] = new ILToken (Token.K_FASTCALL, "fastcall");\r
375                                 keywords ["marshal"] = new ILToken (Token.K_MARSHAL, "marshal");\r
376                                 keywords ["in"] = new ILToken (Token.K_IN, "in");\r
377                                 keywords ["out"] = new ILToken (Token.K_OUT, "out");\r
378                                 keywords ["opt"] = new ILToken (Token.K_OPT, "opt");\r
379                                 keywords ["lcid"] = new ILToken (Token.K_LCID, "lcid");\r
380                                 keywords ["retval"] = new ILToken (Token.K_RETVAL, "retval");\r
381                                 keywords ["static"] = new ILToken (Token.K_STATIC, "static");\r
382                                 keywords ["public"] = new ILToken (Token.K_PUBLIC, "public");\r
383                                 keywords ["private"] = new ILToken (Token.K_PRIVATE, "private");\r
384                                 keywords ["family"] = new ILToken (Token.K_FAMILY, "family");\r
385                                 keywords ["initonly"] = new ILToken (Token.K_INITONLY, "initonly");\r
386                                 keywords ["rtspecialname"] = new ILToken (Token.K_RTSPECIALNAME, "rtspecialname");\r
387                                 keywords ["specialname"] = new ILToken (Token.K_SPECIALNAME, "specialname");\r
388                                 keywords ["assembly"] = new ILToken (Token.K_ASSEMBLY, "assembly");\r
389                                 keywords ["famandassem"] = new ILToken (Token.K_FAMANDASSEM, "famandassem");\r
390                                 keywords ["famorassem"] = new ILToken (Token.K_FAMORASSEM, "famorassem");\r
391                                 keywords ["privatescope"] = new ILToken (Token.K_PRIVATESCOPE, "privatescope");\r
392                                 keywords ["literal"] = new ILToken (Token.K_LITERAL, "literal");\r
393                                 keywords ["notserialized"] = new ILToken (Token.K_NOTSERIALIZED, "notserialized");\r
394                                 keywords ["value"] = new ILToken (Token.K_VALUE, "value");\r
395                                 keywords ["not_in_gc_heap"] = new ILToken (Token.K_NOT_IN_GC_HEAP, "not_in_gc_heap");\r
396                                 keywords ["interface"] = new ILToken (Token.K_INTERFACE, "interface");\r
397                                 keywords ["sealed"] = new ILToken (Token.K_SEALED, "sealed");\r
398                                 keywords ["abstract"] = new ILToken (Token.K_ABSTRACT, "abstract");\r
399                                 keywords ["auto"] = new ILToken (Token.K_AUTO, "auto");\r
400                                 keywords ["sequential"] = new ILToken (Token.K_SEQUENTIAL, "sequential");\r
401                                 keywords ["ansi"] = new ILToken (Token.K_ANSI, "ansi");\r
402                                 keywords ["unicode"] = new ILToken (Token.K_UNICODE, "unicode");\r
403                                 keywords ["autochar"] = new ILToken (Token.K_AUTOCHAR, "autochar");\r
404                                 keywords ["import"] = new ILToken (Token.K_IMPORT, "import");\r
405                                 keywords ["serializable"] = new ILToken (Token.K_SERIALIZABLE, "serializable");\r
406                                 keywords ["nested"] = new ILToken (Token.K_NESTED, "nested");\r
407                                 keywords ["lateinit"] = new ILToken (Token.K_LATEINIT, "lateinit");\r
408                                 keywords ["extends"] = new ILToken (Token.K_EXTENDS, "extends");\r
409                                 keywords ["implements"] = new ILToken (Token.K_IMPLEMENTS, "implements");\r
410                                 keywords ["final"] = new ILToken (Token.K_FINAL, "final");\r
411                                 keywords ["virtual"] = new ILToken (Token.K_VIRTUAL, "virtual");\r
412                                 keywords ["hidebysig"] = new ILToken (Token.K_HIDEBYSIG, "hidebysig");\r
413                                 keywords ["newslot"] = new ILToken (Token.K_NEWSLOT, "newslot");\r
414                                 keywords ["unmanagedexp"] = new ILToken (Token.K_UNMANAGEDEXP, "unmanagedexp");\r
415                                 keywords ["pinvokeimpl"] = new ILToken (Token.K_PINVOKEIMPL, "pinvokeimpl");\r
416                                 keywords ["nomangle"] = new ILToken (Token.K_NOMANGLE, "nomangle");\r
417                                 keywords ["ole"] = new ILToken (Token.K_OLE, "ole");\r
418                                 keywords ["lasterr"] = new ILToken (Token.K_LASTERR, "lasterr");\r
419                                 keywords ["winapi"] = new ILToken (Token.K_WINAPI, "winapi");\r
420                                 keywords ["native"] = new ILToken (Token.K_NATIVE, "native");\r
421                                 keywords ["il"] = new ILToken (Token.K_IL, "il");\r
422                                 keywords ["cil"] = new ILToken (Token.K_CIL, "cil");\r
423                                 keywords ["optil"] = new ILToken (Token.K_OPTIL, "optil");\r
424                                 keywords ["managed"] = new ILToken (Token.K_MANAGED, "managed");\r
425                                 keywords ["forwardref"] = new ILToken (Token.K_FORWARDREF, "forwardref");\r
426                                 keywords ["runtime"] = new ILToken (Token.K_RUNTIME, "runtime");\r
427                                 keywords ["internalcall"] = new ILToken (Token.K_INTERNALCALL, "internalcall");\r
428                                 keywords ["synchronized"] = new ILToken (Token.K_SYNCHRONIZED, "synchronized");\r
429                                 keywords ["noinlining"] = new ILToken (Token.K_NOINLINING, "noinlining");\r
430                                 keywords ["custom"] = new ILToken (Token.K_CUSTOM, "custom");\r
431                                 keywords ["fixed"] = new ILToken (Token.K_FIXED, "fixed");\r
432                                 keywords ["sysstring"] = new ILToken (Token.K_SYSSTRING, "sysstring");\r
433                                 keywords ["array"] = new ILToken (Token.K_ARRAY, "array");\r
434                                 keywords ["variant"] = new ILToken (Token.K_VARIANT, "variant");\r
435                                 keywords ["currency"] = new ILToken (Token.K_CURRENCY, "currency");\r
436                                 keywords ["syschar"] = new ILToken (Token.K_SYSCHAR, "syschar");\r
437                                 keywords ["void"] = new ILToken (Token.K_VOID, "void");\r
438                                 keywords ["bool"] = new ILToken (Token.K_BOOL, "bool");\r
439                                 keywords ["int8"] = new ILToken (Token.K_INT8, "int8");\r
440                                 keywords ["int16"] = new ILToken (Token.K_INT16, "int16");\r
441                                 keywords ["int32"] = new ILToken (Token.K_INT32, "int32");\r
442                                 keywords ["int64"] = new ILToken (Token.K_INT64, "int64");\r
443                                 keywords ["float32"] = new ILToken (Token.K_FLOAT32, "float32");\r
444                                 keywords ["float64"] = new ILToken (Token.K_FLOAT64, "float64");\r
445                                 keywords ["error"] = new ILToken (Token.K_ERROR, "error");\r
446                                 keywords ["unsigned"] = new ILToken (Token.K_UNSIGNED, "unsigned");\r
447                                 keywords ["decimal"] = new ILToken (Token.K_DECIMAL, "decimal");\r
448                                 keywords ["date"] = new ILToken (Token.K_DATE, "date");\r
449                                 keywords ["bstr"] = new ILToken (Token.K_BSTR, "bstr");\r
450                                 keywords ["lpstr"] = new ILToken (Token.K_LPSTR, "lpstr");\r
451                                 keywords ["lpwstr"] = new ILToken (Token.K_LPWSTR, "lpwstr");\r
452                                 keywords ["lptstr"] = new ILToken (Token.K_LPTSTR, "lptstr");\r
453                                 keywords ["objectref"] = new ILToken (Token.K_OBJECTREF, "objectref");\r
454                                 keywords ["iunknown"] = new ILToken (Token.K_IUNKNOWN, "iunknown");\r
455                                 keywords ["idispatch"] = new ILToken (Token.K_IDISPATCH, "idispatch");\r
456                                 keywords ["struct"] = new ILToken (Token.K_STRUCT, "struct");\r
457                                 keywords ["safearray"] = new ILToken (Token.K_SAFEARRAY, "safearray");\r
458                                 keywords ["int"] = new ILToken (Token.K_INT, "int");\r
459                                 keywords ["byvalstr"] = new ILToken (Token.K_BYVALSTR, "byvalstr");\r
460                                 keywords ["tbstr"] = new ILToken (Token.K_TBSTR, "tbstr");\r
461                                 keywords ["lpvoid"] = new ILToken (Token.K_LPVOID, "lpvoid");\r
462                                 keywords ["any"] = new ILToken (Token.K_ANY, "any");\r
463                                 keywords ["float"] = new ILToken (Token.K_FLOAT, "float");\r
464                                 keywords ["lpstruct"] = new ILToken (Token.K_LPSTRUCT, "lpstruct");\r
465                                 keywords ["null"] = new ILToken (Token.K_NULL, "null");\r
466                                 //              keywords ["ptr"] = new ILToken (Token.K_PTR, "ptr");\r
467                                 keywords ["vector"] = new ILToken (Token.K_VECTOR, "vector");\r
468                                 keywords ["hresult"] = new ILToken (Token.K_HRESULT, "hresult");\r
469                                 keywords ["carray"] = new ILToken (Token.K_CARRAY, "carray");\r
470                                 keywords ["userdefined"] = new ILToken (Token.K_USERDEFINED, "userdefined");\r
471                                 keywords ["record"] = new ILToken (Token.K_RECORD, "record");\r
472                                 keywords ["filetime"] = new ILToken (Token.K_FILETIME, "filetime");\r
473                                 keywords ["blob"] = new ILToken (Token.K_BLOB, "blob");\r
474                                 keywords ["stream"] = new ILToken (Token.K_STREAM, "stream");\r
475                                 keywords ["storage"] = new ILToken (Token.K_STORAGE, "storage");\r
476                                 keywords ["streamed_object"] = new ILToken (Token.K_STREAMED_OBJECT, "streamed_object");\r
477                                 keywords ["stored_object"] = new ILToken (Token.K_STORED_OBJECT, "stored_object");\r
478                                 keywords ["blob_object"] = new ILToken (Token.K_BLOB_OBJECT, "blob_object");\r
479                                 keywords ["cf"] = new ILToken (Token.K_CF, "cf");\r
480                                 keywords ["clsid"] = new ILToken (Token.K_CLSID, "clsid");\r
481                                 keywords ["method"] = new ILToken (Token.K_METHOD, "method");\r
482                                 keywords ["class"] = new ILToken (Token.K_CLASS, "class");\r
483                                 keywords ["pinned"] = new ILToken (Token.K_PINNED, "pinned");\r
484                                 keywords ["modreq"] = new ILToken (Token.K_MODREQ, "modreq");\r
485                                 keywords ["modopt"] = new ILToken (Token.K_MODOPT, "modopt");\r
486                                 keywords ["typedref"] = new ILToken (Token.K_TYPEDREF, "typedref");\r
487                                 keywords ["refany"] = new ILToken (Token.K_TYPEDREF, "typedref");\r
488                                 keywords ["wchar"] = new ILToken (Token.K_WCHAR, "wchar");\r
489                                 keywords ["char"] = new ILToken (Token.K_CHAR, "char");\r
490                                 keywords ["fromunmanaged"] = new ILToken (Token.K_FROMUNMANAGED, "fromunmanaged");\r
491                                 keywords ["callmostderived"] = new ILToken (Token.K_CALLMOSTDERIVED, "callmostderived");\r
492                                 keywords ["bytearray"] = new ILToken (Token.K_BYTEARRAY, "bytearray");\r
493                                 keywords ["with"] = new ILToken (Token.K_WITH, "with");\r
494                                 keywords ["init"] = new ILToken (Token.K_INIT, "init");\r
495                                 keywords ["to"] = new ILToken (Token.K_TO, "to");\r
496                                 keywords ["catch"] = new ILToken (Token.K_CATCH, "catch");\r
497                                 keywords ["filter"] = new ILToken (Token.K_FILTER, "filter");\r
498                                 keywords ["finally"] = new ILToken (Token.K_FINALLY, "finally");\r
499                                 keywords ["fault"] = new ILToken (Token.K_FAULT, "fault");\r
500                                 keywords ["handler"] = new ILToken (Token.K_HANDLER, "handler");\r
501                                 keywords ["tls"] = new ILToken (Token.K_TLS, "tls");\r
502                                 keywords ["field"] = new ILToken (Token.K_FIELD, "field");\r
503                                 keywords ["request"] = new ILToken (Token.K_REQUEST, "request");\r
504                                 keywords ["demand"] = new ILToken (Token.K_DEMAND, "demand");\r
505                                 keywords ["assert"] = new ILToken (Token.K_ASSERT, "assert");\r
506                                 keywords ["deny"] = new ILToken (Token.K_DENY, "deny");\r
507                                 keywords ["permitonly"] = new ILToken (Token.K_PERMITONLY, "permitonly");\r
508                                 keywords ["linkcheck"] = new ILToken (Token.K_LINKCHECK, "linkcheck");\r
509                                 keywords ["inheritcheck"] = new ILToken (Token.K_INHERITCHECK, "inheritcheck");\r
510                                 keywords ["reqmin"] = new ILToken (Token.K_REQMIN, "reqmin");\r
511                                 keywords ["reqopt"] = new ILToken (Token.K_REQOPT, "reqopt");\r
512                                 keywords ["reqrefuse"] = new ILToken (Token.K_REQREFUSE, "reqrefuse");\r
513                                 keywords ["prejitgrant"] = new ILToken (Token.K_PREJITGRANT, "prejitgrant");\r
514                                 keywords ["prejitdeny"] = new ILToken (Token.K_PREJITDENY, "prejitdeny");\r
515                                 keywords ["noncasdemand"] = new ILToken (Token.K_NONCASDEMAND, "noncasdemand");\r
516                                 keywords ["noncaslinkdemand"] = new ILToken (Token.K_NONCASLINKDEMAND, "noncaslinkdemand");\r
517                                 keywords ["noncasinheritance"] = new ILToken (Token.K_NONCASINHERITANCE, "noncasinheritance");\r
518                                 keywords ["readonly"] = new ILToken (Token.K_READONLY, "readonly");\r
519                                 keywords ["nometadata"] = new ILToken (Token.K_NOMETADATA, "nometadata");\r
520                                 keywords ["algorithm"] = new ILToken (Token.K_ALGORITHM, "algorithm");\r
521                                 keywords ["fullorigin"] = new ILToken (Token.K_FULLORIGIN, "fullorigin");\r
522                                 // keywords ["nan"] = new ILToken (Token.K_NAN, "nan");\r
523                                 // keywords ["inf"] = new ILToken (Token.K_INF, "inf");\r
524                                 keywords ["publickey"] = new ILToken (Token.K_PUBLICKEY, "publickey");\r
525                                 keywords ["enablejittracking"] = new ILToken (Token.K_ENABLEJITTRACKING, "enablejittracking");\r
526                                 keywords ["disablejitoptimizer"] = new ILToken (Token.K_DISABLEJITOPTIMIZER, "disablejitoptimizer");\r
527                                 keywords ["preservesig"] = new ILToken (Token.K_PRESERVESIG, "preservesig");\r
528                                 keywords ["beforefieldinit"] = new ILToken (Token.K_BEFOREFIELDINIT, "beforefieldinit");\r
529                                 keywords ["alignment"] = new ILToken (Token.K_ALIGNMENT, "alignment");\r
530                                 keywords ["nullref"] = new ILToken (Token.K_NULLREF, "nullref");\r
531                                 keywords ["valuetype"] = new ILToken (Token.K_VALUETYPE, "valuetype");\r
532                                 keywords ["Compilercontrolled"] = new ILToken (Token.K_COMPILERCONTROLLED, "Compilercontrolled");\r
533                                 keywords ["reqsecobj"] = new ILToken (Token.K_REQSECOBJ, "reqsecobj");\r
534                                 keywords ["enum"] = new ILToken (Token.K_ENUM, "enum");\r
535                                 keywords ["object"] = new ILToken (Token.K_OBJECT, "object");\r
536                                 keywords ["string"] = new ILToken (Token.K_STRING, "string");\r
537                                 keywords ["true"] = new ILToken (Token.K_TRUE, "true");\r
538                                 keywords ["false"] = new ILToken (Token.K_FALSE, "false");\r
539 \r
540                                 return keywords;\r
541                         }\r
542                 }\r
543 \r
544 \r
545 \r
546 \r
547         } // class ILTables\r
548 \r
549 \r
550 \r
551 \r
552 } // namespace Mono.ILASM\r