diff options
author | Roberto Raggi <roberto.raggi@nokia.com> | 2009-05-04 13:54:14 (GMT) |
---|---|---|
committer | Roberto Raggi <roberto.raggi@nokia.com> | 2009-05-04 13:54:14 (GMT) |
commit | fab8fa152901cb84132f11b52f950c0dbb6d7a23 (patch) | |
tree | 23a97f7f892eb8c7b00d95dc9d6751e9ef53d47c | |
parent | 74c8e4c15fce7dce9d279b6a8086aaf679500fab (diff) | |
download | Qt-fab8fa152901cb84132f11b52f950c0dbb6d7a23.zip Qt-fab8fa152901cb84132f11b52f950c0dbb6d7a23.tar.gz Qt-fab8fa152901cb84132f11b52f950c0dbb6d7a23.tar.bz2 |
Store the location for the `default' token.
-rw-r--r-- | src/declarative/qml/parser/javascript.g | 6 | ||||
-rw-r--r-- | src/declarative/qml/parser/javascriptast_p.h | 8 | ||||
-rw-r--r-- | src/declarative/qml/parser/javascriptparser.cpp | 6 |
3 files changed, 15 insertions, 5 deletions
diff --git a/src/declarative/qml/parser/javascript.g b/src/declarative/qml/parser/javascript.g index 0da7571..5482392 100644 --- a/src/declarative/qml/parser/javascript.g +++ b/src/declarative/qml/parser/javascript.g @@ -688,7 +688,8 @@ UiObjectMember: T_DEFAULT T_PROPERTY UiPropertyType T_IDENTIFIER ; case $rule_number: { AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(3).sval, sym(4).sval); node->isDefaultMember = true; - node->propertyToken = loc(1); + node->defaultToken = loc(1); + node->propertyToken = loc(2); node->typeToken = loc(3); node->identifierToken = loc(4); sym(1).Node = node; @@ -714,7 +715,8 @@ case $rule_number: { AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(3).sval, sym(4).sval, sym(6).Expression); node->isDefaultMember = true; - node->propertyToken = loc(1); + node->defaultToken = loc(1); + node->propertyToken = loc(2); node->typeToken = loc(3); node->identifierToken = loc(4); node->colonToken = loc(5); diff --git a/src/declarative/qml/parser/javascriptast_p.h b/src/declarative/qml/parser/javascriptast_p.h index 3a22fff..ad317e8 100644 --- a/src/declarative/qml/parser/javascriptast_p.h +++ b/src/declarative/qml/parser/javascriptast_p.h @@ -2336,7 +2336,12 @@ public: { kind = K; } virtual SourceLocation firstSourceLocation() const - { return propertyToken; } + { + if (defaultToken.isValid()) + return defaultToken; + + return propertyToken; + } virtual SourceLocation lastSourceLocation() const { @@ -2359,6 +2364,7 @@ public: JavaScriptNameIdImpl *name; ExpressionNode *expression; bool isDefaultMember; + SourceLocation defaultToken; SourceLocation propertyToken; SourceLocation typeToken; SourceLocation identifierToken; diff --git a/src/declarative/qml/parser/javascriptparser.cpp b/src/declarative/qml/parser/javascriptparser.cpp index b241297..185a824 100644 --- a/src/declarative/qml/parser/javascriptparser.cpp +++ b/src/declarative/qml/parser/javascriptparser.cpp @@ -298,7 +298,8 @@ case 30: { case 31: { AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(3).sval, sym(4).sval); node->isDefaultMember = true; - node->propertyToken = loc(1); + node->defaultToken = loc(1); + node->propertyToken = loc(2); node->typeToken = loc(3); node->identifierToken = loc(4); sym(1).Node = node; @@ -318,7 +319,8 @@ case 33: { AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(3).sval, sym(4).sval, sym(6).Expression); node->isDefaultMember = true; - node->propertyToken = loc(1); + node->defaultToken = loc(1); + node->propertyToken = loc(2); node->typeToken = loc(3); node->identifierToken = loc(4); node->colonToken = loc(5); |