]> Some of my projects - anidbudpclient.git/commitdiff
Add basis to retrieve used rename variables from the rename scripts.
authorAPTX <marek321@gmail.com>
Sat, 11 Dec 2010 17:29:26 +0000 (18:29 +0100)
committerAPTX <marek321@gmail.com>
Sat, 11 Dec 2010 17:29:26 +0000 (18:29 +0100)
renameparser/AniAdd/renameparser.cpp
renameparser/ECMAScript/parser.cpp
renameparser/abstractparser.cpp
renameparser/abstractparser.h

index e1b1c0d39f45fdfa0f839112196a5a5d904f0b50..0304a5ec8f85672a4f01d7764aedf58d27b35a25 100644 (file)
@@ -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);
 }
index 9ab685be046211474ec56c2e170b138374541769..46feaa45727fe381c3b12ae57fff9898798e4d07 100644 (file)
@@ -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)
index 97cd47ab211228a0156de2e1a623478b3598dc0e..c6f6584d7d29c310de9ce8823ae8803f4c5033a1 100644 (file)
@@ -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
index dc30190802e6c591deb9204c5d8c3ef4bec1702f..ceb9fa696796e9e7db788f0702a399a0007a4bd7 100644 (file)
@@ -2,6 +2,7 @@
 #define ABSTRACTPARSER_H
 
 #include <QString>
+#include <QStringList>
 #include <QMap>
 
 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