From 704aec46230bf7ce29927bae03902e86454aecec Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 18 Feb 2015 17:32:34 +0100 Subject: make all parse errors invalidate the parse result they have been semi-warnings for a long enough time now. Change-Id: I3fffd63f7b44b30d2dc18cdcd74221c10e98399d Reviewed-by: Joerg Bornemann --- qmake/library/qmakeparser.cpp | 13 ++----------- qmake/library/qmakeparser.h | 5 ++++- 2 files changed, 6 insertions(+), 12 deletions(-) (limited to 'qmake/library') diff --git a/qmake/library/qmakeparser.cpp b/qmake/library/qmakeparser.cpp index 18048502aa..406dcce11d 100644 --- a/qmake/library/qmakeparser.cpp +++ b/qmake/library/qmakeparser.cpp @@ -577,7 +577,6 @@ void QMakeParser::read(ProFile *pro, const QString &in, int line, SubGrammar gra parseError(fL1S("Missing %1 terminator [found %2]") .arg(QChar(term)) .arg(c ? QString(c) : QString::fromLatin1("end-of-line"))); - pro->setOk(false); m_inError = true; // Just parse on, as if there was a terminator ... } else { @@ -661,7 +660,6 @@ void QMakeParser::read(ProFile *pro, const QString &in, int line, SubGrammar gra parseError(fL1S("Extra characters after test expression.")); else parseError(fL1S("Opening parenthesis without prior test name.")); - pro->setOk(false); ptr = buf; // Put empty function name } *ptr++ = TokTestCall; @@ -693,10 +691,8 @@ void QMakeParser::read(ProFile *pro, const QString &in, int line, SubGrammar gra finalizeCond(tokPtr, buf, ptr, wordCount); flushCond(tokPtr); ++m_blockstack.top().braceLevel; - if (grammar == TestGrammar) { + if (grammar == TestGrammar) parseError(fL1S("Opening scope not permitted in this context.")); - pro->setOk(false); - } goto nextItem; } else if (c == '}') { FLUSH_LHS_LITERAL(); @@ -738,10 +734,8 @@ void QMakeParser::read(ProFile *pro, const QString &in, int line, SubGrammar gra putLineMarker(tokPtr); if (grammar == TestGrammar) { parseError(fL1S("Assignment not permitted in this context.")); - pro->setOk(false); } else if (wordCount != 1) { parseError(fL1S("Assignment needs exactly one word on the left hand side.")); - pro->setOk(false); // Put empty variable name. } else { putBlock(tokPtr, buf, ptr - buf); @@ -836,10 +830,8 @@ void QMakeParser::read(ProFile *pro, const QString &in, int line, SubGrammar gra } flushScopes(tokPtr); - if (m_blockstack.size() > 1) { + if (m_blockstack.size() > 1) parseError(fL1S("Missing closing brace(s).")); - pro->setOk(false); - } while (m_blockstack.size()) leaveScope(tokPtr); tokBuff.resize(tokPtr - (ushort *)tokBuff.constData()); // Reserved capacity stays @@ -939,7 +931,6 @@ void QMakeParser::bogusTest(ushort *&tokPtr) m_invert = false; m_state = StCond; m_canElse = true; - m_proFile->setOk(false); } void QMakeParser::finalizeCond(ushort *&tokPtr, ushort *uc, ushort *ptr, int wordCount) diff --git a/qmake/library/qmakeparser.h b/qmake/library/qmakeparser.h index 12ed3370d0..6d0c381ef9 100644 --- a/qmake/library/qmakeparser.h +++ b/qmake/library/qmakeparser.h @@ -153,7 +153,10 @@ private: void message(int type, const QString &msg) const; void parseError(const QString &msg) const - { message(QMakeParserHandler::ParserError, msg); } + { + message(QMakeParserHandler::ParserError, msg); + m_proFile->setOk(false); + } void languageWarning(const QString &msg) const { message(QMakeParserHandler::ParserWarnLanguage, msg); } void deprecationWarning(const QString &msg) const -- cgit v1.2.3