aboutsummaryrefslogtreecommitdiffstats
path: root/src/shared/proparser
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>2015-02-17 20:45:08 +0100
committerOswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>2015-10-28 13:01:59 +0000
commit13148ede99a987defa4e4a7405ccfcbd953c4f5d (patch)
tree2b30b635c8372ec3e45623150615b1eac2489179 /src/shared/proparser
parent6d348a2da9faab6f51055ae69a9a55261b1c183c (diff)
factor out putOperator()
Change-Id: I1b01e36e15dc93fc4e37597b66841d7102fa6b0d Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> (cherry picked from qtbase/bb26d1da0028d61e7f72fff3643af0c4601ab63e)
Diffstat (limited to 'src/shared/proparser')
-rw-r--r--src/shared/proparser/qmakeparser.cpp16
-rw-r--r--src/shared/proparser/qmakeparser.h1
2 files changed, 10 insertions, 7 deletions
diff --git a/src/shared/proparser/qmakeparser.cpp b/src/shared/proparser/qmakeparser.cpp
index a9341e0496c..83d71f252fb 100644
--- a/src/shared/proparser/qmakeparser.cpp
+++ b/src/shared/proparser/qmakeparser.cpp
@@ -928,14 +928,19 @@ void QMakeParser::flushCond(ushort *&tokPtr)
}
}
-void QMakeParser::finalizeTest(ushort *&tokPtr)
+void QMakeParser::putOperator(ushort *&tokPtr)
{
- flushScopes(tokPtr);
- putLineMarker(tokPtr);
if (m_operator != NoOperator) {
putTok(tokPtr, (m_operator == AndOperator) ? TokAnd : TokOr);
m_operator = NoOperator;
}
+}
+
+void QMakeParser::finalizeTest(ushort *&tokPtr)
+{
+ flushScopes(tokPtr);
+ putLineMarker(tokPtr);
+ putOperator(tokPtr);
if (m_invert) {
putTok(tokPtr, TokNot);
m_invert = false;
@@ -1079,10 +1084,7 @@ void QMakeParser::finalizeCall(ushort *&tokPtr, ushort *uc, ushort *ptr, int arg
if (*uce == (TokLiteral|TokNewStr)) {
uint nlen = uce[1];
if (uce[nlen + 2] == TokFuncTerminator) {
- if (m_operator != NoOperator) {
- putTok(tokPtr, (m_operator == AndOperator) ? TokAnd : TokOr);
- m_operator = NoOperator;
- }
+ putOperator(tokPtr);
putTok(tokPtr, defType);
putHashStr(tokPtr, uce + 2, nlen);
enterScope(tokPtr, true, StCtrl);
diff --git a/src/shared/proparser/qmakeparser.h b/src/shared/proparser/qmakeparser.h
index c921ce465ff..6d85ce99ce8 100644
--- a/src/shared/proparser/qmakeparser.h
+++ b/src/shared/proparser/qmakeparser.h
@@ -141,6 +141,7 @@ private:
const ushort *cur, const QString &in);
void finalizeCond(ushort *&tokPtr, ushort *uc, ushort *ptr, int wordCount);
void finalizeCall(ushort *&tokPtr, ushort *uc, ushort *ptr, int argc);
+ void putOperator(ushort *&tokPtr);
void finalizeTest(ushort *&tokPtr);
void bogusTest(ushort *&tokPtr, const QString &msg);
void enterScope(ushort *&tokPtr, bool special, ScopeState state);