bump simplecpp
This commit is contained in:
parent
63aa2fbed0
commit
30354ee026
|
@ -96,7 +96,7 @@ void simplecpp::Location::adjust(const std::string &str) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (unsigned int i = 0U; i < str.size(); ++i) {
|
for (std::size_t i = 0U; i < str.size(); ++i) {
|
||||||
col++;
|
col++;
|
||||||
if (str[i] == '\n' || str[i] == '\r') {
|
if (str[i] == '\n' || str[i] == '\r') {
|
||||||
col = 0;
|
col = 0;
|
||||||
|
@ -288,6 +288,10 @@ static unsigned short getAndSkipBOM(std::istream &istr) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool isNameChar(unsigned char ch) {
|
||||||
|
return std::isalnum(ch) || ch == '_' || ch == '$';
|
||||||
|
}
|
||||||
|
|
||||||
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;
|
||||||
|
@ -344,8 +348,8 @@ void simplecpp::TokenList::readfile(std::istream &istr, const std::string &filen
|
||||||
TokenString currentToken;
|
TokenString currentToken;
|
||||||
|
|
||||||
// number or name
|
// number or name
|
||||||
if (std::isalnum(ch) || ch == '_') {
|
if (isNameChar(ch)) {
|
||||||
while (istr.good() && (std::isalnum(ch) || ch == '_')) {
|
while (istr.good() && isNameChar(ch)) {
|
||||||
currentToken += ch;
|
currentToken += ch;
|
||||||
ch = readChar(istr,bom);
|
ch = readChar(istr,bom);
|
||||||
}
|
}
|
||||||
|
@ -1440,7 +1444,7 @@ bool hasFile(const std::map<std::string, simplecpp::TokenList *> &filedata, cons
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::map<std::string, simplecpp::TokenList*> simplecpp::load(const simplecpp::TokenList &rawtokens, std::vector<std::string> &fileNumbers, const struct simplecpp::DUI &dui, simplecpp::OutputList *outputList)
|
std::map<std::string, simplecpp::TokenList*> simplecpp::load(const simplecpp::TokenList &rawtokens, std::vector<std::string> &fileNumbers, const simplecpp::DUI &dui, simplecpp::OutputList *outputList)
|
||||||
{
|
{
|
||||||
std::map<std::string, simplecpp::TokenList*> ret;
|
std::map<std::string, simplecpp::TokenList*> ret;
|
||||||
|
|
||||||
|
@ -1487,7 +1491,7 @@ std::map<std::string, simplecpp::TokenList*> simplecpp::load(const simplecpp::To
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void simplecpp::preprocess(simplecpp::TokenList &output, const simplecpp::TokenList &rawtokens, std::vector<std::string> &files, const std::map<std::string, simplecpp::TokenList *> &filedata, const struct simplecpp::DUI &dui, simplecpp::OutputList *outputList, std::list<struct simplecpp::MacroUsage> *macroUsage)
|
void simplecpp::preprocess(simplecpp::TokenList &output, const simplecpp::TokenList &rawtokens, std::vector<std::string> &files, const std::map<std::string, simplecpp::TokenList *> &filedata, const simplecpp::DUI &dui, simplecpp::OutputList *outputList, std::list<simplecpp::MacroUsage> *macroUsage)
|
||||||
{
|
{
|
||||||
std::map<std::string, std::size_t> sizeOfType(rawtokens.sizeOfType);
|
std::map<std::string, std::size_t> sizeOfType(rawtokens.sizeOfType);
|
||||||
sizeOfType.insert(std::pair<std::string, std::size_t>(std::string("char"), sizeof(char)));
|
sizeOfType.insert(std::pair<std::string, std::size_t>(std::string("char"), sizeof(char)));
|
||||||
|
@ -1562,7 +1566,7 @@ void simplecpp::preprocess(simplecpp::TokenList &output, const simplecpp::TokenL
|
||||||
err.type = rawtok->str == ERROR ? Output::ERROR : Output::WARNING;
|
err.type = rawtok->str == ERROR ? Output::ERROR : Output::WARNING;
|
||||||
err.location = rawtok->location;
|
err.location = rawtok->location;
|
||||||
for (const Token *tok = rawtok->next; tok && sameline(rawtok,tok); tok = tok->next) {
|
for (const Token *tok = rawtok->next; tok && sameline(rawtok,tok); tok = tok->next) {
|
||||||
if (!err.msg.empty() && std::isalnum((unsigned char)tok->str[0]))
|
if (!err.msg.empty() && isNameChar(tok->str[0]))
|
||||||
err.msg += ' ';
|
err.msg += ' ';
|
||||||
err.msg += tok->str;
|
err.msg += tok->str;
|
||||||
}
|
}
|
||||||
|
@ -1765,7 +1769,7 @@ void simplecpp::preprocess(simplecpp::TokenList &output, const simplecpp::TokenL
|
||||||
const Macro ¯o = macroIt->second;
|
const Macro ¯o = macroIt->second;
|
||||||
const std::list<Location> &usage = macro.usage();
|
const std::list<Location> &usage = macro.usage();
|
||||||
for (std::list<Location>::const_iterator usageIt = usage.begin(); usageIt != usage.end(); ++usageIt) {
|
for (std::list<Location>::const_iterator usageIt = usage.begin(); usageIt != usage.end(); ++usageIt) {
|
||||||
struct MacroUsage mu(usageIt->files);
|
MacroUsage mu(usageIt->files);
|
||||||
mu.macroName = macro.name();
|
mu.macroName = macro.name();
|
||||||
mu.macroLocation = macro.defineLocation();
|
mu.macroLocation = macro.defineLocation();
|
||||||
mu.useLocation = *usageIt;
|
mu.useLocation = *usageIt;
|
||||||
|
|
|
@ -105,9 +105,9 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void flags() {
|
void flags() {
|
||||||
name = (str[0] == '_' || std::isalpha(str[0]));
|
name = (std::isalpha((unsigned char)str[0]) || str[0] == '_' || str[0] == '$');
|
||||||
comment = (str.compare(0, 2, "//") == 0 || str.compare(0, 2, "/*") == 0);
|
comment = (str.compare(0, 2, "//") == 0 || str.compare(0, 2, "/*") == 0);
|
||||||
number = std::isdigit(str[0]) || (str.size() > 1U && str[0] == '-' && std::isdigit(str[1]));
|
number = std::isdigit((unsigned char)str[0]) || (str.size() > 1U && str[0] == '-' && std::isdigit((unsigned char)str[1]));
|
||||||
op = (str.size() == 1U) ? str[0] : '\0';
|
op = (str.size() == 1U) ? str[0] : '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -120,9 +120,9 @@ public:
|
||||||
bool startsWithOneOf(const char c[]) const;
|
bool startsWithOneOf(const char c[]) const;
|
||||||
bool endsWithOneOf(const char c[]) const;
|
bool endsWithOneOf(const char c[]) const;
|
||||||
|
|
||||||
char op;
|
|
||||||
const TokenString &str;
|
const TokenString &str;
|
||||||
TokenString macro;
|
TokenString macro;
|
||||||
|
char op;
|
||||||
bool comment;
|
bool comment;
|
||||||
bool name;
|
bool name;
|
||||||
bool number;
|
bool number;
|
||||||
|
@ -162,7 +162,7 @@ struct SIMPLECPP_LIB Output {
|
||||||
std::string msg;
|
std::string msg;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef std::list<struct Output> OutputList;
|
typedef std::list<Output> OutputList;
|
||||||
|
|
||||||
/** List of tokens. */
|
/** List of tokens. */
|
||||||
class SIMPLECPP_LIB TokenList {
|
class SIMPLECPP_LIB TokenList {
|
||||||
|
@ -271,7 +271,7 @@ struct SIMPLECPP_LIB DUI {
|
||||||
std::list<std::string> includePaths;
|
std::list<std::string> includePaths;
|
||||||
};
|
};
|
||||||
|
|
||||||
SIMPLECPP_LIB std::map<std::string, TokenList*> load(const TokenList &rawtokens, std::vector<std::string> &filenames, const struct DUI &dui, OutputList *outputList = 0);
|
SIMPLECPP_LIB std::map<std::string, TokenList*> load(const TokenList &rawtokens, std::vector<std::string> &filenames, const DUI &dui, OutputList *outputList = 0);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Preprocess
|
* Preprocess
|
||||||
|
@ -287,7 +287,7 @@ SIMPLECPP_LIB std::map<std::string, TokenList*> load(const TokenList &rawtokens,
|
||||||
*
|
*
|
||||||
* @todo simplify interface
|
* @todo simplify interface
|
||||||
*/
|
*/
|
||||||
SIMPLECPP_LIB void preprocess(TokenList &output, const TokenList &rawtokens, std::vector<std::string> &files, const std::map<std::string, TokenList*> &filedata, const struct DUI &dui, OutputList *outputList = 0, std::list<struct MacroUsage> *macroUsage = 0);
|
SIMPLECPP_LIB void preprocess(TokenList &output, const TokenList &rawtokens, std::vector<std::string> &files, const std::map<std::string, TokenList*> &filedata, const DUI &dui, OutputList *outputList = 0, std::list<MacroUsage> *macroUsage = 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue