summaryrefslogtreecommitdiffstats
path: root/qmake
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>2015-02-19 20:53:53 +0100
committerOswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>2015-02-25 13:54:48 +0000
commitd800ac64d35bc4b35f87be3c93cb68776f0ee69e (patch)
tree2fccf139c443e90c3f43bda7a15287abff2bc13d /qmake
parent704aec46230bf7ce29927bae03902e86454aecec (diff)
move parseError() call into bogusTest()
they come always in pairs (with one exception). Change-Id: Ia2f69a8776bd7146ff2fb18d13cc6bb5b2c71139 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Diffstat (limited to 'qmake')
-rw-r--r--qmake/library/qmakeparser.cpp36
-rw-r--r--qmake/library/qmakeparser.h2
2 files changed, 15 insertions, 23 deletions
diff --git a/qmake/library/qmakeparser.cpp b/qmake/library/qmakeparser.cpp
index 406dcce11d..96698d4845 100644
--- a/qmake/library/qmakeparser.cpp
+++ b/qmake/library/qmakeparser.cpp
@@ -804,7 +804,7 @@ void QMakeParser::read(ProFile *pro, const QString &in, int line, SubGrammar gra
} else if (context == CtxPureValue) {
putTok(tokPtr, TokValueTerminator);
} else {
- bogusTest(tokPtr);
+ bogusTest(tokPtr, QString());
}
} else if (context == CtxValue) {
FLUSH_VALUE_LIST();
@@ -924,8 +924,10 @@ void QMakeParser::finalizeTest(ushort *&tokPtr)
m_canElse = true;
}
-void QMakeParser::bogusTest(ushort *&tokPtr)
+void QMakeParser::bogusTest(ushort *&tokPtr, const QString &msg)
{
+ if (!msg.isEmpty())
+ parseError(msg);
flushScopes(tokPtr);
m_operator = NoOperator;
m_invert = false;
@@ -936,10 +938,8 @@ void QMakeParser::bogusTest(ushort *&tokPtr)
void QMakeParser::finalizeCond(ushort *&tokPtr, ushort *uc, ushort *ptr, int wordCount)
{
if (wordCount != 1) {
- if (wordCount) {
- parseError(fL1S("Extra characters after test expression."));
- bogusTest(tokPtr);
- }
+ if (wordCount)
+ bogusTest(tokPtr, fL1S("Extra characters after test expression."));
return;
}
@@ -1000,8 +1000,7 @@ void QMakeParser::finalizeCall(ushort *&tokPtr, ushort *uc, ushort *ptr, int arg
if (m_tmp == statics.strfor) {
if (m_invert || m_operator == OrOperator) {
// '|' could actually work reasonably, but qmake does nonsense here.
- parseError(fL1S("Unexpected operator in front of for()."));
- bogusTest(tokPtr);
+ bogusTest(tokPtr, fL1S("Unexpected operator in front of for()."));
return;
}
flushCond(tokPtr);
@@ -1052,8 +1051,7 @@ void QMakeParser::finalizeCall(ushort *&tokPtr, ushort *uc, ushort *ptr, int arg
defType = TokTestDef;
deffunc:
if (m_invert) {
- parseError(fL1S("Unexpected operator in front of function definition."));
- bogusTest(tokPtr);
+ bogusTest(tokPtr, fL1S("Unexpected operator in front of function definition."));
return;
}
flushScopes(tokPtr);
@@ -1077,14 +1075,12 @@ void QMakeParser::finalizeCall(ushort *&tokPtr, ushort *uc, ushort *ptr, int arg
} else if (m_tmp == statics.strreturn) {
if (m_blockstack.top().nest & NestFunction) {
if (argc > 1) {
- parseError(fL1S("return() requires zero or one argument."));
- bogusTest(tokPtr);
+ bogusTest(tokPtr, fL1S("return() requires zero or one argument."));
return;
}
} else {
if (*uce != TokFuncTerminator) {
- parseError(fL1S("Top-level return() requires zero arguments."));
- bogusTest(tokPtr);
+ bogusTest(tokPtr, fL1S("Top-level return() requires zero arguments."));
return;
}
}
@@ -1097,19 +1093,16 @@ void QMakeParser::finalizeCall(ushort *&tokPtr, ushort *uc, ushort *ptr, int arg
defType = TokBreak;
ctrlstm:
if (*uce != TokFuncTerminator) {
- parseError(fL1S("%1() requires zero arguments.").arg(m_tmp));
- bogusTest(tokPtr);
+ bogusTest(tokPtr, fL1S("%1() requires zero arguments.").arg(m_tmp));
return;
}
if (!(m_blockstack.top().nest & NestLoop)) {
- parseError(fL1S("Unexpected %1().").arg(m_tmp));
- bogusTest(tokPtr);
+ bogusTest(tokPtr, fL1S("Unexpected %1().").arg(m_tmp));
return;
}
ctrlstm2:
if (m_invert) {
- parseError(fL1S("Unexpected NOT operator in front of %1().").arg(m_tmp));
- bogusTest(tokPtr);
+ bogusTest(tokPtr, fL1S("Unexpected NOT operator in front of %1().").arg(m_tmp));
return;
}
finalizeTest(tokPtr);
@@ -1119,8 +1112,7 @@ void QMakeParser::finalizeCall(ushort *&tokPtr, ushort *uc, ushort *ptr, int arg
} else if (m_tmp == statics.stroption) {
if (m_state != StNew || m_blockstack.top().braceLevel || m_blockstack.size() > 1
|| m_invert || m_operator != NoOperator) {
- parseError(fL1S("option() must appear outside any control structures."));
- bogusTest(tokPtr);
+ bogusTest(tokPtr, fL1S("option() must appear outside any control structures."));
return;
}
if (*uce == (TokLiteral|TokNewStr)) {
diff --git a/qmake/library/qmakeparser.h b/qmake/library/qmakeparser.h
index 6d0c381ef9..448f518f75 100644
--- a/qmake/library/qmakeparser.h
+++ b/qmake/library/qmakeparser.h
@@ -145,7 +145,7 @@ private:
void finalizeCond(ushort *&tokPtr, ushort *uc, ushort *ptr, int wordCount);
void finalizeCall(ushort *&tokPtr, ushort *uc, ushort *ptr, int argc);
void finalizeTest(ushort *&tokPtr);
- void bogusTest(ushort *&tokPtr);
+ void bogusTest(ushort *&tokPtr, const QString &msg);
void enterScope(ushort *&tokPtr, bool special, ScopeState state);
void leaveScope(ushort *&tokPtr);
void flushCond(ushort *&tokPtr);