25 for (
const char c : token)
27 if (c >=
'0' && c <=
'7') val = val * 8 + c -
'0';
35 for (
const char c : token)
37 if (c >=
'0' && c <=
'9') val = val * 10 + c -
'0';
45 for (
const char c : token)
47 if (c >=
'0' && c <=
'9') val = val * 16 + c -
'0';
48 else if (c >=
'a' && c <=
'f') val = val * 16 + c -
'a' + 10;
49 else if (c >=
'A' && c <=
'F') val = val * 16 + c -
'A' + 10;
58 for (
const char c : token)
60 if (c >=
'0' && c <=
'1') val = val * 2 + c -
'0';
67 assert(token.length()>0);
70 assert(token.length()>1);
95 default: printf(
"Invalid escape sequence %s found!\n",std::string(token).c_str());
constexpr CPPValue(char c) noexcept
static CPPValue parseOctal(const std::string &token)
static CPPValue parseDecimal(const std::string &token)
static CPPValue parseHexadecimal(const std::string &token)
static CPPValue parseCharacter(const std::string &token)
static CPPValue parseFloat(const std::string &token)
static CPPValue parseBinary(const std::string &token)