lexer.go (25072B)
1 // Code generated by golex. DO NOT EDIT. 2 3 // Copyright 2019 The CC Authors. All rights reserved. 4 // Use of this source code is governed by a BSD-style 5 // license that can be found in the LICENSE file. 6 7 package cc // import "modernc.org/cc/v3" 8 9 func (s *scanner) scan() (r rune) { 10 11 yystate0: 12 yyrule := -1 13 _ = yyrule 14 c := s.initScan() 15 16 goto yystart1 17 18 yyAction: 19 switch yyrule { 20 case 1: 21 goto yyrule1 22 case 2: 23 goto yyrule2 24 case 3: 25 goto yyrule3 26 case 4: 27 goto yyrule4 28 case 5: 29 goto yyrule5 30 case 6: 31 goto yyrule6 32 case 7: 33 goto yyrule7 34 case 8: 35 goto yyrule8 36 case 9: 37 goto yyrule9 38 case 10: 39 goto yyrule10 40 case 11: 41 goto yyrule11 42 case 12: 43 goto yyrule12 44 case 13: 45 goto yyrule13 46 case 14: 47 goto yyrule14 48 case 15: 49 goto yyrule15 50 case 16: 51 goto yyrule16 52 case 17: 53 goto yyrule17 54 case 18: 55 goto yyrule18 56 case 19: 57 goto yyrule19 58 case 20: 59 goto yyrule20 60 case 21: 61 goto yyrule21 62 case 22: 63 goto yyrule22 64 case 23: 65 goto yyrule23 66 case 24: 67 goto yyrule24 68 case 25: 69 goto yyrule25 70 case 26: 71 goto yyrule26 72 case 27: 73 goto yyrule27 74 case 28: 75 goto yyrule28 76 case 29: 77 goto yyrule29 78 case 30: 79 goto yyrule30 80 case 31: 81 goto yyrule31 82 case 32: 83 goto yyrule32 84 case 33: 85 goto yyrule33 86 case 34: 87 goto yyrule34 88 case 35: 89 goto yyrule35 90 case 36: 91 goto yyrule36 92 case 37: 93 goto yyrule37 94 case 38: 95 goto yyrule38 96 case 39: 97 goto yyrule39 98 } 99 yystate1: 100 c = s.next() 101 yystart1: 102 switch { 103 default: 104 goto yyabort 105 case c == '!': 106 goto yystate16 107 case c == '"': 108 goto yystate18 109 case c == '#': 110 goto yystate29 111 case c == '$' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c == '\u0081': 112 goto yystate31 113 case c == '%': 114 goto yystate41 115 case c == '&': 116 goto yystate47 117 case c == '*': 118 goto yystate62 119 case c == '+': 120 goto yystate64 121 case c == '-': 122 goto yystate67 123 case c == '.': 124 goto yystate71 125 case c == '/': 126 goto yystate85 127 case c == ':': 128 goto yystate88 129 case c == '<': 130 goto yystate90 131 case c == '=': 132 goto yystate96 133 case c == '>': 134 goto yystate98 135 case c == 'L': 136 goto yystate102 137 case c == '\'': 138 goto yystate50 139 case c == '\\': 140 goto yystate32 141 case c == '\n': 142 goto yystate14 143 case c == '\r': 144 goto yystate15 145 case c == '\t' || c == '\v' || c == '\f' || c == ' ': 146 goto yystate2 147 case c == '^': 148 goto yystate126 149 case c == '|': 150 goto yystate128 151 case c >= '0' && c <= '9': 152 goto yystate74 153 } 154 155 yystate2: 156 c = s.next() 157 yyrule = 2 158 s.mark = len(s.charBuf) 159 switch { 160 default: 161 goto yyrule2 162 case c == '/': 163 goto yystate3 164 case c == '\t' || c == '\v' || c == '\f' || c == ' ': 165 goto yystate2 166 } 167 168 yystate3: 169 c = s.next() 170 switch { 171 default: 172 goto yyabort 173 case c == '*': 174 goto yystate4 175 case c == '/': 176 goto yystate13 177 } 178 179 yystate4: 180 c = s.next() 181 switch { 182 default: 183 goto yyabort 184 case c == '*': 185 goto yystate6 186 case c == '\n': 187 goto yystate5 188 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= ')' || c >= '+' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ': 189 goto yystate4 190 } 191 192 yystate5: 193 c = s.next() 194 switch { 195 default: 196 goto yyabort 197 case c == '*': 198 goto yystate6 199 case c == '\n': 200 goto yystate5 201 case c == '\u0080': 202 goto yystate7 203 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= ')' || c >= '+' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ': 204 goto yystate4 205 } 206 207 yystate6: 208 c = s.next() 209 switch { 210 default: 211 goto yyabort 212 case c == '*': 213 goto yystate6 214 case c == '/': 215 goto yystate2 216 case c == '\n': 217 goto yystate5 218 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= ')' || c >= '+' && c <= '.' || c >= '0' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ': 219 goto yystate4 220 } 221 222 yystate7: 223 c = s.next() 224 yyrule = 3 225 s.mark = len(s.charBuf) 226 switch { 227 default: 228 goto yyrule3 229 case c == '/': 230 goto yystate9 231 case c == '\t' || c == '\v' || c == '\f' || c == ' ': 232 goto yystate8 233 } 234 235 yystate8: 236 c = s.next() 237 switch { 238 default: 239 goto yyabort 240 case c == '/': 241 goto yystate9 242 case c == '\t' || c == '\v' || c == '\f' || c == ' ': 243 goto yystate8 244 } 245 246 yystate9: 247 c = s.next() 248 switch { 249 default: 250 goto yyabort 251 case c == '*': 252 goto yystate10 253 } 254 255 yystate10: 256 c = s.next() 257 switch { 258 default: 259 goto yyabort 260 case c == '*': 261 goto yystate12 262 case c == '\n': 263 goto yystate11 264 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= ')' || c >= '+' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ': 265 goto yystate10 266 } 267 268 yystate11: 269 c = s.next() 270 switch { 271 default: 272 goto yyabort 273 case c == '*': 274 goto yystate12 275 case c == '\n': 276 goto yystate11 277 case c == '\u0080': 278 goto yystate7 279 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= ')' || c >= '+' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ': 280 goto yystate10 281 } 282 283 yystate12: 284 c = s.next() 285 switch { 286 default: 287 goto yyabort 288 case c == '*': 289 goto yystate12 290 case c == '/': 291 goto yystate8 292 case c == '\n': 293 goto yystate11 294 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= ')' || c >= '+' && c <= '.' || c >= '0' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ': 295 goto yystate10 296 } 297 298 yystate13: 299 c = s.next() 300 yyrule = 1 301 s.mark = len(s.charBuf) 302 switch { 303 default: 304 goto yyrule1 305 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ': 306 goto yystate13 307 } 308 309 yystate14: 310 c = s.next() 311 yyrule = 39 312 s.mark = len(s.charBuf) 313 goto yyrule39 314 315 yystate15: 316 c = s.next() 317 switch { 318 default: 319 goto yyabort 320 case c == '\n': 321 goto yystate14 322 } 323 324 yystate16: 325 c = s.next() 326 switch { 327 default: 328 goto yyabort 329 case c == '=': 330 goto yystate17 331 } 332 333 yystate17: 334 c = s.next() 335 yyrule = 4 336 s.mark = len(s.charBuf) 337 goto yyrule4 338 339 yystate18: 340 c = s.next() 341 switch { 342 default: 343 goto yyabort 344 case c == '"': 345 goto yystate19 346 case c == '\\': 347 goto yystate20 348 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '!' || c >= '#' && c <= '[' || c >= ']' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ': 349 goto yystate18 350 } 351 352 yystate19: 353 c = s.next() 354 yyrule = 38 355 s.mark = len(s.charBuf) 356 goto yyrule38 357 358 yystate20: 359 c = s.next() 360 switch { 361 default: 362 goto yyabort 363 case c == '"' || c == '\'' || c >= '0' && c <= '7' || c == '?' || c == '\\' || c == 'a' || c == 'b' || c == 'e' || c == 'f' || c == 'n' || c == 'r' || c == 't' || c == 'v': 364 goto yystate18 365 case c == 'U': 366 goto yystate21 367 case c == 'u': 368 goto yystate25 369 case c == 'x': 370 goto yystate28 371 } 372 373 yystate21: 374 c = s.next() 375 switch { 376 default: 377 goto yyabort 378 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 379 goto yystate22 380 } 381 382 yystate22: 383 c = s.next() 384 switch { 385 default: 386 goto yyabort 387 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 388 goto yystate23 389 } 390 391 yystate23: 392 c = s.next() 393 switch { 394 default: 395 goto yyabort 396 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 397 goto yystate24 398 } 399 400 yystate24: 401 c = s.next() 402 switch { 403 default: 404 goto yyabort 405 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 406 goto yystate25 407 } 408 409 yystate25: 410 c = s.next() 411 switch { 412 default: 413 goto yyabort 414 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 415 goto yystate26 416 } 417 418 yystate26: 419 c = s.next() 420 switch { 421 default: 422 goto yyabort 423 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 424 goto yystate27 425 } 426 427 yystate27: 428 c = s.next() 429 switch { 430 default: 431 goto yyabort 432 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 433 goto yystate28 434 } 435 436 yystate28: 437 c = s.next() 438 switch { 439 default: 440 goto yyabort 441 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 442 goto yystate18 443 } 444 445 yystate29: 446 c = s.next() 447 switch { 448 default: 449 goto yyabort 450 case c == '#': 451 goto yystate30 452 } 453 454 yystate30: 455 c = s.next() 456 yyrule = 5 457 s.mark = len(s.charBuf) 458 goto yyrule5 459 460 yystate31: 461 c = s.next() 462 yyrule = 36 463 s.mark = len(s.charBuf) 464 switch { 465 default: 466 goto yyrule36 467 case c == '$' || c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c == '\u0081': 468 goto yystate31 469 case c == '\\': 470 goto yystate32 471 } 472 473 yystate32: 474 c = s.next() 475 switch { 476 default: 477 goto yyabort 478 case c == 'U': 479 goto yystate33 480 case c == 'u': 481 goto yystate37 482 } 483 484 yystate33: 485 c = s.next() 486 switch { 487 default: 488 goto yyabort 489 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 490 goto yystate34 491 } 492 493 yystate34: 494 c = s.next() 495 switch { 496 default: 497 goto yyabort 498 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 499 goto yystate35 500 } 501 502 yystate35: 503 c = s.next() 504 switch { 505 default: 506 goto yyabort 507 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 508 goto yystate36 509 } 510 511 yystate36: 512 c = s.next() 513 switch { 514 default: 515 goto yyabort 516 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 517 goto yystate37 518 } 519 520 yystate37: 521 c = s.next() 522 switch { 523 default: 524 goto yyabort 525 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 526 goto yystate38 527 } 528 529 yystate38: 530 c = s.next() 531 switch { 532 default: 533 goto yyabort 534 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 535 goto yystate39 536 } 537 538 yystate39: 539 c = s.next() 540 switch { 541 default: 542 goto yyabort 543 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 544 goto yystate40 545 } 546 547 yystate40: 548 c = s.next() 549 switch { 550 default: 551 goto yyabort 552 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 553 goto yystate31 554 } 555 556 yystate41: 557 c = s.next() 558 switch { 559 default: 560 goto yyabort 561 case c == ':': 562 goto yystate42 563 case c == '=': 564 goto yystate45 565 case c == '>': 566 goto yystate46 567 } 568 569 yystate42: 570 c = s.next() 571 yyrule = 6 572 s.mark = len(s.charBuf) 573 switch { 574 default: 575 goto yyrule6 576 case c == '%': 577 goto yystate43 578 } 579 580 yystate43: 581 c = s.next() 582 switch { 583 default: 584 goto yyabort 585 case c == ':': 586 goto yystate44 587 } 588 589 yystate44: 590 c = s.next() 591 yyrule = 7 592 s.mark = len(s.charBuf) 593 goto yyrule7 594 595 yystate45: 596 c = s.next() 597 yyrule = 8 598 s.mark = len(s.charBuf) 599 goto yyrule8 600 601 yystate46: 602 c = s.next() 603 yyrule = 9 604 s.mark = len(s.charBuf) 605 goto yyrule9 606 607 yystate47: 608 c = s.next() 609 switch { 610 default: 611 goto yyabort 612 case c == '&': 613 goto yystate48 614 case c == '=': 615 goto yystate49 616 } 617 618 yystate48: 619 c = s.next() 620 yyrule = 10 621 s.mark = len(s.charBuf) 622 goto yyrule10 623 624 yystate49: 625 c = s.next() 626 yyrule = 11 627 s.mark = len(s.charBuf) 628 goto yyrule11 629 630 yystate50: 631 c = s.next() 632 switch { 633 default: 634 goto yyabort 635 case c == '\\': 636 goto yystate53 637 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ': 638 goto yystate51 639 } 640 641 yystate51: 642 c = s.next() 643 switch { 644 default: 645 goto yyabort 646 case c == '\'': 647 goto yystate52 648 case c == '\\': 649 goto yystate53 650 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ': 651 goto yystate51 652 } 653 654 yystate52: 655 c = s.next() 656 yyrule = 35 657 s.mark = len(s.charBuf) 658 goto yyrule35 659 660 yystate53: 661 c = s.next() 662 switch { 663 default: 664 goto yyabort 665 case c == '"' || c == '\'' || c >= '0' && c <= '7' || c == '?' || c == '\\' || c == 'a' || c == 'b' || c == 'e' || c == 'f' || c == 'n' || c == 'r' || c == 't' || c == 'v': 666 goto yystate51 667 case c == 'U': 668 goto yystate54 669 case c == 'u': 670 goto yystate58 671 case c == 'x': 672 goto yystate61 673 } 674 675 yystate54: 676 c = s.next() 677 switch { 678 default: 679 goto yyabort 680 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 681 goto yystate55 682 } 683 684 yystate55: 685 c = s.next() 686 switch { 687 default: 688 goto yyabort 689 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 690 goto yystate56 691 } 692 693 yystate56: 694 c = s.next() 695 switch { 696 default: 697 goto yyabort 698 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 699 goto yystate57 700 } 701 702 yystate57: 703 c = s.next() 704 switch { 705 default: 706 goto yyabort 707 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 708 goto yystate58 709 } 710 711 yystate58: 712 c = s.next() 713 switch { 714 default: 715 goto yyabort 716 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 717 goto yystate59 718 } 719 720 yystate59: 721 c = s.next() 722 switch { 723 default: 724 goto yyabort 725 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 726 goto yystate60 727 } 728 729 yystate60: 730 c = s.next() 731 switch { 732 default: 733 goto yyabort 734 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 735 goto yystate61 736 } 737 738 yystate61: 739 c = s.next() 740 switch { 741 default: 742 goto yyabort 743 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 744 goto yystate51 745 } 746 747 yystate62: 748 c = s.next() 749 switch { 750 default: 751 goto yyabort 752 case c == '=': 753 goto yystate63 754 } 755 756 yystate63: 757 c = s.next() 758 yyrule = 12 759 s.mark = len(s.charBuf) 760 goto yyrule12 761 762 yystate64: 763 c = s.next() 764 switch { 765 default: 766 goto yyabort 767 case c == '+': 768 goto yystate65 769 case c == '=': 770 goto yystate66 771 } 772 773 yystate65: 774 c = s.next() 775 yyrule = 13 776 s.mark = len(s.charBuf) 777 goto yyrule13 778 779 yystate66: 780 c = s.next() 781 yyrule = 14 782 s.mark = len(s.charBuf) 783 goto yyrule14 784 785 yystate67: 786 c = s.next() 787 switch { 788 default: 789 goto yyabort 790 case c == '-': 791 goto yystate68 792 case c == '=': 793 goto yystate69 794 case c == '>': 795 goto yystate70 796 } 797 798 yystate68: 799 c = s.next() 800 yyrule = 15 801 s.mark = len(s.charBuf) 802 goto yyrule15 803 804 yystate69: 805 c = s.next() 806 yyrule = 16 807 s.mark = len(s.charBuf) 808 goto yyrule16 809 810 yystate70: 811 c = s.next() 812 yyrule = 17 813 s.mark = len(s.charBuf) 814 goto yyrule17 815 816 yystate71: 817 c = s.next() 818 switch { 819 default: 820 goto yyabort 821 case c == '.': 822 goto yystate72 823 case c >= '0' && c <= '9': 824 goto yystate74 825 } 826 827 yystate72: 828 c = s.next() 829 switch { 830 default: 831 goto yyabort 832 case c == '.': 833 goto yystate73 834 } 835 836 yystate73: 837 c = s.next() 838 yyrule = 18 839 s.mark = len(s.charBuf) 840 goto yyrule18 841 842 yystate74: 843 c = s.next() 844 yyrule = 37 845 s.mark = len(s.charBuf) 846 switch { 847 default: 848 goto yyrule37 849 case c == '$' || c == '.' || c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'O' || c >= 'Q' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'o' || c >= 'q' && c <= 'z' || c == '\u0081': 850 goto yystate74 851 case c == 'E' || c == 'P' || c == 'e' || c == 'p': 852 goto yystate75 853 case c == '\\': 854 goto yystate76 855 } 856 857 yystate75: 858 c = s.next() 859 yyrule = 37 860 s.mark = len(s.charBuf) 861 switch { 862 default: 863 goto yyrule37 864 case c == '$' || c == '+' || c == '-' || c == '.' || c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'O' || c >= 'Q' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'o' || c >= 'q' && c <= 'z' || c == '\u0081': 865 goto yystate74 866 case c == 'E' || c == 'P' || c == 'e' || c == 'p': 867 goto yystate75 868 case c == '\\': 869 goto yystate76 870 } 871 872 yystate76: 873 c = s.next() 874 switch { 875 default: 876 goto yyabort 877 case c == 'U': 878 goto yystate77 879 case c == 'u': 880 goto yystate81 881 } 882 883 yystate77: 884 c = s.next() 885 switch { 886 default: 887 goto yyabort 888 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 889 goto yystate78 890 } 891 892 yystate78: 893 c = s.next() 894 switch { 895 default: 896 goto yyabort 897 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 898 goto yystate79 899 } 900 901 yystate79: 902 c = s.next() 903 switch { 904 default: 905 goto yyabort 906 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 907 goto yystate80 908 } 909 910 yystate80: 911 c = s.next() 912 switch { 913 default: 914 goto yyabort 915 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 916 goto yystate81 917 } 918 919 yystate81: 920 c = s.next() 921 switch { 922 default: 923 goto yyabort 924 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 925 goto yystate82 926 } 927 928 yystate82: 929 c = s.next() 930 switch { 931 default: 932 goto yyabort 933 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 934 goto yystate83 935 } 936 937 yystate83: 938 c = s.next() 939 switch { 940 default: 941 goto yyabort 942 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 943 goto yystate84 944 } 945 946 yystate84: 947 c = s.next() 948 switch { 949 default: 950 goto yyabort 951 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 952 goto yystate74 953 } 954 955 yystate85: 956 c = s.next() 957 switch { 958 default: 959 goto yyabort 960 case c == '*': 961 goto yystate4 962 case c == '/': 963 goto yystate86 964 case c == '=': 965 goto yystate87 966 } 967 968 yystate86: 969 c = s.next() 970 yyrule = 1 971 s.mark = len(s.charBuf) 972 switch { 973 default: 974 goto yyrule1 975 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ': 976 goto yystate86 977 } 978 979 yystate87: 980 c = s.next() 981 yyrule = 19 982 s.mark = len(s.charBuf) 983 goto yyrule19 984 985 yystate88: 986 c = s.next() 987 switch { 988 default: 989 goto yyabort 990 case c == '>': 991 goto yystate89 992 } 993 994 yystate89: 995 c = s.next() 996 yyrule = 20 997 s.mark = len(s.charBuf) 998 goto yyrule20 999 1000 yystate90: 1001 c = s.next() 1002 switch { 1003 default: 1004 goto yyabort 1005 case c == '%': 1006 goto yystate91 1007 case c == ':': 1008 goto yystate92 1009 case c == '<': 1010 goto yystate93 1011 case c == '=': 1012 goto yystate95 1013 } 1014 1015 yystate91: 1016 c = s.next() 1017 yyrule = 21 1018 s.mark = len(s.charBuf) 1019 goto yyrule21 1020 1021 yystate92: 1022 c = s.next() 1023 yyrule = 22 1024 s.mark = len(s.charBuf) 1025 goto yyrule22 1026 1027 yystate93: 1028 c = s.next() 1029 yyrule = 23 1030 s.mark = len(s.charBuf) 1031 switch { 1032 default: 1033 goto yyrule23 1034 case c == '=': 1035 goto yystate94 1036 } 1037 1038 yystate94: 1039 c = s.next() 1040 yyrule = 24 1041 s.mark = len(s.charBuf) 1042 goto yyrule24 1043 1044 yystate95: 1045 c = s.next() 1046 yyrule = 25 1047 s.mark = len(s.charBuf) 1048 goto yyrule25 1049 1050 yystate96: 1051 c = s.next() 1052 switch { 1053 default: 1054 goto yyabort 1055 case c == '=': 1056 goto yystate97 1057 } 1058 1059 yystate97: 1060 c = s.next() 1061 yyrule = 26 1062 s.mark = len(s.charBuf) 1063 goto yyrule26 1064 1065 yystate98: 1066 c = s.next() 1067 switch { 1068 default: 1069 goto yyabort 1070 case c == '=': 1071 goto yystate99 1072 case c == '>': 1073 goto yystate100 1074 } 1075 1076 yystate99: 1077 c = s.next() 1078 yyrule = 27 1079 s.mark = len(s.charBuf) 1080 goto yyrule27 1081 1082 yystate100: 1083 c = s.next() 1084 yyrule = 28 1085 s.mark = len(s.charBuf) 1086 switch { 1087 default: 1088 goto yyrule28 1089 case c == '=': 1090 goto yystate101 1091 } 1092 1093 yystate101: 1094 c = s.next() 1095 yyrule = 29 1096 s.mark = len(s.charBuf) 1097 goto yyrule29 1098 1099 yystate102: 1100 c = s.next() 1101 yyrule = 36 1102 s.mark = len(s.charBuf) 1103 switch { 1104 default: 1105 goto yyrule36 1106 case c == '"': 1107 goto yystate103 1108 case c == '$' || c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c == '\u0081': 1109 goto yystate31 1110 case c == '\'': 1111 goto yystate114 1112 case c == '\\': 1113 goto yystate32 1114 } 1115 1116 yystate103: 1117 c = s.next() 1118 switch { 1119 default: 1120 goto yyabort 1121 case c == '"': 1122 goto yystate104 1123 case c == '\\': 1124 goto yystate105 1125 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '!' || c >= '#' && c <= '[' || c >= ']' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ': 1126 goto yystate103 1127 } 1128 1129 yystate104: 1130 c = s.next() 1131 yyrule = 33 1132 s.mark = len(s.charBuf) 1133 goto yyrule33 1134 1135 yystate105: 1136 c = s.next() 1137 switch { 1138 default: 1139 goto yyabort 1140 case c == '"' || c == '\'' || c >= '0' && c <= '7' || c == '?' || c == '\\' || c == 'a' || c == 'b' || c == 'e' || c == 'f' || c == 'n' || c == 'r' || c == 't' || c == 'v': 1141 goto yystate103 1142 case c == 'U': 1143 goto yystate106 1144 case c == 'u': 1145 goto yystate110 1146 case c == 'x': 1147 goto yystate113 1148 } 1149 1150 yystate106: 1151 c = s.next() 1152 switch { 1153 default: 1154 goto yyabort 1155 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 1156 goto yystate107 1157 } 1158 1159 yystate107: 1160 c = s.next() 1161 switch { 1162 default: 1163 goto yyabort 1164 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 1165 goto yystate108 1166 } 1167 1168 yystate108: 1169 c = s.next() 1170 switch { 1171 default: 1172 goto yyabort 1173 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 1174 goto yystate109 1175 } 1176 1177 yystate109: 1178 c = s.next() 1179 switch { 1180 default: 1181 goto yyabort 1182 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 1183 goto yystate110 1184 } 1185 1186 yystate110: 1187 c = s.next() 1188 switch { 1189 default: 1190 goto yyabort 1191 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 1192 goto yystate111 1193 } 1194 1195 yystate111: 1196 c = s.next() 1197 switch { 1198 default: 1199 goto yyabort 1200 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 1201 goto yystate112 1202 } 1203 1204 yystate112: 1205 c = s.next() 1206 switch { 1207 default: 1208 goto yyabort 1209 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 1210 goto yystate113 1211 } 1212 1213 yystate113: 1214 c = s.next() 1215 switch { 1216 default: 1217 goto yyabort 1218 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 1219 goto yystate103 1220 } 1221 1222 yystate114: 1223 c = s.next() 1224 switch { 1225 default: 1226 goto yyabort 1227 case c == '\\': 1228 goto yystate117 1229 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ': 1230 goto yystate115 1231 } 1232 1233 yystate115: 1234 c = s.next() 1235 switch { 1236 default: 1237 goto yyabort 1238 case c == '\'': 1239 goto yystate116 1240 case c == '\\': 1241 goto yystate117 1242 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= '\u007f' || c >= '\u0081' && c <= 'ÿ': 1243 goto yystate115 1244 } 1245 1246 yystate116: 1247 c = s.next() 1248 yyrule = 34 1249 s.mark = len(s.charBuf) 1250 goto yyrule34 1251 1252 yystate117: 1253 c = s.next() 1254 switch { 1255 default: 1256 goto yyabort 1257 case c == '"' || c == '\'' || c >= '0' && c <= '7' || c == '?' || c == '\\' || c == 'a' || c == 'b' || c == 'e' || c == 'f' || c == 'n' || c == 'r' || c == 't' || c == 'v': 1258 goto yystate115 1259 case c == 'U': 1260 goto yystate118 1261 case c == 'u': 1262 goto yystate122 1263 case c == 'x': 1264 goto yystate125 1265 } 1266 1267 yystate118: 1268 c = s.next() 1269 switch { 1270 default: 1271 goto yyabort 1272 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 1273 goto yystate119 1274 } 1275 1276 yystate119: 1277 c = s.next() 1278 switch { 1279 default: 1280 goto yyabort 1281 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 1282 goto yystate120 1283 } 1284 1285 yystate120: 1286 c = s.next() 1287 switch { 1288 default: 1289 goto yyabort 1290 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 1291 goto yystate121 1292 } 1293 1294 yystate121: 1295 c = s.next() 1296 switch { 1297 default: 1298 goto yyabort 1299 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 1300 goto yystate122 1301 } 1302 1303 yystate122: 1304 c = s.next() 1305 switch { 1306 default: 1307 goto yyabort 1308 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 1309 goto yystate123 1310 } 1311 1312 yystate123: 1313 c = s.next() 1314 switch { 1315 default: 1316 goto yyabort 1317 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 1318 goto yystate124 1319 } 1320 1321 yystate124: 1322 c = s.next() 1323 switch { 1324 default: 1325 goto yyabort 1326 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 1327 goto yystate125 1328 } 1329 1330 yystate125: 1331 c = s.next() 1332 switch { 1333 default: 1334 goto yyabort 1335 case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': 1336 goto yystate115 1337 } 1338 1339 yystate126: 1340 c = s.next() 1341 switch { 1342 default: 1343 goto yyabort 1344 case c == '=': 1345 goto yystate127 1346 } 1347 1348 yystate127: 1349 c = s.next() 1350 yyrule = 30 1351 s.mark = len(s.charBuf) 1352 goto yyrule30 1353 1354 yystate128: 1355 c = s.next() 1356 switch { 1357 default: 1358 goto yyabort 1359 case c == '=': 1360 goto yystate129 1361 case c == '|': 1362 goto yystate130 1363 } 1364 1365 yystate129: 1366 c = s.next() 1367 yyrule = 31 1368 s.mark = len(s.charBuf) 1369 goto yyrule31 1370 1371 yystate130: 1372 c = s.next() 1373 yyrule = 32 1374 s.mark = len(s.charBuf) 1375 goto yyrule32 1376 1377 yyrule1: // ({white-space}|{comment})*{line-comment} 1378 yyrule2: // ({white-space}|{comment})+{line-comment}? 1379 { 1380 1381 return ' ' 1382 } 1383 yyrule3: // (({white-space}|{comment})*{comment-not-terminated})+ 1384 { 1385 1386 return s.unterminatedComment() 1387 } 1388 yyrule4: // "!=" 1389 { 1390 return NEQ 1391 } 1392 yyrule5: // "##" 1393 { 1394 return PPPASTE 1395 } 1396 yyrule6: // "%:" 1397 { 1398 return '#' 1399 } 1400 yyrule7: // "%:%:" 1401 { 1402 return PPPASTE 1403 } 1404 yyrule8: // "%=" 1405 { 1406 return MODASSIGN 1407 } 1408 yyrule9: // "%>" 1409 { 1410 return '}' 1411 } 1412 yyrule10: // "&&" 1413 { 1414 return ANDAND 1415 } 1416 yyrule11: // "&=" 1417 { 1418 return ANDASSIGN 1419 } 1420 yyrule12: // "*=" 1421 { 1422 return MULASSIGN 1423 } 1424 yyrule13: // "++" 1425 { 1426 return INC 1427 } 1428 yyrule14: // "+=" 1429 { 1430 return ADDASSIGN 1431 } 1432 yyrule15: // "--" 1433 { 1434 return DEC 1435 } 1436 yyrule16: // "-=" 1437 { 1438 return SUBASSIGN 1439 } 1440 yyrule17: // "->" 1441 { 1442 return ARROW 1443 } 1444 yyrule18: // "..." 1445 { 1446 return DDD 1447 } 1448 yyrule19: // "/=" 1449 { 1450 return DIVASSIGN 1451 } 1452 yyrule20: // ":>" 1453 { 1454 return ']' 1455 } 1456 yyrule21: // "<%" 1457 { 1458 return '{' 1459 } 1460 yyrule22: // "<:" 1461 { 1462 return '[' 1463 } 1464 yyrule23: // "<<" 1465 { 1466 return LSH 1467 } 1468 yyrule24: // "<<=" 1469 { 1470 return LSHASSIGN 1471 } 1472 yyrule25: // "<=" 1473 { 1474 return LEQ 1475 } 1476 yyrule26: // "==" 1477 { 1478 return EQ 1479 } 1480 yyrule27: // ">=" 1481 { 1482 return GEQ 1483 } 1484 yyrule28: // ">>" 1485 { 1486 return RSH 1487 } 1488 yyrule29: // ">>=" 1489 { 1490 return RSHASSIGN 1491 } 1492 yyrule30: // "^=" 1493 { 1494 return XORASSIGN 1495 } 1496 yyrule31: // "|=" 1497 { 1498 return ORASSIGN 1499 } 1500 yyrule32: // "||" 1501 { 1502 return OROR 1503 } 1504 yyrule33: // L{string-literal} 1505 { 1506 return LONGSTRINGLITERAL 1507 } 1508 yyrule34: // L{character-constant} 1509 { 1510 return LONGCHARCONST 1511 } 1512 yyrule35: // {character-constant} 1513 { 1514 return CHARCONST 1515 } 1516 yyrule36: // {identifier} 1517 { 1518 return IDENTIFIER 1519 } 1520 yyrule37: // {pp-number} 1521 { 1522 return PPNUMBER 1523 } 1524 yyrule38: // {string-literal} 1525 { 1526 return STRINGLITERAL 1527 } 1528 yyrule39: // \r?\n 1529 if true { // avoid go vet determining the below panic will not be reached 1530 return '\n' 1531 } 1532 panic("unreachable") 1533 1534 yyabort: // no lexem recognized 1535 // 1536 // silence unused label errors for build and satisfy go vet reachability analysis 1537 // 1538 { 1539 if false { 1540 goto yyabort 1541 } 1542 if false { 1543 goto yystate0 1544 } 1545 if false { 1546 goto yystate1 1547 } 1548 } 1549 1550 if c, ok := s.abort(); ok { 1551 return rune(c) 1552 } 1553 1554 goto yyAction 1555 }