1 | /* |
2 | * Created by Microsoft VCBU Internal YACC from "asmparse.y" |
3 | */ |
4 | |
5 | #line 2 "asmparse.y" |
6 | |
7 | // Licensed to the .NET Foundation under one or more agreements. |
8 | // The .NET Foundation licenses this file to you under the MIT license. |
9 | // See the LICENSE file in the project root for more information. |
10 | // |
11 | // File asmparse.y |
12 | // |
13 | |
14 | #include "ilasmpch.h" |
15 | |
16 | #include "grammar_before.cpp" |
17 | |
18 | |
19 | #line 16 "asmparse.y" |
20 | |
21 | #define UNION 1 |
22 | typedef union { |
23 | CorRegTypeAttr classAttr; |
24 | CorMethodAttr methAttr; |
25 | CorFieldAttr fieldAttr; |
26 | CorMethodImpl implAttr; |
27 | CorEventAttr eventAttr; |
28 | CorPropertyAttr propAttr; |
29 | CorPinvokeMap pinvAttr; |
30 | CorDeclSecurity secAct; |
31 | CorFileFlags fileAttr; |
32 | CorAssemblyFlags asmAttr; |
33 | CorAssemblyFlags asmRefAttr; |
34 | CorTypeAttr exptAttr; |
35 | CorManifestResourceFlags manresAttr; |
36 | double* float64; |
37 | __int64* int64; |
38 | __int32 int32; |
39 | char* string; |
40 | BinStr* binstr; |
41 | Labels* labels; |
42 | Instr* instr; // instruction opcode |
43 | NVPair* pair; |
44 | pTyParList typarlist; |
45 | mdToken token; |
46 | TypeDefDescr* tdd; |
47 | CustomDescr* cad; |
48 | unsigned short opcode; |
49 | } YYSTYPE; |
50 | # define ERROR_ 257 |
51 | # define 258 |
52 | # define BAD_LITERAL_ 259 |
53 | # define ID 260 |
54 | # define DOTTEDNAME 261 |
55 | # define QSTRING 262 |
56 | # define SQSTRING 263 |
57 | # define INT32 264 |
58 | # define INT64 265 |
59 | # define FLOAT64 266 |
60 | # define HEXBYTE 267 |
61 | # define TYPEDEF_T 268 |
62 | # define TYPEDEF_M 269 |
63 | # define TYPEDEF_F 270 |
64 | # define TYPEDEF_TS 271 |
65 | # define TYPEDEF_MR 272 |
66 | # define TYPEDEF_CA 273 |
67 | # define DCOLON 274 |
68 | # define ELIPSIS 275 |
69 | # define VOID_ 276 |
70 | # define BOOL_ 277 |
71 | # define CHAR_ 278 |
72 | # define UNSIGNED_ 279 |
73 | # define INT_ 280 |
74 | # define INT8_ 281 |
75 | # define INT16_ 282 |
76 | # define INT32_ 283 |
77 | # define INT64_ 284 |
78 | # define FLOAT_ 285 |
79 | # define FLOAT32_ 286 |
80 | # define FLOAT64_ 287 |
81 | # define BYTEARRAY_ 288 |
82 | # define UINT_ 289 |
83 | # define UINT8_ 290 |
84 | # define UINT16_ 291 |
85 | # define UINT32_ 292 |
86 | # define UINT64_ 293 |
87 | # define FLAGS_ 294 |
88 | # define CALLCONV_ 295 |
89 | # define MDTOKEN_ 296 |
90 | # define OBJECT_ 297 |
91 | # define STRING_ 298 |
92 | # define NULLREF_ 299 |
93 | # define DEFAULT_ 300 |
94 | # define CDECL_ 301 |
95 | # define VARARG_ 302 |
96 | # define STDCALL_ 303 |
97 | # define THISCALL_ 304 |
98 | # define FASTCALL_ 305 |
99 | # define CLASS_ 306 |
100 | # define TYPEDREF_ 307 |
101 | # define UNMANAGED_ 308 |
102 | # define FINALLY_ 309 |
103 | # define HANDLER_ 310 |
104 | # define CATCH_ 311 |
105 | # define FILTER_ 312 |
106 | # define FAULT_ 313 |
107 | # define EXTENDS_ 314 |
108 | # define IMPLEMENTS_ 315 |
109 | # define TO_ 316 |
110 | # define AT_ 317 |
111 | # define TLS_ 318 |
112 | # define TRUE_ 319 |
113 | # define FALSE_ 320 |
114 | # define _INTERFACEIMPL 321 |
115 | # define VALUE_ 322 |
116 | # define VALUETYPE_ 323 |
117 | # define NATIVE_ 324 |
118 | # define INSTANCE_ 325 |
119 | # define SPECIALNAME_ 326 |
120 | # define FORWARDER_ 327 |
121 | # define STATIC_ 328 |
122 | # define PUBLIC_ 329 |
123 | # define PRIVATE_ 330 |
124 | # define FAMILY_ 331 |
125 | # define FINAL_ 332 |
126 | # define SYNCHRONIZED_ 333 |
127 | # define INTERFACE_ 334 |
128 | # define SEALED_ 335 |
129 | # define NESTED_ 336 |
130 | # define ABSTRACT_ 337 |
131 | # define AUTO_ 338 |
132 | # define SEQUENTIAL_ 339 |
133 | # define EXPLICIT_ 340 |
134 | # define ANSI_ 341 |
135 | # define UNICODE_ 342 |
136 | # define AUTOCHAR_ 343 |
137 | # define IMPORT_ 344 |
138 | # define ENUM_ 345 |
139 | # define VIRTUAL_ 346 |
140 | # define NOINLINING_ 347 |
141 | # define AGGRESSIVEINLINING_ 348 |
142 | # define NOOPTIMIZATION_ 349 |
143 | # define AGGRESSIVEOPTIMIZATION_ 350 |
144 | # define UNMANAGEDEXP_ 351 |
145 | # define BEFOREFIELDINIT_ 352 |
146 | # define STRICT_ 353 |
147 | # define RETARGETABLE_ 354 |
148 | # define WINDOWSRUNTIME_ 355 |
149 | # define NOPLATFORM_ 356 |
150 | # define METHOD_ 357 |
151 | # define FIELD_ 358 |
152 | # define PINNED_ 359 |
153 | # define MODREQ_ 360 |
154 | # define MODOPT_ 361 |
155 | # define SERIALIZABLE_ 362 |
156 | # define PROPERTY_ 363 |
157 | # define TYPE_ 364 |
158 | # define ASSEMBLY_ 365 |
159 | # define FAMANDASSEM_ 366 |
160 | # define FAMORASSEM_ 367 |
161 | # define PRIVATESCOPE_ 368 |
162 | # define HIDEBYSIG_ 369 |
163 | # define NEWSLOT_ 370 |
164 | # define RTSPECIALNAME_ 371 |
165 | # define PINVOKEIMPL_ 372 |
166 | # define _CTOR 373 |
167 | # define _CCTOR 374 |
168 | # define LITERAL_ 375 |
169 | # define NOTSERIALIZED_ 376 |
170 | # define INITONLY_ 377 |
171 | # define REQSECOBJ_ 378 |
172 | # define CIL_ 379 |
173 | # define OPTIL_ 380 |
174 | # define MANAGED_ 381 |
175 | # define FORWARDREF_ 382 |
176 | # define PRESERVESIG_ 383 |
177 | # define RUNTIME_ 384 |
178 | # define INTERNALCALL_ 385 |
179 | # define _IMPORT 386 |
180 | # define NOMANGLE_ 387 |
181 | # define LASTERR_ 388 |
182 | # define WINAPI_ 389 |
183 | # define AS_ 390 |
184 | # define BESTFIT_ 391 |
185 | # define ON_ 392 |
186 | # define OFF_ 393 |
187 | # define CHARMAPERROR_ 394 |
188 | # define INSTR_NONE 395 |
189 | # define INSTR_VAR 396 |
190 | # define INSTR_I 397 |
191 | # define INSTR_I8 398 |
192 | # define INSTR_R 399 |
193 | # define INSTR_BRTARGET 400 |
194 | # define INSTR_METHOD 401 |
195 | # define INSTR_FIELD 402 |
196 | # define INSTR_TYPE 403 |
197 | # define INSTR_STRING 404 |
198 | # define INSTR_SIG 405 |
199 | # define INSTR_TOK 406 |
200 | # define INSTR_SWITCH 407 |
201 | # define _CLASS 408 |
202 | # define _NAMESPACE 409 |
203 | # define _METHOD 410 |
204 | # define _FIELD 411 |
205 | # define _DATA 412 |
206 | # define _THIS 413 |
207 | # define _BASE 414 |
208 | # define _NESTER 415 |
209 | # define _EMITBYTE 416 |
210 | # define _TRY 417 |
211 | # define _MAXSTACK 418 |
212 | # define _LOCALS 419 |
213 | # define _ENTRYPOINT 420 |
214 | # define _ZEROINIT 421 |
215 | # define _EVENT 422 |
216 | # define _ADDON 423 |
217 | # define _REMOVEON 424 |
218 | # define _FIRE 425 |
219 | # define _OTHER 426 |
220 | # define _PROPERTY 427 |
221 | # define _SET 428 |
222 | # define _GET 429 |
223 | # define _PERMISSION 430 |
224 | # define _PERMISSIONSET 431 |
225 | # define REQUEST_ 432 |
226 | # define DEMAND_ 433 |
227 | # define ASSERT_ 434 |
228 | # define DENY_ 435 |
229 | # define PERMITONLY_ 436 |
230 | # define LINKCHECK_ 437 |
231 | # define INHERITCHECK_ 438 |
232 | # define REQMIN_ 439 |
233 | # define REQOPT_ 440 |
234 | # define REQREFUSE_ 441 |
235 | # define PREJITGRANT_ 442 |
236 | # define PREJITDENY_ 443 |
237 | # define NONCASDEMAND_ 444 |
238 | # define NONCASLINKDEMAND_ 445 |
239 | # define NONCASINHERITANCE_ 446 |
240 | # define _LINE 447 |
241 | # define P_LINE 448 |
242 | # define _LANGUAGE 449 |
243 | # define _CUSTOM 450 |
244 | # define INIT_ 451 |
245 | # define _SIZE 452 |
246 | # define _PACK 453 |
247 | # define _VTABLE 454 |
248 | # define _VTFIXUP 455 |
249 | # define FROMUNMANAGED_ 456 |
250 | # define CALLMOSTDERIVED_ 457 |
251 | # define _VTENTRY 458 |
252 | # define RETAINAPPDOMAIN_ 459 |
253 | # define _FILE 460 |
254 | # define NOMETADATA_ 461 |
255 | # define _HASH 462 |
256 | # define _ASSEMBLY 463 |
257 | # define _PUBLICKEY 464 |
258 | # define _PUBLICKEYTOKEN 465 |
259 | # define ALGORITHM_ 466 |
260 | # define _VER 467 |
261 | # define _LOCALE 468 |
262 | # define EXTERN_ 469 |
263 | # define _MRESOURCE 470 |
264 | # define _MODULE 471 |
265 | # define _EXPORT 472 |
266 | # define LEGACY_ 473 |
267 | # define LIBRARY_ 474 |
268 | # define X86_ 475 |
269 | # define AMD64_ 476 |
270 | # define ARM_ 477 |
271 | # define ARM64_ 478 |
272 | # define MARSHAL_ 479 |
273 | # define CUSTOM_ 480 |
274 | # define SYSSTRING_ 481 |
275 | # define FIXED_ 482 |
276 | # define VARIANT_ 483 |
277 | # define CURRENCY_ 484 |
278 | # define SYSCHAR_ 485 |
279 | # define DECIMAL_ 486 |
280 | # define DATE_ 487 |
281 | # define BSTR_ 488 |
282 | # define TBSTR_ 489 |
283 | # define LPSTR_ 490 |
284 | # define LPWSTR_ 491 |
285 | # define LPTSTR_ 492 |
286 | # define OBJECTREF_ 493 |
287 | # define IUNKNOWN_ 494 |
288 | # define IDISPATCH_ 495 |
289 | # define STRUCT_ 496 |
290 | # define SAFEARRAY_ 497 |
291 | # define BYVALSTR_ 498 |
292 | # define LPVOID_ 499 |
293 | # define ANY_ 500 |
294 | # define ARRAY_ 501 |
295 | # define LPSTRUCT_ 502 |
296 | # define IIDPARAM_ 503 |
297 | # define IN_ 504 |
298 | # define OUT_ 505 |
299 | # define OPT_ 506 |
300 | # define PARAM_ 507 |
301 | # define _OVERRIDE 508 |
302 | # define WITH_ 509 |
303 | # define NULL_ 510 |
304 | # define HRESULT_ 511 |
305 | # define CARRAY_ 512 |
306 | # define USERDEFINED_ 513 |
307 | # define RECORD_ 514 |
308 | # define FILETIME_ 515 |
309 | # define BLOB_ 516 |
310 | # define STREAM_ 517 |
311 | # define STORAGE_ 518 |
312 | # define STREAMED_OBJECT_ 519 |
313 | # define STORED_OBJECT_ 520 |
314 | # define BLOB_OBJECT_ 521 |
315 | # define CF_ 522 |
316 | # define CLSID_ 523 |
317 | # define VECTOR_ 524 |
318 | # define _SUBSYSTEM 525 |
319 | # define _CORFLAGS 526 |
320 | # define ALIGNMENT_ 527 |
321 | # define _IMAGEBASE 528 |
322 | # define _STACKRESERVE 529 |
323 | # define _TYPEDEF 530 |
324 | # define _TEMPLATE 531 |
325 | # define _TYPELIST 532 |
326 | # define _MSCORLIB 533 |
327 | # define P_DEFINE 534 |
328 | # define P_UNDEF 535 |
329 | # define P_IFDEF 536 |
330 | # define P_IFNDEF 537 |
331 | # define P_ELSE 538 |
332 | # define P_ENDIF 539 |
333 | # define P_INCLUDE 540 |
334 | #define yyclearin yychar = -1 |
335 | #define yyerrok yyerrflag = 0 |
336 | #ifndef YYMAXDEPTH |
337 | #define YYMAXDEPTH 150 |
338 | #endif |
339 | YYSTYPE yylval, yyval; |
340 | #ifndef YYFARDATA |
341 | #define YYFARDATA /*nothing*/ |
342 | #endif |
343 | #if ! defined YYSTATIC |
344 | #define YYSTATIC /*nothing*/ |
345 | #endif |
346 | #if ! defined YYCONST |
347 | #define YYCONST /*nothing*/ |
348 | #endif |
349 | #ifndef YYACT |
350 | #define YYACT yyact |
351 | #endif |
352 | #ifndef YYPACT |
353 | #define YYPACT yypact |
354 | #endif |
355 | #ifndef YYPGO |
356 | #define YYPGO yypgo |
357 | #endif |
358 | #ifndef YYR1 |
359 | #define YYR1 yyr1 |
360 | #endif |
361 | #ifndef YYR2 |
362 | #define YYR2 yyr2 |
363 | #endif |
364 | #ifndef YYCHK |
365 | #define YYCHK yychk |
366 | #endif |
367 | #ifndef YYDEF |
368 | #define YYDEF yydef |
369 | #endif |
370 | #ifndef YYV |
371 | #define YYV yyv |
372 | #endif |
373 | #ifndef YYS |
374 | #define YYS yys |
375 | #endif |
376 | #ifndef YYLOCAL |
377 | #define YYLOCAL |
378 | #endif |
379 | #ifndef YYR_T |
380 | #define YYR_T int |
381 | #endif |
382 | typedef YYR_T yyr_t; |
383 | #ifndef YYEXIND_T |
384 | #define YYEXIND_T unsigned int |
385 | #endif |
386 | typedef YYEXIND_T yyexind_t; |
387 | #ifndef YYOPTTIME |
388 | #define YYOPTTIME 0 |
389 | #endif |
390 | # define YYERRCODE 256 |
391 | |
392 | #line 2052 "asmparse.y" |
393 | |
394 | |
395 | #include "grammar_after.cpp" |
396 | YYSTATIC YYCONST short yyexca[] = { |
397 | #if !(YYOPTTIME) |
398 | -1, 1, |
399 | #endif |
400 | 0, -1, |
401 | -2, 0, |
402 | #if !(YYOPTTIME) |
403 | -1, 452, |
404 | #endif |
405 | 41, 533, |
406 | -2, 308, |
407 | #if !(YYOPTTIME) |
408 | -1, 621, |
409 | #endif |
410 | 274, 550, |
411 | 47, 550, |
412 | -2, 227, |
413 | #if !(YYOPTTIME) |
414 | -1, 642, |
415 | #endif |
416 | 40, 307, |
417 | 60, 307, |
418 | -2, 550, |
419 | #if !(YYOPTTIME) |
420 | -1, 663, |
421 | #endif |
422 | 41, 533, |
423 | -2, 308, |
424 | #if !(YYOPTTIME) |
425 | -1, 686, |
426 | #endif |
427 | 274, 550, |
428 | 47, 550, |
429 | -2, 511, |
430 | #if !(YYOPTTIME) |
431 | -1, 803, |
432 | #endif |
433 | 123, 232, |
434 | -2, 550, |
435 | #if !(YYOPTTIME) |
436 | -1, 828, |
437 | #endif |
438 | 41, 533, |
439 | -2, 308, |
440 | #if !(YYOPTTIME) |
441 | -1, 953, |
442 | #endif |
443 | 41, 533, |
444 | -2, 308, |
445 | #if !(YYOPTTIME) |
446 | -1, 986, |
447 | #endif |
448 | 41, 533, |
449 | -2, 308, |
450 | #if !(YYOPTTIME) |
451 | -1, 987, |
452 | #endif |
453 | 41, 533, |
454 | -2, 308, |
455 | #if !(YYOPTTIME) |
456 | -1, 1308, |
457 | #endif |
458 | 41, 533, |
459 | -2, 308, |
460 | #if !(YYOPTTIME) |
461 | -1, 1309, |
462 | #endif |
463 | 41, 533, |
464 | -2, 308, |
465 | #if !(YYOPTTIME) |
466 | -1, 1315, |
467 | #endif |
468 | 41, 533, |
469 | -2, 308, |
470 | #if !(YYOPTTIME) |
471 | -1, 1322, |
472 | #endif |
473 | 41, 533, |
474 | -2, 308, |
475 | #if !(YYOPTTIME) |
476 | -1, 1447, |
477 | #endif |
478 | 41, 533, |
479 | -2, 308, |
480 | #if !(YYOPTTIME) |
481 | -1, 1479, |
482 | #endif |
483 | 41, 533, |
484 | -2, 308, |
485 | #if !(YYOPTTIME) |
486 | -1, 1546, |
487 | #endif |
488 | 41, 533, |
489 | -2, 308, |
490 | #if !(YYOPTTIME) |
491 | -1, 1563, |
492 | #endif |
493 | 41, 533, |
494 | -2, 308, |
495 | |
496 | }; |
497 | |
498 | # define YYNPROD 839 |
499 | #if YYOPTTIME |
500 | YYSTATIC YYCONST yyexind_t yyexcaind[] = { |
501 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
502 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
503 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
504 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
505 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
506 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
507 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
508 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
509 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
510 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
511 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
512 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
513 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
514 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
515 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
516 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
517 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
518 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
519 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
520 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
521 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
522 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
523 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
524 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
525 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
526 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
527 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
528 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
529 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
530 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
531 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
532 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
533 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
534 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
535 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
536 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
537 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
538 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
539 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
540 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
541 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
542 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
543 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
544 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
545 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
546 | 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, |
547 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
548 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
549 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
550 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
551 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
552 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
553 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
554 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
555 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
556 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
557 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
558 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
559 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
560 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
561 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
562 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
563 | 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, |
564 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
565 | 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, |
566 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
567 | 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, |
568 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
569 | 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, |
570 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
571 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
572 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
573 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
574 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
575 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
576 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
577 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
578 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
579 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
580 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
581 | 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, |
582 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
583 | 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, |
584 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
585 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
586 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
587 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
588 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
589 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
590 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
591 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
592 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
593 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
594 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
595 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
596 | 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, |
597 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
598 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
599 | 0, 0, 0, 0, 0, 0, 42, 46, 0, 0, |
600 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
601 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
602 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
603 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
604 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
605 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
606 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
607 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
608 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
609 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
610 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
611 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
612 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
613 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
614 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
615 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
616 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
617 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
618 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
619 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
620 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
621 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
622 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
623 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
624 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
625 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
626 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
627 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
628 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
629 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
630 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
631 | 0, 0, 0, 0, 0, 0, 0, 0, 50, 54, |
632 | 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, |
633 | 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, |
634 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
635 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
636 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
637 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
638 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
639 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
640 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
641 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
642 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
643 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
644 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
645 | 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, |
646 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
647 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
648 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, |
649 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
650 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
651 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
652 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
653 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
654 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
655 | 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, |
656 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
657 | 0, 0, 0, 78 |
658 | }; |
659 | #endif |
660 | # define YYLAST 3932 |
661 | |
662 | YYSTATIC YYCONST short YYFARDATA YYACT[] = { |
663 | 699, 1398, 1121, 1466, 658, 1467, 639, 1024, 1465, 878, |
664 | 1464, 963, 784, 753, 964, 221, 775, 26, 698, 725, |
665 | 73, 75, 275, 414, 624, 877, 966, 1399, 535, 191, |
666 | 477, 1503, 150, 788, 751, 756, 1134, 110, 1065, 107, |
667 | 690, 852, 273, 153, 219, 660, 24, 44, 776, 218, |
668 | 307, 10, 190, 176, 78, 81, 6, 86, 5, 598, |
669 | 673, 262, 204, 515, 3, 188, 217, 983, 17, 301, |
670 | 603, 136, 76, 1551, 1194, 1238, 214, 264, 7, 1242, |
671 | 1057, 1113, 1111, 1112, 85, 1239, 580, 88, 87, 74, |
672 | 89, 137, 74, 300, 115, 56, 139, 715, 712, 113, |
673 | 1058, 98, 112, 178, 179, 180, 181, 696, 272, 519, |
674 | 322, 1015, 56, 672, 220, 338, 18, 452, 277, 461, |
675 | 278, 536, 68, 1228, 1229, 268, 216, 269, 56, 225, |
676 | 376, 265, 1240, 277, 88, 87, 106, 89, 590, 931, |
677 | 932, 343, 1226, 1227, 1021, 277, 361, 368, 345, 360, |
678 | 359, 310, 312, 314, 316, 318, 358, 185, 654, 352, |
679 | 653, 1414, 98, 353, 460, 327, 1555, 1519, 339, 1027, |
680 | 342, 1126, 1127, 930, 373, 366, 154, 348, 1341, 133, |
681 | 277, 357, 379, 1026, 362, 88, 87, 364, 89, 277, |
682 | 271, 192, 387, 352, 513, 695, 694, 353, 365, 84, |
683 | 369, 202, 203, 105, 363, 1264, 374, 346, 614, 450, |
684 | 1059, 451, 351, 258, 416, 357, 88, 87, 186, 89, |
685 | 442, 26, 661, 662, 456, 417, 418, 74, 763, 376, |
686 | 1541, 472, 474, 371, 370, 305, 483, 388, 599, 1560, |
687 | 1478, 1263, 410, 372, 1314, 500, 351, 479, 457, 441, |
688 | 24, 1200, 825, 491, 435, 10, 492, 797, 56, 787, |
689 | 486, 432, 490, 428, 475, 478, 773, 480, 481, 429, |
690 | 494, 434, 17, 192, 666, 1234, 511, 511, 528, 534, |
691 | 375, 433, 7, 585, 267, 584, 583, 376, 473, 485, |
692 | 1487, 108, 586, 484, 710, 540, 116, 74, 640, 641, |
693 | 1542, 74, 499, 479, 596, 498, 543, 493, 700, 571, |
694 | 321, 268, 933, 934, 574, 935, 575, 154, 576, 436, |
695 | 18, 1417, 548, 480, 481, 578, 579, 504, 541, 80, |
696 | 79, 544, 854, 855, 856, 266, 88, 570, 596, 89, |
697 | 572, 1545, 46, 573, 1544, 744, 745, 746, 88, 87, |
698 | 1118, 89, 600, 469, 1351, 467, 471, 470, 348, 626, |
699 | 627, 628, 568, 258, 192, 487, 497, 741, 612, 154, |
700 | 88, 482, 1496, 89, 74, 510, 510, 527, 533, 1335, |
701 | 605, 747, 748, 749, 177, 88, 87, 623, 89, 611, |
702 | 1116, 581, 582, 947, 1141, 629, 630, 631, 594, 1142, |
703 | 674, 135, 375, 620, 595, 1543, 610, 518, 348, 1518, |
704 | 755, 1141, 606, 607, 608, 609, 1142, 321, 702, 1513, |
705 | 643, 613, 1512, 198, 88, 87, 634, 89, 199, 182, |
706 | 200, 618, 619, 621, 347, 277, 201, 459, 648, 649, |
707 | 638, 1320, 1319, 1318, 1317, 1126, 1127, 88, 87, 1511, |
708 | 89, 876, 152, 195, 808, 420, 664, 421, 422, 423, |
709 | 847, 670, 1391, 1128, 651, 778, 198, 779, 196, 681, |
710 | 642, 199, 962, 200, 943, 74, 1508, 743, 505, 201, |
711 | 354, 355, 356, 177, 565, 859, 599, 1506, 667, 587, |
712 | 537, 678, 536, 340, 341, 1510, 195, 692, 1252, 807, |
713 | 88, 1499, 545, 89, 74, 88, 87, 1502, 89, 74, |
714 | 685, 196, 1489, 669, 354, 355, 356, 689, 1130, 63, |
715 | 599, 754, 701, 80, 79, 711, 680, 650, 453, 679, |
716 | 74, 519, 1504, 512, 520, 647, 507, 508, 646, 645, |
717 | 686, 177, 82, 88, 87, 350, 89, 723, 1488, 72, |
718 | 71, 644, 70, 538, 691, 216, 413, 1141, 225, 542, |
719 | 69, 724, 1142, 657, 74, 1241, 720, 74, 721, 1117, |
720 | 49, 50, 51, 52, 53, 54, 55, 709, 675, 676, |
721 | 677, 730, 671, 1450, 67, 714, 740, 49, 50, 51, |
722 | 52, 53, 54, 55, 352, 74, 719, 479, 353, 716, |
723 | 853, 152, 726, 49, 50, 51, 52, 53, 54, 55, |
724 | 1172, 1171, 1170, 1169, 56, 758, 357, 480, 481, 348, |
725 | 66, 88, 87, 600, 946, 764, 765, 1327, 74, 155, |
726 | 688, 1439, 74, 783, 98, 638, 729, 328, 329, 330, |
727 | 277, 750, 74, 697, 1437, 74, 703, 351, 80, 79, |
728 | 479, 348, 705, 1435, 706, 111, 1433, 177, 377, 769, |
729 | 770, 771, 332, 1233, 1416, 642, 815, 789, 813, 819, |
730 | 480, 481, 74, 816, 592, 822, 541, 1326, 801, 802, |
731 | 990, 1407, 798, 823, 1406, 812, 806, 851, 1404, 1390, |
732 | 818, 382, 383, 384, 385, 97, 833, 834, 1180, 74, |
733 | 352, 826, 216, 786, 768, 225, 1388, 800, 793, 803, |
734 | 74, 809, 796, 1231, 846, 824, 542, 1378, 80, 79, |
735 | 817, 152, 357, 857, 80, 79, 479, 1345, 780, 922, |
736 | 80, 79, 821, 49, 50, 51, 52, 53, 54, 55, |
737 | 516, 850, 936, 937, 860, 781, 480, 481, 1376, 277, |
738 | 375, 988, 832, 351, 844, 74, 331, 591, 333, 334, |
739 | 335, 336, 769, 600, 949, 192, 845, 942, 337, 848, |
740 | 88, 87, 1374, 89, 156, 157, 158, 325, 155, 1372, |
741 | 56, 1179, 1370, 924, 636, 925, 926, 927, 928, 929, |
742 | 952, 324, 799, 1368, 985, 782, 772, 938, 495, 1366, |
743 | 1013, 965, 362, 1364, 1011, 1362, 177, 1359, 1356, 442, |
744 | 1000, 1009, 528, 605, 1237, 352, 954, 1354, 1350, 353, |
745 | 762, 1012, 948, 1334, 1312, 1196, 960, 955, 46, 1017, |
746 | 958, 692, 692, 1032, 277, 476, 276, 357, 441, 999, |
747 | 1008, 817, 1022, 435, 997, 1007, 1010, 1044, 1037, 1014, |
748 | 432, 817, 428, 849, 1019, 1035, 1016, 1018, 429, 1039, |
749 | 434, 989, 1247, 1243, 1244, 1245, 1246, 635, 351, 761, |
750 | 433, 1033, 1034, 1045, 88, 87, 444, 89, 74, 1030, |
751 | 1043, 718, 1042, 1050, 74, 145, 56, 1041, 691, 691, |
752 | 88, 87, 348, 89, 74, 954, 88, 87, 155, 89, |
753 | 352, 1023, 828, 668, 353, 959, 817, 820, 436, 998, |
754 | 1006, 527, 277, 1123, 814, 354, 355, 356, 733, 1055, |
755 | 348, 617, 357, 156, 157, 158, 177, 56, 1064, 1060, |
756 | 1061, 1062, 1063, 616, 1051, 96, 577, 564, 104, 103, |
757 | 102, 101, 1122, 99, 100, 105, 1067, 1236, 1068, 1126, |
758 | 1127, 1053, 529, 351, 74, 1124, 1, 1394, 1132, 615, |
759 | 308, 88, 87, 448, 89, 58, 32, 59, 758, 1300, |
760 | 455, 1337, 1338, 1339, 1298, 1119, 109, 445, 1296, 1140, |
761 | 1129, 56, 446, 1138, 1125, 41, 43, 92, 1115, 1185, |
762 | 1294, 1183, 1184, 991, 46, 326, 323, 277, 1178, 367, |
763 | 1054, 1186, 61, 62, 47, 63, 348, 437, 438, 956, |
764 | 189, 1133, 1415, 1182, 766, 1025, 1332, 526, 1175, 1181, |
765 | 1301, 354, 355, 356, 205, 1299, 145, 447, 1219, 1297, |
766 | 1131, 56, 1173, 590, 1167, 1165, 1195, 88, 87, 1203, |
767 | 89, 1295, 984, 156, 157, 158, 1187, 1188, 1189, 1190, |
768 | 1230, 941, 1202, 588, 945, 1232, 1191, 1192, 1193, 80, |
769 | 79, 479, 443, 440, 1223, 1225, 1224, 1222, 708, 1176, |
770 | 1235, 1197, 88, 87, 589, 89, 1163, 1198, 145, 1199, |
771 | 707, 480, 481, 1174, 1218, 1168, 1166, 704, 1161, 49, |
772 | 50, 51, 52, 53, 54, 55, 633, 521, 412, 187, |
773 | 46, 118, 119, 120, 121, 122, 123, 124, 125, 126, |
774 | 127, 128, 129, 130, 131, 132, 1400, 625, 790, 1248, |
775 | 1177, 192, 192, 192, 192, 88, 87, 1164, 89, 524, |
776 | 56, 192, 192, 192, 277, 1412, 354, 355, 356, 1162, |
777 | 1159, 46, 1251, 192, 1157, 1265, 1155, 1269, 625, 1271, |
778 | 1273, 1274, 1255, 1277, 1411, 1279, 1280, 1281, 1282, 1283, |
779 | 1284, 1285, 1270, 1287, 1288, 1289, 1290, 1291, 1292, 1293, |
780 | 1254, 63, 1259, 1410, 1302, 1303, 1401, 1305, 1304, 1221, |
781 | 1272, 523, 1275, 1276, 525, 1278, 56, 1048, 1267, 1047, |
782 | 1153, 1160, 1307, 1286, 836, 1158, 501, 1156, 1151, 982, |
783 | 981, 980, 742, 975, 974, 973, 972, 1316, 970, 971, |
784 | 105, 1149, 979, 978, 977, 976, 378, 665, 1147, 969, |
785 | 967, 354, 355, 356, 1313, 1145, 88, 87, 1143, 89, |
786 | 74, 317, 315, 313, 1328, 454, 277, 1330, 1331, 193, |
787 | 1321, 1154, 194, 1257, 1135, 46, 277, 590, 1540, 1152, |
788 | 1336, 1340, 1001, 1333, 817, 49, 50, 51, 52, 53, |
789 | 54, 55, 1150, 944, 1342, 198, 177, 1140, 526, 1148, |
790 | 199, 311, 200, 309, 306, 590, 1146, 63, 201, 1144, |
791 | 45, 1343, 308, 308, 308, 56, 968, 531, 415, 940, |
792 | 532, 993, 994, 995, 996, 195, 1380, 1381, 1382, 1383, |
793 | 1384, 1385, 1386, 1315, 831, 1347, 830, 590, 1329, 277, |
794 | 196, 811, 1344, 1392, 1393, 61, 62, 47, 63, 767, |
795 | 1397, 1396, 308, 760, 308, 308, 1379, 1402, 1403, 140, |
796 | 717, 566, 1452, 1408, 590, 1451, 1395, 138, 1553, 1490, |
797 | 590, 117, 303, 1405, 46, 193, 349, 1565, 194, 258, |
798 | 1031, 792, 590, 923, 1556, 590, 1554, 1547, 1140, 1523, |
799 | 1486, 49, 50, 51, 52, 53, 54, 55, 817, 1485, |
800 | 1484, 198, 177, 1454, 1449, 1446, 199, 1443, 200, 1442, |
801 | 524, 1438, 56, 1436, 201, 134, 1434, 1432, 1419, 152, |
802 | 1413, 1409, 1389, 1387, 1377, 1375, 1373, 1371, 1445, 1369, |
803 | 46, 195, 49, 50, 51, 52, 53, 54, 55, 1367, |
804 | 1365, 1455, 1456, 1457, 1363, 1361, 196, 1453, 1360, 1444, |
805 | 1448, 1358, 63, 1357, 1355, 1353, 1352, 1349, 1348, 1325, |
806 | 1458, 1323, 523, 1311, 1470, 525, 1310, 1471, 1469, 1468, |
807 | 1306, 1256, 97, 1253, 1476, 1563, 258, 1220, 693, 1114, |
808 | 1052, 1038, 1481, 1036, 1480, 1029, 49, 50, 51, 52, |
809 | 53, 54, 55, 1498, 1028, 1483, 1505, 1507, 1509, 1020, |
810 | 1505, 1507, 1509, 961, 951, 950, 1495, 1507, 1516, 56, |
811 | 1520, 1517, 1515, 1514, 1522, 1521, 88, 939, 858, 89, |
812 | 841, 840, 838, 1497, 1500, 1501, 835, 829, 827, 46, |
813 | 810, 41, 43, 1493, 530, 791, 49, 50, 51, 52, |
814 | 53, 54, 55, 774, 738, 737, 1505, 1507, 1509, 736, |
815 | 735, 63, 56, 734, 732, 731, 684, 94, 522, 637, |
816 | 569, 425, 817, 503, 424, 512, 344, 320, 507, 508, |
817 | 1548, 1546, 1479, 258, 1475, 206, 1474, 1473, 1472, 1552, |
818 | 1447, 1550, 1441, 1005, 1549, 1003, 1004, 1440, 88, 87, |
819 | 1431, 89, 1430, 1562, 1429, 1428, 155, 1561, 1564, 1427, |
820 | 1426, 1425, 1424, 1423, 61, 62, 47, 63, 152, 1422, |
821 | 1558, 1421, 1559, 88, 1420, 1557, 89, 1418, 449, 1300, |
822 | 1298, 1296, 1294, 1322, 177, 1175, 46, 1491, 1173, 1167, |
823 | 1165, 1163, 1161, 1159, 1492, 49, 50, 51, 52, 53, |
824 | 54, 55, 1157, 1155, 817, 514, 1153, 1151, 1149, 1309, |
825 | 1308, 245, 246, 247, 248, 249, 250, 251, 252, 253, |
826 | 254, 255, 256, 257, 56, 1250, 1249, 1066, 59, 1056, |
827 | 1049, 1040, 208, 259, 210, 228, 212, 213, 987, 986, |
828 | 953, 843, 842, 839, 837, 728, 41, 43, 727, 517, |
829 | 713, 49, 50, 51, 52, 53, 54, 55, 687, 683, |
830 | 682, 663, 632, 61, 62, 47, 63, 602, 601, 593, |
831 | 88, 567, 96, 89, 223, 104, 103, 102, 101, 547, |
832 | 99, 100, 105, 46, 546, 496, 419, 411, 222, 386, |
833 | 319, 304, 509, 302, 506, 502, 36, 184, 1324, 93, |
834 | 152, 156, 157, 158, 33, 468, 466, 465, 245, 246, |
835 | 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, |
836 | 257, 464, 463, 226, 224, 59, 46, 95, 244, 208, |
837 | 259, 210, 228, 212, 213, 462, 227, 88, 87, 243, |
838 | 89, 215, 209, 41, 43, 155, 207, 211, 879, 31, |
839 | 49, 50, 51, 52, 53, 54, 55, 1002, 992, 439, |
840 | 61, 62, 47, 63, 795, 431, 794, 430, 427, 539, |
841 | 56, 223, 270, 177, 83, 29, 1268, 57, 1046, 34, |
842 | 25, 16, 263, 1266, 15, 222, 14, 261, 13, 260, |
843 | 12, 11, 9, 8, 4, 2, 234, 242, 241, 240, |
844 | 239, 238, 237, 236, 235, 245, 246, 247, 248, 249, |
845 | 250, 251, 252, 253, 254, 255, 256, 257, 1086, 233, |
846 | 226, 224, 59, 232, 231, 230, 208, 259, 210, 228, |
847 | 212, 213, 229, 114, 77, 42, 426, 752, 46, 656, |
848 | 41, 43, 655, 1482, 299, 90, 183, 49, 50, 51, |
849 | 52, 53, 54, 55, 861, 1139, 757, 61, 62, 47, |
850 | 63, 38, 30, 58, 32, 59, 785, 1258, 223, 88, |
851 | 87, 957, 89, 1137, 1136, 604, 1461, 155, 1460, 1459, |
852 | 1477, 1463, 222, 41, 43, 1462, 1201, 1120, 597, 659, |
853 | 156, 157, 158, 777, 91, 1069, 739, 65, 64, 197, |
854 | 61, 62, 47, 63, 875, 177, 0, 60, 35, 0, |
855 | 0, 0, 0, 21, 0, 1346, 37, 226, 224, 0, |
856 | 0, 0, 0, 39, 40, 0, 0, 0, 0, 0, |
857 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
858 | 0, 0, 0, 0, 49, 50, 51, 52, 53, 54, |
859 | 55, 874, 0, 0, 0, 0, 0, 0, 868, 0, |
860 | 869, 870, 871, 0, 0, 0, 0, 0, 0, 0, |
861 | 0, 0, 0, 38, 30, 58, 32, 59, 19, 20, |
862 | 0, 22, 23, 48, 46, 27, 28, 49, 50, 51, |
863 | 52, 53, 54, 55, 0, 41, 43, 0, 863, 864, |
864 | 865, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
865 | 0, 0, 61, 62, 47, 63, 0, 0, 921, 60, |
866 | 35, 0, 156, 157, 158, 21, 0, 0, 37, 0, |
867 | 0, 874, 444, 1097, 0, 39, 40, 0, 868, 0, |
868 | 869, 870, 871, 0, 862, 866, 867, 0, 872, 0, |
869 | 0, 873, 1073, 1074, 0, 1081, 1095, 1075, 1076, 1077, |
870 | 1078, 0, 1079, 1080, 0, 1096, 1082, 1083, 1084, 1085, |
871 | 0, 0, 0, 0, 0, 0, 0, 0, 863, 864, |
872 | 865, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
873 | 19, 20, 0, 22, 23, 48, 0, 27, 28, 49, |
874 | 50, 51, 52, 53, 54, 55, 0, 874, 0, 0, |
875 | 0, 0, 0, 0, 868, 0, 869, 870, 871, 448, |
876 | 0, 58, 32, 59, 862, 866, 867, 0, 872, 0, |
877 | 0, 873, 0, 445, 0, 0, 0, 0, 446, 0, |
878 | 0, 41, 43, 0, 0, 0, 0, 0, 0, 0, |
879 | 0, 0, 893, 0, 863, 864, 865, 0, 61, 62, |
880 | 47, 63, 146, 437, 438, 0, 920, 0, 0, 0, |
881 | 0, 885, 886, 0, 894, 911, 887, 888, 889, 890, |
882 | 0, 891, 892, 447, 912, 895, 896, 897, 898, 0, |
883 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
884 | 862, 866, 867, 0, 872, 0, 0, 873, 0, 0, |
885 | 0, 0, 0, 0, 0, 0, 0, 0, 443, 440, |
886 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 909, |
887 | 0, 913, 0, 0, 0, 0, 915, 0, 0, 0, |
888 | 0, 0, 0, 0, 0, 49, 50, 51, 52, 53, |
889 | 54, 55, 917, 1524, 0, 0, 0, 0, 0, 1071, |
890 | 1072, 0, 1087, 1088, 1089, 0, 1090, 1091, 0, 0, |
891 | 1092, 1093, 0, 1094, 0, 0, 0, 0, 0, 0, |
892 | 1494, 0, 0, 0, 0, 918, 1070, 1098, 1099, 1100, |
893 | 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, |
894 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
895 | 0, 0, 0, 0, 0, 0, 0, 893, 0, 0, |
896 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
897 | 0, 920, 0, 0, 0, 0, 885, 886, 0, 894, |
898 | 911, 887, 888, 889, 890, 0, 891, 892, 0, 912, |
899 | 895, 896, 897, 898, 0, 0, 146, 0, 0, 0, |
900 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
901 | 0, 0, 0, 0, 0, 880, 0, 881, 882, 883, |
902 | 884, 899, 900, 901, 916, 902, 903, 904, 905, 906, |
903 | 907, 908, 910, 914, 909, 0, 913, 919, 0, 0, |
904 | 175, 915, 0, 0, 151, 148, 163, 161, 170, 0, |
905 | 164, 165, 166, 167, 152, 168, 169, 917, 0, 171, |
906 | 172, 173, 174, 563, 1539, 0, 142, 162, 0, 0, |
907 | 0, 0, 0, 0, 0, 141, 147, 0, 1529, 0, |
908 | 146, 0, 0, 0, 0, 352, 0, 0, 0, 768, |
909 | 918, 143, 144, 149, 1525, 555, 0, 549, 550, 551, |
910 | 552, 0, 0, 1534, 0, 0, 0, 357, 0, 0, |
911 | 0, 0, 0, 0, 0, 0, 0, 1535, 1536, 1537, |
912 | 1538, 0, 0, 0, 0, 0, 160, 0, 0, 0, |
913 | 0, 0, 0, 0, 557, 558, 559, 560, 622, 0, |
914 | 554, 0, 0, 0, 561, 562, 553, 0, 0, 1526, |
915 | 1527, 1528, 1530, 1531, 1532, 1533, 982, 981, 980, 0, |
916 | 975, 974, 973, 972, 0, 970, 971, 105, 0, 979, |
917 | 978, 977, 976, 0, 0, 0, 969, 967, 0, 0, |
918 | 880, 0, 881, 882, 883, 884, 899, 900, 901, 916, |
919 | 902, 903, 904, 905, 906, 907, 908, 910, 914, 0, |
920 | 0, 0, 919, 0, 0, 0, 0, 0, 0, 0, |
921 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
922 | 0, 0, 0, 88, 87, 0, 89, 0, 0, 0, |
923 | 0, 155, 0, 0, 175, 0, 0, 0, 151, 148, |
924 | 163, 161, 170, 968, 164, 165, 166, 167, 556, 168, |
925 | 169, 0, 0, 171, 172, 173, 174, 0, 0, 177, |
926 | 142, 162, 0, 0, 0, 0, 0, 0, 0, 141, |
927 | 147, 0, 0, 0, 146, 0, 0, 0, 0, 352, |
928 | 0, 0, 0, 353, 0, 143, 144, 149, 0, 0, |
929 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
930 | 0, 357, 0, 0, 0, 0, 0, 88, 87, 0, |
931 | 89, 0, 0, 0, 0, 155, 0, 0, 175, 0, |
932 | 160, 159, 151, 148, 163, 161, 170, 0, 164, 165, |
933 | 166, 167, 622, 168, 169, 0, 0, 171, 172, 173, |
934 | 174, 0, 0, 177, 142, 162, 0, 0, 0, 0, |
935 | 0, 0, 0, 141, 147, 0, 0, 0, 0, 0, |
936 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, |
937 | 144, 149, 0, 0, 0, 0, 156, 157, 158, 0, |
938 | 297, 198, 0, 0, 0, 0, 199, 0, 200, 0, |
939 | 0, 0, 0, 0, 201, 0, 0, 0, 0, 0, |
940 | 0, 0, 0, 0, 160, 0, 354, 355, 356, 0, |
941 | 0, 195, 284, 63, 279, 280, 281, 282, 283, 0, |
942 | 640, 641, 146, 287, 0, 0, 196, 352, 0, 0, |
943 | 0, 353, 285, 0, 0, 0, 0, 295, 0, 286, |
944 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 357, |
945 | 0, 288, 289, 290, 291, 292, 293, 294, 298, 0, |
946 | 156, 157, 158, 0, 296, 0, 175, 0, 0, 0, |
947 | 0, 0, 163, 161, 170, 0, 164, 165, 166, 167, |
948 | 622, 168, 169, 0, 0, 171, 172, 173, 174, 0, |
949 | 0, 0, 1261, 162, 0, 0, 0, 0, 0, 0, |
950 | 0, 88, 87, 0, 89, 0, 0, 0, 0, 155, |
951 | 0, 0, 175, 0, 0, 0, 151, 148, 163, 161, |
952 | 170, 0, 164, 165, 166, 167, 146, 168, 169, 0, |
953 | 0, 171, 172, 173, 174, 0, 0, 177, 142, 162, |
954 | 1262, 0, 0, 0, 0, 0, 0, 141, 147, 0, |
955 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 1260, |
956 | 0, 0, 0, 143, 144, 149, 0, 0, 0, 0, |
957 | 0, 0, 982, 981, 980, 0, 975, 974, 973, 972, |
958 | 0, 970, 971, 105, 274, 979, 978, 977, 976, 0, |
959 | 0, 0, 969, 967, 0, 146, 0, 0, 160, 0, |
960 | 354, 355, 356, 348, 0, 0, 0, 0, 0, 0, |
961 | 0, 0, 0, 0, 640, 641, 0, 0, 1217, 1216, |
962 | 1211, 0, 1210, 1209, 1208, 1207, 0, 1205, 1206, 105, |
963 | 0, 1215, 1214, 1213, 1212, 0, 0, 0, 0, 0, |
964 | 1204, 0, 0, 0, 0, 0, 0, 0, 0, 88, |
965 | 87, 0, 89, 274, 156, 157, 158, 155, 0, 968, |
966 | 175, 0, 0, 0, 151, 148, 163, 161, 170, 0, |
967 | 164, 165, 166, 167, 0, 168, 169, 0, 0, 171, |
968 | 172, 173, 174, 146, 0, 177, 142, 162, 0, 0, |
969 | 0, 0, 0, 0, 0, 141, 147, 0, 0, 0, |
970 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
971 | 0, 143, 144, 149, 0, 0, 0, 0, 0, 0, |
972 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
973 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
974 | 0, 274, 0, 0, 0, 0, 160, 0, 354, 355, |
975 | 356, 146, 0, 88, 87, 0, 89, 0, 0, 0, |
976 | 0, 155, 0, 0, 175, 0, 0, 0, 151, 148, |
977 | 163, 161, 170, 0, 164, 165, 166, 167, 0, 168, |
978 | 169, 0, 0, 171, 172, 173, 174, 0, 0, 177, |
979 | 142, 162, 0, 0, 0, 0, 0, 0, 0, 141, |
980 | 147, 0, 156, 157, 158, 0, 0, 0, 0, 274, |
981 | 0, 0, 0, 0, 0, 143, 144, 149, 0, 805, |
982 | 0, 0, 88, 87, 0, 89, 0, 0, 0, 0, |
983 | 155, 0, 0, 175, 0, 0, 0, 151, 148, 163, |
984 | 161, 170, 0, 164, 165, 166, 167, 0, 168, 169, |
985 | 160, 146, 171, 172, 173, 174, 0, 0, 177, 142, |
986 | 162, 0, 0, 0, 804, 0, 0, 0, 141, 147, |
987 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
988 | 0, 0, 0, 0, 143, 144, 149, 0, 0, 0, |
989 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
990 | 0, 0, 0, 0, 0, 0, 156, 157, 158, 274, |
991 | 88, 87, 0, 89, 0, 0, 0, 0, 155, 160, |
992 | 159, 175, 0, 0, 0, 151, 148, 163, 161, 170, |
993 | 0, 164, 165, 166, 167, 0, 168, 169, 0, 0, |
994 | 171, 172, 173, 174, 0, 0, 177, 142, 162, 0, |
995 | 0, 0, 0, 0, 146, 0, 141, 147, 0, 0, |
996 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
997 | 0, 0, 143, 144, 149, 156, 157, 158, 88, 87, |
998 | 0, 89, 0, 0, 0, 0, 155, 0, 0, 175, |
999 | 0, 0, 0, 151, 148, 163, 161, 170, 0, 164, |
1000 | 165, 166, 167, 0, 168, 169, 0, 160, 171, 172, |
1001 | 173, 174, 274, 0, 177, 142, 162, 146, 0, 0, |
1002 | 0, 0, 0, 0, 759, 147, 0, 0, 0, 0, |
1003 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
1004 | 143, 144, 149, 0, 0, 0, 0, 0, 0, 0, |
1005 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
1006 | 0, 0, 0, 156, 157, 158, 0, 0, 0, 0, |
1007 | 0, 0, 0, 146, 0, 160, 0, 0, 88, 87, |
1008 | 0, 89, 0, 0, 88, 87, 155, 89, 0, 175, |
1009 | 0, 0, 0, 151, 148, 163, 161, 170, 0, 164, |
1010 | 165, 166, 167, 0, 168, 169, 0, 0, 171, 172, |
1011 | 173, 174, 0, 0, 177, 142, 162, 0, 409, 0, |
1012 | 0, 0, 0, 0, 141, 147, 0, 146, 0, 0, |
1013 | 0, 156, 157, 158, 0, 0, 0, 0, 0, 0, |
1014 | 143, 144, 149, 0, 0, 0, 391, 0, 0, 0, |
1015 | 407, 0, 0, 389, 390, 0, 0, 0, 393, 394, |
1016 | 405, 395, 396, 397, 398, 399, 400, 401, 402, 392, |
1017 | 0, 0, 0, 0, 0, 652, 406, 0, 0, 404, |
1018 | 0, 88, 87, 146, 89, 988, 403, 0, 0, 155, |
1019 | 0, 0, 175, 0, 0, 408, 151, 148, 163, 161, |
1020 | 170, 0, 164, 165, 166, 167, 0, 168, 169, 0, |
1021 | 0, 171, 172, 173, 174, 0, 0, 177, 142, 162, |
1022 | 0, 0, 0, 0, 0, 0, 0, 141, 147, 0, |
1023 | 0, 156, 157, 158, 0, 0, 0, 146, 0, 0, |
1024 | 0, 722, 0, 143, 144, 149, 0, 0, 0, 0, |
1025 | 0, 0, 0, 0, 488, 175, 489, 0, 0, 151, |
1026 | 148, 163, 161, 170, 0, 164, 165, 166, 167, 0, |
1027 | 168, 169, 0, 0, 171, 172, 173, 174, 458, 0, |
1028 | 177, 142, 162, 0, 0, 0, 0, 0, 0, 0, |
1029 | 141, 147, 0, 0, 0, 0, 0, 0, 0, 0, |
1030 | 0, 0, 0, 0, 0, 0, 143, 144, 149, 0, |
1031 | 380, 175, 381, 0, 0, 151, 148, 163, 161, 170, |
1032 | 0, 164, 165, 166, 167, 0, 168, 169, 0, 0, |
1033 | 171, 172, 173, 174, 156, 157, 158, 142, 162, 0, |
1034 | 0, 160, 0, 0, 0, 0, 141, 147, 0, 0, |
1035 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
1036 | 0, 0, 143, 144, 149, 175, 0, 0, 0, 151, |
1037 | 148, 163, 161, 170, 0, 164, 165, 166, 167, 0, |
1038 | 168, 169, 0, 0, 171, 172, 173, 174, 0, 0, |
1039 | 0, 142, 162, 0, 0, 0, 0, 160, 0, 0, |
1040 | 141, 147, 0, 0, 0, 0, 0, 0, 0, 0, |
1041 | 0, 0, 0, 0, 0, 0, 143, 144, 149, 0, |
1042 | 0, 175, 0, 0, 0, 151, 148, 163, 161, 170, |
1043 | 0, 164, 165, 166, 167, 0, 168, 169, 0, 0, |
1044 | 171, 172, 173, 174, 0, 0, 0, 142, 162, 0, |
1045 | 0, 160, 0, 0, 0, 0, 141, 147, 0, 0, |
1046 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
1047 | 0, 0, 143, 144, 149, 175, 0, 0, 0, 151, |
1048 | 148, 163, 161, 170, 0, 164, 165, 166, 167, 0, |
1049 | 168, 169, 0, 0, 171, 172, 173, 174, 0, 0, |
1050 | 0, 142, 162, 0, 0, 0, 0, 160, 0, 0, |
1051 | 141, 147, 0, 0, 0, 0, 0, 0, 0, 0, |
1052 | 0, 0, 0, 0, 0, 0, 143, 144, 149, 0, |
1053 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
1054 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
1055 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
1056 | 0, 160 |
1057 | }; |
1058 | |
1059 | YYSTATIC YYCONST short YYFARDATA YYPACT[] = { |
1060 | -1000, 1575,-1000, 497, 461,-1000,-1000,-1000,-1000,-1000, |
1061 | -1000,-1000, 437, 429, 427, 426,-1000,-1000,-1000, 33, |
1062 | 33, -455, 65, 65,-1000,-1000,-1000, 419,-1000, -115, |
1063 | 125,-1000, 896, 1404, 24, 885, 33, -367, -370,-1000, |
1064 | -173, 669, 24, 669,-1000,-1000,-1000, 138, 2333, 125, |
1065 | 125, 125, 125,-1000,-1000, 167,-1000,-1000,-1000, -161, |
1066 | 1038,-1000,-1000, 970, 24, 24,-1000,-1000, 1420,-1000, |
1067 | -1000,-1000,-1000,-1000,-1000,-1000, 33, -126,-1000,-1000, |
1068 | -1000,-1000, 510, -125, 3020, 1190,-1000,-1000,-1000,-1000, |
1069 | 2456,-1000, 33,-1000, 657,-1000, 1300, 1661, 24, 1234, |
1070 | 1233, 1231, 1193, 1192, 1191, 1660, 1496, 43,-1000, 33, |
1071 | 733, 283,-1000,-1000, 164, 1190, 125, 3020,-1000,-1000, |
1072 | -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, |
1073 | -1000,-1000,-1000, 1495, 146, 1302, 155, -234, -240, -241, |
1074 | -244, 510,-1000, -102, 510, 1076, 966,-1000,-1000, -46, |
1075 | -1000, 3574, 187, 1169,-1000,-1000,-1000,-1000,-1000, 3410, |
1076 | -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, |
1077 | 410,-1000,-1000,-1000,-1000,-1000, 1190, 1659, 389, 1190, |
1078 | 1190, 1190,-1000, 3194, 76,-1000,-1000, 1657, 1037, 2932, |
1079 | -1000, 3574,-1000,-1000,-1000, 171, 171,-1000, 1656,-1000, |
1080 | -1000, 154, 1493, 1490, 1721, 1463,-1000,-1000, 33,-1000, |
1081 | 33, 77,-1000,-1000,-1000,-1000, 1177,-1000,-1000,-1000, |
1082 | -1000,-1000, 879, 33, 3291,-1000, 73, 44,-1000,-1000, |
1083 | 110, 33, 65, 795, 24, 110, 1076, 3354, 3020, -85, |
1084 | 171, 2932, 1655,-1000, 240,-1000,-1000,-1000,-1000,-1000, |
1085 | -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, |
1086 | 1071, 69, 972, 827,-1000, 72,-1000, 365, 510,-1000, |
1087 | -1000, 3020,-1000,-1000, 88, 556, 171, 125,-1000,-1000, |
1088 | -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, |
1089 | -1000,-1000,-1000,-1000,-1000,-1000,-1000, 1654, 1649, 2139, |
1090 | 844, 359, 1287, 1641, 76, 1489, -19,-1000, 33, -19, |
1091 | -1000, 65,-1000, 33,-1000, 33,-1000, 33,-1000,-1000, |
1092 | -1000,-1000, 843,-1000, 33, 33,-1000, 1190,-1000,-1000, |
1093 | -1000, -388,-1000,-1000,-1000,-1000,-1000, 283, -44, 99, |
1094 | -1000,-1000, 1190, 1013,-1000, 1232, 634, 1639,-1000, 135, |
1095 | 125, 211,-1000,-1000,-1000, 1638, 1637, 3574, 125, 125, |
1096 | 125, 125,-1000, 510,-1000,-1000, 3574, 614,-1000, 1190, |
1097 | -1000, -72,-1000, 556, 866, 840, 828, 125, 125, 2759, |
1098 | -1000,-1000,-1000,-1000,-1000,-1000, 33, 1232, 1088,-1000, |
1099 | -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, |
1100 | -1000,-1000,-1000,-1000,-1000, 30,-1000,-1000,-1000, 1632, |
1101 | 1035,-1000, 744, 1488,-1000,-1000, 2611,-1000,-1000, 33, |
1102 | -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, 416, |
1103 | 415, 412,-1000,-1000,-1000,-1000,-1000, 33, 33, 404, |
1104 | 3188,-1000,-1000, -204, -206,-1000,-1000,-1000,-1000,-1000, |
1105 | -1000,-1000, -53, 1631,-1000, 33, 1159, 0, 171, 812, |
1106 | 33,-1000, 44, 90, 90, 90, 90, 3020, 240,-1000, |
1107 | -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, |
1108 | 1630, 1629, 1485,-1000,-1000,-1000, 2759,-1000,-1000,-1000, |
1109 | -1000, 1232, 1628, 24, 3574,-1000, 110, 1323,-1000, -120, |
1110 | -121,-1000,-1000, -359,-1000,-1000, 24, 266, 357, 24, |
1111 | -1000,-1000, 1026,-1000,-1000, 24,-1000, 24,-1000, 1019, |
1112 | 1007,-1000,-1000, 125, -175, -371, 1620,-1000,-1000,-1000, |
1113 | -1000, 125, -372,-1000,-1000, -353,-1000,-1000,-1000, 1286, |
1114 | -1000, 788, 125, 3574, 1190, 3520, 33, 96, 777,-1000, |
1115 | -1000,-1000,-1000,-1000,-1000,-1000, 1618,-1000,-1000,-1000, |
1116 | -1000,-1000,-1000, 1615,-1000,-1000, 657, 96, 1484,-1000, |
1117 | 1483, 825, 1482, 1479, 1478, 1474, 1473,-1000, 323, 1144, |
1118 | -1000, 87, 1190,-1000,-1000,-1000, 16, 125, 96, 398, |
1119 | 148, 3088,-1000,-1000, 1279, 1190,-1000, 776,-1000,-1000, |
1120 | -47, 3020, 3020, 952, 1275, 556, 1190, 1190, 1190, 1190, |
1121 | -1000, 2417,-1000, 1190,-1000, 125, 125, 125, 703, 1190, |
1122 | -8, 1190, 245, 1472,-1000, 422,-1000,-1000,-1000,-1000, |
1123 | -1000,-1000, 33,-1000, 1232,-1000,-1000, 1076, -15, 1058, |
1124 | -1000,-1000, 1190, 1464, 1226,-1000,-1000,-1000,-1000,-1000, |
1125 | -1000, -17, 171, 701, 3020, 2863, 128, -44, 1459, 1267, |
1126 | -1000,-1000, 3520, -53, 821, 33, -75, 3574, 33, 1190, |
1127 | 814,-1000,-1000,-1000, 110,-1000,-1000,-1000,-1000,-1000, |
1128 | -1000,-1000, 33, 65,-1000, -22, 1190, 96, 1457, 862, |
1129 | 1456, 1262, 1260,-1000, 76, 33, 33, 1455, 1136,-1000, |
1130 | -1000, 1232, 1614, 1451, 1613, 1450, 1449, 1612, 1611, 1190, |
1131 | 125,-1000, 125, 33, 143, 125, 24, 3020, 125, 594, |
1132 | 662, 121, -172, 1447, 95, 1823, 134, 1905, 33,-1000, |
1133 | 1312,-1000, 869,-1000, 869, 869, 869, 869, 869, -144, |
1134 | -1000, 33, 33, 125,-1000,-1000,-1000,-1000,-1000,-1000, |
1135 | 1190, 1446, 1245, 990,-1000,-1000, 349, 1219, 993, 361, |
1136 | 130,-1000, -37, 33, 1434, 1433,-1000, 3574, 1610, 1169, |
1137 | 1169, 1169, 125, 125,-1000, 947, 865, 422,-1000,-1000, |
1138 | -1000,-1000,-1000, 1432, 347, 922, 981, -75, 1609, 1608, |
1139 | 3464,-1000,-1000, 555, 868, 1127, 721, -75, 3574, 33, |
1140 | 1190, -339, 125, 1190,-1000,-1000, 3574,-1000,-1000, 1190, |
1141 | -1000, -53, 121, 1428, -246,-1000,-1000, 1190, 2759, 808, |
1142 | 954, -133, -147, 1423, 1414, 125, 1309,-1000, -53,-1000, |
1143 | 110, 110,-1000,-1000,-1000,-1000, 266,-1000,-1000,-1000, |
1144 | -1000,-1000,-1000,-1000, 1169, 1190, 1412, 33, 1190, 1410, |
1145 | -1000, 125, -75, 1601, 794, 789, 787, 754,-1000, 96, |
1146 | 1747,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, |
1147 | -1000,-1000, 1131, 1129, 1600, 954, 76, 1409, 909, 24, |
1148 | 1599, -401, -67,-1000,-1000,-1000,-1000,-1000,-1000,-1000, |
1149 | -1000,-1000,-1000,-1000, 648,-1000,-1000,-1000,-1000,-1000, |
1150 | -1000,-1000,-1000,-1000,-1000,-1000, 1597, 1597,-1000, 1597, |
1151 | 1786,-1000,-1000, -414,-1000, -405,-1000,-1000, -419,-1000, |
1152 | -1000,-1000, 1408,-1000,-1000,-1000,-1000,-1000,-1000,-1000, |
1153 | 76,-1000,-1000,-1000,-1000,-1000, 127, 306, 1190,-1000, |
1154 | 96, 630, 338,-1000, 3088, 395, 969,-1000,-1000,-1000, |
1155 | -1000,-1000, 556, -53, 1169, 1190,-1000, 125, 1200, 3020, |
1156 | -1000,-1000,-1000, 199,-1000,-1000,-1000, 1188, 1185, 1178, |
1157 | 1171, 1158, 1150, 1106, 1104, 1100, 1048, 1036, 995, 994, |
1158 | 329, 992, 978, 24, 658, 1058, -53, -53, 33, 939, |
1159 | -1000,-1000,-1000, 1076, 1076, 1076, 1076,-1000,-1000,-1000, |
1160 | -1000,-1000,-1000, 1076, 1076, 1076,-1000,-1000,-1000,-1000, |
1161 | -1000, -435, 2759, 732,-1000, 1076, 1190, 777,-1000, 76, |
1162 | -1000, 76, -23,-1000,-1000, 2711, 76, 33,-1000,-1000, |
1163 | 1190,-1000, 1406,-1000,-1000, 1121,-1000,-1000, -299, 1057, |
1164 | 1905,-1000,-1000,-1000,-1000, 1232,-1000, -250, -269, 33, |
1165 | -1000,-1000,-1000,-1000, 620, 150, 96, 856, 723,-1000, |
1166 | -1000,-1000,-1000,-1000,-1000,-1000, -428,-1000,-1000, 41, |
1167 | -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, |
1168 | -1000, 582,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, |
1169 | -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, |
1170 | -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, |
1171 | -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, 33,-1000, |
1172 | -1000,-1000,-1000, 1596, 1232, 1595,-1000,-1000,-1000,-1000, |
1173 | -1000, 375, 1402, 1200,-1000, 422, 1400, 1199,-1000, 2565, |
1174 | -1000,-1000,-1000, -58, 33, 1487, 33, 2665, 33, 37, |
1175 | 33, 384, 33, 65, 33, 33, 33, 33, 33, 33, |
1176 | 33, 65, 33, 33, 33, 33, 33, 33, 33, 950, |
1177 | 938, 934, 929, 33, 33, -148, 33, 1399, 1232,-1000, |
1178 | -1000, 1580, 1579, 1395, 1392, 731,-1000,-1000,-1000,-1000, |
1179 | -1000,-1000,-1000,-1000, 171, -30,-1000, 1263,-1000,-1000, |
1180 | -75,-1000,-1000, 1232,-1000, 1578, 1577, 1576, 1573, 1572, |
1181 | 1563, 160, 1562, 1561, 1560, 1559, 1558, 1555,-1000,-1000, |
1182 | -1000, 266,-1000, 1553, 1390, 1667,-1000,-1000,-1000,-1000, |
1183 | 1388,-1000, 584, 33,-1000, 1264, 33, 33, 955, 96, |
1184 | 730,-1000,-1000,-1000,-1000,-1000,-1000,-1000, 116, 33, |
1185 | 690, 53,-1000,-1000,-1000,-1000,-1000, 3020, 636,-1000, |
1186 | -1000,-1000, 1619, 1387, 1386, 725, 91, 1385, 1384, 724, |
1187 | 1383, 715, 1382, 1380, 714, 1377, 1374, 712, 1373, 710, |
1188 | 1369, 706, 1368, 700, 1358, 689, 1356, 686, 1355, 679, |
1189 | 1354, 655, 1353, 624, 65, 33, 33, 33, 33, 33, |
1190 | 33, 33, 1352, 613, 1351, 596,-1000, 337, -53, -53, |
1191 | -1000,-1000, 895, 3574, -75, -53, 1056, 1552, 1551, 1550, |
1192 | 1549, 1118, -53,-1000,-1000,-1000,-1000, 33, 595, 96, |
1193 | 591, 588, 33, 1232,-1000,-1000, 1350, 1115, 1096, 1077, |
1194 | 1349,-1000, 36,-1000, 951, 571, 58,-1000,-1000,-1000, |
1195 | 1547, 1347,-1000,-1000, 1544,-1000, 1541,-1000,-1000, 1539, |
1196 | -1000,-1000, 1533,-1000, 1532,-1000, 1531,-1000, 1530,-1000, |
1197 | 1529,-1000, 1525,-1000, 1524,-1000, 1522,-1000, 1520, 1346, |
1198 | 563, 1345, 560, 1342, 551, 1340, 538,-1000, 1517,-1000, |
1199 | 1512,-1000, 1338, 1336,-1000, 2759, 1056, 1334, 1510,-1000, |
1200 | 660, 266, 1333, 490,-1000, 1291,-1000, 2070, 1332,-1000, |
1201 | 33, 33, 33,-1000,-1000, 2665,-1000,-1000,-1000,-1000, |
1202 | -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, |
1203 | -1000,-1000,-1000, 1508,-1000, 1507,-1000, 1506,-1000, 1504, |
1204 | -1000,-1000,-1000,-1000, -34, 1502, 954, -53,-1000,-1000, |
1205 | -1000, 96,-1000, 909,-1000, 1329, 1328, 1319,-1000, 249, |
1206 | 1298, 2249, 331, 460, 466, 491, 446, 435, 454, 408, |
1207 | 381, 378,-1000,-1000,-1000,-1000, 368, 126, -75, -53, |
1208 | -1000, 1318, 2140, 1204,-1000,-1000,-1000,-1000,-1000,-1000, |
1209 | -1000,-1000, -33,-1000,-1000,-1000,-1000,-1000,-1000,-1000, |
1210 | -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, |
1211 | -1000,-1000,-1000,-1000, 259, 364, 303, 300,-1000,-1000, |
1212 | -1000, 1501, 1316,-1000,-1000,-1000,-1000,-1000,-1000,-1000, |
1213 | -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, 1500, |
1214 | 96,-1000,-1000,-1000,-1000,-1000, -53, -436, 33, 1297, |
1215 | 1315, -191, 1313,-1000,-1000, 171,-1000, 3574, 2759, -35, |
1216 | -75, 1056, 1405, -53, 1306,-1000 |
1217 | }; |
1218 | |
1219 | YYSTATIC YYCONST short YYFARDATA YYPGO[] = { |
1220 | 0, 53, 57, 6, 1914, 43, 40, 29, 1909, 0, |
1221 | 1908, 1907, 1906, 223, 50, 1905, 1904, 2, 1903, 48, |
1222 | 38, 1, 27, 30, 31, 4, 1899, 45, 22, 59, |
1223 | 1898, 136, 39, 9, 25, 7, 13, 1897, 41, 1896, |
1224 | 14, 26, 1895, 1891, 5, 3, 8, 10, 1890, 1889, |
1225 | 1888, 1886, 32, 33, 70, 1885, 1884, 1883, 1881, 12, |
1226 | 1877, 1876, 11, 1866, 35, 1865, 18, 36, 16, 24, |
1227 | 42, 23, 556, 65, 1288, 52, 127, 1856, 1855, 1854, |
1228 | 1853, 1852, 1849, 19, 34, 1847, 1341, 1845, 1844, 28, |
1229 | 655, 115, 1843, 47, 1280, 1842, 1835, 1834, 1833, 1829, |
1230 | 1814, 1813, 1812, 1811, 1810, 1809, 1808, 1807, 1806, 956, |
1231 | 1805, 64, 62, 1804, 58, 122, 56, 76, 1803, 1802, |
1232 | 49, 1801, 1800, 1799, 1798, 1797, 1796, 61, 1794, 1792, |
1233 | 1791, 66, 114, 44, 1790, 15, 284, 1789, 1787, 1785, |
1234 | 1784, 1782, 1779, 1778, 1777, 1776, 1775, 1774, 1769, 836, |
1235 | 1768, 1767, 1759, 1758, 1757, 1756, 1752, 1751, 60, 1749, |
1236 | 1746, 119, 1745, 1738, 1732, 113, 1731, 1717, 1716, 1715, |
1237 | 1714, 1709, 1707, 69, 1703, 67, 1706, 63, 1705, 478, |
1238 | 1704, 1702, 1659, 1615, 1528, 1504 |
1239 | }; |
1240 | YYSTATIC YYCONST yyr_t YYFARDATA YYR1[]={ |
1241 | |
1242 | 0, 109, 109, 110, 110, 110, 110, 110, 110, 110, |
1243 | 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, |
1244 | 110, 110, 110, 110, 110, 110, 110, 110, 110, 136, |
1245 | 136, 36, 36, 133, 133, 133, 2, 2, 1, 1, |
1246 | 1, 9, 24, 24, 23, 23, 23, 134, 134, 134, |
1247 | 134, 134, 135, 135, 135, 135, 135, 135, 135, 135, |
1248 | 135, 93, 93, 93, 93, 94, 94, 94, 94, 10, |
1249 | 11, 73, 72, 72, 59, 61, 61, 61, 62, 62, |
1250 | 62, 65, 65, 132, 132, 132, 60, 60, 60, 60, |
1251 | 60, 60, 130, 130, 130, 119, 12, 12, 12, 12, |
1252 | 12, 12, 118, 137, 113, 138, 139, 111, 77, 77, |
1253 | 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, |
1254 | 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, |
1255 | 77, 77, 77, 77, 77, 140, 140, 141, 141, 112, |
1256 | 112, 142, 142, 56, 56, 57, 57, 69, 69, 18, |
1257 | 18, 18, 18, 18, 19, 19, 68, 68, 67, 67, |
1258 | 58, 21, 21, 22, 143, 143, 143, 143, 143, 143, |
1259 | 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, |
1260 | 143, 143, 143, 116, 79, 79, 79, 79, 79, 79, |
1261 | 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, |
1262 | 4, 4, 35, 35, 16, 16, 75, 75, 75, 75, |
1263 | 75, 75, 75, 7, 7, 7, 7, 8, 8, 8, |
1264 | 8, 8, 8, 8, 76, 74, 74, 74, 74, 74, |
1265 | 74, 144, 144, 81, 81, 81, 145, 145, 150, 150, |
1266 | 150, 150, 150, 150, 150, 150, 146, 82, 82, 82, |
1267 | 147, 147, 151, 151, 151, 151, 151, 151, 151, 152, |
1268 | 38, 38, 34, 34, 153, 114, 78, 78, 78, 78, |
1269 | 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, |
1270 | 78, 78, 78, 78, 78, 78, 78, 78, 78, 83, |
1271 | 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, |
1272 | 83, 83, 83, 83, 83, 3, 3, 3, 13, 13, |
1273 | 13, 13, 13, 80, 80, 80, 80, 80, 80, 80, |
1274 | 80, 80, 80, 80, 80, 80, 80, 80, 80, 154, |
1275 | 115, 115, 155, 155, 155, 155, 155, 155, 155, 155, |
1276 | 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, |
1277 | 155, 155, 155, 155, 155, 155, 158, 159, 156, 161, |
1278 | 161, 160, 160, 160, 163, 162, 162, 162, 162, 166, |
1279 | 166, 166, 169, 164, 167, 168, 165, 165, 165, 117, |
1280 | 170, 170, 172, 172, 172, 171, 171, 173, 173, 14, |
1281 | 14, 174, 174, 174, 174, 174, 174, 174, 174, 174, |
1282 | 174, 174, 174, 174, 174, 174, 41, 41, 41, 41, |
1283 | 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, |
1284 | 41, 41, 41, 41, 41, 175, 31, 31, 32, 32, |
1285 | 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, |
1286 | 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, |
1287 | 40, 40, 40, 40, 40, 40, 40, 40, 40, 42, |
1288 | 42, 42, 43, 43, 43, 47, 47, 46, 46, 45, |
1289 | 45, 44, 44, 48, 48, 49, 49, 49, 50, 50, |
1290 | 50, 50, 51, 51, 149, 95, 96, 97, 98, 99, |
1291 | 100, 101, 102, 103, 104, 105, 106, 107, 108, 157, |
1292 | 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, |
1293 | 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, |
1294 | 157, 157, 6, 6, 6, 6, 6, 53, 53, 54, |
1295 | 54, 55, 55, 25, 25, 26, 26, 27, 27, 27, |
1296 | 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, |
1297 | 5, 5, 71, 71, 71, 71, 33, 33, 33, 33, |
1298 | 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, |
1299 | 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, |
1300 | 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, |
1301 | 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, |
1302 | 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, |
1303 | 33, 20, 20, 15, 15, 15, 15, 15, 15, 15, |
1304 | 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, |
1305 | 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, |
1306 | 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, |
1307 | 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, |
1308 | 15, 15, 28, 28, 28, 28, 28, 28, 28, 28, |
1309 | 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, |
1310 | 28, 28, 28, 28, 28, 28, 52, 52, 52, 52, |
1311 | 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, |
1312 | 52, 52, 52, 52, 30, 30, 29, 29, 29, 29, |
1313 | 29, 131, 131, 131, 131, 131, 131, 64, 64, 64, |
1314 | 63, 63, 87, 87, 84, 84, 85, 17, 17, 37, |
1315 | 37, 37, 37, 37, 37, 37, 37, 86, 86, 86, |
1316 | 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, |
1317 | 86, 86, 176, 176, 120, 120, 120, 120, 120, 120, |
1318 | 120, 120, 120, 120, 120, 121, 121, 88, 88, 89, |
1319 | 89, 177, 122, 90, 90, 90, 90, 90, 90, 90, |
1320 | 90, 90, 90, 123, 123, 178, 178, 178, 66, 66, |
1321 | 179, 179, 179, 179, 179, 179, 180, 182, 181, 124, |
1322 | 124, 125, 125, 183, 183, 183, 183, 126, 148, 91, |
1323 | 91, 91, 91, 91, 91, 91, 91, 91, 91, 127, |
1324 | 127, 184, 184, 184, 184, 184, 184, 184, 128, 128, |
1325 | 92, 92, 92, 129, 129, 185, 185, 185, 185 }; |
1326 | YYSTATIC YYCONST yyr_t YYFARDATA YYR2[]={ |
1327 | |
1328 | 0, 0, 2, 4, 4, 3, 1, 1, 1, 1, |
1329 | 1, 1, 4, 4, 4, 4, 1, 1, 1, 2, |
1330 | 2, 3, 2, 2, 1, 1, 1, 4, 1, 0, |
1331 | 2, 1, 3, 2, 4, 6, 1, 1, 1, 1, |
1332 | 3, 1, 1, 1, 1, 4, 4, 4, 4, 4, |
1333 | 4, 4, 2, 3, 2, 2, 2, 1, 1, 2, |
1334 | 1, 2, 4, 6, 3, 5, 7, 9, 3, 4, |
1335 | 7, 1, 1, 1, 2, 0, 2, 2, 0, 6, |
1336 | 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, |
1337 | 2, 3, 1, 2, 3, 7, 0, 2, 2, 2, |
1338 | 2, 2, 3, 3, 2, 1, 4, 3, 0, 2, |
1339 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
1340 | 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, |
1341 | 3, 2, 2, 2, 5, 0, 2, 0, 2, 0, |
1342 | 2, 3, 1, 0, 1, 1, 3, 0, 3, 1, |
1343 | 1, 1, 1, 1, 0, 2, 4, 3, 0, 2, |
1344 | 3, 0, 1, 5, 3, 4, 4, 4, 1, 1, |
1345 | 1, 1, 1, 2, 2, 4, 13, 22, 1, 1, |
1346 | 5, 3, 4, 7, 0, 2, 2, 2, 2, 2, |
1347 | 2, 2, 5, 2, 2, 2, 2, 2, 2, 5, |
1348 | 0, 2, 0, 2, 0, 3, 9, 9, 7, 7, |
1349 | 1, 1, 1, 2, 2, 1, 4, 0, 1, 1, |
1350 | 2, 2, 2, 2, 4, 2, 5, 3, 2, 2, |
1351 | 1, 4, 3, 0, 2, 2, 0, 2, 2, 2, |
1352 | 2, 2, 1, 1, 1, 1, 9, 0, 2, 2, |
1353 | 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, |
1354 | 0, 4, 1, 3, 1, 13, 0, 2, 2, 2, |
1355 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
1356 | 2, 2, 2, 2, 2, 5, 8, 6, 5, 0, |
1357 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
1358 | 4, 4, 4, 4, 5, 1, 1, 1, 0, 4, |
1359 | 4, 4, 4, 0, 2, 2, 2, 2, 2, 2, |
1360 | 2, 2, 2, 2, 2, 2, 2, 2, 5, 1, |
1361 | 0, 2, 2, 1, 2, 4, 5, 1, 1, 1, |
1362 | 1, 2, 1, 1, 1, 1, 1, 4, 6, 4, |
1363 | 4, 11, 1, 5, 3, 5, 3, 1, 2, 2, |
1364 | 1, 2, 4, 4, 1, 2, 2, 2, 2, 2, |
1365 | 2, 2, 1, 2, 1, 1, 1, 4, 4, 2, |
1366 | 4, 2, 0, 1, 1, 3, 1, 3, 1, 0, |
1367 | 3, 5, 4, 3, 5, 5, 5, 5, 5, 5, |
1368 | 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, |
1369 | 4, 4, 4, 4, 5, 5, 5, 5, 4, 4, |
1370 | 4, 4, 4, 4, 3, 2, 0, 1, 1, 2, |
1371 | 1, 1, 1, 1, 4, 4, 5, 4, 4, 4, |
1372 | 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, |
1373 | 8, 8, 8, 8, 7, 7, 7, 7, 7, 0, |
1374 | 2, 2, 0, 2, 2, 0, 2, 0, 2, 0, |
1375 | 2, 0, 2, 0, 2, 0, 2, 2, 0, 2, |
1376 | 3, 2, 0, 2, 1, 1, 1, 1, 1, 1, |
1377 | 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, |
1378 | 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, |
1379 | 5, 3, 2, 2, 2, 2, 2, 5, 4, 6, |
1380 | 2, 4, 0, 3, 3, 1, 1, 0, 3, 0, |
1381 | 1, 1, 3, 0, 1, 1, 3, 1, 3, 4, |
1382 | 4, 4, 4, 5, 1, 1, 1, 1, 1, 1, |
1383 | 1, 3, 1, 3, 4, 1, 0, 10, 6, 5, |
1384 | 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
1385 | 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, |
1386 | 1, 2, 3, 4, 6, 5, 1, 1, 1, 1, |
1387 | 1, 1, 1, 2, 2, 1, 2, 2, 4, 1, |
1388 | 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, |
1389 | 1, 0, 5, 0, 1, 1, 1, 1, 1, 1, |
1390 | 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, |
1391 | 1, 1, 1, 1, 3, 2, 2, 1, 1, 1, |
1392 | 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, |
1393 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
1394 | 1, 1, 2, 1, 3, 2, 3, 4, 2, 2, |
1395 | 2, 5, 5, 7, 4, 3, 2, 3, 2, 1, |
1396 | 1, 2, 3, 2, 1, 2, 1, 1, 1, 1, |
1397 | 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, |
1398 | 1, 1, 1, 1, 1, 3, 0, 1, 1, 3, |
1399 | 2, 6, 7, 3, 3, 3, 6, 0, 1, 3, |
1400 | 5, 6, 4, 4, 1, 3, 3, 1, 1, 1, |
1401 | 1, 4, 1, 6, 6, 6, 4, 1, 1, 1, |
1402 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
1403 | 1, 1, 1, 1, 3, 2, 5, 4, 7, 6, |
1404 | 7, 6, 9, 8, 3, 8, 4, 0, 2, 0, |
1405 | 1, 3, 3, 0, 2, 2, 2, 3, 2, 2, |
1406 | 2, 2, 2, 0, 2, 3, 1, 1, 1, 1, |
1407 | 3, 8, 2, 3, 1, 1, 3, 3, 3, 4, |
1408 | 6, 0, 2, 3, 1, 3, 1, 4, 3, 0, |
1409 | 2, 2, 2, 3, 3, 3, 3, 3, 3, 0, |
1410 | 2, 2, 3, 3, 4, 2, 1, 1, 3, 5, |
1411 | 0, 2, 2, 0, 2, 4, 3, 1, 1 }; |
1412 | YYSTATIC YYCONST short YYFARDATA YYCHK[]={ |
1413 | |
1414 | -1000,-109,-110,-111,-113,-114,-116,-117,-118,-119, |
1415 | -120,-121,-122,-124,-126,-128,-130,-131,-132, 525, |
1416 | 526, 460, 528, 529,-133,-134,-135, 532, 533,-139, |
1417 | 409,-152, 411,-170,-137, 455,-176, 463, 408, 470, |
1418 | 471, 430, -87, 431, -93, -94, 273, 449, 530, 534, |
1419 | 535, 536, 537, 538, 539, 540, 59,-138, 410, 412, |
1420 | 454, 447, 448, 450, -10, -11, 123, 123,-115, 123, |
1421 | 123, 123, 123, -9, 264, -9, 527, -88, -24, 265, |
1422 | 264, -24, 123,-140, 314, -1, -2, 261, 260, 263, |
1423 | -78, -16, 91,-171, 123,-174, 278, 38,-175, 286, |
1424 | 287, 284, 283, 282, 281, 288, -31, -32, 267, 91, |
1425 | -9, -90, 469, 469, -92, -1, 469, -86, 432, 433, |
1426 | 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, |
1427 | 444, 445, 446, -31, -86, 263, -28, -70, -74, -93, |
1428 | -94, 306, 297, 322, 323,-149, 33, 307, 276, 324, |
1429 | -52, 275, 91, -5, -76, 268, 413, 414, 415, 358, |
1430 | 357, 278, 298, 277, 281, 282, 283, 284, 286, 287, |
1431 | 279, 290, 291, 292, 293, 271, -1, 296, -1, -1, |
1432 | -1, -1, 262, -77,-172, 318, 379, 61, -73, 40, |
1433 | -75, -7, -76, 269, 272, 325, 340, -8, 295, 300, |
1434 | 302, 308, -31, -31,-112,-109, 125,-155, 416,-156, |
1435 | 418,-154, 420, 421,-117,-157, -2,-131,-120,-133, |
1436 | -132,-135, 472, 458, 508,-158, 507,-160, 419, -95, |
1437 | -96, -97, -98, -99,-108,-100,-101,-102,-103,-104, |
1438 | -105,-106,-107,-159,-163, 395, 396, 397, 398, 399, |
1439 | 400, 401, 402, 403, 404, 405, 406, 407, 123, 417, |
1440 | -123,-125,-127,-129, -9, -1, 461,-136, -70, -76, |
1441 | -141, 315, -71, -70, 91, -28,-149, 46, -7, 328, |
1442 | 329, 330, 331, 332, 326, 346, 353, 337, 365, 366, |
1443 | 367, 368, 369, 370, 371, 351, 378, 294, 372, -79, |
1444 | -9,-173,-174, 42, 40, -31, 40, -14, 91, 40, |
1445 | -14, 40, -14, 40, -14, 40, -14, 40, -14, 40, |
1446 | 41, 267, -9, 263, 58, 44, 262, -1, 354, 355, |
1447 | 356, 473, 379, 475, 476, 477, 478, -90, -91, -1, |
1448 | 329, 330, -1, -71, 41, -36, 61, 288, 262, 44, |
1449 | 390, 91, 38, 42, 359, 360, 361, 60, 390, 390, |
1450 | 390, 390, -70, 306, -70, -75, -7, 33, -9, -1, |
1451 | 280, 279, 289, -28, -1, -76, 42, 471, 47, -28, |
1452 | 270, 272, 281, 282, 283, 284, 40, -36, -1, 329, |
1453 | 330, 322, 345, 334, 335, 337, 338, 339, 340, 341, |
1454 | 342, 343, 344, 362, 355, 336, 352, 326, 371, 294, |
1455 | -2, 40, 61, -72, -71, -74, -28, -7, -7, 40, |
1456 | 301, 303, 304, 305, 41, 41, 125,-143,-114,-111, |
1457 | -144,-146,-116,-117,-131,-120,-132, 452, 453,-148, |
1458 | 508,-133,-135, 507, 321, 422, 427, 472, 408, 125, |
1459 | -9, -9, 40, 451, 58, 91, -9, -71, 357, 364, |
1460 | 91,-161,-162,-164,-166,-167,-168, 311,-169, 309, |
1461 | 313, 312, -9, -2, -9, -24, 40, -23, -24, 266, |
1462 | 286, 287, -31, -9, -2, -75, -28, -76, 270, 272, |
1463 | -71, -36, 341,-175, -7, -72, 40,-115,-158, -2, |
1464 | -9, 125,-178, 462,-131,-179,-180, 467, 468,-181, |
1465 | -132,-135, 464, 125,-183,-177,-179,-182, 338, 462, |
1466 | 465, 125,-184, 460, 408, 463, 296,-132,-135, 125, |
1467 | -185, 460, 463,-132,-135, -89, 420, 125,-136,-142, |
1468 | -71, -1, 471, -7, -1, -13, 40, 40, -28, 328, |
1469 | 329, 330, 331, 377, 371, 326, 479, 365, 366, 367, |
1470 | 368, 375, 376, 294, 93, 125, 44, 40, -2, 41, |
1471 | -23, -9, -23, -24, -9, -9, -9, 93, -9, -9, |
1472 | 474, -1, -1, 330, 329, 327, 336, 390, 40, 61, |
1473 | 43, 123, 40, 40, 263, -1, 93, -30, -29, 275, |
1474 | -9, 40, 40, -54, -55, -28, -1, -1, -1, -1, |
1475 | -70, -28, -9, -1, 280, 93, 93, 93, -1, -1, |
1476 | -71, -1, 91, -9, -69, 60, 329, 330, 331, 365, |
1477 | 366, 367, 40, 61, -36, 123, 40, 41, -71, -3, |
1478 | 373, 374, -1, -9,-115, 123, 123, 123, -9, -9, |
1479 | 123, -71, 357, 364, 364, -81, -82, -91, -25, -26, |
1480 | -27, 275, -13, 40, -9, 58, 274, -7, 91, -1, |
1481 | -9,-161,-165,-158, 310,-165,-165,-165, -71,-158, |
1482 | -2, -9, 40, 40, 41, -71, -1, 40, -31, -28, |
1483 | -6, -2, -9, 125, 316, 316, 466, -31, -66, -9, |
1484 | 42, -36, 61, -31, 61, -31, -31, 61, 61, -1, |
1485 | 469, -9, 469, 40, -1, 469,-177, 44, 93, -1, |
1486 | -28, -28, 91, -9, -36, -83, -1, 40, 40,-173, |
1487 | -36, 41, 41, 93, 41, 41, 41, 41, 41, -12, |
1488 | 263, 44, 58, 390, 329, 330, 331, 365, 366, 367, |
1489 | -1, -84, -85, -36, 123, 262, -64, -63, -71, 306, |
1490 | 44, 93, 44, 275, -71, -71, 62, 44, 42, -5, |
1491 | -5, -5, 93, 274, 41, -68, -19, -18, 43, 45, |
1492 | 306, 323, 373, -9, -59, -61, -73, 274, -53, -22, |
1493 | 60, 41, 125,-112,-145,-147,-127, 274, -7, 91, |
1494 | -1, -71, -71, -1, 371, 326, -7, 371, 326, -1, |
1495 | 41, 44, -28, -25, 93, -9, -3, -1, -28, -9, |
1496 | 93, -2, -9, -9, -24, 274, -36, 41, 40, 41, |
1497 | 44, 44, -2, -9, -9, 41, 58, 40, 41, 40, |
1498 | 41, 41, 40, 40, -5, -1, -9, 317, -1, -31, |
1499 | -71, 93, -38, 479, 504, 505, 506, -9, 41, 390, |
1500 | -83, 41, 387, 341, 342, 343, 388, 389, 301, 303, |
1501 | 304, 305, 391, 394, 294, -4, 317, -34, -33,-153, |
1502 | 480, 482, 483, 484, 485, 276, 277, 281, 282, 283, |
1503 | 284, 286, 287, 257, 279, 290, 291, 292, 293, 486, |
1504 | 487, 488, 490, 491, 492, 493, 494, 495, 496, 334, |
1505 | 497, 280, 289, 336, 498, 341, 489, 357, 390, 502, |
1506 | 271, 123, -9, 41, -14, -14, -14, -14, -14, -14, |
1507 | 317, 283, 284, 456, 457, 459, -9, -9, -1, 41, |
1508 | 44, 61, -59, 125, 44, 61, 263, 263, -29, -9, |
1509 | 41, 41, -28, 40, -5, -1, 62, -58, -1, 40, |
1510 | -19, 41, 125, -62, -40,-135, -41, 298, 364, 297, |
1511 | 286, 287, 284, 283, 282, 281, 293, 292, 291, 290, |
1512 | 279, 278, 277,-175, 61, -3, 40, 40, 91, -54, |
1513 | 125, 125,-150, 423, 424, 425, 426,-120,-132,-133, |
1514 | -135, 125,-151, 428, 429, 426,-132,-120,-133,-135, |
1515 | 125, -3, -28, -9, -93, 450, -1, -28, -27, -38, |
1516 | 41, 390, -71, 93, -35, 61, 316, 316, 41, 41, |
1517 | -1, 41, -25, -6, -6, -66, 41, -9, 41, -3, |
1518 | 40, 93, 93, 93, 93, -36, 41, 58, 58, 40, |
1519 | -35, -2, 41, 42, 91, -32, 40, 481, 501, 277, |
1520 | 281, 282, 283, 284, 280, -20, 40, -20, -20, -15, |
1521 | 510, 483, 484, 276, 277, 281, 282, 283, 284, 286, |
1522 | 287, 279, 290, 291, 292, 293, 42, 486, 487, 488, |
1523 | 490, 491, 494, 495, 497, 280, 289, 257, 511, 512, |
1524 | 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, |
1525 | 523, 496, 488, 500, 41, -2, 263, 263, 44, -84, |
1526 | -37, -17, -9, 283, -36, -70, 319, 320, 125, -64, |
1527 | 123, 61, -25, -1, -67, 44, -56, -57, -71, -65, |
1528 | -135, 358, 363, 40, 91, 40, 91, 40, 91, 40, |
1529 | 91, 40, 91, 40, 91, 40, 91, 40, 91, 40, |
1530 | 91, 40, 91, 40, 91, 40, 91, 40, 91, 284, |
1531 | 283, 282, 281, 40, 91, 40, 91, -31, -36, 123, |
1532 | 40, -53, -22, -25, -25, -9, 62, -75, -75, -75, |
1533 | -75, -75, -75, -75, 509, -71, 93, -1, -2, -2, |
1534 | 274, -39, -41, -36, 299, 286, 287, 284, 283, 282, |
1535 | 281, 279, 293, 292, 291, 290, 278, 277, -2, -9, |
1536 | 41, 58, -89, -69, -34, -83, 392, 393, 392, 393, |
1537 | -9, 93, -9, 43, 125, -36, 91, 91, 503, 44, |
1538 | 91, 524, 38, 281, 282, 283, 284, 280, -9, 40, |
1539 | 40, -62, 123, 41, -67, -68, 41, 44, -60, -52, |
1540 | 364, 297, 345, 299, 263, -9, 306, -70, 299, -9, |
1541 | -40, -9, -23, -9, -9, -23, -24, -9, -24, -9, |
1542 | -9, -9, -9, -9, -9, -9, -24, -9, -9, -9, |
1543 | -9, -9, -9, -9, 40, 91, 40, 91, 40, 91, |
1544 | 40, 91, -9, -9, -17, -9, 41, -59, 40, 40, |
1545 | 41, 41, 93, -7, 274, 40, -3, 284, 283, 282, |
1546 | 281, -66, 40, 41, 41, 41, 93, 43, -9, 44, |
1547 | -9, -9, 61, -36, 93, 263, -9, 281, 282, 283, |
1548 | -9, 125, -62, -71, -1, 91, 306, -70, 41, 41, |
1549 | 93, 263, 41, 41, 93, 41, 93, 41, 41, 93, |
1550 | 41, 41, 93, 41, 93, 41, 93, 41, 93, 41, |
1551 | 93, 41, 93, 41, 93, 41, 93, 41, 93, -24, |
1552 | -9, -9, -9, -9, -9, -9, -9, 41, 93, 41, |
1553 | 93, 125, -25, -25, 62, -28, -3, -25, -21, -22, |
1554 | 60, 58, -25, -9, 93, -36, 93, 93, -9, 41, |
1555 | 58, 58, 58, 41, 125, 61, 93, 263, 40, 41, |
1556 | 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, |
1557 | 40, 40, 41, 93, 41, 93, 41, 93, 41, 93, |
1558 | 40, 40, 41, 41, -71, -21, 41, 40, -66, 41, |
1559 | 93, 44, 41, -33, 41, -9, -9, -9, -40, -49, |
1560 | -50, -51, -42, -43, -47, -46, -45, -44, -47, -46, |
1561 | -45, -44, 40, 40, 40, 40, -45, -48, 274, 40, |
1562 | -35, -25, -80, -36, 41, 41, 41, 41, 299, 263, |
1563 | 41, 299, 306, -70, 41, -40, 41, -23, -9, 41, |
1564 | -23, -24, 41, -24, 41, -9, 41, -9, 41, -9, |
1565 | 41, 41, 41, 41, -47, -46, -45, -44, 41, 41, |
1566 | -17, -3, -25, 41, 123, 324, 379, 380, 381, 308, |
1567 | 382, 383, 384, 385, 333, 347, 348, 349, 350, 294, |
1568 | 44, 263, 41, 41, 41, 41, 40, 41, 40, -36, |
1569 | -25, 509, -9, 41, 41, 357, 41, -7, -28, -71, |
1570 | 274, -3, -21, 40, -25, 41 }; |
1571 | YYSTATIC YYCONST short YYFARDATA YYDEF[]={ |
1572 | |
1573 | 1, -2, 2, 0, 0, 330, 6, 7, 8, 9, |
1574 | 10, 11, 0, 0, 0, 0, 16, 17, 18, 0, |
1575 | 0, 767, 0, 0, 24, 25, 26, 0, 28, 135, |
1576 | 0, 266, 204, 0, 426, 0, 0, 773, 105, 830, |
1577 | 92, 0, 426, 0, 83, 84, 85, 0, 0, 0, |
1578 | 0, 0, 0, 57, 58, 0, 60, 108, 259, 382, |
1579 | 0, 752, 753, 217, 426, 426, 139, 1, 0, 783, |
1580 | 801, 819, 833, 19, 41, 20, 0, 0, 22, 42, |
1581 | 43, 23, 29, 137, 0, 104, 38, 39, 36, 37, |
1582 | 217, 184, 0, 379, 0, 386, 0, 0, 426, 389, |
1583 | 389, 389, 389, 389, 389, 0, 0, 427, 428, 0, |
1584 | 755, 0, 773, 809, 0, 93, 0, 0, 737, 738, |
1585 | 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, |
1586 | 749, 750, 751, 0, 0, 33, 0, 0, 0, 0, |
1587 | 0, 0, 663, 0, 0, 217, 0, 679, 680, 0, |
1588 | 684, 0, 0, 544, 230, 546, 547, 548, 549, 0, |
1589 | 484, 686, 687, 688, 689, 690, 691, 692, 693, 694, |
1590 | 0, 699, 700, 701, 702, 703, 550, 0, 52, 54, |
1591 | 55, 56, 59, 0, 381, 383, 384, 0, 61, 0, |
1592 | 71, 0, 210, 211, 212, 217, 217, 215, 0, 218, |
1593 | 219, 0, 0, 0, 0, 0, 5, 331, 0, 333, |
1594 | 0, 0, 337, 338, 339, 340, 0, 342, 343, 344, |
1595 | 345, 346, 0, 0, 0, 352, 0, 0, 329, 499, |
1596 | 0, 0, 0, 0, 426, 0, 217, 0, 0, 0, |
1597 | 217, 0, 0, 330, 0, 485, 486, 487, 488, 489, |
1598 | 490, 491, 492, 493, 494, 495, 496, 497, 357, 364, |
1599 | 0, 0, 0, 0, 21, 769, 768, 0, 29, 545, |
1600 | 107, 0, 136, 552, 0, 555, 217, 0, 308, 267, |
1601 | 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, |
1602 | 278, 279, 280, 281, 282, 283, 284, 0, 0, 0, |
1603 | 0, 0, 388, 0, 0, 0, 0, 400, 0, 0, |
1604 | 401, 0, 402, 0, 403, 0, 404, 0, 405, 425, |
1605 | 102, 429, 0, 754, 0, 0, 764, 772, 774, 775, |
1606 | 776, 0, 778, 779, 780, 781, 782, 0, 0, 828, |
1607 | 831, 832, 94, 713, 714, 715, 0, 0, 31, 0, |
1608 | 0, 706, 668, 669, 670, 0, 0, 529, 0, 0, |
1609 | 0, 0, 662, 0, 665, 225, 0, 0, 676, 678, |
1610 | 681, 0, 683, 685, 0, 0, 0, 0, 0, 0, |
1611 | 228, 229, 695, 696, 697, 698, 0, 53, 147, 109, |
1612 | 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, |
1613 | 120, 121, 122, 123, 124, 0, 131, 132, 133, 0, |
1614 | 0, 103, 0, 0, 72, 73, 0, 213, 214, 0, |
1615 | 220, 221, 222, 223, 64, 68, 3, 140, 330, 0, |
1616 | 0, 0, 168, 169, 170, 171, 172, 0, 0, 0, |
1617 | 0, 178, 179, 0, 0, 233, 247, 809, 105, 4, |
1618 | 332, 334, -2, 0, 341, 0, 0, 0, 217, 0, |
1619 | 0, 358, 360, 0, 0, 0, 0, 0, 0, 374, |
1620 | 375, 372, 500, 501, 502, 503, 498, 504, 505, 44, |
1621 | 0, 0, 0, 507, 508, 509, 0, 512, 513, 514, |
1622 | 515, 516, 0, 426, 0, 520, 522, 0, 361, 0, |
1623 | 0, 12, 784, 0, 786, 787, 426, 0, 0, 426, |
1624 | 794, 795, 0, 13, 802, 426, 804, 426, 806, 0, |
1625 | 0, 14, 820, 0, 0, 0, 0, 826, 827, 15, |
1626 | 834, 0, 0, 837, 838, 766, 770, 27, 30, 138, |
1627 | 142, 0, 0, 0, 40, 0, 0, 289, 0, 185, |
1628 | 186, 187, 188, 189, 190, 191, 0, 193, 194, 195, |
1629 | 196, 197, 198, 0, 205, 385, 0, 0, 0, 393, |
1630 | 0, 0, 0, 0, 0, 0, 0, 96, 757, 0, |
1631 | 777, 799, 807, 810, 811, 812, 0, 0, 0, 0, |
1632 | 0, 717, 722, 723, 34, 47, 666, 0, 704, 707, |
1633 | 708, 0, 0, 0, 530, 531, 48, 49, 50, 51, |
1634 | 664, 0, 675, 677, 682, 0, 0, 0, 0, 551, |
1635 | 0, -2, 706, 0, 106, 154, 125, 126, 127, 128, |
1636 | 129, 130, 0, 380, 62, 75, 69, 217, 0, 527, |
1637 | 305, 306, -2, 0, 0, 139, 236, 250, 173, 174, |
1638 | 819, 0, 217, 0, 0, 0, 217, 0, 0, 534, |
1639 | 535, 537, 0, -2, 0, 0, 0, 0, 0, 354, |
1640 | 0, 359, 365, 376, 0, 366, 367, 368, 373, 369, |
1641 | 370, 371, 0, 0, 506, 0, -2, 0, 0, 0, |
1642 | 0, 525, 526, 356, 0, 0, 0, 0, 0, 788, |
1643 | 789, 792, 0, 0, 0, 0, 0, 0, 0, 821, |
1644 | 0, 825, 0, 0, 0, 0, 426, 0, 553, 0, |
1645 | 0, 260, 0, 0, 289, 0, 200, 556, 0, 387, |
1646 | 0, 392, 389, 390, 389, 389, 389, 389, 389, 0, |
1647 | 756, 0, 0, 0, 813, 814, 815, 816, 817, 818, |
1648 | 829, 0, 724, 0, 75, 32, 0, 718, 0, 0, |
1649 | 0, 667, 706, 710, 0, 0, 674, 0, 669, 540, |
1650 | 541, 542, 0, 0, 224, 0, 0, 154, 149, 150, |
1651 | 151, 152, 153, 0, 0, 78, 65, 0, 0, 0, |
1652 | 529, 216, 164, 0, 0, 0, 0, 0, 0, 0, |
1653 | 181, 0, 0, -2, 234, 235, 0, 248, 249, 808, |
1654 | 335, 308, 260, 0, 347, 349, 350, 307, 0, 0, |
1655 | 202, 0, 0, 0, 0, 0, 0, 518, -2, 521, |
1656 | 522, 522, 362, 363, 785, 790, 0, 798, 793, 796, |
1657 | 803, 805, 771, 797, 822, 823, 0, 0, 836, 0, |
1658 | 141, 554, 0, 0, 0, 0, 0, 0, 285, 0, |
1659 | 0, 288, 290, 291, 292, 293, 294, 295, 296, 297, |
1660 | 298, 299, 0, 0, 0, 202, 0, 0, 262, 0, |
1661 | 0, 0, 561, 562, 563, 564, 565, 566, 567, 568, |
1662 | 569, 570, 571, 572, 0, 577, 578, 579, 580, 586, |
1663 | 587, 588, 589, 590, 591, 592, 611, 611, 595, 611, |
1664 | 613, 599, 601, 0, 603, 0, 605, 607, 0, 609, |
1665 | 610, 264, 0, 391, 394, 395, 396, 397, 398, 399, |
1666 | 0, 97, 98, 99, 100, 101, 759, 761, 800, 711, |
1667 | 0, 0, 0, 716, 717, 0, 37, 35, 705, 709, |
1668 | 671, 672, 532, -2, 543, 226, 148, 0, 158, 143, |
1669 | 155, 134, 63, 74, 76, 77, 433, 0, 0, 0, |
1670 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
1671 | 0, 0, 0, 426, 0, 527, -2, -2, 0, 0, |
1672 | 165, 166, 237, 217, 217, 217, 217, 242, 243, 244, |
1673 | 245, 167, 251, 217, 217, 217, 255, 256, 257, 258, |
1674 | 175, 0, 0, 0, 182, 217, 231, 0, 536, 538, |
1675 | 336, 0, 0, 353, 355, 0, 0, 0, 45, 46, |
1676 | 510, 517, 0, 523, 524, 0, 824, 835, 769, 147, |
1677 | 556, 309, 310, 311, 312, 289, 287, 0, 0, 0, |
1678 | 183, 201, 192, 581, 0, 0, 0, 0, 0, 606, |
1679 | 573, 574, 575, 576, 600, 593, 0, 594, 596, 597, |
1680 | 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, |
1681 | 624, 0, 629, 630, 631, 632, 633, 637, 638, 639, |
1682 | 640, 641, 642, 643, 644, 645, 647, 648, 649, 650, |
1683 | 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, |
1684 | 661, 602, 604, 608, 199, 95, 758, 760, 0, 725, |
1685 | 726, 729, 730, 0, 732, 0, 727, 728, 712, 719, |
1686 | 78, 0, 0, 158, 157, 154, 0, 144, 145, 0, |
1687 | 80, 81, 82, 0, 0, 0, 0, 0, 0, 0, |
1688 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
1689 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
1690 | 0, 0, 0, 0, 0, 0, 0, 0, 66, 75, |
1691 | 70, 0, 0, 0, 0, 0, 528, 238, 239, 240, |
1692 | 241, 252, 253, 254, 217, 0, 180, 0, 539, 348, |
1693 | 0, 203, 430, 431, 432, 0, 0, 0, 0, 0, |
1694 | 0, 0, 0, 0, 0, 0, 0, 0, 377, 378, |
1695 | 519, 0, 765, 0, 0, 0, 300, 301, 302, 303, |
1696 | 0, 582, 0, 0, 263, 0, 0, 0, 0, 0, |
1697 | 0, 635, 636, 625, 626, 627, 628, 646, 763, 0, |
1698 | 0, 0, 78, 673, 156, 159, 160, 0, 0, 86, |
1699 | 87, 88, 0, 0, 0, 0, 0, 0, 0, 0, |
1700 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
1701 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
1702 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
1703 | 0, 0, 0, 0, 0, 0, 424, 0, -2, -2, |
1704 | 208, 209, 0, 0, 0, -2, 161, 0, 0, 0, |
1705 | 0, 0, -2, 261, 286, 304, 583, 0, 0, 0, |
1706 | 0, 0, 0, 598, 634, 762, 0, 0, 0, 0, |
1707 | 0, 720, 0, 146, 0, 0, 0, 90, 434, 435, |
1708 | 0, 0, 437, 438, 0, 439, 0, 406, 408, 0, |
1709 | 407, 409, 0, 410, 0, 411, 0, 412, 0, 413, |
1710 | 0, 418, 0, 419, 0, 420, 0, 421, 0, 0, |
1711 | 0, 0, 0, 0, 0, 0, 0, 422, 0, 423, |
1712 | 0, 67, 0, 0, 163, 0, 161, 0, 0, 162, |
1713 | 0, 0, 0, 0, 585, 0, 559, 556, 0, 731, |
1714 | 0, 0, 0, 736, 721, 0, 91, 89, 475, 436, |
1715 | 478, 482, 459, 462, 465, 467, 469, 471, 465, 467, |
1716 | 469, 471, 414, 0, 415, 0, 416, 0, 417, 0, |
1717 | 469, 473, 206, 207, 0, 0, 202, -2, 791, 313, |
1718 | 584, 0, 558, 560, 612, 0, 0, 0, 79, 0, |
1719 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
1720 | 0, 0, 465, 467, 469, 471, 0, 0, 0, -2, |
1721 | 246, 0, 0, 0, 733, 734, 735, 456, 476, 477, |
1722 | 457, 479, 0, 481, 458, 483, 440, 460, 461, 441, |
1723 | 463, 464, 442, 466, 443, 468, 444, 470, 445, 472, |
1724 | 446, 447, 448, 449, 0, 0, 0, 0, 454, 455, |
1725 | 474, 0, 0, 351, 265, 314, 315, 316, 317, 318, |
1726 | 319, 320, 321, 322, 323, 324, 325, 326, 327, 0, |
1727 | 0, 480, 450, 451, 452, 453, -2, 0, 0, 0, |
1728 | 0, 0, 0, 557, 176, 217, 328, 0, 0, 0, |
1729 | 0, 161, 0, -2, 0, 177 }; |
1730 | #ifdef YYRECOVER |
1731 | YYSTATIC YYCONST short yyrecover[] = { |
1732 | -1000 |
1733 | }; |
1734 | #endif |
1735 | |
1736 | /* SCCSWHAT( "@(#)yypars.c 3.1 88/11/16 22:00:49 " ) */ |
1737 | #line 3 "O:\\tfs\\cgm\\src\\Tools\\devdiv\\amd64\\yypars.c" |
1738 | #if ! defined(YYAPI_PACKAGE) |
1739 | /* |
1740 | ** YYAPI_TOKENNAME : name used for return value of yylex |
1741 | ** YYAPI_TOKENTYPE : type of the token |
1742 | ** YYAPI_TOKENEME(t) : the value of the token that the parser should see |
1743 | ** YYAPI_TOKENNONE : the representation when there is no token |
1744 | ** YYAPI_VALUENAME : the name of the value of the token |
1745 | ** YYAPI_VALUETYPE : the type of the value of the token (if null, then the value is derivable from the token itself) |
1746 | ** YYAPI_VALUEOF(v) : how to get the value of the token. |
1747 | */ |
1748 | #define YYAPI_TOKENNAME yychar |
1749 | #define YYAPI_TOKENTYPE int |
1750 | #define YYAPI_TOKENEME(t) (t) |
1751 | #define YYAPI_TOKENNONE -1 |
1752 | #define YYAPI_TOKENSTR(t) (sprintf_s(yytokbuf, _countof(yytokbuf), "%d", t), yytokbuf) |
1753 | #define YYAPI_VALUENAME yylval |
1754 | #define YYAPI_VALUETYPE YYSTYPE |
1755 | #define YYAPI_VALUEOF(v) (v) |
1756 | #endif |
1757 | #if ! defined(YYAPI_CALLAFTERYYLEX) |
1758 | #define YYAPI_CALLAFTERYYLEX |
1759 | #endif |
1760 | |
1761 | # define YYFLAG -1000 |
1762 | # define YYERROR goto yyerrlab |
1763 | # define YYACCEPT return(0) |
1764 | # define YYABORT return(1) |
1765 | |
1766 | #ifdef YYDEBUG /* RRR - 10/9/85 */ |
1767 | char yytokbuf[20]; |
1768 | # ifndef YYDBFLG |
1769 | # define YYDBFLG (yydebug) |
1770 | # endif |
1771 | # define yyprintf(a, b, c, d) if (YYDBFLG) YYPRINT(a, b, c, d) |
1772 | #else |
1773 | # define yyprintf(a, b, c, d) |
1774 | #endif |
1775 | |
1776 | #ifndef YYPRINT |
1777 | #define YYPRINT printf |
1778 | #endif |
1779 | |
1780 | /* parser for yacc output */ |
1781 | |
1782 | #ifdef YYDUMP |
1783 | int yydump = 1; /* 1 for dumping */ |
1784 | void yydumpinfo(void); |
1785 | #endif |
1786 | #ifdef YYDEBUG |
1787 | YYSTATIC int yydebug = 0; /* 1 for debugging */ |
1788 | #endif |
1789 | YYSTATIC YYSTYPE yyv[YYMAXDEPTH]; /* where the values are stored */ |
1790 | YYSTATIC short yys[YYMAXDEPTH]; /* the parse stack */ |
1791 | |
1792 | #if ! defined(YYRECURSIVE) |
1793 | YYSTATIC YYAPI_TOKENTYPE YYAPI_TOKENNAME = YYAPI_TOKENNONE; |
1794 | #if defined(YYAPI_VALUETYPE) |
1795 | // YYSTATIC YYAPI_VALUETYPE YYAPI_VALUENAME; FIX |
1796 | #endif |
1797 | YYSTATIC int yynerrs = 0; /* number of errors */ |
1798 | YYSTATIC short yyerrflag = 0; /* error recovery flag */ |
1799 | #endif |
1800 | |
1801 | #ifdef YYRECOVER |
1802 | /* |
1803 | ** yyscpy : copy f onto t and return a ptr to the null terminator at the |
1804 | ** end of t. |
1805 | */ |
1806 | YYSTATIC char *yyscpy(register char*t, register char*f) |
1807 | { |
1808 | while(*t = *f++) |
1809 | t++; |
1810 | return(t); /* ptr to the null char */ |
1811 | } |
1812 | #endif |
1813 | |
1814 | #ifndef YYNEAR |
1815 | #define YYNEAR |
1816 | #endif |
1817 | #ifndef YYPASCAL |
1818 | #define YYPASCAL |
1819 | #endif |
1820 | #ifndef YYLOCAL |
1821 | #define YYLOCAL |
1822 | #endif |
1823 | #if ! defined YYPARSER |
1824 | #define YYPARSER yyparse |
1825 | #endif |
1826 | #if ! defined YYLEX |
1827 | #define YYLEX yylex |
1828 | #endif |
1829 | |
1830 | #if defined(YYRECURSIVE) |
1831 | |
1832 | YYSTATIC YYAPI_TOKENTYPE YYAPI_TOKENNAME = YYAPI_TOKENNONE; |
1833 | #if defined(YYAPI_VALUETYPE) |
1834 | YYSTATIC YYAPI_VALUETYPE YYAPI_VALUENAME; |
1835 | #endif |
1836 | YYSTATIC int yynerrs = 0; /* number of errors */ |
1837 | YYSTATIC short yyerrflag = 0; /* error recovery flag */ |
1838 | |
1839 | YYSTATIC short yyn; |
1840 | YYSTATIC short yystate = 0; |
1841 | #ifdef _PREFAST_ |
1842 | #pragma warning(push) |
1843 | #pragma warning(disable: 6200) // Index '-1' is out of valid index range...for non-stack buffer... |
1844 | #endif |
1845 | YYSTATIC short *yyps= &yys[-1]; |
1846 | YYSTATIC YYSTYPE *yypv= &yyv[-1]; |
1847 | #ifdef _PREFAST_ |
1848 | #pragma warning(pop) |
1849 | #endif |
1850 | YYSTATIC short yyj; |
1851 | YYSTATIC short yym; |
1852 | |
1853 | #endif |
1854 | |
1855 | #pragma warning(disable:102) |
1856 | YYLOCAL YYNEAR YYPASCAL YYPARSER() |
1857 | { |
1858 | #if ! defined(YYRECURSIVE) |
1859 | |
1860 | register short yyn; |
1861 | short yystate, *yyps; |
1862 | YYSTYPE *yypv; |
1863 | short yyj, yym; |
1864 | |
1865 | YYAPI_TOKENNAME = YYAPI_TOKENNONE; |
1866 | yystate = 0; |
1867 | |
1868 | #ifdef _PREFAST_ |
1869 | #pragma warning(push) |
1870 | #pragma warning(disable:6200) // Index '-1' is out of valid index range...for non-stack buffer... |
1871 | #endif |
1872 | yyps= &yys[-1]; |
1873 | yypv= &yyv[-1]; |
1874 | #ifdef _PREFAST_ |
1875 | #pragma warning(pop) |
1876 | #endif |
1877 | |
1878 | #endif |
1879 | |
1880 | #ifdef YYDUMP |
1881 | yydumpinfo(); |
1882 | #endif |
1883 | yystack: /* put a state and value onto the stack */ |
1884 | |
1885 | #ifdef YYDEBUG |
1886 | if(YYAPI_TOKENNAME == YYAPI_TOKENNONE) { |
1887 | yyprintf( "state %d, token # '%d'\n" , yystate, -1, 0 ); |
1888 | } |
1889 | else { |
1890 | yyprintf( "state %d, token # '%s'\n" , yystate, YYAPI_TOKENSTR(YYAPI_TOKENNAME), 0 ); |
1891 | } |
1892 | #endif |
1893 | if( ++yyps > &yys[YYMAXDEPTH] ) { |
1894 | yyerror( "yacc stack overflow" ); |
1895 | return(1); |
1896 | } |
1897 | *yyps = yystate; |
1898 | ++yypv; |
1899 | |
1900 | *yypv = yyval; |
1901 | |
1902 | yynewstate: |
1903 | |
1904 | yyn = YYPACT[yystate]; |
1905 | |
1906 | if( yyn <= YYFLAG ) { /* simple state, no lookahead */ |
1907 | goto yydefault; |
1908 | } |
1909 | if( YYAPI_TOKENNAME == YYAPI_TOKENNONE ) { /* need a lookahead */ |
1910 | YYAPI_TOKENNAME = YYLEX(); |
1911 | YYAPI_CALLAFTERYYLEX(YYAPI_TOKENNAME); |
1912 | } |
1913 | if( ((yyn += YYAPI_TOKENEME(YYAPI_TOKENNAME)) < 0) || (yyn >= YYLAST) ) { |
1914 | goto yydefault; |
1915 | } |
1916 | if( YYCHK[ yyn = YYACT[ yyn ] ] == YYAPI_TOKENEME(YYAPI_TOKENNAME) ) { /* valid shift */ |
1917 | yyval = YYAPI_VALUEOF(YYAPI_VALUENAME); |
1918 | yystate = yyn; |
1919 | yyprintf( "SHIFT: saw token '%s', now in state %4d\n" , YYAPI_TOKENSTR(YYAPI_TOKENNAME), yystate, 0 ); |
1920 | YYAPI_TOKENNAME = YYAPI_TOKENNONE; |
1921 | if( yyerrflag > 0 ) { |
1922 | --yyerrflag; |
1923 | } |
1924 | goto yystack; |
1925 | } |
1926 | |
1927 | yydefault: |
1928 | /* default state action */ |
1929 | |
1930 | if( (yyn = YYDEF[yystate]) == -2 ) { |
1931 | register YYCONST short *yyxi; |
1932 | |
1933 | if( YYAPI_TOKENNAME == YYAPI_TOKENNONE ) { |
1934 | YYAPI_TOKENNAME = YYLEX(); |
1935 | YYAPI_CALLAFTERYYLEX(YYAPI_TOKENNAME); |
1936 | yyprintf("LOOKAHEAD: token '%s'\n" , YYAPI_TOKENSTR(YYAPI_TOKENNAME), 0, 0); |
1937 | } |
1938 | /* |
1939 | ** search exception table, we find a -1 followed by the current state. |
1940 | ** if we find one, we'll look through terminal,state pairs. if we find |
1941 | ** a terminal which matches the current one, we have a match. |
1942 | ** the exception table is when we have a reduce on a terminal. |
1943 | */ |
1944 | |
1945 | #if YYOPTTIME |
1946 | yyxi = yyexca + yyexcaind[yystate]; |
1947 | while(( *yyxi != YYAPI_TOKENEME(YYAPI_TOKENNAME) ) && ( *yyxi >= 0 )){ |
1948 | yyxi += 2; |
1949 | } |
1950 | #else |
1951 | for(yyxi = yyexca; |
1952 | (*yyxi != (-1)) || (yyxi[1] != yystate); |
1953 | yyxi += 2 |
1954 | ) { |
1955 | ; /* VOID */ |
1956 | } |
1957 | |
1958 | while( *(yyxi += 2) >= 0 ){ |
1959 | if( *yyxi == YYAPI_TOKENEME(YYAPI_TOKENNAME) ) { |
1960 | break; |
1961 | } |
1962 | } |
1963 | #endif |
1964 | if( (yyn = yyxi[1]) < 0 ) { |
1965 | return(0); /* accept */ |
1966 | } |
1967 | } |
1968 | |
1969 | if( yyn == 0 ){ /* error */ |
1970 | /* error ... attempt to resume parsing */ |
1971 | |
1972 | switch( yyerrflag ){ |
1973 | |
1974 | case 0: /* brand new error */ |
1975 | #ifdef YYRECOVER |
1976 | { |
1977 | register int i,j; |
1978 | |
1979 | for(i = 0; |
1980 | (yyrecover[i] != -1000) && (yystate > yyrecover[i]); |
1981 | i += 3 |
1982 | ) { |
1983 | ; |
1984 | } |
1985 | if(yystate == yyrecover[i]) { |
1986 | yyprintf("recovered, from state %d to state %d on token # %d\n" , |
1987 | yystate,yyrecover[i+2],yyrecover[i+1] |
1988 | ); |
1989 | j = yyrecover[i + 1]; |
1990 | if(j < 0) { |
1991 | /* |
1992 | ** here we have one of the injection set, so we're not quite |
1993 | ** sure that the next valid thing will be a shift. so we'll |
1994 | ** count it as an error and continue. |
1995 | ** actually we're not absolutely sure that the next token |
1996 | ** we were supposed to get is the one when j > 0. for example, |
1997 | ** for(+) {;} error recovery with yyerrflag always set, stops |
1998 | ** after inserting one ; before the +. at the point of the +, |
1999 | ** we're pretty sure the guy wants a 'for' loop. without |
2000 | ** setting the flag, when we're almost absolutely sure, we'll |
2001 | ** give him one, since the only thing we can shift on this |
2002 | ** error is after finding an expression followed by a + |
2003 | */ |
2004 | yyerrflag++; |
2005 | j = -j; |
2006 | } |
2007 | if(yyerrflag <= 1) { /* only on first insertion */ |
2008 | yyrecerr(YYAPI_TOKENNAME, j); /* what was, what should be first */ |
2009 | } |
2010 | yyval = yyeval(j); |
2011 | yystate = yyrecover[i + 2]; |
2012 | goto yystack; |
2013 | } |
2014 | } |
2015 | #endif |
2016 | yyerror("syntax error" ); |
2017 | |
2018 | yyerrlab: |
2019 | ++yynerrs; |
2020 | |
2021 | case 1: |
2022 | case 2: /* incompletely recovered error ... try again */ |
2023 | |
2024 | yyerrflag = 3; |
2025 | |
2026 | /* find a state where "error" is a legal shift action */ |
2027 | |
2028 | while ( yyps >= yys ) { |
2029 | yyn = YYPACT[*yyps] + YYERRCODE; |
2030 | if( yyn>= 0 && yyn < YYLAST && YYCHK[YYACT[yyn]] == YYERRCODE ){ |
2031 | yystate = YYACT[yyn]; /* simulate a shift of "error" */ |
2032 | yyprintf( "SHIFT 'error': now in state %4d\n" , yystate, 0, 0 ); |
2033 | goto yystack; |
2034 | } |
2035 | yyn = YYPACT[*yyps]; |
2036 | |
2037 | /* the current yyps has no shift onn "error", pop stack */ |
2038 | |
2039 | yyprintf( "error recovery pops state %4d, uncovers %4d\n" , *yyps, yyps[-1], 0 ); |
2040 | --yyps; |
2041 | --yypv; |
2042 | } |
2043 | |
2044 | /* there is no state on the stack with an error shift ... abort */ |
2045 | |
2046 | yyabort: |
2047 | return(1); |
2048 | |
2049 | |
2050 | case 3: /* no shift yet; clobber input char */ |
2051 | |
2052 | yyprintf( "error recovery discards token '%s'\n" , YYAPI_TOKENSTR(YYAPI_TOKENNAME), 0, 0 ); |
2053 | |
2054 | if( YYAPI_TOKENEME(YYAPI_TOKENNAME) == 0 ) goto yyabort; /* don't discard EOF, quit */ |
2055 | YYAPI_TOKENNAME = YYAPI_TOKENNONE; |
2056 | goto yynewstate; /* try again in the same state */ |
2057 | } |
2058 | } |
2059 | |
2060 | /* reduction by production yyn */ |
2061 | yyreduce: |
2062 | { |
2063 | register YYSTYPE *yypvt; |
2064 | yypvt = yypv; |
2065 | yyps -= YYR2[yyn]; |
2066 | yypv -= YYR2[yyn]; |
2067 | yyval = yypv[1]; |
2068 | yyprintf("REDUCE: rule %4d, popped %2d tokens, uncovered state %4d, " ,yyn, YYR2[yyn], *yyps); |
2069 | yym = yyn; |
2070 | yyn = YYR1[yyn]; /* consult goto table to find next state */ |
2071 | yyj = YYPGO[yyn] + *yyps + 1; |
2072 | if( (yyj >= YYLAST) || (YYCHK[ yystate = YYACT[yyj] ] != -yyn) ) { |
2073 | yystate = YYACT[YYPGO[yyn]]; |
2074 | } |
2075 | yyprintf("goto state %4d\n" , yystate, 0, 0); |
2076 | #ifdef YYDUMP |
2077 | yydumpinfo(); |
2078 | #endif |
2079 | switch(yym){ |
2080 | |
2081 | case 3: |
2082 | #line 189 "asmparse.y" |
2083 | { PASM->EndClass(); } break; |
2084 | case 4: |
2085 | #line 190 "asmparse.y" |
2086 | { PASM->EndNameSpace(); } break; |
2087 | case 5: |
2088 | #line 191 "asmparse.y" |
2089 | { if(PASM->m_pCurMethod->m_ulLines[1] ==0) |
2090 | { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; |
2091 | PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} |
2092 | PASM->EndMethod(); } break; |
2093 | case 12: |
2094 | #line 201 "asmparse.y" |
2095 | { PASMM->EndAssembly(); } break; |
2096 | case 13: |
2097 | #line 202 "asmparse.y" |
2098 | { PASMM->EndAssembly(); } break; |
2099 | case 14: |
2100 | #line 203 "asmparse.y" |
2101 | { PASMM->EndComType(); } break; |
2102 | case 15: |
2103 | #line 204 "asmparse.y" |
2104 | { PASMM->EndManifestRes(); } break; |
2105 | case 19: |
2106 | #line 208 "asmparse.y" |
2107 | { |
2108 | #ifdef _PREFAST_ |
2109 | #pragma warning(push) |
2110 | #pragma warning(disable:22011) // Suppress PREFast warning about integer overflow/underflow |
2111 | #endif |
2112 | PASM->m_dwSubsystem = yypvt[-0].int32; |
2113 | #ifdef _PREFAST_ |
2114 | #pragma warning(pop) |
2115 | #endif |
2116 | } break; |
2117 | case 20: |
2118 | #line 218 "asmparse.y" |
2119 | { PASM->m_dwComImageFlags = yypvt[-0].int32; } break; |
2120 | case 21: |
2121 | #line 219 "asmparse.y" |
2122 | { PASM->m_dwFileAlignment = yypvt[-0].int32; |
2123 | if((yypvt[-0].int32 & (yypvt[-0].int32 - 1))||(yypvt[-0].int32 < 0x200)||(yypvt[-0].int32 > 0x10000)) |
2124 | PASM->report->error("Invalid file alignment, must be power of 2 from 0x200 to 0x10000\n" );} break; |
2125 | case 22: |
2126 | #line 222 "asmparse.y" |
2127 | { PASM->m_stBaseAddress = (ULONGLONG)(*(yypvt[-0].int64)); delete yypvt[-0].int64; |
2128 | if(PASM->m_stBaseAddress & 0xFFFF) |
2129 | PASM->report->error("Invalid image base, must be 0x10000-aligned\n" );} break; |
2130 | case 23: |
2131 | #line 225 "asmparse.y" |
2132 | { PASM->m_stSizeOfStackReserve = (size_t)(*(yypvt[-0].int64)); delete yypvt[-0].int64; } break; |
2133 | case 28: |
2134 | #line 230 "asmparse.y" |
2135 | { PASM->m_fIsMscorlib = TRUE; } break; |
2136 | case 31: |
2137 | #line 237 "asmparse.y" |
2138 | { yyval.binstr = yypvt[-0].binstr; } break; |
2139 | case 32: |
2140 | #line 238 "asmparse.y" |
2141 | { yyval.binstr = yypvt[-2].binstr; yyval.binstr->append(yypvt[-0].binstr); delete yypvt[-0].binstr; } break; |
2142 | case 33: |
2143 | #line 241 "asmparse.y" |
2144 | { LPCSTRToGuid(yypvt[-0].string,&(PASM->m_guidLang)); } break; |
2145 | case 34: |
2146 | #line 242 "asmparse.y" |
2147 | { LPCSTRToGuid(yypvt[-2].string,&(PASM->m_guidLang)); |
2148 | LPCSTRToGuid(yypvt[-0].string,&(PASM->m_guidLangVendor));} break; |
2149 | case 35: |
2150 | #line 244 "asmparse.y" |
2151 | { LPCSTRToGuid(yypvt[-4].string,&(PASM->m_guidLang)); |
2152 | LPCSTRToGuid(yypvt[-2].string,&(PASM->m_guidLangVendor)); |
2153 | LPCSTRToGuid(yypvt[-2].string,&(PASM->m_guidDoc));} break; |
2154 | case 36: |
2155 | #line 249 "asmparse.y" |
2156 | { yyval.string = yypvt[-0].string; } break; |
2157 | case 37: |
2158 | #line 250 "asmparse.y" |
2159 | { yyval.string = yypvt[-0].string; } break; |
2160 | case 38: |
2161 | #line 253 "asmparse.y" |
2162 | { yyval.string = yypvt[-0].string; } break; |
2163 | case 39: |
2164 | #line 254 "asmparse.y" |
2165 | { yyval.string = yypvt[-0].string; } break; |
2166 | case 40: |
2167 | #line 255 "asmparse.y" |
2168 | { yyval.string = newStringWDel(yypvt[-2].string, '.', yypvt[-0].string); } break; |
2169 | case 41: |
2170 | #line 258 "asmparse.y" |
2171 | { yyval.int32 = yypvt[-0].int32; } break; |
2172 | case 42: |
2173 | #line 261 "asmparse.y" |
2174 | { yyval.int64 = yypvt[-0].int64; } break; |
2175 | case 43: |
2176 | #line 262 "asmparse.y" |
2177 | { yyval.int64 = neg ? new __int64(yypvt[-0].int32) : new __int64((unsigned)yypvt[-0].int32); } break; |
2178 | case 44: |
2179 | #line 265 "asmparse.y" |
2180 | { yyval.float64 = yypvt[-0].float64; } break; |
2181 | case 45: |
2182 | #line 266 "asmparse.y" |
2183 | { float f; *((__int32*) (&f)) = yypvt[-1].int32; yyval.float64 = new double(f); } break; |
2184 | case 46: |
2185 | #line 267 "asmparse.y" |
2186 | { yyval.float64 = (double*) yypvt[-1].int64; } break; |
2187 | case 47: |
2188 | #line 271 "asmparse.y" |
2189 | { PASM->AddTypeDef(yypvt[-2].binstr,yypvt[-0].string); } break; |
2190 | case 48: |
2191 | #line 272 "asmparse.y" |
2192 | { PASM->AddTypeDef(yypvt[-2].token,yypvt[-0].string); } break; |
2193 | case 49: |
2194 | #line 273 "asmparse.y" |
2195 | { PASM->AddTypeDef(yypvt[-2].token,yypvt[-0].string); } break; |
2196 | case 50: |
2197 | #line 274 "asmparse.y" |
2198 | { yypvt[-2].cad->tkOwner = 0; PASM->AddTypeDef(yypvt[-2].cad,yypvt[-0].string); } break; |
2199 | case 51: |
2200 | #line 275 "asmparse.y" |
2201 | { PASM->AddTypeDef(yypvt[-2].cad,yypvt[-0].string); } break; |
2202 | case 52: |
2203 | #line 280 "asmparse.y" |
2204 | { DefineVar(yypvt[-0].string, NULL); } break; |
2205 | case 53: |
2206 | #line 281 "asmparse.y" |
2207 | { DefineVar(yypvt[-1].string, yypvt[-0].binstr); } break; |
2208 | case 54: |
2209 | #line 282 "asmparse.y" |
2210 | { UndefVar(yypvt[-0].string); } break; |
2211 | case 55: |
2212 | #line 283 "asmparse.y" |
2213 | { SkipToken = !IsVarDefined(yypvt[-0].string); |
2214 | IfEndif++; |
2215 | } break; |
2216 | case 56: |
2217 | #line 286 "asmparse.y" |
2218 | { SkipToken = IsVarDefined(yypvt[-0].string); |
2219 | IfEndif++; |
2220 | } break; |
2221 | case 57: |
2222 | #line 289 "asmparse.y" |
2223 | { if(IfEndif == 1) SkipToken = !SkipToken;} break; |
2224 | case 58: |
2225 | #line 290 "asmparse.y" |
2226 | { if(IfEndif == 0) |
2227 | PASM->report->error("Unmatched #endif\n" ); |
2228 | else IfEndif--; |
2229 | } break; |
2230 | case 59: |
2231 | #line 294 "asmparse.y" |
2232 | { _ASSERTE(!"yylex should have dealt with this" ); } break; |
2233 | case 60: |
2234 | #line 295 "asmparse.y" |
2235 | { } break; |
2236 | case 61: |
2237 | #line 299 "asmparse.y" |
2238 | { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yypvt[-0].token, NULL); } break; |
2239 | case 62: |
2240 | #line 300 "asmparse.y" |
2241 | { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yypvt[-2].token, yypvt[-0].binstr); } break; |
2242 | case 63: |
2243 | #line 301 "asmparse.y" |
2244 | { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yypvt[-4].token, yypvt[-1].binstr); } break; |
2245 | case 64: |
2246 | #line 302 "asmparse.y" |
2247 | { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yypvt[-2].int32, yypvt[-1].binstr); } break; |
2248 | case 65: |
2249 | #line 305 "asmparse.y" |
2250 | { yyval.cad = new CustomDescr(yypvt[-2].token, yypvt[-0].token, NULL); } break; |
2251 | case 66: |
2252 | #line 306 "asmparse.y" |
2253 | { yyval.cad = new CustomDescr(yypvt[-4].token, yypvt[-2].token, yypvt[-0].binstr); } break; |
2254 | case 67: |
2255 | #line 308 "asmparse.y" |
2256 | { yyval.cad = new CustomDescr(yypvt[-6].token, yypvt[-4].token, yypvt[-1].binstr); } break; |
2257 | case 68: |
2258 | #line 309 "asmparse.y" |
2259 | { yyval.cad = new CustomDescr(PASM->m_tkCurrentCVOwner, yypvt[-2].int32, yypvt[-1].binstr); } break; |
2260 | case 69: |
2261 | #line 312 "asmparse.y" |
2262 | { yyval.int32 = yypvt[-2].token; bParsingByteArray = TRUE; } break; |
2263 | case 70: |
2264 | #line 316 "asmparse.y" |
2265 | { PASM->m_pCustomDescrList = NULL; |
2266 | PASM->m_tkCurrentCVOwner = yypvt[-4].token; |
2267 | yyval.int32 = yypvt[-2].token; bParsingByteArray = TRUE; } break; |
2268 | case 71: |
2269 | #line 321 "asmparse.y" |
2270 | { yyval.token = yypvt[-0].token; } break; |
2271 | case 72: |
2272 | #line 324 "asmparse.y" |
2273 | { yyval.token = yypvt[-0].token; } break; |
2274 | case 73: |
2275 | #line 325 "asmparse.y" |
2276 | { yyval.token = yypvt[-0].token; } break; |
2277 | case 74: |
2278 | #line 329 "asmparse.y" |
2279 | { yyval.binstr = yypvt[-1].binstr; |
2280 | yyval.binstr->appendInt16(nCustomBlobNVPairs); |
2281 | yyval.binstr->append(yypvt[-0].binstr); |
2282 | nCustomBlobNVPairs = 0; } break; |
2283 | case 75: |
2284 | #line 335 "asmparse.y" |
2285 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt16(VAL16(0x0001)); } break; |
2286 | case 76: |
2287 | #line 336 "asmparse.y" |
2288 | { yyval.binstr = yypvt[-1].binstr; |
2289 | yyval.binstr->appendFrom(yypvt[-0].binstr, (*(yypvt[-0].binstr->ptr()) == ELEMENT_TYPE_SZARRAY) ? 2 : 1); } break; |
2290 | case 77: |
2291 | #line 338 "asmparse.y" |
2292 | { yyval.binstr = yypvt[-1].binstr; } break; |
2293 | case 78: |
2294 | #line 341 "asmparse.y" |
2295 | { yyval.binstr = new BinStr(); } break; |
2296 | case 79: |
2297 | #line 343 "asmparse.y" |
2298 | { yyval.binstr = yypvt[-5].binstr; yyval.binstr->appendInt8(yypvt[-4].int32); |
2299 | yyval.binstr->append(yypvt[-3].binstr); |
2300 | AppendStringWithLength(yyval.binstr,yypvt[-2].string); |
2301 | yyval.binstr->appendFrom(yypvt[-0].binstr, (*(yypvt[-0].binstr->ptr()) == ELEMENT_TYPE_SZARRAY) ? 2 : 1); |
2302 | nCustomBlobNVPairs++; } break; |
2303 | case 80: |
2304 | #line 348 "asmparse.y" |
2305 | { yyval.binstr = yypvt[-1].binstr; } break; |
2306 | case 81: |
2307 | #line 351 "asmparse.y" |
2308 | { yyval.int32 = SERIALIZATION_TYPE_FIELD; } break; |
2309 | case 82: |
2310 | #line 352 "asmparse.y" |
2311 | { yyval.int32 = SERIALIZATION_TYPE_PROPERTY; } break; |
2312 | case 83: |
2313 | #line 355 "asmparse.y" |
2314 | { if(yypvt[-0].cad->tkOwner && !yypvt[-0].cad->tkInterfacePair) |
2315 | PASM->DefineCV(yypvt[-0].cad); |
2316 | else if(PASM->m_pCustomDescrList) |
2317 | PASM->m_pCustomDescrList->PUSH(yypvt[-0].cad); } break; |
2318 | case 84: |
2319 | #line 359 "asmparse.y" |
2320 | { PASM->DefineCV(yypvt[-0].cad); } break; |
2321 | case 85: |
2322 | #line 360 "asmparse.y" |
2323 | { CustomDescr* pNew = new CustomDescr(yypvt[-0].tdd->m_pCA); |
2324 | if(pNew->tkOwner == 0) pNew->tkOwner = PASM->m_tkCurrentCVOwner; |
2325 | if(pNew->tkOwner) |
2326 | PASM->DefineCV(pNew); |
2327 | else if(PASM->m_pCustomDescrList) |
2328 | PASM->m_pCustomDescrList->PUSH(pNew); } break; |
2329 | case 86: |
2330 | #line 368 "asmparse.y" |
2331 | { yyval.binstr = yypvt[-0].binstr; } break; |
2332 | case 87: |
2333 | #line 369 "asmparse.y" |
2334 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); } break; |
2335 | case 88: |
2336 | #line 370 "asmparse.y" |
2337 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); } break; |
2338 | case 89: |
2339 | #line 371 "asmparse.y" |
2340 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); |
2341 | AppendStringWithLength(yyval.binstr,yypvt[-0].string); } break; |
2342 | case 90: |
2343 | #line 373 "asmparse.y" |
2344 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); |
2345 | AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yypvt[-0].token)); } break; |
2346 | case 91: |
2347 | #line 375 "asmparse.y" |
2348 | { yyval.binstr = yypvt[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; |
2349 | case 92: |
2350 | #line 380 "asmparse.y" |
2351 | { PASMM->SetModuleName(NULL); PASM->m_tkCurrentCVOwner=1; } break; |
2352 | case 93: |
2353 | #line 381 "asmparse.y" |
2354 | { PASMM->SetModuleName(yypvt[-0].string); PASM->m_tkCurrentCVOwner=1; } break; |
2355 | case 94: |
2356 | #line 382 "asmparse.y" |
2357 | { BinStr* pbs = new BinStr(); |
2358 | unsigned L = (unsigned)strlen(yypvt[-0].string); |
2359 | memcpy((char*)(pbs->getBuff(L)),yypvt[-0].string,L); |
2360 | PASM->EmitImport(pbs); delete pbs;} break; |
2361 | case 95: |
2362 | #line 389 "asmparse.y" |
2363 | { /*PASM->SetDataSection(); PASM->EmitDataLabel($7);*/ |
2364 | PASM->m_VTFList.PUSH(new VTFEntry((USHORT)yypvt[-4].int32, (USHORT)yypvt[-2].int32, yypvt[-0].string)); } break; |
2365 | case 96: |
2366 | #line 393 "asmparse.y" |
2367 | { yyval.int32 = 0; } break; |
2368 | case 97: |
2369 | #line 394 "asmparse.y" |
2370 | { yyval.int32 = yypvt[-1].int32 | COR_VTABLE_32BIT; } break; |
2371 | case 98: |
2372 | #line 395 "asmparse.y" |
2373 | { yyval.int32 = yypvt[-1].int32 | COR_VTABLE_64BIT; } break; |
2374 | case 99: |
2375 | #line 396 "asmparse.y" |
2376 | { yyval.int32 = yypvt[-1].int32 | COR_VTABLE_FROM_UNMANAGED; } break; |
2377 | case 100: |
2378 | #line 397 "asmparse.y" |
2379 | { yyval.int32 = yypvt[-1].int32 | COR_VTABLE_CALL_MOST_DERIVED; } break; |
2380 | case 101: |
2381 | #line 398 "asmparse.y" |
2382 | { yyval.int32 = yypvt[-1].int32 | COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN; } break; |
2383 | case 102: |
2384 | #line 401 "asmparse.y" |
2385 | { PASM->m_pVTable = yypvt[-1].binstr; } break; |
2386 | case 103: |
2387 | #line 404 "asmparse.y" |
2388 | { bParsingByteArray = TRUE; } break; |
2389 | case 104: |
2390 | #line 408 "asmparse.y" |
2391 | { PASM->StartNameSpace(yypvt[-0].string); } break; |
2392 | case 105: |
2393 | #line 411 "asmparse.y" |
2394 | { newclass = TRUE; } break; |
2395 | case 106: |
2396 | #line 414 "asmparse.y" |
2397 | { if(yypvt[-0].typarlist) FixupConstraints(); |
2398 | PASM->StartClass(yypvt[-1].string, yypvt[-2].classAttr, yypvt[-0].typarlist); |
2399 | TyParFixupList.RESET(false); |
2400 | newclass = FALSE; |
2401 | } break; |
2402 | case 107: |
2403 | #line 420 "asmparse.y" |
2404 | { PASM->AddClass(); } break; |
2405 | case 108: |
2406 | #line 423 "asmparse.y" |
2407 | { yyval.classAttr = (CorRegTypeAttr) 0; } break; |
2408 | case 109: |
2409 | #line 424 "asmparse.y" |
2410 | { yyval.classAttr = (CorRegTypeAttr) ((yypvt[-1].classAttr & ~tdVisibilityMask) | tdPublic); } break; |
2411 | case 110: |
2412 | #line 425 "asmparse.y" |
2413 | { yyval.classAttr = (CorRegTypeAttr) ((yypvt[-1].classAttr & ~tdVisibilityMask) | tdNotPublic); } break; |
2414 | case 111: |
2415 | #line 426 "asmparse.y" |
2416 | { yyval.classAttr = (CorRegTypeAttr) (yypvt[-1].classAttr | 0x80000000 | tdSealed); } break; |
2417 | case 112: |
2418 | #line 427 "asmparse.y" |
2419 | { yyval.classAttr = (CorRegTypeAttr) (yypvt[-1].classAttr | 0x40000000); } break; |
2420 | case 113: |
2421 | #line 428 "asmparse.y" |
2422 | { yyval.classAttr = (CorRegTypeAttr) (yypvt[-1].classAttr | tdInterface | tdAbstract); } break; |
2423 | case 114: |
2424 | #line 429 "asmparse.y" |
2425 | { yyval.classAttr = (CorRegTypeAttr) (yypvt[-1].classAttr | tdSealed); } break; |
2426 | case 115: |
2427 | #line 430 "asmparse.y" |
2428 | { yyval.classAttr = (CorRegTypeAttr) (yypvt[-1].classAttr | tdAbstract); } break; |
2429 | case 116: |
2430 | #line 431 "asmparse.y" |
2431 | { yyval.classAttr = (CorRegTypeAttr) ((yypvt[-1].classAttr & ~tdLayoutMask) | tdAutoLayout); } break; |
2432 | case 117: |
2433 | #line 432 "asmparse.y" |
2434 | { yyval.classAttr = (CorRegTypeAttr) ((yypvt[-1].classAttr & ~tdLayoutMask) | tdSequentialLayout); } break; |
2435 | case 118: |
2436 | #line 433 "asmparse.y" |
2437 | { yyval.classAttr = (CorRegTypeAttr) ((yypvt[-1].classAttr & ~tdLayoutMask) | tdExplicitLayout); } break; |
2438 | case 119: |
2439 | #line 434 "asmparse.y" |
2440 | { yyval.classAttr = (CorRegTypeAttr) ((yypvt[-1].classAttr & ~tdStringFormatMask) | tdAnsiClass); } break; |
2441 | case 120: |
2442 | #line 435 "asmparse.y" |
2443 | { yyval.classAttr = (CorRegTypeAttr) ((yypvt[-1].classAttr & ~tdStringFormatMask) | tdUnicodeClass); } break; |
2444 | case 121: |
2445 | #line 436 "asmparse.y" |
2446 | { yyval.classAttr = (CorRegTypeAttr) ((yypvt[-1].classAttr & ~tdStringFormatMask) | tdAutoClass); } break; |
2447 | case 122: |
2448 | #line 437 "asmparse.y" |
2449 | { yyval.classAttr = (CorRegTypeAttr) (yypvt[-1].classAttr | tdImport); } break; |
2450 | case 123: |
2451 | #line 438 "asmparse.y" |
2452 | { yyval.classAttr = (CorRegTypeAttr) (yypvt[-1].classAttr | tdSerializable); } break; |
2453 | case 124: |
2454 | #line 439 "asmparse.y" |
2455 | { yyval.classAttr = (CorRegTypeAttr) (yypvt[-1].classAttr | tdWindowsRuntime); } break; |
2456 | case 125: |
2457 | #line 440 "asmparse.y" |
2458 | { yyval.classAttr = (CorRegTypeAttr) ((yypvt[-2].classAttr & ~tdVisibilityMask) | tdNestedPublic); } break; |
2459 | case 126: |
2460 | #line 441 "asmparse.y" |
2461 | { yyval.classAttr = (CorRegTypeAttr) ((yypvt[-2].classAttr & ~tdVisibilityMask) | tdNestedPrivate); } break; |
2462 | case 127: |
2463 | #line 442 "asmparse.y" |
2464 | { yyval.classAttr = (CorRegTypeAttr) ((yypvt[-2].classAttr & ~tdVisibilityMask) | tdNestedFamily); } break; |
2465 | case 128: |
2466 | #line 443 "asmparse.y" |
2467 | { yyval.classAttr = (CorRegTypeAttr) ((yypvt[-2].classAttr & ~tdVisibilityMask) | tdNestedAssembly); } break; |
2468 | case 129: |
2469 | #line 444 "asmparse.y" |
2470 | { yyval.classAttr = (CorRegTypeAttr) ((yypvt[-2].classAttr & ~tdVisibilityMask) | tdNestedFamANDAssem); } break; |
2471 | case 130: |
2472 | #line 445 "asmparse.y" |
2473 | { yyval.classAttr = (CorRegTypeAttr) ((yypvt[-2].classAttr & ~tdVisibilityMask) | tdNestedFamORAssem); } break; |
2474 | case 131: |
2475 | #line 446 "asmparse.y" |
2476 | { yyval.classAttr = (CorRegTypeAttr) (yypvt[-1].classAttr | tdBeforeFieldInit); } break; |
2477 | case 132: |
2478 | #line 447 "asmparse.y" |
2479 | { yyval.classAttr = (CorRegTypeAttr) (yypvt[-1].classAttr | tdSpecialName); } break; |
2480 | case 133: |
2481 | #line 448 "asmparse.y" |
2482 | { yyval.classAttr = (CorRegTypeAttr) (yypvt[-1].classAttr); } break; |
2483 | case 134: |
2484 | #line 449 "asmparse.y" |
2485 | { yyval.classAttr = (CorRegTypeAttr) (yypvt[-1].int32); } break; |
2486 | case 136: |
2487 | #line 453 "asmparse.y" |
2488 | { PASM->m_crExtends = yypvt[-0].token; } break; |
2489 | case 141: |
2490 | #line 464 "asmparse.y" |
2491 | { PASM->AddToImplList(yypvt[-0].token); } break; |
2492 | case 142: |
2493 | #line 465 "asmparse.y" |
2494 | { PASM->AddToImplList(yypvt[-0].token); } break; |
2495 | case 143: |
2496 | #line 469 "asmparse.y" |
2497 | { yyval.binstr = new BinStr(); } break; |
2498 | case 144: |
2499 | #line 470 "asmparse.y" |
2500 | { yyval.binstr = yypvt[-0].binstr; } break; |
2501 | case 145: |
2502 | #line 473 "asmparse.y" |
2503 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yypvt[-0].token); } break; |
2504 | case 146: |
2505 | #line 474 "asmparse.y" |
2506 | { yyval.binstr = yypvt[-2].binstr; yyval.binstr->appendInt32(yypvt[-0].token); } break; |
2507 | case 147: |
2508 | #line 477 "asmparse.y" |
2509 | { yyval.typarlist = NULL; PASM->m_TyParList = NULL;} break; |
2510 | case 148: |
2511 | #line 478 "asmparse.y" |
2512 | { yyval.typarlist = yypvt[-1].typarlist; PASM->m_TyParList = yypvt[-1].typarlist;} break; |
2513 | case 149: |
2514 | #line 481 "asmparse.y" |
2515 | { yyval.int32 = gpCovariant; } break; |
2516 | case 150: |
2517 | #line 482 "asmparse.y" |
2518 | { yyval.int32 = gpContravariant; } break; |
2519 | case 151: |
2520 | #line 483 "asmparse.y" |
2521 | { yyval.int32 = gpReferenceTypeConstraint; } break; |
2522 | case 152: |
2523 | #line 484 "asmparse.y" |
2524 | { yyval.int32 = gpNotNullableValueTypeConstraint; } break; |
2525 | case 153: |
2526 | #line 485 "asmparse.y" |
2527 | { yyval.int32 = gpDefaultConstructorConstraint; } break; |
2528 | case 154: |
2529 | #line 488 "asmparse.y" |
2530 | { yyval.int32 = 0; } break; |
2531 | case 155: |
2532 | #line 489 "asmparse.y" |
2533 | { yyval.int32 = yypvt[-1].int32 | yypvt[-0].int32; } break; |
2534 | case 156: |
2535 | #line 492 "asmparse.y" |
2536 | {yyval.typarlist = new TyParList(yypvt[-3].int32, yypvt[-2].binstr, yypvt[-1].string, yypvt[-0].typarlist);} break; |
2537 | case 157: |
2538 | #line 493 "asmparse.y" |
2539 | {yyval.typarlist = new TyParList(yypvt[-2].int32, NULL, yypvt[-1].string, yypvt[-0].typarlist);} break; |
2540 | case 158: |
2541 | #line 496 "asmparse.y" |
2542 | { yyval.typarlist = NULL; } break; |
2543 | case 159: |
2544 | #line 497 "asmparse.y" |
2545 | { yyval.typarlist = yypvt[-0].typarlist; } break; |
2546 | case 160: |
2547 | #line 500 "asmparse.y" |
2548 | { yyval.binstr = yypvt[-1].binstr; } break; |
2549 | case 161: |
2550 | #line 503 "asmparse.y" |
2551 | { yyval.int32= 0; } break; |
2552 | case 162: |
2553 | #line 504 "asmparse.y" |
2554 | { yyval.int32 = yypvt[-0].int32; } break; |
2555 | case 163: |
2556 | #line 507 "asmparse.y" |
2557 | { yyval.int32 = yypvt[-2].int32; } break; |
2558 | case 164: |
2559 | #line 511 "asmparse.y" |
2560 | { if(PASM->m_pCurMethod->m_ulLines[1] ==0) |
2561 | { PASM->m_pCurMethod->m_ulLines[1] = PASM->m_ulCurLine; |
2562 | PASM->m_pCurMethod->m_ulColumns[1]=PASM->m_ulCurColumn;} |
2563 | PASM->EndMethod(); } break; |
2564 | case 165: |
2565 | #line 515 "asmparse.y" |
2566 | { PASM->EndClass(); } break; |
2567 | case 166: |
2568 | #line 516 "asmparse.y" |
2569 | { PASM->EndEvent(); } break; |
2570 | case 167: |
2571 | #line 517 "asmparse.y" |
2572 | { PASM->EndProp(); } break; |
2573 | case 173: |
2574 | #line 523 "asmparse.y" |
2575 | { PASM->m_pCurClass->m_ulSize = yypvt[-0].int32; } break; |
2576 | case 174: |
2577 | #line 524 "asmparse.y" |
2578 | { PASM->m_pCurClass->m_ulPack = yypvt[-0].int32; } break; |
2579 | case 175: |
2580 | #line 525 "asmparse.y" |
2581 | { PASMM->EndComType(); } break; |
2582 | case 176: |
2583 | #line 527 "asmparse.y" |
2584 | { BinStr *sig1 = parser->MakeSig(yypvt[-7].int32, yypvt[-6].binstr, yypvt[-1].binstr); |
2585 | BinStr *sig2 = new BinStr(); sig2->append(sig1); |
2586 | PASM->AddMethodImpl(yypvt[-11].token,yypvt[-9].string,sig1,yypvt[-5].token,yypvt[-3].string,sig2); |
2587 | PASM->ResetArgNameList(); |
2588 | } break; |
2589 | case 177: |
2590 | #line 533 "asmparse.y" |
2591 | { PASM->AddMethodImpl(yypvt[-17].token,yypvt[-15].string, |
2592 | (yypvt[-14].int32==0 ? parser->MakeSig(yypvt[-19].int32,yypvt[-18].binstr,yypvt[-12].binstr) : |
2593 | parser->MakeSig(yypvt[-19].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yypvt[-18].binstr,yypvt[-12].binstr,yypvt[-14].int32)), |
2594 | yypvt[-6].token,yypvt[-4].string, |
2595 | (yypvt[-3].int32==0 ? parser->MakeSig(yypvt[-8].int32,yypvt[-7].binstr,yypvt[-1].binstr) : |
2596 | parser->MakeSig(yypvt[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yypvt[-7].binstr,yypvt[-1].binstr,yypvt[-3].int32))); |
2597 | PASM->ResetArgNameList(); |
2598 | } break; |
2599 | case 180: |
2600 | #line 543 "asmparse.y" |
2601 | { if((yypvt[-1].int32 > 0) && (yypvt[-1].int32 <= (int)PASM->m_pCurClass->m_NumTyPars)) |
2602 | PASM->m_pCustomDescrList = PASM->m_pCurClass->m_TyPars[yypvt[-1].int32-1].CAList(); |
2603 | else |
2604 | PASM->report->error("Type parameter index out of range\n" ); |
2605 | } break; |
2606 | case 181: |
2607 | #line 548 "asmparse.y" |
2608 | { int n = PASM->m_pCurClass->FindTyPar(yypvt[-0].string); |
2609 | if(n >= 0) |
2610 | PASM->m_pCustomDescrList = PASM->m_pCurClass->m_TyPars[n].CAList(); |
2611 | else |
2612 | PASM->report->error("Type parameter '%s' undefined\n" ,yypvt[-0].string); |
2613 | } break; |
2614 | case 182: |
2615 | #line 554 "asmparse.y" |
2616 | { yypvt[-0].cad->tkInterfacePair = yypvt[-1].token; |
2617 | if(PASM->m_pCustomDescrList) |
2618 | PASM->m_pCustomDescrList->PUSH(yypvt[-0].cad); |
2619 | } break; |
2620 | case 183: |
2621 | #line 562 "asmparse.y" |
2622 | { yypvt[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); |
2623 | PASM->AddField(yypvt[-2].string, yypvt[-3].binstr, yypvt[-4].fieldAttr, yypvt[-1].string, yypvt[-0].binstr, yypvt[-5].int32); } break; |
2624 | case 184: |
2625 | #line 566 "asmparse.y" |
2626 | { yyval.fieldAttr = (CorFieldAttr) 0; } break; |
2627 | case 185: |
2628 | #line 567 "asmparse.y" |
2629 | { yyval.fieldAttr = (CorFieldAttr) (yypvt[-1].fieldAttr | fdStatic); } break; |
2630 | case 186: |
2631 | #line 568 "asmparse.y" |
2632 | { yyval.fieldAttr = (CorFieldAttr) ((yypvt[-1].fieldAttr & ~mdMemberAccessMask) | fdPublic); } break; |
2633 | case 187: |
2634 | #line 569 "asmparse.y" |
2635 | { yyval.fieldAttr = (CorFieldAttr) ((yypvt[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivate); } break; |
2636 | case 188: |
2637 | #line 570 "asmparse.y" |
2638 | { yyval.fieldAttr = (CorFieldAttr) ((yypvt[-1].fieldAttr & ~mdMemberAccessMask) | fdFamily); } break; |
2639 | case 189: |
2640 | #line 571 "asmparse.y" |
2641 | { yyval.fieldAttr = (CorFieldAttr) (yypvt[-1].fieldAttr | fdInitOnly); } break; |
2642 | case 190: |
2643 | #line 572 "asmparse.y" |
2644 | { yyval.fieldAttr = yypvt[-1].fieldAttr; } break; |
2645 | case 191: |
2646 | #line 573 "asmparse.y" |
2647 | { yyval.fieldAttr = (CorFieldAttr) (yypvt[-1].fieldAttr | fdSpecialName); } break; |
2648 | case 192: |
2649 | #line 586 "asmparse.y" |
2650 | { PASM->m_pMarshal = yypvt[-1].binstr; } break; |
2651 | case 193: |
2652 | #line 587 "asmparse.y" |
2653 | { yyval.fieldAttr = (CorFieldAttr) ((yypvt[-1].fieldAttr & ~mdMemberAccessMask) | fdAssembly); } break; |
2654 | case 194: |
2655 | #line 588 "asmparse.y" |
2656 | { yyval.fieldAttr = (CorFieldAttr) ((yypvt[-1].fieldAttr & ~mdMemberAccessMask) | fdFamANDAssem); } break; |
2657 | case 195: |
2658 | #line 589 "asmparse.y" |
2659 | { yyval.fieldAttr = (CorFieldAttr) ((yypvt[-1].fieldAttr & ~mdMemberAccessMask) | fdFamORAssem); } break; |
2660 | case 196: |
2661 | #line 590 "asmparse.y" |
2662 | { yyval.fieldAttr = (CorFieldAttr) ((yypvt[-1].fieldAttr & ~mdMemberAccessMask) | fdPrivateScope); } break; |
2663 | case 197: |
2664 | #line 591 "asmparse.y" |
2665 | { yyval.fieldAttr = (CorFieldAttr) (yypvt[-1].fieldAttr | fdLiteral); } break; |
2666 | case 198: |
2667 | #line 592 "asmparse.y" |
2668 | { yyval.fieldAttr = (CorFieldAttr) (yypvt[-1].fieldAttr | fdNotSerialized); } break; |
2669 | case 199: |
2670 | #line 593 "asmparse.y" |
2671 | { yyval.fieldAttr = (CorFieldAttr) (yypvt[-1].int32); } break; |
2672 | case 200: |
2673 | #line 596 "asmparse.y" |
2674 | { yyval.string = 0; } break; |
2675 | case 201: |
2676 | #line 597 "asmparse.y" |
2677 | { yyval.string = yypvt[-0].string; } break; |
2678 | case 202: |
2679 | #line 600 "asmparse.y" |
2680 | { yyval.binstr = NULL; } break; |
2681 | case 203: |
2682 | #line 601 "asmparse.y" |
2683 | { yyval.binstr = yypvt[-0].binstr; } break; |
2684 | case 204: |
2685 | #line 604 "asmparse.y" |
2686 | { yyval.int32 = 0xFFFFFFFF; } break; |
2687 | case 205: |
2688 | #line 605 "asmparse.y" |
2689 | { yyval.int32 = yypvt[-1].int32; } break; |
2690 | case 206: |
2691 | #line 610 "asmparse.y" |
2692 | { PASM->ResetArgNameList(); |
2693 | if (yypvt[-3].binstr == NULL) |
2694 | { |
2695 | if((iCallConv)&&((yypvt[-8].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n" ); |
2696 | yyval.token = PASM->MakeMemberRef(yypvt[-6].token, yypvt[-4].string, parser->MakeSig(yypvt[-8].int32|iCallConv, yypvt[-7].binstr, yypvt[-1].binstr)); |
2697 | } |
2698 | else |
2699 | { |
2700 | mdToken mr; |
2701 | if((iCallConv)&&((yypvt[-8].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n" ); |
2702 | mr = PASM->MakeMemberRef(yypvt[-6].token, yypvt[-4].string, |
2703 | parser->MakeSig(yypvt[-8].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yypvt[-7].binstr, yypvt[-1].binstr, corCountArgs(yypvt[-3].binstr))); |
2704 | yyval.token = PASM->MakeMethodSpec(mr, |
2705 | parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yypvt[-3].binstr)); |
2706 | } |
2707 | } break; |
2708 | case 207: |
2709 | #line 627 "asmparse.y" |
2710 | { PASM->ResetArgNameList(); |
2711 | if((iCallConv)&&((yypvt[-8].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n" ); |
2712 | yyval.token = PASM->MakeMemberRef(yypvt[-6].token, yypvt[-4].string, |
2713 | parser->MakeSig(yypvt[-8].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yypvt[-7].binstr, yypvt[-1].binstr, yypvt[-3].int32)); |
2714 | } break; |
2715 | case 208: |
2716 | #line 633 "asmparse.y" |
2717 | { PASM->ResetArgNameList(); |
2718 | if (yypvt[-3].binstr == NULL) |
2719 | { |
2720 | if((iCallConv)&&((yypvt[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n" ); |
2721 | yyval.token = PASM->MakeMemberRef(mdTokenNil, yypvt[-4].string, parser->MakeSig(yypvt[-6].int32|iCallConv, yypvt[-5].binstr, yypvt[-1].binstr)); |
2722 | } |
2723 | else |
2724 | { |
2725 | mdToken mr; |
2726 | if((iCallConv)&&((yypvt[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n" ); |
2727 | mr = PASM->MakeMemberRef(mdTokenNil, yypvt[-4].string, parser->MakeSig(yypvt[-6].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yypvt[-5].binstr, yypvt[-1].binstr, corCountArgs(yypvt[-3].binstr))); |
2728 | yyval.token = PASM->MakeMethodSpec(mr, |
2729 | parser->MakeSig(IMAGE_CEE_CS_CALLCONV_INSTANTIATION, 0, yypvt[-3].binstr)); |
2730 | } |
2731 | } break; |
2732 | case 209: |
2733 | #line 649 "asmparse.y" |
2734 | { PASM->ResetArgNameList(); |
2735 | if((iCallConv)&&((yypvt[-6].int32 & iCallConv) != iCallConv)) parser->warn("'instance' added to method's calling convention\n" ); |
2736 | yyval.token = PASM->MakeMemberRef(mdTokenNil, yypvt[-4].string, parser->MakeSig(yypvt[-6].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC|iCallConv, yypvt[-5].binstr, yypvt[-1].binstr, yypvt[-3].int32)); |
2737 | } break; |
2738 | case 210: |
2739 | #line 653 "asmparse.y" |
2740 | { yyval.token = yypvt[-0].token; } break; |
2741 | case 211: |
2742 | #line 654 "asmparse.y" |
2743 | { yyval.token = yypvt[-0].tdd->m_tkTypeSpec; } break; |
2744 | case 212: |
2745 | #line 655 "asmparse.y" |
2746 | { yyval.token = yypvt[-0].tdd->m_tkTypeSpec; } break; |
2747 | case 213: |
2748 | #line 658 "asmparse.y" |
2749 | { yyval.int32 = (yypvt[-0].int32 | IMAGE_CEE_CS_CALLCONV_HASTHIS); } break; |
2750 | case 214: |
2751 | #line 659 "asmparse.y" |
2752 | { yyval.int32 = (yypvt[-0].int32 | IMAGE_CEE_CS_CALLCONV_EXPLICITTHIS); } break; |
2753 | case 215: |
2754 | #line 660 "asmparse.y" |
2755 | { yyval.int32 = yypvt[-0].int32; } break; |
2756 | case 216: |
2757 | #line 661 "asmparse.y" |
2758 | { yyval.int32 = yypvt[-1].int32; } break; |
2759 | case 217: |
2760 | #line 664 "asmparse.y" |
2761 | { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } break; |
2762 | case 218: |
2763 | #line 665 "asmparse.y" |
2764 | { yyval.int32 = IMAGE_CEE_CS_CALLCONV_DEFAULT; } break; |
2765 | case 219: |
2766 | #line 666 "asmparse.y" |
2767 | { yyval.int32 = IMAGE_CEE_CS_CALLCONV_VARARG; } break; |
2768 | case 220: |
2769 | #line 667 "asmparse.y" |
2770 | { yyval.int32 = IMAGE_CEE_CS_CALLCONV_C; } break; |
2771 | case 221: |
2772 | #line 668 "asmparse.y" |
2773 | { yyval.int32 = IMAGE_CEE_CS_CALLCONV_STDCALL; } break; |
2774 | case 222: |
2775 | #line 669 "asmparse.y" |
2776 | { yyval.int32 = IMAGE_CEE_CS_CALLCONV_THISCALL; } break; |
2777 | case 223: |
2778 | #line 670 "asmparse.y" |
2779 | { yyval.int32 = IMAGE_CEE_CS_CALLCONV_FASTCALL; } break; |
2780 | case 224: |
2781 | #line 673 "asmparse.y" |
2782 | { yyval.token = yypvt[-1].int32; } break; |
2783 | case 225: |
2784 | #line 676 "asmparse.y" |
2785 | { yyval.token = yypvt[-0].token; |
2786 | PASM->delArgNameList(PASM->m_firstArgName); |
2787 | PASM->m_firstArgName = parser->m_ANSFirst.POP(); |
2788 | PASM->m_lastArgName = parser->m_ANSLast.POP(); |
2789 | PASM->SetMemberRefFixup(yypvt[-0].token,iOpcodeLen); } break; |
2790 | case 226: |
2791 | #line 682 "asmparse.y" |
2792 | { yypvt[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); |
2793 | yyval.token = PASM->MakeMemberRef(yypvt[-2].token, yypvt[-0].string, yypvt[-3].binstr); |
2794 | PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } break; |
2795 | case 227: |
2796 | #line 686 "asmparse.y" |
2797 | { yypvt[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); |
2798 | yyval.token = PASM->MakeMemberRef(NULL, yypvt[-0].string, yypvt[-1].binstr); |
2799 | PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } break; |
2800 | case 228: |
2801 | #line 689 "asmparse.y" |
2802 | { yyval.token = yypvt[-0].tdd->m_tkTypeSpec; |
2803 | PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } break; |
2804 | case 229: |
2805 | #line 691 "asmparse.y" |
2806 | { yyval.token = yypvt[-0].tdd->m_tkTypeSpec; |
2807 | PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } break; |
2808 | case 230: |
2809 | #line 693 "asmparse.y" |
2810 | { yyval.token = yypvt[-0].token; |
2811 | PASM->SetMemberRefFixup(yyval.token,iOpcodeLen); } break; |
2812 | case 231: |
2813 | #line 698 "asmparse.y" |
2814 | { PASM->ResetEvent(yypvt[-0].string, yypvt[-1].token, yypvt[-2].eventAttr); } break; |
2815 | case 232: |
2816 | #line 699 "asmparse.y" |
2817 | { PASM->ResetEvent(yypvt[-0].string, mdTypeRefNil, yypvt[-1].eventAttr); } break; |
2818 | case 233: |
2819 | #line 703 "asmparse.y" |
2820 | { yyval.eventAttr = (CorEventAttr) 0; } break; |
2821 | case 234: |
2822 | #line 704 "asmparse.y" |
2823 | { yyval.eventAttr = yypvt[-1].eventAttr; } break; |
2824 | case 235: |
2825 | #line 705 "asmparse.y" |
2826 | { yyval.eventAttr = (CorEventAttr) (yypvt[-1].eventAttr | evSpecialName); } break; |
2827 | case 238: |
2828 | #line 712 "asmparse.y" |
2829 | { PASM->SetEventMethod(0, yypvt[-0].token); } break; |
2830 | case 239: |
2831 | #line 713 "asmparse.y" |
2832 | { PASM->SetEventMethod(1, yypvt[-0].token); } break; |
2833 | case 240: |
2834 | #line 714 "asmparse.y" |
2835 | { PASM->SetEventMethod(2, yypvt[-0].token); } break; |
2836 | case 241: |
2837 | #line 715 "asmparse.y" |
2838 | { PASM->SetEventMethod(3, yypvt[-0].token); } break; |
2839 | case 246: |
2840 | #line 724 "asmparse.y" |
2841 | { PASM->ResetProp(yypvt[-4].string, |
2842 | parser->MakeSig((IMAGE_CEE_CS_CALLCONV_PROPERTY | |
2843 | (yypvt[-6].int32 & IMAGE_CEE_CS_CALLCONV_HASTHIS)),yypvt[-5].binstr,yypvt[-2].binstr), yypvt[-7].propAttr, yypvt[-0].binstr);} break; |
2844 | case 247: |
2845 | #line 729 "asmparse.y" |
2846 | { yyval.propAttr = (CorPropertyAttr) 0; } break; |
2847 | case 248: |
2848 | #line 730 "asmparse.y" |
2849 | { yyval.propAttr = yypvt[-1].propAttr; } break; |
2850 | case 249: |
2851 | #line 731 "asmparse.y" |
2852 | { yyval.propAttr = (CorPropertyAttr) (yypvt[-1].propAttr | prSpecialName); } break; |
2853 | case 252: |
2854 | #line 739 "asmparse.y" |
2855 | { PASM->SetPropMethod(0, yypvt[-0].token); } break; |
2856 | case 253: |
2857 | #line 740 "asmparse.y" |
2858 | { PASM->SetPropMethod(1, yypvt[-0].token); } break; |
2859 | case 254: |
2860 | #line 741 "asmparse.y" |
2861 | { PASM->SetPropMethod(2, yypvt[-0].token); } break; |
2862 | case 259: |
2863 | #line 749 "asmparse.y" |
2864 | { PASM->ResetForNextMethod(); |
2865 | uMethodBeginLine = PASM->m_ulCurLine; |
2866 | uMethodBeginColumn=PASM->m_ulCurColumn; |
2867 | } break; |
2868 | case 260: |
2869 | #line 755 "asmparse.y" |
2870 | { yyval.binstr = NULL; } break; |
2871 | case 261: |
2872 | #line 756 "asmparse.y" |
2873 | { yyval.binstr = yypvt[-1].binstr; } break; |
2874 | case 262: |
2875 | #line 759 "asmparse.y" |
2876 | { yyval.binstr = yypvt[-0].binstr; } break; |
2877 | case 263: |
2878 | #line 760 "asmparse.y" |
2879 | { yyval.binstr = yypvt[-1].binstr; } break; |
2880 | case 264: |
2881 | #line 763 "asmparse.y" |
2882 | { bParsingByteArray = TRUE; } break; |
2883 | case 265: |
2884 | #line 767 "asmparse.y" |
2885 | { BinStr* sig; |
2886 | if (yypvt[-5].typarlist == NULL) sig = parser->MakeSig(yypvt[-10].int32, yypvt[-8].binstr, yypvt[-3].binstr); |
2887 | else { |
2888 | FixupTyPars(yypvt[-8].binstr); |
2889 | sig = parser->MakeSig(yypvt[-10].int32 | IMAGE_CEE_CS_CALLCONV_GENERIC, yypvt[-8].binstr, yypvt[-3].binstr, yypvt[-5].typarlist->Count()); |
2890 | FixupConstraints(); |
2891 | } |
2892 | PASM->StartMethod(yypvt[-6].string, sig, yypvt[-11].methAttr, yypvt[-7].binstr, yypvt[-9].int32, yypvt[-5].typarlist); |
2893 | TyParFixupList.RESET(false); |
2894 | PASM->SetImplAttr((USHORT)yypvt[-1].implAttr); |
2895 | PASM->m_pCurMethod->m_ulLines[0] = uMethodBeginLine; |
2896 | PASM->m_pCurMethod->m_ulColumns[0]=uMethodBeginColumn; |
2897 | } break; |
2898 | case 266: |
2899 | #line 782 "asmparse.y" |
2900 | { yyval.methAttr = (CorMethodAttr) 0; } break; |
2901 | case 267: |
2902 | #line 783 "asmparse.y" |
2903 | { yyval.methAttr = (CorMethodAttr) (yypvt[-1].methAttr | mdStatic); } break; |
2904 | case 268: |
2905 | #line 784 "asmparse.y" |
2906 | { yyval.methAttr = (CorMethodAttr) ((yypvt[-1].methAttr & ~mdMemberAccessMask) | mdPublic); } break; |
2907 | case 269: |
2908 | #line 785 "asmparse.y" |
2909 | { yyval.methAttr = (CorMethodAttr) ((yypvt[-1].methAttr & ~mdMemberAccessMask) | mdPrivate); } break; |
2910 | case 270: |
2911 | #line 786 "asmparse.y" |
2912 | { yyval.methAttr = (CorMethodAttr) ((yypvt[-1].methAttr & ~mdMemberAccessMask) | mdFamily); } break; |
2913 | case 271: |
2914 | #line 787 "asmparse.y" |
2915 | { yyval.methAttr = (CorMethodAttr) (yypvt[-1].methAttr | mdFinal); } break; |
2916 | case 272: |
2917 | #line 788 "asmparse.y" |
2918 | { yyval.methAttr = (CorMethodAttr) (yypvt[-1].methAttr | mdSpecialName); } break; |
2919 | case 273: |
2920 | #line 789 "asmparse.y" |
2921 | { yyval.methAttr = (CorMethodAttr) (yypvt[-1].methAttr | mdVirtual); } break; |
2922 | case 274: |
2923 | #line 790 "asmparse.y" |
2924 | { yyval.methAttr = (CorMethodAttr) (yypvt[-1].methAttr | mdCheckAccessOnOverride); } break; |
2925 | case 275: |
2926 | #line 791 "asmparse.y" |
2927 | { yyval.methAttr = (CorMethodAttr) (yypvt[-1].methAttr | mdAbstract); } break; |
2928 | case 276: |
2929 | #line 792 "asmparse.y" |
2930 | { yyval.methAttr = (CorMethodAttr) ((yypvt[-1].methAttr & ~mdMemberAccessMask) | mdAssem); } break; |
2931 | case 277: |
2932 | #line 793 "asmparse.y" |
2933 | { yyval.methAttr = (CorMethodAttr) ((yypvt[-1].methAttr & ~mdMemberAccessMask) | mdFamANDAssem); } break; |
2934 | case 278: |
2935 | #line 794 "asmparse.y" |
2936 | { yyval.methAttr = (CorMethodAttr) ((yypvt[-1].methAttr & ~mdMemberAccessMask) | mdFamORAssem); } break; |
2937 | case 279: |
2938 | #line 795 "asmparse.y" |
2939 | { yyval.methAttr = (CorMethodAttr) ((yypvt[-1].methAttr & ~mdMemberAccessMask) | mdPrivateScope); } break; |
2940 | case 280: |
2941 | #line 796 "asmparse.y" |
2942 | { yyval.methAttr = (CorMethodAttr) (yypvt[-1].methAttr | mdHideBySig); } break; |
2943 | case 281: |
2944 | #line 797 "asmparse.y" |
2945 | { yyval.methAttr = (CorMethodAttr) (yypvt[-1].methAttr | mdNewSlot); } break; |
2946 | case 282: |
2947 | #line 798 "asmparse.y" |
2948 | { yyval.methAttr = yypvt[-1].methAttr; } break; |
2949 | case 283: |
2950 | #line 799 "asmparse.y" |
2951 | { yyval.methAttr = (CorMethodAttr) (yypvt[-1].methAttr | mdUnmanagedExport); } break; |
2952 | case 284: |
2953 | #line 800 "asmparse.y" |
2954 | { yyval.methAttr = (CorMethodAttr) (yypvt[-1].methAttr | mdRequireSecObject); } break; |
2955 | case 285: |
2956 | #line 801 "asmparse.y" |
2957 | { yyval.methAttr = (CorMethodAttr) (yypvt[-1].int32); } break; |
2958 | case 286: |
2959 | #line 803 "asmparse.y" |
2960 | { PASM->SetPinvoke(yypvt[-4].binstr,0,yypvt[-2].binstr,yypvt[-1].pinvAttr); |
2961 | yyval.methAttr = (CorMethodAttr) (yypvt[-7].methAttr | mdPinvokeImpl); } break; |
2962 | case 287: |
2963 | #line 806 "asmparse.y" |
2964 | { PASM->SetPinvoke(yypvt[-2].binstr,0,NULL,yypvt[-1].pinvAttr); |
2965 | yyval.methAttr = (CorMethodAttr) (yypvt[-5].methAttr | mdPinvokeImpl); } break; |
2966 | case 288: |
2967 | #line 809 "asmparse.y" |
2968 | { PASM->SetPinvoke(new BinStr(),0,NULL,yypvt[-1].pinvAttr); |
2969 | yyval.methAttr = (CorMethodAttr) (yypvt[-4].methAttr | mdPinvokeImpl); } break; |
2970 | case 289: |
2971 | #line 813 "asmparse.y" |
2972 | { yyval.pinvAttr = (CorPinvokeMap) 0; } break; |
2973 | case 290: |
2974 | #line 814 "asmparse.y" |
2975 | { yyval.pinvAttr = (CorPinvokeMap) (yypvt[-1].pinvAttr | pmNoMangle); } break; |
2976 | case 291: |
2977 | #line 815 "asmparse.y" |
2978 | { yyval.pinvAttr = (CorPinvokeMap) (yypvt[-1].pinvAttr | pmCharSetAnsi); } break; |
2979 | case 292: |
2980 | #line 816 "asmparse.y" |
2981 | { yyval.pinvAttr = (CorPinvokeMap) (yypvt[-1].pinvAttr | pmCharSetUnicode); } break; |
2982 | case 293: |
2983 | #line 817 "asmparse.y" |
2984 | { yyval.pinvAttr = (CorPinvokeMap) (yypvt[-1].pinvAttr | pmCharSetAuto); } break; |
2985 | case 294: |
2986 | #line 818 "asmparse.y" |
2987 | { yyval.pinvAttr = (CorPinvokeMap) (yypvt[-1].pinvAttr | pmSupportsLastError); } break; |
2988 | case 295: |
2989 | #line 819 "asmparse.y" |
2990 | { yyval.pinvAttr = (CorPinvokeMap) (yypvt[-1].pinvAttr | pmCallConvWinapi); } break; |
2991 | case 296: |
2992 | #line 820 "asmparse.y" |
2993 | { yyval.pinvAttr = (CorPinvokeMap) (yypvt[-1].pinvAttr | pmCallConvCdecl); } break; |
2994 | case 297: |
2995 | #line 821 "asmparse.y" |
2996 | { yyval.pinvAttr = (CorPinvokeMap) (yypvt[-1].pinvAttr | pmCallConvStdcall); } break; |
2997 | case 298: |
2998 | #line 822 "asmparse.y" |
2999 | { yyval.pinvAttr = (CorPinvokeMap) (yypvt[-1].pinvAttr | pmCallConvThiscall); } break; |
3000 | case 299: |
3001 | #line 823 "asmparse.y" |
3002 | { yyval.pinvAttr = (CorPinvokeMap) (yypvt[-1].pinvAttr | pmCallConvFastcall); } break; |
3003 | case 300: |
3004 | #line 824 "asmparse.y" |
3005 | { yyval.pinvAttr = (CorPinvokeMap) (yypvt[-3].pinvAttr | pmBestFitEnabled); } break; |
3006 | case 301: |
3007 | #line 825 "asmparse.y" |
3008 | { yyval.pinvAttr = (CorPinvokeMap) (yypvt[-3].pinvAttr | pmBestFitDisabled); } break; |
3009 | case 302: |
3010 | #line 826 "asmparse.y" |
3011 | { yyval.pinvAttr = (CorPinvokeMap) (yypvt[-3].pinvAttr | pmThrowOnUnmappableCharEnabled); } break; |
3012 | case 303: |
3013 | #line 827 "asmparse.y" |
3014 | { yyval.pinvAttr = (CorPinvokeMap) (yypvt[-3].pinvAttr | pmThrowOnUnmappableCharDisabled); } break; |
3015 | case 304: |
3016 | #line 828 "asmparse.y" |
3017 | { yyval.pinvAttr = (CorPinvokeMap) (yypvt[-1].int32); } break; |
3018 | case 305: |
3019 | #line 831 "asmparse.y" |
3020 | { yyval.string = newString(COR_CTOR_METHOD_NAME); } break; |
3021 | case 306: |
3022 | #line 832 "asmparse.y" |
3023 | { yyval.string = newString(COR_CCTOR_METHOD_NAME); } break; |
3024 | case 307: |
3025 | #line 833 "asmparse.y" |
3026 | { yyval.string = yypvt[-0].string; } break; |
3027 | case 308: |
3028 | #line 836 "asmparse.y" |
3029 | { yyval.int32 = 0; } break; |
3030 | case 309: |
3031 | #line 837 "asmparse.y" |
3032 | { yyval.int32 = yypvt[-3].int32 | pdIn; } break; |
3033 | case 310: |
3034 | #line 838 "asmparse.y" |
3035 | { yyval.int32 = yypvt[-3].int32 | pdOut; } break; |
3036 | case 311: |
3037 | #line 839 "asmparse.y" |
3038 | { yyval.int32 = yypvt[-3].int32 | pdOptional; } break; |
3039 | case 312: |
3040 | #line 840 "asmparse.y" |
3041 | { yyval.int32 = yypvt[-1].int32 + 1; } break; |
3042 | case 313: |
3043 | #line 843 "asmparse.y" |
3044 | { yyval.implAttr = (CorMethodImpl) (miIL | miManaged); } break; |
3045 | case 314: |
3046 | #line 844 "asmparse.y" |
3047 | { yyval.implAttr = (CorMethodImpl) ((yypvt[-1].implAttr & 0xFFF4) | miNative); } break; |
3048 | case 315: |
3049 | #line 845 "asmparse.y" |
3050 | { yyval.implAttr = (CorMethodImpl) ((yypvt[-1].implAttr & 0xFFF4) | miIL); } break; |
3051 | case 316: |
3052 | #line 846 "asmparse.y" |
3053 | { yyval.implAttr = (CorMethodImpl) ((yypvt[-1].implAttr & 0xFFF4) | miOPTIL); } break; |
3054 | case 317: |
3055 | #line 847 "asmparse.y" |
3056 | { yyval.implAttr = (CorMethodImpl) ((yypvt[-1].implAttr & 0xFFFB) | miManaged); } break; |
3057 | case 318: |
3058 | #line 848 "asmparse.y" |
3059 | { yyval.implAttr = (CorMethodImpl) ((yypvt[-1].implAttr & 0xFFFB) | miUnmanaged); } break; |
3060 | case 319: |
3061 | #line 849 "asmparse.y" |
3062 | { yyval.implAttr = (CorMethodImpl) (yypvt[-1].implAttr | miForwardRef); } break; |
3063 | case 320: |
3064 | #line 850 "asmparse.y" |
3065 | { yyval.implAttr = (CorMethodImpl) (yypvt[-1].implAttr | miPreserveSig); } break; |
3066 | case 321: |
3067 | #line 851 "asmparse.y" |
3068 | { yyval.implAttr = (CorMethodImpl) (yypvt[-1].implAttr | miRuntime); } break; |
3069 | case 322: |
3070 | #line 852 "asmparse.y" |
3071 | { yyval.implAttr = (CorMethodImpl) (yypvt[-1].implAttr | miInternalCall); } break; |
3072 | case 323: |
3073 | #line 853 "asmparse.y" |
3074 | { yyval.implAttr = (CorMethodImpl) (yypvt[-1].implAttr | miSynchronized); } break; |
3075 | case 324: |
3076 | #line 854 "asmparse.y" |
3077 | { yyval.implAttr = (CorMethodImpl) (yypvt[-1].implAttr | miNoInlining); } break; |
3078 | case 325: |
3079 | #line 855 "asmparse.y" |
3080 | { yyval.implAttr = (CorMethodImpl) (yypvt[-1].implAttr | miAggressiveInlining); } break; |
3081 | case 326: |
3082 | #line 856 "asmparse.y" |
3083 | { yyval.implAttr = (CorMethodImpl) (yypvt[-1].implAttr | miNoOptimization); } break; |
3084 | case 327: |
3085 | #line 857 "asmparse.y" |
3086 | { yyval.implAttr = (CorMethodImpl) (yypvt[-1].implAttr | miAggressiveOptimization); } break; |
3087 | case 328: |
3088 | #line 858 "asmparse.y" |
3089 | { yyval.implAttr = (CorMethodImpl) (yypvt[-1].int32); } break; |
3090 | case 329: |
3091 | #line 861 "asmparse.y" |
3092 | { PASM->delArgNameList(PASM->m_firstArgName); PASM->m_firstArgName = NULL;PASM->m_lastArgName = NULL; |
3093 | } break; |
3094 | case 332: |
3095 | #line 869 "asmparse.y" |
3096 | { PASM->EmitByte(yypvt[-0].int32); } break; |
3097 | case 333: |
3098 | #line 870 "asmparse.y" |
3099 | { delete PASM->m_SEHD; PASM->m_SEHD = PASM->m_SEHDstack.POP(); } break; |
3100 | case 334: |
3101 | #line 871 "asmparse.y" |
3102 | { PASM->EmitMaxStack(yypvt[-0].int32); } break; |
3103 | case 335: |
3104 | #line 872 "asmparse.y" |
3105 | { PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yypvt[-1].binstr)); |
3106 | } break; |
3107 | case 336: |
3108 | #line 874 "asmparse.y" |
3109 | { PASM->EmitZeroInit(); |
3110 | PASM->EmitLocals(parser->MakeSig(IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, 0, yypvt[-1].binstr)); |
3111 | } break; |
3112 | case 337: |
3113 | #line 877 "asmparse.y" |
3114 | { PASM->EmitEntryPoint(); } break; |
3115 | case 338: |
3116 | #line 878 "asmparse.y" |
3117 | { PASM->EmitZeroInit(); } break; |
3118 | case 341: |
3119 | #line 881 "asmparse.y" |
3120 | { PASM->AddLabel(PASM->m_CurPC,yypvt[-1].string); /*PASM->EmitLabel($1);*/ } break; |
3121 | case 347: |
3122 | #line 887 "asmparse.y" |
3123 | { if(PASM->m_pCurMethod->m_dwExportOrdinal == 0xFFFFFFFF) |
3124 | { |
3125 | PASM->m_pCurMethod->m_dwExportOrdinal = yypvt[-1].int32; |
3126 | PASM->m_pCurMethod->m_szExportAlias = NULL; |
3127 | if(PASM->m_pCurMethod->m_wVTEntry == 0) PASM->m_pCurMethod->m_wVTEntry = 1; |
3128 | if(PASM->m_pCurMethod->m_wVTSlot == 0) PASM->m_pCurMethod->m_wVTSlot = yypvt[-1].int32 + 0x8000; |
3129 | } |
3130 | else |
3131 | PASM->report->warn("Duplicate .export directive, ignored\n" ); |
3132 | } break; |
3133 | case 348: |
3134 | #line 897 "asmparse.y" |
3135 | { if(PASM->m_pCurMethod->m_dwExportOrdinal == 0xFFFFFFFF) |
3136 | { |
3137 | PASM->m_pCurMethod->m_dwExportOrdinal = yypvt[-3].int32; |
3138 | PASM->m_pCurMethod->m_szExportAlias = yypvt[-0].string; |
3139 | if(PASM->m_pCurMethod->m_wVTEntry == 0) PASM->m_pCurMethod->m_wVTEntry = 1; |
3140 | if(PASM->m_pCurMethod->m_wVTSlot == 0) PASM->m_pCurMethod->m_wVTSlot = yypvt[-3].int32 + 0x8000; |
3141 | } |
3142 | else |
3143 | PASM->report->warn("Duplicate .export directive, ignored\n" ); |
3144 | } break; |
3145 | case 349: |
3146 | #line 907 "asmparse.y" |
3147 | { PASM->m_pCurMethod->m_wVTEntry = (WORD)yypvt[-2].int32; |
3148 | PASM->m_pCurMethod->m_wVTSlot = (WORD)yypvt[-0].int32; } break; |
3149 | case 350: |
3150 | #line 910 "asmparse.y" |
3151 | { PASM->AddMethodImpl(yypvt[-2].token,yypvt[-0].string,NULL,NULL,NULL,NULL); } break; |
3152 | case 351: |
3153 | #line 913 "asmparse.y" |
3154 | { PASM->AddMethodImpl(yypvt[-6].token,yypvt[-4].string, |
3155 | (yypvt[-3].int32==0 ? parser->MakeSig(yypvt[-8].int32,yypvt[-7].binstr,yypvt[-1].binstr) : |
3156 | parser->MakeSig(yypvt[-8].int32| IMAGE_CEE_CS_CALLCONV_GENERIC,yypvt[-7].binstr,yypvt[-1].binstr,yypvt[-3].int32)) |
3157 | ,NULL,NULL,NULL); |
3158 | PASM->ResetArgNameList(); |
3159 | } break; |
3160 | case 353: |
3161 | #line 920 "asmparse.y" |
3162 | { if((yypvt[-1].int32 > 0) && (yypvt[-1].int32 <= (int)PASM->m_pCurMethod->m_NumTyPars)) |
3163 | PASM->m_pCustomDescrList = PASM->m_pCurMethod->m_TyPars[yypvt[-1].int32-1].CAList(); |
3164 | else |
3165 | PASM->report->error("Type parameter index out of range\n" ); |
3166 | } break; |
3167 | case 354: |
3168 | #line 925 "asmparse.y" |
3169 | { int n = PASM->m_pCurMethod->FindTyPar(yypvt[-0].string); |
3170 | if(n >= 0) |
3171 | PASM->m_pCustomDescrList = PASM->m_pCurMethod->m_TyPars[n].CAList(); |
3172 | else |
3173 | PASM->report->error("Type parameter '%s' undefined\n" ,yypvt[-0].string); |
3174 | } break; |
3175 | case 355: |
3176 | #line 932 "asmparse.y" |
3177 | { if( yypvt[-2].int32 ) { |
3178 | ARG_NAME_LIST* pAN=PASM->findArg(PASM->m_pCurMethod->m_firstArgName, yypvt[-2].int32 - 1); |
3179 | if(pAN) |
3180 | { |
3181 | PASM->m_pCustomDescrList = &(pAN->CustDList); |
3182 | pAN->pValue = yypvt[-0].binstr; |
3183 | } |
3184 | else |
3185 | { |
3186 | PASM->m_pCustomDescrList = NULL; |
3187 | if(yypvt[-0].binstr) delete yypvt[-0].binstr; |
3188 | } |
3189 | } else { |
3190 | PASM->m_pCustomDescrList = &(PASM->m_pCurMethod->m_RetCustDList); |
3191 | PASM->m_pCurMethod->m_pRetValue = yypvt[-0].binstr; |
3192 | } |
3193 | PASM->m_tkCurrentCVOwner = 0; |
3194 | } break; |
3195 | case 356: |
3196 | #line 952 "asmparse.y" |
3197 | { PASM->m_pCurMethod->CloseScope(); } break; |
3198 | case 357: |
3199 | #line 955 "asmparse.y" |
3200 | { PASM->m_pCurMethod->OpenScope(); } break; |
3201 | case 361: |
3202 | #line 966 "asmparse.y" |
3203 | { PASM->m_SEHD->tryTo = PASM->m_CurPC; } break; |
3204 | case 362: |
3205 | #line 967 "asmparse.y" |
3206 | { PASM->SetTryLabels(yypvt[-2].string, yypvt[-0].string); } break; |
3207 | case 363: |
3208 | #line 968 "asmparse.y" |
3209 | { if(PASM->m_SEHD) {PASM->m_SEHD->tryFrom = yypvt[-2].int32; |
3210 | PASM->m_SEHD->tryTo = yypvt[-0].int32;} } break; |
3211 | case 364: |
3212 | #line 972 "asmparse.y" |
3213 | { PASM->NewSEHDescriptor(); |
3214 | PASM->m_SEHD->tryFrom = PASM->m_CurPC; } break; |
3215 | case 365: |
3216 | #line 977 "asmparse.y" |
3217 | { PASM->EmitTry(); } break; |
3218 | case 366: |
3219 | #line 978 "asmparse.y" |
3220 | { PASM->EmitTry(); } break; |
3221 | case 367: |
3222 | #line 979 "asmparse.y" |
3223 | { PASM->EmitTry(); } break; |
3224 | case 368: |
3225 | #line 980 "asmparse.y" |
3226 | { PASM->EmitTry(); } break; |
3227 | case 369: |
3228 | #line 984 "asmparse.y" |
3229 | { PASM->m_SEHD->sehHandler = PASM->m_CurPC; } break; |
3230 | case 370: |
3231 | #line 985 "asmparse.y" |
3232 | { PASM->SetFilterLabel(yypvt[-0].string); |
3233 | PASM->m_SEHD->sehHandler = PASM->m_CurPC; } break; |
3234 | case 371: |
3235 | #line 987 "asmparse.y" |
3236 | { PASM->m_SEHD->sehFilter = yypvt[-0].int32; |
3237 | PASM->m_SEHD->sehHandler = PASM->m_CurPC; } break; |
3238 | case 372: |
3239 | #line 991 "asmparse.y" |
3240 | { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FILTER; |
3241 | PASM->m_SEHD->sehFilter = PASM->m_CurPC; } break; |
3242 | case 373: |
3243 | #line 995 "asmparse.y" |
3244 | { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_NONE; |
3245 | PASM->SetCatchClass(yypvt[-0].token); |
3246 | PASM->m_SEHD->sehHandler = PASM->m_CurPC; } break; |
3247 | case 374: |
3248 | #line 1000 "asmparse.y" |
3249 | { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FINALLY; |
3250 | PASM->m_SEHD->sehHandler = PASM->m_CurPC; } break; |
3251 | case 375: |
3252 | #line 1004 "asmparse.y" |
3253 | { PASM->m_SEHD->sehClause = COR_ILEXCEPTION_CLAUSE_FAULT; |
3254 | PASM->m_SEHD->sehHandler = PASM->m_CurPC; } break; |
3255 | case 376: |
3256 | #line 1008 "asmparse.y" |
3257 | { PASM->m_SEHD->sehHandlerTo = PASM->m_CurPC; } break; |
3258 | case 377: |
3259 | #line 1009 "asmparse.y" |
3260 | { PASM->SetHandlerLabels(yypvt[-2].string, yypvt[-0].string); } break; |
3261 | case 378: |
3262 | #line 1010 "asmparse.y" |
3263 | { PASM->m_SEHD->sehHandler = yypvt[-2].int32; |
3264 | PASM->m_SEHD->sehHandlerTo = yypvt[-0].int32; } break; |
3265 | case 380: |
3266 | #line 1018 "asmparse.y" |
3267 | { PASM->EmitDataLabel(yypvt[-1].string); } break; |
3268 | case 382: |
3269 | #line 1022 "asmparse.y" |
3270 | { PASM->SetDataSection(); } break; |
3271 | case 383: |
3272 | #line 1023 "asmparse.y" |
3273 | { PASM->SetTLSSection(); } break; |
3274 | case 384: |
3275 | #line 1024 "asmparse.y" |
3276 | { PASM->SetILSection(); } break; |
3277 | case 389: |
3278 | #line 1035 "asmparse.y" |
3279 | { yyval.int32 = 1; } break; |
3280 | case 390: |
3281 | #line 1036 "asmparse.y" |
3282 | { yyval.int32 = yypvt[-1].int32; |
3283 | if(yypvt[-1].int32 <= 0) { PASM->report->error("Illegal item count: %d\n" ,yypvt[-1].int32); |
3284 | if(!PASM->OnErrGo) yyval.int32 = 1; }} break; |
3285 | case 391: |
3286 | #line 1041 "asmparse.y" |
3287 | { PASM->EmitDataString(yypvt[-1].binstr); } break; |
3288 | case 392: |
3289 | #line 1042 "asmparse.y" |
3290 | { PASM->EmitDD(yypvt[-1].string); } break; |
3291 | case 393: |
3292 | #line 1043 "asmparse.y" |
3293 | { PASM->EmitData(yypvt[-1].binstr->ptr(),yypvt[-1].binstr->length()); } break; |
3294 | case 394: |
3295 | #line 1045 "asmparse.y" |
3296 | { float f = (float) (*yypvt[-2].float64); float* p = new (nothrow) float[yypvt[-0].int32]; |
3297 | if(p != NULL) { |
3298 | for(int i=0; i < yypvt[-0].int32; i++) p[i] = f; |
3299 | PASM->EmitData(p, sizeof(float)*yypvt[-0].int32); delete yypvt[-2].float64; delete [] p; |
3300 | } else PASM->report->error("Out of memory emitting data block %d bytes\n" , |
3301 | sizeof(float)*yypvt[-0].int32); } break; |
3302 | case 395: |
3303 | #line 1052 "asmparse.y" |
3304 | { double* p = new (nothrow) double[yypvt[-0].int32]; |
3305 | if(p != NULL) { |
3306 | for(int i=0; i<yypvt[-0].int32; i++) p[i] = *(yypvt[-2].float64); |
3307 | PASM->EmitData(p, sizeof(double)*yypvt[-0].int32); delete yypvt[-2].float64; delete [] p; |
3308 | } else PASM->report->error("Out of memory emitting data block %d bytes\n" , |
3309 | sizeof(double)*yypvt[-0].int32); } break; |
3310 | case 396: |
3311 | #line 1059 "asmparse.y" |
3312 | { __int64* p = new (nothrow) __int64[yypvt[-0].int32]; |
3313 | if(p != NULL) { |
3314 | for(int i=0; i<yypvt[-0].int32; i++) p[i] = *(yypvt[-2].int64); |
3315 | PASM->EmitData(p, sizeof(__int64)*yypvt[-0].int32); delete yypvt[-2].int64; delete [] p; |
3316 | } else PASM->report->error("Out of memory emitting data block %d bytes\n" , |
3317 | sizeof(__int64)*yypvt[-0].int32); } break; |
3318 | case 397: |
3319 | #line 1066 "asmparse.y" |
3320 | { __int32* p = new (nothrow) __int32[yypvt[-0].int32]; |
3321 | if(p != NULL) { |
3322 | for(int i=0; i<yypvt[-0].int32; i++) p[i] = yypvt[-2].int32; |
3323 | PASM->EmitData(p, sizeof(__int32)*yypvt[-0].int32); delete [] p; |
3324 | } else PASM->report->error("Out of memory emitting data block %d bytes\n" , |
3325 | sizeof(__int32)*yypvt[-0].int32); } break; |
3326 | case 398: |
3327 | #line 1073 "asmparse.y" |
3328 | { __int16 i = (__int16) yypvt[-2].int32; FAIL_UNLESS(i == yypvt[-2].int32, ("Value %d too big\n" , yypvt[-2].int32)); |
3329 | __int16* p = new (nothrow) __int16[yypvt[-0].int32]; |
3330 | if(p != NULL) { |
3331 | for(int j=0; j<yypvt[-0].int32; j++) p[j] = i; |
3332 | PASM->EmitData(p, sizeof(__int16)*yypvt[-0].int32); delete [] p; |
3333 | } else PASM->report->error("Out of memory emitting data block %d bytes\n" , |
3334 | sizeof(__int16)*yypvt[-0].int32); } break; |
3335 | case 399: |
3336 | #line 1081 "asmparse.y" |
3337 | { __int8 i = (__int8) yypvt[-2].int32; FAIL_UNLESS(i == yypvt[-2].int32, ("Value %d too big\n" , yypvt[-2].int32)); |
3338 | __int8* p = new (nothrow) __int8[yypvt[-0].int32]; |
3339 | if(p != NULL) { |
3340 | for(int j=0; j<yypvt[-0].int32; j++) p[j] = i; |
3341 | PASM->EmitData(p, sizeof(__int8)*yypvt[-0].int32); delete [] p; |
3342 | } else PASM->report->error("Out of memory emitting data block %d bytes\n" , |
3343 | sizeof(__int8)*yypvt[-0].int32); } break; |
3344 | case 400: |
3345 | #line 1088 "asmparse.y" |
3346 | { PASM->EmitData(NULL, sizeof(float)*yypvt[-0].int32); } break; |
3347 | case 401: |
3348 | #line 1089 "asmparse.y" |
3349 | { PASM->EmitData(NULL, sizeof(double)*yypvt[-0].int32); } break; |
3350 | case 402: |
3351 | #line 1090 "asmparse.y" |
3352 | { PASM->EmitData(NULL, sizeof(__int64)*yypvt[-0].int32); } break; |
3353 | case 403: |
3354 | #line 1091 "asmparse.y" |
3355 | { PASM->EmitData(NULL, sizeof(__int32)*yypvt[-0].int32); } break; |
3356 | case 404: |
3357 | #line 1092 "asmparse.y" |
3358 | { PASM->EmitData(NULL, sizeof(__int16)*yypvt[-0].int32); } break; |
3359 | case 405: |
3360 | #line 1093 "asmparse.y" |
3361 | { PASM->EmitData(NULL, sizeof(__int8)*yypvt[-0].int32); } break; |
3362 | case 406: |
3363 | #line 1097 "asmparse.y" |
3364 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); |
3365 | float f = (float)(*yypvt[-1].float64); |
3366 | yyval.binstr->appendInt32(*((__int32*)&f)); delete yypvt[-1].float64; } break; |
3367 | case 407: |
3368 | #line 1100 "asmparse.y" |
3369 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); |
3370 | yyval.binstr->appendInt64((__int64 *)yypvt[-1].float64); delete yypvt[-1].float64; } break; |
3371 | case 408: |
3372 | #line 1102 "asmparse.y" |
3373 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); |
3374 | yyval.binstr->appendInt32(yypvt[-1].int32); } break; |
3375 | case 409: |
3376 | #line 1104 "asmparse.y" |
3377 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); |
3378 | yyval.binstr->appendInt64((__int64 *)yypvt[-1].int64); delete yypvt[-1].int64; } break; |
3379 | case 410: |
3380 | #line 1106 "asmparse.y" |
3381 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); |
3382 | yyval.binstr->appendInt64((__int64 *)yypvt[-1].int64); delete yypvt[-1].int64; } break; |
3383 | case 411: |
3384 | #line 1108 "asmparse.y" |
3385 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); |
3386 | yyval.binstr->appendInt32(yypvt[-1].int32); } break; |
3387 | case 412: |
3388 | #line 1110 "asmparse.y" |
3389 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); |
3390 | yyval.binstr->appendInt16(yypvt[-1].int32); } break; |
3391 | case 413: |
3392 | #line 1112 "asmparse.y" |
3393 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); |
3394 | yyval.binstr->appendInt8(yypvt[-1].int32); } break; |
3395 | case 414: |
3396 | #line 1114 "asmparse.y" |
3397 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); |
3398 | yyval.binstr->appendInt64((__int64 *)yypvt[-1].int64); delete yypvt[-1].int64; } break; |
3399 | case 415: |
3400 | #line 1116 "asmparse.y" |
3401 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); |
3402 | yyval.binstr->appendInt32(yypvt[-1].int32); } break; |
3403 | case 416: |
3404 | #line 1118 "asmparse.y" |
3405 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); |
3406 | yyval.binstr->appendInt16(yypvt[-1].int32); } break; |
3407 | case 417: |
3408 | #line 1120 "asmparse.y" |
3409 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); |
3410 | yyval.binstr->appendInt8(yypvt[-1].int32); } break; |
3411 | case 418: |
3412 | #line 1122 "asmparse.y" |
3413 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); |
3414 | yyval.binstr->appendInt64((__int64 *)yypvt[-1].int64); delete yypvt[-1].int64; } break; |
3415 | case 419: |
3416 | #line 1124 "asmparse.y" |
3417 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); |
3418 | yyval.binstr->appendInt32(yypvt[-1].int32); } break; |
3419 | case 420: |
3420 | #line 1126 "asmparse.y" |
3421 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); |
3422 | yyval.binstr->appendInt16(yypvt[-1].int32); } break; |
3423 | case 421: |
3424 | #line 1128 "asmparse.y" |
3425 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); |
3426 | yyval.binstr->appendInt8(yypvt[-1].int32); } break; |
3427 | case 422: |
3428 | #line 1130 "asmparse.y" |
3429 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); |
3430 | yyval.binstr->appendInt16(yypvt[-1].int32); } break; |
3431 | case 423: |
3432 | #line 1132 "asmparse.y" |
3433 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); |
3434 | yyval.binstr->appendInt8(yypvt[-1].int32);} break; |
3435 | case 424: |
3436 | #line 1134 "asmparse.y" |
3437 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); |
3438 | yyval.binstr->append(yypvt[-1].binstr); delete yypvt[-1].binstr;} break; |
3439 | case 425: |
3440 | #line 1138 "asmparse.y" |
3441 | { bParsingByteArray = TRUE; } break; |
3442 | case 426: |
3443 | #line 1141 "asmparse.y" |
3444 | { yyval.binstr = new BinStr(); } break; |
3445 | case 427: |
3446 | #line 1142 "asmparse.y" |
3447 | { yyval.binstr = yypvt[-0].binstr; } break; |
3448 | case 428: |
3449 | #line 1145 "asmparse.y" |
3450 | { __int8 i = (__int8) yypvt[-0].int32; yyval.binstr = new BinStr(); yyval.binstr->appendInt8(i); } break; |
3451 | case 429: |
3452 | #line 1146 "asmparse.y" |
3453 | { __int8 i = (__int8) yypvt[-0].int32; yyval.binstr = yypvt[-1].binstr; yyval.binstr->appendInt8(i); } break; |
3454 | case 430: |
3455 | #line 1150 "asmparse.y" |
3456 | { yyval.binstr = yypvt[-0].binstr; } break; |
3457 | case 431: |
3458 | #line 1151 "asmparse.y" |
3459 | { yyval.binstr = BinStrToUnicode(yypvt[-0].binstr,true); yyval.binstr->insertInt8(ELEMENT_TYPE_STRING);} break; |
3460 | case 432: |
3461 | #line 1152 "asmparse.y" |
3462 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CLASS); |
3463 | yyval.binstr->appendInt32(0); } break; |
3464 | case 433: |
3465 | #line 1157 "asmparse.y" |
3466 | { yyval.binstr = yypvt[-0].binstr; } break; |
3467 | case 434: |
3468 | #line 1158 "asmparse.y" |
3469 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); yyval.binstr->appendInt8(0xFF); } break; |
3470 | case 435: |
3471 | #line 1159 "asmparse.y" |
3472 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); |
3473 | AppendStringWithLength(yyval.binstr,yypvt[-1].string); delete [] yypvt[-1].string;} break; |
3474 | case 436: |
3475 | #line 1161 "asmparse.y" |
3476 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); |
3477 | AppendStringWithLength(yyval.binstr,yypvt[-1].string); delete [] yypvt[-1].string;} break; |
3478 | case 437: |
3479 | #line 1163 "asmparse.y" |
3480 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); |
3481 | AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yypvt[-1].token));} break; |
3482 | case 438: |
3483 | #line 1165 "asmparse.y" |
3484 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(SERIALIZATION_TYPE_TYPE); yyval.binstr->appendInt8(0xFF); } break; |
3485 | case 439: |
3486 | #line 1166 "asmparse.y" |
3487 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT);} break; |
3488 | case 440: |
3489 | #line 1168 "asmparse.y" |
3490 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); |
3491 | yyval.binstr->insertInt8(ELEMENT_TYPE_R4); |
3492 | yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; |
3493 | case 441: |
3494 | #line 1172 "asmparse.y" |
3495 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); |
3496 | yyval.binstr->insertInt8(ELEMENT_TYPE_R8); |
3497 | yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; |
3498 | case 442: |
3499 | #line 1176 "asmparse.y" |
3500 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); |
3501 | yyval.binstr->insertInt8(ELEMENT_TYPE_I8); |
3502 | yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; |
3503 | case 443: |
3504 | #line 1180 "asmparse.y" |
3505 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); |
3506 | yyval.binstr->insertInt8(ELEMENT_TYPE_I4); |
3507 | yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; |
3508 | case 444: |
3509 | #line 1184 "asmparse.y" |
3510 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); |
3511 | yyval.binstr->insertInt8(ELEMENT_TYPE_I2); |
3512 | yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; |
3513 | case 445: |
3514 | #line 1188 "asmparse.y" |
3515 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); |
3516 | yyval.binstr->insertInt8(ELEMENT_TYPE_I1); |
3517 | yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; |
3518 | case 446: |
3519 | #line 1192 "asmparse.y" |
3520 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); |
3521 | yyval.binstr->insertInt8(ELEMENT_TYPE_U8); |
3522 | yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; |
3523 | case 447: |
3524 | #line 1196 "asmparse.y" |
3525 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); |
3526 | yyval.binstr->insertInt8(ELEMENT_TYPE_U4); |
3527 | yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; |
3528 | case 448: |
3529 | #line 1200 "asmparse.y" |
3530 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); |
3531 | yyval.binstr->insertInt8(ELEMENT_TYPE_U2); |
3532 | yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; |
3533 | case 449: |
3534 | #line 1204 "asmparse.y" |
3535 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); |
3536 | yyval.binstr->insertInt8(ELEMENT_TYPE_U1); |
3537 | yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; |
3538 | case 450: |
3539 | #line 1208 "asmparse.y" |
3540 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); |
3541 | yyval.binstr->insertInt8(ELEMENT_TYPE_U8); |
3542 | yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; |
3543 | case 451: |
3544 | #line 1212 "asmparse.y" |
3545 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); |
3546 | yyval.binstr->insertInt8(ELEMENT_TYPE_U4); |
3547 | yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; |
3548 | case 452: |
3549 | #line 1216 "asmparse.y" |
3550 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); |
3551 | yyval.binstr->insertInt8(ELEMENT_TYPE_U2); |
3552 | yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; |
3553 | case 453: |
3554 | #line 1220 "asmparse.y" |
3555 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); |
3556 | yyval.binstr->insertInt8(ELEMENT_TYPE_U1); |
3557 | yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; |
3558 | case 454: |
3559 | #line 1224 "asmparse.y" |
3560 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); |
3561 | yyval.binstr->insertInt8(ELEMENT_TYPE_CHAR); |
3562 | yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; |
3563 | case 455: |
3564 | #line 1228 "asmparse.y" |
3565 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); |
3566 | yyval.binstr->insertInt8(ELEMENT_TYPE_BOOLEAN); |
3567 | yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; |
3568 | case 456: |
3569 | #line 1232 "asmparse.y" |
3570 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); |
3571 | yyval.binstr->insertInt8(ELEMENT_TYPE_STRING); |
3572 | yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; |
3573 | case 457: |
3574 | #line 1236 "asmparse.y" |
3575 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); |
3576 | yyval.binstr->insertInt8(SERIALIZATION_TYPE_TYPE); |
3577 | yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; |
3578 | case 458: |
3579 | #line 1240 "asmparse.y" |
3580 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt32(yypvt[-4].int32); |
3581 | yyval.binstr->insertInt8(SERIALIZATION_TYPE_TAGGED_OBJECT); |
3582 | yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; |
3583 | case 459: |
3584 | #line 1246 "asmparse.y" |
3585 | { yyval.binstr = new BinStr(); } break; |
3586 | case 460: |
3587 | #line 1247 "asmparse.y" |
3588 | { yyval.binstr = yypvt[-1].binstr; |
3589 | float f = (float) (*yypvt[-0].float64); yyval.binstr->appendInt32(*((__int32*)&f)); delete yypvt[-0].float64; } break; |
3590 | case 461: |
3591 | #line 1249 "asmparse.y" |
3592 | { yyval.binstr = yypvt[-1].binstr; |
3593 | yyval.binstr->appendInt32(yypvt[-0].int32); } break; |
3594 | case 462: |
3595 | #line 1253 "asmparse.y" |
3596 | { yyval.binstr = new BinStr(); } break; |
3597 | case 463: |
3598 | #line 1254 "asmparse.y" |
3599 | { yyval.binstr = yypvt[-1].binstr; |
3600 | yyval.binstr->appendInt64((__int64 *)yypvt[-0].float64); delete yypvt[-0].float64; } break; |
3601 | case 464: |
3602 | #line 1256 "asmparse.y" |
3603 | { yyval.binstr = yypvt[-1].binstr; |
3604 | yyval.binstr->appendInt64((__int64 *)yypvt[-0].int64); delete yypvt[-0].int64; } break; |
3605 | case 465: |
3606 | #line 1260 "asmparse.y" |
3607 | { yyval.binstr = new BinStr(); } break; |
3608 | case 466: |
3609 | #line 1261 "asmparse.y" |
3610 | { yyval.binstr = yypvt[-1].binstr; |
3611 | yyval.binstr->appendInt64((__int64 *)yypvt[-0].int64); delete yypvt[-0].int64; } break; |
3612 | case 467: |
3613 | #line 1265 "asmparse.y" |
3614 | { yyval.binstr = new BinStr(); } break; |
3615 | case 468: |
3616 | #line 1266 "asmparse.y" |
3617 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->appendInt32(yypvt[-0].int32);} break; |
3618 | case 469: |
3619 | #line 1269 "asmparse.y" |
3620 | { yyval.binstr = new BinStr(); } break; |
3621 | case 470: |
3622 | #line 1270 "asmparse.y" |
3623 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->appendInt16(yypvt[-0].int32);} break; |
3624 | case 471: |
3625 | #line 1273 "asmparse.y" |
3626 | { yyval.binstr = new BinStr(); } break; |
3627 | case 472: |
3628 | #line 1274 "asmparse.y" |
3629 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->appendInt8(yypvt[-0].int32); } break; |
3630 | case 473: |
3631 | #line 1277 "asmparse.y" |
3632 | { yyval.binstr = new BinStr(); } break; |
3633 | case 474: |
3634 | #line 1278 "asmparse.y" |
3635 | { yyval.binstr = yypvt[-1].binstr; |
3636 | yyval.binstr->appendInt8(yypvt[-0].int32);} break; |
3637 | case 475: |
3638 | #line 1282 "asmparse.y" |
3639 | { yyval.binstr = new BinStr(); } break; |
3640 | case 476: |
3641 | #line 1283 "asmparse.y" |
3642 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->appendInt8(0xFF); } break; |
3643 | case 477: |
3644 | #line 1284 "asmparse.y" |
3645 | { yyval.binstr = yypvt[-1].binstr; |
3646 | AppendStringWithLength(yyval.binstr,yypvt[-0].string); delete [] yypvt[-0].string;} break; |
3647 | case 478: |
3648 | #line 1288 "asmparse.y" |
3649 | { yyval.binstr = new BinStr(); } break; |
3650 | case 479: |
3651 | #line 1289 "asmparse.y" |
3652 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->appendInt8(0xFF); } break; |
3653 | case 480: |
3654 | #line 1290 "asmparse.y" |
3655 | { yyval.binstr = yypvt[-2].binstr; |
3656 | AppendStringWithLength(yyval.binstr,yypvt[-0].string); delete [] yypvt[-0].string;} break; |
3657 | case 481: |
3658 | #line 1292 "asmparse.y" |
3659 | { yyval.binstr = yypvt[-1].binstr; |
3660 | AppendStringWithLength(yyval.binstr,PASM->ReflectionNotation(yypvt[-0].token));} break; |
3661 | case 482: |
3662 | #line 1296 "asmparse.y" |
3663 | { yyval.binstr = new BinStr(); } break; |
3664 | case 483: |
3665 | #line 1297 "asmparse.y" |
3666 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->append(yypvt[-0].binstr); delete yypvt[-0].binstr; } break; |
3667 | case 484: |
3668 | #line 1301 "asmparse.y" |
3669 | { parser->m_ANSFirst.PUSH(PASM->m_firstArgName); |
3670 | parser->m_ANSLast.PUSH(PASM->m_lastArgName); |
3671 | PASM->m_firstArgName = NULL; |
3672 | PASM->m_lastArgName = NULL; } break; |
3673 | case 485: |
3674 | #line 1307 "asmparse.y" |
3675 | { yyval.instr = SetupInstr(yypvt[-0].opcode); } break; |
3676 | case 486: |
3677 | #line 1310 "asmparse.y" |
3678 | { yyval.instr = SetupInstr(yypvt[-0].opcode); } break; |
3679 | case 487: |
3680 | #line 1313 "asmparse.y" |
3681 | { yyval.instr = SetupInstr(yypvt[-0].opcode); } break; |
3682 | case 488: |
3683 | #line 1316 "asmparse.y" |
3684 | { yyval.instr = SetupInstr(yypvt[-0].opcode); } break; |
3685 | case 489: |
3686 | #line 1319 "asmparse.y" |
3687 | { yyval.instr = SetupInstr(yypvt[-0].opcode); } break; |
3688 | case 490: |
3689 | #line 1322 "asmparse.y" |
3690 | { yyval.instr = SetupInstr(yypvt[-0].opcode); } break; |
3691 | case 491: |
3692 | #line 1325 "asmparse.y" |
3693 | { yyval.instr = SetupInstr(yypvt[-0].opcode); |
3694 | if((!PASM->OnErrGo)&& |
3695 | ((yypvt[-0].opcode == CEE_NEWOBJ)|| |
3696 | (yypvt[-0].opcode == CEE_CALLVIRT))) |
3697 | iCallConv = IMAGE_CEE_CS_CALLCONV_HASTHIS; |
3698 | } break; |
3699 | case 492: |
3700 | #line 1333 "asmparse.y" |
3701 | { yyval.instr = SetupInstr(yypvt[-0].opcode); } break; |
3702 | case 493: |
3703 | #line 1336 "asmparse.y" |
3704 | { yyval.instr = SetupInstr(yypvt[-0].opcode); } break; |
3705 | case 494: |
3706 | #line 1339 "asmparse.y" |
3707 | { yyval.instr = SetupInstr(yypvt[-0].opcode); } break; |
3708 | case 495: |
3709 | #line 1342 "asmparse.y" |
3710 | { yyval.instr = SetupInstr(yypvt[-0].opcode); } break; |
3711 | case 496: |
3712 | #line 1345 "asmparse.y" |
3713 | { yyval.instr = SetupInstr(yypvt[-0].opcode); iOpcodeLen = PASM->OpcodeLen(yyval.instr); } break; |
3714 | case 497: |
3715 | #line 1348 "asmparse.y" |
3716 | { yyval.instr = SetupInstr(yypvt[-0].opcode); } break; |
3717 | case 498: |
3718 | #line 1351 "asmparse.y" |
3719 | { yyval.instr = yypvt[-1].instr; bParsingByteArray = TRUE; } break; |
3720 | case 499: |
3721 | #line 1355 "asmparse.y" |
3722 | { PASM->EmitOpcode(yypvt[-0].instr); } break; |
3723 | case 500: |
3724 | #line 1356 "asmparse.y" |
3725 | { PASM->EmitInstrVar(yypvt[-1].instr, yypvt[-0].int32); } break; |
3726 | case 501: |
3727 | #line 1357 "asmparse.y" |
3728 | { PASM->EmitInstrVarByName(yypvt[-1].instr, yypvt[-0].string); } break; |
3729 | case 502: |
3730 | #line 1358 "asmparse.y" |
3731 | { PASM->EmitInstrI(yypvt[-1].instr, yypvt[-0].int32); } break; |
3732 | case 503: |
3733 | #line 1359 "asmparse.y" |
3734 | { PASM->EmitInstrI8(yypvt[-1].instr, yypvt[-0].int64); } break; |
3735 | case 504: |
3736 | #line 1360 "asmparse.y" |
3737 | { PASM->EmitInstrR(yypvt[-1].instr, yypvt[-0].float64); delete (yypvt[-0].float64);} break; |
3738 | case 505: |
3739 | #line 1361 "asmparse.y" |
3740 | { double f = (double) (*yypvt[-0].int64); PASM->EmitInstrR(yypvt[-1].instr, &f); } break; |
3741 | case 506: |
3742 | #line 1362 "asmparse.y" |
3743 | { unsigned L = yypvt[-1].binstr->length(); |
3744 | FAIL_UNLESS(L >= sizeof(float), ("%d hexbytes, must be at least %d\n" , |
3745 | L,sizeof(float))); |
3746 | if(L < sizeof(float)) {YYERROR; } |
3747 | else { |
3748 | double f = (L >= sizeof(double)) ? *((double *)(yypvt[-1].binstr->ptr())) |
3749 | : (double)(*(float *)(yypvt[-1].binstr->ptr())); |
3750 | PASM->EmitInstrR(yypvt[-2].instr,&f); } |
3751 | delete yypvt[-1].binstr; } break; |
3752 | case 507: |
3753 | #line 1371 "asmparse.y" |
3754 | { PASM->EmitInstrBrOffset(yypvt[-1].instr, yypvt[-0].int32); } break; |
3755 | case 508: |
3756 | #line 1372 "asmparse.y" |
3757 | { PASM->EmitInstrBrTarget(yypvt[-1].instr, yypvt[-0].string); } break; |
3758 | case 509: |
3759 | #line 1374 "asmparse.y" |
3760 | { PASM->SetMemberRefFixup(yypvt[-0].token,PASM->OpcodeLen(yypvt[-1].instr)); |
3761 | PASM->EmitInstrI(yypvt[-1].instr,yypvt[-0].token); |
3762 | PASM->m_tkCurrentCVOwner = yypvt[-0].token; |
3763 | PASM->m_pCustomDescrList = NULL; |
3764 | iCallConv = 0; |
3765 | } break; |
3766 | case 510: |
3767 | #line 1381 "asmparse.y" |
3768 | { yypvt[-3].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); |
3769 | mdToken mr = PASM->MakeMemberRef(yypvt[-2].token, yypvt[-0].string, yypvt[-3].binstr); |
3770 | PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yypvt[-4].instr)); |
3771 | PASM->EmitInstrI(yypvt[-4].instr,mr); |
3772 | PASM->m_tkCurrentCVOwner = mr; |
3773 | PASM->m_pCustomDescrList = NULL; |
3774 | } break; |
3775 | case 511: |
3776 | #line 1389 "asmparse.y" |
3777 | { yypvt[-1].binstr->insertInt8(IMAGE_CEE_CS_CALLCONV_FIELD); |
3778 | mdToken mr = PASM->MakeMemberRef(mdTokenNil, yypvt[-0].string, yypvt[-1].binstr); |
3779 | PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yypvt[-2].instr)); |
3780 | PASM->EmitInstrI(yypvt[-2].instr,mr); |
3781 | PASM->m_tkCurrentCVOwner = mr; |
3782 | PASM->m_pCustomDescrList = NULL; |
3783 | } break; |
3784 | case 512: |
3785 | #line 1396 "asmparse.y" |
3786 | { mdToken mr = yypvt[-0].token; |
3787 | PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yypvt[-1].instr)); |
3788 | PASM->EmitInstrI(yypvt[-1].instr,mr); |
3789 | PASM->m_tkCurrentCVOwner = mr; |
3790 | PASM->m_pCustomDescrList = NULL; |
3791 | } break; |
3792 | case 513: |
3793 | #line 1402 "asmparse.y" |
3794 | { mdToken mr = yypvt[-0].tdd->m_tkTypeSpec; |
3795 | PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yypvt[-1].instr)); |
3796 | PASM->EmitInstrI(yypvt[-1].instr,mr); |
3797 | PASM->m_tkCurrentCVOwner = mr; |
3798 | PASM->m_pCustomDescrList = NULL; |
3799 | } break; |
3800 | case 514: |
3801 | #line 1408 "asmparse.y" |
3802 | { mdToken mr = yypvt[-0].tdd->m_tkTypeSpec; |
3803 | PASM->SetMemberRefFixup(mr, PASM->OpcodeLen(yypvt[-1].instr)); |
3804 | PASM->EmitInstrI(yypvt[-1].instr,mr); |
3805 | PASM->m_tkCurrentCVOwner = mr; |
3806 | PASM->m_pCustomDescrList = NULL; |
3807 | } break; |
3808 | case 515: |
3809 | #line 1414 "asmparse.y" |
3810 | { PASM->EmitInstrI(yypvt[-1].instr, yypvt[-0].token); |
3811 | PASM->m_tkCurrentCVOwner = yypvt[-0].token; |
3812 | PASM->m_pCustomDescrList = NULL; |
3813 | } break; |
3814 | case 516: |
3815 | #line 1418 "asmparse.y" |
3816 | { PASM->EmitInstrStringLiteral(yypvt[-1].instr, yypvt[-0].binstr,TRUE); } break; |
3817 | case 517: |
3818 | #line 1420 "asmparse.y" |
3819 | { PASM->EmitInstrStringLiteral(yypvt[-4].instr, yypvt[-1].binstr,FALSE); } break; |
3820 | case 518: |
3821 | #line 1422 "asmparse.y" |
3822 | { PASM->EmitInstrStringLiteral(yypvt[-3].instr, yypvt[-1].binstr,FALSE,TRUE); } break; |
3823 | case 519: |
3824 | #line 1424 "asmparse.y" |
3825 | { PASM->EmitInstrSig(yypvt[-5].instr, parser->MakeSig(yypvt[-4].int32, yypvt[-3].binstr, yypvt[-1].binstr)); |
3826 | PASM->ResetArgNameList(); |
3827 | } break; |
3828 | case 520: |
3829 | #line 1428 "asmparse.y" |
3830 | { PASM->EmitInstrI(yypvt[-1].instr,yypvt[-0].token); |
3831 | PASM->m_tkCurrentCVOwner = yypvt[-0].token; |
3832 | PASM->m_pCustomDescrList = NULL; |
3833 | iOpcodeLen = 0; |
3834 | } break; |
3835 | case 521: |
3836 | #line 1433 "asmparse.y" |
3837 | { PASM->EmitInstrSwitch(yypvt[-3].instr, yypvt[-1].labels); } break; |
3838 | case 522: |
3839 | #line 1436 "asmparse.y" |
3840 | { yyval.labels = 0; } break; |
3841 | case 523: |
3842 | #line 1437 "asmparse.y" |
3843 | { yyval.labels = new Labels(yypvt[-2].string, yypvt[-0].labels, TRUE); } break; |
3844 | case 524: |
3845 | #line 1438 "asmparse.y" |
3846 | { yyval.labels = new Labels((char *)(UINT_PTR)yypvt[-2].int32, yypvt[-0].labels, FALSE); } break; |
3847 | case 525: |
3848 | #line 1439 "asmparse.y" |
3849 | { yyval.labels = new Labels(yypvt[-0].string, NULL, TRUE); } break; |
3850 | case 526: |
3851 | #line 1440 "asmparse.y" |
3852 | { yyval.labels = new Labels((char *)(UINT_PTR)yypvt[-0].int32, NULL, FALSE); } break; |
3853 | case 527: |
3854 | #line 1444 "asmparse.y" |
3855 | { yyval.binstr = NULL; } break; |
3856 | case 528: |
3857 | #line 1445 "asmparse.y" |
3858 | { yyval.binstr = yypvt[-1].binstr; } break; |
3859 | case 529: |
3860 | #line 1448 "asmparse.y" |
3861 | { yyval.binstr = NULL; } break; |
3862 | case 530: |
3863 | #line 1449 "asmparse.y" |
3864 | { yyval.binstr = yypvt[-0].binstr; } break; |
3865 | case 531: |
3866 | #line 1452 "asmparse.y" |
3867 | { yyval.binstr = yypvt[-0].binstr; } break; |
3868 | case 532: |
3869 | #line 1453 "asmparse.y" |
3870 | { yyval.binstr = yypvt[-2].binstr; yyval.binstr->append(yypvt[-0].binstr); delete yypvt[-0].binstr; } break; |
3871 | case 533: |
3872 | #line 1457 "asmparse.y" |
3873 | { yyval.binstr = new BinStr(); } break; |
3874 | case 534: |
3875 | #line 1458 "asmparse.y" |
3876 | { yyval.binstr = yypvt[-0].binstr;} break; |
3877 | case 535: |
3878 | #line 1461 "asmparse.y" |
3879 | { yyval.binstr = yypvt[-0].binstr; } break; |
3880 | case 536: |
3881 | #line 1462 "asmparse.y" |
3882 | { yyval.binstr = yypvt[-2].binstr; yyval.binstr->append(yypvt[-0].binstr); delete yypvt[-0].binstr; } break; |
3883 | case 537: |
3884 | #line 1465 "asmparse.y" |
3885 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_SENTINEL); } break; |
3886 | case 538: |
3887 | #line 1466 "asmparse.y" |
3888 | { yyval.binstr = new BinStr(); yyval.binstr->append(yypvt[-1].binstr); PASM->addArgName(NULL, yypvt[-1].binstr, yypvt[-0].binstr, yypvt[-2].int32); } break; |
3889 | case 539: |
3890 | #line 1467 "asmparse.y" |
3891 | { yyval.binstr = new BinStr(); yyval.binstr->append(yypvt[-2].binstr); PASM->addArgName(yypvt[-0].string, yypvt[-2].binstr, yypvt[-1].binstr, yypvt[-3].int32);} break; |
3892 | case 540: |
3893 | #line 1471 "asmparse.y" |
3894 | { yyval.token = PASM->ResolveClassRef(PASM->GetAsmRef(yypvt[-2].string), yypvt[-0].string, NULL); delete[] yypvt[-2].string;} break; |
3895 | case 541: |
3896 | #line 1472 "asmparse.y" |
3897 | { yyval.token = PASM->ResolveClassRef(yypvt[-2].token, yypvt[-0].string, NULL); } break; |
3898 | case 542: |
3899 | #line 1473 "asmparse.y" |
3900 | { yyval.token = PASM->ResolveClassRef(mdTokenNil, yypvt[-0].string, NULL); } break; |
3901 | case 543: |
3902 | #line 1474 "asmparse.y" |
3903 | { yyval.token = PASM->ResolveClassRef(PASM->GetModRef(yypvt[-2].string),yypvt[-0].string, NULL); delete[] yypvt[-2].string;} break; |
3904 | case 544: |
3905 | #line 1475 "asmparse.y" |
3906 | { yyval.token = PASM->ResolveClassRef(1,yypvt[-0].string,NULL); } break; |
3907 | case 545: |
3908 | #line 1476 "asmparse.y" |
3909 | { yyval.token = yypvt[-0].token; } break; |
3910 | case 546: |
3911 | #line 1477 "asmparse.y" |
3912 | { yyval.token = yypvt[-0].tdd->m_tkTypeSpec; } break; |
3913 | case 547: |
3914 | #line 1478 "asmparse.y" |
3915 | { if(PASM->m_pCurClass != NULL) yyval.token = PASM->m_pCurClass->m_cl; |
3916 | else { yyval.token = 0; PASM->report->error(".this outside class scope\n" ); } |
3917 | } break; |
3918 | case 548: |
3919 | #line 1481 "asmparse.y" |
3920 | { if(PASM->m_pCurClass != NULL) { |
3921 | yyval.token = PASM->m_pCurClass->m_crExtends; |
3922 | if(RidFromToken(yyval.token) == 0) |
3923 | PASM->report->error(".base undefined\n" ); |
3924 | } else { yyval.token = 0; PASM->report->error(".base outside class scope\n" ); } |
3925 | } break; |
3926 | case 549: |
3927 | #line 1487 "asmparse.y" |
3928 | { if(PASM->m_pCurClass != NULL) { |
3929 | if(PASM->m_pCurClass->m_pEncloser != NULL) yyval.token = PASM->m_pCurClass->m_pEncloser->m_cl; |
3930 | else { yyval.token = 0; PASM->report->error(".nester undefined\n" ); } |
3931 | } else { yyval.token = 0; PASM->report->error(".nester outside class scope\n" ); } |
3932 | } break; |
3933 | case 550: |
3934 | #line 1494 "asmparse.y" |
3935 | { yyval.string = yypvt[-0].string; } break; |
3936 | case 551: |
3937 | #line 1495 "asmparse.y" |
3938 | { yyval.string = newStringWDel(yypvt[-2].string, NESTING_SEP, yypvt[-0].string); } break; |
3939 | case 552: |
3940 | #line 1498 "asmparse.y" |
3941 | { yyval.token = yypvt[-0].token;} break; |
3942 | case 553: |
3943 | #line 1499 "asmparse.y" |
3944 | { yyval.token = PASM->GetAsmRef(yypvt[-1].string); delete[] yypvt[-1].string;} break; |
3945 | case 554: |
3946 | #line 1500 "asmparse.y" |
3947 | { yyval.token = PASM->GetModRef(yypvt[-1].string); delete[] yypvt[-1].string;} break; |
3948 | case 555: |
3949 | #line 1501 "asmparse.y" |
3950 | { yyval.token = PASM->ResolveTypeSpec(yypvt[-0].binstr); } break; |
3951 | case 556: |
3952 | #line 1505 "asmparse.y" |
3953 | { yyval.binstr = new BinStr(); } break; |
3954 | case 557: |
3955 | #line 1507 "asmparse.y" |
3956 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); |
3957 | corEmitInt(yyval.binstr,yypvt[-7].binstr->length()); yyval.binstr->append(yypvt[-7].binstr); |
3958 | corEmitInt(yyval.binstr,yypvt[-5].binstr->length()); yyval.binstr->append(yypvt[-5].binstr); |
3959 | corEmitInt(yyval.binstr,yypvt[-3].binstr->length()); yyval.binstr->append(yypvt[-3].binstr); |
3960 | corEmitInt(yyval.binstr,yypvt[-1].binstr->length()); yyval.binstr->append(yypvt[-1].binstr); |
3961 | PASM->report->warn("Deprecated 4-string form of custom marshaler, first two strings ignored\n" );} break; |
3962 | case 558: |
3963 | #line 1514 "asmparse.y" |
3964 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CUSTOMMARSHALER); |
3965 | corEmitInt(yyval.binstr,0); |
3966 | corEmitInt(yyval.binstr,0); |
3967 | corEmitInt(yyval.binstr,yypvt[-3].binstr->length()); yyval.binstr->append(yypvt[-3].binstr); |
3968 | corEmitInt(yyval.binstr,yypvt[-1].binstr->length()); yyval.binstr->append(yypvt[-1].binstr); } break; |
3969 | case 559: |
3970 | #line 1519 "asmparse.y" |
3971 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDSYSSTRING); |
3972 | corEmitInt(yyval.binstr,yypvt[-1].int32); } break; |
3973 | case 560: |
3974 | #line 1522 "asmparse.y" |
3975 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FIXEDARRAY); |
3976 | corEmitInt(yyval.binstr,yypvt[-2].int32); yyval.binstr->append(yypvt[-0].binstr); } break; |
3977 | case 561: |
3978 | #line 1524 "asmparse.y" |
3979 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANT); |
3980 | PASM->report->warn("Deprecated native type 'variant'\n" ); } break; |
3981 | case 562: |
3982 | #line 1526 "asmparse.y" |
3983 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_CURRENCY); } break; |
3984 | case 563: |
3985 | #line 1527 "asmparse.y" |
3986 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SYSCHAR); |
3987 | PASM->report->warn("Deprecated native type 'syschar'\n" ); } break; |
3988 | case 564: |
3989 | #line 1529 "asmparse.y" |
3990 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VOID); |
3991 | PASM->report->warn("Deprecated native type 'void'\n" ); } break; |
3992 | case 565: |
3993 | #line 1531 "asmparse.y" |
3994 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BOOLEAN); } break; |
3995 | case 566: |
3996 | #line 1532 "asmparse.y" |
3997 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I1); } break; |
3998 | case 567: |
3999 | #line 1533 "asmparse.y" |
4000 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I2); } break; |
4001 | case 568: |
4002 | #line 1534 "asmparse.y" |
4003 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I4); } break; |
4004 | case 569: |
4005 | #line 1535 "asmparse.y" |
4006 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_I8); } break; |
4007 | case 570: |
4008 | #line 1536 "asmparse.y" |
4009 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R4); } break; |
4010 | case 571: |
4011 | #line 1537 "asmparse.y" |
4012 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_R8); } break; |
4013 | case 572: |
4014 | #line 1538 "asmparse.y" |
4015 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ERROR); } break; |
4016 | case 573: |
4017 | #line 1539 "asmparse.y" |
4018 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } break; |
4019 | case 574: |
4020 | #line 1540 "asmparse.y" |
4021 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } break; |
4022 | case 575: |
4023 | #line 1541 "asmparse.y" |
4024 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } break; |
4025 | case 576: |
4026 | #line 1542 "asmparse.y" |
4027 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } break; |
4028 | case 577: |
4029 | #line 1543 "asmparse.y" |
4030 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U1); } break; |
4031 | case 578: |
4032 | #line 1544 "asmparse.y" |
4033 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U2); } break; |
4034 | case 579: |
4035 | #line 1545 "asmparse.y" |
4036 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U4); } break; |
4037 | case 580: |
4038 | #line 1546 "asmparse.y" |
4039 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_U8); } break; |
4040 | case 581: |
4041 | #line 1547 "asmparse.y" |
4042 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt8(NATIVE_TYPE_PTR); |
4043 | PASM->report->warn("Deprecated native type '*'\n" ); } break; |
4044 | case 582: |
4045 | #line 1549 "asmparse.y" |
4046 | { yyval.binstr = yypvt[-2].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); |
4047 | yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); } break; |
4048 | case 583: |
4049 | #line 1551 "asmparse.y" |
4050 | { yyval.binstr = yypvt[-3].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); |
4051 | yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); |
4052 | corEmitInt(yyval.binstr,0); |
4053 | corEmitInt(yyval.binstr,yypvt[-1].int32); |
4054 | corEmitInt(yyval.binstr,0); } break; |
4055 | case 584: |
4056 | #line 1556 "asmparse.y" |
4057 | { yyval.binstr = yypvt[-5].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); |
4058 | yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); |
4059 | corEmitInt(yyval.binstr,yypvt[-1].int32); |
4060 | corEmitInt(yyval.binstr,yypvt[-3].int32); |
4061 | corEmitInt(yyval.binstr,ntaSizeParamIndexSpecified); } break; |
4062 | case 585: |
4063 | #line 1561 "asmparse.y" |
4064 | { yyval.binstr = yypvt[-4].binstr; if(yyval.binstr->length()==0) yyval.binstr->appendInt8(NATIVE_TYPE_MAX); |
4065 | yyval.binstr->insertInt8(NATIVE_TYPE_ARRAY); |
4066 | corEmitInt(yyval.binstr,yypvt[-1].int32); } break; |
4067 | case 586: |
4068 | #line 1564 "asmparse.y" |
4069 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DECIMAL); |
4070 | PASM->report->warn("Deprecated native type 'decimal'\n" ); } break; |
4071 | case 587: |
4072 | #line 1566 "asmparse.y" |
4073 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_DATE); |
4074 | PASM->report->warn("Deprecated native type 'date'\n" ); } break; |
4075 | case 588: |
4076 | #line 1568 "asmparse.y" |
4077 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BSTR); } break; |
4078 | case 589: |
4079 | #line 1569 "asmparse.y" |
4080 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTR); } break; |
4081 | case 590: |
4082 | #line 1570 "asmparse.y" |
4083 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPWSTR); } break; |
4084 | case 591: |
4085 | #line 1571 "asmparse.y" |
4086 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPTSTR); } break; |
4087 | case 592: |
4088 | #line 1572 "asmparse.y" |
4089 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_OBJECTREF); |
4090 | PASM->report->warn("Deprecated native type 'objectref'\n" ); } break; |
4091 | case 593: |
4092 | #line 1574 "asmparse.y" |
4093 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IUNKNOWN); |
4094 | if(yypvt[-0].int32 != -1) corEmitInt(yyval.binstr,yypvt[-0].int32); } break; |
4095 | case 594: |
4096 | #line 1576 "asmparse.y" |
4097 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_IDISPATCH); |
4098 | if(yypvt[-0].int32 != -1) corEmitInt(yyval.binstr,yypvt[-0].int32); } break; |
4099 | case 595: |
4100 | #line 1578 "asmparse.y" |
4101 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_STRUCT); } break; |
4102 | case 596: |
4103 | #line 1579 "asmparse.y" |
4104 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INTF); |
4105 | if(yypvt[-0].int32 != -1) corEmitInt(yyval.binstr,yypvt[-0].int32); } break; |
4106 | case 597: |
4107 | #line 1581 "asmparse.y" |
4108 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); |
4109 | corEmitInt(yyval.binstr,yypvt[-0].int32); |
4110 | corEmitInt(yyval.binstr,0);} break; |
4111 | case 598: |
4112 | #line 1584 "asmparse.y" |
4113 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_SAFEARRAY); |
4114 | corEmitInt(yyval.binstr,yypvt[-2].int32); |
4115 | corEmitInt(yyval.binstr,yypvt[-0].binstr->length()); yyval.binstr->append(yypvt[-0].binstr); } break; |
4116 | case 599: |
4117 | #line 1588 "asmparse.y" |
4118 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_INT); } break; |
4119 | case 600: |
4120 | #line 1589 "asmparse.y" |
4121 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } break; |
4122 | case 601: |
4123 | #line 1590 "asmparse.y" |
4124 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_UINT); } break; |
4125 | case 602: |
4126 | #line 1591 "asmparse.y" |
4127 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_NESTEDSTRUCT); |
4128 | PASM->report->warn("Deprecated native type 'nested struct'\n" ); } break; |
4129 | case 603: |
4130 | #line 1593 "asmparse.y" |
4131 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_BYVALSTR); } break; |
4132 | case 604: |
4133 | #line 1594 "asmparse.y" |
4134 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ANSIBSTR); } break; |
4135 | case 605: |
4136 | #line 1595 "asmparse.y" |
4137 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_TBSTR); } break; |
4138 | case 606: |
4139 | #line 1596 "asmparse.y" |
4140 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_VARIANTBOOL); } break; |
4141 | case 607: |
4142 | #line 1597 "asmparse.y" |
4143 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_FUNC); } break; |
4144 | case 608: |
4145 | #line 1598 "asmparse.y" |
4146 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_ASANY); } break; |
4147 | case 609: |
4148 | #line 1599 "asmparse.y" |
4149 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(NATIVE_TYPE_LPSTRUCT); } break; |
4150 | case 610: |
4151 | #line 1600 "asmparse.y" |
4152 | { yyval.binstr = new BinStr(); yyval.binstr->append(yypvt[-0].tdd->m_pbsTypeSpec); } break; |
4153 | case 611: |
4154 | #line 1603 "asmparse.y" |
4155 | { yyval.int32 = -1; } break; |
4156 | case 612: |
4157 | #line 1604 "asmparse.y" |
4158 | { yyval.int32 = yypvt[-1].int32; } break; |
4159 | case 613: |
4160 | #line 1607 "asmparse.y" |
4161 | { yyval.int32 = VT_EMPTY; } break; |
4162 | case 614: |
4163 | #line 1608 "asmparse.y" |
4164 | { yyval.int32 = VT_NULL; } break; |
4165 | case 615: |
4166 | #line 1609 "asmparse.y" |
4167 | { yyval.int32 = VT_VARIANT; } break; |
4168 | case 616: |
4169 | #line 1610 "asmparse.y" |
4170 | { yyval.int32 = VT_CY; } break; |
4171 | case 617: |
4172 | #line 1611 "asmparse.y" |
4173 | { yyval.int32 = VT_VOID; } break; |
4174 | case 618: |
4175 | #line 1612 "asmparse.y" |
4176 | { yyval.int32 = VT_BOOL; } break; |
4177 | case 619: |
4178 | #line 1613 "asmparse.y" |
4179 | { yyval.int32 = VT_I1; } break; |
4180 | case 620: |
4181 | #line 1614 "asmparse.y" |
4182 | { yyval.int32 = VT_I2; } break; |
4183 | case 621: |
4184 | #line 1615 "asmparse.y" |
4185 | { yyval.int32 = VT_I4; } break; |
4186 | case 622: |
4187 | #line 1616 "asmparse.y" |
4188 | { yyval.int32 = VT_I8; } break; |
4189 | case 623: |
4190 | #line 1617 "asmparse.y" |
4191 | { yyval.int32 = VT_R4; } break; |
4192 | case 624: |
4193 | #line 1618 "asmparse.y" |
4194 | { yyval.int32 = VT_R8; } break; |
4195 | case 625: |
4196 | #line 1619 "asmparse.y" |
4197 | { yyval.int32 = VT_UI1; } break; |
4198 | case 626: |
4199 | #line 1620 "asmparse.y" |
4200 | { yyval.int32 = VT_UI2; } break; |
4201 | case 627: |
4202 | #line 1621 "asmparse.y" |
4203 | { yyval.int32 = VT_UI4; } break; |
4204 | case 628: |
4205 | #line 1622 "asmparse.y" |
4206 | { yyval.int32 = VT_UI8; } break; |
4207 | case 629: |
4208 | #line 1623 "asmparse.y" |
4209 | { yyval.int32 = VT_UI1; } break; |
4210 | case 630: |
4211 | #line 1624 "asmparse.y" |
4212 | { yyval.int32 = VT_UI2; } break; |
4213 | case 631: |
4214 | #line 1625 "asmparse.y" |
4215 | { yyval.int32 = VT_UI4; } break; |
4216 | case 632: |
4217 | #line 1626 "asmparse.y" |
4218 | { yyval.int32 = VT_UI8; } break; |
4219 | case 633: |
4220 | #line 1627 "asmparse.y" |
4221 | { yyval.int32 = VT_PTR; } break; |
4222 | case 634: |
4223 | #line 1628 "asmparse.y" |
4224 | { yyval.int32 = yypvt[-2].int32 | VT_ARRAY; } break; |
4225 | case 635: |
4226 | #line 1629 "asmparse.y" |
4227 | { yyval.int32 = yypvt[-1].int32 | VT_VECTOR; } break; |
4228 | case 636: |
4229 | #line 1630 "asmparse.y" |
4230 | { yyval.int32 = yypvt[-1].int32 | VT_BYREF; } break; |
4231 | case 637: |
4232 | #line 1631 "asmparse.y" |
4233 | { yyval.int32 = VT_DECIMAL; } break; |
4234 | case 638: |
4235 | #line 1632 "asmparse.y" |
4236 | { yyval.int32 = VT_DATE; } break; |
4237 | case 639: |
4238 | #line 1633 "asmparse.y" |
4239 | { yyval.int32 = VT_BSTR; } break; |
4240 | case 640: |
4241 | #line 1634 "asmparse.y" |
4242 | { yyval.int32 = VT_LPSTR; } break; |
4243 | case 641: |
4244 | #line 1635 "asmparse.y" |
4245 | { yyval.int32 = VT_LPWSTR; } break; |
4246 | case 642: |
4247 | #line 1636 "asmparse.y" |
4248 | { yyval.int32 = VT_UNKNOWN; } break; |
4249 | case 643: |
4250 | #line 1637 "asmparse.y" |
4251 | { yyval.int32 = VT_DISPATCH; } break; |
4252 | case 644: |
4253 | #line 1638 "asmparse.y" |
4254 | { yyval.int32 = VT_SAFEARRAY; } break; |
4255 | case 645: |
4256 | #line 1639 "asmparse.y" |
4257 | { yyval.int32 = VT_INT; } break; |
4258 | case 646: |
4259 | #line 1640 "asmparse.y" |
4260 | { yyval.int32 = VT_UINT; } break; |
4261 | case 647: |
4262 | #line 1641 "asmparse.y" |
4263 | { yyval.int32 = VT_UINT; } break; |
4264 | case 648: |
4265 | #line 1642 "asmparse.y" |
4266 | { yyval.int32 = VT_ERROR; } break; |
4267 | case 649: |
4268 | #line 1643 "asmparse.y" |
4269 | { yyval.int32 = VT_HRESULT; } break; |
4270 | case 650: |
4271 | #line 1644 "asmparse.y" |
4272 | { yyval.int32 = VT_CARRAY; } break; |
4273 | case 651: |
4274 | #line 1645 "asmparse.y" |
4275 | { yyval.int32 = VT_USERDEFINED; } break; |
4276 | case 652: |
4277 | #line 1646 "asmparse.y" |
4278 | { yyval.int32 = VT_RECORD; } break; |
4279 | case 653: |
4280 | #line 1647 "asmparse.y" |
4281 | { yyval.int32 = VT_FILETIME; } break; |
4282 | case 654: |
4283 | #line 1648 "asmparse.y" |
4284 | { yyval.int32 = VT_BLOB; } break; |
4285 | case 655: |
4286 | #line 1649 "asmparse.y" |
4287 | { yyval.int32 = VT_STREAM; } break; |
4288 | case 656: |
4289 | #line 1650 "asmparse.y" |
4290 | { yyval.int32 = VT_STORAGE; } break; |
4291 | case 657: |
4292 | #line 1651 "asmparse.y" |
4293 | { yyval.int32 = VT_STREAMED_OBJECT; } break; |
4294 | case 658: |
4295 | #line 1652 "asmparse.y" |
4296 | { yyval.int32 = VT_STORED_OBJECT; } break; |
4297 | case 659: |
4298 | #line 1653 "asmparse.y" |
4299 | { yyval.int32 = VT_BLOB_OBJECT; } break; |
4300 | case 660: |
4301 | #line 1654 "asmparse.y" |
4302 | { yyval.int32 = VT_CF; } break; |
4303 | case 661: |
4304 | #line 1655 "asmparse.y" |
4305 | { yyval.int32 = VT_CLSID; } break; |
4306 | case 662: |
4307 | #line 1659 "asmparse.y" |
4308 | { if(yypvt[-0].token == PASM->m_tkSysString) |
4309 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } |
4310 | else if(yypvt[-0].token == PASM->m_tkSysObject) |
4311 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } |
4312 | else |
4313 | yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CLASS, yypvt[-0].token); } break; |
4314 | case 663: |
4315 | #line 1665 "asmparse.y" |
4316 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_OBJECT); } break; |
4317 | case 664: |
4318 | #line 1666 "asmparse.y" |
4319 | { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yypvt[-0].token); } break; |
4320 | case 665: |
4321 | #line 1667 "asmparse.y" |
4322 | { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_VALUETYPE, yypvt[-0].token); } break; |
4323 | case 666: |
4324 | #line 1668 "asmparse.y" |
4325 | { yyval.binstr = yypvt[-2].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SZARRAY); } break; |
4326 | case 667: |
4327 | #line 1669 "asmparse.y" |
4328 | { yyval.binstr = parser->MakeTypeArray(ELEMENT_TYPE_ARRAY, yypvt[-3].binstr, yypvt[-1].binstr); } break; |
4329 | case 668: |
4330 | #line 1670 "asmparse.y" |
4331 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_BYREF); } break; |
4332 | case 669: |
4333 | #line 1671 "asmparse.y" |
4334 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PTR); } break; |
4335 | case 670: |
4336 | #line 1672 "asmparse.y" |
4337 | { yyval.binstr = yypvt[-1].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_PINNED); } break; |
4338 | case 671: |
4339 | #line 1673 "asmparse.y" |
4340 | { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_REQD, yypvt[-1].token); |
4341 | yyval.binstr->append(yypvt[-4].binstr); } break; |
4342 | case 672: |
4343 | #line 1675 "asmparse.y" |
4344 | { yyval.binstr = parser->MakeTypeClass(ELEMENT_TYPE_CMOD_OPT, yypvt[-1].token); |
4345 | yyval.binstr->append(yypvt[-4].binstr); } break; |
4346 | case 673: |
4347 | #line 1678 "asmparse.y" |
4348 | { yyval.binstr = parser->MakeSig(yypvt[-5].int32, yypvt[-4].binstr, yypvt[-1].binstr); |
4349 | yyval.binstr->insertInt8(ELEMENT_TYPE_FNPTR); |
4350 | PASM->delArgNameList(PASM->m_firstArgName); |
4351 | PASM->m_firstArgName = parser->m_ANSFirst.POP(); |
4352 | PASM->m_lastArgName = parser->m_ANSLast.POP(); |
4353 | } break; |
4354 | case 674: |
4355 | #line 1684 "asmparse.y" |
4356 | { if(yypvt[-1].binstr == NULL) yyval.binstr = yypvt[-3].binstr; |
4357 | else { |
4358 | yyval.binstr = new BinStr(); |
4359 | yyval.binstr->appendInt8(ELEMENT_TYPE_GENERICINST); |
4360 | yyval.binstr->append(yypvt[-3].binstr); |
4361 | corEmitInt(yyval.binstr, corCountArgs(yypvt[-1].binstr)); |
4362 | yyval.binstr->append(yypvt[-1].binstr); delete yypvt[-3].binstr; delete yypvt[-1].binstr; }} break; |
4363 | case 675: |
4364 | #line 1691 "asmparse.y" |
4365 | { //if(PASM->m_pCurMethod) { |
4366 | // if(($3 < 0)||((DWORD)$3 >= PASM->m_pCurMethod->m_NumTyPars)) |
4367 | // PASM->report->error("Invalid method type parameter '%d'\n",$3); |
4368 | yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_MVAR); corEmitInt(yyval.binstr, yypvt[-0].int32); |
4369 | //} else PASM->report->error("Method type parameter '%d' outside method scope\n",$3); |
4370 | } break; |
4371 | case 676: |
4372 | #line 1697 "asmparse.y" |
4373 | { //if(PASM->m_pCurClass) { |
4374 | // if(($2 < 0)||((DWORD)$2 >= PASM->m_pCurClass->m_NumTyPars)) |
4375 | // PASM->report->error("Invalid type parameter '%d'\n",$2); |
4376 | yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VAR); corEmitInt(yyval.binstr, yypvt[-0].int32); |
4377 | //} else PASM->report->error("Type parameter '%d' outside class scope\n",$2); |
4378 | } break; |
4379 | case 677: |
4380 | #line 1703 "asmparse.y" |
4381 | { int eltype = ELEMENT_TYPE_MVAR; |
4382 | int n=-1; |
4383 | if(PASM->m_pCurMethod) n = PASM->m_pCurMethod->FindTyPar(yypvt[-0].string); |
4384 | else { |
4385 | if(PASM->m_TyParList) n = PASM->m_TyParList->IndexOf(yypvt[-0].string); |
4386 | if(n == -1) |
4387 | { n = TyParFixupList.COUNT(); |
4388 | TyParFixupList.PUSH(yypvt[-0].string); |
4389 | eltype = ELEMENT_TYPE_MVARFIXUP; |
4390 | } |
4391 | } |
4392 | if(n == -1) { PASM->report->error("Invalid method type parameter '%s'\n" ,yypvt[-0].string); |
4393 | n = 0x1FFFFFFF; } |
4394 | yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); |
4395 | } break; |
4396 | case 678: |
4397 | #line 1718 "asmparse.y" |
4398 | { int eltype = ELEMENT_TYPE_VAR; |
4399 | int n=-1; |
4400 | if(PASM->m_pCurClass && !newclass) n = PASM->m_pCurClass->FindTyPar(yypvt[-0].string); |
4401 | else { |
4402 | if(PASM->m_TyParList) n = PASM->m_TyParList->IndexOf(yypvt[-0].string); |
4403 | if(n == -1) |
4404 | { n = TyParFixupList.COUNT(); |
4405 | TyParFixupList.PUSH(yypvt[-0].string); |
4406 | eltype = ELEMENT_TYPE_VARFIXUP; |
4407 | } |
4408 | } |
4409 | if(n == -1) { PASM->report->error("Invalid type parameter '%s'\n" ,yypvt[-0].string); |
4410 | n = 0x1FFFFFFF; } |
4411 | yyval.binstr = new BinStr(); yyval.binstr->appendInt8(eltype); corEmitInt(yyval.binstr,n); |
4412 | } break; |
4413 | case 679: |
4414 | #line 1733 "asmparse.y" |
4415 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_TYPEDBYREF); } break; |
4416 | case 680: |
4417 | #line 1734 "asmparse.y" |
4418 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_VOID); } break; |
4419 | case 681: |
4420 | #line 1735 "asmparse.y" |
4421 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I); } break; |
4422 | case 682: |
4423 | #line 1736 "asmparse.y" |
4424 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } break; |
4425 | case 683: |
4426 | #line 1737 "asmparse.y" |
4427 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U); } break; |
4428 | case 684: |
4429 | #line 1738 "asmparse.y" |
4430 | { yyval.binstr = yypvt[-0].binstr; } break; |
4431 | case 685: |
4432 | #line 1739 "asmparse.y" |
4433 | { yyval.binstr = yypvt[-0].binstr; yyval.binstr->insertInt8(ELEMENT_TYPE_SENTINEL); } break; |
4434 | case 686: |
4435 | #line 1742 "asmparse.y" |
4436 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_CHAR); } break; |
4437 | case 687: |
4438 | #line 1743 "asmparse.y" |
4439 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_STRING); } break; |
4440 | case 688: |
4441 | #line 1744 "asmparse.y" |
4442 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_BOOLEAN); } break; |
4443 | case 689: |
4444 | #line 1745 "asmparse.y" |
4445 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I1); } break; |
4446 | case 690: |
4447 | #line 1746 "asmparse.y" |
4448 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I2); } break; |
4449 | case 691: |
4450 | #line 1747 "asmparse.y" |
4451 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I4); } break; |
4452 | case 692: |
4453 | #line 1748 "asmparse.y" |
4454 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_I8); } break; |
4455 | case 693: |
4456 | #line 1749 "asmparse.y" |
4457 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R4); } break; |
4458 | case 694: |
4459 | #line 1750 "asmparse.y" |
4460 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_R8); } break; |
4461 | case 695: |
4462 | #line 1751 "asmparse.y" |
4463 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } break; |
4464 | case 696: |
4465 | #line 1752 "asmparse.y" |
4466 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } break; |
4467 | case 697: |
4468 | #line 1753 "asmparse.y" |
4469 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } break; |
4470 | case 698: |
4471 | #line 1754 "asmparse.y" |
4472 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } break; |
4473 | case 699: |
4474 | #line 1755 "asmparse.y" |
4475 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U1); } break; |
4476 | case 700: |
4477 | #line 1756 "asmparse.y" |
4478 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U2); } break; |
4479 | case 701: |
4480 | #line 1757 "asmparse.y" |
4481 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U4); } break; |
4482 | case 702: |
4483 | #line 1758 "asmparse.y" |
4484 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt8(ELEMENT_TYPE_U8); } break; |
4485 | case 703: |
4486 | #line 1759 "asmparse.y" |
4487 | { yyval.binstr = new BinStr(); yyval.binstr->append(yypvt[-0].tdd->m_pbsTypeSpec); } break; |
4488 | case 704: |
4489 | #line 1762 "asmparse.y" |
4490 | { yyval.binstr = yypvt[-0].binstr; } break; |
4491 | case 705: |
4492 | #line 1763 "asmparse.y" |
4493 | { yyval.binstr = yypvt[-2].binstr; yypvt[-2].binstr->append(yypvt[-0].binstr); delete yypvt[-0].binstr; } break; |
4494 | case 706: |
4495 | #line 1766 "asmparse.y" |
4496 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } break; |
4497 | case 707: |
4498 | #line 1767 "asmparse.y" |
4499 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0x7FFFFFFF); yyval.binstr->appendInt32(0x7FFFFFFF); } break; |
4500 | case 708: |
4501 | #line 1768 "asmparse.y" |
4502 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(0); yyval.binstr->appendInt32(yypvt[-0].int32); } break; |
4503 | case 709: |
4504 | #line 1769 "asmparse.y" |
4505 | { FAIL_UNLESS(yypvt[-2].int32 <= yypvt[-0].int32, ("lower bound %d must be <= upper bound %d\n" , yypvt[-2].int32, yypvt[-0].int32)); |
4506 | if (yypvt[-2].int32 > yypvt[-0].int32) { YYERROR; }; |
4507 | yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yypvt[-2].int32); yyval.binstr->appendInt32(yypvt[-0].int32-yypvt[-2].int32+1); } break; |
4508 | case 710: |
4509 | #line 1772 "asmparse.y" |
4510 | { yyval.binstr = new BinStr(); yyval.binstr->appendInt32(yypvt[-1].int32); yyval.binstr->appendInt32(0x7FFFFFFF); } break; |
4511 | case 711: |
4512 | #line 1777 "asmparse.y" |
4513 | { PASM->AddPermissionDecl(yypvt[-4].secAct, yypvt[-3].token, yypvt[-1].pair); } break; |
4514 | case 712: |
4515 | #line 1779 "asmparse.y" |
4516 | { PASM->AddPermissionDecl(yypvt[-5].secAct, yypvt[-4].token, yypvt[-1].binstr); } break; |
4517 | case 713: |
4518 | #line 1780 "asmparse.y" |
4519 | { PASM->AddPermissionDecl(yypvt[-1].secAct, yypvt[-0].token, (NVPair *)NULL); } break; |
4520 | case 714: |
4521 | #line 1781 "asmparse.y" |
4522 | { PASM->AddPermissionSetDecl(yypvt[-2].secAct, yypvt[-1].binstr); } break; |
4523 | case 715: |
4524 | #line 1783 "asmparse.y" |
4525 | { PASM->AddPermissionSetDecl(yypvt[-1].secAct,BinStrToUnicode(yypvt[-0].binstr,true));} break; |
4526 | case 716: |
4527 | #line 1785 "asmparse.y" |
4528 | { BinStr* ret = new BinStr(); |
4529 | ret->insertInt8('.'); |
4530 | corEmitInt(ret, nSecAttrBlobs); |
4531 | ret->append(yypvt[-1].binstr); |
4532 | PASM->AddPermissionSetDecl(yypvt[-4].secAct,ret); |
4533 | nSecAttrBlobs = 0; } break; |
4534 | case 717: |
4535 | #line 1793 "asmparse.y" |
4536 | { yyval.binstr = new BinStr(); nSecAttrBlobs = 0;} break; |
4537 | case 718: |
4538 | #line 1794 "asmparse.y" |
4539 | { yyval.binstr = yypvt[-0].binstr; nSecAttrBlobs = 1; } break; |
4540 | case 719: |
4541 | #line 1795 "asmparse.y" |
4542 | { yyval.binstr = yypvt[-2].binstr; yyval.binstr->append(yypvt[-0].binstr); nSecAttrBlobs++; } break; |
4543 | case 720: |
4544 | #line 1799 "asmparse.y" |
4545 | { yyval.binstr = PASM->EncodeSecAttr(PASM->ReflectionNotation(yypvt[-4].token),yypvt[-1].binstr,nCustomBlobNVPairs); |
4546 | nCustomBlobNVPairs = 0; } break; |
4547 | case 721: |
4548 | #line 1802 "asmparse.y" |
4549 | { yyval.binstr = PASM->EncodeSecAttr(yypvt[-4].string,yypvt[-1].binstr,nCustomBlobNVPairs); |
4550 | nCustomBlobNVPairs = 0; } break; |
4551 | case 722: |
4552 | #line 1806 "asmparse.y" |
4553 | { yyval.secAct = yypvt[-2].secAct; bParsingByteArray = TRUE; } break; |
4554 | case 723: |
4555 | #line 1808 "asmparse.y" |
4556 | { yyval.secAct = yypvt[-2].secAct; bParsingByteArray = TRUE; } break; |
4557 | case 724: |
4558 | #line 1811 "asmparse.y" |
4559 | { yyval.pair = yypvt[-0].pair; } break; |
4560 | case 725: |
4561 | #line 1812 "asmparse.y" |
4562 | { yyval.pair = yypvt[-2].pair->Concat(yypvt[-0].pair); } break; |
4563 | case 726: |
4564 | #line 1815 "asmparse.y" |
4565 | { yypvt[-2].binstr->appendInt8(0); yyval.pair = new NVPair(yypvt[-2].binstr, yypvt[-0].binstr); } break; |
4566 | case 727: |
4567 | #line 1818 "asmparse.y" |
4568 | { yyval.int32 = 1; } break; |
4569 | case 728: |
4570 | #line 1819 "asmparse.y" |
4571 | { yyval.int32 = 0; } break; |
4572 | case 729: |
4573 | #line 1822 "asmparse.y" |
4574 | { yyval.binstr = new BinStr(); |
4575 | yyval.binstr->appendInt8(SERIALIZATION_TYPE_BOOLEAN); |
4576 | yyval.binstr->appendInt8(yypvt[-0].int32); } break; |
4577 | case 730: |
4578 | #line 1825 "asmparse.y" |
4579 | { yyval.binstr = new BinStr(); |
4580 | yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); |
4581 | yyval.binstr->appendInt32(yypvt[-0].int32); } break; |
4582 | case 731: |
4583 | #line 1828 "asmparse.y" |
4584 | { yyval.binstr = new BinStr(); |
4585 | yyval.binstr->appendInt8(SERIALIZATION_TYPE_I4); |
4586 | yyval.binstr->appendInt32(yypvt[-1].int32); } break; |
4587 | case 732: |
4588 | #line 1831 "asmparse.y" |
4589 | { yyval.binstr = new BinStr(); |
4590 | yyval.binstr->appendInt8(SERIALIZATION_TYPE_STRING); |
4591 | yyval.binstr->append(yypvt[-0].binstr); delete yypvt[-0].binstr; |
4592 | yyval.binstr->appendInt8(0); } break; |
4593 | case 733: |
4594 | #line 1835 "asmparse.y" |
4595 | { yyval.binstr = new BinStr(); |
4596 | yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); |
4597 | char* sz = PASM->ReflectionNotation(yypvt[-5].token); |
4598 | strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); |
4599 | yyval.binstr->appendInt8(1); |
4600 | yyval.binstr->appendInt32(yypvt[-1].int32); } break; |
4601 | case 734: |
4602 | #line 1841 "asmparse.y" |
4603 | { yyval.binstr = new BinStr(); |
4604 | yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); |
4605 | char* sz = PASM->ReflectionNotation(yypvt[-5].token); |
4606 | strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); |
4607 | yyval.binstr->appendInt8(2); |
4608 | yyval.binstr->appendInt32(yypvt[-1].int32); } break; |
4609 | case 735: |
4610 | #line 1847 "asmparse.y" |
4611 | { yyval.binstr = new BinStr(); |
4612 | yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); |
4613 | char* sz = PASM->ReflectionNotation(yypvt[-5].token); |
4614 | strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); |
4615 | yyval.binstr->appendInt8(4); |
4616 | yyval.binstr->appendInt32(yypvt[-1].int32); } break; |
4617 | case 736: |
4618 | #line 1853 "asmparse.y" |
4619 | { yyval.binstr = new BinStr(); |
4620 | yyval.binstr->appendInt8(SERIALIZATION_TYPE_ENUM); |
4621 | char* sz = PASM->ReflectionNotation(yypvt[-3].token); |
4622 | strcpy_s((char *)yyval.binstr->getBuff((unsigned)strlen(sz) + 1), strlen(sz) + 1,sz); |
4623 | yyval.binstr->appendInt8(4); |
4624 | yyval.binstr->appendInt32(yypvt[-1].int32); } break; |
4625 | case 737: |
4626 | #line 1861 "asmparse.y" |
4627 | { yyval.secAct = dclRequest; } break; |
4628 | case 738: |
4629 | #line 1862 "asmparse.y" |
4630 | { yyval.secAct = dclDemand; } break; |
4631 | case 739: |
4632 | #line 1863 "asmparse.y" |
4633 | { yyval.secAct = dclAssert; } break; |
4634 | case 740: |
4635 | #line 1864 "asmparse.y" |
4636 | { yyval.secAct = dclDeny; } break; |
4637 | case 741: |
4638 | #line 1865 "asmparse.y" |
4639 | { yyval.secAct = dclPermitOnly; } break; |
4640 | case 742: |
4641 | #line 1866 "asmparse.y" |
4642 | { yyval.secAct = dclLinktimeCheck; } break; |
4643 | case 743: |
4644 | #line 1867 "asmparse.y" |
4645 | { yyval.secAct = dclInheritanceCheck; } break; |
4646 | case 744: |
4647 | #line 1868 "asmparse.y" |
4648 | { yyval.secAct = dclRequestMinimum; } break; |
4649 | case 745: |
4650 | #line 1869 "asmparse.y" |
4651 | { yyval.secAct = dclRequestOptional; } break; |
4652 | case 746: |
4653 | #line 1870 "asmparse.y" |
4654 | { yyval.secAct = dclRequestRefuse; } break; |
4655 | case 747: |
4656 | #line 1871 "asmparse.y" |
4657 | { yyval.secAct = dclPrejitGrant; } break; |
4658 | case 748: |
4659 | #line 1872 "asmparse.y" |
4660 | { yyval.secAct = dclPrejitDenied; } break; |
4661 | case 749: |
4662 | #line 1873 "asmparse.y" |
4663 | { yyval.secAct = dclNonCasDemand; } break; |
4664 | case 750: |
4665 | #line 1874 "asmparse.y" |
4666 | { yyval.secAct = dclNonCasLinkDemand; } break; |
4667 | case 751: |
4668 | #line 1875 "asmparse.y" |
4669 | { yyval.secAct = dclNonCasInheritance; } break; |
4670 | case 752: |
4671 | #line 1879 "asmparse.y" |
4672 | { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = FALSE; } break; |
4673 | case 753: |
4674 | #line 1880 "asmparse.y" |
4675 | { PASM->ResetLineNumbers(); nCurrPC = PASM->m_CurPC; PENV->bExternSource = TRUE; PENV->bExternSourceAutoincrement = TRUE; } break; |
4676 | case 754: |
4677 | #line 1883 "asmparse.y" |
4678 | { PENV->nExtLine = PENV->nExtLineEnd = yypvt[-1].int32; |
4679 | PENV->nExtCol = 0; PENV->nExtColEnd = static_cast<unsigned>(-1); |
4680 | PASM->SetSourceFileName(yypvt[-0].string);} break; |
4681 | case 755: |
4682 | #line 1886 "asmparse.y" |
4683 | { PENV->nExtLine = PENV->nExtLineEnd = yypvt[-0].int32; |
4684 | PENV->nExtCol = 0; PENV->nExtColEnd = static_cast<unsigned>(-1); } break; |
4685 | case 756: |
4686 | #line 1888 "asmparse.y" |
4687 | { PENV->nExtLine = PENV->nExtLineEnd = yypvt[-3].int32; |
4688 | PENV->nExtCol=yypvt[-1].int32; PENV->nExtColEnd = static_cast<unsigned>(-1); |
4689 | PASM->SetSourceFileName(yypvt[-0].string);} break; |
4690 | case 757: |
4691 | #line 1891 "asmparse.y" |
4692 | { PENV->nExtLine = PENV->nExtLineEnd = yypvt[-2].int32; |
4693 | PENV->nExtCol=yypvt[-0].int32; PENV->nExtColEnd = static_cast<unsigned>(-1);} break; |
4694 | case 758: |
4695 | #line 1894 "asmparse.y" |
4696 | { PENV->nExtLine = PENV->nExtLineEnd = yypvt[-5].int32; |
4697 | PENV->nExtCol=yypvt[-3].int32; PENV->nExtColEnd = yypvt[-1].int32; |
4698 | PASM->SetSourceFileName(yypvt[-0].string);} break; |
4699 | case 759: |
4700 | #line 1898 "asmparse.y" |
4701 | { PENV->nExtLine = PENV->nExtLineEnd = yypvt[-4].int32; |
4702 | PENV->nExtCol=yypvt[-2].int32; PENV->nExtColEnd = yypvt[-0].int32; } break; |
4703 | case 760: |
4704 | #line 1901 "asmparse.y" |
4705 | { PENV->nExtLine = yypvt[-5].int32; PENV->nExtLineEnd = yypvt[-3].int32; |
4706 | PENV->nExtCol=yypvt[-1].int32; PENV->nExtColEnd = static_cast<unsigned>(-1); |
4707 | PASM->SetSourceFileName(yypvt[-0].string);} break; |
4708 | case 761: |
4709 | #line 1905 "asmparse.y" |
4710 | { PENV->nExtLine = yypvt[-4].int32; PENV->nExtLineEnd = yypvt[-2].int32; |
4711 | PENV->nExtCol=yypvt[-0].int32; PENV->nExtColEnd = static_cast<unsigned>(-1); } break; |
4712 | case 762: |
4713 | #line 1908 "asmparse.y" |
4714 | { PENV->nExtLine = yypvt[-7].int32; PENV->nExtLineEnd = yypvt[-5].int32; |
4715 | PENV->nExtCol=yypvt[-3].int32; PENV->nExtColEnd = yypvt[-1].int32; |
4716 | PASM->SetSourceFileName(yypvt[-0].string);} break; |
4717 | case 763: |
4718 | #line 1912 "asmparse.y" |
4719 | { PENV->nExtLine = yypvt[-6].int32; PENV->nExtLineEnd = yypvt[-4].int32; |
4720 | PENV->nExtCol=yypvt[-2].int32; PENV->nExtColEnd = yypvt[-0].int32; } break; |
4721 | case 764: |
4722 | #line 1914 "asmparse.y" |
4723 | { PENV->nExtLine = PENV->nExtLineEnd = yypvt[-1].int32 - 1; |
4724 | PENV->nExtCol = 0; PENV->nExtColEnd = static_cast<unsigned>(-1); |
4725 | PASM->SetSourceFileName(yypvt[-0].binstr);} break; |
4726 | case 765: |
4727 | #line 1921 "asmparse.y" |
4728 | { PASMM->AddFile(yypvt[-5].string, yypvt[-6].fileAttr|yypvt[-4].fileAttr|yypvt[-0].fileAttr, yypvt[-2].binstr); } break; |
4729 | case 766: |
4730 | #line 1922 "asmparse.y" |
4731 | { PASMM->AddFile(yypvt[-1].string, yypvt[-2].fileAttr|yypvt[-0].fileAttr, NULL); } break; |
4732 | case 767: |
4733 | #line 1925 "asmparse.y" |
4734 | { yyval.fileAttr = (CorFileFlags) 0; } break; |
4735 | case 768: |
4736 | #line 1926 "asmparse.y" |
4737 | { yyval.fileAttr = (CorFileFlags) (yypvt[-1].fileAttr | ffContainsNoMetaData); } break; |
4738 | case 769: |
4739 | #line 1929 "asmparse.y" |
4740 | { yyval.fileAttr = (CorFileFlags) 0; } break; |
4741 | case 770: |
4742 | #line 1930 "asmparse.y" |
4743 | { yyval.fileAttr = (CorFileFlags) 0x80000000; } break; |
4744 | case 771: |
4745 | #line 1933 "asmparse.y" |
4746 | { bParsingByteArray = TRUE; } break; |
4747 | case 772: |
4748 | #line 1936 "asmparse.y" |
4749 | { PASMM->StartAssembly(yypvt[-0].string, NULL, (DWORD)yypvt[-1].asmAttr, FALSE); } break; |
4750 | case 773: |
4751 | #line 1939 "asmparse.y" |
4752 | { yyval.asmAttr = (CorAssemblyFlags) 0; } break; |
4753 | case 774: |
4754 | #line 1940 "asmparse.y" |
4755 | { yyval.asmAttr = (CorAssemblyFlags) (yypvt[-1].asmAttr | afRetargetable); } break; |
4756 | case 775: |
4757 | #line 1941 "asmparse.y" |
4758 | { yyval.asmAttr = (CorAssemblyFlags) (yypvt[-1].asmAttr | afContentType_WindowsRuntime); } break; |
4759 | case 776: |
4760 | #line 1942 "asmparse.y" |
4761 | { yyval.asmAttr = (CorAssemblyFlags) (yypvt[-1].asmAttr | afPA_NoPlatform); } break; |
4762 | case 777: |
4763 | #line 1943 "asmparse.y" |
4764 | { yyval.asmAttr = yypvt[-2].asmAttr; } break; |
4765 | case 778: |
4766 | #line 1944 "asmparse.y" |
4767 | { SET_PA(yyval.asmAttr,yypvt[-1].asmAttr,afPA_MSIL); } break; |
4768 | case 779: |
4769 | #line 1945 "asmparse.y" |
4770 | { SET_PA(yyval.asmAttr,yypvt[-1].asmAttr,afPA_x86); } break; |
4771 | case 780: |
4772 | #line 1946 "asmparse.y" |
4773 | { SET_PA(yyval.asmAttr,yypvt[-1].asmAttr,afPA_AMD64); } break; |
4774 | case 781: |
4775 | #line 1947 "asmparse.y" |
4776 | { SET_PA(yyval.asmAttr,yypvt[-1].asmAttr,afPA_ARM); } break; |
4777 | case 782: |
4778 | #line 1948 "asmparse.y" |
4779 | { SET_PA(yyval.asmAttr,yypvt[-1].asmAttr,afPA_ARM64); } break; |
4780 | case 785: |
4781 | #line 1955 "asmparse.y" |
4782 | { PASMM->SetAssemblyHashAlg(yypvt[-0].int32); } break; |
4783 | case 788: |
4784 | #line 1960 "asmparse.y" |
4785 | { yyval.int32 = yypvt[-0].int32; } break; |
4786 | case 789: |
4787 | #line 1961 "asmparse.y" |
4788 | { yyval.int32 = 0xFFFF; } break; |
4789 | case 790: |
4790 | #line 1964 "asmparse.y" |
4791 | { PASMM->SetAssemblyPublicKey(yypvt[-1].binstr); } break; |
4792 | case 791: |
4793 | #line 1966 "asmparse.y" |
4794 | { PASMM->SetAssemblyVer((USHORT)yypvt[-6].int32, (USHORT)yypvt[-4].int32, (USHORT)yypvt[-2].int32, (USHORT)yypvt[-0].int32); } break; |
4795 | case 792: |
4796 | #line 1967 "asmparse.y" |
4797 | { yypvt[-0].binstr->appendInt8(0); PASMM->SetAssemblyLocale(yypvt[-0].binstr,TRUE); } break; |
4798 | case 793: |
4799 | #line 1968 "asmparse.y" |
4800 | { PASMM->SetAssemblyLocale(yypvt[-1].binstr,FALSE); } break; |
4801 | case 796: |
4802 | #line 1973 "asmparse.y" |
4803 | { bParsingByteArray = TRUE; } break; |
4804 | case 797: |
4805 | #line 1976 "asmparse.y" |
4806 | { bParsingByteArray = TRUE; } break; |
4807 | case 798: |
4808 | #line 1979 "asmparse.y" |
4809 | { bParsingByteArray = TRUE; } break; |
4810 | case 799: |
4811 | #line 1983 "asmparse.y" |
4812 | { PASMM->StartAssembly(yypvt[-0].string, NULL, yypvt[-1].asmAttr, TRUE); } break; |
4813 | case 800: |
4814 | #line 1985 "asmparse.y" |
4815 | { PASMM->StartAssembly(yypvt[-2].string, yypvt[-0].string, yypvt[-3].asmAttr, TRUE); } break; |
4816 | case 803: |
4817 | #line 1992 "asmparse.y" |
4818 | { PASMM->SetAssemblyHashBlob(yypvt[-1].binstr); } break; |
4819 | case 805: |
4820 | #line 1994 "asmparse.y" |
4821 | { PASMM->SetAssemblyPublicKeyToken(yypvt[-1].binstr); } break; |
4822 | case 806: |
4823 | #line 1995 "asmparse.y" |
4824 | { PASMM->SetAssemblyAutodetect(); } break; |
4825 | case 807: |
4826 | #line 1998 "asmparse.y" |
4827 | { PASMM->StartComType(yypvt[-0].string, yypvt[-1].exptAttr);} break; |
4828 | case 808: |
4829 | #line 2001 "asmparse.y" |
4830 | { PASMM->StartComType(yypvt[-0].string, yypvt[-1].exptAttr); } break; |
4831 | case 809: |
4832 | #line 2004 "asmparse.y" |
4833 | { yyval.exptAttr = (CorTypeAttr) 0; } break; |
4834 | case 810: |
4835 | #line 2005 "asmparse.y" |
4836 | { yyval.exptAttr = (CorTypeAttr) (yypvt[-1].exptAttr | tdNotPublic); } break; |
4837 | case 811: |
4838 | #line 2006 "asmparse.y" |
4839 | { yyval.exptAttr = (CorTypeAttr) (yypvt[-1].exptAttr | tdPublic); } break; |
4840 | case 812: |
4841 | #line 2007 "asmparse.y" |
4842 | { yyval.exptAttr = (CorTypeAttr) (yypvt[-1].exptAttr | tdForwarder); } break; |
4843 | case 813: |
4844 | #line 2008 "asmparse.y" |
4845 | { yyval.exptAttr = (CorTypeAttr) (yypvt[-2].exptAttr | tdNestedPublic); } break; |
4846 | case 814: |
4847 | #line 2009 "asmparse.y" |
4848 | { yyval.exptAttr = (CorTypeAttr) (yypvt[-2].exptAttr | tdNestedPrivate); } break; |
4849 | case 815: |
4850 | #line 2010 "asmparse.y" |
4851 | { yyval.exptAttr = (CorTypeAttr) (yypvt[-2].exptAttr | tdNestedFamily); } break; |
4852 | case 816: |
4853 | #line 2011 "asmparse.y" |
4854 | { yyval.exptAttr = (CorTypeAttr) (yypvt[-2].exptAttr | tdNestedAssembly); } break; |
4855 | case 817: |
4856 | #line 2012 "asmparse.y" |
4857 | { yyval.exptAttr = (CorTypeAttr) (yypvt[-2].exptAttr | tdNestedFamANDAssem); } break; |
4858 | case 818: |
4859 | #line 2013 "asmparse.y" |
4860 | { yyval.exptAttr = (CorTypeAttr) (yypvt[-2].exptAttr | tdNestedFamORAssem); } break; |
4861 | case 821: |
4862 | #line 2020 "asmparse.y" |
4863 | { PASMM->SetComTypeFile(yypvt[-0].string); } break; |
4864 | case 822: |
4865 | #line 2021 "asmparse.y" |
4866 | { PASMM->SetComTypeComType(yypvt[-0].string); } break; |
4867 | case 823: |
4868 | #line 2022 "asmparse.y" |
4869 | { PASMM->SetComTypeAsmRef(yypvt[-0].string); } break; |
4870 | case 824: |
4871 | #line 2023 "asmparse.y" |
4872 | { if(!PASMM->SetComTypeImplementationTok(yypvt[-1].int32)) |
4873 | PASM->report->error("Invalid implementation of exported type\n" ); } break; |
4874 | case 825: |
4875 | #line 2025 "asmparse.y" |
4876 | { if(!PASMM->SetComTypeClassTok(yypvt[-0].int32)) |
4877 | PASM->report->error("Invalid TypeDefID of exported type\n" ); } break; |
4878 | case 828: |
4879 | #line 2031 "asmparse.y" |
4880 | { PASMM->StartManifestRes(yypvt[-0].string, yypvt[-0].string, yypvt[-1].manresAttr); } break; |
4881 | case 829: |
4882 | #line 2033 "asmparse.y" |
4883 | { PASMM->StartManifestRes(yypvt[-2].string, yypvt[-0].string, yypvt[-3].manresAttr); } break; |
4884 | case 830: |
4885 | #line 2036 "asmparse.y" |
4886 | { yyval.manresAttr = (CorManifestResourceFlags) 0; } break; |
4887 | case 831: |
4888 | #line 2037 "asmparse.y" |
4889 | { yyval.manresAttr = (CorManifestResourceFlags) (yypvt[-1].manresAttr | mrPublic); } break; |
4890 | case 832: |
4891 | #line 2038 "asmparse.y" |
4892 | { yyval.manresAttr = (CorManifestResourceFlags) (yypvt[-1].manresAttr | mrPrivate); } break; |
4893 | case 835: |
4894 | #line 2045 "asmparse.y" |
4895 | { PASMM->SetManifestResFile(yypvt[-2].string, (ULONG)yypvt[-0].int32); } break; |
4896 | case 836: |
4897 | #line 2046 "asmparse.y" |
4898 | { PASMM->SetManifestResAsmRef(yypvt[-0].string); } break;/* End of actions */ |
4899 | #line 329 "O:\\tfs\\cgm\\src\\Tools\\devdiv\\amd64\\yypars.c" |
4900 | } |
4901 | } |
4902 | goto yystack; /* stack new state and value */ |
4903 | } |
4904 | #pragma warning(default:102) |
4905 | |
4906 | |
4907 | #ifdef YYDUMP |
4908 | YYLOCAL void YYNEAR YYPASCAL yydumpinfo(void) |
4909 | { |
4910 | short stackindex; |
4911 | short valindex; |
4912 | |
4913 | //dump yys |
4914 | printf("short yys[%d] {\n" , YYMAXDEPTH); |
4915 | for (stackindex = 0; stackindex < YYMAXDEPTH; stackindex++){ |
4916 | if (stackindex) |
4917 | printf(", %s" , stackindex % 10 ? "\0" : "\n" ); |
4918 | printf("%6d" , yys[stackindex]); |
4919 | } |
4920 | printf("\n};\n" ); |
4921 | |
4922 | //dump yyv |
4923 | printf("YYSTYPE yyv[%d] {\n" , YYMAXDEPTH); |
4924 | for (valindex = 0; valindex < YYMAXDEPTH; valindex++){ |
4925 | if (valindex) |
4926 | printf(", %s" , valindex % 5 ? "\0" : "\n" ); |
4927 | printf("%#*x" , 3+sizeof(YYSTYPE), yyv[valindex]); |
4928 | } |
4929 | printf("\n};\n" ); |
4930 | } |
4931 | #endif |
4932 | |