From d19418f4d8d20f61ada12b6fa040999940de7cb3 Mon Sep 17 00:00:00 2001 From: Erik Verbruggen <erik.verbruggen@nokia.com> Date: Mon, 18 Jan 2010 10:39:11 +0100 Subject: [PATCH] Incorporated change 4a1c0db988c87b4b4922e5a2607adadd633d99a1 from kinetic-declarativeui. Added a utility method to get a casted AST root node. Reviewed-by: Christian Kamm --- src/shared/qmljs/parser/qmljs.g | 8 ++++++++ src/shared/qmljs/parser/qmljsast.cpp | 10 ++++++++++ src/shared/qmljs/parser/qmljsast_p.h | 3 +++ src/shared/qmljs/parser/qmljsparser_p.h | 8 ++++++++ 4 files changed, 29 insertions(+) diff --git a/src/shared/qmljs/parser/qmljs.g b/src/shared/qmljs/parser/qmljs.g index ec9a95611b3..0604457bf74 100644 --- a/src/shared/qmljs/parser/qmljs.g +++ b/src/shared/qmljs/parser/qmljs.g @@ -296,6 +296,14 @@ public: return program->uiObjectMemberCast(); } + AST::SourceElement *sourceElement() const + { + if (! program) + return 0; + + return program->sourceElementCast(); + } + QList<DiagnosticMessage> diagnosticMessages() const { return diagnostic_messages; } diff --git a/src/shared/qmljs/parser/qmljsast.cpp b/src/shared/qmljs/parser/qmljsast.cpp index 2a39aae9477..35ae0c846e3 100644 --- a/src/shared/qmljs/parser/qmljsast.cpp +++ b/src/shared/qmljs/parser/qmljsast.cpp @@ -81,6 +81,11 @@ UiObjectMember *Node::uiObjectMemberCast() return 0; } +SourceElement *Node::sourceElementCast() +{ + return 0; +} + ExpressionNode *ExpressionNode::expressionCast() { return this; @@ -772,6 +777,11 @@ void SourceElements::accept0(Visitor *visitor) visitor->endVisit(this); } +SourceElement *SourceElement::sourceElementCast() +{ + return this; +} + void FunctionSourceElement::accept0(Visitor *visitor) { if (visitor->visit(this)) { diff --git a/src/shared/qmljs/parser/qmljsast_p.h b/src/shared/qmljs/parser/qmljsast_p.h index 032fbb189a6..6f7f5cc4133 100644 --- a/src/shared/qmljs/parser/qmljsast_p.h +++ b/src/shared/qmljs/parser/qmljsast_p.h @@ -230,6 +230,7 @@ public: virtual BinaryExpression *binaryExpressionCast(); virtual Statement *statementCast(); virtual UiObjectMember *uiObjectMemberCast(); + virtual SourceElement *sourceElementCast(); void accept(Visitor *visitor); static void accept(Node *node, Visitor *visitor); @@ -2164,6 +2165,8 @@ public: { kind = K; } virtual ~SourceElement() {} + + virtual SourceElement *sourceElementCast(); }; class QML_PARSER_EXPORT FunctionSourceElement: public SourceElement diff --git a/src/shared/qmljs/parser/qmljsparser_p.h b/src/shared/qmljs/parser/qmljsparser_p.h index 2a09a633cc7..660690b8727 100644 --- a/src/shared/qmljs/parser/qmljsparser_p.h +++ b/src/shared/qmljs/parser/qmljsparser_p.h @@ -162,6 +162,14 @@ public: return program->uiObjectMemberCast(); } + AST::SourceElement *sourceElement() const + { + if (! program) + return 0; + + return program->sourceElementCast(); + } + QList<DiagnosticMessage> diagnosticMessages() const { return diagnostic_messages; } -- GitLab