1 | // Licensed to the .NET Foundation under one or more agreements. |
2 | // The .NET Foundation licenses this file to you under the MIT license. |
3 | // See the LICENSE file in the project root for more information. |
4 | // |
5 | // |
6 | // COM+ IL keywords, symbols and values |
7 | // |
8 | // This is the master table used in ILASM (asmparse.y) |
9 | // and ILDASM (dis.cpp) |
10 | // symbols and values are defined in asmparse.y |
11 | // and not used in dis.cpp |
12 | // |
13 | |
14 | #ifndef __IL_KYWD_H_ |
15 | #define __IL_KYWD_H_ |
16 | |
17 | KYWD( "void" , VOID_, NO_VALUE ) |
18 | KYWD( "bool" , BOOL_, NO_VALUE ) |
19 | KYWD( "char" , CHAR_, NO_VALUE ) |
20 | KYWD( "wchar" , CHAR_, NO_VALUE ) |
21 | KYWD( "int" , INT_, NO_VALUE ) |
22 | KYWD( "int8" , INT8_, NO_VALUE ) |
23 | KYWD( "int16" , INT16_, NO_VALUE ) |
24 | KYWD( "int32" , INT32_, NO_VALUE ) |
25 | KYWD( "int64" , INT64_, NO_VALUE ) |
26 | KYWD( "uint" , UINT_, NO_VALUE ) |
27 | KYWD( "uint8" , UINT8_, NO_VALUE ) |
28 | KYWD( "uint16" , UINT16_, NO_VALUE ) |
29 | KYWD( "uint32" , UINT32_, NO_VALUE ) |
30 | KYWD( "uint64" , UINT64_, NO_VALUE ) |
31 | KYWD( "float" , FLOAT_, NO_VALUE ) |
32 | KYWD( "float32" , FLOAT32_, NO_VALUE ) |
33 | KYWD( "float64" , FLOAT64_, NO_VALUE ) |
34 | KYWD( "refany" , TYPEDREF_, NO_VALUE ) |
35 | KYWD( "typedref" , TYPEDREF_, NO_VALUE ) |
36 | KYWD( "object" , OBJECT_, NO_VALUE ) |
37 | KYWD( "string" , STRING_, NO_VALUE ) |
38 | KYWD( "native" , NATIVE_, NO_VALUE ) |
39 | KYWD( "unsigned" , UNSIGNED_, NO_VALUE ) |
40 | KYWD( "value" , VALUE_, NO_VALUE ) |
41 | KYWD( "valuetype" , VALUETYPE_, NO_VALUE ) |
42 | KYWD( "class" , CLASS_, NO_VALUE ) |
43 | KYWD( "vararg" , VARARG_, NO_VALUE ) |
44 | KYWD( "default" , DEFAULT_, NO_VALUE ) |
45 | KYWD( "stdcall" , STDCALL_, NO_VALUE ) |
46 | KYWD( "thiscall" , THISCALL_, NO_VALUE ) |
47 | KYWD( "fastcall" , FASTCALL_, NO_VALUE ) |
48 | KYWD( "unmanaged" , UNMANAGED_, NO_VALUE ) |
49 | KYWD( "beforefieldinit" ,BEFOREFIELDINIT_, NO_VALUE ) |
50 | KYWD( "instance" , INSTANCE_, NO_VALUE ) |
51 | KYWD( "filter" , FILTER_, NO_VALUE ) |
52 | KYWD( "catch" , CATCH_, NO_VALUE ) |
53 | KYWD( "static" , STATIC_ , NO_VALUE ) |
54 | KYWD( "public" , PUBLIC_, NO_VALUE ) |
55 | KYWD( "private" , PRIVATE_, NO_VALUE ) |
56 | KYWD( "forwarder" , FORWARDER_, NO_VALUE ) |
57 | KYWD( "synchronized" , SYNCHRONIZED_, NO_VALUE ) |
58 | KYWD( "interface" , INTERFACE_, NO_VALUE ) |
59 | KYWD( "extends" , EXTENDS_, NO_VALUE ) |
60 | KYWD( "implements" , IMPLEMENTS_, NO_VALUE ) |
61 | KYWD( "handler" , HANDLER_, NO_VALUE ) |
62 | KYWD( "finally" , FINALLY_, NO_VALUE ) |
63 | KYWD( "fault" , FAULT_, NO_VALUE ) |
64 | KYWD( "to" , TO_, NO_VALUE ) |
65 | KYWD( "abstract" , ABSTRACT_, NO_VALUE ) |
66 | KYWD( "auto" , AUTO_, NO_VALUE ) |
67 | KYWD( "sequential" , SEQUENTIAL_, NO_VALUE ) |
68 | KYWD( "explicit" , EXPLICIT_, NO_VALUE ) |
69 | KYWD( "ansi" , ANSI_, NO_VALUE ) |
70 | KYWD( "unicode" , UNICODE_, NO_VALUE ) |
71 | KYWD( "autochar" , AUTOCHAR_, NO_VALUE ) |
72 | KYWD( "import" , IMPORT_, NO_VALUE ) |
73 | KYWD( "enum" , ENUM_, NO_VALUE ) |
74 | KYWD( "virtual" , VIRTUAL_, NO_VALUE ) |
75 | KYWD( "strict" , STRICT_, NO_VALUE ) |
76 | KYWD( "il" , CIL_, NO_VALUE ) |
77 | KYWD( "cil" , CIL_, NO_VALUE ) |
78 | KYWD( "optil" , OPTIL_, NO_VALUE ) |
79 | KYWD( "managed" , MANAGED_, NO_VALUE ) |
80 | KYWD( "preservesig" , PRESERVESIG_, NO_VALUE ) |
81 | KYWD( "runtime" , RUNTIME_, NO_VALUE ) |
82 | KYWD( "method" , METHOD_, NO_VALUE ) |
83 | KYWD( "field" , FIELD_, NO_VALUE ) |
84 | KYWD( "property" , PROPERTY_, NO_VALUE ) |
85 | KYWD( "bytearray" , BYTEARRAY_, NO_VALUE ) |
86 | KYWD( "final" , FINAL_, NO_VALUE ) |
87 | KYWD( "sealed" , SEALED_, NO_VALUE ) |
88 | KYWD( "specialname" , SPECIALNAME_, NO_VALUE ) |
89 | KYWD( "family" , FAMILY_, NO_VALUE ) |
90 | KYWD( "assembly" , ASSEMBLY_, NO_VALUE ) |
91 | KYWD( "famandassem" , FAMANDASSEM_, NO_VALUE ) |
92 | KYWD( "famorassem" , FAMORASSEM_, NO_VALUE ) |
93 | KYWD( "privatescope" , PRIVATESCOPE_, NO_VALUE ) |
94 | KYWD( "nested" , NESTED_, NO_VALUE ) |
95 | KYWD( "hidebysig" , HIDEBYSIG_, NO_VALUE ) |
96 | KYWD( "newslot" , NEWSLOT_, NO_VALUE ) |
97 | KYWD( "aggressiveinlining" ,AGGRESSIVEINLINING_,NO_VALUE ) |
98 | KYWD( "rtspecialname" , RTSPECIALNAME_, NO_VALUE ) |
99 | KYWD( "pinvokeimpl" , PINVOKEIMPL_, NO_VALUE ) |
100 | KYWD( "unmanagedexp" , UNMANAGEDEXP_, NO_VALUE ) |
101 | KYWD( "reqsecobj" , REQSECOBJ_, NO_VALUE ) |
102 | KYWD( ".ctor" , _CTOR, NO_VALUE ) |
103 | KYWD( ".cctor" , _CCTOR, NO_VALUE ) |
104 | KYWD( "initonly" , INITONLY_, NO_VALUE ) |
105 | KYWD( "literal" , LITERAL_, NO_VALUE ) |
106 | KYWD( "notserialized" , NOTSERIALIZED_, NO_VALUE ) |
107 | KYWD( "forwardref" , FORWARDREF_, NO_VALUE ) |
108 | KYWD( "internalcall" , INTERNALCALL_, NO_VALUE ) |
109 | KYWD( "noinlining" , NOINLINING_, NO_VALUE ) |
110 | KYWD( "nooptimization" , NOOPTIMIZATION_, NO_VALUE ) |
111 | KYWD( "aggressiveoptimization" , AGGRESSIVEOPTIMIZATION_, NO_VALUE ) |
112 | KYWD( "nomangle" , NOMANGLE_, NO_VALUE ) |
113 | KYWD( "lasterr" , LASTERR_, NO_VALUE ) |
114 | KYWD( "winapi" , WINAPI_, NO_VALUE ) |
115 | KYWD( "cdecl" , CDECL_, NO_VALUE ) |
116 | KYWD( "as" , AS_, NO_VALUE ) |
117 | KYWD( "pinned" , PINNED_, NO_VALUE ) |
118 | KYWD( "modreq" , MODREQ_, NO_VALUE ) |
119 | KYWD( "modopt" , MODOPT_, NO_VALUE ) |
120 | KYWD( "serializable" , SERIALIZABLE_, NO_VALUE ) |
121 | KYWD( "at" , AT_, NO_VALUE ) |
122 | KYWD( "tls" , TLS_, NO_VALUE ) |
123 | KYWD( "true" , TRUE_, NO_VALUE ) |
124 | KYWD( "false" , FALSE_, NO_VALUE ) |
125 | KYWD( "on" , ON_, NO_VALUE ) |
126 | KYWD( "off" , OFF_, NO_VALUE ) |
127 | KYWD( "bestfit" , BESTFIT_, NO_VALUE ) |
128 | KYWD( "charmaperror" , CHARMAPERROR_, NO_VALUE ) |
129 | |
130 | /* assembler directives */ |
131 | KYWD( ".class" , _CLASS, NO_VALUE ) |
132 | KYWD( ".this" , _THIS, NO_VALUE ) |
133 | KYWD( ".base" , _BASE, NO_VALUE ) |
134 | KYWD( ".nester" , _NESTER, NO_VALUE ) |
135 | KYWD( ".namespace" , _NAMESPACE, NO_VALUE ) |
136 | KYWD( ".method" , _METHOD, NO_VALUE ) |
137 | KYWD( ".field" , _FIELD, NO_VALUE ) |
138 | KYWD( ".emitbyte" , _EMITBYTE, NO_VALUE ) |
139 | KYWD( ".try" , _TRY, NO_VALUE ) |
140 | KYWD( ".maxstack" , _MAXSTACK, NO_VALUE ) |
141 | KYWD( ".locals" , _LOCALS, NO_VALUE ) |
142 | KYWD( ".entrypoint" , _ENTRYPOINT, NO_VALUE ) |
143 | KYWD( ".zeroinit" , _ZEROINIT, NO_VALUE ) |
144 | KYWD( ".data" , _DATA, NO_VALUE ) |
145 | |
146 | KYWD( ".event" , _EVENT, NO_VALUE ) |
147 | KYWD( ".addon" , _ADDON, NO_VALUE ) |
148 | KYWD( ".removeon" , _REMOVEON, NO_VALUE ) |
149 | KYWD( ".fire" , _FIRE, NO_VALUE ) |
150 | KYWD( ".other" , _OTHER, NO_VALUE ) |
151 | |
152 | KYWD( ".property" , _PROPERTY, NO_VALUE ) |
153 | KYWD( ".set" , _SET, NO_VALUE ) |
154 | KYWD( ".get" , _GET, NO_VALUE ) |
155 | |
156 | KYWD( ".permission" , _PERMISSION, NO_VALUE ) |
157 | KYWD( ".permissionset" , _PERMISSIONSET, NO_VALUE ) |
158 | |
159 | /* security actions */ |
160 | KYWD( "request" , REQUEST_, NO_VALUE ) |
161 | KYWD( "demand" , DEMAND_, NO_VALUE ) |
162 | KYWD( "assert" , ASSERT_, NO_VALUE ) |
163 | KYWD( "deny" , DENY_, NO_VALUE ) |
164 | KYWD( "permitonly" , PERMITONLY_, NO_VALUE ) |
165 | KYWD( "linkcheck" , LINKCHECK_, NO_VALUE ) |
166 | KYWD( "inheritcheck" , INHERITCHECK_, NO_VALUE ) |
167 | KYWD( "reqmin" , REQMIN_, NO_VALUE ) |
168 | KYWD( "reqopt" , REQOPT_, NO_VALUE ) |
169 | KYWD( "reqrefuse" , REQREFUSE_, NO_VALUE ) |
170 | KYWD( "prejitgrant" , PREJITGRANT_, NO_VALUE ) |
171 | KYWD( "prejitdeny" , PREJITDENY_, NO_VALUE ) |
172 | KYWD( "noncasdemand" , NONCASDEMAND_, NO_VALUE ) |
173 | KYWD( "noncaslinkdemand" ,NONCASLINKDEMAND_, NO_VALUE ) |
174 | KYWD( "noncasinheritance" ,NONCASINHERITANCE_,NO_VALUE ) |
175 | |
176 | /* extern debug data specifier */ |
177 | KYWD( ".line" , _LINE, NO_VALUE ) |
178 | KYWD( ".language" , _LANGUAGE, NO_VALUE ) |
179 | KYWD( "#line" , P_LINE, NO_VALUE ) |
180 | /* custom value specifier */ |
181 | KYWD( ".custom" , _CUSTOM, NO_VALUE ) |
182 | /* IL method attribute */ |
183 | KYWD( "init" , INIT_, NO_VALUE ) |
184 | /* Class layout directives */ |
185 | KYWD( ".size" , _SIZE, NO_VALUE ) |
186 | KYWD( ".pack" , _PACK, NO_VALUE ) |
187 | /* Manifest-related keywords */ |
188 | KYWD( ".file" , _FILE, NO_VALUE ) |
189 | KYWD( "nometadata" , NOMETADATA_, NO_VALUE ) |
190 | KYWD( ".hash" , _HASH, NO_VALUE ) |
191 | KYWD( ".assembly" , _ASSEMBLY, NO_VALUE ) |
192 | KYWD( "retargetable" , RETARGETABLE_, NO_VALUE ) |
193 | KYWD( "windowsruntime" , WINDOWSRUNTIME_, NO_VALUE ) |
194 | KYWD( "noplatform" , NOPLATFORM_, NO_VALUE ) |
195 | KYWD( "legacy" , LEGACY_, NO_VALUE ) |
196 | KYWD( "library" , LIBRARY_, NO_VALUE ) |
197 | KYWD( "x86" , X86_, NO_VALUE ) |
198 | KYWD( "amd64" , AMD64_, NO_VALUE ) |
199 | KYWD( "arm" , ARM_, NO_VALUE ) |
200 | KYWD( "arm64" , ARM64_, NO_VALUE ) |
201 | KYWD( ".publickey" , _PUBLICKEY, NO_VALUE ) |
202 | KYWD( ".publickeytoken" ,_PUBLICKEYTOKEN, NO_VALUE ) |
203 | KYWD( "algorithm" , ALGORITHM_, NO_VALUE ) |
204 | KYWD( ".ver" , _VER, NO_VALUE ) |
205 | KYWD( ".locale" , _LOCALE, NO_VALUE ) |
206 | KYWD( "extern" , EXTERN_, NO_VALUE ) |
207 | KYWD( ".export" , _EXPORT, NO_VALUE ) |
208 | KYWD( ".manifestres" , _MRESOURCE, NO_VALUE ) |
209 | KYWD( ".mresource" , _MRESOURCE, NO_VALUE ) |
210 | KYWD( ".module" , _MODULE, NO_VALUE ) |
211 | /* Field marshaling keywords */ |
212 | KYWD( "marshal" , MARSHAL_, NO_VALUE ) |
213 | KYWD( "custom" , CUSTOM_, NO_VALUE ) |
214 | KYWD( "sysstring" , SYSSTRING_, NO_VALUE ) |
215 | KYWD( "fixed" , FIXED_, NO_VALUE ) |
216 | KYWD( "variant" , VARIANT_, NO_VALUE ) |
217 | KYWD( "currency" , CURRENCY_, NO_VALUE ) |
218 | KYWD( "syschar" , SYSCHAR_, NO_VALUE ) |
219 | KYWD( "decimal" , DECIMAL_, NO_VALUE ) |
220 | KYWD( "date" , DATE_, NO_VALUE ) |
221 | KYWD( "bstr" , BSTR_, NO_VALUE ) |
222 | KYWD( "tbstr" , TBSTR_, NO_VALUE ) |
223 | KYWD( "lpstr" , LPSTR_, NO_VALUE ) |
224 | KYWD( "lpwstr" , LPWSTR_, NO_VALUE ) |
225 | KYWD( "lptstr" , LPTSTR_, NO_VALUE ) |
226 | KYWD( "objectref" , OBJECTREF_, NO_VALUE ) |
227 | KYWD( "iunknown" , IUNKNOWN_, NO_VALUE ) |
228 | KYWD( "idispatch" , IDISPATCH_, NO_VALUE ) |
229 | KYWD( "iidparam" , IIDPARAM_, NO_VALUE ) |
230 | KYWD( "struct" , STRUCT_, NO_VALUE ) |
231 | KYWD( "safearray" , SAFEARRAY_, NO_VALUE ) |
232 | KYWD( "byvalstr" , BYVALSTR_, NO_VALUE ) |
233 | KYWD( "lpvoid" , LPVOID_, NO_VALUE ) |
234 | KYWD( "any" , ANY_, NO_VALUE ) |
235 | KYWD( "array" , ARRAY_, NO_VALUE ) |
236 | KYWD( "lpstruct" , LPSTRUCT_, NO_VALUE ) |
237 | /* VTable fixup keywords */ |
238 | KYWD( ".vtfixup" , _VTFIXUP, NO_VALUE ) |
239 | KYWD( "fromunmanaged" , FROMUNMANAGED_, NO_VALUE ) |
240 | KYWD( "retainappdomain" ,RETAINAPPDOMAIN_, NO_VALUE ) |
241 | KYWD( "callmostderived" ,CALLMOSTDERIVED_, NO_VALUE ) |
242 | KYWD( ".vtentry" , _VTENTRY, NO_VALUE ) |
243 | /* Parameter attributes */ |
244 | KYWD( "in" , IN_, NO_VALUE ) |
245 | KYWD( "out" , OUT_, NO_VALUE ) |
246 | KYWD( "opt" , OPT_, NO_VALUE ) |
247 | KYWD( ".param" , PARAM_, NO_VALUE ) |
248 | /* Method implementations */ |
249 | KYWD( ".override" , _OVERRIDE, NO_VALUE ) |
250 | KYWD( "with" , WITH_, NO_VALUE ) |
251 | /* VariantType keywords */ |
252 | KYWD( "null" , NULL_, NO_VALUE ) |
253 | KYWD( "error" , ERROR_, NO_VALUE ) |
254 | KYWD( "hresult" , HRESULT_, NO_VALUE ) |
255 | KYWD( "carray" , CARRAY_, NO_VALUE ) |
256 | KYWD( "userdefined" , USERDEFINED_, NO_VALUE ) |
257 | KYWD( "record" , RECORD_, NO_VALUE ) |
258 | KYWD( "filetime" , FILETIME_, NO_VALUE ) |
259 | KYWD( "blob" , BLOB_, NO_VALUE ) |
260 | KYWD( "stream" , STREAM_, NO_VALUE ) |
261 | KYWD( "storage" , STORAGE_, NO_VALUE ) |
262 | KYWD( "streamed_object" ,STREAMED_OBJECT_, NO_VALUE ) |
263 | KYWD( "stored_object" , STORED_OBJECT_, NO_VALUE ) |
264 | KYWD( "blob_object" , BLOB_OBJECT_, NO_VALUE ) |
265 | KYWD( "cf" , CF_, NO_VALUE ) |
266 | KYWD( "clsid" , CLSID_, NO_VALUE ) |
267 | KYWD( "vector" , VECTOR_, NO_VALUE ) |
268 | /* Null reference keyword for InitOpt */ |
269 | KYWD( "nullref" , NULLREF_, NO_VALUE ) |
270 | KYWD( "type" , TYPE_, NO_VALUE ) |
271 | KYWD( ".interfaceimpl" , _INTERFACEIMPL, NO_VALUE ) |
272 | /* Header flags keywords */ |
273 | KYWD( ".subsystem" , _SUBSYSTEM, NO_VALUE ) |
274 | KYWD( ".corflags" , _CORFLAGS, NO_VALUE ) |
275 | KYWD( "alignment" , ALIGNMENT_, NO_VALUE ) |
276 | KYWD( ".imagebase" , _IMAGEBASE, NO_VALUE ) |
277 | KYWD( ".stackreserve" , _STACKRESERVE, NO_VALUE ) |
278 | /* Explicit binary flag specification keywords */ |
279 | KYWD( "flags" , FLAGS_, NO_VALUE ) |
280 | KYWD( "callconv" , CALLCONV_, NO_VALUE ) |
281 | KYWD( "mdtoken" , MDTOKEN_, NO_VALUE ) |
282 | |
283 | /* Some ILASM-specific syntactic sugar */ |
284 | KYWD( ".typedef" , _TYPEDEF, NO_VALUE ) |
285 | KYWD( ".template" , _TEMPLATE, NO_VALUE ) |
286 | KYWD( ".typelist" , _TYPELIST, NO_VALUE ) |
287 | KYWD( ".mscorlib" , _MSCORLIB, NO_VALUE ) |
288 | |
289 | /* Compilation control keywords */ |
290 | KYWD( "#define" , P_DEFINE, NO_VALUE ) |
291 | KYWD( "#undef" , P_UNDEF, NO_VALUE ) |
292 | KYWD( "#ifdef" , P_IFDEF, NO_VALUE ) |
293 | KYWD( "#ifndef" , P_IFNDEF, NO_VALUE ) |
294 | KYWD( "#else" , P_ELSE, NO_VALUE ) |
295 | KYWD( "#endif" , P_ENDIF, NO_VALUE ) |
296 | KYWD( "#include" , P_INCLUDE, NO_VALUE ) |
297 | |
298 | |
299 | /* Deprecated keywords */ |
300 | KYWD( ".vtable" , _VTABLE, NO_VALUE ) |
301 | |
302 | |
303 | KYWD( "^THE_END^" , 0, NO_VALUE ) |
304 | #endif |
305 | |