Searched refs:ThisTokBegin (Results 1 - 3 of 3) sorted by relevance
/external/clang/lib/Lex/ |
H A D | LiteralSupport.cpp | 77 static unsigned ProcessCharEscape(const char *ThisTokBegin, argument 105 Diag(Diags, Features, Loc, ThisTokBegin, EscapeBegin, ThisTokBuf, 111 Diag(Diags, Features, Loc, ThisTokBegin, EscapeBegin, ThisTokBuf, 134 Diag(Diags, Features, Loc, ThisTokBegin, EscapeBegin, ThisTokBuf, 159 Diag(Diags, Features, Loc, ThisTokBegin, EscapeBegin, ThisTokBuf, 182 Diag(Diags, Features, Loc, ThisTokBegin, EscapeBegin, ThisTokBuf, 193 Diag(Diags, Features, Loc, ThisTokBegin, EscapeBegin, ThisTokBuf, 202 Diag(Diags, Features, Loc, ThisTokBegin, EscapeBegin, ThisTokBuf, 206 Diag(Diags, Features, Loc, ThisTokBegin, EscapeBegin, ThisTokBuf, 259 static bool ProcessUCNEscape(const char *ThisTokBegin, cons argument 331 MeasureUCNEscape(const char *ThisTokBegin, const char *&ThisTokBuf, const char *ThisTokEnd, unsigned CharByteWidth, const LangOptions &Features, bool &HadError) argument 366 EncodeUCNEscape(const char *ThisTokBegin, const char *&ThisTokBuf, const char *ThisTokEnd, char *&ResultBuf, bool &HadError, FullSourceLoc Loc, unsigned CharByteWidth, DiagnosticsEngine *Diags, const LangOptions &Features) argument 946 assert(C < radix && �); CharVal = C; OldVal = Val; Val *= RadixVal; OverflowOccurred |= Val.udiv(RadixVal) != OldVal; Val += CharVal; OverflowOccurred |= Val.ult(CharVal); } return OverflowOccurred; } llvm::APFloat::opStatus NumericLiteralParser::GetFloatValue(llvm::APFloat &Result) { using llvm::APFloat; unsigned n = std::min(SuffixBegin - ThisTokBegin, ThisTokEnd - ThisTokBegin); llvm::SmallString<16> Buffer; StringRef Str(ThisTokBegin, n); if (Str.find(�) != StringRef::npos) { Buffer.reserve(n); std::remove_copy_if(Str.begin(), Str.end(), std::back_inserter(Buffer), &isDigitSeparator); Str = Buffer; } return Result.convertFromString(Str, APFloat::rmNearestTiesToEven); } CharLiteralParser::CharLiteralParser(const char *begin, const char *end, SourceLocation Loc, Preprocessor &PP, tok::TokenKind kind) { HadError = false; Kind = kind; const char *TokBegin = begin; if (Kind != tok::char_constant) { ++begin; } assert(begin[0] == � && �); ++begin; if (end[-1] != �) { const char *UDSuffixEnd = end; do { --end; } while (end[-1] != �); expandUCNs(UDSuffixBuf, StringRef(end, UDSuffixEnd - end)); UDSuffixOffset = end - TokBegin; } assert(end != begin && �); --end; assert(PP.getTargetInfo().getCharWidth() == 8 && �); assert(PP.getTargetInfo().getIntWidth() <= 64 && (PP.getTargetInfo().getIntWidth() & 7) == 0 && �); assert(PP.getTargetInfo().getWCharWidth() <= 64 && �); SmallVector<uint32_t, 4> codepoint_buffer; codepoint_buffer.resize(end - begin); uint32_t *buffer_begin = &codepoint_buffer.front(); uint32_t *buffer_end = buffer_begin + codepoint_buffer.size(); uint32_t largest_character_for_kind; if (tok::wide_char_constant == Kind) { largest_character_for_kind = 0xFFFFFFFFu >> (32-PP.getTargetInfo().getWCharWidth()); } else if (tok::utf16_char_constant == Kind) { largest_character_for_kind = 0xFFFF; } else if (tok::utf32_char_constant == Kind) { largest_character_for_kind = 0x10FFFF; } else { largest_character_for_kind = 0x7Fu; } while (begin != end) { if (begin[0] != �) { char const *start = begin; do { ++begin; } while (begin != end && *begin != �); char const *tmp_in_start = start; uint32_t *tmp_out_start = buffer_begin; ConversionResult res = ConvertUTF8toUTF32(reinterpret_cast<UTF8 const **>(&start), reinterpret_cast<UTF8 const *>(begin), &buffer_begin, buffer_end, strictConversion); if (res != conversionOK) { bool NoErrorOnBadEncoding = isAscii(); unsigned Msg = diag::err_bad_character_encoding; if (NoErrorOnBadEncoding) Msg = diag::warn_bad_character_encoding; PP.Diag(Loc, Msg); if (NoErrorOnBadEncoding) { start = tmp_in_start; buffer_begin = tmp_out_start; for (; start != begin; ++start, ++buffer_begin) *buffer_begin = static_cast<uint8_t>(*start); } else { HadError = true; } } else { for (; tmp_out_start < buffer_begin; ++tmp_out_start) { if (*tmp_out_start > largest_character_for_kind) { HadError = true; PP.Diag(Loc, diag::err_character_too_large); } } } continue; } if (begin[1] == � || begin[1] == �) { unsigned short UcnLen = 0; if (!ProcessUCNEscape(TokBegin, begin, end, *buffer_begin, UcnLen, FullSourceLoc(Loc, PP.getSourceManager()), &PP.getDiagnostics(), PP.getLangOpts(), true)) { HadError = true; } else if (*buffer_begin > largest_character_for_kind) argument [all...] |
/external/clang/include/clang/Lex/ |
H A D | LiteralSupport.h | 45 const char *const ThisTokBegin; member in class:clang::NumericLiteralParser 84 return SuffixBegin - ThisTokBegin;
|
/external/clang/lib/Parse/ |
H A D | ParseDecl.cpp | 656 const char *ThisTokBegin = &Buffer[0]; local 660 unsigned ActualLength = PP.getSpelling(Tok, ThisTokBegin, &Invalid); 667 while (AfterMajor < ActualLength && isDigit(ThisTokBegin[AfterMajor])) { 668 Major = Major * 10 + ThisTokBegin[AfterMajor] - '0'; 691 if (ThisTokBegin[AfterMajor] != '.' || (AfterMajor + 1 == ActualLength)) { 701 while (AfterMinor < ActualLength && isDigit(ThisTokBegin[AfterMinor])) { 702 Minor = Minor * 10 + ThisTokBegin[AfterMinor] - '0'; 719 if (ThisTokBegin[AfterMinor] != '.') { 729 while (AfterSubminor < ActualLength && isDigit(ThisTokBegin[AfterSubminor])) { 730 Subminor = Subminor * 10 + ThisTokBegin[AfterSubmino [all...] |
Completed in 334 milliseconds