diff options
Diffstat (limited to 'src/tools/qdoc/qmlparser/qqmljsast_p.h')
-rw-r--r-- | src/tools/qdoc/qmlparser/qqmljsast_p.h | 160 |
1 files changed, 117 insertions, 43 deletions
diff --git a/src/tools/qdoc/qmlparser/qqmljsast_p.h b/src/tools/qdoc/qmlparser/qqmljsast_p.h index 01a872f1e8..6cc3b7649e 100644 --- a/src/tools/qdoc/qmlparser/qqmljsast_p.h +++ b/src/tools/qdoc/qmlparser/qqmljsast_p.h @@ -207,18 +207,20 @@ public: Kind_UiArrayBinding, Kind_UiImport, - Kind_UiImportList, Kind_UiObjectBinding, Kind_UiObjectDefinition, Kind_UiObjectInitializer, Kind_UiObjectMemberList, Kind_UiArrayMemberList, + Kind_UiPragma, Kind_UiProgram, Kind_UiParameterList, Kind_UiPublicMember, Kind_UiQualifiedId, + Kind_UiQualifiedPragmaId, Kind_UiScriptBinding, - Kind_UiSourceElement + Kind_UiSourceElement, + Kind_UiHeaderItemList }; inline Node() @@ -2271,27 +2273,72 @@ public: SourceLocation semicolonToken; }; -class QML_PARSER_EXPORT UiImportList: public Node +class QML_PARSER_EXPORT UiObjectMember: public Node { public: - QQMLJS_DECLARE_AST_NODE(UiImportList) + virtual SourceLocation firstSourceLocation() const = 0; + virtual SourceLocation lastSourceLocation() const = 0; - UiImportList(UiImport *import) - : import(import), - next(this) + virtual UiObjectMember *uiObjectMemberCast(); +}; + +class QML_PARSER_EXPORT UiObjectMemberList: public Node +{ +public: + QQMLJS_DECLARE_AST_NODE(UiObjectMemberList) + + UiObjectMemberList(UiObjectMember *member) + : next(this), member(member) { kind = K; } - UiImportList(UiImportList *previous, UiImport *import) - : import(import) + UiObjectMemberList(UiObjectMemberList *previous, UiObjectMember *member) + : member(member) { kind = K; next = previous->next; previous->next = this; } - UiImportList *finish() + virtual void accept0(Visitor *visitor); + + virtual SourceLocation firstSourceLocation() const + { return member->firstSourceLocation(); } + + virtual SourceLocation lastSourceLocation() const + { return next ? next->lastSourceLocation() : member->lastSourceLocation(); } + + UiObjectMemberList *finish() { - UiImportList *head = next; + UiObjectMemberList *head = next; + next = 0; + return head; + } + +// attributes + UiObjectMemberList *next; + UiObjectMember *member; +}; + +class QML_PARSER_EXPORT UiQualifiedPragmaId: public Node +{ +public: + QQMLJS_DECLARE_AST_NODE(UiQualifiedPragmaId) + + UiQualifiedPragmaId(const QStringRef &name) + : next(this), name(name) + { kind = K; } + + UiQualifiedPragmaId(UiQualifiedPragmaId *previous, const QStringRef &name) + : name(name) + { + kind = K; + next = previous->next; + previous->next = this; + } + + UiQualifiedPragmaId *finish() + { + UiQualifiedPragmaId *head = next; next = 0; return head; } @@ -2299,60 +2346,87 @@ public: virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const - { return import->firstSourceLocation(); } + { return identifierToken; } virtual SourceLocation lastSourceLocation() const - { return next ? next->lastSourceLocation() : import->lastSourceLocation(); } + { return next ? next->lastSourceLocation() : identifierToken; } // attributes - UiImport *import; - UiImportList *next; + UiQualifiedPragmaId *next; + QStringRef name; + SourceLocation identifierToken; }; -class QML_PARSER_EXPORT UiObjectMember: public Node +class QML_PARSER_EXPORT UiPragma: public Node { public: - virtual SourceLocation firstSourceLocation() const = 0; - virtual SourceLocation lastSourceLocation() const = 0; + QQMLJS_DECLARE_AST_NODE(UiPragma) - virtual UiObjectMember *uiObjectMemberCast(); + UiPragma(UiQualifiedPragmaId *type) + : pragmaType(type) + { kind = K; } + + virtual void accept0(Visitor *visitor); + + virtual SourceLocation firstSourceLocation() const + { return pragmaToken; } + + virtual SourceLocation lastSourceLocation() const + { return semicolonToken; } + +// attributes + UiQualifiedPragmaId *pragmaType; + SourceLocation pragmaToken; + SourceLocation semicolonToken; }; -class QML_PARSER_EXPORT UiObjectMemberList: public Node +class QML_PARSER_EXPORT UiHeaderItemList: public Node { public: - QQMLJS_DECLARE_AST_NODE(UiObjectMemberList) + QQMLJS_DECLARE_AST_NODE(UiHeaderItemList) - UiObjectMemberList(UiObjectMember *member) - : next(this), member(member) + UiHeaderItemList(UiImport *import) + : headerItem(import), next(this) { kind = K; } - UiObjectMemberList(UiObjectMemberList *previous, UiObjectMember *member) - : member(member) + UiHeaderItemList(UiPragma *pragma) + : headerItem(pragma), next(this) + { kind = K; } + + UiHeaderItemList(UiHeaderItemList *previous, UiImport *import) + : headerItem(import) { kind = K; next = previous->next; previous->next = this; } - virtual void accept0(Visitor *visitor); - - virtual SourceLocation firstSourceLocation() const - { return member->firstSourceLocation(); } - - virtual SourceLocation lastSourceLocation() const - { return next ? next->lastSourceLocation() : member->lastSourceLocation(); } + UiHeaderItemList(UiHeaderItemList *previous, UiPragma *pragma) + : headerItem(pragma) + { + kind = K; + next = previous->next; + previous->next = this; + } - UiObjectMemberList *finish() + UiHeaderItemList *finish() { - UiObjectMemberList *head = next; + UiHeaderItemList *head = next; next = 0; return head; } + virtual void accept0(Visitor *visitor); + + virtual SourceLocation firstSourceLocation() const + { return headerItem->firstSourceLocation(); } + + virtual SourceLocation lastSourceLocation() const + { return next ? next->lastSourceLocation() : headerItem->lastSourceLocation(); } + // attributes - UiObjectMemberList *next; - UiObjectMember *member; + Node *headerItem; + UiHeaderItemList *next; }; class QML_PARSER_EXPORT UiProgram: public Node @@ -2360,16 +2434,16 @@ class QML_PARSER_EXPORT UiProgram: public Node public: QQMLJS_DECLARE_AST_NODE(UiProgram) - UiProgram(UiImportList *imports, UiObjectMemberList *members) - : imports(imports), members(members) + UiProgram(UiHeaderItemList *headers, UiObjectMemberList *members) + : headers(headers), members(members) { kind = K; } virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const { - if (imports) - return imports->firstSourceLocation(); + if (headers) + return headers->firstSourceLocation(); else if (members) return members->firstSourceLocation(); return SourceLocation(); @@ -2379,13 +2453,13 @@ public: { if (members) return members->lastSourceLocation(); - else if (imports) - return imports->lastSourceLocation(); + else if (headers) + return headers->lastSourceLocation(); return SourceLocation(); } // attributes - UiImportList *imports; + UiHeaderItemList *headers; UiObjectMemberList *members; }; |