/NRefactory/ICSharpCode.NRefactory.VB/Lexer/Parser.cs
http://github.com/icsharpcode/ILSpy · C# · 8631 lines · 8598 code · 26 blank · 7 comment · 2920 complexity · 45c98f12a202b28535469a920eccc8c0 MD5 · raw file
Large files are truncated click here to view the full file
- using System;
- using System.Collections;
- using System.Collections.Generic;
- namespace ICSharpCode.NRefactory.VB.Parser {
- partial class ExpressionFinder {
- const int startOfExpression = 55;
- const int endOfStatementTerminatorAndBlock = 263;
- static BitArray GetExpectedSet(int state)
- {
- switch (state) {
- case 0:
- case 1:
- return set[0];
- case 2:
- return set[1];
- case 3:
- case 4:
- return set[2];
- case 5:
- return set[3];
- case 6:
- case 88:
- case 264:
- case 530:
- {
- BitArray a = new BitArray(239);
- return a;
- }
- case 7:
- return set[4];
- case 8:
- return set[5];
- case 9:
- case 10:
- case 20:
- {
- BitArray a = new BitArray(239);
- a.Set(142, true);
- return a;
- }
- case 11:
- case 193:
- case 199:
- case 205:
- case 244:
- case 248:
- case 295:
- case 399:
- case 405:
- case 474:
- case 520:
- case 527:
- case 535:
- case 565:
- case 601:
- case 650:
- case 664:
- case 743:
- return set[6];
- case 12:
- case 13:
- case 566:
- case 567:
- case 612:
- case 622:
- {
- BitArray a = new BitArray(239);
- a.Set(1, true);
- a.Set(21, true);
- a.Set(37, true);
- return a;
- }
- case 14:
- case 21:
- case 23:
- case 24:
- case 36:
- case 256:
- case 259:
- case 260:
- case 296:
- case 300:
- case 322:
- case 337:
- case 348:
- case 351:
- case 357:
- case 362:
- case 372:
- case 373:
- case 396:
- case 423:
- case 526:
- case 532:
- case 538:
- case 542:
- case 550:
- case 558:
- case 568:
- case 577:
- case 594:
- case 599:
- case 607:
- case 613:
- case 616:
- case 623:
- case 626:
- case 645:
- case 648:
- case 672:
- case 680:
- case 716:
- {
- BitArray a = new BitArray(239);
- a.Set(1, true);
- a.Set(21, true);
- return a;
- }
- case 15:
- case 16:
- return set[7];
- case 17:
- case 18:
- return set[8];
- case 19:
- case 257:
- case 271:
- case 298:
- case 352:
- case 397:
- case 454:
- case 575:
- case 595:
- case 614:
- case 618:
- case 624:
- case 646:
- case 681:
- {
- BitArray a = new BitArray(239);
- a.Set(113, true);
- return a;
- }
- case 22:
- case 543:
- case 578:
- return set[9];
- case 25:
- {
- BitArray a = new BitArray(239);
- a.Set(1, true);
- return a;
- }
- case 26:
- case 27:
- return set[10];
- case 28:
- case 720:
- return set[11];
- case 29:
- return set[12];
- case 30:
- return set[13];
- case 31:
- case 32:
- case 152:
- case 217:
- case 218:
- case 265:
- case 276:
- case 277:
- case 444:
- case 445:
- case 462:
- case 463:
- case 464:
- case 465:
- case 553:
- case 554:
- case 587:
- case 588:
- case 675:
- case 676:
- case 729:
- case 730:
- return set[14];
- case 33:
- case 34:
- case 521:
- case 522:
- case 528:
- case 529:
- case 555:
- case 556:
- case 669:
- return set[15];
- case 35:
- case 37:
- case 157:
- case 168:
- case 171:
- case 187:
- case 203:
- case 221:
- case 307:
- case 332:
- case 422:
- case 440:
- case 477:
- case 531:
- case 549:
- case 557:
- case 629:
- case 632:
- case 654:
- case 657:
- case 659:
- case 671:
- case 684:
- case 686:
- case 709:
- case 712:
- case 715:
- case 721:
- case 724:
- case 742:
- return set[16];
- case 38:
- case 41:
- return set[17];
- case 39:
- return set[18];
- case 40:
- case 97:
- case 101:
- case 163:
- case 388:
- case 481:
- return set[19];
- case 42:
- case 177:
- case 184:
- case 189:
- case 253:
- case 424:
- case 451:
- case 473:
- case 476:
- case 589:
- case 590:
- case 642:
- {
- BitArray a = new BitArray(239);
- a.Set(37, true);
- return a;
- }
- case 43:
- case 44:
- case 165:
- case 166:
- return set[20];
- case 45:
- case 46:
- case 167:
- case 188:
- case 392:
- case 427:
- case 475:
- case 478:
- case 498:
- case 561:
- case 592:
- case 644:
- case 690:
- case 719:
- case 728:
- {
- BitArray a = new BitArray(239);
- a.Set(38, true);
- return a;
- }
- case 47:
- case 48:
- return set[21];
- case 49:
- case 179:
- case 186:
- case 394:
- {
- BitArray a = new BitArray(239);
- a.Set(22, true);
- return a;
- }
- case 50:
- case 51:
- case 52:
- case 54:
- case 390:
- case 391:
- case 412:
- case 413:
- case 419:
- case 420:
- case 489:
- case 490:
- case 703:
- case 704:
- return set[22];
- case 53:
- case 169:
- case 170:
- case 172:
- case 181:
- case 414:
- case 421:
- case 429:
- case 438:
- case 442:
- case 485:
- case 488:
- case 492:
- case 494:
- case 495:
- case 505:
- case 512:
- case 519:
- case 705:
- {
- BitArray a = new BitArray(239);
- a.Set(22, true);
- a.Set(38, true);
- return a;
- }
- case 55:
- case 56:
- case 70:
- case 75:
- case 76:
- case 77:
- case 83:
- case 99:
- case 155:
- case 178:
- case 180:
- case 182:
- case 185:
- case 195:
- case 197:
- case 215:
- case 239:
- case 274:
- case 284:
- case 286:
- case 287:
- case 304:
- case 321:
- case 326:
- case 335:
- case 341:
- case 343:
- case 347:
- case 350:
- case 356:
- case 367:
- case 369:
- case 370:
- case 376:
- case 393:
- case 395:
- case 415:
- case 439:
- case 467:
- case 483:
- case 484:
- case 486:
- case 487:
- case 548:
- case 628:
- return set[23];
- case 57:
- case 78:
- case 158:
- return set[24];
- case 58:
- return set[25];
- case 59:
- {
- BitArray a = new BitArray(239);
- a.Set(216, true);
- return a;
- }
- case 60:
- {
- BitArray a = new BitArray(239);
- a.Set(145, true);
- return a;
- }
- case 61:
- case 156:
- {
- BitArray a = new BitArray(239);
- a.Set(144, true);
- return a;
- }
- case 62:
- {
- BitArray a = new BitArray(239);
- a.Set(236, true);
- return a;
- }
- case 63:
- {
- BitArray a = new BitArray(239);
- a.Set(177, true);
- return a;
- }
- case 64:
- {
- BitArray a = new BitArray(239);
- a.Set(175, true);
- return a;
- }
- case 65:
- {
- BitArray a = new BitArray(239);
- a.Set(61, true);
- return a;
- }
- case 66:
- {
- BitArray a = new BitArray(239);
- a.Set(60, true);
- return a;
- }
- case 67:
- {
- BitArray a = new BitArray(239);
- a.Set(150, true);
- return a;
- }
- case 68:
- {
- BitArray a = new BitArray(239);
- a.Set(42, true);
- return a;
- }
- case 69:
- {
- BitArray a = new BitArray(239);
- a.Set(43, true);
- return a;
- }
- case 71:
- case 443:
- {
- BitArray a = new BitArray(239);
- a.Set(40, true);
- return a;
- }
- case 72:
- {
- BitArray a = new BitArray(239);
- a.Set(41, true);
- return a;
- }
- case 73:
- case 98:
- case 222:
- case 223:
- case 282:
- case 283:
- case 334:
- case 744:
- {
- BitArray a = new BitArray(239);
- a.Set(20, true);
- return a;
- }
- case 74:
- {
- BitArray a = new BitArray(239);
- a.Set(154, true);
- return a;
- }
- case 79:
- case 91:
- case 93:
- case 148:
- {
- BitArray a = new BitArray(239);
- a.Set(35, true);
- return a;
- }
- case 80:
- case 81:
- return set[26];
- case 82:
- {
- BitArray a = new BitArray(239);
- a.Set(36, true);
- return a;
- }
- case 84:
- case 100:
- case 515:
- {
- BitArray a = new BitArray(239);
- a.Set(22, true);
- a.Set(36, true);
- return a;
- }
- case 85:
- case 121:
- {
- BitArray a = new BitArray(239);
- a.Set(162, true);
- return a;
- }
- case 86:
- case 87:
- return set[27];
- case 89:
- case 92:
- case 149:
- case 150:
- case 153:
- return set[28];
- case 90:
- case 102:
- case 147:
- {
- BitArray a = new BitArray(239);
- a.Set(233, true);
- return a;
- }
- case 94:
- {
- BitArray a = new BitArray(239);
- a.Set(26, true);
- a.Set(36, true);
- a.Set(147, true);
- return a;
- }
- case 95:
- {
- BitArray a = new BitArray(239);
- a.Set(26, true);
- a.Set(147, true);
- return a;
- }
- case 96:
- case 685:
- {
- BitArray a = new BitArray(239);
- a.Set(26, true);
- return a;
- }
- case 103:
- case 353:
- {
- BitArray a = new BitArray(239);
- a.Set(231, true);
- return a;
- }
- case 104:
- {
- BitArray a = new BitArray(239);
- a.Set(230, true);
- return a;
- }
- case 105:
- {
- BitArray a = new BitArray(239);
- a.Set(224, true);
- return a;
- }
- case 106:
- {
- BitArray a = new BitArray(239);
- a.Set(223, true);
- return a;
- }
- case 107:
- case 299:
- {
- BitArray a = new BitArray(239);
- a.Set(218, true);
- return a;
- }
- case 108:
- {
- BitArray a = new BitArray(239);
- a.Set(213, true);
- return a;
- }
- case 109:
- {
- BitArray a = new BitArray(239);
- a.Set(212, true);
- return a;
- }
- case 110:
- {
- BitArray a = new BitArray(239);
- a.Set(211, true);
- return a;
- }
- case 111:
- case 455:
- {
- BitArray a = new BitArray(239);
- a.Set(210, true);
- return a;
- }
- case 112:
- {
- BitArray a = new BitArray(239);
- a.Set(209, true);
- return a;
- }
- case 113:
- {
- BitArray a = new BitArray(239);
- a.Set(206, true);
- return a;
- }
- case 114:
- {
- BitArray a = new BitArray(239);
- a.Set(203, true);
- return a;
- }
- case 115:
- case 359:
- {
- BitArray a = new BitArray(239);
- a.Set(197, true);
- return a;
- }
- case 116:
- case 600:
- case 619:
- {
- BitArray a = new BitArray(239);
- a.Set(186, true);
- return a;
- }
- case 117:
- {
- BitArray a = new BitArray(239);
- a.Set(184, true);
- return a;
- }
- case 118:
- {
- BitArray a = new BitArray(239);
- a.Set(176, true);
- return a;
- }
- case 119:
- {
- BitArray a = new BitArray(239);
- a.Set(170, true);
- return a;
- }
- case 120:
- case 316:
- case 323:
- case 338:
- {
- BitArray a = new BitArray(239);
- a.Set(163, true);
- return a;
- }
- case 122:
- {
- BitArray a = new BitArray(239);
- a.Set(147, true);
- return a;
- }
- case 123:
- case 226:
- case 231:
- case 233:
- {
- BitArray a = new BitArray(239);
- a.Set(146, true);
- return a;
- }
- case 124:
- case 228:
- case 232:
- {
- BitArray a = new BitArray(239);
- a.Set(143, true);
- return a;
- }
- case 125:
- {
- BitArray a = new BitArray(239);
- a.Set(139, true);
- return a;
- }
- case 126:
- {
- BitArray a = new BitArray(239);
- a.Set(133, true);
- return a;
- }
- case 127:
- case 258:
- {
- BitArray a = new BitArray(239);
- a.Set(127, true);
- return a;
- }
- case 128:
- case 151:
- case 251:
- {
- BitArray a = new BitArray(239);
- a.Set(126, true);
- return a;
- }
- case 129:
- {
- BitArray a = new BitArray(239);
- a.Set(124, true);
- return a;
- }
- case 130:
- {
- BitArray a = new BitArray(239);
- a.Set(121, true);
- return a;
- }
- case 131:
- case 196:
- {
- BitArray a = new BitArray(239);
- a.Set(116, true);
- return a;
- }
- case 132:
- {
- BitArray a = new BitArray(239);
- a.Set(108, true);
- return a;
- }
- case 133:
- {
- BitArray a = new BitArray(239);
- a.Set(107, true);
- return a;
- }
- case 134:
- {
- BitArray a = new BitArray(239);
- a.Set(104, true);
- return a;
- }
- case 135:
- case 637:
- {
- BitArray a = new BitArray(239);
- a.Set(98, true);
- return a;
- }
- case 136:
- {
- BitArray a = new BitArray(239);
- a.Set(87, true);
- return a;
- }
- case 137:
- {
- BitArray a = new BitArray(239);
- a.Set(84, true);
- return a;
- }
- case 138:
- case 208:
- case 238:
- {
- BitArray a = new BitArray(239);
- a.Set(70, true);
- return a;
- }
- case 139:
- {
- BitArray a = new BitArray(239);
- a.Set(67, true);
- return a;
- }
- case 140:
- {
- BitArray a = new BitArray(239);
- a.Set(66, true);
- return a;
- }
- case 141:
- {
- BitArray a = new BitArray(239);
- a.Set(65, true);
- return a;
- }
- case 142:
- {
- BitArray a = new BitArray(239);
- a.Set(64, true);
- return a;
- }
- case 143:
- {
- BitArray a = new BitArray(239);
- a.Set(62, true);
- return a;
- }
- case 144:
- case 250:
- {
- BitArray a = new BitArray(239);
- a.Set(58, true);
- return a;
- }
- case 145:
- {
- BitArray a = new BitArray(239);
- a.Set(2, true);
- return a;
- }
- case 146:
- return set[29];
- case 154:
- return set[30];
- case 159:
- return set[31];
- case 160:
- return set[32];
- case 161:
- case 162:
- case 479:
- case 480:
- return set[33];
- case 164:
- return set[34];
- case 173:
- case 174:
- case 319:
- case 328:
- return set[35];
- case 175:
- case 457:
- return set[36];
- case 176:
- case 375:
- {
- BitArray a = new BitArray(239);
- a.Set(135, true);
- return a;
- }
- case 183:
- return set[37];
- case 190:
- {
- BitArray a = new BitArray(239);
- a.Set(58, true);
- a.Set(126, true);
- return a;
- }
- case 191:
- case 192:
- return set[38];
- case 194:
- {
- BitArray a = new BitArray(239);
- a.Set(171, true);
- return a;
- }
- case 198:
- case 212:
- case 230:
- case 235:
- case 241:
- case 243:
- case 247:
- case 249:
- return set[39];
- case 200:
- case 201:
- {
- BitArray a = new BitArray(239);
- a.Set(63, true);
- a.Set(138, true);
- return a;
- }
- case 202:
- case 204:
- case 320:
- {
- BitArray a = new BitArray(239);
- a.Set(138, true);
- return a;
- }
- case 206:
- case 207:
- case 209:
- case 211:
- case 213:
- case 214:
- case 224:
- case 229:
- case 234:
- case 242:
- case 246:
- case 269:
- case 273:
- return set[40];
- case 210:
- {
- BitArray a = new BitArray(239);
- a.Set(22, true);
- a.Set(143, true);
- return a;
- }
- case 216:
- return set[41];
- case 219:
- case 278:
- return set[42];
- case 220:
- case 279:
- return set[43];
- case 225:
- {
- BitArray a = new BitArray(239);
- a.Set(22, true);
- a.Set(70, true);
- return a;
- }
- case 227:
- {
- BitArray a = new BitArray(239);
- a.Set(133, true);
- a.Set(143, true);
- a.Set(146, true);
- return a;
- }
- case 236:
- case 237:
- return set[44];
- case 240:
- {
- BitArray a = new BitArray(239);
- a.Set(64, true);
- a.Set(104, true);
- return a;
- }
- case 245:
- return set[45];
- case 252:
- case 552:
- case 663:
- case 674:
- case 682:
- {
- BitArray a = new BitArray(239);
- a.Set(127, true);
- a.Set(210, true);
- return a;
- }
- case 254:
- case 255:
- return set[46];
- case 261:
- case 262:
- return set[47];
- case 263:
- return set[48];
- case 266:
- return set[49];
- case 267:
- case 268:
- case 381:
- return set[50];
- case 270:
- case 275:
- case 365:
- case 655:
- case 656:
- case 658:
- case 693:
- case 710:
- case 711:
- case 713:
- case 722:
- case 723:
- case 725:
- case 737:
- {
- BitArray a = new BitArray(239);
- a.Set(1, true);
- a.Set(21, true);
- a.Set(22, true);
- return a;
- }
- case 272:
- {
- BitArray a = new BitArray(239);
- a.Set(226, true);
- return a;
- }
- case 280:
- case 281:
- return set[51];
- case 285:
- case 327:
- case 342:
- case 404:
- return set[52];
- case 288:
- case 289:
- case 309:
- case 310:
- case 324:
- case 325:
- case 339:
- case 340:
- return set[53];
- case 290:
- case 382:
- case 385:
- {
- BitArray a = new BitArray(239);
- a.Set(1, true);
- a.Set(21, true);
- a.Set(111, true);
- return a;
- }
- case 291:
- {
- BitArray a = new BitArray(239);
- a.Set(108, true);
- a.Set(124, true);
- a.Set(231, true);
- return a;
- }
- case 292:
- return set[54];
- case 293:
- case 312:
- return set[55];
- case 294:
- {
- BitArray a = new BitArray(239);
- a.Set(5, true);
- return a;
- }
- case 297:
- {
- BitArray a = new BitArray(239);
- a.Set(75, true);
- a.Set(113, true);
- a.Set(123, true);
- return a;
- }
- case 301:
- case 302:
- return set[56];
- case 303:
- case 308:
- {
- BitArray a = new BitArray(239);
- a.Set(1, true);
- a.Set(21, true);
- a.Set(229, true);
- return a;
- }
- case 305:
- case 306:
- return set[57];
- case 311:
- return set[58];
- case 313:
- {
- BitArray a = new BitArray(239);
- a.Set(118, true);
- return a;
- }
- case 314:
- case 315:
- return set[59];
- case 317:
- case 318:
- return set[60];
- case 329:
- case 330:
- return set[61];
- case 331:
- return set[62];
- case 333:
- {
- BitArray a = new BitArray(239);
- a.Set(20, true);
- a.Set(138, true);
- return a;
- }
- case 336:
- {
- BitArray a = new BitArray(239);
- a.Set(1, true);
- a.Set(21, true);
- a.Set(205, true);
- return a;
- }
- case 344:
- return set[63];
- case 345:
- case 349:
- {
- BitArray a = new BitArray(239);
- a.Set(152, true);
- return a;
- }
- case 346:
- return set[64];
- case 354:
- case 355:
- return set[65];
- case 358:
- {
- BitArray a = new BitArray(239);
- a.Set(74, true);
- a.Set(113, true);
- return a;
- }
- case 360:
- case 361:
- return set[66];
- case 363:
- case 364:
- return set[67];
- case 366:
- case 368:
- return set[68];
- case 371:
- case 377:
- {
- BitArray a = new BitArray(239);
- a.Set(1, true);
- a.Set(21, true);
- a.Set(214, true);
- return a;
- }
- case 374:
- {
- BitArray a = new BitArray(239);
- a.Set(111, true);
- a.Set(112, true);
- a.Set(113, true);
- return a;
- }
- case 378:
- {
- BitArray a = new BitArray(239);
- a.Set(1, true);
- a.Set(21, true);
- a.Set(135, true);
- return a;
- }
- case 379:
- case 380:
- case 452:
- case 453:
- return set[69];
- case 383:
- case 384:
- case 386:
- case 387:
- return set[70];
- case 389:
- return set[71];
- case 398:
- {
- BitArray a = new BitArray(239);
- a.Set(211, true);
- a.Set(233, true);
- return a;
- }
- case 400:
- case 401:
- case 406:
- case 407:
- return set[72];
- case 402:
- case 408:
- return set[73];
- case 403:
- case 411:
- case 418:
- return set[74];
- case 409:
- case 410:
- case 416:
- case 417:
- case 700:
- case 701:
- return set[75];
- case 425:
- case 426:
- return set[76];
- case 428:
- case 430:
- case 431:
- case 591:
- case 643:
- return set[77];
- case 432:
- case 433:
- return set[78];
- case 434:
- case 435:
- return set[79];
- case 436:
- return set[80];
- case 437:
- case 441:
- {
- BitArray a = new BitArray(239);
- a.Set(20, true);
- a.Set(22, true);
- a.Set(38, true);
- return a;
- }
- case 446:
- case 450:
- return set[81];
- case 447:
- case 448:
- return set[82];
- case 449:
- {
- BitArray a = new BitArray(239);
- a.Set(21, true);
- return a;
- }
- case 456:
- return set[83];
- case 458:
- case 471:
- return set[84];
- case 459:
- case 472:
- return set[85];
- case 460:
- case 461:
- case 736:
- {
- BitArray a = new BitArray(239);
- a.Set(10, true);
- return a;
- }
- case 466:
- {
- BitArray a = new BitArray(239);
- a.Set(12, true);
- return a;
- }
- case 468:
- {
- BitArray a = new BitArray(239);
- a.Set(13, true);
- return a;
- }
- case 469:
- return set[86];
- case 470:
- return set[87];
- case 482:
- return set[88];
- case 491:
- case 493:
- return set[89];
- case 496:
- case 497:
- case 559:
- case 560:
- case 688:
- case 689:
- return set[90];
- case 499:
- case 500:
- case 501:
- case 506:
- case 507:
- case 562:
- case 691:
- case 718:
- case 727:
- return set[91];
- case 502:
- case 508:
- case 517:
- return set[92];
- case 503:
- case 504:
- case 509:
- case 510:
- {
- BitArray a = new BitArray(239);
- a.Set(22, true);
- a.Set(38, true);
- a.Set(63, true);
- return a;
- }
- case 511:
- case 513:
- case 518:
- return set[93];
- case 514:
- case 516:
- return set[94];
- case 523:
- case 536:
- case 537:
- case 593:
- case 670:
- {
- BitArray a = new BitArray(239);
- a.Set(1, true);
- a.Set(21, true);
- a.Set(63, true);
- return a;
- }
- case 524:
- case 525:
- case 597:
- case 598:
- return set[95];
- case 533:
- case 534:
- case 541:
- {
- BitArray a = new BitArray(239);
- a.Set(115, true);
- return a;
- }
- case 539:
- case 540:
- return set[96];
- case 544:
- case 545:
- return set[97];
- case 546:
- case 547:
- case 606:
- {
- BitArray a = new BitArray(239);
- a.Set(1, true);
- a.Set(20, true);
- a.Set(21, true);
- return a;
- }
- case 551:
- {
- BitArray a = new BitArray(239);
- a.Set(103, true);
- return a;
- }
- case 563:
- case 564:
- case 576:
- {
- BitArray a = new BitArray(239);
- a.Set(84, true);
- a.Set(155, true);
- a.Set(209, true);
- return a;
- }
- case 569:
- case 570:
- return set[98];
- case 571:
- case 572:
- return set[99];
- case 573:
- case 574:
- case 585:
- return set[100];
- case 579:
- case 580:
- return set[101];
- case 581:
- case 582:
- case 707:
- return set[102];
- case 583:
- return set[103];
- case 584:
- return set[104];
- case 586:
- case 596:
- {
- BitArray a = new BitArray(239);
- a.Set(172, true);
- return a;
- }
- case 602:
- case 603:
- return set[105];
- case 604:
- return set[106];
- case 605:
- case 636:
- return set[107];
- case 608:
- case 609:
- case 610:
- case 627:
- return set[108];
- case 611:
- case 615:
- case 625:
- {
- BitArray a = new BitArray(239);
- a.Set(128, true);
- a.Set(198, true);
- return a;
- }
- case 617:
- return set[109];
- case 620:
- return set[110];
- case 621:
- return set[111];
- case 630:
- case 631:
- case 633:
- case 699:
- case 702:
- return set[112];
- case 634:
- case 635:
- return set[113];
- case 638:
- case 640:
- case 649:
- {
- BitArray a = new BitArray(239);
- a.Set(119, true);
- return a;
- }
- case 639:
- return set[114];
- case 641:
- return set[115];
- case 647:
- {
- BitArray a = new BitArray(239);
- a.Set(56, true);
- a.Set(189, true);
- a.Set(193, true);
- return a;
- }
- case 651:
- case 652:
- return set[116];
- case 653:
- case 660:
- {
- BitArray a = new BitArray(239);
- a.Set(1, true);
- a.Set(21, true);
- a.Set(136, true);
- return a;
- }
- case 661:
- {
- BitArray a = new BitArray(239);
- a.Set(101, true);
- return a;
- }
- case 662:
- return set[117];
- case 665:
- case 666:
- {
- BitArray a = new BitArray(239);
- a.Set(149, true);
- return a;
- }
- case 667:
- case 673:
- case 745:
- {
- BitArray a = new BitArray(239);
- a.Set(3, true);
- return a;
- }
- case 668:
- return set[118];
- case 677:
- case 678:
- return set[119];
- case 679:
- case 687:
- return set[120];
- case 683:
- return set[121];
- case 692:
- case 694:
- return set[122];
- case 695:
- case 706:
- return set[123];
- case 696:
- case 697:
- return set[124];
- case 698:
- return set[125];
- case 708:
- {
- BitArray a = new BitArray(239);
- a.Set(136, true);
- return a;
- }
- case 714:
- {
- BitArray a = new BitArray(239);
- a.Set(140, true);
- return a;
- }
- case 717:
- case 726:
- {
- BitArray a = new BitArray(239);
- a.Set(169, true);
- return a;
- }
- case 731:
- return set[126];
- case 732:
- {
- BitArray a = new BitArray(239);
- a.Set(160, true);
- return a;
- }
- case 733:
- {
- BitArray a = new BitArray(239);
- a.Set(137, true);
- return a;
- }
- case 734:
- case 735:
- case 738:
- case 739:
- return set[127];
- case 740:
- case 747:
- return set[128];
- case 741:
- return set[129];
- case 746:
- {
- BitArray a = new BitArray(239);
- a.Set(11, true);
- return a;
- }
- case 748:
- {
- BitArray a = new BitArray(239);
- a.Set(173, true);
- return a;
- }
- case 749:
- return set[130];
- case 750:
- {
- BitArray a = new BitArray(239);
- a.Set(67, true);
- a.Set(213, true);
- return a;
- }
- case 751:
- return set[131];
- default: throw new InvalidOperationException();
- }
- }
- const bool T = true;
- const bool x = false;
- int currentState = 0;
- readonly Stack<int> stateStack = new Stack<int>();
- bool wasQualifierTokenAtStart = false;
- bool nextTokenIsPotentialStartOfExpression = false;
- bool readXmlIdentifier = false;
- bool identifierExpected = false;
- bool nextTokenIsStartOfImportsOrAccessExpression = false;
- bool isMissingModifier = false;
- bool isAlreadyInExpr = false;
- bool wasNormalAttribute = false;
- int activeArgument = 0;
- List<Token> errors = new List<Token>();
-
- public ExpressionFinder()
- {
- stateStack.Push(-1); // required so that we don't crash when leaving the root production
- }
- void Expect(int expectedKind, Token la)
- {
- if (la.kind != expectedKind) {
- Error(la);
- output.AppendLine("expected: " + expectedKind);
- //Console.WriteLine("expected: " + expectedKind);
- }
- }
-
- void Error(Token la)
- {
- output.AppendLine("not expected: " + la);
- //Console.WriteLine("not expected: " + la);
- errors.Add(la);
- }
-
- Token t;
-
- public void InformToken(Token la)
- {
- switchlbl: switch (currentState) {
- case 0: {
- PushContext(Context.Global, la, t);
- goto case 1;
- }
- case 1: {
- if (la == null) { currentState = 1; break; }
- if (la.kind == 173) {
- stateStack.Push(1);
- goto case 748;
- } else {
- goto case 2;
- }
- }
- case 2: {
- if (la == null) { currentState = 2; break; }
- if (la.kind == 137) {
- stateStack.Push(2);
- goto case 733;
- } else {
- goto case 3;
- }
- }
- case 3: {
- if (la == null) { currentState = 3; break; }
- if (la.kind == 40) {
- stateStack.Push(3);
- goto case 443;
- } else {
- goto case 4;
- }
- }
- case 4: {
- if (la == null) { currentState = 4; break; }
- if (set[3].Get(la.kind)) {
- stateStack.Push(4);
- goto case 5;
- } else {
- PopContext();
- currentState = stateStack.Pop();
- goto switchlbl;
- }
- }
- case 5: {
- if (la == null) { currentState = 5; break; }
- if (la.kind == 160) {
- currentState = 729;
- break;
- } else {
- if (set[4].Get(la.kind)) {
- goto case 7;
- } else {
- goto case 6;
- }
- }
- }
- case 6: {
- Error(la);
- currentState = stateStack.Pop();
- goto switchlbl;
- }
- case 7: {
- if (la == null) { currentState = 7; break; }
- if (la.kind == 40) {
- stateStack.Push(7);
- goto case 443;
- } else {
- goto case 8;
- }
- }
- case 8: {
- if (la == null) { currentState = 8; break; }
- if (set[132].Get(la.kind)) {
- currentState = 8;
- break;
- } else {
- if (la.kind == 84 || la.kind == 155 || la.kind == 209) {
- goto case 563;
- } else {
- if (la.kind == 103) {
- currentState = 552;
- break;
- } else {
- if (la.kind == 115) {
- goto case 533;
- } else {
- if (la.kind == 142) {
- goto case 9;
- } else {
- goto case 6;
- }
- }
- }
- }
- }
- }
- case 9: {
- PushContext(Context.TypeDeclaration, la, t);
- goto case 10;
- }
- case 10: {
- if (la == null) { currentState = 10; break; }
- Expect(142, la); // "Interface"
- currentState = 11;
- break;
- }
- case 11: {
- PushContext(Context.Identifier, la, t);
- SetIdentifierExpected(la);
- stateStack.Push(12);
- goto case 205;
- }
- case 12: {
- PopContext();
- goto case 13;
- }
- case 13: {
- if (la == null) { currentState = 13; break; }
- if (la.kind == 37) {
- currentState = 726;
- break;
- } else {
- goto case 14;
- }
- }
- case 14: {
- stateStack.Push(15);
- goto case 23;
- }
- case 15: {
- isMissingModifier = true;
- goto case 16;
- }
- case 16: {
- if (la == null) { currentState = 16; break; }
- if (la.kind == 140) {
- currentState = 721;
- break;
- } else {
- goto case 17;
- }
- }
- case 17: {
- isMissingModifier = true;
- goto case 18;
- }
- case 18: {
- if (la == null) { currentState = 18; break; }
- if (set[10].Get(la.kind)) {
- goto case 26;
- } else {
- isMissingModifier = false;
- goto case 19;
- }
- }
- case 19: {
- if (la == null) { currentState = 19; break; }
- Expect(113, la); // "End"
- currentState = 20;
- break;
- }
- case 20: {
- if (la == null) { currentState = 20; break; }
- Expect(142, la); // "Interface"
- currentState = 21;
- break;
- }
- case 21: {
- stateStack.Push(22);
- goto case 23;
- }
- case 22: {
- PopContext();
- currentState = stateStack.Pop();
- goto switchlbl;
- }
- case 23: {
- if (la != null) CurrentBlock.lastExpressionStart = la.Location;
- goto case 24;
- }
- case 24: {
- if (la == null) { currentState = 24; break; }
- if (la.kind == 1) {
- goto case 25;
- } else {
- if (la.kind == 21) {
- currentState = stateStack.Pop();
- break;
- } else {
- goto case 6;
- }
- }
- }
- case 25: {
- if (la == null) { currentState = 25; break; }
- currentState = stateStack.Pop();
- break;
- }
- case 26: {
- isMissingModifier = true;
- goto case 27;
- }
- case 27: {
- if (la == null) { currentState = 27; break; }
- if (la.kind == 40) {
- stateStack.Push(26);
- goto case 443;
- } else {
- isMissingModifier = true;
- goto case 28;
- }
- }
- case 28: {
- if (la == null) { currentState = 28; break; }
- if (set[133].Get(la.kind)) {
- currentState = 720;
- break;
- } else {
- isMissingModifier = false;
- goto case 29;
- }
- }
- case 29: {
- if (la == null) { currentState = 29; break; }
- if (la.kind == 84 || la.kind == 155 || la.kind == 209) {
- stateStack.Push(17);
- goto case 563;
- } else {
- if (la.kind == 103) {
- stateStack.Push(17);
- goto case 551;
- } else {
- if (la.kind == 115) {
- stateStack.Push(17);
- goto case 533;
- } else {
- if (la.kind == 142) {
- stateStack.Push(17);
- goto case 9;
- } else {
- if (set[13].Get(la.kind)) {
- stateStack.Push(17);
- goto case 30;
- } else {
- Error(la);
- goto case 17;
- }
- }
- }
- }
- }
- }
- case 30: {
- if (la == null) { currentState = 30; break; }
- if (la.kind == 119) {
- currentState = 527;
- break;
- } else {
- if (la.kind == 186) {
- currentState = 520;
- break;
- } else {
- if (la.kind == 127 || la.kind == 210) {
- currentState = 31;
- break;
- } else {
- goto case 6;
- }
- }
- }
- }
- case 31: {
- PushContext(Context.Identifier, la, t);
- SetIdentifierExpected(la);
- goto case 32;
- }
- case 32: {
- if (la == null) { currentState = 32; break; }
- currentState = 33;
- break;
- }
- case 33: {
- PopContext();
- goto case 34;
- }
- case 34: {
- if (la == null) { currentState = 34; break; }
- if (la.kind == 37) {
- currentState = 496;
- break;
- } else {
- if (la.kind == 63) {
- currentState = 35;
- break;
- } else {
- goto case 23;
- }
- }
- }
- case 35: {
- PushContext(Context.Type, la, t);
- stateStack.Push(36);
- goto case 37;
- }
- case 36: {
- PopContext();
- goto case 23;
- }
- case 37: {
- if (la == null) { currentState = 37; break; }
- if (la.kind == 130) {
- currentState = 38;
- break;
- } else {
- if (set[6].Get(la.kind)) {
- currentState = 38;
- break;
- } else {
- if (set[134].Get(la.kind)) {
- currentState = 38;
- break;
- } else {
- if (la.kind == 33) {
- currentState = 38;
- break;
- } else {
- Error(la);
- goto case 38;
- }
- }
- }
- }
- }
- case 38: {
- if (la == null) { currentState = 38; break; }
- if (la.kind == 37) {
- stateStack.Push(38);
- goto case 42;
- } else {
- goto case 39;
- }
- }
- case 39: {
- if (la == null) { currentState = 39; break; }
- if (la.kind == 26) {
- currentState = 40;
- break;
- } else {
- currentState = stateStack.Pop();
- goto switchlbl;
- }
- }
- case 40: {
- stateStack.Push(41);
- goto case 101;
- }
- case 41: {
- if (la == null) { currentState = 41; break; }
- if (la.kind == 37) {
- stateStack.Push(41);
- goto case 42;
- } else {
- goto case 39;
- }
- }
- case 42: {
- if (la == null) { currentState = 42; break; }
- Expect(37, la); // "("
- currentState = 43;
- break;
- }
- case 43: {
- PushContext(Context.Expression, la, t);
- nextTokenIsPotentialStartOfExpression = true;
- goto case 44;
- }
- case 44: {
- if (la == null) { currentState = 44; break; }
- if (la.kind == 169) {
- currentState = 491;
- break;
- } else {
- if (set[22].Get(la.kind)) {
- if (set[21].Get(la.kind)) {
- stateStack.Push(45);
- goto case 47;
- } else {
- goto case 45;
- }
- } else {
- Error(la);
- goto case 45;
- }
- }
- }
- case 45: {
- PopContext();
- goto case 46;
- }
- case 46: {
- if (la == null) { currentState = 46; break; }
- Expect(38, la); // ")"
- currentState = stateStack.Pop();
- break;
- }
- case 47: {
- nextTokenIsPotentialStartOfExpression = true;
- goto case 48;
- }
- case 48: {
- if (la == null) { currentState = 48; break; }
- if (set[23].Get(la.kind)) {
- activeArgument = 0;
- goto case 487;
- } else {
- if (la.kind == 22) {
- activeArgument = 0;
- goto case 49;
- } else {
- goto case 6;
- }
- }
- }
- case 49: {
- if (la == null) { currentState = 49; break; }
- Expect(22, la); // ","
- currentState = 50;
- break;
- }
- case 50: {
- activeArgument++;
- goto case 51;
- }
- case 51: {
- nextTokenIsPotentialStartOfExpression = true;
- goto case 52;
- }
- case 52: {
- if (la == null) { currentState = 52; break; }
- if (set[23].Get(la.kind)) {
- stateStack.Push(53);
- goto case 55;
- } else {
- goto case 53;
- }
- }
- case 53: {
- if (la == null) { currentState = 53; break; }
- if (la.kind == 22) {
- currentState = 54;
- break;
- } else {
- currentState = stateStack.Pop();
- goto switchlbl;
- }
- }
- case 54: {
- activeArgument++;
- goto case 51;
- }
- case 55: {
- PushContext(Context.Expression, la, t);
- goto case 56;
- }
- case 56: {
- stateStack.Push(57);
- goto case 75;
- }
- case 57: {
- if (la == null) { currentState = 57; break; }
- if (set[25].Get(la.kind)) {
- stateStack.Push(56);
- goto case 58;
- } else {
- PopContext();
- currentState = stateStack.Pop();
- goto switchlbl;
- }
- }
- case 58: {
- if (la == null) { currentState = 58; break; }
- if (la.kind == 31) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 30) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 34) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 25) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 24) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 32) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 154) {
- goto case 74;
- } else {
- if (la.kind == 20) {
- goto case 73;
- } else {
- if (la.kind == 41) {
- goto case 72;
- } else {
- if (la.kind == 40) {
- goto case 71;
- } else {
- if (la.kind == 39) {
- currentState = 70;
- break;
- } else {
- if (la.kind == 43) {
- goto case 69;
- } else {
- if (la.kind == 42) {
- goto case 68;
- } else {
- if (la.kind == 150) {
- goto case 67;
- } else {
- if (la.kind == 23) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 60) {
- goto case 66;
- } else {
- if (la.kind == 61) {
- goto case 65;
- } else {
- if (la.kind == 175) {
- goto case 64;
- } else {
- if (la.kind == 177) {
- goto case 63;
- } else {
- if (la.kind == 236) {
- goto case 62;
- } else {
- if (la.kind == 44) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 45) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 144) {
- goto case 61;
- } else {
- if (la.kind == 145) {
- goto case 60;
- } else {
- if (la.kind == 47) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 49) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 50) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 51) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 46) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 48) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 54) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 52) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 53) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 216) {
- goto case 59;
- } else {
- if (la.kind == 55) {
- currentState = stateStack.Pop();
- break;
- } else {
- goto case 6;
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- case 59: {
- if (la == null) { currentState = 59; break; }
- currentState = stateStack.Pop();
- break;
- }
- case 60: {
- if (la == null) { currentState = 60; break; }
- currentState = stateStack.Pop();
- break;
- }
- case 61: {
- if (la == null) { currentState = 61; break; }
- currentState = stateStack.Pop();
- break;
- }
- case 62: {
- if (la == null) { currentState = 62; break; }
- currentState = stateStack.Pop();
- break;
- }
- case 63: {
- if (la == null) { currentState = 63; break; }
- currentState = stateStack.Pop();
- break;
- }
- case 64: {
- if (la == null) { currentState = 64; break; }
- currentState = stateStack.Pop();
- break;
- }
- case 65: {
- if (la == null) { currentState = 65; break; }
- currentState = stateStack.Pop();
- break;
- }
- case 66: {
- if (la == null) { currentState = 66; break; }
- currentState = stateStack.Pop();
- break;
- }
- case 67: {
- if (la == null) { currentState = 67; break; }
- currentState = stateStack.Pop();
- break;
- }
- case 68: {
- if (la == null) { currentState = 68; break; }
- currentState = stateStack.Pop();
- break;
- }
- case 69: {
- if (la == null) { currentState = 69; break; }
- currentState = stateStack.Pop();
- break;
- }
- case 70: {
- wasNormalAttribute = false;
- currentState = stateStack.Pop();
- goto switchlbl;
- }
- case 71: {
- if (la == null) { currentState = 71; break; }
- currentState = stateStack.Pop();
- break;
- }
- case 72: {
- if (la == null) { currentState = 72; break; }
- currentState = stateStack.Pop();
- break;
- }
- case 73: {
- if (la == null) { currentState = 73; break; }
- currentState = stateStack.Pop();
- break;
- }
- case 74: {
- if (la == null) { currentState = 74; break; }
- currentState = stateStack.Pop();
- break;
- }
- case 75: {
- PushContext(Context.Expression, la, t);
- goto case 76;
- }
- case 76: {
- nextTokenIsPotentialStartOfExpression = true;
- goto case 77;
- }
- case 77: {
- if (la == null) { currentState = 77; break; }
- if (set[135].Get(la.kind)) {
- currentState = 76;
- break;
- } else {
- if (set[35].Get(la.kind)) {
- stateStack.Push(159);
- goto case 173;
- } else {
- if (la.kind == 220) {
- currentState = 155;
- break;
- } else {
- if (la.kind == 162) {
- stateStack.Push(78);
- goto case 85;
- } else {
- if (la.kind == 35) {
- stateStack.Push(78);
- goto case 79;
- } else {
- Error(la);
- goto case 78;
- }
- }
- }
- }
- }
- }
- case 78: {
- PopContext();
- currentState = stateStack.Pop();
- goto switchlbl;
- }
- case 79: {
- if (la == null) { currentState = 79; break; }
- Expect(35, la); // "{"
- currentState = 80;
- break;
- }
- case 80: {
- nextTokenIsPotentialStartOfExpression = true;
- goto case 81;
- }
- case 81: {
- if (la == null) { currentState = 81; break; }
- if (set[23].Get(la.kind)) {
- goto case 83;
- } else {
- goto case 82;
- }
- }
- case 82: {
- if (la == null) { currentState = 82; break; }
- Expect(36, la); // "}"
- currentState = stateStack.Pop();
- break;
- }
- case 83: {
- stateStack.Push(84);
- goto case 55;
- }
- case 84: {
- if (la == null) { currentState = 84; break; }
- if (la.kind == 22) {
- currentState = 83;
- break;
- } else {
- goto case 82;
- }
- }
- case 85: {
- if (la == null) { currentState = 85; break; }
- Expect(162, la); // "New"
- currentState = 86;
- break;
- }
- case 86: {
- PushContext(Context.ObjectCreation, la, t);
- goto case 87;
- }
- case 87: {
- if (la == null) { currentState = 87; break; }
- if (set[16].Get(la.kind)) {
- stateStack.Push(146);
- goto case 37;
- } else {
- if (la.kind == 233) {
- PushContext(Context.ObjectInitializer, la, t);
- goto case 90;
- } else {
- goto case 88;
- }
- }
- }
- case 88: {
- Error(la);
- goto case 89;
- }
- case 89: {
- PopContext();
- currentState = stateStack.Pop();
- goto switchlbl;
- }
- case 90: {
- if (la == null) { currentState = 90; break; }
- Expect(233, la); // "With"
- currentState = 91;
- break;
- }
- case 91: {
- stateStack.Push(92);
- goto case 93;
- }
- case 92: {
- PopContext();
- goto case 89;
- }
- case 93: {
- if (la == null) { currentState = 93; break; }
- Expect(35, la); // "{"
- currentState = 94;
- break;
- }
- case 94: {
- if (la == null) { currentState = 94; break; }
- if (la.kind == 26 || la.kind == 147) {
- goto case 95;
- } else {
- goto case 82;
- }
- }
- case 95: {
- if (la == null) { currentState = 95; break; }
- if (la.kind == 147) {
- currentState = 96;
- break;
- } else {
- goto case 96;
- }
- }
- case 96: {
- if (la == null) { currentState = 96; break; }
- Expect(26, la); // "."
- currentState = 97;
- break;
- }
- case 97: {
- stateStack.Push(98);
- goto case 101;
- }
- case 98: {
- if (la == null) { currentState = 98; break; }
- Expect(20, la); // "="
- currentState = 99;
- break;
- }
- case 99: {
- stateStack.Push(100);
- goto case 55;
- }
- case 100: {
- if (la == null) { currentState = 100; break; }
- if (la.kind == 22) {
- currentState = 95;
- break;
- } else {
- goto case 82;
- }
- }
- case 101: {
- if (la == null) { currentState = 101; break; }
- if (la.kind == 2) {
- goto case 145;
- } else {
- if (la.kind == 56) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 57) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 58) {
- goto case 144;
- } else {
- if (la.kind == 59) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 60) {
- goto case 66;
- } else {
- if (la.kind == 61) {
- goto case 65;
- } else {
- if (la.kind == 62) {
- goto case 143;
- } else {
- if (la.kind == 63) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 64) {
- goto case 142;
- } else {
- if (la.kind == 65) {
- goto case 141;
- } else {
- if (la.kind == 66) {
- goto case 140;
- } else {
- if (la.kind == 67) {
- goto case 139;
- } else {
- if (la.kind == 68) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 69) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 70) {
- goto case 138;
- } else {
- if (la.kind == 71) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 72) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 73) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 74) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 75) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 76) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 77) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 78) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 79) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 80) {
- currentState = stateStack.Pop();
- break;
- } else {
- if (la.kind == 81) {
- currentState = stateStack.Pop();…