Bump simplecpp
This commit is contained in:
parent
627a5e75cc
commit
c638edc8b4
|
@ -561,7 +561,7 @@ void simplecpp::TokenList::readfile(std::istream &istr, const std::string &filen
|
||||||
portabilityBackslash(outputList, files, location);
|
portabilityBackslash(outputList, files, location);
|
||||||
if (currentToken[currentToken.size() - 1U] == '\\') {
|
if (currentToken[currentToken.size() - 1U] == '\\') {
|
||||||
++multiline;
|
++multiline;
|
||||||
currentToken.pop_back();
|
currentToken.erase(currentToken.size() - 1U);
|
||||||
} else {
|
} else {
|
||||||
ungetChar(istr, bom);
|
ungetChar(istr, bom);
|
||||||
}
|
}
|
||||||
|
@ -606,7 +606,7 @@ void simplecpp::TokenList::readfile(std::istream &istr, const std::string &filen
|
||||||
if (ch == '\"' && !prefix.empty() && *cback()->str().rbegin() == 'R') {
|
if (ch == '\"' && !prefix.empty() && *cback()->str().rbegin() == 'R') {
|
||||||
std::string delim;
|
std::string delim;
|
||||||
currentToken = ch;
|
currentToken = ch;
|
||||||
prefix.pop_back();
|
prefix.resize(prefix.size() - 1);
|
||||||
ch = readChar(istr,bom);
|
ch = readChar(istr,bom);
|
||||||
while (istr.good() && ch != '(' && ch != '\n') {
|
while (istr.good() && ch != '(' && ch != '\n') {
|
||||||
delim += ch;
|
delim += ch;
|
||||||
|
@ -1147,7 +1147,7 @@ std::string simplecpp::TokenList::readUntil(std::istream &istr, const Location &
|
||||||
do {
|
do {
|
||||||
next = readChar(istr, bom);
|
next = readChar(istr, bom);
|
||||||
if (next == '\r' || next == '\n') {
|
if (next == '\r' || next == '\n') {
|
||||||
ret.pop_back();
|
ret.erase(ret.size()-1U);
|
||||||
backslash = (next == '\r');
|
backslash = (next == '\r');
|
||||||
update_ch = false;
|
update_ch = false;
|
||||||
} else if (next == '\\')
|
} else if (next == '\\')
|
||||||
|
@ -1744,7 +1744,18 @@ namespace simplecpp {
|
||||||
defToken = lastToken = tok2;
|
defToken = lastToken = tok2;
|
||||||
}
|
}
|
||||||
if (defToken) {
|
if (defToken) {
|
||||||
const bool def = (macros.find(defToken->str()) != macros.end());
|
std::string macroName = defToken->str();
|
||||||
|
if (defToken->next && defToken->next->op == '#' && defToken->next->next && defToken->next->next->op == '#' && defToken->next->next->next && defToken->next->next->next->name && sameline(defToken,defToken->next->next->next)) {
|
||||||
|
TokenList temp(files);
|
||||||
|
if (expandArg(&temp, defToken, parametertokens))
|
||||||
|
macroName = temp.cback()->str();
|
||||||
|
if (expandArg(&temp, defToken->next->next->next, parametertokens))
|
||||||
|
macroName += temp.cback()->str();
|
||||||
|
else
|
||||||
|
macroName += defToken->next->next->next->str();
|
||||||
|
lastToken = defToken->next->next->next;
|
||||||
|
}
|
||||||
|
const bool def = (macros.find(macroName) != macros.end());
|
||||||
output->push_back(newMacroToken(def ? "1" : "0", loc, true));
|
output->push_back(newMacroToken(def ? "1" : "0", loc, true));
|
||||||
return lastToken->next;
|
return lastToken->next;
|
||||||
}
|
}
|
||||||
|
@ -1880,7 +1891,6 @@ namespace simplecpp {
|
||||||
}
|
}
|
||||||
|
|
||||||
const Token *nextTok = B->next;
|
const Token *nextTok = B->next;
|
||||||
|
|
||||||
if (varargs && tokensB.empty() && tok->previous->str() == ",")
|
if (varargs && tokensB.empty() && tok->previous->str() == ",")
|
||||||
output->deleteToken(A);
|
output->deleteToken(A);
|
||||||
else if (strAB != "," && macros.find(strAB) == macros.end()) {
|
else if (strAB != "," && macros.find(strAB) == macros.end()) {
|
||||||
|
@ -1888,6 +1898,12 @@ namespace simplecpp {
|
||||||
for (Token *b = tokensB.front(); b; b = b->next)
|
for (Token *b = tokensB.front(); b; b = b->next)
|
||||||
b->location = loc;
|
b->location = loc;
|
||||||
output->takeTokens(tokensB);
|
output->takeTokens(tokensB);
|
||||||
|
} else if (nextTok->op == '#' && nextTok->next->op == '#') {
|
||||||
|
TokenList output2(files);
|
||||||
|
output2.push_back(new Token(strAB, tok->location));
|
||||||
|
nextTok = expandHashHash(&output2, loc, nextTok, macros, expandedmacros, parametertokens);
|
||||||
|
output->deleteToken(A);
|
||||||
|
output->takeTokens(output2);
|
||||||
} else {
|
} else {
|
||||||
output->deleteToken(A);
|
output->deleteToken(A);
|
||||||
TokenList tokens(files);
|
TokenList tokens(files);
|
||||||
|
@ -2176,7 +2192,7 @@ namespace simplecpp {
|
||||||
|
|
||||||
// remove trailing dot if path ends with "/."
|
// remove trailing dot if path ends with "/."
|
||||||
if (endsWith(path,"/."))
|
if (endsWith(path,"/."))
|
||||||
path.pop_back();
|
path.erase(path.size()-1);
|
||||||
|
|
||||||
// simplify ".."
|
// simplify ".."
|
||||||
pos = 1; // don't simplify ".." if path starts with that
|
pos = 1; // don't simplify ".." if path starts with that
|
||||||
|
|
Loading…
Reference in New Issue