reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
536 s = DigitsBegin = ThisTokBegin; 554 if (*s == '0') { // parse radix 560 s = SkipDigits(s); 560 s = SkipDigits(s); 561 if (s == ThisTokEnd) { 570 SuffixBegin = s; 571 checkSeparator(TokLoc, s, CSK_AfterDigits); 575 for (const char *c = s; c != ThisTokEnd; ++c) { 589 for (; s != ThisTokEnd; ++s) { 589 for (; s != ThisTokEnd; ++s) { 590 switch (*s) { 623 s + 2 < ThisTokEnd && s[1] == '1' && s[2] == '6') { 623 s + 2 < ThisTokEnd && s[1] == '1' && s[2] == '6') { 623 s + 2 < ThisTokEnd && s[1] == '1' && s[2] == '6') { 624 s += 2; // success, eat up 2 characters. 650 if (s[1] == s[0]) { 650 if (s[1] == s[0]) { 651 assert(s + 1 < ThisTokEnd && "didn't maximally munch?"); 654 ++s; // Eat both of them. 667 switch (s[1]) { 669 s += 2; // i8 suffix 673 if (s[2] == '6') { 674 s += 3; // i16 suffix 679 if (s[2] == '2') { 680 s += 3; // i32 suffix 685 if (s[2] == '4') { 686 s += 3; // i64 suffix 695 assert(s <= ThisTokEnd && "didn't maximally munch?"); 711 if (s != ThisTokEnd || isImaginary) { 735 if (s != ThisTokEnd) { 757 if (isHexDigit(*s) && *s != 'e' && *s != 'E' && 757 if (isHexDigit(*s) && *s != 'e' && *s != 'E' && 757 if (isHexDigit(*s) && *s != 'e' && *s != 'E' && 758 !isValidUDSuffix(PP.getLangOpts(), StringRef(s, ThisTokEnd - s))) { 758 !isValidUDSuffix(PP.getLangOpts(), StringRef(s, ThisTokEnd - s))) { 759 PP.Diag(PP.AdvanceToTokenCharacter(TokLoc, s-ThisTokBegin), 760 diag::err_invalid_digit) << StringRef(s, 1) << (radix == 8 ? 1 : 0); 765 if (*s == '.') { 766 checkSeparator(TokLoc, s, CSK_AfterDigits); 767 s++; 770 checkSeparator(TokLoc, s, CSK_BeforeDigits); 771 s = SkipDigits(s); // Skip suffix. 771 s = SkipDigits(s); // Skip suffix. 773 if (*s == 'e' || *s == 'E') { // exponent 773 if (*s == 'e' || *s == 'E') { // exponent 774 checkSeparator(TokLoc, s, CSK_AfterDigits); 775 const char *Exponent = s; 776 s++; 779 if (s != ThisTokEnd && (*s == '+' || *s == '-')) s++; // sign 779 if (s != ThisTokEnd && (*s == '+' || *s == '-')) s++; // sign 779 if (s != ThisTokEnd && (*s == '+' || *s == '-')) s++; // sign 779 if (s != ThisTokEnd && (*s == '+' || *s == '-')) s++; // sign 780 const char *first_non_digit = SkipDigits(s); 781 if (containsDigits(s, first_non_digit)) { 782 checkSeparator(TokLoc, s, CSK_BeforeDigits); 783 s = first_non_digit; 846 assert(s[0] == '0' && "Invalid method call"); 847 s++; 849 int c1 = s[0]; 852 if ((c1 == 'x' || c1 == 'X') && (isHexDigit(s[1]) || s[1] == '.')) { 852 if ((c1 == 'x' || c1 == 'X') && (isHexDigit(s[1]) || s[1] == '.')) { 853 s++; 854 assert(s < ThisTokEnd && "didn't maximally munch?"); 856 DigitsBegin = s; 857 s = SkipHexDigits(s); 857 s = SkipHexDigits(s); 858 bool HasSignificandDigits = containsDigits(DigitsBegin, s); 859 if (s == ThisTokEnd) { 861 } else if (*s == '.') { 862 s++; 864 const char *floatDigitsBegin = s; 865 s = SkipHexDigits(s); 865 s = SkipHexDigits(s); 866 if (containsDigits(floatDigitsBegin, s)) 873 PP.Diag(PP.AdvanceToTokenCharacter(TokLoc, s - ThisTokBegin), 882 if (*s == 'p' || *s == 'P') { 882 if (*s == 'p' || *s == 'P') { 883 checkSeparator(TokLoc, s, CSK_AfterDigits); 884 const char *Exponent = s; 885 s++; 887 if (s != ThisTokEnd && (*s == '+' || *s == '-')) s++; // sign 887 if (s != ThisTokEnd && (*s == '+' || *s == '-')) s++; // sign 887 if (s != ThisTokEnd && (*s == '+' || *s == '-')) s++; // sign 887 if (s != ThisTokEnd && (*s == '+' || *s == '-')) s++; // sign 888 const char *first_non_digit = SkipDigits(s); 889 if (!containsDigits(s, first_non_digit)) { 897 checkSeparator(TokLoc, s, CSK_BeforeDigits); 898 s = first_non_digit; 907 PP.Diag(PP.AdvanceToTokenCharacter(TokLoc, s - ThisTokBegin), 916 if ((c1 == 'b' || c1 == 'B') && (s[1] == '0' || s[1] == '1')) { 916 if ((c1 == 'b' || c1 == 'B') && (s[1] == '0' || s[1] == '1')) { 924 ++s; 925 assert(s < ThisTokEnd && "didn't maximally munch?"); 927 DigitsBegin = s; 928 s = SkipBinaryDigits(s); 928 s = SkipBinaryDigits(s); 929 if (s == ThisTokEnd) { 931 } else if (isHexDigit(*s) && 933 StringRef(s, ThisTokEnd - s))) { 933 StringRef(s, ThisTokEnd - s))) { 934 PP.Diag(PP.AdvanceToTokenCharacter(TokLoc, s-ThisTokBegin), 935 diag::err_invalid_digit) << StringRef(s, 1) << 2; 946 DigitsBegin = s; 947 s = SkipOctalDigits(s); 947 s = SkipOctalDigits(s); 948 if (s == ThisTokEnd) 953 if (isDigit(*s)) { 954 const char *EndDecimal = SkipDigits(s); 956 s = EndDecimal;