From ccde48e3bf0e89385424a02bd508f0eea2b3a59f Mon Sep 17 00:00:00 2001 From: dismine Date: Thu, 22 May 2014 15:11:14 +0300 Subject: [PATCH] Factory function for creating new parser variables. New methods what return tokens and numbers. --HG-- branch : feature --- src/app/container/calculator.cpp | 37 +++++++++ src/app/container/calculator.h | 12 +-- src/libs/qmuparser/qmuparser.cpp | 6 +- src/libs/qmuparser/qmuparser.h | 4 +- src/libs/qmuparser/qmuparserbase.cpp | 45 ++++++----- src/libs/qmuparser/qmuparserbase.h | 72 ++++++++++------- src/libs/qmuparser/qmuparserbytecode.cpp | 26 +++---- src/libs/qmuparser/qmuparserbytecode.h | 38 ++++----- src/libs/qmuparser/qmuparsercallback.cpp | 57 +++++++------- src/libs/qmuparser/qmuparsercallback.h | 86 ++++++++++----------- src/libs/qmuparser/qmuparserdef.h | 9 +-- src/libs/qmuparser/qmuparsererror.h | 28 +++---- src/libs/qmuparser/qmuparsertest.cpp | 4 - src/libs/qmuparser/qmuparsertoken.h | 4 +- src/libs/qmuparser/qmuparsertokenreader.cpp | 54 ++++--------- src/libs/qmuparser/qmuparsertokenreader.h | 48 ++++++------ 16 files changed, 271 insertions(+), 259 deletions(-) diff --git a/src/app/container/calculator.cpp b/src/app/container/calculator.cpp index 771412182..16bdea155 100644 --- a/src/app/container/calculator.cpp +++ b/src/app/container/calculator.cpp @@ -30,6 +30,8 @@ #include #include "../widgets/vapplication.h" +int Calculator::iVal = -1; + //--------------------------------------------------------------------------------------------------------------------- /** * @brief Calculator class constructor. @@ -60,11 +62,14 @@ Calculator::Calculator(const VContainer *data) DefinePostfixOprt(cm_Oprt, CmUnit); DefinePostfixOprt(mm_Oprt, MmUnit); DefinePostfixOprt(in_Oprt, InchUnit); + + SetVarFactory(AddVariable, this); } Calculator::~Calculator() { delete [] vVarVal; + Calculator::iVal = -1; } //--------------------------------------------------------------------------------------------------------------------- @@ -267,3 +272,35 @@ qreal Calculator::InchUnit(qreal val) return unit; } + +//--------------------------------------------------------------------------- +// Factory function for creating new parser variables +// This could as well be a function performing database queries. +qreal* Calculator::AddVariable(const QString &a_szName, void *a_pUserData) +{ + // I don't want dynamic allocation here, so i used this static buffer + // If you want dynamic allocation you must allocate all variables dynamically + // in order to delete them later on. Or you find other ways to keep track of + // variables that have been created implicitely. + static qreal afValBuf[100]; + + ++iVal; + + Q_UNUSED(a_szName) + Q_UNUSED(a_pUserData) + // qDebug() << "Generating new variable \"" + // << a_szName << "\" (slots left: " + // << 99-iVal << ")" + // << " User data pointer is:" + // << QString::number(a_pUserData, 16); + afValBuf[iVal] = 0; + + if (iVal>=99) + { + throw qmu::QmuParserError( "Variable buffer overflow." ); + } + else + { + return &afValBuf[iVal]; + } +} diff --git a/src/app/container/calculator.h b/src/app/container/calculator.h index d3c8934e7..ddea36ab2 100644 --- a/src/app/container/calculator.h +++ b/src/app/container/calculator.h @@ -39,14 +39,16 @@ class Calculator:public QmuParser public: explicit Calculator(const VContainer *data); ~Calculator(); - qreal EvalFormula(const QString &formula); + qreal EvalFormula(const QString &formula); private: Q_DISABLE_COPY(Calculator) qreal *vVarVal; - void InitVariables(const VContainer *data); - static qreal CmUnit(qreal val); - static qreal MmUnit(qreal val); - static qreal InchUnit(qreal val); + static int iVal; + void InitVariables(const VContainer *data); + static qreal CmUnit(qreal val); + static qreal MmUnit(qreal val); + static qreal InchUnit(qreal val); + static qreal* AddVariable(const QString &a_szName, void *a_pUserData); }; #endif // CALCULATOR_H diff --git a/src/libs/qmuparser/qmuparser.cpp b/src/libs/qmuparser/qmuparser.cpp index 3f0ca1d08..6180f2310 100644 --- a/src/libs/qmuparser/qmuparser.cpp +++ b/src/libs/qmuparser/qmuparser.cpp @@ -202,11 +202,7 @@ int QmuParser::IsVal(const QString &a_szExpr, int *a_iPos, qreal *a_fVal) { qreal fVal(0); - #if defined(_UNICODE) - std::wstring a_szExprStd = a_szExpr.toStdWString(); - #else - std::string a_szExprStd = a_szExpr.toStdString(); - #endif + std::wstring a_szExprStd = a_szExpr.toStdWString(); stringstream_type stream(a_szExprStd); stream.seekg(0); // todo: check if this really is necessary stream.imbue(QmuParser::s_locale); diff --git a/src/libs/qmuparser/qmuparser.h b/src/libs/qmuparser/qmuparser.h index 50892dd99..e36f52b5d 100644 --- a/src/libs/qmuparser/qmuparser.h +++ b/src/libs/qmuparser/qmuparser.h @@ -74,7 +74,7 @@ namespace qmu static qreal Sign(qreal); // Prefix operators // !!! Unary Minus is a MUST if you want to use negative signs !!! - static qreal UnaryMinus(qreal v) Q_DECL_NOEXCEPT; + static qreal UnaryMinus(qreal v); // Functions with variable number of arguments static qreal Sum(const qreal*, int); // sum static qreal Avg(const qreal*, int); // mean value @@ -88,7 +88,7 @@ namespace qmu * @param v The value to negate * @return -v */ -inline qreal QmuParser::UnaryMinus(qreal v) Q_DECL_NOEXCEPT +inline qreal QmuParser::UnaryMinus(qreal v) { return -v; } diff --git a/src/libs/qmuparser/qmuparserbase.cpp b/src/libs/qmuparser/qmuparserbase.cpp index 386c0f87d..21ff321df 100644 --- a/src/libs/qmuparser/qmuparserbase.cpp +++ b/src/libs/qmuparser/qmuparserbase.cpp @@ -64,7 +64,7 @@ QmuParserBase::QmuParserBase() :m_pParseFormula(&QmuParserBase::ParseString), m_vRPN(), m_vStringBuf(), m_vStringVarBuf(), m_pTokenReader(), m_FunDef(), m_PostOprtDef(), m_InfixOprtDef(), m_OprtDef(), m_ConstDef(), m_StrVarDef(), m_VarDef(), m_bBuiltInOp(true), m_sNameChars(), m_sOprtChars(), m_sInfixOprtChars(), m_nIfElseCounter(0), m_vStackBuffer(), - m_nFinalResultIdx(0) + m_nFinalResultIdx(0), m_Tokens(QMap()), m_Numbers(QMap()) { InitTokenReader(); } @@ -79,7 +79,7 @@ QmuParserBase::QmuParserBase(const QmuParserBase &a_Parser) :m_pParseFormula(&QmuParserBase::ParseString), m_vRPN(), m_vStringBuf(), m_vStringVarBuf(), m_pTokenReader(), m_FunDef(), m_PostOprtDef(), m_InfixOprtDef(), m_OprtDef(), m_ConstDef(), m_StrVarDef(), m_VarDef(), m_bBuiltInOp(true), m_sNameChars(), m_sOprtChars(), m_sInfixOprtChars(), m_nIfElseCounter(0), m_vStackBuffer(), - m_nFinalResultIdx(0) + m_nFinalResultIdx(0), m_Tokens(QMap()), m_Numbers(QMap()) { m_pTokenReader.reset(new token_reader_type(this)); Assign(a_Parser); @@ -98,7 +98,7 @@ QmuParserBase::~QmuParserBase() * @return *this * @throw nothrow */ -QmuParserBase& QmuParserBase::operator=(const QmuParserBase &a_Parser) Q_DECL_NOEXCEPT +QmuParserBase& QmuParserBase::operator=(const QmuParserBase &a_Parser) { Assign(a_Parser); return *this; @@ -199,13 +199,15 @@ void QmuParserBase::ResetLocale() * Clear bytecode, reset the token reader. * @throw nothrow */ -void QmuParserBase::ReInit() const Q_DECL_NOEXCEPT +void QmuParserBase::ReInit() const { m_pParseFormula = &QmuParserBase::ParseString; m_vStringBuf.clear(); m_vRPN.clear(); m_pTokenReader->ReInit(); m_nIfElseCounter = 0; + m_Tokens.clear(); + m_Numbers.clear(); } //--------------------------------------------------------------------------------------------------------------------- @@ -318,13 +320,9 @@ void QmuParserBase::AddCallback(const QString &a_strName, const QmuParserCallbac void QmuParserBase::CheckOprt(const QString &a_sName, const QmuParserCallback &a_Callback, const QString &a_szCharSet) const { -#if defined(_UNICODE) const std::wstring a_sNameStd = a_sName.toStdWString(); const std::wstring a_szCharSetStd = a_szCharSet.toStdWString(); -#else - const std::string a_sNameStd = a_sName.toStdString(); - const std::string a_szCharSetStd = a_szCharSet.toStdString(); -#endif + if ( a_sNameStd.length() == false || (a_sNameStd.find_first_not_of(a_szCharSetStd)!=string_type::npos) || (a_sNameStd.at(0)>='0' && a_sNameStd.at(0)<='9')) { @@ -385,13 +383,9 @@ void QmuParserBase::CheckOprt(const QString &a_sName, const QmuParserCallback &a */ void QmuParserBase::CheckName(const QString &a_sName, const QString &a_szCharSet) const { -#if defined(_UNICODE) std::wstring a_sNameStd = a_sName.toStdWString(); std::wstring a_szCharSetStd = a_szCharSet.toStdWString(); -#else - std::string a_sNameStd = a_sName.toStdString(); - std::string a_szCharSetStd = a_szCharSet.toStdString(); -#endif + if ( a_sNameStd.length() == false || (a_sNameStd.find_first_not_of(a_szCharSetStd)!=string_type::npos) || (a_sNameStd[0]>='0' && a_sNameStd[0]<='9')) { @@ -1494,14 +1488,17 @@ void QmuParserBase::CreateRPN() const opt.SetIdx(m_vStringBuf.size()); // Assign buffer index to token stVal.push(opt); m_vStringBuf.push_back(opt.GetAsString()); // Store string in internal buffer + m_Tokens.insert(m_pTokenReader->GetPos()-opt.GetAsString().length(), opt.GetAsString()); break; case cmVAR: stVal.push(opt); m_vRPN.AddVar( static_cast(opt.GetVar()) ); + m_Tokens.insert(m_pTokenReader->GetPos()-opt.GetAsString().length(), opt.GetAsString()); break; case cmVAL: stVal.push(opt); m_vRPN.AddVal( opt.GetVal() ); + m_Numbers.insert(m_pTokenReader->GetPos()-opt.GetAsString().length(), opt.GetAsString()); break; case cmELSE: m_nIfElseCounter--; @@ -1643,10 +1640,12 @@ void QmuParserBase::CreateRPN() const case cmFUNC_BULK: case cmFUNC_STR: stOpt.push(opt); + m_Tokens.insert(m_pTokenReader->GetPos()-opt.GetAsString().length(), opt.GetAsString()); break; case cmOPRT_POSTFIX: stOpt.push(opt); ApplyFunc(stOpt, stVal, 1); // this is the postfix operator + m_Tokens.insert(m_pTokenReader->GetPos()-opt.GetAsString().length(), opt.GetAsString()); break; case cmENDIF: case cmVARPOW2: @@ -1753,7 +1752,7 @@ void Q_NORETURN QmuParserBase::Error(EErrorCodes a_iErrc, int a_iPos, const QStr * Resets the parser to string parsing mode by calling #ReInit. */ // cppcheck-suppress unusedFunction -void QmuParserBase::ClearVar() Q_DECL_NOEXCEPT +void QmuParserBase::ClearVar() { m_VarDef.clear(); ReInit(); @@ -1766,7 +1765,7 @@ void QmuParserBase::ClearVar() Q_DECL_NOEXCEPT * * Removes a variable if it exists. If the Variable does not exist nothing will be done. */ -void QmuParserBase::RemoveVar(const QString &a_strVarName) Q_DECL_NOEXCEPT +void QmuParserBase::RemoveVar(const QString &a_strVarName) { varmap_type::iterator item = m_VarDef.find(a_strVarName); if (item!=m_VarDef.end()) @@ -1783,7 +1782,7 @@ void QmuParserBase::RemoveVar(const QString &a_strVarName) Q_DECL_NOEXCEPT * @throw nothrow */ // cppcheck-suppress unusedFunction -void QmuParserBase::ClearFun() Q_DECL_NOEXCEPT +void QmuParserBase::ClearFun() { m_FunDef.clear(); ReInit(); @@ -1797,7 +1796,7 @@ void QmuParserBase::ClearFun() Q_DECL_NOEXCEPT * @post Resets the parser to string parsing mode. * @throw nothrow */ -void QmuParserBase::ClearConst() Q_DECL_NOEXCEPT +void QmuParserBase::ClearConst() { m_ConstDef.clear(); m_StrVarDef.clear(); @@ -1810,7 +1809,7 @@ void QmuParserBase::ClearConst() Q_DECL_NOEXCEPT * @post Resets the parser to string parsing mode. * @throw nothrow */ -void QmuParserBase::ClearPostfixOprt() Q_DECL_NOEXCEPT +void QmuParserBase::ClearPostfixOprt() { m_PostOprtDef.clear(); ReInit(); @@ -1823,7 +1822,7 @@ void QmuParserBase::ClearPostfixOprt() Q_DECL_NOEXCEPT * @throw nothrow */ // cppcheck-suppress unusedFunction -void QmuParserBase::ClearOprt() Q_DECL_NOEXCEPT +void QmuParserBase::ClearOprt() { m_OprtDef.clear(); ReInit(); @@ -1836,7 +1835,7 @@ void QmuParserBase::ClearOprt() Q_DECL_NOEXCEPT * @throw nothrow */ // cppcheck-suppress unusedFunction -void QmuParserBase::ClearInfixOprt() Q_DECL_NOEXCEPT +void QmuParserBase::ClearInfixOprt() { m_InfixOprtDef.clear(); ReInit(); @@ -1848,7 +1847,7 @@ void QmuParserBase::ClearInfixOprt() Q_DECL_NOEXCEPT * @post Resets the parser to string parser mode. * @throw nothrow */ -void QmuParserBase::EnableOptimizer(bool a_bIsOn) Q_DECL_NOEXCEPT +void QmuParserBase::EnableOptimizer(bool a_bIsOn) { m_vRPN.EnableOptimizer(a_bIsOn); ReInit(); @@ -1879,7 +1878,7 @@ void QmuParserBase::EnableDebugDump(bool bDumpCmd, bool bDumpStack) * manually one by one. It is not possible to disable built in operators selectively. This function will Reinitialize * the parser by calling ReInit(). */ -void QmuParserBase::EnableBuiltInOprt(bool a_bIsOn) Q_DECL_NOEXCEPT +void QmuParserBase::EnableBuiltInOprt(bool a_bIsOn) { m_bBuiltInOp = a_bIsOn; ReInit(); diff --git a/src/libs/qmuparser/qmuparserbase.h b/src/libs/qmuparser/qmuparserbase.h index d01e78ce2..b82954f9a 100644 --- a/src/libs/qmuparser/qmuparserbase.h +++ b/src/libs/qmuparser/qmuparserbase.h @@ -58,22 +58,22 @@ class QMUPARSERSHARED_EXPORT QmuParserBase public: QmuParserBase(); QmuParserBase(const QmuParserBase &a_Parser); - QmuParserBase& operator=(const QmuParserBase &a_Parser) Q_DECL_NOEXCEPT; + QmuParserBase& operator=(const QmuParserBase &a_Parser); virtual ~QmuParserBase(); static void EnableDebugDump(bool bDumpCmd, bool bDumpStack); qreal Eval() const; qreal* Eval(int &nStackSize) const; void Eval(qreal *results, int nBulkSize) const; - int GetNumResults() const Q_DECL_NOEXCEPT; + int GetNumResults() const; void SetExpr(const QString &a_sExpr); void SetVarFactory(facfun_type a_pFactory, void *pUserData = nullptr); void SetDecSep(char_type cDecSep); void SetThousandsSep(char_type cThousandsSep = 0); void ResetLocale(); - void EnableOptimizer(bool a_bIsOn=true) Q_DECL_NOEXCEPT; - void EnableBuiltInOprt(bool a_bIsOn=true) Q_DECL_NOEXCEPT; - bool HasBuiltInOprt() const Q_DECL_NOEXCEPT; + void EnableOptimizer(bool a_bIsOn=true); + void EnableBuiltInOprt(bool a_bIsOn=true); + bool HasBuiltInOprt() const; void AddValIdent(identfun_type a_pCallback); void DefineOprt(const QString &a_strName, fun_type2 a_pFun, unsigned a_iPri=0, EOprtAssociativity a_eAssociativity = oaLEFT, bool a_bAllowOpt = false); @@ -84,23 +84,25 @@ public: void DefineInfixOprt(const QString &a_strName, fun_type1 a_pOprt, int a_iPrec=prINFIX, bool a_bAllowOpt=true); // Clear user defined variables, constants or functions - void ClearVar() Q_DECL_NOEXCEPT; - void ClearFun() Q_DECL_NOEXCEPT; - void ClearConst() Q_DECL_NOEXCEPT; - void ClearInfixOprt() Q_DECL_NOEXCEPT; - void ClearPostfixOprt() Q_DECL_NOEXCEPT; - void ClearOprt() Q_DECL_NOEXCEPT; - void RemoveVar(const QString &a_strVarName) Q_DECL_NOEXCEPT; + void ClearVar(); + void ClearFun(); + void ClearConst(); + void ClearInfixOprt(); + void ClearPostfixOprt(); + void ClearOprt(); + void RemoveVar(const QString &a_strVarName); const varmap_type& GetUsedVar() const; - const varmap_type& GetVar() const Q_DECL_NOEXCEPT; - const valmap_type& GetConst() const Q_DECL_NOEXCEPT; + const varmap_type& GetVar() const; + const valmap_type& GetConst() const; const QString& GetExpr() const; - const funmap_type& GetFunDef() const Q_DECL_NOEXCEPT; + const funmap_type& GetFunDef() const; static QString GetVersion(EParserVersionInfo eInfo = pviFULL); - static const QStringList& GetOprtDef() Q_DECL_NOEXCEPT; - void DefineNameChars(const QString &a_szCharset) Q_DECL_NOEXCEPT; - void DefineOprtChars(const QString &a_szCharset) Q_DECL_NOEXCEPT; - void DefineInfixOprtChars(const QString &a_szCharset) Q_DECL_NOEXCEPT; + static const QStringList& GetOprtDef(); + QMap GetTokens() const; + QMap GetNumbers() const; + void DefineNameChars(const QString &a_szCharset); + void DefineOprtChars(const QString &a_szCharset); + void DefineInfixOprtChars(const QString &a_szCharset); const QString& ValidNameChars() const; const QString& ValidOprtChars() const; const QString& ValidInfixOprtChars() const; @@ -232,10 +234,12 @@ private: // items merely used for caching state information mutable valbuf_type m_vStackBuffer; ///< This is merely a buffer used for the stack in the cmd parsing routine mutable int m_nFinalResultIdx; + mutable QMap m_Tokens;///< Keep all tokens that we can translate + mutable QMap m_Numbers;///< Keep all numbers what exist in formula void Assign(const QmuParserBase &a_Parser); void InitTokenReader(); - void ReInit() const Q_DECL_NOEXCEPT; + void ReInit() const; void AddCallback(const QString &a_strName, const QmuParserCallback &a_Callback, funmap_type &a_Storage, const QString &a_szCharSet ); void ApplyRemainingOprt(QStack &a_stOpt, QStack &a_stVal) const; @@ -297,16 +301,26 @@ inline void QmuParserBase::SetVarFactory(facfun_type a_pFactory, void *pUserData * @brief Get the default symbols used for the built in operators. * @sa c_DefaultOprt */ -inline const QStringList &QmuParserBase::GetOprtDef() Q_DECL_NOEXCEPT +inline const QStringList &QmuParserBase::GetOprtDef() { return c_DefaultOprt; } +inline QMap QmuParserBase::GetTokens() const +{ + return m_Tokens; +} + +inline QMap QmuParserBase::GetNumbers() const +{ + return m_Numbers; +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief Define the set of valid characters to be used in names of functions, variables, constants. */ -inline void QmuParserBase::DefineNameChars(const QString &a_szCharset) Q_DECL_NOEXCEPT +inline void QmuParserBase::DefineNameChars(const QString &a_szCharset) { m_sNameChars = a_szCharset; } @@ -315,7 +329,7 @@ inline void QmuParserBase::DefineNameChars(const QString &a_szCharset) Q_DECL_NO /** * @brief Define the set of valid characters to be used in names of binary operators and postfix operators. */ -inline void QmuParserBase::DefineOprtChars(const QString &a_szCharset) Q_DECL_NOEXCEPT +inline void QmuParserBase::DefineOprtChars(const QString &a_szCharset) { m_sOprtChars = a_szCharset; } @@ -324,7 +338,7 @@ inline void QmuParserBase::DefineOprtChars(const QString &a_szCharset) Q_DECL_NO /** * @brief Define the set of valid characters to be used in names of infix operators. */ -inline void QmuParserBase::DefineInfixOprtChars(const QString &a_szCharset) Q_DECL_NOEXCEPT +inline void QmuParserBase::DefineInfixOprtChars(const QString &a_szCharset) { m_sInfixOprtChars = a_szCharset; } @@ -333,7 +347,7 @@ inline void QmuParserBase::DefineInfixOprtChars(const QString &a_szCharset) Q_DE /** * @brief Return a map containing the used variables only. */ -inline const varmap_type &QmuParserBase::GetVar() const Q_DECL_NOEXCEPT +inline const varmap_type &QmuParserBase::GetVar() const { return m_VarDef; } @@ -342,7 +356,7 @@ inline const varmap_type &QmuParserBase::GetVar() const Q_DECL_NOEXCEPT /** * @brief Return a map containing all parser constants. */ -inline const valmap_type &QmuParserBase::GetConst() const Q_DECL_NOEXCEPT +inline const valmap_type &QmuParserBase::GetConst() const { return m_ConstDef; } @@ -358,7 +372,7 @@ inline const valmap_type &QmuParserBase::GetConst() const Q_DECL_NOEXCEPT * parser functions. String functions are not part of this map. The Prototype definition is encapsulated in objects * of the class FunProt one per parser function each associated with function names via a map construct. */ -inline const funmap_type &QmuParserBase::GetFunDef() const Q_DECL_NOEXCEPT +inline const funmap_type &QmuParserBase::GetFunDef() const { return m_FunDef; } @@ -378,7 +392,7 @@ inline const QString& QmuParserBase::GetExpr() const * @return #m_bBuiltInOp; true if built in operators are enabled. * @throw nothrow */ -inline bool QmuParserBase::HasBuiltInOprt() const Q_DECL_NOEXCEPT +inline bool QmuParserBase::HasBuiltInOprt() const { return m_bBuiltInOp; } @@ -391,7 +405,7 @@ inline bool QmuParserBase::HasBuiltInOprt() const Q_DECL_NOEXCEPT * value. This function returns the number of available results. */ // cppcheck-suppress unusedFunction -inline int QmuParserBase::GetNumResults() const Q_DECL_NOEXCEPT +inline int QmuParserBase::GetNumResults() const { return m_nFinalResultIdx; } diff --git a/src/libs/qmuparser/qmuparserbytecode.cpp b/src/libs/qmuparser/qmuparserbytecode.cpp index cdd8e63ce..e4f27746e 100644 --- a/src/libs/qmuparser/qmuparserbytecode.cpp +++ b/src/libs/qmuparser/qmuparserbytecode.cpp @@ -40,7 +40,7 @@ namespace qmu * @brief Bytecode default constructor. */ // cppcheck-suppress uninitMemberVar -QmuParserByteCode::QmuParserByteCode() Q_DECL_NOEXCEPT +QmuParserByteCode::QmuParserByteCode() :m_iStackPos(0), m_iMaxStackSize(0), m_vRPN(), m_bEnableOptimizer(true) { m_vRPN.reserve(50); @@ -53,7 +53,7 @@ QmuParserByteCode::QmuParserByteCode() Q_DECL_NOEXCEPT * Implemented in Terms of Assign(const QParserByteCode &a_ByteCode) */ // cppcheck-suppress uninitMemberVar -QmuParserByteCode::QmuParserByteCode(const QmuParserByteCode &a_ByteCode) Q_DECL_NOEXCEPT +QmuParserByteCode::QmuParserByteCode(const QmuParserByteCode &a_ByteCode) :m_iStackPos(a_ByteCode.m_iStackPos), m_iMaxStackSize(a_ByteCode.m_iMaxStackSize), m_vRPN(a_ByteCode.m_vRPN), m_bEnableOptimizer(true) { @@ -67,7 +67,7 @@ QmuParserByteCode::QmuParserByteCode(const QmuParserByteCode &a_ByteCode) Q_DECL * Implemented in Terms of Assign(const QParserByteCode &a_ByteCode) */ // cppcheck-suppress operatorEqVarError -QmuParserByteCode& QmuParserByteCode::operator=(const QmuParserByteCode &a_ByteCode) Q_DECL_NOEXCEPT +QmuParserByteCode& QmuParserByteCode::operator=(const QmuParserByteCode &a_ByteCode) { Assign(a_ByteCode); return *this; @@ -79,7 +79,7 @@ QmuParserByteCode& QmuParserByteCode::operator=(const QmuParserByteCode &a_ByteC * * @throw nowthrow */ -void QmuParserByteCode::Assign(const QmuParserByteCode &a_ByteCode) Q_DECL_NOEXCEPT +void QmuParserByteCode::Assign(const QmuParserByteCode &a_ByteCode) { if (this==&a_ByteCode) { @@ -98,7 +98,7 @@ void QmuParserByteCode::Assign(const QmuParserByteCode &a_ByteCode) Q_DECL_NOEXC * @param a_pVar Pointer to be added. * @throw nothrow */ -void QmuParserByteCode::AddVar(qreal *a_pVar) Q_DECL_NOEXCEPT +void QmuParserByteCode::AddVar(qreal *a_pVar) { ++m_iStackPos; m_iMaxStackSize = qMax(m_iMaxStackSize, static_cast(m_iStackPos)); @@ -126,7 +126,7 @@ void QmuParserByteCode::AddVar(qreal *a_pVar) Q_DECL_NOEXCEPT * @param a_pVal Value to be added. * @throw nothrow */ -void QmuParserByteCode::AddVal(qreal a_fVal) Q_DECL_NOEXCEPT +void QmuParserByteCode::AddVal(qreal a_fVal) { ++m_iStackPos; m_iMaxStackSize = qMax(m_iMaxStackSize, static_cast(m_iStackPos)); @@ -472,7 +472,7 @@ void QmuParserByteCode::AddOp(ECmdCode a_Oprt) } //--------------------------------------------------------------------------------------------------------------------- -void QmuParserByteCode::AddIfElse(ECmdCode a_Oprt) Q_DECL_NOEXCEPT +void QmuParserByteCode::AddIfElse(ECmdCode a_Oprt) { SToken tok; tok.Cmd = a_Oprt; @@ -491,7 +491,7 @@ void QmuParserByteCode::AddIfElse(ECmdCode a_Oprt) Q_DECL_NOEXCEPT * * @sa ParserToken::ECmdCode */ -void QmuParserByteCode::AddAssignOp(qreal *a_pVar) Q_DECL_NOEXCEPT +void QmuParserByteCode::AddAssignOp(qreal *a_pVar) { --m_iStackPos; @@ -508,7 +508,7 @@ void QmuParserByteCode::AddAssignOp(qreal *a_pVar) Q_DECL_NOEXCEPT * @param a_iArgc Number of arguments, negative numbers indicate multiarg functions. * @param a_pFun Pointer to function callback. */ -void QmuParserByteCode::AddFun(generic_fun_type a_pFun, int a_iArgc) Q_DECL_NOEXCEPT +void QmuParserByteCode::AddFun(generic_fun_type a_pFun, int a_iArgc) { if (a_iArgc>=0) { @@ -535,7 +535,7 @@ void QmuParserByteCode::AddFun(generic_fun_type a_pFun, int a_iArgc) Q_DECL_NOEX * @param a_iArgc Number of arguments, negative numbers indicate multiarg functions. * @param a_pFun Pointer to function callback. */ -void QmuParserByteCode::AddBulkFun(generic_fun_type a_pFun, int a_iArgc) Q_DECL_NOEXCEPT +void QmuParserByteCode::AddBulkFun(generic_fun_type a_pFun, int a_iArgc) { m_iStackPos = m_iStackPos - a_iArgc + 1; m_iMaxStackSize = qMax(m_iMaxStackSize, static_cast(m_iStackPos)); @@ -555,7 +555,7 @@ void QmuParserByteCode::AddBulkFun(generic_fun_type a_pFun, int a_iArgc) Q_DECL_ * A string function entry consists of the stack position of the return value, followed by a cmSTRFUNC code, the * function pointer and an index into the string buffer maintained by the parser. */ -void QmuParserByteCode::AddStrFun(generic_fun_type a_pFun, int a_iArgc, int a_iIdx) Q_DECL_NOEXCEPT +void QmuParserByteCode::AddStrFun(generic_fun_type a_pFun, int a_iArgc, int a_iIdx) { m_iStackPos = m_iStackPos - a_iArgc + 1; @@ -575,7 +575,7 @@ void QmuParserByteCode::AddStrFun(generic_fun_type a_pFun, int a_iArgc, int a_iI * * @throw nothrow */ -void QmuParserByteCode::Finalize() Q_DECL_NOEXCEPT +void QmuParserByteCode::Finalize() { SToken tok; tok.Cmd = cmEND; @@ -662,7 +662,7 @@ const SToken* QmuParserByteCode::GetBase() const * The name of this function is a violation of my own coding guidelines but this way it's more in line with the STL * functions thus more intuitive. */ -void QmuParserByteCode::clear() Q_DECL_NOEXCEPT +void QmuParserByteCode::clear() { m_vRPN.clear(); m_iStackPos = 0; diff --git a/src/libs/qmuparser/qmuparserbytecode.h b/src/libs/qmuparser/qmuparserbytecode.h index 09e27bef8..3961cf9c0 100644 --- a/src/libs/qmuparser/qmuparserbytecode.h +++ b/src/libs/qmuparser/qmuparserbytecode.h @@ -81,23 +81,23 @@ struct SToken class QmuParserByteCode { public: - QmuParserByteCode() Q_DECL_NOEXCEPT; - QmuParserByteCode(const QmuParserByteCode &a_ByteCode) Q_DECL_NOEXCEPT; - QmuParserByteCode& operator=(const QmuParserByteCode &a_ByteCode) Q_DECL_NOEXCEPT; - void Assign(const QmuParserByteCode &a_ByteCode) Q_DECL_NOEXCEPT; - void AddVar(qreal *a_pVar) Q_DECL_NOEXCEPT; - void AddVal(qreal a_fVal) Q_DECL_NOEXCEPT; + QmuParserByteCode(); + QmuParserByteCode(const QmuParserByteCode &a_ByteCode); + QmuParserByteCode& operator=(const QmuParserByteCode &a_ByteCode); + void Assign(const QmuParserByteCode &a_ByteCode); + void AddVar(qreal *a_pVar); + void AddVal(qreal a_fVal); void AddOp(ECmdCode a_Oprt); - void AddIfElse(ECmdCode a_Oprt) Q_DECL_NOEXCEPT; - void AddAssignOp(qreal *a_pVar) Q_DECL_NOEXCEPT; - void AddFun(generic_fun_type a_pFun, int a_iArgc) Q_DECL_NOEXCEPT; - void AddBulkFun(generic_fun_type a_pFun, int a_iArgc) Q_DECL_NOEXCEPT; - void AddStrFun(generic_fun_type a_pFun, int a_iArgc, int a_iIdx) Q_DECL_NOEXCEPT; - void EnableOptimizer(bool bStat) Q_DECL_NOEXCEPT; - void Finalize() Q_DECL_NOEXCEPT; - void clear() Q_DECL_NOEXCEPT; - std::size_t GetMaxStackSize() const Q_DECL_NOEXCEPT; - std::size_t GetSize() const Q_DECL_NOEXCEPT; + void AddIfElse(ECmdCode a_Oprt); + void AddAssignOp(qreal *a_pVar); + void AddFun(generic_fun_type a_pFun, int a_iArgc); + void AddBulkFun(generic_fun_type a_pFun, int a_iArgc); + void AddStrFun(generic_fun_type a_pFun, int a_iArgc, int a_iIdx); + void EnableOptimizer(bool bStat); + void Finalize(); + void clear(); + std::size_t GetMaxStackSize() const; + std::size_t GetSize() const; const SToken* GetBase() const; void AsciiDump(); private: @@ -122,13 +122,13 @@ private: }; //--------------------------------------------------------------------------------------------------------------------- -inline void QmuParserByteCode::EnableOptimizer(bool bStat) Q_DECL_NOEXCEPT +inline void QmuParserByteCode::EnableOptimizer(bool bStat) { m_bEnableOptimizer = bStat; } //--------------------------------------------------------------------------------------------------------------------- -inline std::size_t QmuParserByteCode::GetMaxStackSize() const Q_DECL_NOEXCEPT +inline std::size_t QmuParserByteCode::GetMaxStackSize() const { return m_iMaxStackSize+1; } @@ -138,7 +138,7 @@ inline std::size_t QmuParserByteCode::GetMaxStackSize() const Q_DECL_NOEXCEPT * @brief Returns the number of entries in the bytecode. */ // cppcheck-suppress unusedFunction -inline std::size_t QmuParserByteCode::GetSize() const Q_DECL_NOEXCEPT +inline std::size_t QmuParserByteCode::GetSize() const { return m_vRPN.size(); } diff --git a/src/libs/qmuparser/qmuparsercallback.cpp b/src/libs/qmuparser/qmuparsercallback.cpp index 75d612b7d..df19b7fb0 100644 --- a/src/libs/qmuparser/qmuparsercallback.cpp +++ b/src/libs/qmuparser/qmuparsercallback.cpp @@ -34,7 +34,7 @@ namespace qmu #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( fun_type0 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( fun_type0 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 0 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -44,7 +44,6 @@ QmuParserCallback::QmuParserCallback ( fun_type0 a_pFun, bool a_bAllowOpti ) Q_D __extension__ #endif QmuParserCallback::QmuParserCallback ( fun_type1 a_pFun, bool a_bAllowOpti, int a_iPrec, ECmdCode a_iCode ) -Q_DECL_NOEXCEPT : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 1 ), m_iPri ( a_iPrec ), m_eOprtAsct ( oaNONE ), m_iCode ( a_iCode ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -57,7 +56,7 @@ Q_DECL_NOEXCEPT #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( fun_type2 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( fun_type2 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 2 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -75,7 +74,7 @@ QmuParserCallback::QmuParserCallback ( fun_type2 a_pFun, bool a_bAllowOpti ) Q_D __extension__ #endif QmuParserCallback::QmuParserCallback ( fun_type2 a_pFun, bool a_bAllowOpti, int a_iPrec, - EOprtAssociativity a_eOprtAsct ) Q_DECL_NOEXCEPT + EOprtAssociativity a_eOprtAsct ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 2 ), m_iPri ( a_iPrec ), m_eOprtAsct ( a_eOprtAsct ), m_iCode ( cmOPRT_BIN ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -84,7 +83,7 @@ QmuParserCallback::QmuParserCallback ( fun_type2 a_pFun, bool a_bAllowOpti, int #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( fun_type3 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( fun_type3 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 3 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -94,7 +93,7 @@ QmuParserCallback::QmuParserCallback ( fun_type3 a_pFun, bool a_bAllowOpti ) Q_D #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( fun_type4 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( fun_type4 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 4 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -104,7 +103,7 @@ QmuParserCallback::QmuParserCallback ( fun_type4 a_pFun, bool a_bAllowOpti ) Q_D #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( fun_type5 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( fun_type5 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 5 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -113,7 +112,7 @@ QmuParserCallback::QmuParserCallback ( fun_type5 a_pFun, bool a_bAllowOpti ) Q_D #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( fun_type6 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( fun_type6 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 6 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -122,7 +121,7 @@ QmuParserCallback::QmuParserCallback ( fun_type6 a_pFun, bool a_bAllowOpti ) Q_D #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( fun_type7 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( fun_type7 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 7 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -131,7 +130,7 @@ QmuParserCallback::QmuParserCallback ( fun_type7 a_pFun, bool a_bAllowOpti ) Q_D #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( fun_type8 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( fun_type8 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 8 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -140,7 +139,7 @@ QmuParserCallback::QmuParserCallback ( fun_type8 a_pFun, bool a_bAllowOpti ) Q_D #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( fun_type9 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( fun_type9 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 9 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -149,7 +148,7 @@ QmuParserCallback::QmuParserCallback ( fun_type9 a_pFun, bool a_bAllowOpti ) Q_D #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( fun_type10 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( fun_type10 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 10 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -158,7 +157,7 @@ QmuParserCallback::QmuParserCallback ( fun_type10 a_pFun, bool a_bAllowOpti ) Q_ #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( bulkfun_type0 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( bulkfun_type0 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 0 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_BULK ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -167,7 +166,7 @@ QmuParserCallback::QmuParserCallback ( bulkfun_type0 a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( bulkfun_type1 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( bulkfun_type1 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 1 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_BULK ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -180,7 +179,7 @@ QmuParserCallback::QmuParserCallback ( bulkfun_type1 a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( bulkfun_type2 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( bulkfun_type2 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 2 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_BULK ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -189,7 +188,7 @@ QmuParserCallback::QmuParserCallback ( bulkfun_type2 a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( bulkfun_type3 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( bulkfun_type3 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 3 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_BULK ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -198,7 +197,7 @@ QmuParserCallback::QmuParserCallback ( bulkfun_type3 a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( bulkfun_type4 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( bulkfun_type4 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 4 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_BULK ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -207,7 +206,7 @@ QmuParserCallback::QmuParserCallback ( bulkfun_type4 a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( bulkfun_type5 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( bulkfun_type5 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 5 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_BULK ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -216,7 +215,7 @@ QmuParserCallback::QmuParserCallback ( bulkfun_type5 a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( bulkfun_type6 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( bulkfun_type6 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 6 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_BULK ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -225,7 +224,7 @@ QmuParserCallback::QmuParserCallback ( bulkfun_type6 a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( bulkfun_type7 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( bulkfun_type7 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 7 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_BULK ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -234,7 +233,7 @@ QmuParserCallback::QmuParserCallback ( bulkfun_type7 a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( bulkfun_type8 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( bulkfun_type8 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 8 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_BULK ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -243,7 +242,7 @@ QmuParserCallback::QmuParserCallback ( bulkfun_type8 a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( bulkfun_type9 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( bulkfun_type9 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 9 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_BULK ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -252,7 +251,7 @@ QmuParserCallback::QmuParserCallback ( bulkfun_type9 a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( bulkfun_type10 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( bulkfun_type10 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 10 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_BULK ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -261,7 +260,7 @@ QmuParserCallback::QmuParserCallback ( bulkfun_type10 a_pFun, bool a_bAllowOpti #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( multfun_type a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( multfun_type a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( -1 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -270,7 +269,7 @@ QmuParserCallback::QmuParserCallback ( multfun_type a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( strfun_type1 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( strfun_type1 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 0 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_STR ), m_iType ( tpSTR ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -279,7 +278,7 @@ QmuParserCallback::QmuParserCallback ( strfun_type1 a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( strfun_type2 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( strfun_type2 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 1 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_STR ), m_iType ( tpSTR ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -288,7 +287,7 @@ QmuParserCallback::QmuParserCallback ( strfun_type2 a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( strfun_type3 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( strfun_type3 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 2 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_STR ), m_iType ( tpSTR ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -298,7 +297,7 @@ QmuParserCallback::QmuParserCallback ( strfun_type3 a_pFun, bool a_bAllowOpti ) * @brief Default constructor. * @throw nothrow */ -QmuParserCallback::QmuParserCallback() Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback() : m_pFun ( 0 ), m_iArgc ( 0 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmUNKNOWN ), m_iType ( tpVOID ), m_bAllowOpti ( 0 ) {} @@ -308,7 +307,7 @@ QmuParserCallback::QmuParserCallback() Q_DECL_NOEXCEPT * @brief Copy constructor. * @throw nothrow */ -QmuParserCallback::QmuParserCallback ( const QmuParserCallback &ref ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( const QmuParserCallback &ref ) : m_pFun ( ref.m_pFun ), m_iArgc ( ref.m_iArgc ), m_iPri ( ref.m_iPri ), m_eOprtAsct ( ref.m_eOprtAsct ), m_iCode ( ref.m_iCode ), m_iType ( ref.m_iType ), m_bAllowOpti ( ref.m_bAllowOpti ) { diff --git a/src/libs/qmuparser/qmuparsercallback.h b/src/libs/qmuparser/qmuparsercallback.h index 2321c63a6..a038fd2ae 100644 --- a/src/libs/qmuparser/qmuparsercallback.h +++ b/src/libs/qmuparser/qmuparsercallback.h @@ -46,47 +46,47 @@ namespace qmu class QmuParserCallback { public: - QmuParserCallback(fun_type0 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(fun_type1 a_pFun, bool a_bAllowOpti, int a_iPrec = -1, ECmdCode a_iCode=cmFUNC) Q_DECL_NOEXCEPT; + QmuParserCallback(fun_type0 a_pFun, bool a_bAllowOpti); + QmuParserCallback(fun_type1 a_pFun, bool a_bAllowOpti, int a_iPrec = -1, ECmdCode a_iCode=cmFUNC); QmuParserCallback(fun_type2 a_pFun, bool a_bAllowOpti, int a_iPrec, EOprtAssociativity a_eAssociativity) - Q_DECL_NOEXCEPT; - QmuParserCallback(fun_type2 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(fun_type3 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(fun_type4 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(fun_type5 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(fun_type6 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(fun_type7 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(fun_type8 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(fun_type9 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(fun_type10 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; + ; + QmuParserCallback(fun_type2 a_pFun, bool a_bAllowOpti); + QmuParserCallback(fun_type3 a_pFun, bool a_bAllowOpti); + QmuParserCallback(fun_type4 a_pFun, bool a_bAllowOpti); + QmuParserCallback(fun_type5 a_pFun, bool a_bAllowOpti); + QmuParserCallback(fun_type6 a_pFun, bool a_bAllowOpti); + QmuParserCallback(fun_type7 a_pFun, bool a_bAllowOpti); + QmuParserCallback(fun_type8 a_pFun, bool a_bAllowOpti); + QmuParserCallback(fun_type9 a_pFun, bool a_bAllowOpti); + QmuParserCallback(fun_type10 a_pFun, bool a_bAllowOpti); - QmuParserCallback(bulkfun_type0 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(bulkfun_type1 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(bulkfun_type2 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(bulkfun_type3 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(bulkfun_type4 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(bulkfun_type5 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(bulkfun_type6 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(bulkfun_type7 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(bulkfun_type8 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(bulkfun_type9 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(bulkfun_type10 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; + QmuParserCallback(bulkfun_type0 a_pFun, bool a_bAllowOpti); + QmuParserCallback(bulkfun_type1 a_pFun, bool a_bAllowOpti); + QmuParserCallback(bulkfun_type2 a_pFun, bool a_bAllowOpti); + QmuParserCallback(bulkfun_type3 a_pFun, bool a_bAllowOpti); + QmuParserCallback(bulkfun_type4 a_pFun, bool a_bAllowOpti); + QmuParserCallback(bulkfun_type5 a_pFun, bool a_bAllowOpti); + QmuParserCallback(bulkfun_type6 a_pFun, bool a_bAllowOpti); + QmuParserCallback(bulkfun_type7 a_pFun, bool a_bAllowOpti); + QmuParserCallback(bulkfun_type8 a_pFun, bool a_bAllowOpti); + QmuParserCallback(bulkfun_type9 a_pFun, bool a_bAllowOpti); + QmuParserCallback(bulkfun_type10 a_pFun, bool a_bAllowOpti); - QmuParserCallback(multfun_type a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(strfun_type1 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(strfun_type2 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(strfun_type3 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback() Q_DECL_NOEXCEPT; - QmuParserCallback(const QmuParserCallback &a_Fun) Q_DECL_NOEXCEPT; + QmuParserCallback(multfun_type a_pFun, bool a_bAllowOpti); + QmuParserCallback(strfun_type1 a_pFun, bool a_bAllowOpti); + QmuParserCallback(strfun_type2 a_pFun, bool a_bAllowOpti); + QmuParserCallback(strfun_type3 a_pFun, bool a_bAllowOpti); + QmuParserCallback(); + QmuParserCallback(const QmuParserCallback &a_Fun); QmuParserCallback* Clone() const; - bool IsOptimizable() const Q_DECL_NOEXCEPT; - void* GetAddr() const Q_DECL_NOEXCEPT; - ECmdCode GetCode() const Q_DECL_NOEXCEPT; - ETypeCode GetType() const Q_DECL_NOEXCEPT; - int GetPri() const Q_DECL_NOEXCEPT; - EOprtAssociativity GetAssociativity() const Q_DECL_NOEXCEPT; - int GetArgc() const Q_DECL_NOEXCEPT; + bool IsOptimizable() const; + void* GetAddr() const; + ECmdCode GetCode() const; + ETypeCode GetType() const; + int GetPri() const; + EOprtAssociativity GetAssociativity() const; + int GetArgc() const; private: void *m_pFun; ///< Pointer to the callback function, casted to void @@ -127,7 +127,7 @@ inline QmuParserCallback* QmuParserCallback::Clone() const * @throw nothrow */ // cppcheck-suppress unusedFunction -inline bool QmuParserCallback::IsOptimizable() const Q_DECL_NOEXCEPT +inline bool QmuParserCallback::IsOptimizable() const { return m_bAllowOpti; } @@ -141,7 +141,7 @@ inline bool QmuParserCallback::IsOptimizable() const Q_DECL_NOEXCEPT * @throw nothrow * @return #pFun */ -inline void* QmuParserCallback::GetAddr() const Q_DECL_NOEXCEPT +inline void* QmuParserCallback::GetAddr() const { return m_pFun; } @@ -150,13 +150,13 @@ inline void* QmuParserCallback::GetAddr() const Q_DECL_NOEXCEPT /** * @brief Return the callback code. */ -inline ECmdCode QmuParserCallback::GetCode() const Q_DECL_NOEXCEPT +inline ECmdCode QmuParserCallback::GetCode() const { return m_iCode; } //--------------------------------------------------------------------------------------------------------------------- -inline ETypeCode QmuParserCallback::GetType() const Q_DECL_NOEXCEPT +inline ETypeCode QmuParserCallback::GetType() const { return m_iType; } @@ -168,7 +168,7 @@ inline ETypeCode QmuParserCallback::GetType() const Q_DECL_NOEXCEPT * * Only valid if the callback token is an operator token (binary or infix). */ -inline int QmuParserCallback::GetPri() const Q_DECL_NOEXCEPT +inline int QmuParserCallback::GetPri() const { return m_iPri; } @@ -180,7 +180,7 @@ inline int QmuParserCallback::GetPri() const Q_DECL_NOEXCEPT * * Only valid if the callback token is a binary operator token. */ -inline EOprtAssociativity QmuParserCallback::GetAssociativity() const Q_DECL_NOEXCEPT +inline EOprtAssociativity QmuParserCallback::GetAssociativity() const { return m_eOprtAsct; } @@ -189,7 +189,7 @@ inline EOprtAssociativity QmuParserCallback::GetAssociativity() const Q_DECL_NOE /** * @brief Returns the number of function Arguments. */ -inline int QmuParserCallback::GetArgc() const Q_DECL_NOEXCEPT +inline int QmuParserCallback::GetArgc() const { return m_iArgc; } diff --git a/src/libs/qmuparser/qmuparserdef.h b/src/libs/qmuparser/qmuparserdef.h index a15557d9c..ee8d2b73e 100644 --- a/src/libs/qmuparser/qmuparserdef.h +++ b/src/libs/qmuparser/qmuparserdef.h @@ -46,13 +46,8 @@ */ //#define QMUP_USE_OPENMP -#if defined(_UNICODE) - /** @brief Definition of the basic parser string type. */ - #define QMUP_STRING_TYPE std::wstring -#else - /** @brief Definition of the basic parser string type. */ - #define QMUP_STRING_TYPE std::string -#endif +/** @brief Definition of the basic parser string type. */ +#define QMUP_STRING_TYPE std::wstring namespace qmu { diff --git a/src/libs/qmuparser/qmuparsererror.h b/src/libs/qmuparser/qmuparsererror.h index e12790545..0231a0e79 100644 --- a/src/libs/qmuparser/qmuparsererror.h +++ b/src/libs/qmuparser/qmuparsererror.h @@ -100,7 +100,7 @@ public: QmuParserErrorMsg(); ~QmuParserErrorMsg(); - static const QmuParserErrorMsg& Instance() Q_DECL_NOEXCEPT; + static const QmuParserErrorMsg& Instance(); QString operator[] ( unsigned a_iIdx ) const; private: @@ -111,7 +111,7 @@ private: //--------------------------------------------------------------------------------------------------------------------- // cppcheck-suppress unusedFunction -inline const QmuParserErrorMsg& QmuParserErrorMsg::Instance() Q_DECL_NOEXCEPT +inline const QmuParserErrorMsg& QmuParserErrorMsg::Instance() { return m_Instance; } @@ -141,12 +141,12 @@ public: QmuParserError& operator= ( const QmuParserError &a_Obj ); virtual ~QmuParserError() noexcept (true){} - void SetFormula ( const QString &a_strFormula ) Q_DECL_NOEXCEPT; - const QString& GetExpr() const Q_DECL_NOEXCEPT; - const QString& GetMsg() const Q_DECL_NOEXCEPT; - int GetPos() const Q_DECL_NOEXCEPT; - const QString& GetToken() const Q_DECL_NOEXCEPT; - EErrorCodes GetCode() const Q_DECL_NOEXCEPT; + void SetFormula ( const QString &a_strFormula ); + const QString& GetExpr() const; + const QString& GetMsg() const; + int GetPos() const; + const QString& GetToken() const; + EErrorCodes GetCode() const; virtual void raise() const; virtual QmuParserError *clone() const; private: @@ -186,7 +186,7 @@ inline QmuParserError *QmuParserError::clone() const /** * @brief Set the expression related to this error. */ -inline void QmuParserError::SetFormula ( const QString &a_strFormula ) Q_DECL_NOEXCEPT +inline void QmuParserError::SetFormula ( const QString &a_strFormula ) { m_sExpr = a_strFormula; } @@ -195,7 +195,7 @@ inline void QmuParserError::SetFormula ( const QString &a_strFormula ) Q_DECL_NO /** * @brief gets the expression related tp this error. */ -inline const QString& QmuParserError::GetExpr() const Q_DECL_NOEXCEPT +inline const QString& QmuParserError::GetExpr() const { return m_sExpr; } @@ -204,7 +204,7 @@ inline const QString& QmuParserError::GetExpr() const Q_DECL_NOEXCEPT /** * @brief Returns the message string for this error. */ -inline const QString& QmuParserError::GetMsg() const Q_DECL_NOEXCEPT +inline const QString& QmuParserError::GetMsg() const { return m_sMsg; } @@ -215,7 +215,7 @@ inline const QString& QmuParserError::GetMsg() const Q_DECL_NOEXCEPT * * If the error is not related to a distinct position this will return -1 */ -inline int QmuParserError::GetPos() const Q_DECL_NOEXCEPT +inline int QmuParserError::GetPos() const { return m_iPos; } @@ -224,7 +224,7 @@ inline int QmuParserError::GetPos() const Q_DECL_NOEXCEPT /** * @brief Return string related with this token (if available). */ -inline const QString& QmuParserError::GetToken() const Q_DECL_NOEXCEPT +inline const QString& QmuParserError::GetToken() const { return m_sTok; } @@ -233,7 +233,7 @@ inline const QString& QmuParserError::GetToken() const Q_DECL_NOEXCEPT /** * @brief Return the error code. */ -inline EErrorCodes QmuParserError::GetCode() const Q_DECL_NOEXCEPT +inline EErrorCodes QmuParserError::GetCode() const { return m_iErrc; } diff --git a/src/libs/qmuparser/qmuparsertest.cpp b/src/libs/qmuparser/qmuparsertest.cpp index cce7cdfc2..7664df6a3 100644 --- a/src/libs/qmuparser/qmuparsertest.cpp +++ b/src/libs/qmuparser/qmuparsertest.cpp @@ -69,11 +69,7 @@ int QmuParserTester::IsHexVal ( const QString &a_szExpr, int *a_iPos, qreal *a_f unsigned iVal ( 0 ); -#if defined(_UNICODE) std::wstring a_szExprStd = a_szExpr.mid(2).toStdWString(); -#else - std::string a_szExprStd = a_szExpr.mid(2).toStdString(); -#endif // New code based on streams for UNICODE compliance: stringstream_type::pos_type nPos(0); diff --git a/src/libs/qmuparser/qmuparsertoken.h b/src/libs/qmuparser/qmuparsertoken.h index 5dd720766..7241abeef 100644 --- a/src/libs/qmuparser/qmuparsertoken.h +++ b/src/libs/qmuparser/qmuparsertoken.h @@ -270,7 +270,7 @@ public: * @return #m_iType * @throw nothrow */ - ECmdCode GetCode() const Q_DECL_NOEXCEPT + ECmdCode GetCode() const { if ( m_pCallback.get() ) { @@ -442,7 +442,7 @@ public: * @throw nothrow * @sa m_strTok */ - const TString& GetAsString() const Q_DECL_NOEXCEPT + const TString& GetAsString() const { return m_strTok; } diff --git a/src/libs/qmuparser/qmuparsertokenreader.cpp b/src/libs/qmuparser/qmuparsertokenreader.cpp index e2d869c9b..d21bc93be 100644 --- a/src/libs/qmuparser/qmuparsertokenreader.cpp +++ b/src/libs/qmuparser/qmuparsertokenreader.cpp @@ -43,7 +43,7 @@ class QmuParserBase; * @sa Assign * @throw nothrow */ -QmuParserTokenReader::QmuParserTokenReader ( const QmuParserTokenReader &a_Reader ) Q_DECL_NOEXCEPT +QmuParserTokenReader::QmuParserTokenReader ( const QmuParserTokenReader &a_Reader ) :m_pParser( a_Reader.m_pParser ), m_strFormula( a_Reader.m_strFormula ), m_iPos( a_Reader.m_iPos ), m_iSynFlags( a_Reader.m_iSynFlags ), m_bIgnoreUndefVar( a_Reader.m_bIgnoreUndefVar ), m_pFunDef( a_Reader.m_pFunDef ), m_pPostOprtDef( a_Reader.m_pPostOprtDef ), @@ -63,7 +63,7 @@ QmuParserTokenReader::QmuParserTokenReader ( const QmuParserTokenReader &a_Reade * @param a_Reader Object to copy to this token reader. * @throw nothrow */ -QmuParserTokenReader& QmuParserTokenReader::operator= ( const QmuParserTokenReader &a_Reader ) Q_DECL_NOEXCEPT +QmuParserTokenReader& QmuParserTokenReader::operator= ( const QmuParserTokenReader &a_Reader ) { if ( &a_Reader != this ) { @@ -80,7 +80,7 @@ QmuParserTokenReader& QmuParserTokenReader::operator= ( const QmuParserTokenRead * @param a_Reader Object from which the state should be copied. * @throw nothrow */ -void QmuParserTokenReader::Assign ( const QmuParserTokenReader &a_Reader ) Q_DECL_NOEXCEPT +void QmuParserTokenReader::Assign ( const QmuParserTokenReader &a_Reader ) { m_pParser = a_Reader.m_pParser; m_strFormula = a_Reader.m_strFormula; @@ -116,7 +116,7 @@ void QmuParserTokenReader::Assign ( const QmuParserTokenReader &a_Reader ) Q_DEC * @post #m_pParser==a_pParser * @param a_pParent Parent parser object of the token reader. */ -QmuParserTokenReader::QmuParserTokenReader ( QmuParserBase *a_pParent ) Q_DECL_NOEXCEPT +QmuParserTokenReader::QmuParserTokenReader ( QmuParserBase *a_pParent ) : m_pParser ( a_pParent ), m_strFormula(), m_iPos ( 0 ), m_iSynFlags ( 0 ), m_bIgnoreUndefVar ( false ), m_pFunDef ( nullptr ), m_pPostOprtDef ( nullptr ), m_pInfixOprtDef ( nullptr ), m_pOprtDef ( nullptr ), m_pConstDef ( nullptr ), m_pStrVarDef ( nullptr ), m_pVarDef ( nullptr ), m_pFactory ( nullptr ), @@ -136,7 +136,7 @@ QmuParserTokenReader::QmuParserTokenReader ( QmuParserBase *a_pParent ) Q_DECL_N * @return A new QParserTokenReader object. * @throw nothrow */ -QmuParserTokenReader* QmuParserTokenReader::Clone ( QmuParserBase *a_pParent ) const Q_DECL_NOEXCEPT +QmuParserTokenReader* QmuParserTokenReader::Clone ( QmuParserBase *a_pParent ) const { std::unique_ptr ptr ( new QmuParserTokenReader ( *this ) ); ptr->SetParent ( a_pParent ); @@ -144,7 +144,7 @@ QmuParserTokenReader* QmuParserTokenReader::Clone ( QmuParserBase *a_pParent ) c } //--------------------------------------------------------------------------------------------------------------------- -QmuParserTokenReader::token_type& QmuParserTokenReader::SaveBeforeReturn ( const token_type &tok ) Q_DECL_NOEXCEPT +QmuParserTokenReader::token_type& QmuParserTokenReader::SaveBeforeReturn ( const token_type &tok ) { m_lastTok = tok; return m_lastTok; @@ -163,7 +163,7 @@ void QmuParserTokenReader::AddValIdent ( identfun_type a_pCallback ) } //--------------------------------------------------------------------------------------------------------------------- -void QmuParserTokenReader::SetVarCreator ( facfun_type a_pFactory, void *pUserData ) Q_DECL_NOEXCEPT +void QmuParserTokenReader::SetVarCreator ( facfun_type a_pFactory, void *pUserData ) { m_pFactory = a_pFactory; m_pFactoryData = pUserData; @@ -176,7 +176,7 @@ void QmuParserTokenReader::SetVarCreator ( facfun_type a_pFactory, void *pUserDa * Sets the formula position index to zero and set Syntax flags to default for initial formula parsing. * @pre [assert] triggered if a_szFormula==0 */ -void QmuParserTokenReader::SetFormula ( const QString &a_strFormula ) Q_DECL_NOEXCEPT +void QmuParserTokenReader::SetFormula ( const QString &a_strFormula ) { m_strFormula = a_strFormula; ReInit(); @@ -191,7 +191,7 @@ void QmuParserTokenReader::SetFormula ( const QString &a_strFormula ) Q_DECL_NOE * @throw nothrow * @sa ESynCodes */ -void QmuParserTokenReader::ReInit() Q_DECL_NOEXCEPT +void QmuParserTokenReader::ReInit() { m_iPos = 0; m_iSynFlags = sfSTART_OF_LINE; @@ -289,7 +289,7 @@ QmuParserTokenReader::token_type QmuParserTokenReader::ReadNextToken() } //--------------------------------------------------------------------------------------------------------------------- -void QmuParserTokenReader::SetParent ( QmuParserBase *a_pParent ) Q_DECL_NOEXCEPT +void QmuParserTokenReader::SetParent ( QmuParserBase *a_pParent ) { m_pParser = a_pParent; m_pFunDef = &a_pParent->m_FunDef; @@ -311,15 +311,10 @@ void QmuParserTokenReader::SetParent ( QmuParserBase *a_pParent ) Q_DECL_NOEXCEP * @return The Position of the first character not listed in a_szCharSet. * @throw nothrow */ -int QmuParserTokenReader::ExtractToken ( const QString &a_szCharSet, QString &a_sTok, int a_iPos ) const Q_DECL_NOEXCEPT +int QmuParserTokenReader::ExtractToken ( const QString &a_szCharSet, QString &a_sTok, int a_iPos ) const { -#if defined(_UNICODE) const std::wstring m_strFormulaStd = m_strFormula.toStdWString(); const std::wstring a_szCharSetStd = a_szCharSet.toStdWString(); -#else - const std::string m_strFormulaStd = m_strFormula.toStdString(); - const std::string a_szCharSetStd = a_szCharSet.toStdString(); -#endif int iEnd = static_cast(m_strFormulaStd.find_first_not_of ( a_szCharSetStd, a_iPos )); @@ -331,13 +326,8 @@ int QmuParserTokenReader::ExtractToken ( const QString &a_szCharSet, QString &a_ // Assign token string if there was something found if ( a_iPos != iEnd ) { -#if defined(_UNICODE) a_sTok = QString().fromStdWString ( std::wstring ( m_strFormulaStd.begin() + a_iPos, m_strFormulaStd.begin() + iEnd ) ); -#else - a_sTok = QString().fromStdString ( std::string ( m_strFormulaStd.begin() + a_iPos, - m_strFormulaStd.begin() + iEnd ) ); -#endif } return iEnd; @@ -353,13 +343,9 @@ int QmuParserTokenReader::ExtractToken ( const QString &a_szCharSet, QString &a_ */ int QmuParserTokenReader::ExtractOperatorToken ( QString &a_sTok, int a_iPos ) const { -#if defined(_UNICODE) const std::wstring m_strFormulaStd = m_strFormula.toStdWString(); const std::wstring oprtCharsStd = m_pParser->ValidInfixOprtChars().toStdWString(); -#else - const std::string m_strFormulaStd = m_strFormula.toStdString(); - const std::string oprtCharsStd = m_pParser->ValidInfixOprtChars().toStdString(); -#endif + int iEnd = static_cast( m_strFormulaStd.find_first_not_of ( oprtCharsStd, a_iPos ) ); if ( iEnd == static_cast( string_type::npos ) ) { @@ -369,13 +355,8 @@ int QmuParserTokenReader::ExtractOperatorToken ( QString &a_sTok, int a_iPos ) c // Assign token string if there was something found if ( a_iPos != iEnd ) { -#if defined(_UNICODE) a_sTok = QString().fromStdWString ( string_type ( m_strFormulaStd.begin() + a_iPos, m_strFormulaStd.begin() + iEnd ) ); -#else - a_sTok = QString().fromStdString ( string_type ( m_strFormulaStd.begin() + a_iPos, - m_strFormulaStd.begin() + iEnd ) ); -#endif return iEnd; } else @@ -549,12 +530,6 @@ bool QmuParserTokenReader::IsArgSep ( token_type &a_Tok ) */ bool QmuParserTokenReader::IsEOF ( token_type &a_Tok ) { -//#if defined(_UNICODE) -// const char_type* szFormula = m_strFormula.toStdWString().c_str(); -//#else -// const char_type* szFormula = m_strFormula.toStdString().c_str(); -//#endif - // check for EOF if ( m_strFormula.data()[m_iPos] == false /*|| szFormula[m_iPos] == '\n'*/ ) { @@ -848,8 +823,7 @@ bool QmuParserTokenReader::IsValTok ( token_type &a_Tok ) if ( ( *item ) ( m_strFormula.mid ( m_iPos ), &m_iPos, &fVal ) == 1 ) { // 2013-11-27 Issue 2: https://code.google.com/p/muparser/issues/detail?id=2 - //strTok = m_strFormula.mid ( iStart, m_iPos-iStart ); - strTok = m_strFormula.mid ( iStart, m_iPos ); + strTok = m_strFormula.mid ( iStart, m_iPos-iStart ); if ( m_iSynFlags & noVAL ) { Error ( ecUNEXPECTED_VAL, m_iPos - strTok.length(), strTok ); @@ -955,7 +929,7 @@ bool QmuParserTokenReader::IsStrVarTok ( token_type &a_Tok ) * @return true if a variable token has been found. * @throw nothrow */ -bool QmuParserTokenReader::IsUndefVarTok ( token_type &a_Tok ) Q_DECL_NOEXCEPT +bool QmuParserTokenReader::IsUndefVarTok ( token_type &a_Tok ) { QString strTok; int iEnd ( ExtractToken ( m_pParser->ValidNameChars(), strTok, m_iPos ) ); diff --git a/src/libs/qmuparser/qmuparsertokenreader.h b/src/libs/qmuparser/qmuparsertokenreader.h index b7ab1a7cf..43d08106e 100644 --- a/src/libs/qmuparser/qmuparsertokenreader.h +++ b/src/libs/qmuparser/qmuparsertokenreader.h @@ -45,19 +45,19 @@ class QmuParserTokenReader private: typedef QmuParserToken token_type; public: - QmuParserTokenReader(QmuParserBase *a_pParent) Q_DECL_NOEXCEPT; - QmuParserTokenReader* Clone(QmuParserBase *a_pParent) const Q_DECL_NOEXCEPT; + QmuParserTokenReader(QmuParserBase *a_pParent); + QmuParserTokenReader* Clone(QmuParserBase *a_pParent) const; void AddValIdent(identfun_type a_pCallback); - void SetVarCreator(facfun_type a_pFactory, void *pUserData) Q_DECL_NOEXCEPT; - void SetFormula(const QString &a_strFormula) Q_DECL_NOEXCEPT; - void SetArgSep(char_type cArgSep) Q_DECL_NOEXCEPT; - int GetPos() const Q_DECL_NOEXCEPT; - const QString& GetExpr() const Q_DECL_NOEXCEPT; - varmap_type& GetUsedVar() Q_DECL_NOEXCEPT; - QChar GetArgSep() const Q_DECL_NOEXCEPT; - void IgnoreUndefVar(bool bIgnore) Q_DECL_NOEXCEPT; - void ReInit() Q_DECL_NOEXCEPT; + void SetVarCreator(facfun_type a_pFactory, void *pUserData); + void SetFormula(const QString &a_strFormula); + void SetArgSep(char_type cArgSep); + int GetPos() const; + const QString& GetExpr() const; + varmap_type& GetUsedVar(); + QChar GetArgSep() const; + void IgnoreUndefVar(bool bIgnore); + void ReInit(); token_type ReadNextToken(); private: @@ -88,12 +88,12 @@ private: noANY = ~0 ///< All of he above flags set }; - QmuParserTokenReader(const QmuParserTokenReader &a_Reader) Q_DECL_NOEXCEPT; - QmuParserTokenReader& operator=(const QmuParserTokenReader &a_Reader) Q_DECL_NOEXCEPT; - void Assign(const QmuParserTokenReader &a_Reader) Q_DECL_NOEXCEPT; + QmuParserTokenReader(const QmuParserTokenReader &a_Reader); + QmuParserTokenReader& operator=(const QmuParserTokenReader &a_Reader); + void Assign(const QmuParserTokenReader &a_Reader); - void SetParent(QmuParserBase *a_pParent) Q_DECL_NOEXCEPT; - int ExtractToken(const QString &a_szCharSet, QString &a_strTok, int a_iPos) const Q_DECL_NOEXCEPT; + void SetParent(QmuParserBase *a_pParent); + int ExtractToken(const QString &a_szCharSet, QString &a_strTok, int a_iPos) const; int ExtractOperatorToken(QString &a_sTok, int a_iPos) const; bool IsBuiltIn(token_type &a_Tok); @@ -106,11 +106,11 @@ private: bool IsValTok(token_type &a_Tok); bool IsVarTok(token_type &a_Tok); bool IsStrVarTok(token_type &a_Tok); - bool IsUndefVarTok(token_type &a_Tok) Q_DECL_NOEXCEPT; + bool IsUndefVarTok(token_type &a_Tok); bool IsString(token_type &a_Tok); void Q_NORETURN Error(EErrorCodes a_iErrc, int a_iPos = -1, const QString &a_sTok = QString() ) const; - token_type& SaveBeforeReturn(const token_type &tok) Q_DECL_NOEXCEPT; + token_type& SaveBeforeReturn(const token_type &tok); QmuParserBase *m_pParser; QString m_strFormula; @@ -142,7 +142,7 @@ private: * @return #m_iPos * @throw nothrow */ -inline int QmuParserTokenReader::GetPos() const Q_DECL_NOEXCEPT +inline int QmuParserTokenReader::GetPos() const { return m_iPos; } @@ -154,7 +154,7 @@ inline int QmuParserTokenReader::GetPos() const Q_DECL_NOEXCEPT * @return #m_strFormula * @throw nothrow */ -inline const QString& QmuParserTokenReader::GetExpr() const Q_DECL_NOEXCEPT +inline const QString& QmuParserTokenReader::GetExpr() const { return m_strFormula; } @@ -163,7 +163,7 @@ inline const QString& QmuParserTokenReader::GetExpr() const Q_DECL_NOEXCEPT /** * @brief Return a map containing the used variables only. */ -inline varmap_type& QmuParserTokenReader::GetUsedVar() Q_DECL_NOEXCEPT +inline varmap_type& QmuParserTokenReader::GetUsedVar() { return m_UsedVar; } @@ -177,19 +177,19 @@ inline varmap_type& QmuParserTokenReader::GetUsedVar() Q_DECL_NOEXCEPT * Those function should return a complete list of variables including * those the are not defined by the time of it's call. */ -inline void QmuParserTokenReader::IgnoreUndefVar ( bool bIgnore ) Q_DECL_NOEXCEPT +inline void QmuParserTokenReader::IgnoreUndefVar ( bool bIgnore ) { m_bIgnoreUndefVar = bIgnore; } //--------------------------------------------------------------------------------------------------------------------- -inline void QmuParserTokenReader::SetArgSep ( char_type cArgSep ) Q_DECL_NOEXCEPT +inline void QmuParserTokenReader::SetArgSep ( char_type cArgSep ) { m_cArgSep = cArgSep; } //--------------------------------------------------------------------------------------------------------------------- -inline QChar QmuParserTokenReader::GetArgSep() const Q_DECL_NOEXCEPT +inline QChar QmuParserTokenReader::GetArgSep() const { return m_cArgSep; }