diff options
Diffstat (limited to 'src/declarative')
-rw-r--r-- | src/declarative/qml/parser/javascript.g | 3 | ||||
-rw-r--r-- | src/declarative/qml/parser/javascriptast_p.h | 5 | ||||
-rw-r--r-- | src/declarative/qml/parser/javascriptparser.cpp | 3 | ||||
-rw-r--r-- | src/declarative/qml/qmlscriptparser.cpp | 9 |
4 files changed, 16 insertions, 4 deletions
diff --git a/src/declarative/qml/parser/javascript.g b/src/declarative/qml/parser/javascript.g index baec64f..5ae7a16 100644 --- a/src/declarative/qml/parser/javascript.g +++ b/src/declarative/qml/parser/javascript.g @@ -468,7 +468,8 @@ bool JavaScriptParser::parse(JavaScriptEnginePrivate *driver) Program: UiImportListOpt UiObjectMemberList ; /. case $rule_number: { - sym(1).Node = makeAstNode<AST::UiProgram> (driver->nodePool(), sym(2).UiObjectMemberList->finish()); + sym(1).Node = makeAstNode<AST::UiProgram> (driver->nodePool(), sym(1).UiImportList, + sym(2).UiObjectMemberList->finish()); } break; ./ diff --git a/src/declarative/qml/parser/javascriptast_p.h b/src/declarative/qml/parser/javascriptast_p.h index de34ab2..53d1982 100644 --- a/src/declarative/qml/parser/javascriptast_p.h +++ b/src/declarative/qml/parser/javascriptast_p.h @@ -1555,13 +1555,14 @@ public: class UiProgram: public Node { public: - UiProgram(UiObjectMemberList *members) - : members(members) + UiProgram(UiImportList *imports, UiObjectMemberList *members) + : imports(imports), members(members) { kind = Kind_UiProgram; } virtual void accept0(Visitor *visitor); // attributes + UiImportList *imports; UiObjectMemberList *members; }; diff --git a/src/declarative/qml/parser/javascriptparser.cpp b/src/declarative/qml/parser/javascriptparser.cpp index af55b27..3746a88 100644 --- a/src/declarative/qml/parser/javascriptparser.cpp +++ b/src/declarative/qml/parser/javascriptparser.cpp @@ -163,7 +163,8 @@ bool JavaScriptParser::parse(JavaScriptEnginePrivate *driver) switch (r) { case 0: { - sym(1).Node = makeAstNode<AST::UiProgram> (driver->nodePool(), sym(2).UiObjectMemberList->finish()); + sym(1).Node = makeAstNode<AST::UiProgram> (driver->nodePool(), sym(1).UiImportList, + sym(2).UiObjectMemberList->finish()); } break; case 2: { diff --git a/src/declarative/qml/qmlscriptparser.cpp b/src/declarative/qml/qmlscriptparser.cpp index be01f37..1ba1444 100644 --- a/src/declarative/qml/qmlscriptparser.cpp +++ b/src/declarative/qml/qmlscriptparser.cpp @@ -71,6 +71,7 @@ protected: using AST::Visitor::visit; using AST::Visitor::endVisit; + virtual bool visit(AST::UiProgram *node); virtual bool visit(AST::UiObjectDefinition *node); virtual bool visit(AST::UiPublicMember *node); virtual bool visit(AST::UiObjectBinding *node); @@ -221,6 +222,14 @@ void ProcessAST::defineProperty(const QString &propertyName, int line, const QSt _stateStack.pop(); } +// UiProgram: UiImportListOpt UiObjectMemberList ; +bool ProcessAST::visit(AST::UiProgram *node) +{ + accept(node->imports); + accept(node->members->member); + return false; +} + // UiObjectMember: T_PUBLIC T_IDENTIFIER T_IDENTIFIER T_COLON Expression UiObjectInitializer ; bool ProcessAST::visit(AST::UiPublicMember *node) { |