summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/qmlscriptparser.cpp
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2009-07-16 05:49:44 (GMT)
committerAaron Kennedy <aaron.kennedy@nokia.com>2009-07-16 05:49:44 (GMT)
commitd080c1c2ded0d59974f86f9f3dac91b099bda0a9 (patch)
tree05453818e847c1217ed9931dfcc49daa2979b5d7 /src/declarative/qml/qmlscriptparser.cpp
parenta5e11573712fcf1c95696bed4ce4bfd04bc17e01 (diff)
downloadQt-d080c1c2ded0d59974f86f9f3dac91b099bda0a9.zip
Qt-d080c1c2ded0d59974f86f9f3dac91b099bda0a9.tar.gz
Qt-d080c1c2ded0d59974f86f9f3dac91b099bda0a9.tar.bz2
Move the QML rewriting stuff into a central location
Diffstat (limited to 'src/declarative/qml/qmlscriptparser.cpp')
-rw-r--r--src/declarative/qml/qmlscriptparser.cpp46
1 files changed, 2 insertions, 44 deletions
diff --git a/src/declarative/qml/qmlscriptparser.cpp b/src/declarative/qml/qmlscriptparser.cpp
index f26266b..5f97c71 100644
--- a/src/declarative/qml/qmlscriptparser.cpp
+++ b/src/declarative/qml/qmlscriptparser.cpp
@@ -49,7 +49,7 @@
#include "parser/qmljsastvisitor_p.h"
#include "parser/qmljsast_p.h"
-#include "rewriter/textwriter_p.h"
+#include "qmlrewrite_p.h"
#include <QStack>
#include <QCoreApplication>
@@ -64,48 +64,6 @@ using namespace QmlParser;
namespace {
-class RewriteNumericLiterals: protected AST::Visitor
-{
- unsigned _position;
- TextWriter *_writer;
-
-public:
- QString operator()(QString code, unsigned position, AST::Node *node)
- {
- TextWriter w;
- _writer = &w;
- _position = position;
-
- AST::Node::acceptChild(node, this);
-
- w.write(&code);
-
- return code;
- }
-
-protected:
- using AST::Visitor::visit;
-
- virtual bool visit(AST::NumericLiteral *node)
- {
- if (node->suffix != AST::NumericLiteral::noSuffix) {
- const int suffixLength = AST::NumericLiteral::suffixLength[node->suffix];
- const char *suffixSpell = AST::NumericLiteral::suffixSpell[node->suffix];
- QString pre;
- pre += QLatin1String("qmlNumberFrom");
- pre += QChar(QLatin1Char(suffixSpell[0])).toUpper();
- pre += QLatin1String(&suffixSpell[1]);
- pre += QLatin1Char('(');
- _writer->replace(node->literalToken.begin() - _position, 0, pre);
- _writer->replace(node->literalToken.end() - _position - suffixLength,
- suffixLength,
- QLatin1String(")"));
- }
-
- return false;
- }
-};
-
class ProcessAST: protected AST::Visitor
{
struct State {
@@ -196,7 +154,7 @@ protected:
const AST::SourceLocation &last) const
{ return _contents.mid(first.offset, last.offset + last.length - first.offset); }
- RewriteNumericLiterals rewriteNumericLiterals;
+ QmlRewrite::RewriteNumericLiterals rewriteNumericLiterals;
QString asString(AST::ExpressionNode *expr)
{