| 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 | |