bool RenameParser::parse(const QString &string)
{
- m_renameString = string;
+ AbstractParser::parse(string);
lexer->lex(string);
return parse(lexer);
}
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)
namespace RenameParser {
-AbstractParser::AbstractParser()
+AbstractParser::AbstractParser() : m_obtainedUsedVariables(false)
{
}
{
}
+bool AbstractParser::parse(const QString &string)
+{
+ m_renameString = string;
+ m_obtainedUsedVariables = false;
+ m_usedVariables.clear();
+ return true;
+}
+
QString AbstractParser::renameString() const
{
return m_renameString;
return 0;
}
+QStringList AbstractParser::usedVariables() const
+{
+ if (m_obtainedUsedVariables)
+ return m_usedVariables;
+
+ static QStringList variables;
+ variables;
+
+ m_obtainedUsedVariables = true;
+
+ return m_usedVariables;
+}
+
} // namespace
#define ABSTRACTPARSER_H
#include <QString>
+#include <QStringList>
#include <QMap>
namespace RenameParser {
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