aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler/qqmltypecompiler_p.h
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2014-01-07 15:59:24 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-01-10 10:26:39 +0100
commitb681bd3e4ad20eb558da68ba1a2e2dfddfab9cf1 (patch)
treeb2ff2bdc1ec91fb332c405466e9a6e29d7d40c3c /src/qml/compiler/qqmltypecompiler_p.h
parentc96a5432f9d34925c55753d592842a3bf7172cf2 (diff)
[new compiler] Cleanups
Tie QQmlCompilePass and QQmlTypeCompiler together, so that we can eliminate the battery of parameters to the individual compiler phases. Change-Id: If2b6cf8416e6c2253c8f054048d1fd5ae12282b6 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml/compiler/qqmltypecompiler_p.h')
-rw-r--r--src/qml/compiler/qqmltypecompiler_p.h42
1 files changed, 41 insertions, 1 deletions
diff --git a/src/qml/compiler/qqmltypecompiler_p.h b/src/qml/compiler/qqmltypecompiler_p.h
index 9592e5d611..9ce8313d8d 100644
--- a/src/qml/compiler/qqmltypecompiler_p.h
+++ b/src/qml/compiler/qqmltypecompiler_p.h
@@ -43,6 +43,8 @@
#include <qglobal.h>
#include <qqmlerror.h>
+#include <qhash.h>
+#include <private/qqmlcompiler_p.h>
QT_BEGIN_NAMESPACE
@@ -50,26 +52,64 @@ class QQmlEnginePrivate;
class QQmlCompiledData;
class QQmlError;
class QQmlTypeData;
+class QQmlImports;
namespace QtQml {
struct ParsedQML;
}
+namespace QV4 {
+namespace CompiledData {
+struct QmlUnit;
+struct Location;
+}
+}
+
struct QQmlTypeCompiler
{
QQmlTypeCompiler(QQmlEnginePrivate *engine, QQmlCompiledData *compiledData, QQmlTypeData *typeData, QtQml::ParsedQML *parsedQML);
bool compile();
- QList<QQmlError> errors;
+ QList<QQmlError> compilationErrors() const { return errors; }
+ void recordError(const QQmlError &error);
+
+ QString stringAt(int idx) const;
+
+ const QV4::CompiledData::QmlUnit *qmlUnit() const;
+
+ QQmlEnginePrivate *enginePrivate() const { return engine; }
+ const QQmlImports *imports() const;
+ QHash<int, QQmlCompiledData::TypeReference> *resolvedTypes();
+ QList<QtQml::QmlObject*> *qmlObjects();
+ int rootObjectIndex() const;
+ const QList<QQmlPropertyCache *> &propertyCaches() const;
+ QList<QByteArray> *vmeMetaObjects() const;
+ QHash<int, int> *objectIndexToIdForRoot();
+ QHash<int, QHash<int, int> > *objectIndexToIdPerComponent();
+ QHash<int, QByteArray> *customParserData();
private:
+ QList<QQmlError> errors;
QQmlEnginePrivate *engine;
QQmlCompiledData *compiledData;
QQmlTypeData *typeData;
QtQml::ParsedQML *parsedQML;
};
+struct QQmlCompilePass
+{
+ QQmlCompilePass(QQmlTypeCompiler *typeCompiler);
+ QList<QQmlError> errors;
+
+ QString stringAt(int idx) const { return compiler->stringAt(idx); }
+protected:
+ void recordError(const QV4::CompiledData::Location &location, const QString &description);
+
+ const QUrl url;
+ QQmlTypeCompiler *compiler;
+};
+
QT_END_NAMESPACE
#endif // QQMLTYPECOMPILER_P_H