()
| 626 | } |
| 627 | |
| 628 | private String scanIdentifier() { |
| 629 | // Keep consistent with Identifier.isValid. |
| 630 | // TODO(laurentlb): Handle Unicode letters. |
| 631 | int oldPos = pos - 1; |
| 632 | while (pos < buffer.length) { |
| 633 | switch (buffer[pos]) { |
| 634 | case '_': |
| 635 | case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': |
| 636 | case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': |
| 637 | case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': |
| 638 | case 's': case 't': case 'u': case 'v': case 'w': case 'x': |
| 639 | case 'y': case 'z': |
| 640 | case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': |
| 641 | case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': |
| 642 | case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': |
| 643 | case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': |
| 644 | case 'Y': case 'Z': |
| 645 | case '0': case '1': case '2': case '3': case '4': case '5': |
| 646 | case '6': case '7': case '8': case '9': |
| 647 | pos++; |
| 648 | break; |
| 649 | default: |
| 650 | return bufferSlice(oldPos, pos); |
| 651 | } |
| 652 | } |
| 653 | return bufferSlice(oldPos, pos); |
| 654 | } |
| 655 | |
| 656 | /** |
| 657 | * Tokenizes a two-char operator. |
no test coverage detected