From 4e1a95923114a436e01f555dc90c57dc425ac79f Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Fri, 24 Jul 2009 06:03:42 +0200 Subject: Revert "Fixed the semantic action of UiArrayMemberList" This reverts commit ee91cc1041681654f7a250dc197d0902c53a951f. --- src/declarative/qml/parser/qmljs.g | 2 +- src/declarative/qml/parser/qmljsparser.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/declarative/qml/parser/qmljs.g b/src/declarative/qml/parser/qmljs.g index 7d8faee..d7fb17c 100644 --- a/src/declarative/qml/parser/qmljs.g +++ b/src/declarative/qml/parser/qmljs.g @@ -782,7 +782,7 @@ UiArrayMemberList: UiArrayMemberList T_COMMA UiAnnotation UiObjectDefinition ; case $rule_number: { sym(4).UiObjectMember->attributes = sym(3).UiAttributeList; AST::UiArrayMemberList *node = makeAstNode (driver->nodePool(), - sym(1).UiArrayMemberList, sym(4).UiObjectMember); + sym(1).UiArrayMemberList, sym(3).UiObjectMember); node->commaToken = loc(2); sym(1).Node = node; } break; diff --git a/src/declarative/qml/parser/qmljsparser.cpp b/src/declarative/qml/parser/qmljsparser.cpp index 296559b..93f9fda 100644 --- a/src/declarative/qml/parser/qmljsparser.cpp +++ b/src/declarative/qml/parser/qmljsparser.cpp @@ -360,7 +360,7 @@ case 35: { case 36: { sym(4).UiObjectMember->attributes = sym(3).UiAttributeList; AST::UiArrayMemberList *node = makeAstNode (driver->nodePool(), - sym(1).UiArrayMemberList, sym(4).UiObjectMember); + sym(1).UiArrayMemberList, sym(3).UiObjectMember); node->commaToken = loc(2); sym(1).Node = node; } break; -- cgit v0.12 From e6f14d21fa03d4301fcb7d7de1733bc65fe59e43 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Fri, 24 Jul 2009 06:04:19 +0200 Subject: Revert "Introduced annotations" This reverts commit 5f648e669235e0c6a11b6d25688c6dbd9bb58106. --- src/declarative/qml/parser/qmljs.g | 95 +- src/declarative/qml/parser/qmljsast.cpp | 25 - src/declarative/qml/parser/qmljsast_p.h | 70 +- src/declarative/qml/parser/qmljsastfwd_p.h | 2 - src/declarative/qml/parser/qmljsastvisitor_p.h | 4 - src/declarative/qml/parser/qmljsgrammar.cpp | 1396 ++++++++++++------------ src/declarative/qml/parser/qmljsgrammar_p.h | 33 +- src/declarative/qml/parser/qmljslexer.cpp | 1 - src/declarative/qml/parser/qmljsparser.cpp | 517 ++++----- src/declarative/qml/parser/qmljsparser_p.h | 6 +- 10 files changed, 945 insertions(+), 1204 deletions(-) diff --git a/src/declarative/qml/parser/qmljs.g b/src/declarative/qml/parser/qmljs.g index d7fb17c..20ee27d 100644 --- a/src/declarative/qml/parser/qmljs.g +++ b/src/declarative/qml/parser/qmljs.g @@ -81,8 +81,6 @@ %token T_RESERVED_WORD "reserved word" %token T_MULTILINE_STRING_LITERAL "multiline string literal" -%token T_AT "@" - --- context keywords. %token T_PUBLIC "public" %token T_IMPORT "import" @@ -273,8 +271,6 @@ public: AST::UiObjectMemberList *UiObjectMemberList; AST::UiArrayMemberList *UiArrayMemberList; AST::UiQualifiedId *UiQualifiedId; - AST::UiAttributeList *UiAttributeList; - AST::UiAttribute *UiAttribute; }; public: @@ -671,93 +667,25 @@ case $rule_number: { } break; ./ -UiRootMember: UiAnnotation UiObjectDefinition ; -/. -case $rule_number: { - sym(1).Node = makeAstNode (driver->nodePool(), - sym(1).UiAttributeList, sym(2).UiObjectMember); -} break; -./ - -UiAnnotation: Empty ; -UiAnnotation: UiAttributeList ; -/. -case $rule_number: { - sym(1).UiAttributeList = sym(1).UiAttributeList->finish(); -} break; -./ - -UiAttributeList: UiAttribute ; -/. -case $rule_number: { - sym(1).UiAttributeList = makeAstNode(driver->nodePool(), sym(1).UiAttribute); -} break; -./ - -UiAttributeList: UiAttributeList UiAttribute ; -/. -case $rule_number: { - sym(1).UiAttributeList = makeAstNode(driver->nodePool(), - sym(1).UiAttributeList, sym(2).UiAttribute); -} break; -./ - -UiAttributeName: JsIdentifier ; -UiAttributeName: ReservedIdentifier ; - -UiAttribute: T_AT UiAttributeName ; -/. -case $rule_number: { - AST::UiAttribute *ast = makeAstNode(driver->nodePool(), sym(2).sval); - ast->atToken = loc(1); - ast->nameToken = loc(2); - sym(1).UiAttribute = ast; -} break; -./ - -UiAttribute: T_AT UiAttributeName T_EQ UiAttributeValue ; -/. -case $rule_number: { - AST::UiAttribute *ast = makeAstNode(driver->nodePool(), - sym(2).sval, sym(4).Expression); - ast->atToken = loc(1); - ast->nameToken = loc(2); - ast->equalToken = loc(3); - sym(1).UiAttribute = ast; -} break; -./ - -UiAttributeValue: UiAttributeName ; -/. -case $rule_number: { - AST::IdentifierExpression *node = makeAstNode (driver->nodePool(), sym(1).sval); - node->identifierToken = loc(1); - sym(1).Node = node; -} break; -./ - -UiAttributeValue: T_NUMERIC_LITERAL ; +UiRootMember: UiObjectDefinition ; /. case $rule_number: { - AST::NumericLiteral *node = makeAstNode (driver->nodePool(), sym(1).dval, lexer->flags); - node->literalToken = loc(1); - sym(1).Node = node; + sym(1).Node = makeAstNode (driver->nodePool(), sym(1).UiObjectMember); } break; ./ -UiObjectMemberList: UiAnnotation UiObjectMember ; +UiObjectMemberList: UiObjectMember ; /. case $rule_number: { - sym(1).Node = makeAstNode (driver->nodePool(), - sym(1).UiAttributeList, sym(2).UiObjectMember); + sym(1).Node = makeAstNode (driver->nodePool(), sym(1).UiObjectMember); } break; ./ -UiObjectMemberList: UiObjectMemberList UiAnnotation UiObjectMember ; +UiObjectMemberList: UiObjectMemberList UiObjectMember ; /. case $rule_number: { AST::UiObjectMemberList *node = makeAstNode (driver->nodePool(), - sym(1).UiObjectMemberList, sym(2).UiAttributeList, sym(3).UiObjectMember); + sym(1).UiObjectMemberList, sym(2).UiObjectMember); sym(1).Node = node; } break; ./ @@ -769,18 +697,9 @@ case $rule_number: { } break; ./ -UiArrayMemberList: UiAttributeList UiObjectDefinition ; -/. -case $rule_number: { - sym(2).UiObjectMember->attributes = sym(1).UiAttributeList->finish(); - sym(1).Node = makeAstNode (driver->nodePool(), sym(2).UiObjectMember); -} break; -./ - -UiArrayMemberList: UiArrayMemberList T_COMMA UiAnnotation UiObjectDefinition ; +UiArrayMemberList: UiArrayMemberList T_COMMA UiObjectDefinition ; /. case $rule_number: { - sym(4).UiObjectMember->attributes = sym(3).UiAttributeList; AST::UiArrayMemberList *node = makeAstNode (driver->nodePool(), sym(1).UiArrayMemberList, sym(3).UiObjectMember); node->commaToken = loc(2); diff --git a/src/declarative/qml/parser/qmljsast.cpp b/src/declarative/qml/parser/qmljsast.cpp index fb4ea8a..d10c071 100644 --- a/src/declarative/qml/parser/qmljsast.cpp +++ b/src/declarative/qml/parser/qmljsast.cpp @@ -839,29 +839,9 @@ void UiProgram::accept0(Visitor *visitor) visitor->endVisit(this); } -void UiAttributeList::accept0(Visitor *visitor) -{ - if (visitor->visit(this)) { - for (UiAttributeList *it = this; it; it = it->next) - acceptChild(it->attribute, visitor); - } - - visitor->endVisit(this); -} - -void UiAttribute::accept0(Visitor *visitor) -{ - if (visitor->visit(this)) { - acceptChild(value, visitor); - } - - visitor->endVisit(this); -} - void UiPublicMember::accept0(Visitor *visitor) { if (visitor->visit(this)) { - acceptChild(attributes, visitor); acceptChild(expression, visitor); } @@ -871,7 +851,6 @@ void UiPublicMember::accept0(Visitor *visitor) void UiObjectDefinition::accept0(Visitor *visitor) { if (visitor->visit(this)) { - acceptChild(attributes, visitor); acceptChild(qualifiedTypeNameId, visitor); acceptChild(initializer, visitor); } @@ -892,7 +871,6 @@ void UiObjectInitializer::accept0(Visitor *visitor) void UiObjectBinding::accept0(Visitor *visitor) { if (visitor->visit(this)) { - acceptChild(attributes, visitor); acceptChild(qualifiedId, visitor); acceptChild(qualifiedTypeNameId, visitor); acceptChild(initializer, visitor); @@ -904,7 +882,6 @@ void UiObjectBinding::accept0(Visitor *visitor) void UiScriptBinding::accept0(Visitor *visitor) { if (visitor->visit(this)) { - acceptChild(attributes, visitor); acceptChild(qualifiedId, visitor); acceptChild(statement, visitor); } @@ -915,7 +892,6 @@ void UiScriptBinding::accept0(Visitor *visitor) void UiArrayBinding::accept0(Visitor *visitor) { if (visitor->visit(this)) { - acceptChild(attributes, visitor); acceptChild(qualifiedId, visitor); for (UiArrayMemberList *it = members; it; it = it->next) acceptChild(it->member, visitor); @@ -973,7 +949,6 @@ void UiImportList::accept0(Visitor *visitor) void UiSourceElement::accept0(Visitor *visitor) { if (visitor->visit(this)) { - acceptChild(attributes, visitor); acceptChild(sourceElement, visitor); } diff --git a/src/declarative/qml/parser/qmljsast_p.h b/src/declarative/qml/parser/qmljsast_p.h index 73b2cbc..6d269ac 100644 --- a/src/declarative/qml/parser/qmljsast_p.h +++ b/src/declarative/qml/parser/qmljsast_p.h @@ -104,7 +104,7 @@ enum Op { } // namespace QSOperator -namespace QmlJS { +namespace QmlJS { class NameId; namespace AST { @@ -213,9 +213,7 @@ public: Kind_UiPublicMember, Kind_UiQualifiedId, Kind_UiScriptBinding, - Kind_UiSourceElement, - Kind_UiAttributeList, - Kind_UiAttribute + Kind_UiSourceElement }; inline Node() @@ -2183,56 +2181,6 @@ public: UiObjectMemberList *members; }; -class UiAttributeList: public Node -{ -public: - QMLJS_DECLARE_AST_NODE(UiAttributeList) - - UiAttributeList(UiAttribute *attribute) - : attribute(attribute), next(this) - { kind = K; } - - UiAttributeList(UiAttributeList *previous, UiAttribute *attribute) - : attribute(attribute) - { - next = previous->next; - previous->next = this; - kind = K; - } - - UiAttributeList *finish() - { - UiAttributeList *head = next; - next = 0; - return head; - } - - virtual void accept0(Visitor *visitor); - -// attributes - UiAttribute *attribute; - UiAttributeList *next; -}; - -class UiAttribute: public Node -{ -public: - QMLJS_DECLARE_AST_NODE(UiAttribute) - - UiAttribute(NameId *name, ExpressionNode *value = 0) - : name(name), value(value) - { kind = K; } - - virtual void accept0(Visitor *visitor); - -// attributes - NameId *name; - ExpressionNode *value; - SourceLocation atToken; - SourceLocation nameToken; - SourceLocation equalToken; -}; - class UiQualifiedId: public Node { public: @@ -2331,9 +2279,6 @@ class UiObjectMember: public Node public: virtual SourceLocation firstSourceLocation() const = 0; virtual SourceLocation lastSourceLocation() const = 0; - -// attributes - UiAttributeList *attributes; }; class UiObjectMemberList: public Node @@ -2341,21 +2286,16 @@ class UiObjectMemberList: public Node public: QMLJS_DECLARE_AST_NODE(UiObjectMemberList) - UiObjectMemberList(UiAttributeList *attributes, UiObjectMember *member) + UiObjectMemberList(UiObjectMember *member) : next(this), member(member) - { - kind = K; - member->attributes = attributes; - } + { kind = K; } - UiObjectMemberList(UiObjectMemberList *previous, UiAttributeList *attributes, - UiObjectMember *member) + UiObjectMemberList(UiObjectMemberList *previous, UiObjectMember *member) : member(member) { kind = K; next = previous->next; previous->next = this; - member->attributes = attributes; } virtual void accept0(Visitor *visitor); diff --git a/src/declarative/qml/parser/qmljsastfwd_p.h b/src/declarative/qml/parser/qmljsastfwd_p.h index 18b3704..339bea4 100644 --- a/src/declarative/qml/parser/qmljsastfwd_p.h +++ b/src/declarative/qml/parser/qmljsastfwd_p.h @@ -176,8 +176,6 @@ class UiObjectMember; class UiObjectMemberList; class UiArrayMemberList; class UiQualifiedId; -class UiAttributeList; -class UiAttribute; } } // namespace AST diff --git a/src/declarative/qml/parser/qmljsastvisitor_p.h b/src/declarative/qml/parser/qmljsastvisitor_p.h index c2486d7..3677b1a 100644 --- a/src/declarative/qml/parser/qmljsastvisitor_p.h +++ b/src/declarative/qml/parser/qmljsastvisitor_p.h @@ -82,8 +82,6 @@ public: virtual bool visit(UiObjectMemberList *) { return true; } virtual bool visit(UiArrayMemberList *) { return true; } virtual bool visit(UiQualifiedId *) { return true; } - virtual bool visit(UiAttributeList *) { return true; } - virtual bool visit(UiAttribute *) { return true; } virtual void endVisit(UiProgram *) {} virtual void endVisit(UiImportList *) {} @@ -98,8 +96,6 @@ public: virtual void endVisit(UiObjectMemberList *) {} virtual void endVisit(UiArrayMemberList *) {} virtual void endVisit(UiQualifiedId *) {} - virtual void endVisit(UiAttributeList *) {} - virtual void endVisit(UiAttribute *) {} // QmlJS virtual bool visit(ThisExpression *) { return true; } diff --git a/src/declarative/qml/parser/qmljsgrammar.cpp b/src/declarative/qml/parser/qmljsgrammar.cpp index 13a68c8..1b23be6 100644 --- a/src/declarative/qml/parser/qmljsgrammar.cpp +++ b/src/declarative/qml/parser/qmljsgrammar.cpp @@ -51,428 +51,393 @@ const char *const QmlJSGrammar::spell [] = { "||", "+", "+=", "++", "?", "}", "]", "%", "%=", "return", ")", ";", 0, "*", "*=", "string literal", "property", "signal", "switch", "this", "throw", "~", "try", "typeof", "var", "void", "while", "with", "^", "^=", - "null", "true", "false", "const", "debugger", "reserved word", "multiline string literal", "@", "public", "import", - "as", 0, 0, 0, 0, 0}; + "null", "true", "false", "const", "debugger", "reserved word", "multiline string literal", "public", "import", "as", + 0, 0, 0, 0, 0}; const int QmlJSGrammar::lhs [] = { - 96, 96, 96, 97, 100, 100, 103, 103, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 102, 101, 107, 107, 109, 109, 111, 111, 110, 110, - 113, 113, 114, 114, 116, 116, 116, 117, 117, 108, - 115, 115, 115, 115, 115, 115, 115, 122, 122, 122, - 123, 123, 124, 124, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 106, 106, 105, 105, - 105, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 106, - 106, 129, 129, 129, 129, 128, 128, 131, 131, 133, - 133, 133, 133, 133, 133, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 134, 134, 135, 135, - 135, 135, 135, 138, 138, 139, 139, 139, 139, 137, - 137, 140, 140, 141, 141, 142, 142, 142, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 143, 144, 144, - 144, 144, 145, 145, 145, 146, 146, 146, 146, 147, - 147, 147, 147, 147, 147, 147, 148, 148, 148, 148, - 148, 148, 149, 149, 149, 149, 149, 150, 150, 150, - 150, 150, 151, 151, 152, 152, 153, 153, 154, 154, - 155, 155, 156, 156, 157, 157, 158, 158, 159, 159, - 160, 160, 161, 161, 162, 162, 132, 132, 163, 163, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 99, 99, 165, 165, 166, 166, 167, 167, - 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 118, 179, 179, 178, 178, - 126, 126, 180, 180, 181, 181, 183, 183, 182, 184, - 187, 185, 185, 188, 186, 186, 119, 120, 120, 121, - 121, 168, 168, 168, 168, 168, 168, 168, 169, 169, - 169, 169, 170, 170, 170, 170, 171, 171, 172, 174, - 189, 189, 192, 192, 190, 190, 193, 191, 173, 173, - 173, 175, 175, 176, 176, 176, 194, 195, 177, 177, - 125, 136, 199, 199, 196, 196, 197, 197, 200, 201, - 201, 202, 202, 198, 198, 130, 130, 203}; + 95, 95, 95, 96, 99, 99, 102, 102, 103, 103, + 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, + 101, 100, 107, 107, 109, 109, 110, 110, 106, 108, + 108, 108, 108, 108, 108, 108, 115, 115, 115, 116, + 116, 117, 117, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 105, 105, 104, 104, 104, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 105, 105, + 122, 122, 122, 122, 121, 121, 124, 124, 126, 126, + 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 128, 128, 129, 129, 129, + 129, 129, 132, 132, 133, 133, 133, 133, 131, 131, + 134, 134, 135, 135, 136, 136, 136, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 138, 138, 138, + 138, 139, 139, 139, 140, 140, 140, 140, 141, 141, + 141, 141, 141, 141, 141, 142, 142, 142, 142, 142, + 142, 143, 143, 143, 143, 143, 144, 144, 144, 144, + 144, 145, 145, 146, 146, 147, 147, 148, 148, 149, + 149, 150, 150, 151, 151, 152, 152, 153, 153, 154, + 154, 155, 155, 156, 156, 125, 125, 157, 157, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 98, 98, 159, 159, 160, 160, 161, 161, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 111, 173, 173, 172, 172, 119, + 119, 174, 174, 175, 175, 177, 177, 176, 178, 181, + 179, 179, 182, 180, 180, 112, 113, 113, 114, 114, + 162, 162, 162, 162, 162, 162, 162, 163, 163, 163, + 163, 164, 164, 164, 164, 165, 165, 166, 168, 183, + 183, 186, 186, 184, 184, 187, 185, 167, 167, 167, + 169, 169, 170, 170, 170, 188, 189, 171, 171, 118, + 130, 193, 193, 190, 190, 191, 191, 194, 195, 195, + 196, 196, 192, 192, 123, 123, 197}; const int QmlJSGrammar:: rhs[] = { 2, 2, 2, 2, 1, 1, 1, 2, 3, 3, 5, 5, 3, 3, 4, 4, 6, 6, 5, 5, - 0, 2, 1, 1, 1, 2, 1, 1, 2, 4, - 1, 1, 2, 3, 1, 2, 4, 2, 3, 2, - 1, 5, 4, 3, 3, 3, 3, 1, 1, 1, - 0, 1, 2, 4, 5, 2, 4, 4, 5, 5, - 6, 6, 7, 7, 1, 1, 1, 1, 1, 1, + 0, 1, 1, 2, 1, 3, 2, 3, 2, 1, + 5, 4, 3, 3, 3, 3, 1, 1, 1, 0, + 1, 2, 4, 5, 2, 4, 4, 5, 5, 6, + 6, 7, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 3, 3, 4, 5, 3, 4, 3, 1, - 3, 1, 2, 3, 4, 1, 2, 3, 5, 1, + 2, 3, 3, 4, 5, 3, 4, 3, 1, 3, + 1, 2, 3, 4, 1, 2, 3, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, + 3, 5, 1, 2, 4, 4, 4, 3, 0, 1, + 1, 3, 1, 1, 1, 2, 2, 1, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 1, 3, 3, + 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, + 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, + 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, + 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, + 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, + 3, 1, 5, 1, 5, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 4, 3, 5, 1, 2, 4, 4, 4, 3, 0, - 1, 1, 3, 1, 1, 1, 2, 2, 1, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, - 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, - 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, - 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, - 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, - 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, - 1, 3, 1, 5, 1, 5, 1, 3, 1, 3, + 1, 1, 3, 0, 1, 1, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 0, 1, 1, 3, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 1, 2, 0, 1, - 3, 3, 1, 1, 1, 3, 1, 3, 2, 2, - 2, 0, 1, 2, 0, 1, 1, 2, 2, 7, - 5, 7, 7, 5, 9, 10, 7, 8, 2, 2, - 3, 3, 2, 2, 3, 3, 3, 3, 5, 5, - 3, 5, 1, 2, 0, 1, 4, 3, 3, 3, - 3, 3, 3, 3, 3, 4, 5, 2, 2, 2, - 8, 8, 1, 3, 0, 1, 0, 1, 1, 1, - 2, 1, 1, 0, 1, 0, 1, 2}; + 1, 1, 1, 1, 3, 1, 2, 0, 1, 3, + 3, 1, 1, 1, 3, 1, 3, 2, 2, 2, + 0, 1, 2, 0, 1, 1, 2, 2, 7, 5, + 7, 7, 5, 9, 10, 7, 8, 2, 2, 3, + 3, 2, 2, 3, 3, 3, 3, 5, 5, 3, + 5, 1, 2, 0, 1, 4, 3, 3, 3, 3, + 3, 3, 3, 3, 4, 5, 2, 2, 2, 8, + 8, 1, 3, 0, 1, 0, 1, 1, 1, 2, + 1, 1, 0, 1, 0, 1, 2}; const int QmlJSGrammar::action_default [] = { - 0, 0, 0, 21, 0, 176, 243, 207, 215, 211, - 155, 227, 203, 3, 140, 73, 156, 219, 223, 144, - 173, 154, 159, 139, 193, 180, 0, 80, 81, 76, - 344, 69, 346, 0, 0, 0, 0, 78, 0, 0, - 74, 77, 0, 0, 70, 71, 79, 72, 0, 75, - 0, 0, 169, 0, 0, 156, 175, 158, 157, 0, - 0, 0, 171, 172, 170, 174, 0, 204, 0, 0, - 0, 0, 194, 0, 0, 0, 0, 0, 0, 184, - 0, 0, 0, 178, 179, 177, 182, 186, 185, 183, - 181, 196, 195, 197, 0, 212, 0, 208, 0, 0, - 150, 137, 149, 138, 106, 107, 108, 133, 109, 134, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 135, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 136, 0, 0, 148, 244, 151, - 0, 152, 0, 153, 147, 0, 240, 233, 231, 238, - 239, 237, 236, 242, 235, 234, 232, 241, 228, 0, - 216, 0, 0, 220, 0, 0, 224, 0, 0, 150, - 142, 0, 141, 0, 146, 160, 0, 345, 335, 336, - 0, 333, 0, 334, 0, 337, 251, 258, 257, 265, - 253, 0, 254, 338, 0, 343, 255, 256, 261, 259, - 340, 339, 342, 262, 0, 273, 0, 0, 0, 0, - 344, 69, 0, 346, 70, 245, 287, 71, 0, 0, - 0, 274, 0, 0, 263, 264, 0, 252, 260, 288, - 289, 332, 341, 0, 303, 304, 305, 306, 0, 299, - 300, 301, 302, 329, 330, 0, 0, 0, 0, 0, - 292, 293, 249, 247, 209, 217, 213, 229, 205, 250, - 0, 156, 221, 225, 198, 187, 0, 0, 206, 0, - 0, 0, 0, 199, 0, 0, 0, 0, 0, 191, - 189, 192, 190, 188, 201, 200, 202, 0, 214, 0, - 210, 0, 248, 156, 0, 230, 245, 246, 0, 245, - 0, 0, 295, 0, 0, 0, 297, 0, 218, 0, - 0, 222, 0, 0, 226, 285, 0, 277, 286, 280, - 0, 284, 0, 245, 278, 0, 245, 0, 0, 296, - 0, 0, 0, 298, 345, 335, 0, 0, 337, 0, - 331, 0, 321, 0, 0, 0, 291, 0, 290, 0, - 347, 0, 105, 267, 270, 0, 106, 273, 109, 134, - 111, 112, 76, 116, 117, 69, 118, 121, 74, 77, - 70, 245, 71, 79, 124, 72, 126, 75, 128, 129, - 274, 131, 132, 136, 0, 98, 0, 0, 100, 104, - 102, 88, 101, 103, 0, 99, 87, 268, 266, 144, - 145, 150, 0, 143, 0, 320, 0, 307, 308, 0, - 319, 0, 0, 0, 310, 315, 313, 316, 0, 0, - 314, 315, 0, 311, 0, 312, 269, 318, 0, 269, - 317, 0, 322, 323, 0, 269, 324, 325, 0, 0, - 326, 0, 0, 0, 327, 328, 162, 161, 0, 0, - 0, 294, 0, 0, 0, 309, 282, 275, 0, 283, - 279, 0, 281, 271, 0, 272, 276, 92, 0, 0, - 96, 82, 0, 84, 94, 0, 85, 95, 97, 86, - 93, 83, 0, 89, 166, 164, 168, 165, 163, 167, - 2, 5, 0, 7, 6, 21, 1, 90, 67, 68, + 0, 0, 0, 21, 0, 165, 232, 196, 204, 200, + 144, 216, 192, 3, 129, 62, 145, 208, 212, 133, + 162, 143, 148, 128, 182, 169, 0, 69, 70, 65, + 333, 58, 335, 0, 0, 0, 0, 67, 0, 0, + 63, 66, 0, 0, 59, 60, 68, 61, 0, 64, + 0, 0, 158, 0, 0, 145, 164, 147, 146, 0, + 0, 0, 160, 161, 159, 163, 0, 193, 0, 0, + 0, 0, 183, 0, 0, 0, 0, 0, 0, 173, + 0, 0, 0, 167, 168, 166, 171, 175, 174, 172, + 170, 185, 184, 186, 0, 201, 0, 197, 0, 0, + 139, 126, 138, 127, 95, 96, 97, 122, 98, 123, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 124, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 125, 0, 0, 137, 233, 140, + 0, 141, 0, 142, 136, 0, 229, 222, 220, 227, + 228, 226, 225, 231, 224, 223, 221, 230, 217, 0, + 205, 0, 0, 209, 0, 0, 213, 0, 0, 139, + 131, 0, 130, 0, 135, 149, 0, 334, 324, 325, + 0, 322, 0, 323, 0, 326, 240, 247, 246, 254, + 242, 0, 243, 327, 0, 332, 244, 245, 250, 248, + 329, 328, 331, 251, 0, 262, 0, 0, 0, 0, + 333, 58, 0, 335, 59, 234, 276, 60, 0, 0, + 0, 263, 0, 0, 252, 253, 0, 241, 249, 277, + 278, 321, 330, 0, 292, 293, 294, 295, 0, 288, + 289, 290, 291, 318, 319, 0, 0, 0, 0, 0, + 281, 282, 238, 236, 198, 206, 202, 218, 194, 239, + 0, 145, 210, 214, 187, 176, 0, 0, 195, 0, + 0, 0, 0, 188, 0, 0, 0, 0, 0, 180, + 178, 181, 179, 177, 190, 189, 191, 0, 203, 0, + 199, 0, 237, 145, 0, 219, 234, 235, 0, 234, + 0, 0, 284, 0, 0, 0, 286, 0, 207, 0, + 0, 211, 0, 0, 215, 274, 0, 266, 275, 269, + 0, 273, 0, 234, 267, 0, 234, 0, 0, 285, + 0, 0, 0, 287, 334, 324, 0, 0, 326, 0, + 320, 0, 310, 0, 0, 0, 280, 0, 279, 0, + 336, 0, 94, 256, 259, 0, 95, 262, 98, 123, + 100, 101, 65, 105, 106, 58, 107, 110, 63, 66, + 59, 234, 60, 68, 113, 61, 115, 64, 117, 118, + 263, 120, 121, 125, 0, 87, 0, 0, 89, 93, + 91, 77, 90, 92, 0, 88, 76, 257, 255, 133, + 134, 139, 0, 132, 0, 309, 0, 296, 297, 0, + 308, 0, 0, 0, 299, 304, 302, 305, 0, 0, + 303, 304, 0, 300, 0, 301, 258, 307, 0, 258, + 306, 0, 311, 312, 0, 258, 313, 314, 0, 0, + 315, 0, 0, 0, 316, 317, 151, 150, 0, 0, + 0, 283, 0, 0, 0, 298, 271, 264, 0, 272, + 268, 0, 270, 260, 0, 261, 265, 81, 0, 0, + 85, 71, 0, 73, 83, 0, 74, 84, 86, 75, + 82, 72, 0, 78, 155, 153, 157, 154, 152, 156, + 2, 5, 0, 7, 6, 0, 1, 79, 56, 57, 0, 0, 0, 9, 10, 0, 11, 12, 0, 13, - 0, 0, 14, 0, 19, 20, 91, 0, 15, 16, - 0, 17, 18, 8, 23, 0, 0, 25, 24, 4, - 27, 28, 29, 0, 32, 31, 30, 22, 0, 21, - 40, 38, 0, 21, 65, 0, 0, 70, 71, 41, - 33, 0, 66, 0, 50, 49, 48, 0, 0, 59, - 0, 60, 0, 63, 64, 0, 0, 0, 57, 0, - 58, 0, 61, 62, 56, 51, 52, 0, 0, 0, - 0, 54, 55, 53, 0, 44, 45, 0, 46, 47, - 269, 0, 43, 106, 273, 109, 134, 111, 112, 76, - 116, 117, 69, 118, 121, 74, 77, 70, 245, 71, - 79, 124, 72, 126, 75, 128, 129, 274, 131, 132, - 136, 73, 0, 0, 35, 21, 42, 0, 37, 26, - 36, 39, 0, 34, 348}; + 0, 0, 14, 0, 19, 20, 80, 0, 15, 16, + 0, 17, 18, 8, 22, 0, 4, 0, 29, 54, + 0, 0, 59, 27, 60, 30, 23, 0, 0, 55, + 0, 39, 38, 37, 0, 0, 48, 0, 49, 0, + 52, 53, 0, 0, 0, 46, 0, 47, 0, 50, + 51, 45, 40, 41, 0, 0, 0, 0, 43, 44, + 42, 28, 24, 0, 33, 34, 0, 35, 36, 258, + 0, 32, 95, 262, 98, 123, 100, 101, 65, 105, + 106, 58, 107, 110, 63, 66, 59, 234, 60, 68, + 113, 61, 115, 64, 117, 118, 263, 120, 121, 125, + 62, 0, 25, 0, 31, 26, 337}; const int QmlJSGrammar::goto_default [] = { - 4, 496, 353, 191, 495, 529, 524, 494, 493, 15, - 538, 526, 549, 528, 527, 532, 352, 536, 543, 550, - 622, 540, 186, 190, 192, 196, 566, 577, 576, 195, - 227, 23, 469, 468, 351, 350, 6, 349, 102, 19, - 14, 140, 21, 10, 139, 16, 22, 52, 20, 5, - 25, 24, 264, 12, 258, 7, 254, 9, 256, 8, - 255, 17, 262, 18, 263, 11, 257, 253, 294, 406, - 259, 260, 197, 188, 187, 199, 228, 198, 203, 224, - 225, 189, 355, 354, 226, 458, 457, 316, 317, 460, - 319, 459, 318, 414, 418, 421, 417, 416, 436, 437, - 180, 194, 176, 179, 193, 201, 200, 0}; + 4, 496, 353, 191, 495, 526, 491, 494, 493, 15, + 525, 535, 537, 536, 611, 528, 186, 190, 192, 196, + 553, 564, 563, 195, 227, 23, 469, 468, 351, 350, + 6, 349, 352, 102, 19, 14, 140, 21, 10, 139, + 16, 22, 52, 20, 5, 25, 24, 264, 12, 258, + 7, 254, 9, 256, 8, 255, 17, 262, 18, 263, + 11, 257, 253, 294, 406, 259, 260, 197, 188, 187, + 199, 228, 198, 203, 224, 225, 189, 355, 354, 226, + 458, 457, 316, 317, 460, 319, 459, 318, 414, 418, + 421, 417, 416, 436, 437, 180, 194, 176, 179, 193, + 201, 200, 0}; const int QmlJSGrammar::action_index [] = { - 142, 814, 1973, 78, 97, 86, -96, 90, 73, 71, - 257, -96, 315, 92, -96, -96, 539, 93, 81, 277, - 242, -96, -96, -96, 453, 252, 814, -96, -96, -96, - 214, -96, 1789, 1076, 814, 814, 814, -96, 729, 814, - -96, -96, 814, 814, -96, -96, -96, -96, 814, -96, - 814, 814, -96, 814, 814, 109, 207, -96, -96, 814, - 814, 814, -96, -96, -96, 205, 814, 313, 814, 814, - 814, 814, 434, 814, 814, 814, 814, 814, 814, 184, - 814, 814, 814, 146, 149, 150, 189, 204, 328, 328, - 328, 552, 473, 463, 814, 40, 814, 87, 1605, 814, - 814, -96, -96, -96, -96, -96, -96, -96, -96, -96, - -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, - -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, - -96, -96, -96, -96, -96, 140, 814, -96, -96, 65, - 33, -96, 814, -96, -96, 814, -96, -96, -96, -96, - -96, -96, -96, -96, -96, -96, -96, -96, -96, 814, - 29, 814, 814, 63, 59, 814, -96, 1605, 814, 814, - -96, 96, -96, 15, -96, -96, 31, -96, 208, 60, - 20, -96, 249, -96, 49, 2065, -96, -96, -96, -96, - -96, 248, -96, -96, 44, -96, -96, -96, -96, -96, - -96, 2065, -96, -96, 377, -96, 387, 83, 1973, 58, - 234, 72, 66, 2249, 67, 814, -96, 69, 54, 814, - 53, -96, 51, 45, -96, -96, 283, -96, -96, -96, - -96, -96, -96, 104, -96, -96, -96, -96, 102, -96, - -96, -96, -96, -96, -96, 48, 47, 814, 117, 120, - -96, -96, 988, -96, 77, 57, 64, -96, 406, 76, - 61, 582, 176, 100, 479, 328, 269, 814, 311, 814, - 814, 814, 814, 397, 814, 814, 814, 814, 814, 328, - 328, 328, 328, 328, 345, 360, 341, 814, 39, 814, - 70, 814, -96, 645, 814, -96, 814, 62, 24, 814, - 12, 1973, -96, 814, 131, 1973, -96, 814, 68, 814, - 814, 176, 89, 814, -96, 75, 95, 38, -96, -96, - 814, -96, 273, 814, -96, 79, 814, 74, 1973, -96, - 814, 111, 1973, -96, -16, 279, -41, -12, 2065, -37, - -96, 1973, -96, 814, 119, 1973, 6, 1973, -96, 22, - 18, -32, -96, -96, 1973, -52, 352, -2, 394, 98, - 814, 1973, 82, -34, 308, -7, -30, 729, 2, 4, - -96, 903, -96, 0, -5, 27, 814, 42, 21, 814, - 46, 814, 16, 14, 814, -96, 1881, 52, -96, -96, - -96, -96, -96, -96, 814, -96, -96, -96, -96, 307, - -96, 814, -22, -96, 1973, -96, 107, -96, -96, 1973, - -96, 814, 125, 13, -96, 37, -96, 35, 88, 814, - -96, 34, 10, -96, -4, -96, 1973, -96, 103, 1973, - -96, 263, -96, -96, 108, 1973, -8, -96, 11, 25, - -96, 260, -36, -6, -96, -96, -96, -96, 814, 115, - 1973, -96, 814, 112, 1973, -96, 43, -96, 190, -96, - -96, 814, -96, -96, 194, -96, -96, -96, 99, 1164, - -96, -96, 1337, -96, -96, 1425, -96, -96, -96, -96, - -96, -96, 101, -96, -96, -96, -96, -96, -96, -96, - -96, -96, 408, -96, -54, -57, -96, -96, -96, -96, - 177, 332, 216, -96, -96, 132, -96, -96, 237, -96, - 221, 163, -96, 122, -96, -96, -96, 240, -96, -96, - 126, -96, -96, -96, -96, 1605, 343, -96, -86, -96, - -96, -96, -1, 1697, -96, -96, -96, -96, 159, 121, - -96, -96, 470, 118, -96, -38, 174, 170, 3, -96, - -96, 203, -96, 173, -96, -96, -96, 32, 151, -96, - 814, -96, 145, -96, -96, 5, 7, 223, -96, 814, - -96, 187, -96, -96, 19, 141, 17, -45, 230, 191, - 228, -96, -96, -96, 1249, -96, -96, 309, -96, -96, - 2157, 1513, -96, 338, 1, 369, 85, 814, 1973, 82, - 9, 285, 36, 8, 729, 30, 26, -96, 903, -96, - 50, 28, 56, 814, 55, 23, 814, 41, 814, -26, - -23, -29, 124, 454, -96, -73, -96, 374, -96, -96, - -96, -96, 460, -96, -96, + 208, 808, 1863, 61, 100, 76, -95, 95, 59, 54, + 261, -95, 405, 86, -95, -95, 641, 91, 67, 187, + 200, -95, -95, -95, 446, 206, 808, -95, -95, -95, + 188, -95, 1681, 1412, 808, 808, 808, -95, 724, 808, + -95, -95, 808, 808, -95, -95, -95, -95, 808, -95, + 808, 808, -95, 808, 808, 131, 212, -95, -95, 808, + 808, 808, -95, -95, -95, 157, 808, 405, 808, 808, + 808, 808, 471, 808, 808, 808, 808, 808, 808, 161, + 808, 808, 808, 112, 119, 117, 154, 178, 173, 234, + 233, 456, 549, 409, 808, 9, 808, 72, 1590, 808, + 808, -95, -95, -95, -95, -95, -95, -95, -95, -95, + -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, + -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, + -95, -95, -95, -95, -95, 139, 808, -95, -95, 66, + 23, -95, 808, -95, -95, 808, -95, -95, -95, -95, + -95, -95, -95, -95, -95, -95, -95, -95, -95, 808, + 33, 808, 808, 69, 57, 808, -95, 1590, 808, 808, + -95, 126, -95, 8, -95, -95, 29, -95, 186, 62, + 60, -95, 207, -95, 36, 1954, -95, -95, -95, -95, + -95, 205, -95, -95, 35, -95, -95, -95, -95, -95, + -95, 1954, -95, -95, 386, -95, 398, 77, 1863, 50, + 162, 78, 42, 2136, 73, 808, -95, 85, 48, 808, + 56, -95, 43, 39, -95, -95, 328, -95, -95, -95, + -95, -95, -95, 75, -95, -95, -95, -95, 84, -95, + -95, -95, -95, -95, -95, 38, 55, 808, 102, 79, + -95, -95, 892, -95, 175, 47, 34, -95, 324, 74, + 16, 551, 65, 68, 477, 278, 328, 808, 292, 808, + 808, 808, 808, 402, 808, 808, 808, 808, 808, 302, + 306, 303, 282, 307, 385, 477, 477, 808, -2, 808, + 71, 808, -95, 641, 808, -95, 808, 58, 63, 808, + 51, 1863, -95, 808, 147, 1863, -95, 808, 14, 808, + 808, 96, 92, 808, -95, 80, 105, 70, -95, -95, + 808, -95, 255, 808, -95, -58, 808, -39, 1863, -95, + 808, 120, 1863, -95, -20, 259, -47, -21, 1954, -36, + -95, 1863, -95, 808, 101, 1863, 11, 1863, -95, 15, + 3, -45, -95, -95, 1863, -54, 401, 2, 337, 116, + 808, 1863, 0, -32, 318, -1, -28, 724, 81, -5, + -95, 980, -95, 45, 19, 46, 808, 44, 17, 808, + 41, 808, 13, -8, 808, -95, 1772, 49, -95, -95, + -95, -95, -95, -95, 808, -95, -95, -95, -95, 272, + -95, 808, -13, -95, 1863, -95, 64, -95, -95, 1863, + -95, 808, 98, 4, -95, 25, -95, 31, 93, 808, + -95, 40, 37, -95, -12, -95, 1863, -95, 123, 1863, + -95, 288, -95, -95, 109, 1863, 20, -95, -4, 1, + -95, 328, -14, 21, -95, -95, -95, -95, 808, 115, + 1863, -95, 808, 125, 1863, -95, 12, -95, 185, -95, + -95, 808, -95, -95, 252, -95, -95, -95, 97, 1154, + -95, -95, 1067, -95, -95, 1241, -95, -95, -95, -95, + -95, -95, 94, -95, -95, -95, -95, -95, -95, -95, + -95, -95, 407, -95, -73, 376, -95, -95, -95, -95, + 179, 321, 198, -95, -95, 110, -95, -95, 227, -95, + 248, 228, -95, 89, -95, -95, -95, 219, -95, -95, + 103, -95, -95, -95, -95, 127, -95, 475, -95, -95, + -46, 168, 165, -95, -6, -95, -95, 500, 189, -95, + 158, -95, -95, -95, 32, 176, -95, 808, -95, 262, + -95, -95, 6, 10, 128, -95, 808, -95, 148, -95, + -95, 5, 145, 30, -3, 213, 177, 216, -95, -95, + -95, -95, -95, 1325, -95, -95, 327, -95, -95, 2045, + 1499, -95, 345, 26, 330, 82, 808, 1863, 28, 22, + 310, 52, 27, 584, 81, 53, -95, 980, -95, 24, + -31, -7, 808, 7, -9, 808, 18, 808, -10, -19, + -15, 111, -95, 334, -95, -95, -95, - -108, 7, 100, -6, -108, -108, -108, -108, -108, -108, - -108, -108, -108, -108, -108, -108, -40, -108, -108, -108, - -108, -108, -108, -108, -108, -108, 103, -108, -108, -108, - 32, -108, -108, 27, 37, 80, 79, -108, 89, 159, - -108, -108, 167, 162, -108, -108, -108, -108, 156, -108, - 163, 155, -108, 178, 173, -108, -108, -108, -108, 170, - 177, 180, -108, -108, -108, -108, 116, -108, 119, 112, - 137, 111, -108, 110, 108, 121, 145, 149, 148, -108, - 135, 132, 123, -108, -108, -108, -108, -108, -108, -108, - -108, -108, -108, -108, 130, -108, 128, -108, 143, 43, - 40, -108, -108, -108, -108, -108, -108, -108, -108, -108, - -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, - -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, - -108, -108, -108, -108, -108, -108, 53, -108, -108, -108, - -108, -108, 54, -108, -108, 55, -108, -108, -108, -108, - -108, -108, -108, -108, -108, -108, -108, -108, -108, 106, - -108, 131, -19, -108, -108, -29, -108, 231, 13, 175, - -108, -108, -108, -108, -108, -108, -108, -108, 30, -108, - -108, -108, 3, -108, -108, 18, -108, -108, -108, -108, - -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, - -108, 91, -108, -108, 44, -108, 49, -108, 50, -108, - 57, -108, -108, -108, -108, 59, -108, -108, -108, 56, - 39, -108, -108, -108, -108, -108, 77, -108, -108, -108, - -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, - -108, -108, -108, -108, -108, -108, -108, 24, -108, -108, - -108, -108, 85, -108, -108, -108, -108, -108, -108, -108, - -108, -108, -108, -108, -108, -108, 17, 206, -108, 240, - 232, 205, 209, -108, 96, 84, 93, 95, 87, -108, - -108, -108, -108, -108, -108, -108, -108, 236, -108, 217, - -108, 185, -108, -108, 233, -108, 136, -108, -108, 176, - -108, 0, -108, 8, -108, 41, -108, 184, -108, 187, - 203, -108, -108, 196, -108, -108, -108, -108, -108, -108, - 230, -108, 101, 98, -108, -108, 151, -108, 46, -108, - 52, -108, 65, -108, -108, 113, -108, -108, 90, -108, - -108, 62, -108, 66, -108, 63, -108, 42, -108, -108, - -108, -108, -108, -108, 81, -108, 68, -108, 70, -108, - 74, 83, -108, -108, 45, -108, -108, 78, -108, -108, - -108, 47, -108, -108, -108, -108, 10, -108, -21, 163, - -108, 61, -108, -108, -2, -108, -16, -108, -108, -108, - -108, -108, -108, -108, 21, -108, -108, -108, -108, -108, - -108, 82, -108, -108, 31, -108, -108, -108, -108, 4, - -108, 5, -108, -108, -108, -108, -108, -83, -108, 72, - -108, -13, -108, -108, -108, -108, -26, -108, -108, -22, - -108, -108, -108, -108, -108, -108, -11, -108, -108, -3, - -108, 73, -108, 58, -108, -108, -108, -108, 71, -108, - 69, -108, 67, -108, 76, -108, -108, -108, -108, -108, - -108, 36, -108, -108, 88, -108, -108, -108, -108, 51, - -108, -108, 75, -108, -108, 48, -108, -108, -108, -108, - -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, - -108, -108, 104, -108, 60, -108, -108, -108, -108, -108, - -108, -108, 64, -108, -108, -108, -108, -108, 33, -108, - 6, -108, -108, -108, -108, -108, -108, 9, -108, -108, - -108, -108, -108, -108, -108, 169, 262, -108, 11, -108, - -108, -108, -108, 227, -108, -108, -108, -108, -108, 12, - -108, -108, 278, -8, -108, -108, -5, -108, -108, -108, - -108, -108, -108, -17, -108, -108, -108, -108, -108, -108, - 2, -108, -108, -108, -108, -108, -108, -108, -108, 35, - -108, -108, -108, -108, -108, 23, -108, -108, 26, 25, - 38, -108, -108, -108, 288, -108, -108, 16, -108, -108, - -108, 361, -108, 20, -108, 15, -108, 97, 28, -108, - -108, 22, -108, -108, 94, -108, -108, -108, 29, -108, - -108, -108, -108, 19, -108, 14, 163, -108, 102, -108, - -108, -108, -108, 219, -108, 34, -108, 86, -108, -108, - -108, -108, 286, -108, -108}; + -103, 37, 13, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -55, -103, -103, -103, + -103, -103, -103, -103, -103, -103, 89, -103, -103, -103, + 24, -103, -103, 6, 15, 92, 100, -103, 154, 66, + -103, -103, 86, 143, -103, -103, -103, -103, 152, -103, + 144, 140, -103, 134, 135, -103, -103, -103, -103, 161, + 170, 176, -103, -103, -103, -103, 174, -103, 169, 153, + 162, 167, -103, 128, 126, 112, 116, 119, 113, -103, + 111, 104, 110, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, 63, -103, 120, -103, 88, 77, + 57, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, 28, -103, -103, -103, + -103, -103, 31, -103, -103, 36, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, 157, + -103, 125, -24, -103, -103, -14, -103, 210, 27, 160, + -103, -103, -103, -103, -103, -103, -103, -103, 8, -103, + -103, -103, -5, -103, -103, 74, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, 94, -103, -103, 44, -103, 35, -103, 81, -103, + 61, -103, -103, -103, -103, 75, -103, -103, -103, 4, + -7, -103, -103, -103, -103, -103, 26, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, 68, -103, -103, + -103, -103, 90, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, 70, 220, -103, 208, + 231, 230, 234, -103, 101, 82, 60, 76, 79, -103, + -103, -103, -103, -103, -103, -103, -103, 211, -103, 194, + -103, 192, -103, -103, 204, -103, 166, -103, -103, 197, + -103, 23, -103, -1, -103, 9, -103, 180, -103, 181, + 223, -103, -103, 227, -103, -103, -103, -103, -103, -103, + 184, -103, 93, 98, -103, -103, 108, -103, 83, -103, + 78, -103, 40, -103, -103, 109, -103, -103, 102, -103, + -103, 41, -103, 43, -103, 52, -103, 62, -103, -103, + -103, -103, -103, -103, 55, -103, 50, -103, 51, -103, + 107, 49, -103, -103, 73, -103, -103, 154, -103, -103, + -103, 64, -103, -103, -103, -103, 16, -103, 12, 147, + -103, 103, -103, -103, -4, -103, 0, -103, -103, -103, + -103, -103, -103, -103, 7, -103, -103, -103, -103, -103, + -103, 187, -103, -103, 25, -103, -103, -103, -103, 71, + -103, 65, -103, -103, -103, -103, -103, -44, -103, 46, + -103, -34, -103, -103, -103, -103, -21, -103, -103, -45, + -103, -103, -103, -103, -103, -103, -32, -103, -103, 53, + -103, 56, -103, 47, -103, -103, -103, -103, 42, -103, + 45, -103, 38, -103, 48, -103, -103, -103, -103, -103, + -103, 22, -103, -103, 124, -103, -103, -103, -103, 59, + -103, -103, 137, -103, -103, 54, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, -103, 248, -103, -3, 114, -103, -103, -103, -103, + -103, -103, 5, -103, -103, -103, -103, -103, -8, -103, + 85, -103, -103, -103, -103, -103, -103, 11, -103, -103, + -103, -103, -103, -103, -103, -103, -103, 342, -103, -103, + -103, 29, -103, -103, -103, -103, -103, 273, -103, -103, + 3, -103, -103, -103, -103, -103, -103, 18, -103, -103, + -103, -103, -103, -103, -103, -103, 21, -103, -103, -103, + -103, -103, 2, -103, -103, 20, 14, 30, -103, -103, + -103, -103, -103, 284, -103, -103, -2, -103, -103, -103, + 222, -103, -9, -103, -6, -103, 96, 10, -103, -103, + 1, -103, -103, 80, -103, -103, -103, 72, -103, -103, + -103, -103, 69, -103, 58, 67, -103, 97, -103, -103, + -103, -103, -103, 84, -103, -103, -103}; const int QmlJSGrammar::action_info [] = { - -100, 525, 252, 398, -90, -133, 343, -103, -133, -122, - 448, -104, 439, 452, 525, 582, 533, 426, 340, 337, - 335, 338, 347, 396, 443, 579, 386, 435, 553, 384, - 525, 411, 574, -104, -125, 492, 567, -122, 403, 419, - 419, 335, 419, -100, 343, 252, 415, 441, -130, -127, - 452, 425, 448, -130, 435, 575, 435, -103, 435, 394, - 461, 558, -127, -125, 411, 159, 165, 178, 182, 330, - 136, 267, 301, 142, 404, 174, 409, 94, 267, 341, - 184, 452, 185, 247, 291, 299, 435, 448, 66, -114, - 411, 66, 320, 144, 252, 159, 313, 634, 422, 231, - 136, 0, 343, 322, 136, 287, 0, 472, 0, 136, - 429, 136, 0, 0, 438, 0, 287, 289, 96, 136, - 136, 94, 296, 136, 246, 136, 53, 136, 439, 0, - 0, 161, 625, 136, 328, 162, 0, 54, 0, 136, - 326, 0, 289, 423, 244, 243, 244, 243, 136, 96, - 309, 57, 172, 136, 310, 473, 323, 0, 560, 244, - 243, 483, 58, 242, 241, 237, 236, 492, 408, 407, - 554, 332, 454, 631, 510, 450, 541, 249, 307, 345, - 626, 251, 250, 515, 514, 413, 53, 522, 521, 53, - 53, 305, 539, 507, 506, 136, 137, 54, 464, 554, - 54, 54, 554, 31, 0, 525, 564, 563, 525, 80, - 584, 81, 561, 559, 80, 556, 81, 59, 510, 59, - 554, 0, 82, 31, 519, 518, 555, 82, 0, 80, - 569, 81, 0, 3, 2, 1, 539, 31, 504, 503, - 44, 45, 82, 31, 556, 31, 0, 556, 573, 572, - 31, 465, 463, 517, 59, 555, 136, 31, 555, 31, - 44, 45, 60, 31, 60, 556, 31, 502, 61, 31, - 61, 136, 98, 0, 44, 45, 555, 80, 31, 81, - 44, 45, 44, 45, 570, 568, 0, 44, 45, 31, - 82, 99, 167, 100, 44, 45, 44, 45, 31, 60, - 44, 45, 31, 44, 45, 61, 44, 45, 31, 230, - 229, 168, 31, 169, 31, 44, 45, 136, 0, 0, - 0, -344, 167, 0, 433, 432, 44, 45, 0, 269, - 270, 68, 69, 68, 69, 44, 45, 31, 0, 44, - 45, 168, 539, 401, -344, 44, 45, 510, 0, 44, - 45, 44, 45, 80, 0, 81, 271, 272, 70, 71, - 70, 71, 0, 0, 274, 275, 82, 31, 274, 275, - 230, 229, 31, 276, 44, 45, 277, 276, 278, 511, - 277, 31, 278, 274, 275, 0, 0, 0, 0, 0, - 0, 0, 276, 512, 509, 277, 0, 278, 31, 235, - 234, 0, 499, 31, 44, 45, 31, 0, 0, 44, - 45, 0, 0, 235, 234, 0, 31, 0, 44, 45, - 274, 275, 508, 31, 269, 270, 0, 0, 498, 276, - 240, 239, 277, 499, 278, 44, 45, 31, 235, 234, - 44, 45, 0, 44, 45, 0, 0, 0, 240, 239, - 0, 271, 272, 44, 45, 240, 239, 73, 74, 498, - 44, 45, 0, 0, 0, 75, 76, 499, 0, 77, - 545, 78, 0, 500, 44, 45, 73, 74, 0, 0, - 545, 0, 546, 31, 75, 76, 73, 74, 77, 31, - 78, 0, 546, 498, 75, 76, 73, 74, 77, 31, - 78, 0, 274, 275, 75, 76, 0, 0, 77, 0, - 78, 276, 0, 499, 277, 0, 278, 0, 0, 499, - 44, 45, 0, 0, 0, 0, 547, 548, 0, 499, - 0, 0, 0, 0, 221, 0, 547, 548, 0, 498, - 0, 525, 146, 205, 221, 498, 0, 0, 0, 0, - 0, 0, 147, 205, 0, 498, 148, 0, 0, 0, - 0, 0, 0, 0, 0, 149, 0, 150, 0, 0, - 0, 0, 0, 0, 0, 73, 74, 0, 151, 0, - 152, 57, 0, 75, 76, 146, 0, 77, 153, 78, - 0, 154, 58, 0, 0, 147, 0, 155, 0, 148, - 0, 0, 0, 156, 0, 0, 0, 0, 149, 0, - 150, 0, 0, 303, 0, 0, 0, 0, 157, 0, - 0, 151, 0, 152, 57, 0, 0, 0, 0, 0, - 0, 153, 0, 0, 154, 58, 0, 0, 0, 0, - 155, 0, 0, 0, 0, 0, 156, 0, 146, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 147, 0, - 0, 157, 148, 0, 0, 0, 0, 0, 0, 0, - 0, 149, 0, 150, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 151, 0, 152, 57, 0, 0, - 0, 0, 0, 0, 153, 0, 0, 154, 58, 0, - 0, 0, 0, 155, 0, 0, 0, 0, 0, 156, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, - 0, 30, 0, 0, 0, 0, 0, 0, 31, 0, - 0, 0, 32, 33, 0, 34, 0, 0, 0, 0, - 0, 0, 38, 0, 0, 0, 41, 0, 0, 0, + -114, 398, -93, 326, 252, 411, -89, -103, 343, -122, + 396, 386, 338, 337, -116, 492, 335, 452, -79, 340, + 540, 328, 384, 561, 435, -119, 448, 347, 452, 461, + 419, -92, 441, -122, 435, -103, 419, 415, 566, 554, + 439, 562, 335, 425, 426, 419, 443, 403, -119, 448, + 435, -116, -92, -114, 435, 411, 394, 569, 252, -89, + -93, 545, 287, 343, 165, 178, 136, 307, 174, 185, + 182, 159, 267, 66, 142, 452, 289, 296, 343, 448, + 404, 94, 291, 144, 411, 341, 252, 96, -111, 435, + 231, 247, 409, 159, 136, 287, 66, 320, 307, 313, + 616, 330, 136, 422, 0, 472, 136, 94, 0, 136, + 136, 301, 289, 322, 246, 438, 53, 161, 309, 613, + 184, 162, 310, 136, 299, 408, 407, 54, 136, 439, + 429, 136, 96, 136, 136, 556, 237, 236, 244, 243, + 251, 250, 510, 244, 243, 242, 241, 136, 423, 492, + 515, 514, 53, 473, 483, 136, 136, 53, 413, 53, + 527, 345, 249, 54, 522, 521, 323, 614, 54, 59, + 54, 507, 506, 57, 541, 450, 267, 244, 243, 80, + 332, 81, 172, 547, 58, 454, 80, 541, 81, 557, + 555, 31, 82, 464, 541, 137, 573, 31, 80, 82, + 81, 0, 167, 80, 510, 81, 541, 305, 0, 560, + 559, 82, 59, 136, 60, 31, 82, 31, 0, 543, + 61, 168, 527, 169, 59, 0, 0, 31, 44, 45, + 542, 80, 543, 81, 44, 45, 31, 548, 546, 543, + 504, 503, 31, 542, 82, 31, 465, 463, 31, 0, + 542, 543, 44, 45, 44, 45, 31, 60, 80, 80, + 81, 81, 542, 61, 44, 45, 230, 229, 502, 60, + 136, 82, 82, 44, 45, 61, 98, 31, 0, 44, + 45, 31, 44, 45, 31, 44, 45, 167, 31, 519, + 518, 0, 0, 44, 45, 99, 136, 100, 3, 2, + 1, 0, 0, 80, 0, 81, 168, 80, 401, 81, + 269, 270, 0, 0, 44, 45, 82, 517, 44, 45, + 82, 44, 45, 551, 550, 44, 45, 80, 80, 81, + 81, 80, 80, 81, 81, 136, 510, 271, 272, 31, + 82, 82, 269, 270, 82, 82, -333, 31, 0, 433, + 432, 0, 0, 0, -333, 0, 0, 31, 0, 31, + 527, 0, 0, 31, 0, 0, 31, 0, 511, 271, + 272, 0, 0, 0, 31, 0, 44, 45, 0, 0, + 0, 0, 512, 509, 44, 45, 0, 0, 230, 229, + 0, 240, 239, 499, 44, 45, 44, 45, 240, 239, + 44, 45, 0, 44, 45, 31, 235, 234, 274, 275, + 508, 44, 45, 0, 0, 31, 0, 276, 0, 498, + 277, 0, 278, 68, 69, 274, 275, 31, 0, 0, + 31, 0, 73, 74, 276, 499, 31, 277, 0, 278, + 75, 76, 44, 45, 77, 0, 78, 235, 234, 0, + 70, 71, 44, 45, 0, 0, 0, 0, 0, 240, + 239, 498, 235, 234, 44, 45, 499, 44, 45, 73, + 74, 0, 500, 44, 45, 0, 0, 75, 76, 73, + 74, 77, 0, 78, 0, 530, 0, 75, 76, 0, + 0, 77, 498, 78, 73, 74, 0, 531, 0, 0, + 274, 275, 75, 76, 31, 0, 77, 0, 78, 276, + 530, 0, 277, 0, 278, 0, 0, 0, 0, 0, + 0, 0, 531, 0, 0, 0, 0, 0, 0, 31, + 533, 0, 0, 0, 499, 0, 0, 0, 0, 0, + 0, 532, 534, 0, 0, 0, 0, 0, 0, 221, + 0, 0, 0, 0, 146, 571, 0, 0, 205, 499, + 498, 0, 0, 0, 147, 0, 532, 534, 148, 0, + 0, 0, 73, 74, 221, 0, 0, 149, 0, 150, + 75, 76, 303, 205, 77, 498, 78, 0, 0, 0, + 151, 0, 152, 57, 0, 0, 27, 28, 0, 0, + 153, 0, 0, 154, 58, 0, 30, 0, 0, 155, + 0, 0, 0, 31, 0, 156, 0, 32, 33, 0, + 34, 0, 0, 0, 0, 0, 0, 38, 0, 0, + 157, 41, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 146, 0, 0, 0, 0, 46, + 44, 45, 0, 47, 147, 0, 0, 0, 148, 0, + 0, 0, 0, 0, 40, 49, 29, 149, 0, 150, + 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 151, 0, 152, 57, 0, 0, 0, 0, 0, 0, + 153, 0, 0, 154, 58, 0, 0, 0, 0, 155, + 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 46, 44, 45, 0, 47, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, - 49, 29, 0, 0, 0, 37, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 26, 27, 28, 0, 0, + 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 32, 33, 0, - 34, 0, 0, 0, 35, 0, 36, 38, 39, 0, - 0, 41, 0, 0, 0, 42, 0, 43, 0, 0, + 34, 0, 0, 0, 0, 0, 0, 38, 0, 0, + 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, - 44, 45, 0, 47, 0, 48, 0, 50, 0, 51, + 44, 45, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 49, 29, 0, 0, 0, - 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -123, 0, 0, 0, 26, 27, 28, 0, 0, 0, - 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, - 0, 0, 31, 0, 0, 0, 32, 33, 0, 34, - 0, 0, 0, 35, 0, 36, 38, 39, 0, 0, - 41, 0, 0, 0, 42, 0, 43, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 46, 44, - 45, 0, 47, 0, 48, 0, 50, 0, 51, 0, - 0, 0, 0, 40, 49, 29, 0, 0, 0, 37, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, + 37, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 32, 33, 0, 34, 0, 0, 0, 35, 0, 36, 38, 39, 0, 0, 41, 0, 0, 0, 42, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 44, 45, 0, 47, 0, 48, - 0, 50, 266, 51, 0, 0, 0, 0, 40, 49, + 0, 50, 0, 51, 0, 0, 0, 0, 40, 49, 29, 0, 0, 0, 37, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 470, 0, 0, 26, 27, 28, - 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, - 0, 0, 0, 0, 0, 31, 0, 0, 0, 32, - 33, 0, 34, 0, 0, 0, 35, 0, 36, 38, - 39, 0, 0, 41, 0, 0, 0, 42, 0, 43, - 0, 0, 471, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 44, 45, 0, 47, 0, 48, 0, 50, - 0, 51, 0, 0, 0, 0, 40, 49, 29, 0, - 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 478, 0, 0, 26, 27, 28, 0, 0, - 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, - 0, 0, 0, 31, 0, 0, 0, 32, 33, 0, - 34, 0, 0, 0, 35, 0, 36, 38, 39, 0, - 0, 41, 0, 0, 0, 42, 0, 43, 0, 0, - 481, 0, 0, 0, 0, 0, 0, 0, 0, 46, - 44, 45, 0, 47, 0, 48, 0, 50, 0, 51, - 0, 0, 0, 0, 40, 49, 29, 0, 0, 0, - 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 26, 27, 28, 0, 0, 0, 0, 0, 0, 0, - 0, 30, 0, 0, 0, 0, 0, 0, 31, 212, - 0, 0, 590, 591, 0, 34, 0, 0, 0, 35, - 0, 36, 38, 39, 0, 0, 41, 0, 0, 0, - 42, 0, 43, 0, 0, 0, 0, 0, 0, 0, - 216, 0, 0, 0, 46, 44, 45, 0, 47, 0, - 48, 0, 50, 0, 51, 0, 0, 0, 0, 40, - 49, 29, 0, 0, 0, 37, 0, 0, 0, 0, + 0, 0, 0, 26, 27, 28, 0, 0, 0, 0, + 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, + 0, 31, 0, 0, 0, 32, 33, 0, 34, 0, + 0, 0, 35, 0, 36, 38, 39, 0, 0, 41, + 0, 0, 0, 42, 0, 43, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 46, 44, 45, + 0, 47, 0, 48, 0, 50, 266, 51, 0, 0, + 0, 0, 40, 49, 29, 0, 0, 0, 37, 0, + 0, 0, 0, 0, 0, 0, 0, -112, 0, 0, + 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, + 0, 0, 30, 0, 0, 0, 0, 0, 0, 31, + 0, 0, 0, 32, 33, 0, 34, 0, 0, 0, + 35, 0, 36, 38, 39, 0, 0, 41, 0, 0, + 0, 42, 0, 43, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 46, 44, 45, 0, 47, + 0, 48, 0, 50, 0, 51, 0, 0, 0, 0, + 40, 49, 29, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 470, 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, @@ -482,60 +447,76 @@ const int QmlJSGrammar::action_info [] = { 0, 0, 46, 44, 45, 0, 47, 0, 48, 0, 50, 0, 51, 0, 0, 0, 0, 40, 49, 29, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 478, 0, 0, 26, 27, 28, 0, + 0, 0, 478, 0, 0, 26, 27, 28, 0, 0, + 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, + 0, 0, 0, 31, 0, 0, 0, 32, 33, 0, + 34, 0, 0, 0, 35, 0, 36, 38, 39, 0, + 0, 41, 0, 0, 0, 42, 0, 43, 0, 0, + 481, 0, 0, 0, 0, 0, 0, 0, 0, 46, + 44, 45, 0, 47, 0, 48, 0, 50, 0, 51, + 0, 0, 0, 0, 40, 49, 29, 0, 0, 0, + 37, 0, 0, 0, 0, 0, 0, 0, 0, 478, + 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, + 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, + 31, 0, 0, 0, 32, 33, 0, 34, 0, 0, + 0, 35, 0, 36, 38, 39, 0, 0, 41, 0, + 0, 0, 42, 0, 43, 0, 0, 479, 0, 0, + 0, 0, 0, 0, 0, 0, 46, 44, 45, 0, + 47, 0, 48, 0, 50, 0, 51, 0, 0, 0, + 0, 40, 49, 29, 0, 0, 0, 37, 0, 0, + 0, 0, 0, 0, 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, - 0, 0, 0, 0, 31, 0, 0, 0, 32, 33, + 0, 0, 0, 0, 31, 212, 0, 0, 579, 580, 0, 34, 0, 0, 0, 35, 0, 36, 38, 39, 0, 0, 41, 0, 0, 0, 42, 0, 43, 0, - 0, 479, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 46, 44, 45, 0, 47, 0, 48, 0, 50, 0, 51, 0, 0, 0, 0, 40, 49, 29, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 470, 0, 0, 26, 27, 28, 0, 0, 0, - 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, - 0, 0, 31, 0, 0, 0, 32, 33, 0, 34, - 0, 0, 0, 35, 0, 36, 38, 39, 0, 0, - 41, 0, 0, 0, 42, 0, 43, 0, 0, 471, - 0, 0, 499, 0, 0, 0, 0, 0, 46, 44, - 45, 0, 47, 0, 48, 0, 50, 0, 51, 0, - 0, 0, 0, 40, 49, 29, 0, 0, 498, 37, - 525, 0, 0, 0, 0, 0, 0, 0, 0, 104, - 105, 106, 0, 0, 108, 110, 111, 0, 0, 112, - 0, 113, 0, 0, 0, 115, 116, 117, 0, 0, - 0, 0, 0, 0, 31, 118, 119, 120, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 121, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 124, 0, 0, 0, 0, 0, - 0, 44, 45, 125, 126, 127, 0, 129, 130, 131, - 132, 133, 134, 0, 0, 122, 128, 114, 107, 109, - 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 104, 105, 106, 0, 0, 108, 110, 111, 0, - 0, 112, 0, 113, 0, 0, 0, 115, 116, 117, - 0, 0, 0, 0, 0, 0, 31, 118, 119, 120, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 121, 0, 0, 0, 534, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 124, 0, 0, 0, - 0, 0, 0, 44, 45, 125, 126, 127, 0, 129, - 130, 131, 132, 133, 134, 0, 0, 122, 128, 114, - 107, 109, 123, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 104, 105, 106, 0, 0, 108, 110, - 111, 0, 0, 112, 0, 113, 0, 0, 0, 115, - 116, 117, 0, 0, 0, 0, 0, 0, 388, 118, - 119, 120, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 121, 0, 0, 0, 389, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, - 0, 0, 0, 0, 393, 390, 392, 125, 126, 127, - 0, 129, 130, 131, 132, 133, 134, 0, 0, 122, - 128, 114, 107, 109, 123, 0, 0, 0, 0, 0, + 470, 0, 0, 26, 27, 28, 0, 0, 0, 0, + 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, + 0, 31, 0, 0, 0, 32, 33, 0, 34, 0, + 0, 0, 35, 0, 36, 38, 39, 0, 0, 41, + 0, 0, 0, 42, 0, 43, 0, 0, 471, 0, + 0, 0, 0, 0, 0, 0, 0, 46, 44, 45, + 0, 47, 0, 48, 0, 50, 0, 51, 0, 0, + 0, 0, 40, 49, 29, 0, 0, 0, 37, 0, + 0, 0, 0, 0, 0, 0, 0, 470, 0, 0, + 26, 27, 28, 0, 0, 0, 0, 0, 0, 0, + 0, 30, 0, 0, 0, 0, 0, 0, 31, 0, + 0, 0, 32, 33, 0, 34, 0, 0, 0, 35, + 0, 36, 38, 39, 0, 0, 41, 0, 0, 0, + 42, 0, 43, 0, 0, 471, 0, 0, 499, 0, + 0, 0, 0, 0, 46, 44, 45, 0, 47, 0, + 48, 0, 50, 0, 51, 0, 0, 0, 0, 40, + 49, 29, 0, 0, 498, 37, 0, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 106, 0, 0, 108, + 110, 111, 0, 0, 112, 0, 113, 0, 0, 0, + 115, 116, 117, 0, 0, 0, 0, 0, 0, 31, + 118, 119, 120, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, + 0, 0, 0, 0, 0, 0, 44, 45, 125, 126, + 127, 0, 129, 130, 131, 132, 133, 134, 0, 0, + 122, 128, 114, 107, 109, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 105, 106, 0, 0, 108, 110, 111, 0, 0, 112, 0, 113, 0, 0, 0, 115, 116, 117, 0, 0, 0, 0, 0, 0, 388, 118, 119, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 389, 0, - 0, 0, 0, 0, 0, 0, 391, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, 0, 0, 0, 0, 393, 390, 392, 125, 126, 127, 0, 129, 130, 131, 132, 133, 134, 0, 0, 122, 128, 114, 107, 109, 123, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 104, 105, 106, 0, + 0, 108, 110, 111, 0, 0, 112, 0, 113, 0, + 0, 0, 115, 116, 117, 0, 0, 0, 0, 0, + 0, 388, 118, 119, 120, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 121, 0, 0, 0, 389, + 0, 0, 0, 0, 0, 0, 0, 391, 0, 0, + 0, 124, 0, 0, 0, 0, 0, 393, 390, 392, + 125, 126, 127, 0, 129, 130, 131, 132, 133, 134, + 0, 0, 122, 128, 114, 107, 109, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 0, 0, 0, 0, 206, 0, 26, 27, 28, 208, 0, 0, 0, 0, 0, 0, 209, 30, 0, 0, 0, 0, @@ -545,219 +526,190 @@ const int QmlJSGrammar::action_info [] = { 0, 0, 215, 0, 216, 0, 0, 0, 46, 214, 217, 218, 47, 219, 48, 220, 50, 221, 51, 222, 223, 0, 0, 40, 49, 29, 205, 207, 0, 37, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, - 0, 0, 0, 0, 206, 0, 26, 27, 28, 208, - 0, 0, 0, 0, 0, 0, 209, 210, 0, 0, - 0, 0, 0, 0, 211, 212, 0, 0, 213, 33, - 0, 34, 0, 0, 0, 35, 0, 36, 38, 39, - 0, 0, 41, 0, 0, 0, 42, 0, 43, 0, - 0, 0, 0, 0, 215, 0, 216, 0, 0, 0, - 46, 214, 217, 218, 47, 219, 48, 220, 50, 221, - 51, 222, 223, 0, 0, 40, 49, 29, 205, 207, - 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 593, 105, 106, 0, 0, 595, 110, 597, 27, - 28, 598, 0, 113, 0, 0, 0, 115, 600, 601, - 0, 0, 0, 0, 0, 0, 602, 603, 119, 120, - 213, 33, 0, 34, 0, 0, 0, 35, 0, 36, - 604, 39, 0, 0, 606, 0, 0, 0, 42, 0, - 43, 0, 0, 0, 0, 0, 608, 0, 216, 0, - 0, 0, 610, 607, 609, 611, 612, 613, 48, 615, - 616, 617, 618, 619, 620, 0, 0, 605, 614, 599, - 594, 596, 123, 37, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 356, 105, 106, 0, 0, 358, 110, - 360, 27, 28, 361, 0, 113, 0, 0, 0, 115, - 363, 364, 0, 0, 0, 0, 0, 0, 365, 366, - 119, 120, 213, 33, 0, 34, 0, 0, 0, 35, - 0, 36, 367, 39, 0, 0, 369, 0, 0, 0, - 42, 0, 43, 0, -269, 0, 0, 0, 371, 0, - 216, 0, 0, 0, 373, 370, 372, 374, 375, 376, - 48, 378, 379, 380, 381, 382, 383, 0, 0, 368, - 377, 362, 357, 359, 123, 37, 0, 0, 0, 0, - 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 204, 0, + 0, 0, 0, 206, 0, 26, 27, 28, 208, 0, + 0, 0, 0, 0, 0, 209, 210, 0, 0, 0, + 0, 0, 0, 211, 212, 0, 0, 213, 33, 0, + 34, 0, 0, 0, 35, 0, 36, 38, 39, 0, + 0, 41, 0, 0, 0, 42, 0, 43, 0, 0, + 0, 0, 0, 215, 0, 216, 0, 0, 0, 46, + 214, 217, 218, 47, 219, 48, 220, 50, 221, 51, + 222, 223, 0, 0, 40, 49, 29, 205, 207, 0, + 37, 0, 0, 0, 0, 0, 0, 0, 0, 582, + 105, 106, 0, 0, 584, 110, 586, 27, 28, 587, + 0, 113, 0, 0, 0, 115, 589, 590, 0, 0, + 0, 0, 0, 0, 591, 592, 119, 120, 213, 33, + 0, 34, 0, 0, 0, 35, 0, 36, 593, 39, + 0, 0, 595, 0, 0, 0, 42, 0, 43, 0, + 0, 0, 0, 0, 597, 0, 216, 0, 0, 0, + 599, 596, 598, 600, 601, 602, 48, 604, 605, 606, + 607, 608, 609, 0, 0, 594, 603, 588, 583, 585, + 123, 37, 0, 0, 0, 0, 0, 0, 0, 0, + 356, 105, 106, 0, 0, 358, 110, 360, 27, 28, + 361, 0, 113, 0, 0, 0, 115, 363, 364, 0, + 0, 0, 0, 0, 0, 365, 366, 119, 120, 213, + 33, 0, 34, 0, 0, 0, 35, 0, 36, 367, + 39, 0, 0, 369, 0, 0, 0, 42, 0, 43, + 0, -258, 0, 0, 0, 371, 0, 216, 0, 0, + 0, 373, 370, 372, 374, 375, 376, 48, 378, 379, + 380, 381, 382, 383, 0, 0, 368, 377, 362, 357, + 359, 123, 37, 0, 0, 0, 0, 0, 0, 0, + 0, - 491, 434, 302, 632, 565, 562, 410, 166, 412, 557, - 13, 304, 183, 431, 420, 516, 171, 164, 520, 445, - 202, 387, 431, 542, 238, 629, 315, 248, 145, 233, - 245, 177, 297, 405, 385, 583, 434, 592, 571, 181, - 482, 177, 513, 306, 348, 627, 135, 581, 329, 578, - 297, 580, 245, 233, 177, 331, 427, 395, 238, 431, - 430, 434, 297, 467, 342, 346, 334, 333, 523, 344, - 453, 451, 462, 505, 449, 428, 141, 233, 455, 238, - 444, 424, 442, 397, 477, 245, 456, 480, 440, 138, - 143, 158, 202, 202, 0, 497, 0, 456, 628, 0, - 0, 297, 490, 0, 0, 0, 55, 475, 447, 0, - 315, 474, 0, 497, 501, 0, 0, 399, 141, 55, - 400, 175, 181, 402, 55, 55, 485, 484, 399, 55, - 261, 400, 55, 399, 280, 265, 400, 283, 55, 297, - 55, 55, 55, 281, 175, 282, 279, 55, 55, 447, - 175, 55, 101, 55, 297, 55, 55, 55, 86, 103, - 79, 55, 93, 91, 55, 160, 55, 325, 55, 67, - 72, 87, 85, 55, 466, 55, 55, 55, 530, 297, - 55, 84, 55, 97, 83, 531, 0, 95, 92, 324, - 55, 339, 163, 55, 55, 88, 0, 232, 90, 89, - 55, 55, 447, 489, 55, 298, 486, 55, 55, 488, - 446, 141, 55, 336, 487, 55, 173, 62, 55, 0, - 327, 65, 55, 55, 63, 55, 56, 64, 497, 55, - 293, 630, 55, 629, 265, 265, 530, 265, 0, 0, - 101, 293, 535, 531, 308, 300, 265, 103, 293, 311, - 55, 55, 292, 265, 55, 265, 265, 285, 0, 265, - 268, 286, 55, 314, 0, 0, 0, 265, 0, 170, - 312, 497, 0, 290, 537, 293, 0, 55, 293, 0, - 265, 55, 265, 265, 284, 55, 265, 497, 551, 0, - 265, 587, 273, 0, 288, 497, 551, 321, 0, 0, - 295, 0, 0, 0, 0, 633, 0, 544, 552, 0, - 585, 586, 588, 589, 0, 544, 552, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 233, 513, 304, 238, 183, 523, 164, 431, 145, 434, + 177, 306, 245, 581, 505, 490, 166, 181, 482, 431, + 520, 549, 565, 544, 558, 302, 385, 405, 434, 570, + 171, 387, 430, 177, 567, 456, 467, 395, 552, 568, + 13, 453, 333, 342, 238, 449, 344, 451, 420, 428, + 455, 245, 462, 233, 346, 424, 427, 397, 138, 233, + 238, 143, 440, 444, 348, 442, 158, 297, 412, 445, + 334, 248, 431, 410, 434, 297, 202, 0, 297, 315, + 135, 331, 177, 245, 477, 329, 0, 141, 0, 480, + 0, 0, 0, 497, 516, 615, 202, 101, 0, 0, + 55, 297, 315, 55, 202, 281, 55, 55, 486, 446, + 0, 297, 0, 0, 399, 95, 55, 400, 181, 55, + 103, 282, 55, 497, 283, 524, 55, 280, 487, 55, + 261, 175, 55, 456, 484, 265, 55, 55, 175, 447, + 55, 55, 485, 55, 55, 447, 279, 55, 84, 175, + 55, 55, 55, 55, 85, 83, 55, 87, 90, 55, + 55, 88, 325, 475, 89, 55, 55, 474, 55, 297, + 97, 86, 327, 79, 55, 55, 324, 56, 65, 0, + 55, 163, 447, 55, 55, 488, 446, 55, 399, 446, + 141, 400, 55, 55, 489, 232, 173, 55, 339, 91, + 297, 55, 55, 62, 336, 466, 0, 55, 92, 55, + 55, 160, 63, 93, 55, 72, 55, 141, 64, 101, + 55, 55, 67, 402, 293, 265, 265, 0, 0, 265, + 298, 610, 293, 612, 55, 308, 0, 265, 311, 265, + 0, 0, 103, 170, 293, 290, 321, 0, 55, 265, + 0, 55, 467, 265, 292, 273, 265, 497, 501, 0, + 55, 300, 0, 293, 288, 265, 295, 293, 265, 268, + 55, 55, 265, 0, 55, 265, 265, 285, 284, 265, + 0, 286, 497, 538, 0, 312, 572, 576, 0, 314, + 0, 0, 0, 0, 0, 0, 529, 539, 0, 0, + 574, 575, 577, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 621, 0, 0, 624, 623, 0, 0, 0, 0, 0, + 0, 497, 538, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 529, 539, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 467, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0}; + 0, 0, 0, 0, 0}; const int QmlJSGrammar::action_check [] = { - 7, 87, 36, 55, 33, 7, 36, 7, 7, 7, - 36, 7, 20, 36, 87, 60, 17, 7, 55, 60, - 36, 33, 16, 55, 60, 8, 8, 33, 66, 7, - 87, 36, 29, 7, 7, 89, 29, 7, 60, 5, - 5, 36, 5, 7, 36, 36, 33, 36, 7, 7, - 36, 55, 36, 7, 33, 36, 33, 7, 33, 7, - 17, 29, 7, 7, 36, 2, 7, 36, 8, 31, - 8, 1, 60, 8, 7, 60, 7, 48, 1, 7, - 60, 36, 33, 36, 8, 61, 33, 36, 1, 7, - 36, 1, 17, 60, 36, 2, 7, 0, 10, 55, - 8, -1, 36, 8, 8, 48, -1, 8, -1, 8, - 7, 8, -1, -1, 6, -1, 48, 78, 78, 8, - 8, 48, 61, 8, 76, 8, 40, 8, 20, -1, - -1, 50, 8, 8, 60, 54, -1, 51, -1, 8, - 61, -1, 78, 55, 61, 62, 61, 62, 8, 78, - 50, 42, 56, 8, 54, 56, 61, -1, 7, 61, - 62, 60, 53, 61, 62, 61, 62, 89, 61, 62, - 29, 60, 60, 55, 15, 60, 55, 60, 2, 60, - 56, 61, 62, 61, 62, 60, 40, 61, 62, 40, - 40, 60, 33, 61, 62, 8, 56, 51, 8, 29, - 51, 51, 29, 29, -1, 87, 61, 62, 87, 25, - 7, 27, 61, 62, 25, 74, 27, 12, 15, 12, - 29, -1, 38, 29, 61, 62, 85, 38, -1, 25, - 7, 27, -1, 91, 92, 93, 33, 29, 61, 62, - 66, 67, 38, 29, 74, 29, -1, 74, 61, 62, - 29, 61, 62, 90, 12, 85, 8, 29, 85, 29, - 66, 67, 57, 29, 57, 74, 29, 90, 63, 29, - 63, 8, 15, -1, 66, 67, 85, 25, 29, 27, - 66, 67, 66, 67, 61, 62, -1, 66, 67, 29, - 38, 34, 15, 36, 66, 67, 66, 67, 29, 57, - 66, 67, 29, 66, 67, 63, 66, 67, 29, 61, - 62, 34, 29, 36, 29, 66, 67, 8, -1, -1, - -1, 36, 15, -1, 61, 62, 66, 67, -1, 18, - 19, 18, 19, 18, 19, 66, 67, 29, -1, 66, - 67, 34, 33, 36, 36, 66, 67, 15, -1, 66, - 67, 66, 67, 25, -1, 27, 45, 46, 45, 46, - 45, 46, -1, -1, 23, 24, 38, 29, 23, 24, - 61, 62, 29, 32, 66, 67, 35, 32, 37, 47, - 35, 29, 37, 23, 24, -1, -1, -1, -1, -1, - -1, -1, 32, 61, 62, 35, -1, 37, 29, 61, - 62, -1, 59, 29, 66, 67, 29, -1, -1, 66, - 67, -1, -1, 61, 62, -1, 29, -1, 66, 67, - 23, 24, 90, 29, 18, 19, -1, -1, 85, 32, - 61, 62, 35, 59, 37, 66, 67, 29, 61, 62, - 66, 67, -1, 66, 67, -1, -1, -1, 61, 62, - -1, 45, 46, 66, 67, 61, 62, 23, 24, 85, - 66, 67, -1, -1, -1, 31, 32, 59, -1, 35, - 10, 37, -1, 65, 66, 67, 23, 24, -1, -1, - 10, -1, 22, 29, 31, 32, 23, 24, 35, 29, - 37, -1, 22, 85, 31, 32, 23, 24, 35, 29, - 37, -1, 23, 24, 31, 32, -1, -1, 35, -1, - 37, 32, -1, 59, 35, -1, 37, -1, -1, 59, - 66, 67, -1, -1, -1, -1, 66, 67, -1, 59, - -1, -1, -1, -1, 74, -1, 66, 67, -1, 85, - -1, 87, 3, 83, 74, 85, -1, -1, -1, -1, - -1, -1, 13, 83, -1, 85, 17, -1, -1, -1, - -1, -1, -1, -1, -1, 26, -1, 28, -1, -1, - -1, -1, -1, -1, -1, 23, 24, -1, 39, -1, - 41, 42, -1, 31, 32, 3, -1, 35, 49, 37, - -1, 52, 53, -1, -1, 13, -1, 58, -1, 17, - -1, -1, -1, 64, -1, -1, -1, -1, 26, -1, - 28, -1, -1, 31, -1, -1, -1, -1, 79, -1, - -1, 39, -1, 41, 42, -1, -1, -1, -1, -1, - -1, 49, -1, -1, 52, 53, -1, -1, -1, -1, - 58, -1, -1, -1, -1, -1, 64, -1, 3, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 13, -1, - -1, 79, 17, -1, -1, -1, -1, -1, -1, -1, - -1, 26, -1, 28, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 39, -1, 41, 42, -1, -1, - -1, -1, -1, -1, 49, -1, -1, 52, 53, -1, - -1, -1, -1, 58, -1, -1, -1, -1, -1, 64, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 79, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, - -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, - -1, -1, 33, 34, -1, 36, -1, -1, -1, -1, - -1, -1, 43, -1, -1, -1, 47, -1, -1, -1, + 7, 55, 7, 61, 36, 36, 7, 7, 36, 7, + 55, 8, 33, 60, 7, 88, 36, 36, 33, 55, + 66, 60, 7, 29, 33, 7, 36, 16, 36, 17, + 5, 7, 36, 7, 33, 7, 5, 33, 8, 29, + 20, 36, 36, 55, 7, 5, 60, 60, 7, 36, + 33, 7, 7, 7, 33, 36, 7, 60, 36, 7, + 7, 29, 48, 36, 7, 36, 8, 2, 60, 33, + 8, 2, 1, 1, 8, 36, 78, 61, 36, 36, + 7, 48, 8, 60, 36, 7, 36, 78, 7, 33, + 55, 36, 7, 2, 8, 48, 1, 17, 2, 7, + 0, 31, 8, 10, -1, 8, 8, 48, -1, 8, + 8, 60, 78, 8, 76, 6, 40, 50, 50, 8, + 60, 54, 54, 8, 61, 61, 62, 51, 8, 20, + 7, 8, 78, 8, 8, 7, 61, 62, 61, 62, + 61, 62, 15, 61, 62, 61, 62, 8, 55, 88, + 61, 62, 40, 56, 60, 8, 8, 40, 60, 40, + 33, 60, 60, 51, 61, 62, 61, 56, 51, 12, + 51, 61, 62, 42, 29, 60, 1, 61, 62, 25, + 60, 27, 56, 7, 53, 60, 25, 29, 27, 61, + 62, 29, 38, 8, 29, 56, 7, 29, 25, 38, + 27, -1, 15, 25, 15, 27, 29, 60, -1, 61, + 62, 38, 12, 8, 57, 29, 38, 29, -1, 74, + 63, 34, 33, 36, 12, -1, -1, 29, 66, 67, + 85, 25, 74, 27, 66, 67, 29, 61, 62, 74, + 61, 62, 29, 85, 38, 29, 61, 62, 29, -1, + 85, 74, 66, 67, 66, 67, 29, 57, 25, 25, + 27, 27, 85, 63, 66, 67, 61, 62, 89, 57, + 8, 38, 38, 66, 67, 63, 15, 29, -1, 66, + 67, 29, 66, 67, 29, 66, 67, 15, 29, 61, + 62, -1, -1, 66, 67, 34, 8, 36, 90, 91, + 92, -1, -1, 25, -1, 27, 34, 25, 36, 27, + 18, 19, -1, -1, 66, 67, 38, 89, 66, 67, + 38, 66, 67, 61, 62, 66, 67, 25, 25, 27, + 27, 25, 25, 27, 27, 8, 15, 45, 46, 29, + 38, 38, 18, 19, 38, 38, 36, 29, -1, 61, + 62, -1, -1, -1, 36, -1, -1, 29, -1, 29, + 33, -1, -1, 29, -1, -1, 29, -1, 47, 45, + 46, -1, -1, -1, 29, -1, 66, 67, -1, -1, + -1, -1, 61, 62, 66, 67, -1, -1, 61, 62, + -1, 61, 62, 59, 66, 67, 66, 67, 61, 62, + 66, 67, -1, 66, 67, 29, 61, 62, 23, 24, + 89, 66, 67, -1, -1, 29, -1, 32, -1, 85, + 35, -1, 37, 18, 19, 23, 24, 29, -1, -1, + 29, -1, 23, 24, 32, 59, 29, 35, -1, 37, + 31, 32, 66, 67, 35, -1, 37, 61, 62, -1, + 45, 46, 66, 67, -1, -1, -1, -1, -1, 61, + 62, 85, 61, 62, 66, 67, 59, 66, 67, 23, + 24, -1, 65, 66, 67, -1, -1, 31, 32, 23, + 24, 35, -1, 37, -1, 10, -1, 31, 32, -1, + -1, 35, 85, 37, 23, 24, -1, 22, -1, -1, + 23, 24, 31, 32, 29, -1, 35, -1, 37, 32, + 10, -1, 35, -1, 37, -1, -1, -1, -1, -1, + -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, + 55, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, 66, 67, -1, -1, -1, -1, -1, -1, 74, + -1, -1, -1, -1, 3, 55, -1, -1, 83, 59, + 85, -1, -1, -1, 13, -1, 66, 67, 17, -1, + -1, -1, 23, 24, 74, -1, -1, 26, -1, 28, + 31, 32, 31, 83, 35, 85, 37, -1, -1, -1, + 39, -1, 41, 42, -1, -1, 12, 13, -1, -1, + 49, -1, -1, 52, 53, -1, 22, -1, -1, 58, + -1, -1, -1, 29, -1, 64, -1, 33, 34, -1, + 36, -1, -1, -1, -1, -1, -1, 43, -1, -1, + 79, 47, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3, -1, -1, -1, -1, 65, + 66, 67, -1, 69, 13, -1, -1, -1, 17, -1, + -1, -1, -1, -1, 80, 81, 82, 26, -1, 28, + 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 39, -1, 41, 42, -1, -1, -1, -1, -1, -1, + 49, -1, -1, 52, 53, -1, -1, -1, -1, 58, + -1, -1, -1, -1, -1, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 65, 66, 67, -1, 69, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, - 81, 82, -1, -1, -1, 86, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 11, 12, 13, -1, -1, + 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, - 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, - -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, + 36, -1, -1, -1, -1, -1, -1, 43, -1, -1, + -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, - 66, 67, -1, 69, -1, 71, -1, 73, -1, 75, + 66, 67, -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, 81, 82, -1, -1, -1, - 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 7, -1, -1, -1, 11, 12, 13, -1, -1, -1, - -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, - -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, - -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, - 47, -1, -1, -1, 51, -1, 53, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, - 67, -1, 69, -1, 71, -1, 73, -1, 75, -1, - -1, -1, -1, 80, 81, 82, -1, -1, -1, 86, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 11, + 86, -1, -1, -1, -1, -1, -1, -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, -1, 69, -1, 71, - -1, 73, 74, 75, -1, -1, -1, -1, 80, 81, + -1, 73, -1, 75, -1, -1, -1, -1, 80, 81, 82, -1, -1, -1, 86, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 8, -1, -1, 11, 12, 13, - -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, - -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, - 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, - 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, - -1, -1, 56, -1, -1, -1, -1, -1, -1, -1, - -1, 65, 66, 67, -1, 69, -1, 71, -1, 73, - -1, 75, -1, -1, -1, -1, 80, 81, 82, -1, - -1, -1, 86, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 8, -1, -1, 11, 12, 13, -1, -1, - -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, - -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, - 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, - -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, - 56, -1, -1, -1, -1, -1, -1, -1, -1, 65, - 66, 67, -1, 69, -1, 71, -1, 73, -1, 75, - -1, -1, -1, -1, 80, 81, 82, -1, -1, -1, - 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, - -1, 22, -1, -1, -1, -1, -1, -1, 29, 30, - -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, - -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, - 51, -1, 53, -1, -1, -1, -1, -1, -1, -1, - 61, -1, -1, -1, 65, 66, 67, -1, 69, -1, - 71, -1, 73, -1, 75, -1, -1, -1, -1, 80, - 81, 82, -1, -1, -1, 86, -1, -1, -1, -1, + -1, -1, -1, 11, 12, 13, -1, -1, -1, -1, + -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, + -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, + -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, + -1, -1, -1, 51, -1, 53, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, + -1, 69, -1, 71, -1, 73, 74, 75, -1, -1, + -1, -1, 80, 81, 82, -1, -1, -1, 86, -1, + -1, -1, -1, -1, -1, -1, -1, 7, -1, -1, + -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, + -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, + -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, + 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, + -1, 51, -1, 53, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 65, 66, 67, -1, 69, + -1, 71, -1, 73, -1, 75, -1, -1, -1, -1, + 80, 81, 82, -1, -1, -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, @@ -767,60 +719,76 @@ const int QmlJSGrammar::action_check [] = { -1, -1, 65, 66, 67, -1, 69, -1, 71, -1, 73, -1, 75, -1, -1, -1, -1, 80, 81, 82, -1, -1, -1, 86, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 8, -1, -1, 11, 12, 13, -1, + -1, -1, 8, -1, -1, 11, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, + -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, + 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, + -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, + 56, -1, -1, -1, -1, -1, -1, -1, -1, 65, + 66, 67, -1, 69, -1, 71, -1, 73, -1, 75, + -1, -1, -1, -1, 80, 81, 82, -1, -1, -1, + 86, -1, -1, -1, -1, -1, -1, -1, -1, 8, + -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, + -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, + 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, + -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, + -1, -1, 51, -1, 53, -1, -1, 56, -1, -1, + -1, -1, -1, -1, -1, -1, 65, 66, 67, -1, + 69, -1, 71, -1, 73, -1, 75, -1, -1, -1, + -1, 80, 81, 82, -1, -1, -1, 86, -1, -1, + -1, -1, -1, -1, -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, - -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, + -1, -1, -1, -1, 29, 30, -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, - -1, 56, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, 65, 66, 67, -1, 69, -1, 71, -1, 73, -1, 75, -1, -1, -1, -1, 80, 81, 82, -1, -1, -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 8, -1, -1, 11, 12, 13, -1, -1, -1, - -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, - -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, - -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, - 47, -1, -1, -1, 51, -1, 53, -1, -1, 56, - -1, -1, 59, -1, -1, -1, -1, -1, 65, 66, - 67, -1, 69, -1, 71, -1, 73, -1, 75, -1, - -1, -1, -1, 80, 81, 82, -1, -1, 85, 86, - 87, -1, -1, -1, -1, -1, -1, -1, -1, 4, - 5, 6, -1, -1, 9, 10, 11, -1, -1, 14, - -1, 16, -1, -1, -1, 20, 21, 22, -1, -1, - -1, -1, -1, -1, 29, 30, 31, 32, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, - -1, 66, 67, 68, 69, 70, -1, 72, 73, 74, - 75, 76, 77, -1, -1, 80, 81, 82, 83, 84, - 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4, 5, 6, -1, -1, 9, 10, 11, -1, - -1, 14, -1, 16, -1, -1, -1, 20, 21, 22, - -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 43, -1, -1, -1, 47, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, - -1, -1, -1, 66, 67, 68, 69, 70, -1, 72, - 73, 74, 75, 76, 77, -1, -1, 80, 81, 82, - 83, 84, 85, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 4, 5, 6, -1, -1, 9, 10, - 11, -1, -1, 14, -1, 16, -1, -1, -1, 20, - 21, 22, -1, -1, -1, -1, -1, -1, 29, 30, - 31, 32, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 43, -1, -1, -1, 47, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, - -1, -1, -1, -1, 65, 66, 67, 68, 69, 70, - -1, 72, 73, 74, 75, 76, 77, -1, -1, 80, - 81, 82, 83, 84, 85, -1, -1, -1, -1, -1, + 8, -1, -1, 11, 12, 13, -1, -1, -1, -1, + -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, + -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, + -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, + -1, -1, -1, 51, -1, 53, -1, -1, 56, -1, + -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, + -1, 69, -1, 71, -1, 73, -1, 75, -1, -1, + -1, -1, 80, 81, 82, -1, -1, -1, 86, -1, + -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, + 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, + -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, + -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, + -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, + 51, -1, 53, -1, -1, 56, -1, -1, 59, -1, + -1, -1, -1, -1, 65, 66, 67, -1, 69, -1, + 71, -1, 73, -1, 75, -1, -1, -1, -1, 80, + 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, + -1, -1, -1, -1, 4, 5, 6, -1, -1, 9, + 10, 11, -1, -1, 14, -1, 16, -1, -1, -1, + 20, 21, 22, -1, -1, -1, -1, -1, -1, 29, + 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + -1, -1, -1, -1, -1, -1, 66, 67, 68, 69, + 70, -1, 72, 73, 74, 75, 76, 77, -1, -1, + 80, 81, 82, 83, 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, -1, -1, 9, 10, 11, -1, -1, 14, -1, 16, -1, -1, -1, 20, 21, 22, -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, 47, -1, - -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, 75, 76, 77, -1, -1, 80, 81, 82, 83, 84, 85, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4, 5, 6, -1, + -1, 9, 10, 11, -1, -1, 14, -1, 16, -1, + -1, -1, 20, 21, 22, -1, -1, -1, -1, -1, + -1, 29, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 43, -1, -1, -1, 47, + -1, -1, -1, -1, -1, -1, -1, 55, -1, -1, + -1, 59, -1, -1, -1, -1, -1, 65, 66, 67, + 68, 69, 70, -1, 72, 73, 74, 75, 76, 77, + -1, -1, 80, 81, 82, 83, 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, 9, -1, 11, 12, 13, 14, -1, -1, -1, -1, -1, -1, 21, 22, -1, -1, -1, -1, @@ -830,81 +798,79 @@ const int QmlJSGrammar::action_check [] = { -1, -1, 59, -1, 61, -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, 80, 81, 82, 83, 84, -1, 86, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, - -1, -1, -1, -1, 9, -1, 11, 12, 13, 14, - -1, -1, -1, -1, -1, -1, 21, 22, -1, -1, - -1, -1, -1, -1, 29, 30, -1, -1, 33, 34, + -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, + -1, -1, -1, 9, -1, 11, 12, 13, 14, -1, + -1, -1, -1, -1, -1, 21, 22, -1, -1, -1, + -1, -1, -1, 29, 30, -1, -1, 33, 34, -1, + 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, + -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, + -1, -1, -1, 59, -1, 61, -1, -1, -1, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, -1, -1, 80, 81, 82, 83, 84, -1, + 86, -1, -1, -1, -1, -1, -1, -1, -1, 4, + 5, 6, -1, -1, 9, 10, 11, 12, 13, 14, + -1, 16, -1, -1, -1, 20, 21, 22, -1, -1, + -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, -1, -1, -1, 59, -1, 61, -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, 80, 81, 82, 83, 84, - -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4, 5, 6, -1, -1, 9, 10, 11, 12, - 13, 14, -1, 16, -1, -1, -1, 20, 21, 22, - -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, - 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, - 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, - 53, -1, -1, -1, -1, -1, 59, -1, 61, -1, - -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, -1, -1, 80, 81, 82, - 83, 84, 85, 86, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 4, 5, 6, -1, -1, 9, 10, - 11, 12, 13, 14, -1, 16, -1, -1, -1, 20, - 21, 22, -1, -1, -1, -1, -1, -1, 29, 30, - 31, 32, 33, 34, -1, 36, -1, -1, -1, 40, - -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, - 51, -1, 53, -1, 55, -1, -1, -1, 59, -1, - 61, -1, -1, -1, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, -1, -1, 80, - 81, 82, 83, 84, 85, 86, -1, -1, -1, -1, - -1, -1, -1, -1, -1, + 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, + 4, 5, 6, -1, -1, 9, 10, 11, 12, 13, + 14, -1, 16, -1, -1, -1, 20, 21, 22, -1, + -1, -1, -1, -1, -1, 29, 30, 31, 32, 33, + 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, + 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, + -1, 55, -1, -1, -1, 59, -1, 61, -1, -1, + -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, -1, -1, 80, 81, 82, 83, + 84, 85, 86, -1, -1, -1, -1, -1, -1, -1, + -1, - 6, 22, 2, 11, 9, 3, 2, 36, 3, 26, - 3, 3, 9, 3, 97, 9, 3, 36, 9, 22, - 2, 37, 3, 11, 9, 14, 9, 3, 68, 9, - 2, 9, 3, 2, 36, 9, 22, 21, 3, 9, - 3, 9, 9, 2, 2, 11, 3, 9, 2, 26, - 3, 26, 2, 9, 9, 3, 82, 36, 9, 3, - 82, 22, 3, 36, 2, 2, 9, 2, 8, 3, - 3, 2, 36, 9, 3, 3, 36, 9, 2, 9, - 22, 94, 9, 2, 36, 2, 9, 36, 99, 36, - 36, 36, 2, 2, -1, 9, -1, 9, 12, -1, - -1, 3, 2, -1, -1, -1, 45, 32, 47, -1, - 9, 36, -1, 9, 10, -1, -1, 39, 36, 45, - 42, 47, 9, 41, 45, 45, 47, 47, 39, 45, - 45, 42, 45, 39, 50, 50, 42, 50, 45, 3, - 45, 45, 45, 50, 47, 50, 50, 45, 45, 47, - 47, 45, 9, 45, 3, 45, 45, 45, 50, 16, - 50, 45, 51, 51, 45, 59, 45, 69, 45, 53, - 51, 50, 49, 45, 86, 45, 45, 45, 9, 3, - 45, 49, 45, 55, 49, 16, -1, 57, 51, 88, - 45, 101, 61, 45, 45, 50, -1, 106, 50, 50, - 45, 45, 47, 47, 45, 69, 47, 45, 45, 47, - 47, 36, 45, 100, 47, 45, 41, 47, 45, -1, - 69, 48, 45, 45, 47, 45, 48, 47, 9, 45, - 45, 12, 45, 14, 50, 50, 9, 50, -1, -1, - 9, 45, 15, 16, 60, 69, 50, 16, 45, 62, - 45, 45, 67, 50, 45, 50, 50, 52, -1, 50, - 54, 52, 45, 67, -1, -1, -1, 50, -1, 38, - 67, 9, -1, 56, 12, 45, -1, 45, 45, -1, - 50, 45, 50, 50, 52, 45, 50, 9, 10, -1, - 50, 3, 52, -1, 58, 9, 10, 67, -1, -1, - 67, -1, -1, -1, -1, 19, -1, 29, 30, -1, - 22, 23, 24, 25, -1, 29, 30, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 9, 9, 3, 9, 9, 8, 30, 3, 63, 16, + 9, 2, 2, 15, 9, 2, 30, 9, 3, 3, + 9, 3, 20, 20, 3, 2, 30, 2, 16, 9, + 3, 31, 77, 9, 20, 9, 30, 30, 9, 9, + 3, 3, 2, 2, 9, 3, 3, 2, 92, 3, + 2, 2, 30, 9, 2, 89, 77, 2, 30, 9, + 9, 30, 94, 16, 2, 9, 30, 3, 3, 16, + 9, 3, 3, 2, 16, 3, 2, -1, 3, 9, + 3, 3, 9, 2, 30, 2, -1, 30, -1, 30, + -1, -1, -1, 9, 9, 11, 2, 9, -1, -1, + 40, 3, 9, 40, 2, 45, 40, 40, 42, 42, + -1, 3, -1, -1, 34, 52, 40, 37, 9, 40, + 32, 45, 40, 9, 45, 11, 40, 45, 42, 40, + 40, 42, 40, 9, 42, 45, 40, 40, 42, 42, + 40, 40, 42, 40, 40, 42, 45, 40, 44, 42, + 40, 40, 40, 40, 44, 44, 40, 45, 45, 40, + 40, 45, 64, 26, 45, 40, 40, 30, 40, 3, + 50, 45, 64, 45, 40, 40, 83, 43, 43, -1, + 40, 56, 42, 40, 40, 42, 42, 40, 34, 42, + 30, 37, 40, 40, 42, 101, 36, 40, 96, 46, + 3, 40, 40, 42, 95, 81, -1, 40, 46, 40, + 40, 54, 42, 46, 40, 46, 40, 30, 42, 9, + 40, 40, 48, 36, 40, 45, 45, -1, -1, 45, + 64, 9, 40, 11, 40, 55, -1, 45, 57, 45, + -1, -1, 32, 33, 40, 51, 62, -1, 40, 45, + -1, 40, 30, 45, 62, 47, 45, 9, 10, -1, + 40, 64, -1, 40, 53, 45, 62, 40, 45, 49, + 40, 40, 45, -1, 40, 45, 45, 47, 47, 45, + -1, 47, 9, 10, -1, 62, 13, 3, -1, 62, + -1, -1, -1, -1, -1, -1, 23, 24, -1, -1, + 16, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 9, -1, -1, 12, 13, -1, -1, -1, -1, -1, + -1, 9, 10, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 23, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1}; + -1, -1, -1, -1, -1}; diff --git a/src/declarative/qml/parser/qmljsgrammar_p.h b/src/declarative/qml/parser/qmljsgrammar_p.h index 7ffda6a..c760564 100644 --- a/src/declarative/qml/parser/qmljsgrammar_p.h +++ b/src/declarative/qml/parser/qmljsgrammar_p.h @@ -59,13 +59,12 @@ class QmlJSGrammar public: enum { EOF_SYMBOL = 0, - REDUCE_HERE = 95, - SHIFT_THERE = 94, + REDUCE_HERE = 94, + SHIFT_THERE = 93, T_AND = 1, T_AND_AND = 2, T_AND_EQ = 3, - T_AS = 90, - T_AT = 87, + T_AS = 89, T_AUTOMATIC_SEMICOLON = 62, T_BREAK = 4, T_CASE = 5, @@ -86,9 +85,9 @@ public: T_EQ_EQ = 18, T_EQ_EQ_EQ = 19, T_FALSE = 82, - T_FEED_JS_EXPRESSION = 93, - T_FEED_JS_STATEMENT = 92, - T_FEED_UI_PROGRAM = 91, + T_FEED_JS_EXPRESSION = 92, + T_FEED_JS_STATEMENT = 91, + T_FEED_UI_PROGRAM = 90, T_FINALLY = 20, T_FOR = 21, T_FUNCTION = 22, @@ -100,7 +99,7 @@ public: T_GT_GT_GT_EQ = 28, T_IDENTIFIER = 29, T_IF = 30, - T_IMPORT = 89, + T_IMPORT = 88, T_IN = 31, T_INSTANCEOF = 32, T_LBRACE = 33, @@ -127,7 +126,7 @@ public: T_PLUS_EQ = 52, T_PLUS_PLUS = 53, T_PROPERTY = 66, - T_PUBLIC = 88, + T_PUBLIC = 87, T_QUESTION = 54, T_RBRACE = 55, T_RBRACKET = 56, @@ -155,15 +154,15 @@ public: T_XOR = 78, T_XOR_EQ = 79, - ACCEPT_STATE = 634, - RULE_COUNT = 348, - STATE_COUNT = 635, - TERMINAL_COUNT = 96, - NON_TERMINAL_COUNT = 108, + ACCEPT_STATE = 616, + RULE_COUNT = 337, + STATE_COUNT = 617, + TERMINAL_COUNT = 95, + NON_TERMINAL_COUNT = 103, - GOTO_INDEX_OFFSET = 635, - GOTO_INFO_OFFSET = 2345, - GOTO_CHECK_OFFSET = 2345 + GOTO_INDEX_OFFSET = 617, + GOTO_INFO_OFFSET = 2231, + GOTO_CHECK_OFFSET = 2231 }; static const char *const spell []; diff --git a/src/declarative/qml/parser/qmljslexer.cpp b/src/declarative/qml/parser/qmljslexer.cpp index 0756f10..a22169d 100644 --- a/src/declarative/qml/parser/qmljslexer.cpp +++ b/src/declarative/qml/parser/qmljslexer.cpp @@ -1038,7 +1038,6 @@ int Lexer::matchPunctuator(ushort c1, ushort c2, case '[': shift(1); return QmlJSGrammar::T_LBRACKET; case ']': shift(1); return QmlJSGrammar::T_RBRACKET; case ';': shift(1); return QmlJSGrammar::T_SEMICOLON; - case '@': shift(1); return QmlJSGrammar::T_AT; default: return -1; } diff --git a/src/declarative/qml/parser/qmljsparser.cpp b/src/declarative/qml/parser/qmljsparser.cpp index 93f9fda..a1236d5 100644 --- a/src/declarative/qml/parser/qmljsparser.cpp +++ b/src/declarative/qml/parser/qmljsparser.cpp @@ -292,100 +292,51 @@ case 20: { } break; case 21: { - sym(1).Node = makeAstNode (driver->nodePool(), - sym(1).UiAttributeList, sym(2).UiObjectMember); + sym(1).Node = makeAstNode (driver->nodePool(), sym(1).UiObjectMember); } break; -case 23: { - sym(1).UiAttributeList = sym(1).UiAttributeList->finish(); -} break; - -case 24: { - sym(1).UiAttributeList = makeAstNode(driver->nodePool(), sym(1).UiAttribute); -} break; - -case 25: { - sym(1).UiAttributeList = makeAstNode(driver->nodePool(), - sym(1).UiAttributeList, sym(2).UiAttribute); -} break; - -case 28: { - AST::UiAttribute *ast = makeAstNode(driver->nodePool(), sym(2).sval); - ast->atToken = loc(1); - ast->nameToken = loc(2); - sym(1).UiAttribute = ast; -} break; - -case 29: { - AST::UiAttribute *ast = makeAstNode(driver->nodePool(), - sym(2).sval, sym(4).Expression); - ast->atToken = loc(1); - ast->nameToken = loc(2); - ast->equalToken = loc(3); - sym(1).UiAttribute = ast; -} break; - -case 30: { - AST::IdentifierExpression *node = makeAstNode (driver->nodePool(), sym(1).sval); - node->identifierToken = loc(1); - sym(1).Node = node; -} break; - -case 31: { - AST::NumericLiteral *node = makeAstNode (driver->nodePool(), sym(1).dval, lexer->flags); - node->literalToken = loc(1); - sym(1).Node = node; -} break; - -case 32: { - sym(1).Node = makeAstNode (driver->nodePool(), - sym(1).UiAttributeList, sym(2).UiObjectMember); +case 22: { + sym(1).Node = makeAstNode (driver->nodePool(), sym(1).UiObjectMember); } break; -case 33: { +case 23: { AST::UiObjectMemberList *node = makeAstNode (driver->nodePool(), - sym(1).UiObjectMemberList, sym(2).UiAttributeList, sym(3).UiObjectMember); + sym(1).UiObjectMemberList, sym(2).UiObjectMember); sym(1).Node = node; } break; -case 34: { +case 24: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).UiObjectMember); } break; -case 35: { - sym(2).UiObjectMember->attributes = sym(1).UiAttributeList->finish(); - sym(1).Node = makeAstNode (driver->nodePool(), sym(2).UiObjectMember); -} break; - -case 36: { - sym(4).UiObjectMember->attributes = sym(3).UiAttributeList; +case 25: { AST::UiArrayMemberList *node = makeAstNode (driver->nodePool(), sym(1).UiArrayMemberList, sym(3).UiObjectMember); node->commaToken = loc(2); sym(1).Node = node; } break; -case 37: { +case 26: { AST::UiObjectInitializer *node = makeAstNode (driver->nodePool(), (AST::UiObjectMemberList*)0); node->lbraceToken = loc(1); node->rbraceToken = loc(2); sym(1).Node = node; } break; -case 38: { +case 27: { AST::UiObjectInitializer *node = makeAstNode (driver->nodePool(), sym(2).UiObjectMemberList->finish()); node->lbraceToken = loc(1); node->rbraceToken = loc(3); sym(1).Node = node; } break; -case 39: { +case 28: { AST::UiObjectDefinition *node = makeAstNode (driver->nodePool(), sym(1).UiQualifiedId->finish(), sym(2).UiObjectInitializer); sym(1).Node = node; } break; -case 41: { +case 30: { AST::UiArrayBinding *node = makeAstNode (driver->nodePool(), sym(1).UiQualifiedId->finish(), sym(4).UiArrayMemberList->finish()); node->colonToken = loc(2); @@ -394,7 +345,7 @@ case 41: { sym(1).Node = node; } break; -case 42: { +case 31: { if (AST::UiQualifiedId *qualifiedId = reparseAsQualifiedId(sym(3).Expression)) { AST::UiObjectBinding *node = makeAstNode (driver->nodePool(), sym(1).UiQualifiedId->finish(), qualifiedId, sym(4).UiObjectInitializer); @@ -409,7 +360,7 @@ case 42: { return false; // ### recover } } break; -case 43:case 44:case 45:case 46: +case 32:case 33:case 34:case 35: { AST::UiScriptBinding *node = makeAstNode (driver->nodePool(), sym(1).UiQualifiedId->finish(), sym(3).Statement); @@ -417,35 +368,35 @@ case 43:case 44:case 45:case 46: sym(1).Node = node; } break; -case 47: +case 36: -case 48: { +case 37: { sym(1).sval = driver->intern(lexer->characterBuffer(), lexer->characterCount()); break; } -case 50: { +case 39: { sym(1).Node = 0; } break; -case 51: { +case 40: { sym(1).Node = sym(1).UiParameterList->finish (); } break; -case 52: { +case 41: { AST::UiParameterList *node = makeAstNode (driver->nodePool(), sym(1).sval, sym(2).sval); node->identifierToken = loc(2); sym(1).Node = node; } break; -case 53: { +case 42: { AST::UiParameterList *node = makeAstNode (driver->nodePool(), sym(1).UiParameterList, sym(3).sval, sym(4).sval); node->commaToken = loc(2); node->identifierToken = loc(4); sym(1).Node = node; } break; -case 54: { +case 43: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), (NameId *)0, sym(2).sval); node->type = AST::UiPublicMember::Signal; node->propertyToken = loc(1); @@ -455,7 +406,7 @@ case 54: { sym(1).Node = node; } break; -case 55: { +case 44: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), (NameId *)0, sym(2).sval); node->type = AST::UiPublicMember::Signal; node->propertyToken = loc(1); @@ -464,7 +415,7 @@ case 55: { sym(1).Node = node; } break; -case 57: { +case 46: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), sym(2).sval, sym(3).sval); node->propertyToken = loc(1); node->typeToken = loc(2); @@ -473,7 +424,7 @@ case 57: { sym(1).Node = node; } break; -case 59: { +case 48: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), sym(3).sval, sym(4).sval); node->isDefaultMember = true; node->defaultToken = loc(1); @@ -484,7 +435,7 @@ case 59: { sym(1).Node = node; } break; -case 61: { +case 50: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), sym(2).sval, sym(3).sval, sym(5).Expression); node->propertyToken = loc(1); @@ -495,7 +446,7 @@ case 61: { sym(1).Node = node; } break; -case 63: { +case 52: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), sym(3).sval, sym(4).sval, sym(6).Expression); node->isDefaultMember = true; @@ -508,76 +459,76 @@ case 63: { sym(1).Node = node; } break; -case 64: { +case 53: { sym(1).Node = makeAstNode(driver->nodePool(), sym(1).Node); } break; -case 65: { +case 54: { sym(1).Node = makeAstNode(driver->nodePool(), sym(1).Node); } break; -case 66: -case 67: +case 55: +case 56: { AST::UiQualifiedId *node = makeAstNode (driver->nodePool(), driver->intern(lexer->characterBuffer(), lexer->characterCount())); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 69: { +case 58: { QString s = QLatin1String(QmlJSGrammar::spell[T_PROPERTY]); sym(1).sval = driver->intern(s.constData(), s.length()); break; } -case 70: { +case 59: { QString s = QLatin1String(QmlJSGrammar::spell[T_SIGNAL]); sym(1).sval = driver->intern(s.constData(), s.length()); break; } -case 71: { +case 60: { AST::ThisExpression *node = makeAstNode (driver->nodePool()); node->thisToken = loc(1); sym(1).Node = node; } break; -case 72: { +case 61: { AST::IdentifierExpression *node = makeAstNode (driver->nodePool(), sym(1).sval); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 73: { +case 62: { AST::NullExpression *node = makeAstNode (driver->nodePool()); node->nullToken = loc(1); sym(1).Node = node; } break; -case 74: { +case 63: { AST::TrueLiteral *node = makeAstNode (driver->nodePool()); node->trueToken = loc(1); sym(1).Node = node; } break; -case 75: { +case 64: { AST::FalseLiteral *node = makeAstNode (driver->nodePool()); node->falseToken = loc(1); sym(1).Node = node; } break; -case 76: { +case 65: { AST::NumericLiteral *node = makeAstNode (driver->nodePool(), sym(1).dval, lexer->flags); node->literalToken = loc(1); sym(1).Node = node; } break; -case 77: -case 78: { +case 66: +case 67: { AST::StringLiteral *node = makeAstNode (driver->nodePool(), sym(1).sval); node->literalToken = loc(1); sym(1).Node = node; } break; -case 79: { +case 68: { bool rx = lexer->scanRegExp(Lexer::NoPrefix); if (!rx) { diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, location(lexer), lexer->errorMessage())); @@ -588,7 +539,7 @@ case 79: { sym(1).Node = node; } break; -case 80: { +case 69: { bool rx = lexer->scanRegExp(Lexer::EqualPrefix); if (!rx) { diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, location(lexer), lexer->errorMessage())); @@ -599,28 +550,28 @@ case 80: { sym(1).Node = node; } break; -case 81: { +case 70: { AST::ArrayLiteral *node = makeAstNode (driver->nodePool(), (AST::Elision *) 0); node->lbracketToken = loc(1); node->rbracketToken = loc(2); sym(1).Node = node; } break; -case 82: { +case 71: { AST::ArrayLiteral *node = makeAstNode (driver->nodePool(), sym(2).Elision->finish()); node->lbracketToken = loc(1); node->rbracketToken = loc(3); sym(1).Node = node; } break; -case 83: { +case 72: { AST::ArrayLiteral *node = makeAstNode (driver->nodePool(), sym(2).ElementList->finish ()); node->lbracketToken = loc(1); node->rbracketToken = loc(3); sym(1).Node = node; } break; -case 84: { +case 73: { AST::ArrayLiteral *node = makeAstNode (driver->nodePool(), sym(2).ElementList->finish (), (AST::Elision *) 0); node->lbracketToken = loc(1); @@ -629,7 +580,7 @@ case 84: { sym(1).Node = node; } break; -case 85: { +case 74: { AST::ArrayLiteral *node = makeAstNode (driver->nodePool(), sym(2).ElementList->finish (), sym(4).Elision->finish()); node->lbracketToken = loc(1); @@ -638,7 +589,7 @@ case 85: { sym(1).Node = node; } break; -case 86: { +case 75: { AST::ObjectLiteral *node = 0; if (sym(2).Node) node = makeAstNode (driver->nodePool(), @@ -650,7 +601,7 @@ case 86: { sym(1).Node = node; } break; -case 87: { +case 76: { AST::ObjectLiteral *node = makeAstNode (driver->nodePool(), sym(2).PropertyNameAndValueList->finish ()); node->lbraceToken = loc(1); @@ -658,67 +609,67 @@ case 87: { sym(1).Node = node; } break; -case 88: { +case 77: { AST::NestedExpression *node = makeAstNode(driver->nodePool(), sym(2).Expression); node->lparenToken = loc(1); node->rparenToken = loc(3); sym(1).Node = node; } break; -case 89: { +case 78: { AST::UiQualifiedId *node = makeAstNode (driver->nodePool(), sym(1).sval); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 90: { +case 79: { AST::UiQualifiedId *node = makeAstNode (driver->nodePool(), sym(1).UiQualifiedId, sym(3).sval); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 91: { +case 80: { sym(1).Node = makeAstNode (driver->nodePool(), (AST::Elision *) 0, sym(1).Expression); } break; -case 92: { +case 81: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).Elision->finish(), sym(2).Expression); } break; -case 93: { +case 82: { AST::ElementList *node = makeAstNode (driver->nodePool(), sym(1).ElementList, (AST::Elision *) 0, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 94: { +case 83: { AST::ElementList *node = makeAstNode (driver->nodePool(), sym(1).ElementList, sym(3).Elision->finish(), sym(4).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 95: { +case 84: { AST::Elision *node = makeAstNode (driver->nodePool()); node->commaToken = loc(1); sym(1).Node = node; } break; -case 96: { +case 85: { AST::Elision *node = makeAstNode (driver->nodePool(), sym(1).Elision); node->commaToken = loc(2); sym(1).Node = node; } break; -case 97: { +case 86: { AST::PropertyNameAndValueList *node = makeAstNode (driver->nodePool(), sym(1).PropertyName, sym(3).Expression); node->colonToken = loc(2); sym(1).Node = node; } break; -case 98: { +case 87: { AST::PropertyNameAndValueList *node = makeAstNode (driver->nodePool(), sym(1).PropertyNameAndValueList, sym(3).PropertyName, sym(5).Expression); node->commaToken = loc(2); @@ -726,36 +677,58 @@ case 98: { sym(1).Node = node; } break; -case 99: { +case 88: { AST::IdentifierPropertyName *node = makeAstNode (driver->nodePool(), sym(1).sval); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 100: -case 101: { +case 89: +case 90: { AST::IdentifierPropertyName *node = makeAstNode (driver->nodePool(), driver->intern(lexer->characterBuffer(), lexer->characterCount())); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 102: { +case 91: { AST::StringLiteralPropertyName *node = makeAstNode (driver->nodePool(), sym(1).sval); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 103: { +case 92: { AST::NumericLiteralPropertyName *node = makeAstNode (driver->nodePool(), sym(1).dval); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 104: { +case 93: { AST::IdentifierPropertyName *node = makeAstNode (driver->nodePool(), sym(1).sval); node->propertyNameToken = loc(1); sym(1).Node = node; } break; +case 94: + +case 95: + +case 96: + +case 97: + +case 98: + +case 99: + +case 100: + +case 101: + +case 102: + +case 103: + +case 104: + case 105: case 106: @@ -795,47 +768,25 @@ case 122: case 123: case 124: - -case 125: - -case 126: - -case 127: - -case 128: - -case 129: - -case 130: - -case 131: - -case 132: - -case 133: - -case 134: - -case 135: { sym(1).sval = driver->intern(lexer->characterBuffer(), lexer->characterCount()); } break; -case 140: { +case 129: { AST::ArrayMemberExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).Expression); node->lbracketToken = loc(2); node->rbracketToken = loc(4); sym(1).Node = node; } break; -case 141: { +case 130: { AST::FieldMemberExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).sval); node->dotToken = loc(2); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 142: { +case 131: { AST::NewMemberExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression, sym(4).ArgumentList); node->newToken = loc(1); node->lparenToken = loc(3); @@ -843,384 +794,384 @@ case 142: { sym(1).Node = node; } break; -case 144: { +case 133: { AST::NewExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->newToken = loc(1); sym(1).Node = node; } break; -case 145: { +case 134: { AST::CallExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).ArgumentList); node->lparenToken = loc(2); node->rparenToken = loc(4); sym(1).Node = node; } break; -case 146: { +case 135: { AST::CallExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).ArgumentList); node->lparenToken = loc(2); node->rparenToken = loc(4); sym(1).Node = node; } break; -case 147: { +case 136: { AST::ArrayMemberExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).Expression); node->lbracketToken = loc(2); node->rbracketToken = loc(4); sym(1).Node = node; } break; -case 148: { +case 137: { AST::FieldMemberExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).sval); node->dotToken = loc(2); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 149: { +case 138: { sym(1).Node = 0; } break; -case 150: { +case 139: { sym(1).Node = sym(1).ArgumentList->finish(); } break; -case 151: { +case 140: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).Expression); } break; -case 152: { +case 141: { AST::ArgumentList *node = makeAstNode (driver->nodePool(), sym(1).ArgumentList, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 156: { +case 145: { AST::PostIncrementExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression); node->incrementToken = loc(2); sym(1).Node = node; } break; -case 157: { +case 146: { AST::PostDecrementExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression); node->decrementToken = loc(2); sym(1).Node = node; } break; -case 159: { +case 148: { AST::DeleteExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->deleteToken = loc(1); sym(1).Node = node; } break; -case 160: { +case 149: { AST::VoidExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->voidToken = loc(1); sym(1).Node = node; } break; -case 161: { +case 150: { AST::TypeOfExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->typeofToken = loc(1); sym(1).Node = node; } break; -case 162: { +case 151: { AST::PreIncrementExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->incrementToken = loc(1); sym(1).Node = node; } break; -case 163: { +case 152: { AST::PreDecrementExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->decrementToken = loc(1); sym(1).Node = node; } break; -case 164: { +case 153: { AST::UnaryPlusExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->plusToken = loc(1); sym(1).Node = node; } break; -case 165: { +case 154: { AST::UnaryMinusExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->minusToken = loc(1); sym(1).Node = node; } break; -case 166: { +case 155: { AST::TildeExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->tildeToken = loc(1); sym(1).Node = node; } break; -case 167: { +case 156: { AST::NotExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->notToken = loc(1); sym(1).Node = node; } break; -case 169: { +case 158: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Mul, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 170: { +case 159: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Div, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 171: { +case 160: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Mod, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 173: { +case 162: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Add, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 174: { +case 163: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Sub, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 176: { +case 165: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::LShift, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 177: { +case 166: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::RShift, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 178: { +case 167: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::URShift, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 180: { +case 169: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Lt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 181: { +case 170: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Gt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 182: { +case 171: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Le, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 183: { +case 172: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Ge, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 184: { +case 173: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::InstanceOf, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 185: { +case 174: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::In, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 187: { +case 176: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Lt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 188: { +case 177: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Gt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 189: { +case 178: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Le, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 190: { +case 179: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Ge, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 191: { +case 180: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::InstanceOf, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 193: { +case 182: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Equal, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 194: { +case 183: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::NotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 195: { +case 184: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::StrictEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 196: { +case 185: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::StrictNotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 198: { +case 187: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Equal, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 199: { +case 188: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::NotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 200: { +case 189: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::StrictEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 201: { +case 190: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::StrictNotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 203: { +case 192: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::BitAnd, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 205: { +case 194: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::BitAnd, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 207: { +case 196: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::BitXor, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 209: { +case 198: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::BitXor, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 211: { +case 200: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::BitOr, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 213: { +case 202: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::BitOr, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 215: { +case 204: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::And, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 217: { +case 206: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::And, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 219: { +case 208: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Or, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 221: { +case 210: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Or, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 223: { +case 212: { AST::ConditionalExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).Expression, sym(5).Expression); node->questionToken = loc(2); @@ -1228,7 +1179,7 @@ case 223: { sym(1).Node = node; } break; -case 225: { +case 214: { AST::ConditionalExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).Expression, sym(5).Expression); node->questionToken = loc(2); @@ -1236,112 +1187,112 @@ case 225: { sym(1).Node = node; } break; -case 227: { +case 216: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(2).ival, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 229: { +case 218: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(2).ival, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 230: { +case 219: { sym(1).ival = QSOperator::Assign; } break; -case 231: { +case 220: { sym(1).ival = QSOperator::InplaceMul; } break; -case 232: { +case 221: { sym(1).ival = QSOperator::InplaceDiv; } break; -case 233: { +case 222: { sym(1).ival = QSOperator::InplaceMod; } break; -case 234: { +case 223: { sym(1).ival = QSOperator::InplaceAdd; } break; -case 235: { +case 224: { sym(1).ival = QSOperator::InplaceSub; } break; -case 236: { +case 225: { sym(1).ival = QSOperator::InplaceLeftShift; } break; -case 237: { +case 226: { sym(1).ival = QSOperator::InplaceRightShift; } break; -case 238: { +case 227: { sym(1).ival = QSOperator::InplaceURightShift; } break; -case 239: { +case 228: { sym(1).ival = QSOperator::InplaceAnd; } break; -case 240: { +case 229: { sym(1).ival = QSOperator::InplaceXor; } break; -case 241: { +case 230: { sym(1).ival = QSOperator::InplaceOr; } break; -case 243: { +case 232: { AST::Expression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 244: { +case 233: { sym(1).Node = 0; } break; -case 247: { +case 236: { AST::Expression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 248: { +case 237: { sym(1).Node = 0; } break; -case 265: { +case 254: { AST::Block *node = makeAstNode (driver->nodePool(), sym(2).StatementList); node->lbraceToken = loc(1); node->rbraceToken = loc(3); sym(1).Node = node; } break; -case 266: { +case 255: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).Statement); } break; -case 267: { +case 256: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).StatementList, sym(2).Statement); } break; -case 268: { +case 257: { sym(1).Node = 0; } break; -case 269: { +case 258: { sym(1).Node = sym(1).StatementList->finish (); } break; -case 271: { +case 260: { AST::VariableStatement *node = makeAstNode (driver->nodePool(), sym(2).VariableDeclarationList->finish (/*readOnly=*/sym(1).ival == T_CONST)); node->declarationKindToken = loc(1); @@ -1349,76 +1300,76 @@ case 271: { sym(1).Node = node; } break; -case 272: { +case 261: { sym(1).ival = T_CONST; } break; -case 273: { +case 262: { sym(1).ival = T_VAR; } break; -case 274: { +case 263: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).VariableDeclaration); } break; -case 275: { +case 264: { AST::VariableDeclarationList *node = makeAstNode (driver->nodePool(), sym(1).VariableDeclarationList, sym(3).VariableDeclaration); node->commaToken = loc(2); sym(1).Node = node; } break; -case 276: { +case 265: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).VariableDeclaration); } break; -case 277: { +case 266: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).VariableDeclarationList, sym(3).VariableDeclaration); } break; -case 278: { +case 267: { AST::VariableDeclaration *node = makeAstNode (driver->nodePool(), sym(1).sval, sym(2).Expression); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 279: { +case 268: { AST::VariableDeclaration *node = makeAstNode (driver->nodePool(), sym(1).sval, sym(2).Expression); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 280: { +case 269: { // ### TODO: AST for initializer sym(1) = sym(2); } break; -case 281: { +case 270: { sym(1).Node = 0; } break; -case 283: { +case 272: { // ### TODO: AST for initializer sym(1) = sym(2); } break; -case 284: { +case 273: { sym(1).Node = 0; } break; -case 286: { +case 275: { AST::EmptyStatement *node = makeAstNode (driver->nodePool()); node->semicolonToken = loc(1); sym(1).Node = node; } break; -case 288: { +case 277: { AST::ExpressionStatement *node = makeAstNode (driver->nodePool(), sym(1).Expression); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 289: { +case 278: { AST::IfStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).Statement, sym(7).Statement); node->ifToken = loc(1); node->lparenToken = loc(2); @@ -1427,7 +1378,7 @@ case 289: { sym(1).Node = node; } break; -case 290: { +case 279: { AST::IfStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).Statement); node->ifToken = loc(1); node->lparenToken = loc(2); @@ -1435,7 +1386,7 @@ case 290: { sym(1).Node = node; } break; -case 292: { +case 281: { AST::DoWhileStatement *node = makeAstNode (driver->nodePool(), sym(2).Statement, sym(5).Expression); node->doToken = loc(1); node->whileToken = loc(3); @@ -1445,7 +1396,7 @@ case 292: { sym(1).Node = node; } break; -case 293: { +case 282: { AST::WhileStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).Statement); node->whileToken = loc(1); node->lparenToken = loc(2); @@ -1453,7 +1404,7 @@ case 293: { sym(1).Node = node; } break; -case 294: { +case 283: { AST::ForStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).Expression, sym(7).Expression, sym(9).Statement); node->forToken = loc(1); @@ -1464,7 +1415,7 @@ case 294: { sym(1).Node = node; } break; -case 295: { +case 284: { AST::LocalForStatement *node = makeAstNode (driver->nodePool(), sym(4).VariableDeclarationList->finish (/*readOnly=*/false), sym(6).Expression, sym(8).Expression, sym(10).Statement); @@ -1477,7 +1428,7 @@ case 295: { sym(1).Node = node; } break; -case 296: { +case 285: { AST:: ForEachStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).Expression, sym(7).Statement); node->forToken = loc(1); @@ -1487,7 +1438,7 @@ case 296: { sym(1).Node = node; } break; -case 297: { +case 286: { AST::LocalForEachStatement *node = makeAstNode (driver->nodePool(), sym(4).VariableDeclaration, sym(6).Expression, sym(8).Statement); node->forToken = loc(1); @@ -1498,14 +1449,14 @@ case 297: { sym(1).Node = node; } break; -case 299: { +case 288: { AST::ContinueStatement *node = makeAstNode (driver->nodePool()); node->continueToken = loc(1); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 301: { +case 290: { AST::ContinueStatement *node = makeAstNode (driver->nodePool(), sym(2).sval); node->continueToken = loc(1); node->identifierToken = loc(2); @@ -1513,14 +1464,14 @@ case 301: { sym(1).Node = node; } break; -case 303: { +case 292: { AST::BreakStatement *node = makeAstNode (driver->nodePool()); node->breakToken = loc(1); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 305: { +case 294: { AST::BreakStatement *node = makeAstNode (driver->nodePool(), sym(2).sval); node->breakToken = loc(1); node->identifierToken = loc(2); @@ -1528,14 +1479,14 @@ case 305: { sym(1).Node = node; } break; -case 307: { +case 296: { AST::ReturnStatement *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->returnToken = loc(1); node->semicolonToken = loc(3); sym(1).Node = node; } break; -case 308: { +case 297: { AST::WithStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).Statement); node->withToken = loc(1); node->lparenToken = loc(2); @@ -1543,7 +1494,7 @@ case 308: { sym(1).Node = node; } break; -case 309: { +case 298: { AST::SwitchStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).CaseBlock); node->switchToken = loc(1); node->lparenToken = loc(2); @@ -1551,90 +1502,90 @@ case 309: { sym(1).Node = node; } break; -case 310: { +case 299: { AST::CaseBlock *node = makeAstNode (driver->nodePool(), sym(2).CaseClauses); node->lbraceToken = loc(1); node->rbraceToken = loc(3); sym(1).Node = node; } break; -case 311: { +case 300: { AST::CaseBlock *node = makeAstNode (driver->nodePool(), sym(2).CaseClauses, sym(3).DefaultClause, sym(4).CaseClauses); node->lbraceToken = loc(1); node->rbraceToken = loc(5); sym(1).Node = node; } break; -case 312: { +case 301: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).CaseClause); } break; -case 313: { +case 302: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).CaseClauses, sym(2).CaseClause); } break; -case 314: { +case 303: { sym(1).Node = 0; } break; -case 315: { +case 304: { sym(1).Node = sym(1).CaseClauses->finish (); } break; -case 316: { +case 305: { AST::CaseClause *node = makeAstNode (driver->nodePool(), sym(2).Expression, sym(4).StatementList); node->caseToken = loc(1); node->colonToken = loc(3); sym(1).Node = node; } break; -case 317: { +case 306: { AST::DefaultClause *node = makeAstNode (driver->nodePool(), sym(3).StatementList); node->defaultToken = loc(1); node->colonToken = loc(2); sym(1).Node = node; } break; -case 318: -case 319: { +case 307: +case 308: { AST::LabelledStatement *node = makeAstNode (driver->nodePool(), driver->intern(lexer->characterBuffer(), lexer->characterCount()), sym(3).Statement); node->identifierToken = loc(1); node->colonToken = loc(2); sym(1).Node = node; } break; -case 320: { +case 309: { AST::LabelledStatement *node = makeAstNode (driver->nodePool(), sym(1).sval, sym(3).Statement); node->identifierToken = loc(1); node->colonToken = loc(2); sym(1).Node = node; } break; -case 322: { +case 311: { AST::ThrowStatement *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->throwToken = loc(1); node->semicolonToken = loc(3); sym(1).Node = node; } break; -case 323: { +case 312: { AST::TryStatement *node = makeAstNode (driver->nodePool(), sym(2).Statement, sym(3).Catch); node->tryToken = loc(1); sym(1).Node = node; } break; -case 324: { +case 313: { AST::TryStatement *node = makeAstNode (driver->nodePool(), sym(2).Statement, sym(3).Finally); node->tryToken = loc(1); sym(1).Node = node; } break; -case 325: { +case 314: { AST::TryStatement *node = makeAstNode (driver->nodePool(), sym(2).Statement, sym(3).Catch, sym(4).Finally); node->tryToken = loc(1); sym(1).Node = node; } break; -case 326: { +case 315: { AST::Catch *node = makeAstNode (driver->nodePool(), sym(3).sval, sym(5).Block); node->catchToken = loc(1); node->lparenToken = loc(2); @@ -1643,20 +1594,20 @@ case 326: { sym(1).Node = node; } break; -case 327: { +case 316: { AST::Finally *node = makeAstNode (driver->nodePool(), sym(2).Block); node->finallyToken = loc(1); sym(1).Node = node; } break; -case 329: { +case 318: { AST::DebuggerStatement *node = makeAstNode (driver->nodePool()); node->debuggerToken = loc(1); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 330: { +case 319: { AST::FunctionDeclaration *node = makeAstNode (driver->nodePool(), sym(2).sval, sym(4).FormalParameterList, sym(7).FunctionBody); node->functionToken = loc(1); node->identifierToken = loc(2); @@ -1667,7 +1618,7 @@ case 330: { sym(1).Node = node; } break; -case 331: { +case 320: { AST::FunctionExpression *node = makeAstNode (driver->nodePool(), sym(2).sval, sym(4).FormalParameterList, sym(7).FunctionBody); node->functionToken = loc(1); if (sym(2).sval) @@ -1679,56 +1630,56 @@ case 331: { sym(1).Node = node; } break; -case 332: { +case 321: { AST::FormalParameterList *node = makeAstNode (driver->nodePool(), sym(1).sval); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 333: { +case 322: { AST::FormalParameterList *node = makeAstNode (driver->nodePool(), sym(1).FormalParameterList, sym(3).sval); node->commaToken = loc(2); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 334: { +case 323: { sym(1).Node = 0; } break; -case 335: { +case 324: { sym(1).Node = sym(1).FormalParameterList->finish (); } break; -case 336: { +case 325: { sym(1).Node = 0; } break; -case 338: { +case 327: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).SourceElements->finish ()); } break; -case 339: { +case 328: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).SourceElement); } break; -case 340: { +case 329: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).SourceElements, sym(2).SourceElement); } break; -case 341: { +case 330: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).Statement); } break; -case 342: { +case 331: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).FunctionDeclaration); } break; -case 343: { +case 332: { sym(1).sval = 0; } break; -case 345: { +case 334: { sym(1).Node = 0; } break; diff --git a/src/declarative/qml/parser/qmljsparser_p.h b/src/declarative/qml/parser/qmljsparser_p.h index 74d3c84..6f36484 100644 --- a/src/declarative/qml/parser/qmljsparser_p.h +++ b/src/declarative/qml/parser/qmljsparser_p.h @@ -120,8 +120,6 @@ public: AST::UiObjectMemberList *UiObjectMemberList; AST::UiArrayMemberList *UiArrayMemberList; AST::UiQualifiedId *UiQualifiedId; - AST::UiAttributeList *UiAttributeList; - AST::UiAttribute *UiAttribute; }; public: @@ -221,9 +219,9 @@ protected: -#define J_SCRIPT_REGEXPLITERAL_RULE1 79 +#define J_SCRIPT_REGEXPLITERAL_RULE1 68 -#define J_SCRIPT_REGEXPLITERAL_RULE2 80 +#define J_SCRIPT_REGEXPLITERAL_RULE2 69 QT_END_NAMESPACE -- cgit v0.12 From 60cd50b800b6e6cf185df170c1b2cb41108a82b6 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Fri, 24 Jul 2009 06:15:06 +0200 Subject: Removed support for CSS-like literals. --- src/declarative/qml/parser/qmljs.g | 2 +- src/declarative/qml/parser/qmljsast.cpp | 38 --------------- src/declarative/qml/parser/qmljsast_p.h | 29 ++---------- src/declarative/qml/parser/qmljslexer.cpp | 58 ----------------------- src/declarative/qml/parser/qmljslexer_p.h | 19 -------- src/declarative/qml/parser/qmljsparser.cpp | 2 +- src/declarative/qml/qmlbasicscript.cpp | 75 +++++++++++++++--------------- src/declarative/qml/qmlrewrite.cpp | 53 +-------------------- src/declarative/qml/qmlrewrite_p.h | 15 ------ src/declarative/qml/qmlscriptparser.cpp | 21 +++------ 10 files changed, 49 insertions(+), 263 deletions(-) diff --git a/src/declarative/qml/parser/qmljs.g b/src/declarative/qml/parser/qmljs.g index 20ee27d..5f0fe8f 100644 --- a/src/declarative/qml/parser/qmljs.g +++ b/src/declarative/qml/parser/qmljs.g @@ -1021,7 +1021,7 @@ case $rule_number: { PrimaryExpression: T_NUMERIC_LITERAL ; /. case $rule_number: { - AST::NumericLiteral *node = makeAstNode (driver->nodePool(), sym(1).dval, lexer->flags); + AST::NumericLiteral *node = makeAstNode (driver->nodePool(), sym(1).dval); node->literalToken = loc(1); sym(1).Node = node; } break; diff --git a/src/declarative/qml/parser/qmljsast.cpp b/src/declarative/qml/parser/qmljsast.cpp index d10c071..52f19e2 100644 --- a/src/declarative/qml/parser/qmljsast.cpp +++ b/src/declarative/qml/parser/qmljsast.cpp @@ -49,44 +49,6 @@ QT_BEGIN_NAMESPACE namespace QmlJS { namespace AST { -int NumericLiteral::suffixLength[] = { - 0, // noSuffix - 2, // emSuffix - 2, // exSuffix - 2, // pxSuffix - 2, // cmSuffix - 2, // mmSuffix - 2, // inSuffix - 2, // ptSuffix - 2, // pcSuffix - 3, // degSuffix - 3, // radSuffix - 4, // gradSuffix - 2, // msSuffix - 1, // sSuffix - 2, // hzSuffix - 3 // khzSuffix -}; - -const char *const NumericLiteral::suffixSpell[] = { - "", - "em", - "ex", - "px", - "cm", - "mm", - "in", - "pt", - "pc", - "deg", - "rad", - "grad", - "ms", - "s", - "hz", - "khz" -}; - ExpressionNode *Node::expressionCast() { return 0; diff --git a/src/declarative/qml/parser/qmljsast_p.h b/src/declarative/qml/parser/qmljsast_p.h index 6d269ac..eba9202 100644 --- a/src/declarative/qml/parser/qmljsast_p.h +++ b/src/declarative/qml/parser/qmljsast_p.h @@ -104,7 +104,7 @@ enum Op { } // namespace QSOperator -namespace QmlJS { +namespace QmlJS { class NameId; namespace AST { @@ -400,30 +400,8 @@ class NumericLiteral: public ExpressionNode public: QMLJS_DECLARE_AST_NODE(NumericLiteral) - enum Suffix { // ### keep it in sync with the Suffix enum in qmljslexer_p.h - noSuffix, - emSuffix, - exSuffix, - pxSuffix, - cmSuffix, - mmSuffix, - inSuffix, - ptSuffix, - pcSuffix, - degSuffix, - radSuffix, - gradSuffix, - msSuffix, - sSuffix, - hzSuffix, - khzSuffix - }; - - static int suffixLength[]; - static const char *const suffixSpell[]; - - NumericLiteral(double v, int suffix): - value(v), suffix(suffix) { kind = K; } + NumericLiteral(double v): + value(v) { kind = K; } virtual ~NumericLiteral() {} virtual void accept0(Visitor *visitor); @@ -436,7 +414,6 @@ public: // attributes: double value; - int suffix; SourceLocation literalToken; }; diff --git a/src/declarative/qml/parser/qmljslexer.cpp b/src/declarative/qml/parser/qmljslexer.cpp index a22169d..beb5ebd 100644 --- a/src/declarative/qml/parser/qmljslexer.cpp +++ b/src/declarative/qml/parser/qmljslexer.cpp @@ -755,64 +755,6 @@ int Lexer::lex() bol = false; } - if (state == Number) { - // CSS-style suffix for numeric literals - - flags = noSuffix; - - const ushort c = QChar::toLower(current); - const ushort n1 = QChar::toLower(next1); - const ushort n2 = QChar::toLower(next2); - const ushort n3 = QChar::toLower(next3); - - if (c == 'e' && n1 == 'm') { - flags = emSuffix; - shift(2); - } else if (c == 'e' && n1 == 'x') { - flags = exSuffix; - shift(2); - } else if (c == 'p' && n1 == 'x') { - flags = pxSuffix; - shift(2); - } else if (c == 'c' && n1 == 'm') { - flags = cmSuffix; - shift(2); - } else if (c == 'm' && n1 == 'm') { - flags = mmSuffix; - shift(2); - } else if (c == 'i' && n1 == 'n') { - flags = inSuffix; - shift(2); - } else if (c == 'p' && n1 == 't') { - flags = ptSuffix; - shift(2); - } else if (c == 'p' && n1 == 'c') { - flags = pcSuffix; - shift(1); - } else if (c == 'd' && n1 == 'e' && n2 == 'g') { - flags = degSuffix; - shift(3); - } else if (c == 'r' && n1 == 'a' && n2 == 'd') { - flags = radSuffix; - shift(3); - } else if (c == 'g' && n1 == 'r' && n2 == 'a' && n3 == 'd') { - flags = gradSuffix; - shift(4); - } else if (c == 'm' && n1 == 's') { - flags = msSuffix; - shift(2); - } else if (c == 's') { - flags = sSuffix; - shift(1); - } else if (c == 'h' && n1 == 'z') { - flags = hzSuffix; - shift(2); - } else if (c == 'k' && n1 == 'h' && n2 == 'z') { - flags = khzSuffix; - shift(3); - } - } - // no identifiers allowed directly after numeric literal, e.g. "3in" is bad if ((state == Number || state == Octal || state == Hex) && isIdentLetter(current)) { diff --git a/src/declarative/qml/parser/qmljslexer_p.h b/src/declarative/qml/parser/qmljslexer_p.h index e1ff23e..5817868 100644 --- a/src/declarative/qml/parser/qmljslexer_p.h +++ b/src/declarative/qml/parser/qmljslexer_p.h @@ -112,25 +112,6 @@ public: Other, Bad }; - enum Suffix { - noSuffix, - emSuffix, - exSuffix, - pxSuffix, - cmSuffix, - mmSuffix, - inSuffix, - ptSuffix, - pcSuffix, - degSuffix, - radSuffix, - gradSuffix, - msSuffix, - sSuffix, - hzSuffix, - khzSuffix - }; - enum Error { NoError, IllegalCharacter, diff --git a/src/declarative/qml/parser/qmljsparser.cpp b/src/declarative/qml/parser/qmljsparser.cpp index a1236d5..e64774e 100644 --- a/src/declarative/qml/parser/qmljsparser.cpp +++ b/src/declarative/qml/parser/qmljsparser.cpp @@ -517,7 +517,7 @@ case 64: { } break; case 65: { - AST::NumericLiteral *node = makeAstNode (driver->nodePool(), sym(1).dval, lexer->flags); + AST::NumericLiteral *node = makeAstNode (driver->nodePool(), sym(1).dval); node->literalToken = loc(1); sym(1).Node = node; } break; diff --git a/src/declarative/qml/qmlbasicscript.cpp b/src/declarative/qml/qmlbasicscript.cpp index 073642f..8fcb0e1 100644 --- a/src/declarative/qml/qmlbasicscript.cpp +++ b/src/declarative/qml/qmlbasicscript.cpp @@ -89,7 +89,7 @@ class QmlBasicScriptPrivate { public: enum Flags { OwnData = 0x00000001 }; - + int size; int stateSize; int instructionCount; @@ -102,14 +102,14 @@ public: return (const char *)(instructions() + instructionCount); } - const char *data() const + const char *data() const { return (const char *)(instructions() + instructionCount) + exprLen + 1; } static unsigned int alignRound(int s) { - if (s % 4) + if (s % 4) s += 4 - (s % 4); return s; } @@ -177,10 +177,10 @@ static QVariant fetch_value(QObject *o, int idx, int type) return QVariant(val); } break; - default: + default: { if (QmlMetaType::isObject(type)) { - // NOTE: This assumes a cast to QObject does not alter the + // NOTE: This assumes a cast to QObject does not alter the // object pointer QObject *val = 0; void *args[] = { &val, 0 }; @@ -241,14 +241,14 @@ struct QmlBasicScriptCompiler evaluated using the QmlBasicScript engine. To see if the QmlBasicScript engine can handle a binding, call compile() - and check the return value, or isValid() afterwards. + and check the return value, or isValid() afterwards. To evaluate the binding, the QmlBasicScript instance needs some memory in which to cache state. This may be allocated by calling newScriptState() and destroyed by calling deleteScriptState(). The state data is then passed to the run() method when evaluating the binding. - To further accelerate binding, QmlBasicScript can return a precompiled + To further accelerate binding, QmlBasicScript can return a precompiled version of itself that can be saved for future use. Call compileData() to get an opaque pointer to the compiled state, and compileDataSize() for the size of this data in bytes. This data can be saved and passed to future @@ -271,10 +271,10 @@ QmlBasicScript::QmlBasicScript() previously created QmlBasicScript instance. Any other data will almost certainly cause the QmlBasicScript engine to crash. - \a data must continue to be valid throughout the QmlBasicScript instance + \a data must continue to be valid throughout the QmlBasicScript instance life. It does not assume ownership of the memory. - If \a owner is set, it is referenced on creation and dereferenced on + If \a owner is set, it is referenced on creation and dereferenced on destruction of this instance. */ @@ -407,8 +407,8 @@ bool QmlBasicScript::compile(const Expression &expression) if (bsc.compile(expression.expression.asAST())) { int len = ::strlen(src); flags = QmlBasicScriptPrivate::OwnData; - int size = sizeof(QmlBasicScriptPrivate) + - bsc.bytecode.count() * sizeof(ScriptInstruction) + + int size = sizeof(QmlBasicScriptPrivate) + + bsc.bytecode.count() * sizeof(ScriptInstruction) + QmlBasicScriptPrivate::alignRound(bsc.data.count() + len + 1); d = (QmlBasicScriptPrivate *) malloc(size); d->size = size; @@ -416,10 +416,10 @@ bool QmlBasicScript::compile(const Expression &expression) d->instructionCount = bsc.bytecode.count(); d->exprLen = len; ::memcpy((char *)d->expr(), src, len + 1); - for (int ii = 0; ii < d->instructionCount; ++ii) + for (int ii = 0; ii < d->instructionCount; ++ii) d->instructions()[ii] = bsc.bytecode.at(ii); ::memcpy((char *)d->data(), bsc.data.constData(), bsc.data.count()); - } + } return d != 0; } @@ -431,15 +431,14 @@ bool QmlBasicScriptCompiler::compile(QmlJS::AST::Node *node) bool QmlBasicScriptCompiler::tryConstant(QmlJS::AST::Node *node) { - if (node->kind == AST::Node::Kind_TrueLiteral || + if (node->kind == AST::Node::Kind_TrueLiteral || node->kind == AST::Node::Kind_FalseLiteral) return true; if (node->kind == AST::Node::Kind_NumericLiteral) { AST::NumericLiteral *lit = static_cast(node); - return lit->suffix == AST::NumericLiteral::noSuffix && - double(int(lit->value)) == lit->value; + return double(int(lit->value)) == lit->value; } return false; @@ -469,13 +468,13 @@ bool QmlBasicScriptCompiler::tryName(QmlJS::AST::Node *node) node->kind == AST::Node::Kind_FieldMemberExpression; } -bool QmlBasicScriptCompiler::buildName(QStringList &name, +bool QmlBasicScriptCompiler::buildName(QStringList &name, QmlJS::AST::Node *node) { if (node->kind == AST::Node::Kind_IdentifierExpression) { name << static_cast(node)->name->asString(); } else if (node->kind == AST::Node::Kind_FieldMemberExpression) { - AST::FieldMemberExpression *expr = + AST::FieldMemberExpression *expr = static_cast(node); if (!buildName(name, expr->base)) @@ -499,7 +498,7 @@ QmlBasicScriptCompiler::fetch(int type, const QMetaObject *mo, int idx) if (prop.isConstant()) instr.constant.notify = 0; else - instr.constant.notify = prop.notifySignalIndex(); + instr.constant.notify = prop.notifySignalIndex(); instr.constant.type = prop.userType(); bytecode << instr; return QmlMetaType::metaObjectForType(prop.userType()); @@ -518,7 +517,7 @@ bool QmlBasicScriptCompiler::parseName(AST::Node *node) const QString &name = nameParts.at(ii); // We don't handle signal properties - if (name.length() > 2 && name.startsWith(QLatin1String("on")) && + if (name.length() > 2 && name.startsWith(QLatin1String("on")) && name.at(2).isUpper()) return false; @@ -543,10 +542,10 @@ bool QmlBasicScriptCompiler::parseName(AST::Node *node) d1Idx = component->metaObject()->indexOfProperty(cname); if (d0Idx != -1) { - metaType = fetch(ScriptInstruction::FetchContextConstant, + metaType = fetch(ScriptInstruction::FetchContextConstant, context->metaObject(), d0Idx); } else if(d1Idx != -1) { - metaType = fetch(ScriptInstruction::FetchRootConstant, + metaType = fetch(ScriptInstruction::FetchRootConstant, component->metaObject(), d1Idx); } else { return false; @@ -602,7 +601,7 @@ bool QmlBasicScriptCompiler::compileExpression(QmlJS::AST::Node *node) bool QmlBasicScriptCompiler::tryBinaryExpression(AST::Node *node) { if (node->kind == AST::Node::Kind_BinaryExpression) { - AST::BinaryExpression *expr = + AST::BinaryExpression *expr = static_cast(node); if (expr->op == QSOperator::Equal) @@ -614,7 +613,7 @@ bool QmlBasicScriptCompiler::tryBinaryExpression(AST::Node *node) bool QmlBasicScriptCompiler::compileBinaryExpression(AST::Node *node) { if (node->kind == AST::Node::Kind_BinaryExpression) { - AST::BinaryExpression *expr = + AST::BinaryExpression *expr = static_cast(node); if (!compileExpression(expr->left)) return false; @@ -631,7 +630,7 @@ bool QmlBasicScriptCompiler::compileBinaryExpression(AST::Node *node) bytecode.append(instr); return true; - } + } return false; } @@ -639,7 +638,7 @@ bool QmlBasicScriptCompiler::compileBinaryExpression(AST::Node *node) \enum QmlBasicScript::CacheState \value NoChange The query has not change. Any previous monitoring is still valid. - \value Incremental The query has been incrementally changed. Any previous + \value Incremental The query has been incrementally changed. Any previous monitoring is still valid, but needs to have the fresh properties added to it. \value Reset The entire query has been reset from the beginning. Any previous @@ -647,60 +646,60 @@ bool QmlBasicScriptCompiler::compileBinaryExpression(AST::Node *node) */ /*! - Run the script in \a context and return the result. \a voidCache should - contain state memory previously acquired from newScript. + Run the script in \a context and return the result. \a voidCache should + contain state memory previously acquired from newScript. */ QVariant QmlBasicScript::run(QmlContext *context, void *voidCache, CacheState *cached) { Q_UNUSED(voidCache); if (!isValid()) return QVariant(); - + QmlContextPrivate *contextPrivate = context->d_func(); QmlEnginePrivate *enginePrivate = context->engine()->d_func(); QStack stack; - + CacheState state = NoChange; for (int idx = 0; idx < d->instructionCount; ++idx) { const ScriptInstruction &instr = d->instructions()[idx]; switch(instr.type) { - case ScriptInstruction::LoadIdObject: + case ScriptInstruction::LoadIdObject: { stack.push(contextPrivate->propertyValues.at(instr.fetch.idx)); enginePrivate->capturedProperties << - QmlEnginePrivate::CapturedProperty(context, -1, contextPrivate->notifyIndex + instr.fetch.idx); + QmlEnginePrivate::CapturedProperty(context, -1, contextPrivate->notifyIndex + instr.fetch.idx); state = Reset; } break; - case ScriptInstruction::FetchContextConstant: + case ScriptInstruction::FetchContextConstant: { QObject *obj = contextPrivate->defaultObjects.at(0); stack.push(fetch_value(obj, instr.constant.idx, instr.constant.type)); if (obj && instr.constant.notify != 0) enginePrivate->capturedProperties << - QmlEnginePrivate::CapturedProperty(obj, instr.constant.idx, instr.constant.notify); + QmlEnginePrivate::CapturedProperty(obj, instr.constant.idx, instr.constant.notify); state = Reset; } break; - case ScriptInstruction::FetchRootConstant: + case ScriptInstruction::FetchRootConstant: { QObject *obj = contextPrivate->defaultObjects.at(1); stack.push(fetch_value(obj, instr.constant.idx, instr.constant.type)); if (obj && instr.constant.notify != 0) enginePrivate->capturedProperties << - QmlEnginePrivate::CapturedProperty(obj, instr.constant.idx, instr.constant.notify); + QmlEnginePrivate::CapturedProperty(obj, instr.constant.idx, instr.constant.notify); state = Reset; } break; - case ScriptInstruction::FetchConstant: + case ScriptInstruction::FetchConstant: { QVariant o = stack.pop(); QObject *obj = qvariant_cast(o); @@ -708,7 +707,7 @@ QVariant QmlBasicScript::run(QmlContext *context, void *voidCache, CacheState *c stack.push(fetch_value(obj, instr.constant.idx, instr.constant.type)); if (obj && instr.constant.notify != 0) enginePrivate->capturedProperties << - QmlEnginePrivate::CapturedProperty(obj, instr.constant.idx, instr.constant.notify); + QmlEnginePrivate::CapturedProperty(obj, instr.constant.idx, instr.constant.notify); state = Reset; } break; diff --git a/src/declarative/qml/qmlrewrite.cpp b/src/declarative/qml/qmlrewrite.cpp index 02bf8fa..c708418 100644 --- a/src/declarative/qml/qmlrewrite.cpp +++ b/src/declarative/qml/qmlrewrite.cpp @@ -61,7 +61,7 @@ void RewriteBinding::accept(AST::Node *node) AST::Node::acceptChild(node, this); } -QString RewriteBinding::rewrite(QString code, unsigned position, +QString RewriteBinding::rewrite(QString code, unsigned position, AST::Statement *node) { TextWriter w; @@ -101,57 +101,6 @@ bool RewriteBinding::visit(AST::ExpressionStatement *ast) return false; } -bool RewriteBinding::visit(AST::NumericLiteral *node) -{ - if (node->suffix != AST::NumericLiteral::noSuffix) { - const int suffixLength = AST::NumericLiteral::suffixLength[node->suffix]; - const char *suffixSpell = AST::NumericLiteral::suffixSpell[node->suffix]; - QString pre; - pre += QLatin1String("qmlNumberFrom"); - pre += QChar(QLatin1Char(suffixSpell[0])).toUpper(); - pre += QLatin1String(&suffixSpell[1]); - pre += QLatin1Char('('); - _writer->replace(node->literalToken.begin() - _position, 0, pre); - _writer->replace(node->literalToken.end() - _position - suffixLength, - suffixLength, - QLatin1String(")")); - } - - return false; -} - -QString RewriteNumericLiterals::operator()(QString code, unsigned position, AST::Node *node) -{ - TextWriter w; - _writer = &w; - _position = position; - - AST::Node::acceptChild(node, this); - - w.write(&code); - - return code; -} - -bool RewriteNumericLiterals::visit(AST::NumericLiteral *node) -{ - if (node->suffix != AST::NumericLiteral::noSuffix) { - const int suffixLength = AST::NumericLiteral::suffixLength[node->suffix]; - const char *suffixSpell = AST::NumericLiteral::suffixSpell[node->suffix]; - QString pre; - pre += QLatin1String("qmlNumberFrom"); - pre += QChar(QLatin1Char(suffixSpell[0])).toUpper(); - pre += QLatin1String(&suffixSpell[1]); - pre += QLatin1Char('('); - _writer->replace(node->literalToken.begin() - _position, 0, pre); - _writer->replace(node->literalToken.end() - _position - suffixLength, - suffixLength, - QLatin1String(")")); - } - - return false; -} - } // namespace QmlRewrite QT_END_NAMESPACE diff --git a/src/declarative/qml/qmlrewrite_p.h b/src/declarative/qml/qmlrewrite_p.h index 51a8015..b6fe017 100644 --- a/src/declarative/qml/qmlrewrite_p.h +++ b/src/declarative/qml/qmlrewrite_p.h @@ -78,21 +78,6 @@ protected: QString rewrite(QString code, unsigned position, AST::Statement *node); virtual bool visit(AST::Block *ast); virtual bool visit(AST::ExpressionStatement *ast); - virtual bool visit(AST::NumericLiteral *node); -}; - -class RewriteNumericLiterals: protected AST::Visitor -{ - unsigned _position; - TextWriter *_writer; - -public: - QString operator()(QString code, unsigned position, AST::Node *node); - -protected: - using AST::Visitor::visit; - - virtual bool visit(AST::NumericLiteral *node); }; } // namespace QmlRewrite diff --git a/src/declarative/qml/qmlscriptparser.cpp b/src/declarative/qml/qmlscriptparser.cpp index c1c11c7..2f82f0d 100644 --- a/src/declarative/qml/qmlscriptparser.cpp +++ b/src/declarative/qml/qmlscriptparser.cpp @@ -154,15 +154,12 @@ protected: const AST::SourceLocation &last) const { return _contents.mid(first.offset, last.offset + last.length - first.offset); } - QmlRewrite::RewriteNumericLiterals rewriteNumericLiterals; - QString asString(AST::ExpressionNode *expr) { if (! expr) return QString(); - return rewriteNumericLiterals(textAt(expr->firstSourceLocation(), expr->lastSourceLocation()), - expr->firstSourceLocation().offset, expr); + return textAt(expr->firstSourceLocation(), expr->lastSourceLocation()); } QString asString(AST::Statement *stmt) @@ -170,9 +167,7 @@ protected: if (! stmt) return QString(); - QString s = rewriteNumericLiterals(textAt(stmt->firstSourceLocation(), stmt->lastSourceLocation()), - stmt->firstSourceLocation().offset, stmt); - + QString s = textAt(stmt->firstSourceLocation(), stmt->lastSourceLocation()); s += QLatin1Char('\n'); return s; } @@ -479,7 +474,7 @@ bool ProcessAST::visit(AST::UiPublicMember *node) const QString memberType = p->type->asString(); const char *qtType = 0; for(int ii = 0; !qtType && ii < propTypeNameToTypesCount; ++ii) { - if(QLatin1String(propTypeNameToTypes[ii].name) == memberType) + if(QLatin1String(propTypeNameToTypes[ii].name) == memberType) qtType = propTypeNameToTypes[ii].qtName; } @@ -530,7 +525,7 @@ bool ProcessAST::visit(AST::UiPublicMember *node) property.isDefaultProperty = node->isDefaultMember; property.type = type; property.name = name.toUtf8(); - property.location = location(node->firstSourceLocation(), + property.location = location(node->firstSourceLocation(), node->lastSourceLocation()); if (node->expression) { // default value @@ -588,11 +583,7 @@ QmlParser::Variant ProcessAST::getVariant(AST::ExpressionNode *expr) } else if (expr->kind == AST::Node::Kind_FalseLiteral) { return QmlParser::Variant(false); } else if (AST::NumericLiteral *lit = AST::cast(expr)) { - if (lit->suffix == AST::NumericLiteral::noSuffix) - return QmlParser::Variant(lit->value, asString(expr)); - else - return QmlParser::Variant(asString(expr), expr); - + return QmlParser::Variant(lit->value, asString(expr)); } else { if (AST::UnaryMinusExpression *unaryMinus = AST::cast(expr)) { @@ -624,7 +615,7 @@ bool ProcessAST::visit(AST::UiScriptBinding *node) if (AST::ExpressionStatement *stmt = AST::cast(node->statement)) { primitive = getVariant(stmt->expression); } else { // do binding - primitive = QmlParser::Variant(asString(node->statement), + primitive = QmlParser::Variant(asString(node->statement), node->statement); } -- cgit v0.12 From 3ff864cf3ec30af8f5a7522eef7bc170d7e99911 Mon Sep 17 00:00:00 2001 From: Rhys Weatherley Date: Fri, 24 Jul 2009 14:50:34 +1000 Subject: Make custom string converters work for builtin variant metatypes With QVector3D now being a builtin variant type, the string converter code broke. This change looks for string converters for all kinds of types, just as in the rest of the QML code. --- src/declarative/qml/qmlbinding.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/declarative/qml/qmlbinding.cpp b/src/declarative/qml/qmlbinding.cpp index 431dd66..41cef49 100644 --- a/src/declarative/qml/qmlbinding.cpp +++ b/src/declarative/qml/qmlbinding.cpp @@ -139,8 +139,7 @@ void QmlBinding::update() } else { QVariant value = this->value(); - if ((uint)d->property.propertyType() >= QVariant::UserType && - value.type() == QVariant::String) { + if (value.type() == QVariant::String) { QmlMetaType::StringConverter con = QmlMetaType::customStringConverter(d->property.propertyType()); if (con) value = con(value.toString()); -- cgit v0.12