aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/parser/qdeclarativejsengine_p.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/declarative/qml/parser/qdeclarativejsengine_p.cpp')
-rw-r--r--src/declarative/qml/parser/qdeclarativejsengine_p.cpp79
1 files changed, 14 insertions, 65 deletions
diff --git a/src/declarative/qml/parser/qdeclarativejsengine_p.cpp b/src/declarative/qml/parser/qdeclarativejsengine_p.cpp
index a449f779b7..233ff7f20e 100644
--- a/src/declarative/qml/parser/qdeclarativejsengine_p.cpp
+++ b/src/declarative/qml/parser/qdeclarativejsengine_p.cpp
@@ -40,66 +40,16 @@
****************************************************************************/
#include "qdeclarativejsengine_p.h"
-
#include "qdeclarativejsglobal_p.h"
-#include "qdeclarativejsnodepool_p.h"
#include <qnumeric.h>
#include <QHash>
+#include <QDebug>
QT_QML_BEGIN_NAMESPACE
namespace QDeclarativeJS {
-uint qHash(const QDeclarativeJS::NameId &id)
-{ return qHash(id.asString()); }
-
-QString numberToString(double value)
-{ return QString::number(value); }
-
-int Ecma::RegExp::flagFromChar(const QChar &ch)
-{
- static QHash<QChar, int> flagsHash;
- if (flagsHash.isEmpty()) {
- flagsHash[QLatin1Char('g')] = Global;
- flagsHash[QLatin1Char('i')] = IgnoreCase;
- flagsHash[QLatin1Char('m')] = Multiline;
- }
- QHash<QChar, int>::const_iterator it;
- it = flagsHash.constFind(ch);
- if (it == flagsHash.constEnd())
- return 0;
- return it.value();
-}
-
-QString Ecma::RegExp::flagsToString(int flags)
-{
- QString result;
- if (flags & Global)
- result += QLatin1Char('g');
- if (flags & IgnoreCase)
- result += QLatin1Char('i');
- if (flags & Multiline)
- result += QLatin1Char('m');
- return result;
-}
-
-NodePool::NodePool(const QString &fileName, Engine *engine)
- : m_fileName(fileName), m_engine(engine)
-{
- m_engine->setNodePool(this);
-}
-
-NodePool::~NodePool()
-{
-}
-
-Code *NodePool::createCompiledCode(AST::Node *, CompilationUnit &)
-{
- Q_ASSERT(0);
- return 0;
-}
-
static int toDigit(char c)
{
if ((c >= '0') && (c <= '9'))
@@ -172,14 +122,14 @@ double integerFromString(const QString &str, int radix)
Engine::Engine()
- : _lexer(0), _nodePool(0)
+ : _lexer(0)
{ }
Engine::~Engine()
{ }
-QSet<NameId> Engine::literals() const
-{ return _literals; }
+void Engine::setCode(const QString &code)
+{ _code = code; }
void Engine::addComment(int pos, int len, int line, int col)
{ if (len > 0) _comments.append(QDeclarativeJS::AST::SourceLocation(pos, len, line, col)); }
@@ -187,25 +137,24 @@ void Engine::addComment(int pos, int len, int line, int col)
QList<QDeclarativeJS::AST::SourceLocation> Engine::comments() const
{ return _comments; }
-NameId *Engine::intern(const QChar *u, int s)
-{ return const_cast<NameId *>(&*_literals.insert(NameId(u, s))); }
-
-QString Engine::toString(NameId *id)
-{ return id->asString(); }
-
Lexer *Engine::lexer() const
{ return _lexer; }
void Engine::setLexer(Lexer *lexer)
{ _lexer = lexer; }
-NodePool *Engine::nodePool() const
-{ return _nodePool; }
-
-void Engine::setNodePool(NodePool *nodePool)
-{ _nodePool = nodePool; }
+MemoryPool *Engine::pool()
+{ return &_pool; }
+QStringRef Engine::newStringRef(const QString &text)
+{
+ const int pos = _extraCode.length();
+ _extraCode += text;
+ return _extraCode.midRef(pos, text.length());
+}
+QStringRef Engine::newStringRef(const QChar *chars, int size)
+{ return newStringRef(QString(chars, size)); }
} // end of namespace QDeclarativeJS