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 From 17030b55cc61daac51112a3a43e12b96ba7fa280 Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Fri, 24 Jul 2009 14:52:57 +1000 Subject: Add a 'loading' property to fontfamily. --- src/declarative/util/qmlfontfamily.cpp | 13 ++++++++++++- src/declarative/util/qmlfontfamily.h | 4 ++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/declarative/util/qmlfontfamily.cpp b/src/declarative/util/qmlfontfamily.cpp index 407d2ab..e539085 100644 --- a/src/declarative/util/qmlfontfamily.cpp +++ b/src/declarative/util/qmlfontfamily.cpp @@ -57,13 +57,14 @@ class QmlFontFamilyPrivate : public QObjectPrivate Q_DECLARE_PUBLIC(QmlFontFamily); public: - QmlFontFamilyPrivate() : reply(0) {} + QmlFontFamilyPrivate() : reply(0), loading(false) {} void addFontToDatabase(const QByteArray &); QUrl url; QString name; QNetworkReply *reply; + bool loading; }; QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,FontFamily,QmlFontFamily) @@ -94,6 +95,8 @@ void QmlFontFamily::setSource(const QUrl &url) return; d->url = qmlContext(this)->resolvedUrl(url); + d->loading = true; + emit loadingChanged(); #ifndef QT_NO_LOCALFILE_OPTIMIZED_QML if (d->url.scheme() == QLatin1String("file")) { QFile file(d->url.toLocalFile()); @@ -125,6 +128,12 @@ void QmlFontFamily::setName(const QString &name) emit nameChanged(); } +bool QmlFontFamily::isLoading() const +{ + Q_D(const QmlFontFamily); + return d->loading; +} + void QmlFontFamily::replyFinished() { Q_D(QmlFontFamily); @@ -144,6 +153,8 @@ void QmlFontFamilyPrivate::addFontToDatabase(const QByteArray &ba) if (id != -1) { name = QFontDatabase::applicationFontFamilies(id).at(0); emit q->nameChanged(); + loading = false; + emit q->loadingChanged(); } else { qWarning() << "Cannot load font: " << name << url; } diff --git a/src/declarative/util/qmlfontfamily.h b/src/declarative/util/qmlfontfamily.h index 739a553..c647f67 100644 --- a/src/declarative/util/qmlfontfamily.h +++ b/src/declarative/util/qmlfontfamily.h @@ -59,6 +59,7 @@ class Q_DECLARATIVE_EXPORT QmlFontFamily : public QObject Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) + Q_PROPERTY(bool loading READ isLoading NOTIFY loadingChanged) public: QmlFontFamily(QObject *parent = 0); @@ -70,11 +71,14 @@ public: QString name() const; void setName(const QString &name); + bool isLoading() const; + private Q_SLOTS: void replyFinished(); Q_SIGNALS: void nameChanged(); + void loadingChanged(); }; QT_END_NAMESPACE -- cgit v0.12