1 // this file has been generated from 'C:/work/cmajor-mod/cmajor/masm/system/System.XPath/XPath.lexer' using SoulCm lexer generator scmlg version 5.0.0
   2 
   3 using System;
   4 using System.Collections;
   5 using System.XPath.Token;
   6 using System.XPath.Keyword;
   7 
   8 namespace System.XPath
   9 {
  10     public class XPathLexer : System.Lex.Lexer
  11     {
  12         public XPathLexer(const uchar* start_const uchar* end_const string& fileName_) : 
  13             base(start_end_fileName_"System.XPath.XPathLexer.classmap")
  14         {
  15             auto classMapResult = System.Lex.GetClassMap(ClassMapName());
  16             if (classMapResult.Error())
  17             {
  18                 SetErrorId(classMapResult.GetErrorId());
  19                 return;
  20             }
  21             SetClassMap(classMapResult.Value());
  22             SetKeywordMap(GetKeywords());
  23         }
  24         public override int NextState(int stateuchar c)
  25         {
  26             int cls = GetClass(c);
  27             switch (state)
  28             {
  29                 case 0:
  30                 {
  31                     switch (cls)
  32                     {
  33                         case 2:
  34                         case 3:
  35                         case 4:
  36                         case 5:
  37                         {
  38                             return 1;
  39                         }
  40                         case 6:
  41                         case 7:
  42                         case 8:
  43                         case 9:
  44                         {
  45                             return 2;
  46                         }
  47                         case 11:
  48                         {
  49                             return 3;
  50                         }
  51                         case 12:
  52                         {
  53                             return 4;
  54                         }
  55                         case 14:
  56                         {
  57                             return 5;
  58                         }
  59                         case 15:
  60                         {
  61                             return 6;
  62                         }
  63                         case 17:
  64                         {
  65                             return 7;
  66                         }
  67                         case 18:
  68                         {
  69                             return 8;
  70                         }
  71                         case 19:
  72                         {
  73                             return 9;
  74                         }
  75                         case 20:
  76                         {
  77                             return 10;
  78                         }
  79                         case 21:
  80                         {
  81                             return 11;
  82                         }
  83                         case 22:
  84                         {
  85                             return 12;
  86                         }
  87                         case 23:
  88                         {
  89                             return 13;
  90                         }
  91                         case 24:
  92                         {
  93                             return 14;
  94                         }
  95                         case 25:
  96                         {
  97                             return 15;
  98                         }
  99                         case 26:
 100                         {
 101                             return 16;
 102                         }
 103                         case 27:
 104                         {
 105                             return 17;
 106                         }
 107                         case 28:
 108                         {
 109                             return 18;
 110                         }
 111                         case 29:
 112                         {
 113                             return 19;
 114                         }
 115                         case 30:
 116                         {
 117                             return 20;
 118                         }
 119                         case 31:
 120                         {
 121                             return 21;
 122                         }
 123                         case 32:
 124                         {
 125                             return 22;
 126                         }
 127                         case 33:
 128                         {
 129                             return 23;
 130                         }
 131                         default:
 132                         {
 133                             return -1;
 134                         }
 135                     }
 136                     break;
 137                 }
 138                 case 23:
 139                 {
 140                     auto prevMatch = token.match;
 141                     token.match = lexeme;
 142                     long tokenId = GetTokenId(27);
 143                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 144                     {
 145                         token.id = System.Lex.CONTINUE_TOKEN;
 146                         return -1;
 147                     }
 148                     else if (tokenId != System.Lex.INVALID_TOKEN)
 149                     {
 150                         token.id = tokenId;
 151                     }
 152                     else
 153                     {
 154                         token.match = prevMatch;
 155                     }
 156                     return -1;
 157                 }
 158                 case 22:
 159                 {
 160                     auto prevMatch = token.match;
 161                     token.match = lexeme;
 162                     long tokenId = GetTokenId(26);
 163                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 164                     {
 165                         token.id = System.Lex.CONTINUE_TOKEN;
 166                         return -1;
 167                     }
 168                     else if (tokenId != System.Lex.INVALID_TOKEN)
 169                     {
 170                         token.id = tokenId;
 171                     }
 172                     else
 173                     {
 174                         token.match = prevMatch;
 175                     }
 176                     return -1;
 177                 }
 178                 case 21:
 179                 {
 180                     auto prevMatch = token.match;
 181                     token.match = lexeme;
 182                     long tokenId = GetTokenId(25);
 183                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 184                     {
 185                         token.id = System.Lex.CONTINUE_TOKEN;
 186                         return -1;
 187                     }
 188                     else if (tokenId != System.Lex.INVALID_TOKEN)
 189                     {
 190                         token.id = tokenId;
 191                     }
 192                     else
 193                     {
 194                         token.match = prevMatch;
 195                     }
 196                     return -1;
 197                 }
 198                 case 20:
 199                 {
 200                     auto prevMatch = token.match;
 201                     token.match = lexeme;
 202                     long tokenId = GetTokenId(24);
 203                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 204                     {
 205                         token.id = System.Lex.CONTINUE_TOKEN;
 206                         return -1;
 207                     }
 208                     else if (tokenId != System.Lex.INVALID_TOKEN)
 209                     {
 210                         token.id = tokenId;
 211                     }
 212                     else
 213                     {
 214                         token.match = prevMatch;
 215                     }
 216                     return -1;
 217                 }
 218                 case 19:
 219                 {
 220                     auto prevMatch = token.match;
 221                     token.match = lexeme;
 222                     long tokenId = GetTokenId(23);
 223                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 224                     {
 225                         token.id = System.Lex.CONTINUE_TOKEN;
 226                         return -1;
 227                     }
 228                     else if (tokenId != System.Lex.INVALID_TOKEN)
 229                     {
 230                         token.id = tokenId;
 231                     }
 232                     else
 233                     {
 234                         token.match = prevMatch;
 235                     }
 236                     return -1;
 237                 }
 238                 case 18:
 239                 {
 240                     auto prevMatch = token.match;
 241                     token.match = lexeme;
 242                     long tokenId = GetTokenId(22);
 243                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 244                     {
 245                         token.id = System.Lex.CONTINUE_TOKEN;
 246                         return -1;
 247                     }
 248                     else if (tokenId != System.Lex.INVALID_TOKEN)
 249                     {
 250                         token.id = tokenId;
 251                     }
 252                     else
 253                     {
 254                         token.match = prevMatch;
 255                     }
 256                     return -1;
 257                 }
 258                 case 17:
 259                 {
 260                     auto prevMatch = token.match;
 261                     token.match = lexeme;
 262                     long tokenId = GetTokenId(21);
 263                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 264                     {
 265                         token.id = System.Lex.CONTINUE_TOKEN;
 266                         return -1;
 267                     }
 268                     else if (tokenId != System.Lex.INVALID_TOKEN)
 269                     {
 270                         token.id = tokenId;
 271                     }
 272                     else
 273                     {
 274                         token.match = prevMatch;
 275                     }
 276                     return -1;
 277                 }
 278                 case 16:
 279                 {
 280                     auto prevMatch = token.match;
 281                     token.match = lexeme;
 282                     long tokenId = GetTokenId(20);
 283                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 284                     {
 285                         token.id = System.Lex.CONTINUE_TOKEN;
 286                         return -1;
 287                     }
 288                     else if (tokenId != System.Lex.INVALID_TOKEN)
 289                     {
 290                         token.id = tokenId;
 291                     }
 292                     else
 293                     {
 294                         token.match = prevMatch;
 295                     }
 296                     switch (cls)
 297                     {
 298                         case 26:
 299                         {
 300                             return 24;
 301                         }
 302                         default:
 303                         {
 304                             return -1;
 305                         }
 306                     }
 307                     break;
 308                 }
 309                 case 24:
 310                 {
 311                     auto prevMatch = token.match;
 312                     token.match = lexeme;
 313                     long tokenId = GetTokenId(19);
 314                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 315                     {
 316                         token.id = System.Lex.CONTINUE_TOKEN;
 317                         return -1;
 318                     }
 319                     else if (tokenId != System.Lex.INVALID_TOKEN)
 320                     {
 321                         token.id = tokenId;
 322                     }
 323                     else
 324                     {
 325                         token.match = prevMatch;
 326                     }
 327                     return -1;
 328                 }
 329                 case 15:
 330                 {
 331                     auto prevMatch = token.match;
 332                     token.match = lexeme;
 333                     long tokenId = GetTokenId(16);
 334                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 335                     {
 336                         token.id = System.Lex.CONTINUE_TOKEN;
 337                         return -1;
 338                     }
 339                     else if (tokenId != System.Lex.INVALID_TOKEN)
 340                     {
 341                         token.id = tokenId;
 342                     }
 343                     else
 344                     {
 345                         token.match = prevMatch;
 346                     }
 347                     switch (cls)
 348                     {
 349                         case 25:
 350                         {
 351                             return 25;
 352                         }
 353                         default:
 354                         {
 355                             return -1;
 356                         }
 357                     }
 358                     break;
 359                 }
 360                 case 25:
 361                 {
 362                     auto prevMatch = token.match;
 363                     token.match = lexeme;
 364                     long tokenId = GetTokenId(15);
 365                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 366                     {
 367                         token.id = System.Lex.CONTINUE_TOKEN;
 368                         return -1;
 369                     }
 370                     else if (tokenId != System.Lex.INVALID_TOKEN)
 371                     {
 372                         token.id = tokenId;
 373                     }
 374                     else
 375                     {
 376                         token.match = prevMatch;
 377                     }
 378                     return -1;
 379                 }
 380                 case 14:
 381                 {
 382                     auto prevMatch = token.match;
 383                     token.match = lexeme;
 384                     long tokenId = GetTokenId(14);
 385                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 386                     {
 387                         token.id = System.Lex.CONTINUE_TOKEN;
 388                         return -1;
 389                     }
 390                     else if (tokenId != System.Lex.INVALID_TOKEN)
 391                     {
 392                         token.id = tokenId;
 393                     }
 394                     else
 395                     {
 396                         token.match = prevMatch;
 397                     }
 398                     return -1;
 399                 }
 400                 case 13:
 401                 {
 402                     auto prevMatch = token.match;
 403                     token.match = lexeme;
 404                     long tokenId = GetTokenId(13);
 405                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 406                     {
 407                         token.id = System.Lex.CONTINUE_TOKEN;
 408                         return -1;
 409                     }
 410                     else if (tokenId != System.Lex.INVALID_TOKEN)
 411                     {
 412                         token.id = tokenId;
 413                     }
 414                     else
 415                     {
 416                         token.match = prevMatch;
 417                     }
 418                     return -1;
 419                 }
 420                 case 12:
 421                 {
 422                     auto prevMatch = token.match;
 423                     token.match = lexeme;
 424                     long tokenId = GetTokenId(11);
 425                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 426                     {
 427                         token.id = System.Lex.CONTINUE_TOKEN;
 428                         return -1;
 429                     }
 430                     else if (tokenId != System.Lex.INVALID_TOKEN)
 431                     {
 432                         token.id = tokenId;
 433                     }
 434                     else
 435                     {
 436                         token.match = prevMatch;
 437                     }
 438                     return -1;
 439                 }
 440                 case 11:
 441                 {
 442                     auto prevMatch = token.match;
 443                     token.match = lexeme;
 444                     long tokenId = GetTokenId(10);
 445                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 446                     {
 447                         token.id = System.Lex.CONTINUE_TOKEN;
 448                         return -1;
 449                     }
 450                     else if (tokenId != System.Lex.INVALID_TOKEN)
 451                     {
 452                         token.id = tokenId;
 453                     }
 454                     else
 455                     {
 456                         token.match = prevMatch;
 457                     }
 458                     switch (cls)
 459                     {
 460                         case 18:
 461                         {
 462                             return 26;
 463                         }
 464                         default:
 465                         {
 466                             return -1;
 467                         }
 468                     }
 469                     break;
 470                 }
 471                 case 26:
 472                 {
 473                     auto prevMatch = token.match;
 474                     token.match = lexeme;
 475                     long tokenId = GetTokenId(8);
 476                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 477                     {
 478                         token.id = System.Lex.CONTINUE_TOKEN;
 479                         return -1;
 480                     }
 481                     else if (tokenId != System.Lex.INVALID_TOKEN)
 482                     {
 483                         token.id = tokenId;
 484                     }
 485                     else
 486                     {
 487                         token.match = prevMatch;
 488                     }
 489                     return -1;
 490                 }
 491                 case 10:
 492                 {
 493                     auto prevMatch = token.match;
 494                     token.match = lexeme;
 495                     long tokenId = GetTokenId(9);
 496                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 497                     {
 498                         token.id = System.Lex.CONTINUE_TOKEN;
 499                         return -1;
 500                     }
 501                     else if (tokenId != System.Lex.INVALID_TOKEN)
 502                     {
 503                         token.id = tokenId;
 504                     }
 505                     else
 506                     {
 507                         token.match = prevMatch;
 508                     }
 509                     switch (cls)
 510                     {
 511                         case 18:
 512                         {
 513                             return 27;
 514                         }
 515                         default:
 516                         {
 517                             return -1;
 518                         }
 519                     }
 520                     break;
 521                 }
 522                 case 27:
 523                 {
 524                     auto prevMatch = token.match;
 525                     token.match = lexeme;
 526                     long tokenId = GetTokenId(7);
 527                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 528                     {
 529                         token.id = System.Lex.CONTINUE_TOKEN;
 530                         return -1;
 531                     }
 532                     else if (tokenId != System.Lex.INVALID_TOKEN)
 533                     {
 534                         token.id = tokenId;
 535                     }
 536                     else
 537                     {
 538                         token.match = prevMatch;
 539                     }
 540                     return -1;
 541                 }
 542                 case 9:
 543                 {
 544                     switch (cls)
 545                     {
 546                         case 18:
 547                         {
 548                             return 28;
 549                         }
 550                         default:
 551                         {
 552                             return -1;
 553                         }
 554                     }
 555                     break;
 556                 }
 557                 case 28:
 558                 {
 559                     auto prevMatch = token.match;
 560                     token.match = lexeme;
 561                     long tokenId = GetTokenId(6);
 562                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 563                     {
 564                         token.id = System.Lex.CONTINUE_TOKEN;
 565                         return -1;
 566                     }
 567                     else if (tokenId != System.Lex.INVALID_TOKEN)
 568                     {
 569                         token.id = tokenId;
 570                     }
 571                     else
 572                     {
 573                         token.match = prevMatch;
 574                     }
 575                     return -1;
 576                 }
 577                 case 8:
 578                 {
 579                     auto prevMatch = token.match;
 580                     token.match = lexeme;
 581                     long tokenId = GetTokenId(5);
 582                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 583                     {
 584                         token.id = System.Lex.CONTINUE_TOKEN;
 585                         return -1;
 586                     }
 587                     else if (tokenId != System.Lex.INVALID_TOKEN)
 588                     {
 589                         token.id = tokenId;
 590                     }
 591                     else
 592                     {
 593                         token.match = prevMatch;
 594                     }
 595                     return -1;
 596                 }
 597                 case 7:
 598                 {
 599                     switch (cls)
 600                     {
 601                         case 0:
 602                         case 1:
 603                         case 2:
 604                         case 3:
 605                         case 4:
 606                         case 5:
 607                         case 6:
 608                         case 7:
 609                         case 8:
 610                         case 9:
 611                         case 10:
 612                         case 11:
 613                         case 12:
 614                         case 13:
 615                         case 14:
 616                         case 15:
 617                         case 16:
 618                         case 18:
 619                         case 19:
 620                         case 20:
 621                         case 21:
 622                         case 22:
 623                         case 23:
 624                         case 24:
 625                         case 25:
 626                         case 26:
 627                         case 27:
 628                         case 28:
 629                         case 29:
 630                         case 30:
 631                         case 31:
 632                         case 32:
 633                         case 33:
 634                         {
 635                             return 29;
 636                         }
 637                         case 17:
 638                         {
 639                             return 30;
 640                         }
 641                         default:
 642                         {
 643                             return -1;
 644                         }
 645                     }
 646                     break;
 647                 }
 648                 case 30:
 649                 {
 650                     auto prevMatch = token.match;
 651                     token.match = lexeme;
 652                     long tokenId = GetTokenId(4);
 653                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 654                     {
 655                         token.id = System.Lex.CONTINUE_TOKEN;
 656                         return -1;
 657                     }
 658                     else if (tokenId != System.Lex.INVALID_TOKEN)
 659                     {
 660                         token.id = tokenId;
 661                     }
 662                     else
 663                     {
 664                         token.match = prevMatch;
 665                     }
 666                     return -1;
 667                 }
 668                 case 29:
 669                 {
 670                     switch (cls)
 671                     {
 672                         case 0:
 673                         case 1:
 674                         case 2:
 675                         case 3:
 676                         case 4:
 677                         case 5:
 678                         case 6:
 679                         case 7:
 680                         case 8:
 681                         case 9:
 682                         case 10:
 683                         case 11:
 684                         case 12:
 685                         case 13:
 686                         case 14:
 687                         case 15:
 688                         case 16:
 689                         case 18:
 690                         case 19:
 691                         case 20:
 692                         case 21:
 693                         case 22:
 694                         case 23:
 695                         case 24:
 696                         case 25:
 697                         case 26:
 698                         case 27:
 699                         case 28:
 700                         case 29:
 701                         case 30:
 702                         case 31:
 703                         case 32:
 704                         case 33:
 705                         {
 706                             return 29;
 707                         }
 708                         case 17:
 709                         {
 710                             return 30;
 711                         }
 712                         default:
 713                         {
 714                             return -1;
 715                         }
 716                     }
 717                     break;
 718                 }
 719                 case 6:
 720                 {
 721                     switch (cls)
 722                     {
 723                         case 0:
 724                         case 1:
 725                         case 2:
 726                         case 3:
 727                         case 4:
 728                         case 5:
 729                         case 6:
 730                         case 7:
 731                         case 8:
 732                         case 9:
 733                         case 10:
 734                         case 11:
 735                         case 12:
 736                         case 13:
 737                         case 14:
 738                         case 16:
 739                         case 17:
 740                         case 18:
 741                         case 19:
 742                         case 20:
 743                         case 21:
 744                         case 22:
 745                         case 23:
 746                         case 24:
 747                         case 25:
 748                         case 26:
 749                         case 27:
 750                         case 28:
 751                         case 29:
 752                         case 30:
 753                         case 31:
 754                         case 32:
 755                         case 33:
 756                         {
 757                             return 31;
 758                         }
 759                         case 15:
 760                         {
 761                             return 32;
 762                         }
 763                         default:
 764                         {
 765                             return -1;
 766                         }
 767                     }
 768                     break;
 769                 }
 770                 case 32:
 771                 {
 772                     auto prevMatch = token.match;
 773                     token.match = lexeme;
 774                     long tokenId = GetTokenId(3);
 775                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 776                     {
 777                         token.id = System.Lex.CONTINUE_TOKEN;
 778                         return -1;
 779                     }
 780                     else if (tokenId != System.Lex.INVALID_TOKEN)
 781                     {
 782                         token.id = tokenId;
 783                     }
 784                     else
 785                     {
 786                         token.match = prevMatch;
 787                     }
 788                     return -1;
 789                 }
 790                 case 31:
 791                 {
 792                     switch (cls)
 793                     {
 794                         case 0:
 795                         case 1:
 796                         case 2:
 797                         case 3:
 798                         case 4:
 799                         case 5:
 800                         case 6:
 801                         case 7:
 802                         case 8:
 803                         case 9:
 804                         case 10:
 805                         case 11:
 806                         case 12:
 807                         case 13:
 808                         case 14:
 809                         case 16:
 810                         case 17:
 811                         case 18:
 812                         case 19:
 813                         case 20:
 814                         case 21:
 815                         case 22:
 816                         case 23:
 817                         case 24:
 818                         case 25:
 819                         case 26:
 820                         case 27:
 821                         case 28:
 822                         case 29:
 823                         case 30:
 824                         case 31:
 825                         case 32:
 826                         case 33:
 827                         {
 828                             return 31;
 829                         }
 830                         case 15:
 831                         {
 832                             return 32;
 833                         }
 834                         default:
 835                         {
 836                             return -1;
 837                         }
 838                     }
 839                     break;
 840                 }
 841                 case 5:
 842                 {
 843                     auto prevMatch = token.match;
 844                     token.match = lexeme;
 845                     long tokenId = GetTokenId(2);
 846                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 847                     {
 848                         token.id = System.Lex.CONTINUE_TOKEN;
 849                         return -1;
 850                     }
 851                     else if (tokenId != System.Lex.INVALID_TOKEN)
 852                     {
 853                         token.id = tokenId;
 854                     }
 855                     else
 856                     {
 857                         token.match = prevMatch;
 858                     }
 859                     switch (cls)
 860                     {
 861                         case 14:
 862                         {
 863                             return 5;
 864                         }
 865                         case 12:
 866                         {
 867                             return 33;
 868                         }
 869                         default:
 870                         {
 871                             return -1;
 872                         }
 873                     }
 874                     break;
 875                 }
 876                 case 33:
 877                 {
 878                     auto prevMatch = token.match;
 879                     token.match = lexeme;
 880                     long tokenId = GetTokenId(2);
 881                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 882                     {
 883                         token.id = System.Lex.CONTINUE_TOKEN;
 884                         return -1;
 885                     }
 886                     else if (tokenId != System.Lex.INVALID_TOKEN)
 887                     {
 888                         token.id = tokenId;
 889                     }
 890                     else
 891                     {
 892                         token.match = prevMatch;
 893                     }
 894                     switch (cls)
 895                     {
 896                         case 14:
 897                         {
 898                             return 34;
 899                         }
 900                         default:
 901                         {
 902                             return -1;
 903                         }
 904                     }
 905                     break;
 906                 }
 907                 case 34:
 908                 {
 909                     auto prevMatch = token.match;
 910                     token.match = lexeme;
 911                     long tokenId = GetTokenId(2);
 912                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 913                     {
 914                         token.id = System.Lex.CONTINUE_TOKEN;
 915                         return -1;
 916                     }
 917                     else if (tokenId != System.Lex.INVALID_TOKEN)
 918                     {
 919                         token.id = tokenId;
 920                     }
 921                     else
 922                     {
 923                         token.match = prevMatch;
 924                     }
 925                     switch (cls)
 926                     {
 927                         case 14:
 928                         {
 929                             return 34;
 930                         }
 931                         default:
 932                         {
 933                             return -1;
 934                         }
 935                     }
 936                     break;
 937                 }
 938                 case 4:
 939                 {
 940                     auto prevMatch = token.match;
 941                     token.match = lexeme;
 942                     long tokenId = GetTokenId(18);
 943                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 944                     {
 945                         token.id = System.Lex.CONTINUE_TOKEN;
 946                         return -1;
 947                     }
 948                     else if (tokenId != System.Lex.INVALID_TOKEN)
 949                     {
 950                         token.id = tokenId;
 951                     }
 952                     else
 953                     {
 954                         token.match = prevMatch;
 955                     }
 956                     switch (cls)
 957                     {
 958                         case 12:
 959                         {
 960                             return 35;
 961                         }
 962                         case 14:
 963                         {
 964                             return 36;
 965                         }
 966                         default:
 967                         {
 968                             return -1;
 969                         }
 970                     }
 971                     break;
 972                 }
 973                 case 36:
 974                 {
 975                     auto prevMatch = token.match;
 976                     token.match = lexeme;
 977                     long tokenId = GetTokenId(2);
 978                     if (tokenId == System.Lex.CONTINUE_TOKEN)
 979                     {
 980                         token.id = System.Lex.CONTINUE_TOKEN;
 981                         return -1;
 982                     }
 983                     else if (tokenId != System.Lex.INVALID_TOKEN)
 984                     {
 985                         token.id = tokenId;
 986                     }
 987                     else
 988                     {
 989                         token.match = prevMatch;
 990                     }
 991                     switch (cls)
 992                     {
 993                         case 14:
 994                         {
 995                             return 36;
 996                         }
 997                         default:
 998                         {
 999                             return -1;
1000                         }
1001                     }
1002                     break;
1003                 }
1004                 case 35:
1005                 {
1006                     auto prevMatch = token.match;
1007                     token.match = lexeme;
1008                     long tokenId = GetTokenId(17);
1009                     if (tokenId == System.Lex.CONTINUE_TOKEN)
1010                     {
1011                         token.id = System.Lex.CONTINUE_TOKEN;
1012                         return -1;
1013                     }
1014                     else if (tokenId != System.Lex.INVALID_TOKEN)
1015                     {
1016                         token.id = tokenId;
1017                     }
1018                     else
1019                     {
1020                         token.match = prevMatch;
1021                     }
1022                     return -1;
1023                 }
1024                 case 3:
1025                 {
1026                     auto prevMatch = token.match;
1027                     token.match = lexeme;
1028                     long tokenId = GetTokenId(12);
1029                     if (tokenId == System.Lex.CONTINUE_TOKEN)
1030                     {
1031                         token.id = System.Lex.CONTINUE_TOKEN;
1032                         return -1;
1033                     }
1034                     else if (tokenId != System.Lex.INVALID_TOKEN)
1035                     {
1036                         token.id = tokenId;
1037                     }
1038                     else
1039                     {
1040                         token.match = prevMatch;
1041                     }
1042                     return -1;
1043                 }
1044                 case 2:
1045                 {
1046                     auto prevMatch = token.match;
1047                     token.match = lexeme;
1048                     long tokenId = GetTokenId(1);
1049                     if (tokenId == System.Lex.CONTINUE_TOKEN)
1050                     {
1051                         token.id = System.Lex.CONTINUE_TOKEN;
1052                         return -1;
1053                     }
1054                     else if (tokenId != System.Lex.INVALID_TOKEN)
1055                     {
1056                         token.id = tokenId;
1057                     }
1058                     else
1059                     {
1060                         token.match = prevMatch;
1061                     }
1062                     switch (cls)
1063                     {
1064                         case 6:
1065                         case 7:
1066                         case 8:
1067                         case 9:
1068                         {
1069                             return 37;
1070                         }
1071                         case 10:
1072                         case 11:
1073                         case 12:
1074                         case 13:
1075                         case 14:
1076                         {
1077                             return 38;
1078                         }
1079                         default:
1080                         {
1081                             return -1;
1082                         }
1083                     }
1084                     break;
1085                 }
1086                 case 38:
1087                 {
1088                     auto prevMatch = token.match;
1089                     token.match = lexeme;
1090                     long tokenId = GetTokenId(1);
1091                     if (tokenId == System.Lex.CONTINUE_TOKEN)
1092                     {
1093                         token.id = System.Lex.CONTINUE_TOKEN;
1094                         return -1;
1095                     }
1096                     else if (tokenId != System.Lex.INVALID_TOKEN)
1097                     {
1098                         token.id = tokenId;
1099                     }
1100                     else
1101                     {
1102                         token.match = prevMatch;
1103                     }
1104                     switch (cls)
1105                     {
1106                         case 6:
1107                         case 7:
1108                         case 8:
1109                         case 9:
1110                         {
1111                             return 37;
1112                         }
1113                         case 10:
1114                         case 11:
1115                         case 12:
1116                         case 13:
1117                         case 14:
1118                         {
1119                             return 38;
1120                         }
1121                         default:
1122                         {
1123                             return -1;
1124                         }
1125                     }
1126                     break;
1127                 }
1128                 case 37:
1129                 {
1130                     auto prevMatch = token.match;
1131                     token.match = lexeme;
1132                     long tokenId = GetTokenId(1);
1133                     if (tokenId == System.Lex.CONTINUE_TOKEN)
1134                     {
1135                         token.id = System.Lex.CONTINUE_TOKEN;
1136                         return -1;
1137                     }
1138                     else if (tokenId != System.Lex.INVALID_TOKEN)
1139                     {
1140                         token.id = tokenId;
1141                     }
1142                     else
1143                     {
1144                         token.match = prevMatch;
1145                     }
1146                     switch (cls)
1147                     {
1148                         case 6:
1149                         case 7:
1150                         case 8:
1151                         case 9:
1152                         {
1153                             return 37;
1154                         }
1155                         case 10:
1156                         case 11:
1157                         case 12:
1158                         case 13:
1159                         case 14:
1160                         {
1161                             return 38;
1162                         }
1163                         default:
1164                         {
1165                             return -1;
1166                         }
1167                     }
1168                     break;
1169                 }
1170                 case 1:
1171                 {
1172                     auto prevMatch = token.match;
1173                     token.match = lexeme;
1174                     long tokenId = GetTokenId(0);
1175                     if (tokenId == System.Lex.CONTINUE_TOKEN)
1176                     {
1177                         token.id = System.Lex.CONTINUE_TOKEN;
1178                         return -1;
1179                     }
1180                     else if (tokenId != System.Lex.INVALID_TOKEN)
1181                     {
1182                         token.id = tokenId;
1183                     }
1184                     else
1185                     {
1186                         token.match = prevMatch;
1187                     }
1188                     switch (cls)
1189                     {
1190                         case 2:
1191                         case 3:
1192                         case 4:
1193                         case 5:
1194                         {
1195                             return 1;
1196                         }
1197                         default:
1198                         {
1199                             return -1;
1200                         }
1201                     }
1202                     break;
1203                 }
1204             }
1205             return -1;
1206         }
1207         public long GetTokenId(int ruleIndex)
1208         {
1209             switch (ruleIndex)
1210             {
1211                 case 0:
1212                 {
1213                     Retract();
1214                     break;
1215                 }
1216                 case 1:
1217                 {
1218                     Retract();
1219                     return NAME;
1220                     break;
1221                 }
1222                 case 2:
1223                 {
1224                     Retract();
1225                     return NUMBER;
1226                     break;
1227                 }
1228                 case 3:
1229                 {
1230                     Retract();
1231                     return DQ_STRING;
1232                     break;
1233                 }
1234                 case 4:
1235                 {
1236                     Retract();
1237                     return SQ_STRING;
1238                     break;
1239                 }
1240                 case 5:
1241                 {
1242                     Retract();
1243                     return EQ;
1244                     break;
1245                 }
1246                 case 6:
1247                 {
1248                     Retract();
1249                     return NEQ;
1250                     break;
1251                 }
1252                 case 7:
1253                 {
1254                     Retract();
1255                     return LEQ;
1256                     break;
1257                 }
1258                 case 8:
1259                 {
1260                     Retract();
1261                     return GEQ;
1262                     break;
1263                 }
1264                 case 9:
1265                 {
1266                     Retract();
1267                     return LESS;
1268                     break;
1269                 }
1270                 case 10:
1271                 {
1272                     Retract();
1273                     return GREATER;
1274                     break;
1275                 }
1276                 case 11:
1277                 {
1278                     Retract();
1279                     return PLUS;
1280                     break;
1281                 }
1282                 case 12:
1283                 {
1284                     Retract();
1285                     return MINUS;
1286                     break;
1287                 }
1288                 case 13:
1289                 {
1290                     Retract();
1291                     return STAR;
1292                     break;
1293                 }
1294                 case 14:
1295                 {
1296                     Retract();
1297                     return UNION;
1298                     break;
1299                 }
1300                 case 15:
1301                 {
1302                     Retract();
1303                     return SLASH_SLASH;
1304                     break;
1305                 }
1306                 case 16:
1307                 {
1308                     Retract();
1309                     return SLASH;
1310                     break;
1311                 }
1312                 case 17:
1313                 {
1314                     Retract();
1315                     return DOT_DOT;
1316                     break;
1317                 }
1318                 case 18:
1319                 {
1320                     Retract();
1321                     return DOT;
1322                     break;
1323                 }
1324                 case 19:
1325                 {
1326                     Retract();
1327                     return COLON_COLON;
1328                     break;
1329                 }
1330                 case 20:
1331                 {
1332                     Retract();
1333                     return COLON;
1334                     break;
1335                 }
1336                 case 21:
1337                 {
1338                     Retract();
1339                     return DOLLAR;
1340                     break;
1341                 }
1342                 case 22:
1343                 {
1344                     Retract();
1345                     return COMMA;
1346                     break;
1347                 }
1348                 case 23:
1349                 {
1350                     Retract();
1351                     return AT;
1352                     break;
1353                 }
1354                 case 24:
1355                 {
1356                     Retract();
1357                     return LBRACKET;
1358                     break;
1359                 }
1360                 case 25:
1361                 {
1362                     Retract();
1363                     return RBRACKET;
1364                     break;
1365                 }
1366                 case 26:
1367                 {
1368                     Retract();
1369                     return LPAREN;
1370                     break;
1371                 }
1372                 case 27:
1373                 {
1374                     Retract();
1375                     return RPAREN;
1376                     break;
1377                 }
1378             }
1379             return System.Lex.CONTINUE_TOKEN;
1380         }
1381         public XPathLexer_Variables vars;
1382     }
1383 
1384     public class XPathLexer_Variables
1385     {
1386         public XPathLexer_Variables()
1387         {
1388         }
1389     }
1390