Mercurial > projects > ldc
annotate dmd/id.c @ 468:45a67b6f1310
Removed the 'needsstorage' thing from Dsymbol. Arguments are not always given storage when applicable. This is not longer treat specially
in this regard. Code for accessing nested variables and contexts rewritten. Probably more. Fairly well tested.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Mon, 04 Aug 2008 02:59:34 +0200 |
parents | cc40db549aea |
children | a34078905d01 |
rev | line source |
---|---|
1 | 1 // File generated by idgen.c |
2 #include "id.h" | |
3 #include "identifier.h" | |
4 #include "lexer.h" | |
5 Identifier *Id::IUnknown; | |
6 Identifier *Id::Object; | |
7 Identifier *Id::object; | |
8 Identifier *Id::max; | |
9 Identifier *Id::min; | |
10 Identifier *Id::This; | |
11 Identifier *Id::ctor; | |
12 Identifier *Id::dtor; | |
13 Identifier *Id::classInvariant; | |
14 Identifier *Id::unitTest; | |
15 Identifier *Id::init; | |
16 Identifier *Id::size; | |
17 Identifier *Id::__sizeof; | |
18 Identifier *Id::alignof; | |
19 Identifier *Id::mangleof; | |
20 Identifier *Id::stringof; | |
21 Identifier *Id::tupleof; | |
22 Identifier *Id::length; | |
23 Identifier *Id::remove; | |
24 Identifier *Id::ptr; | |
25 Identifier *Id::funcptr; | |
26 Identifier *Id::dollar; | |
27 Identifier *Id::offset; | |
28 Identifier *Id::offsetof; | |
29 Identifier *Id::ModuleInfo; | |
30 Identifier *Id::ClassInfo; | |
31 Identifier *Id::classinfo; | |
32 Identifier *Id::typeinfo; | |
33 Identifier *Id::outer; | |
34 Identifier *Id::Exception; | |
35 Identifier *Id::withSym; | |
36 Identifier *Id::result; | |
37 Identifier *Id::returnLabel; | |
38 Identifier *Id::delegate; | |
39 Identifier *Id::line; | |
40 Identifier *Id::empty; | |
41 Identifier *Id::p; | |
42 Identifier *Id::coverage; | |
336 | 43 Identifier *Id::__vptr; |
44 Identifier *Id::__monitor; | |
1 | 45 Identifier *Id::TypeInfo; |
46 Identifier *Id::TypeInfo_Class; | |
47 Identifier *Id::TypeInfo_Interface; | |
48 Identifier *Id::TypeInfo_Struct; | |
49 Identifier *Id::TypeInfo_Enum; | |
50 Identifier *Id::TypeInfo_Typedef; | |
51 Identifier *Id::TypeInfo_Pointer; | |
52 Identifier *Id::TypeInfo_Array; | |
53 Identifier *Id::TypeInfo_StaticArray; | |
54 Identifier *Id::TypeInfo_AssociativeArray; | |
55 Identifier *Id::TypeInfo_Function; | |
56 Identifier *Id::TypeInfo_Delegate; | |
57 Identifier *Id::TypeInfo_Tuple; | |
58 Identifier *Id::TypeInfo_Const; | |
59 Identifier *Id::TypeInfo_Invariant; | |
60 Identifier *Id::elements; | |
61 Identifier *Id::_arguments_typeinfo; | |
62 Identifier *Id::_arguments; | |
63 Identifier *Id::_argptr; | |
64 Identifier *Id::_match; | |
65 Identifier *Id::LINE; | |
66 Identifier *Id::FILE; | |
67 Identifier *Id::DATE; | |
68 Identifier *Id::TIME; | |
69 Identifier *Id::TIMESTAMP; | |
70 Identifier *Id::VENDOR; | |
71 Identifier *Id::VERSIONX; | |
72 Identifier *Id::nan; | |
73 Identifier *Id::infinity; | |
74 Identifier *Id::dig; | |
75 Identifier *Id::epsilon; | |
76 Identifier *Id::mant_dig; | |
77 Identifier *Id::max_10_exp; | |
78 Identifier *Id::max_exp; | |
79 Identifier *Id::min_10_exp; | |
80 Identifier *Id::min_exp; | |
81 Identifier *Id::re; | |
82 Identifier *Id::im; | |
83 Identifier *Id::C; | |
84 Identifier *Id::D; | |
85 Identifier *Id::Windows; | |
86 Identifier *Id::Pascal; | |
87 Identifier *Id::System; | |
88 Identifier *Id::exit; | |
89 Identifier *Id::success; | |
90 Identifier *Id::failure; | |
91 Identifier *Id::keys; | |
92 Identifier *Id::values; | |
93 Identifier *Id::rehash; | |
94 Identifier *Id::sort; | |
95 Identifier *Id::reverse; | |
96 Identifier *Id::dup; | |
97 Identifier *Id::idup; | |
98 Identifier *Id::___out; | |
99 Identifier *Id::___in; | |
100 Identifier *Id::__int; | |
101 Identifier *Id::__dollar; | |
102 Identifier *Id::__LOCAL_SIZE; | |
103 Identifier *Id::uadd; | |
104 Identifier *Id::neg; | |
105 Identifier *Id::com; | |
106 Identifier *Id::add; | |
107 Identifier *Id::add_r; | |
108 Identifier *Id::sub; | |
109 Identifier *Id::sub_r; | |
110 Identifier *Id::mul; | |
111 Identifier *Id::mul_r; | |
112 Identifier *Id::div; | |
113 Identifier *Id::div_r; | |
114 Identifier *Id::mod; | |
115 Identifier *Id::mod_r; | |
116 Identifier *Id::eq; | |
117 Identifier *Id::cmp; | |
118 Identifier *Id::iand; | |
119 Identifier *Id::iand_r; | |
120 Identifier *Id::ior; | |
121 Identifier *Id::ior_r; | |
122 Identifier *Id::ixor; | |
123 Identifier *Id::ixor_r; | |
124 Identifier *Id::shl; | |
125 Identifier *Id::shl_r; | |
126 Identifier *Id::shr; | |
127 Identifier *Id::shr_r; | |
128 Identifier *Id::ushr; | |
129 Identifier *Id::ushr_r; | |
130 Identifier *Id::cat; | |
131 Identifier *Id::cat_r; | |
132 Identifier *Id::assign; | |
133 Identifier *Id::addass; | |
134 Identifier *Id::subass; | |
135 Identifier *Id::mulass; | |
136 Identifier *Id::divass; | |
137 Identifier *Id::modass; | |
138 Identifier *Id::andass; | |
139 Identifier *Id::orass; | |
140 Identifier *Id::xorass; | |
141 Identifier *Id::shlass; | |
142 Identifier *Id::shrass; | |
143 Identifier *Id::ushrass; | |
144 Identifier *Id::catass; | |
145 Identifier *Id::postinc; | |
146 Identifier *Id::postdec; | |
147 Identifier *Id::index; | |
148 Identifier *Id::indexass; | |
149 Identifier *Id::slice; | |
150 Identifier *Id::sliceass; | |
151 Identifier *Id::call; | |
152 Identifier *Id::cast; | |
153 Identifier *Id::match; | |
154 Identifier *Id::next; | |
155 Identifier *Id::opIn; | |
156 Identifier *Id::opIn_r; | |
157 Identifier *Id::classNew; | |
158 Identifier *Id::classDelete; | |
159 Identifier *Id::apply; | |
160 Identifier *Id::applyReverse; | |
161 Identifier *Id::adDup; | |
162 Identifier *Id::adReverse; | |
163 Identifier *Id::aaLen; | |
164 Identifier *Id::aaKeys; | |
165 Identifier *Id::aaValues; | |
166 Identifier *Id::aaRehash; | |
167 Identifier *Id::lib; | |
168 Identifier *Id::msg; | |
169 Identifier *Id::GNU_asm; | |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
336
diff
changeset
|
170 Identifier *Id::intrinsic; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
336
diff
changeset
|
171 Identifier *Id::va_intrinsic; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
336
diff
changeset
|
172 Identifier *Id::no_typeinfo; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
336
diff
changeset
|
173 Identifier *Id::no_moduleinfo; |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
174 Identifier *Id::Alloca; |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
175 Identifier *Id::vastart; |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
176 Identifier *Id::vacopy; |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
177 Identifier *Id::vaend; |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
178 Identifier *Id::vaarg; |
1 | 179 Identifier *Id::tohash; |
180 Identifier *Id::tostring; | |
181 Identifier *Id::main; | |
182 Identifier *Id::WinMain; | |
183 Identifier *Id::DllMain; | |
184 void Id::initialize() | |
185 { | |
186 IUnknown = Lexer::idPool("IUnknown"); | |
187 Object = Lexer::idPool("Object"); | |
188 object = Lexer::idPool("object"); | |
189 max = Lexer::idPool("max"); | |
190 min = Lexer::idPool("min"); | |
191 This = Lexer::idPool("this"); | |
192 ctor = Lexer::idPool("_ctor"); | |
193 dtor = Lexer::idPool("_dtor"); | |
194 classInvariant = Lexer::idPool("__invariant"); | |
195 unitTest = Lexer::idPool("_unitTest"); | |
196 init = Lexer::idPool("init"); | |
197 size = Lexer::idPool("size"); | |
198 __sizeof = Lexer::idPool("sizeof"); | |
199 alignof = Lexer::idPool("alignof"); | |
200 mangleof = Lexer::idPool("mangleof"); | |
201 stringof = Lexer::idPool("stringof"); | |
202 tupleof = Lexer::idPool("tupleof"); | |
203 length = Lexer::idPool("length"); | |
204 remove = Lexer::idPool("remove"); | |
205 ptr = Lexer::idPool("ptr"); | |
206 funcptr = Lexer::idPool("funcptr"); | |
207 dollar = Lexer::idPool("__dollar"); | |
208 offset = Lexer::idPool("offset"); | |
209 offsetof = Lexer::idPool("offsetof"); | |
210 ModuleInfo = Lexer::idPool("ModuleInfo"); | |
211 ClassInfo = Lexer::idPool("ClassInfo"); | |
212 classinfo = Lexer::idPool("classinfo"); | |
213 typeinfo = Lexer::idPool("typeinfo"); | |
214 outer = Lexer::idPool("outer"); | |
215 Exception = Lexer::idPool("Exception"); | |
216 withSym = Lexer::idPool("__withSym"); | |
217 result = Lexer::idPool("__result"); | |
218 returnLabel = Lexer::idPool("__returnLabel"); | |
219 delegate = Lexer::idPool("delegate"); | |
220 line = Lexer::idPool("line"); | |
221 empty = Lexer::idPool(""); | |
222 p = Lexer::idPool("p"); | |
223 coverage = Lexer::idPool("__coverage"); | |
336 | 224 __vptr = Lexer::idPool("__vptr"); |
225 __monitor = Lexer::idPool("__monitor"); | |
1 | 226 TypeInfo = Lexer::idPool("TypeInfo"); |
227 TypeInfo_Class = Lexer::idPool("TypeInfo_Class"); | |
228 TypeInfo_Interface = Lexer::idPool("TypeInfo_Interface"); | |
229 TypeInfo_Struct = Lexer::idPool("TypeInfo_Struct"); | |
230 TypeInfo_Enum = Lexer::idPool("TypeInfo_Enum"); | |
231 TypeInfo_Typedef = Lexer::idPool("TypeInfo_Typedef"); | |
232 TypeInfo_Pointer = Lexer::idPool("TypeInfo_Pointer"); | |
233 TypeInfo_Array = Lexer::idPool("TypeInfo_Array"); | |
234 TypeInfo_StaticArray = Lexer::idPool("TypeInfo_StaticArray"); | |
235 TypeInfo_AssociativeArray = Lexer::idPool("TypeInfo_AssociativeArray"); | |
236 TypeInfo_Function = Lexer::idPool("TypeInfo_Function"); | |
237 TypeInfo_Delegate = Lexer::idPool("TypeInfo_Delegate"); | |
238 TypeInfo_Tuple = Lexer::idPool("TypeInfo_Tuple"); | |
239 TypeInfo_Const = Lexer::idPool("TypeInfo_Const"); | |
240 TypeInfo_Invariant = Lexer::idPool("TypeInfo_Invariant"); | |
241 elements = Lexer::idPool("elements"); | |
242 _arguments_typeinfo = Lexer::idPool("_arguments_typeinfo"); | |
243 _arguments = Lexer::idPool("_arguments"); | |
244 _argptr = Lexer::idPool("_argptr"); | |
245 _match = Lexer::idPool("_match"); | |
246 LINE = Lexer::idPool("__LINE__"); | |
247 FILE = Lexer::idPool("__FILE__"); | |
248 DATE = Lexer::idPool("__DATE__"); | |
249 TIME = Lexer::idPool("__TIME__"); | |
250 TIMESTAMP = Lexer::idPool("__TIMESTAMP__"); | |
251 VENDOR = Lexer::idPool("__VENDOR__"); | |
252 VERSIONX = Lexer::idPool("__VERSION__"); | |
253 nan = Lexer::idPool("nan"); | |
254 infinity = Lexer::idPool("infinity"); | |
255 dig = Lexer::idPool("dig"); | |
256 epsilon = Lexer::idPool("epsilon"); | |
257 mant_dig = Lexer::idPool("mant_dig"); | |
258 max_10_exp = Lexer::idPool("max_10_exp"); | |
259 max_exp = Lexer::idPool("max_exp"); | |
260 min_10_exp = Lexer::idPool("min_10_exp"); | |
261 min_exp = Lexer::idPool("min_exp"); | |
262 re = Lexer::idPool("re"); | |
263 im = Lexer::idPool("im"); | |
264 C = Lexer::idPool("C"); | |
265 D = Lexer::idPool("D"); | |
266 Windows = Lexer::idPool("Windows"); | |
267 Pascal = Lexer::idPool("Pascal"); | |
268 System = Lexer::idPool("System"); | |
269 exit = Lexer::idPool("exit"); | |
270 success = Lexer::idPool("success"); | |
271 failure = Lexer::idPool("failure"); | |
272 keys = Lexer::idPool("keys"); | |
273 values = Lexer::idPool("values"); | |
274 rehash = Lexer::idPool("rehash"); | |
275 sort = Lexer::idPool("sort"); | |
276 reverse = Lexer::idPool("reverse"); | |
277 dup = Lexer::idPool("dup"); | |
278 idup = Lexer::idPool("idup"); | |
279 ___out = Lexer::idPool("out"); | |
280 ___in = Lexer::idPool("in"); | |
281 __int = Lexer::idPool("int"); | |
282 __dollar = Lexer::idPool("$"); | |
283 __LOCAL_SIZE = Lexer::idPool("__LOCAL_SIZE"); | |
284 uadd = Lexer::idPool("opPos"); | |
285 neg = Lexer::idPool("opNeg"); | |
286 com = Lexer::idPool("opCom"); | |
287 add = Lexer::idPool("opAdd"); | |
288 add_r = Lexer::idPool("opAdd_r"); | |
289 sub = Lexer::idPool("opSub"); | |
290 sub_r = Lexer::idPool("opSub_r"); | |
291 mul = Lexer::idPool("opMul"); | |
292 mul_r = Lexer::idPool("opMul_r"); | |
293 div = Lexer::idPool("opDiv"); | |
294 div_r = Lexer::idPool("opDiv_r"); | |
295 mod = Lexer::idPool("opMod"); | |
296 mod_r = Lexer::idPool("opMod_r"); | |
297 eq = Lexer::idPool("opEquals"); | |
298 cmp = Lexer::idPool("opCmp"); | |
299 iand = Lexer::idPool("opAnd"); | |
300 iand_r = Lexer::idPool("opAnd_r"); | |
301 ior = Lexer::idPool("opOr"); | |
302 ior_r = Lexer::idPool("opOr_r"); | |
303 ixor = Lexer::idPool("opXor"); | |
304 ixor_r = Lexer::idPool("opXor_r"); | |
305 shl = Lexer::idPool("opShl"); | |
306 shl_r = Lexer::idPool("opShl_r"); | |
307 shr = Lexer::idPool("opShr"); | |
308 shr_r = Lexer::idPool("opShr_r"); | |
309 ushr = Lexer::idPool("opUShr"); | |
310 ushr_r = Lexer::idPool("opUShr_r"); | |
311 cat = Lexer::idPool("opCat"); | |
312 cat_r = Lexer::idPool("opCat_r"); | |
313 assign = Lexer::idPool("opAssign"); | |
314 addass = Lexer::idPool("opAddAssign"); | |
315 subass = Lexer::idPool("opSubAssign"); | |
316 mulass = Lexer::idPool("opMulAssign"); | |
317 divass = Lexer::idPool("opDivAssign"); | |
318 modass = Lexer::idPool("opModAssign"); | |
319 andass = Lexer::idPool("opAndAssign"); | |
320 orass = Lexer::idPool("opOrAssign"); | |
321 xorass = Lexer::idPool("opXorAssign"); | |
322 shlass = Lexer::idPool("opShlAssign"); | |
323 shrass = Lexer::idPool("opShrAssign"); | |
324 ushrass = Lexer::idPool("opUShrAssign"); | |
325 catass = Lexer::idPool("opCatAssign"); | |
326 postinc = Lexer::idPool("opPostInc"); | |
327 postdec = Lexer::idPool("opPostDec"); | |
328 index = Lexer::idPool("opIndex"); | |
329 indexass = Lexer::idPool("opIndexAssign"); | |
330 slice = Lexer::idPool("opSlice"); | |
331 sliceass = Lexer::idPool("opSliceAssign"); | |
332 call = Lexer::idPool("opCall"); | |
333 cast = Lexer::idPool("opCast"); | |
334 match = Lexer::idPool("opMatch"); | |
335 next = Lexer::idPool("opNext"); | |
336 opIn = Lexer::idPool("opIn"); | |
337 opIn_r = Lexer::idPool("opIn_r"); | |
338 classNew = Lexer::idPool("new"); | |
339 classDelete = Lexer::idPool("delete"); | |
340 apply = Lexer::idPool("opApply"); | |
341 applyReverse = Lexer::idPool("opApplyReverse"); | |
342 adDup = Lexer::idPool("_adDupT"); | |
343 adReverse = Lexer::idPool("_adReverse"); | |
344 aaLen = Lexer::idPool("_aaLen"); | |
345 aaKeys = Lexer::idPool("_aaKeys"); | |
346 aaValues = Lexer::idPool("_aaValues"); | |
347 aaRehash = Lexer::idPool("_aaRehash"); | |
348 lib = Lexer::idPool("lib"); | |
349 msg = Lexer::idPool("msg"); | |
350 GNU_asm = Lexer::idPool("GNU_asm"); | |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
336
diff
changeset
|
351 intrinsic = Lexer::idPool("intrinsic"); |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
336
diff
changeset
|
352 va_intrinsic = Lexer::idPool("va_intrinsic"); |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
336
diff
changeset
|
353 no_typeinfo = Lexer::idPool("no_typeinfo"); |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
336
diff
changeset
|
354 no_moduleinfo = Lexer::idPool("no_moduleinfo"); |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
355 Alloca = Lexer::idPool("alloca"); |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
356 vastart = Lexer::idPool("va_start"); |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
357 vacopy = Lexer::idPool("va_copy"); |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
358 vaend = Lexer::idPool("va_end"); |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
359 vaarg = Lexer::idPool("va_arg"); |
1 | 360 tohash = Lexer::idPool("toHash"); |
361 tostring = Lexer::idPool("toString"); | |
362 main = Lexer::idPool("main"); | |
363 WinMain = Lexer::idPool("WinMain"); | |
364 DllMain = Lexer::idPool("DllMain"); | |
365 } |