work save
This commit is contained in:
parent
3c3b606cc5
commit
562f599c4f
|
@ -3,7 +3,23 @@
|
|||
|
||||
CppPreprocessor::CppPreprocessor(QObject *parent) : QObject(parent)
|
||||
{
|
||||
|
||||
mOperators.append("*");
|
||||
mOperators.append("/");
|
||||
mOperators.append("+");
|
||||
mOperators.append("-");
|
||||
mOperators.append("<");
|
||||
mOperators.append("<=");
|
||||
mOperators.append(">");
|
||||
mOperators.append(">=");
|
||||
mOperators.append("==");
|
||||
mOperators.append("!=");
|
||||
mOperators.append("&");
|
||||
mOperators.append("^");
|
||||
mOperators.append("|");
|
||||
mOperators.append("&&");
|
||||
mOperators.append("||");
|
||||
mOperators.append("and");
|
||||
mOperators.append("or");
|
||||
}
|
||||
|
||||
QString CppPreprocessor::getNextPreprocessor()
|
||||
|
@ -302,6 +318,42 @@ bool CppPreprocessor::isIdentChar(const QChar &ch)
|
|||
return false;
|
||||
}
|
||||
|
||||
bool CppPreprocessor::isLineChar(const QChar &ch)
|
||||
{
|
||||
return ch=='\r' || ch == '\n';
|
||||
}
|
||||
|
||||
bool CppPreprocessor::isSpaceChar(const QChar &ch)
|
||||
{
|
||||
return ch == ' ' || ch == '\t';
|
||||
}
|
||||
|
||||
bool CppPreprocessor::isOperatorChar(const QChar &ch)
|
||||
{
|
||||
|
||||
switch(ch.unicode()) {
|
||||
case '+':
|
||||
case '-':
|
||||
case '*':
|
||||
case '/':
|
||||
case '!':
|
||||
case '=':
|
||||
case '<':
|
||||
case '>':
|
||||
case '&':
|
||||
case '|':
|
||||
case '^':
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool CppPreprocessor::isMacroIdentChar(const QChar &ch)
|
||||
{
|
||||
return (ch>='A' && ch<='Z') || (ch>='a' && ch<='z') || ch == '_';
|
||||
}
|
||||
|
||||
QString CppPreprocessor::lineBreak()
|
||||
{
|
||||
return "\n";
|
||||
|
|
|
@ -76,6 +76,23 @@ private:
|
|||
* 'A'..'Z', '0'..'9', 'a'..'z', '_', '*', '&', '~'
|
||||
*/
|
||||
bool isIdentChar(const QChar& ch);
|
||||
/*
|
||||
* '\r','\n'
|
||||
*/
|
||||
bool isLineChar(const QChar& ch);
|
||||
/*
|
||||
* '\t' ' '
|
||||
*/
|
||||
bool isSpaceChar(const QChar& ch);
|
||||
/*
|
||||
* '+', '-', '*', '/', '!', '=', '<', '>', '&', '|', '^'
|
||||
*/
|
||||
bool isOperatorChar(const QChar& ch);
|
||||
|
||||
/*
|
||||
* 'A'..'Z', 'a'..'z', '_'
|
||||
*/
|
||||
bool isMacroIdentChar(const QChar& ch);
|
||||
|
||||
QString lineBreak();
|
||||
|
||||
|
@ -100,6 +117,8 @@ private:
|
|||
bool mParseLocal;
|
||||
QSet<QString> mScannedFiles;
|
||||
QSet<QString> mProcessed; // dictionary to save filename already processed
|
||||
|
||||
QStringList mOperators;
|
||||
};
|
||||
|
||||
#endif // CPPPREPROCESSOR_H
|
||||
|
|
Loading…
Reference in New Issue