summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2009-04-21 08:39:56 (GMT)
committerRoberto Raggi <roberto.raggi@nokia.com>2009-04-24 07:52:41 (GMT)
commita0f45c904517016319338fb6eda53165f46f0f77 (patch)
tree19f2dd8b038a9cd703c7b4b3d83a1baef8163e7f
parentc70d52a5927305b6edd77a47a3d582b4001b25f8 (diff)
downloadQt-a0f45c904517016319338fb6eda53165f46f0f77.zip
Qt-a0f45c904517016319338fb6eda53165f46f0f77.tar.gz
Qt-a0f45c904517016319338fb6eda53165f46f0f77.tar.bz2
Added the `import statements' to UiProgram.
-rw-r--r--src/declarative/qml/parser/javascript.g3
-rw-r--r--src/declarative/qml/parser/javascriptast_p.h5
-rw-r--r--src/declarative/qml/parser/javascriptparser.cpp3
-rw-r--r--src/declarative/qml/qmlscriptparser.cpp9
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)
{