bump simplecpp (handling #define with multiline comments)

This commit is contained in:
Daniel Marjamäki 2016-08-06 11:38:20 +02:00
parent cdfe92b753
commit f69f7190a0
1 changed files with 12 additions and 0 deletions

View File

@ -81,6 +81,10 @@ unsigned long long stringToULL(const std::string &s)
return ret;
}
bool startsWith(const std::string &str, const std::string &s) {
return (str.size() >= s.size() && str.compare(0, s.size(), s) == 0);
}
bool endsWith(const std::string &s, const std::string &e) {
return (s.size() >= e.size() && s.compare(s.size() - e.size(), e.size(), e) == 0);
}
@ -400,11 +404,19 @@ void simplecpp::TokenList::readfile(std::istream &istr, const std::string &filen
ch = readChar(istr,bom);
}
// multiline..
std::string::size_type pos = 0;
while ((pos = currentToken.find("\\\n",pos)) != std::string::npos) {
currentToken.erase(pos,2);
++multiline;
}
if (multiline || startsWith(lastLine(10),"# ")) {
pos = 0;
while ((pos = currentToken.find("\n",pos)) != std::string::npos) {
currentToken.erase(pos,1);
++multiline;
}
}
}
// string / char literal