diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2014-01-07 15:59:24 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-01-10 10:26:39 +0100 |
commit | b681bd3e4ad20eb558da68ba1a2e2dfddfab9cf1 (patch) | |
tree | b2ff2bdc1ec91fb332c405466e9a6e29d7d40c3c /src/qml/compiler/qqmltypecompiler_p.h | |
parent | c96a5432f9d34925c55753d592842a3bf7172cf2 (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.h | 42 |
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 |