bump simplecpp
This commit is contained in:
parent
d488467664
commit
b4fbcb0dc8
|
@ -380,6 +380,11 @@ static void portabilityBackslash(simplecpp::OutputList *outputList, const std::v
|
||||||
outputList->push_back(err);
|
outputList->push_back(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool isRawStringId(const std::string &str)
|
||||||
|
{
|
||||||
|
return str == "R" || str == "uR" || str == "UR" || str == "LR" || str == "u8R";
|
||||||
|
}
|
||||||
|
|
||||||
void simplecpp::TokenList::readfile(std::istream &istr, const std::string &filename, OutputList *outputList)
|
void simplecpp::TokenList::readfile(std::istream &istr, const std::string &filename, OutputList *outputList)
|
||||||
{
|
{
|
||||||
std::stack<simplecpp::Location> loc;
|
std::stack<simplecpp::Location> loc;
|
||||||
|
@ -521,7 +526,7 @@ void simplecpp::TokenList::readfile(std::istream &istr, const std::string &filen
|
||||||
// string / char literal
|
// string / char literal
|
||||||
else if (ch == '\"' || ch == '\'') {
|
else if (ch == '\"' || ch == '\'') {
|
||||||
// C++11 raw string literal
|
// C++11 raw string literal
|
||||||
if (ch == '\"' && cback() && cback()->op == 'R') {
|
if (ch == '\"' && cback() && cback()->name && isRawStringId(cback()->str)) {
|
||||||
std::string delim;
|
std::string delim;
|
||||||
ch = readChar(istr,bom);
|
ch = readChar(istr,bom);
|
||||||
while (istr.good() && ch != '(' && ch != '\n') {
|
while (istr.good() && ch != '(' && ch != '\n') {
|
||||||
|
@ -539,7 +544,12 @@ void simplecpp::TokenList::readfile(std::istream &istr, const std::string &filen
|
||||||
// TODO report
|
// TODO report
|
||||||
return;
|
return;
|
||||||
currentToken.erase(currentToken.size() - endOfRawString.size(), endOfRawString.size() - 1U);
|
currentToken.erase(currentToken.size() - endOfRawString.size(), endOfRawString.size() - 1U);
|
||||||
|
if (cback()->op == 'R')
|
||||||
back()->setstr(escapeString(currentToken));
|
back()->setstr(escapeString(currentToken));
|
||||||
|
else {
|
||||||
|
back()->setstr(cback()->str.substr(0, cback()->str.size() - 1));
|
||||||
|
push_back(new Token(currentToken, location)); // push string without newlines
|
||||||
|
}
|
||||||
location.adjust(currentToken);
|
location.adjust(currentToken);
|
||||||
if (currentToken.find_first_of("\r\n") == std::string::npos)
|
if (currentToken.find_first_of("\r\n") == std::string::npos)
|
||||||
location.col += 2 + 2 * delim.size();
|
location.col += 2 + 2 * delim.size();
|
||||||
|
|
Loading…
Reference in New Issue