Searched defs:ThisTokBegin (Results 1 - 4 of 4) sorted by relevance

/external/clang/include/clang/Lex/
H A DLiteralSupport.h41 const char *const ThisTokBegin; member in class:clang::NumericLiteralParser
77 return SuffixBegin - ThisTokBegin;
/external/clang/lib/Lex/
H A DLiteralSupport.cpp73 static unsigned ProcessCharEscape(const char *ThisTokBegin, argument
101 Diag(Diags, Features, Loc, ThisTokBegin, EscapeBegin, ThisTokBuf,
107 Diag(Diags, Features, Loc, ThisTokBegin, EscapeBegin, ThisTokBuf,
130 Diag(Diags, Features, Loc, ThisTokBegin, EscapeBegin, ThisTokBuf,
155 Diag(Diags, Features, Loc, ThisTokBegin, EscapeBegin, ThisTokBuf,
178 Diag(Diags, Features, Loc, ThisTokBegin, EscapeBegin, ThisTokBuf,
189 Diag(Diags, Features, Loc, ThisTokBegin, EscapeBegin, ThisTokBuf,
198 Diag(Diags, Features, Loc, ThisTokBegin, EscapeBegin, ThisTokBuf,
202 Diag(Diags, Features, Loc, ThisTokBegin, EscapeBegin, ThisTokBuf,
213 static bool ProcessUCNEscape(const char *ThisTokBegin, cons argument
285 MeasureUCNEscape(const char *ThisTokBegin, const char *&ThisTokBuf, const char *ThisTokEnd, unsigned CharByteWidth, const LangOptions &Features, bool &HadError) argument
320 EncodeUCNEscape(const char *ThisTokBegin, const char *&ThisTokBuf, const char *ThisTokEnd, char *&ResultBuf, bool &HadError, FullSourceLoc Loc, unsigned CharByteWidth, DiagnosticsEngine *Diags, const LangOptions &Features) argument
792 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); return Result.convertFromString(StringRef(ThisTokBegin, n), 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] != Ã); UDSuffixBuf.assign(end, UDSuffixEnd); 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/lib/Parse/
H A DParseDecl.cpp554 const char *ThisTokBegin = &Buffer[0]; local
558 unsigned ActualLength = PP.getSpelling(Tok, ThisTokBegin, &Invalid);
565 while (AfterMajor < ActualLength && isdigit(ThisTokBegin[AfterMajor])) {
566 Major = Major * 10 + ThisTokBegin[AfterMajor] - '0';
588 if (ThisTokBegin[AfterMajor] != '.' || (AfterMajor + 1 == ActualLength)) {
597 while (AfterMinor < ActualLength && isdigit(ThisTokBegin[AfterMinor])) {
598 Minor = Minor * 10 + ThisTokBegin[AfterMinor] - '0';
615 if (ThisTokBegin[AfterMinor] != '.') {
624 while (AfterSubminor < ActualLength && isdigit(ThisTokBegin[AfterSubminor])) {
625 Subminor = Subminor * 10 + ThisTokBegin[AfterSubmino
[all...]
/external/clang/lib/Sema/
H A DSemaExpr.cpp2636 const char *ThisTokBegin = &IntegerBuffer[0]; local
2640 unsigned ActualLength = PP.getSpelling(Tok, ThisTokBegin, &Invalid);
2644 NumericLiteralParser Literal(ThisTokBegin, ThisTokBegin+ActualLength,
2711 Context, StringRef(ThisTokBegin, Length), StringLiteral::Ascii,
2727 Value = ThisTokBegin[I];

Completed in 105 milliseconds