From 97312baf0456007047c196adc8970a5119feebce Mon Sep 17 00:00:00 2001 From: APTX Date: Sat, 11 Dec 2010 18:29:26 +0100 Subject: [PATCH] Add basis to retrieve used rename variables from the rename scripts. --- renameparser/AniAdd/renameparser.cpp | 2 +- renameparser/ECMAScript/parser.cpp | 3 ++- renameparser/abstractparser.cpp | 23 ++++++++++++++++++++++- renameparser/abstractparser.h | 8 +++++++- 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/renameparser/AniAdd/renameparser.cpp b/renameparser/AniAdd/renameparser.cpp index e1b1c0d..0304a5e 100644 --- a/renameparser/AniAdd/renameparser.cpp +++ b/renameparser/AniAdd/renameparser.cpp @@ -71,7 +71,7 @@ QString RenameParser::evaluate(Environment &env) const bool RenameParser::parse(const QString &string) { - m_renameString = string; + AbstractParser::parse(string); lexer->lex(string); return parse(lexer); } diff --git a/renameparser/ECMAScript/parser.cpp b/renameparser/ECMAScript/parser.cpp index 9ab685b..46feaa4 100644 --- a/renameparser/ECMAScript/parser.cpp +++ b/renameparser/ECMAScript/parser.cpp @@ -27,11 +27,12 @@ Parser::Parser() : AbstractParser() bool Parser::parse(const QString &string) { + AbstractParser::parse(string); + m_error = ""; m_line = 0; m_column = 0; - m_renameString = string; QScriptSyntaxCheckResult checkResult = engine.checkSyntax(string); if (checkResult.state() == QScriptSyntaxCheckResult::Valid) diff --git a/renameparser/abstractparser.cpp b/renameparser/abstractparser.cpp index 97cd47a..c6f6584 100644 --- a/renameparser/abstractparser.cpp +++ b/renameparser/abstractparser.cpp @@ -2,7 +2,7 @@ namespace RenameParser { -AbstractParser::AbstractParser() +AbstractParser::AbstractParser() : m_obtainedUsedVariables(false) { } @@ -10,6 +10,14 @@ AbstractParser::~AbstractParser() { } +bool AbstractParser::parse(const QString &string) +{ + m_renameString = string; + m_obtainedUsedVariables = false; + m_usedVariables.clear(); + return true; +} + QString AbstractParser::renameString() const { return m_renameString; @@ -25,4 +33,17 @@ int AbstractParser::column() const return 0; } +QStringList AbstractParser::usedVariables() const +{ + if (m_obtainedUsedVariables) + return m_usedVariables; + + static QStringList variables; + variables; + + m_obtainedUsedVariables = true; + + return m_usedVariables; +} + } // namespace diff --git a/renameparser/abstractparser.h b/renameparser/abstractparser.h index dc30190..ceb9fa6 100644 --- a/renameparser/abstractparser.h +++ b/renameparser/abstractparser.h @@ -2,6 +2,7 @@ #define ABSTRACTPARSER_H #include +#include #include namespace RenameParser { @@ -15,16 +16,21 @@ public: virtual ~AbstractParser(); virtual QString renameString() const; - virtual bool parse(const QString &string) = 0; + virtual bool parse(const QString &string); virtual QString evaluate(Environment &env) const = 0; + virtual QStringList usedVariables() const; + virtual QString error() const = 0; virtual int line() const; virtual int column() const; protected: QString m_renameString; + + mutable QStringList m_usedVariables; + mutable bool m_obtainedUsedVariables; }; } // namespace -- 2.52.0