31 Q_DECLARE_TR_FUNCTIONS(QQmlJSTypeDescriptionReader)
33 explicit QQmlJSTypeDescriptionReader(QString fileName, QString data)
34 : m_fileName(std::move(fileName)), m_source(std::move(data)) {}
36 Q_DISABLE_COPY_MOVE(QQmlJSTypeDescriptionReader)
38 bool operator()(QList<QQmlJSExportedScope> *objects, QStringList *dependencies);
44 void readDocument(QQmlJS::AST::UiProgram *ast);
45 void readModule(QQmlJS::AST::UiObjectDefinition *ast);
46 void readDependencies(QQmlJS::AST::UiScriptBinding *ast);
47 void readComponent(QQmlJS::AST::UiObjectDefinition *ast);
48 void readSignalOrMethod(QQmlJS::AST::UiObjectDefinition *ast,
bool isMethod,
49 const QQmlJSScope::Ptr &scope);
50 void readProperty(QQmlJS::AST::UiObjectDefinition *ast,
const QQmlJSScope::Ptr &scope);
51 void readEnum(QQmlJS::AST::UiObjectDefinition *ast,
const QQmlJSScope::Ptr &scope);
52 void readParameter(QQmlJS::AST::UiObjectDefinition *ast,
QQmlJSMetaMethod *metaMethod);
54 QString readStringBinding(QQmlJS::AST::UiScriptBinding *ast);
55 bool readBoolBinding(QQmlJS::AST::UiScriptBinding *ast);
56 double readNumericBinding(QQmlJS::AST::UiScriptBinding *ast);
57 QTypeRevision readNumericVersionBinding(QQmlJS::AST::UiScriptBinding *ast);
58 int readIntBinding(QQmlJS::AST::UiScriptBinding *ast);
59 QList<QQmlJSScope::Export> readExports(QQmlJS::AST::UiScriptBinding *ast);
60 void readAliases(QQmlJS::AST::UiScriptBinding *ast,
const QQmlJSScope::Ptr &scope);
61 void readInterfaces(QQmlJS::AST::UiScriptBinding *ast,
const QQmlJSScope::Ptr &scope);
62 void checkMetaObjectRevisions(
63 QQmlJS::AST::UiScriptBinding *ast, QList<QQmlJSScope::Export> *exports);
65 QStringList readStringList(QQmlJS::AST::UiScriptBinding *ast);
66 void readDeferredNames(QQmlJS::AST::UiScriptBinding *ast,
const QQmlJSScope::Ptr &scope);
67 void readImmediateNames(QQmlJS::AST::UiScriptBinding *ast,
const QQmlJSScope::Ptr &scope);
68 void readEnumValues(QQmlJS::AST::UiScriptBinding *ast,
QQmlJSMetaEnum *metaEnum);
70 void addError(
const QQmlJS::SourceLocation &loc,
const QString &message);
71 void addWarning(
const QQmlJS::SourceLocation &loc,
const QString &message);
73 QQmlJS::AST::ArrayPattern *getArray(QQmlJS::AST::UiScriptBinding *ast);
77 QString m_errorMessage;
78 QString m_warningMessage;
79 QList<QQmlJSExportedScope> *m_objects =
nullptr;
80 QStringList *m_dependencies =
nullptr;
81 int m_currentCtorIndex = 0;
82 int m_currentMethodIndex = 0;
QString name(const QQmlJSScope::ConstPtr &type) const
void addTypes(ContextualTypes &&types)
void addTypes(const ContextualTypes &types)
ContextualTypes(CompileContext context, const QHash< QString, ImportedScope< QQmlJSScope::ConstPtr > > &types, const QMultiHash< QQmlJSScope::ConstPtr, QString > &names, const QQmlJSScope::ConstPtr &arrayType)
CompileContext context() const
bool isNullType(const QString &name) const
ImportedScope< QQmlJSScope::ConstPtr > type(const QString &name) const
bool hasType(const QString &name) const
QQmlJSScope::ConstPtr arrayType() const
void setType(const QString &name, const ImportedScope< QQmlJSScope::ConstPtr > &type)
void clearType(const QString &name)