Commit 9be3ab0f authored by Erik Verbruggen's avatar Erik Verbruggen
Browse files

Copied in a new version of the QML parser from Qt Kinetic.

parent df9e5027
......@@ -89,6 +89,7 @@
--- feed tokens
%token T_FEED_UI_PROGRAM
%token T_FEED_UI_OBJECT_MEMBER
%token T_FEED_JS_STATEMENT
%token T_FEED_JS_EXPRESSION
......@@ -285,6 +286,7 @@ public:
bool parse() { return parse(T_FEED_UI_PROGRAM); }
bool parseStatement() { return parse(T_FEED_JS_STATEMENT); }
bool parseExpression() { return parse(T_FEED_JS_EXPRESSION); }
bool parseUiObjectMember() { return parse(T_FEED_UI_OBJECT_MEMBER); }
AST::UiProgram *ast() const
{ return AST::cast<AST::UiProgram *>(program); }
......@@ -305,6 +307,14 @@ public:
return program->expressionCast();
}
AST::UiObjectMember *uiObjectMember() const
{
if (! program)
return 0;
return program->uiObjectMemberCast();
}
QList<DiagnosticMessage> diagnosticMessages() const
{ return diagnostic_messages; }
......@@ -550,6 +560,14 @@ case $rule_number: {
} break;
./
TopLevel: T_FEED_UI_OBJECT_MEMBER UiObjectMember ;
/.
case $rule_number: {
sym(1).Node = sym(2).Node;
program = sym(1).Node;
} break;
./
UiProgram: UiImportListOpt UiRootMember ;
/.
case $rule_number: {
......@@ -850,6 +868,21 @@ case $rule_number: {
} break;
./
UiObjectMember: T_PROPERTY T_IDENTIFIER T_LT UiPropertyType T_GT T_IDENTIFIER T_AUTOMATIC_SEMICOLON ;
UiObjectMember: T_PROPERTY T_IDENTIFIER T_LT UiPropertyType T_GT T_IDENTIFIER T_SEMICOLON ;
/.
case $rule_number: {
AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(4).sval, sym(6).sval);
node->typeModifier = sym(2).sval;
node->propertyToken = loc(1);
node->typeModifierToken = loc(2);
node->typeToken = loc(4);
node->identifierToken = loc(6);
node->semicolonToken = loc(7);
sym(1).Node = node;
} break;
./
UiObjectMember: T_PROPERTY UiPropertyType T_IDENTIFIER T_AUTOMATIC_SEMICOLON ;
UiObjectMember: T_PROPERTY UiPropertyType T_IDENTIFIER T_SEMICOLON ;
/.
......
......@@ -75,6 +75,11 @@ Statement *Node::statementCast()
return 0;
}
UiObjectMember *Node::uiObjectMemberCast()
{
return 0;
}
ExpressionNode *ExpressionNode::expressionCast()
{
return this;
......@@ -90,6 +95,11 @@ Statement *Statement::statementCast()
return this;
}
UiObjectMember *UiObjectMember::uiObjectMemberCast()
{
return this;
}
void NestedExpression::accept0(Visitor *visitor)
{
if (visitor->visit(this)) {
......
......@@ -228,6 +228,7 @@ public:
virtual ExpressionNode *expressionCast();
virtual BinaryExpression *binaryExpressionCast();
virtual Statement *statementCast();
virtual UiObjectMember *uiObjectMemberCast();
void accept(Visitor *visitor);
static void accept(Node *node, Visitor *visitor);
......@@ -2356,6 +2357,8 @@ class UiObjectMember: public Node
public:
virtual SourceLocation firstSourceLocation() const = 0;
virtual SourceLocation lastSourceLocation() const = 0;
virtual UiObjectMember *uiObjectMemberCast();
};
class UiObjectMemberList: public Node
......@@ -2481,13 +2484,13 @@ public:
UiPublicMember(NameId *memberType,
NameId *name)
: type(Property), memberType(memberType), name(name), expression(0), isDefaultMember(false), isReadonlyMember(false), parameters(0)
: type(Property), typeModifier(0), memberType(memberType), name(name), expression(0), isDefaultMember(false), isReadonlyMember(false), parameters(0)
{ kind = K; }
UiPublicMember(NameId *memberType,
NameId *name,
ExpressionNode *expression)
: type(Property), memberType(memberType), name(name), expression(expression), isDefaultMember(false), isReadonlyMember(false), parameters(0)
: type(Property), typeModifier(0), memberType(memberType), name(name), expression(expression), isDefaultMember(false), isReadonlyMember(false), parameters(0)
{ kind = K; }
virtual SourceLocation firstSourceLocation() const
......@@ -2509,6 +2512,7 @@ public:
// attributes
enum { Signal, Property } type;
NameId *typeModifier;
NameId *memberType;
NameId *name;
ExpressionNode *expression;
......@@ -2518,6 +2522,7 @@ public:
SourceLocation defaultToken;
SourceLocation readonlyToken;
SourceLocation propertyToken;
SourceLocation typeModifierToken;
SourceLocation typeToken;
SourceLocation identifierToken;
SourceLocation colonToken;
......
......@@ -41,7 +41,7 @@
#include "qmljsastvisitor_p.h"
QT_QML_BEGIN_NAMESPACE
QT_BEGIN_NAMESPACE
namespace QmlJS { namespace AST {
......@@ -55,4 +55,4 @@ Visitor::~Visitor()
} } // namespace QmlJS::AST
QT_QML_END_NAMESPACE
QT_END_NAMESPACE
......@@ -2,6 +2,7 @@
/****************************************************************************
**
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the QtCore module of the Qt Toolkit.
......@@ -21,10 +22,9 @@
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain
** additional rights. These rights are described in the Nokia Qt LGPL
** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
** package.
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
......@@ -52,673 +52,718 @@ const char *const QmlJSGrammar::spell [] = {
")", ";", 0, "*", "*=", "string literal", "property", "signal", "readonly", "switch",
"this", "throw", "~", "try", "typeof", "var", "void", "while", "with", "^",
"^=", "null", "true", "false", "const", "debugger", "reserved word", "multiline string literal", "comment", "public",
"import", "as", 0, 0, 0, 0, 0};
"import", "as", 0, 0, 0, 0, 0, 0};
const int QmlJSGrammar::lhs [] = {
97, 97, 97, 98, 101, 101, 104, 104, 106, 105,
105, 105, 105, 105, 105, 105, 105, 108, 103, 102,
111, 111, 113, 113, 114, 114, 110, 112, 112, 112,
112, 112, 112, 112, 120, 120, 120, 121, 121, 122,
122, 112, 112, 112, 112, 112, 112, 112, 112, 112,
112, 112, 112, 112, 112, 112, 112, 109, 109, 109,
109, 125, 125, 125, 125, 125, 125, 125, 125, 125,
125, 125, 125, 125, 125, 125, 125, 125, 125, 115,
127, 127, 127, 127, 126, 126, 129, 129, 131, 131,
131, 131, 131, 131, 132, 132, 132, 132, 132, 132,
132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
132, 132, 132, 132, 132, 133, 133, 107, 107, 107,
107, 107, 136, 136, 137, 137, 137, 137, 135, 135,
138, 138, 139, 139, 140, 140, 140, 141, 141, 141,
141, 141, 141, 141, 141, 141, 141, 142, 142, 142,
142, 143, 143, 143, 144, 144, 144, 144, 145, 145,
145, 145, 145, 145, 145, 146, 146, 146, 146, 146,
146, 147, 147, 147, 147, 147, 148, 148, 148, 148,
148, 149, 149, 150, 150, 151, 151, 152, 152, 153,
153, 154, 154, 155, 155, 156, 156, 157, 157, 158,
158, 159, 159, 160, 160, 130, 130, 161, 161, 162,
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
162, 100, 100, 163, 163, 164, 164, 165, 165, 99,
99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
99, 99, 99, 99, 116, 177, 177, 176, 176, 124,
124, 178, 178, 179, 179, 181, 181, 180, 182, 185,
183, 183, 186, 184, 184, 117, 118, 118, 119, 119,
166, 166, 166, 166, 166, 166, 166, 167, 167, 167,
167, 168, 168, 168, 168, 169, 169, 170, 172, 187,
187, 190, 190, 188, 188, 191, 189, 171, 171, 171,
173, 173, 174, 174, 174, 192, 193, 175, 175, 123,
134, 197, 197, 194, 194, 195, 195, 198, 199, 199,
200, 200, 196, 196, 128, 128, 201};
98, 98, 98, 98, 99, 103, 103, 106, 106, 108,
107, 107, 107, 107, 107, 107, 107, 107, 110, 105,
104, 113, 113, 114, 114, 115, 115, 112, 102, 102,
102, 102, 102, 102, 102, 121, 121, 121, 122, 122,
123, 123, 102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
111, 111, 111, 111, 126, 126, 126, 126, 126, 126,
126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
126, 126, 116, 128, 128, 128, 128, 127, 127, 130,
130, 132, 132, 132, 132, 132, 132, 133, 133, 133,
133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
133, 133, 133, 133, 133, 133, 133, 133, 134, 134,
109, 109, 109, 109, 109, 137, 137, 138, 138, 138,
138, 136, 136, 139, 139, 140, 140, 141, 141, 141,
142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
143, 143, 143, 143, 144, 144, 144, 145, 145, 145,
145, 146, 146, 146, 146, 146, 146, 146, 147, 147,
147, 147, 147, 147, 148, 148, 148, 148, 148, 149,
149, 149, 149, 149, 150, 150, 151, 151, 152, 152,
153, 153, 154, 154, 155, 155, 156, 156, 157, 157,
158, 158, 159, 159, 160, 160, 161, 161, 131, 131,
162, 162, 163, 163, 163, 163, 163, 163, 163, 163,
163, 163, 163, 163, 101, 101, 164, 164, 165, 165,
166, 166, 100, 100, 100, 100, 100, 100, 100, 100,
100, 100, 100, 100, 100, 100, 100, 117, 178, 178,
177, 177, 125, 125, 179, 179, 180, 180, 182, 182,
181, 183, 186, 184, 184, 187, 185, 185, 118, 119,
119, 120, 120, 167, 167, 167, 167, 167, 167, 167,
168, 168, 168, 168, 169, 169, 169, 169, 170, 170,
171, 173, 188, 188, 191, 191, 189, 189, 192, 190,
172, 172, 172, 174, 174, 175, 175, 175, 193, 194,
176, 176, 124, 135, 198, 198, 195, 195, 196, 196,
199, 200, 200, 201, 201, 197, 197, 129, 129, 202};
const int QmlJSGrammar:: rhs[] = {
2, 2, 2, 2, 1, 1, 1, 2, 1, 2,
2, 3, 3, 5, 5, 4, 4, 2, 0, 1,
1, 2, 1, 3, 2, 3, 2, 1, 5, 4,
3, 3, 3, 3, 1, 1, 1, 0, 1, 2,
4, 6, 6, 3, 3, 4, 4, 5, 5, 6,
6, 7, 7, 7, 7, 1, 1, 1, 1, 1,
2, 2, 2, 2, 2, 1, 1, 1, 2, 1,
2, 2, 3, 3, 5, 5, 4, 4, 2, 0,
1, 1, 2, 1, 3, 2, 3, 2, 1, 5,
4, 3, 3, 3, 3, 1, 1, 1, 0, 1,
2, 4, 6, 6, 3, 3, 7, 7, 4, 4,
5, 5, 6, 6, 7, 7, 7, 7, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 2, 3, 3, 4, 5, 3, 4, 3, 1,
1, 2, 3, 4, 1, 2, 3, 5, 1, 1,
1, 1, 1, 1, 2, 3, 3, 4, 5, 3,
4, 3, 1, 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, 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,
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, 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, 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};
const int QmlJSGrammar::action_default [] = {
0, 0, 0, 19, 0, 165, 232, 196, 204, 200,
144, 216, 192, 3, 129, 63, 145, 208, 212, 133,
162, 143, 148, 128, 182, 169, 0, 70, 71, 66,
333, 58, 335, 0, 0, 0, 0, 68, 0, 0,
64, 67, 0, 0, 59, 61, 60, 69, 62, 0,
65, 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, 66, 105, 106, 58, 107, 110, 64,
67, 59, 234, 60, 69, 113, 62, 115, 65, 117,
118, 263, 120, 121, 125, 0, 87, 0, 0, 89,
93, 91, 78, 90, 92, 0, 88, 77, 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, 72, 0, 74, 83, 0, 75, 84, 86,
76, 82, 73, 0, 79, 155, 153, 157, 154, 152,
156, 2, 5, 0, 7, 0, 6, 0, 1, 18,
9, 0, 0, 0, 10, 0, 11, 0, 16, 17,
0, 12, 13, 0, 14, 15, 8, 80, 20, 0,
4, 0, 27, 56, 0, 59, 25, 61, 60, 28,
21, 0, 0, 57, 0, 37, 36, 35, 0, 0,
48, 0, 49, 0, 54, 55, 0, 0, 46, 0,
47, 0, 50, 51, 0, 0, 0, 0, 0, 52,
53, 0, 44, 38, 45, 39, 0, 0, 0, 0,
41, 0, 42, 43, 40, 26, 22, 0, 31, 32,
33, 34, 133, 258, 0, 0, 95, 262, 98, 123,
100, 101, 66, 105, 106, 58, 107, 110, 64, 67,
59, 234, 60, 69, 113, 62, 115, 65, 117, 118,
263, 120, 121, 125, 133, 0, 23, 0, 29, 24,
30, 337};
0, 0, 0, 0, 20, 0, 168, 235, 199, 207,
203, 147, 219, 195, 3, 132, 66, 148, 211, 215,
136, 165, 146, 151, 131, 185, 172, 0, 73, 74,
69, 336, 61, 338, 0, 0, 0, 0, 71, 0,
0, 67, 70, 0, 0, 62, 64, 63, 72, 65,
0, 68, 0, 0, 161, 0, 0, 148, 167, 150,
149, 0, 0, 0, 163, 164, 162, 166, 0, 196,
0, 0, 0, 0, 186, 0, 0, 0, 0, 0,
0, 176, 0, 0, 0, 170, 171, 169, 174, 178,
177, 175, 173, 188, 187, 189, 0, 204, 0, 200,
0, 0, 142, 129, 141, 130, 98, 99, 100, 125,
101, 126, 102, 103, 104, 105, 106, 107, 108, 109,
110, 111, 112, 113, 114, 127, 115, 116, 117, 118,
119, 120, 121, 122, 123, 124, 128, 0, 0, 140,
236, 143, 0, 144, 0, 145, 139, 0, 232, 225,
223, 230, 231, 229, 228, 234, 227, 226, 224, 233,
220, 0, 208, 0, 0, 212, 0, 0, 216, 0,
0, 142, 134, 0, 133, 0, 138, 152, 0, 337,
327, 328, 0, 325, 0, 326, 0, 329, 243, 250,
249, 257, 245, 0, 246, 330, 0, 335, 247, 248,
253, 251, 332, 331, 334, 254, 0, 265, 0, 0,
0, 0, 336, 61, 0, 338, 62, 237, 279, 63,
0, 0, 0, 266, 0, 0, 255, 256, 0, 244,
252, 280, 281, 324, 333, 0, 295, 296, 297, 298,
0, 291, 292, 293, 294, 321, 322, 0, 0, 0,
0, 0, 284, 285, 241, 239, 201, 209, 205, 221,
197, 242, 0, 148, 213, 217, 190, 179, 0, 0,
198, 0, 0, 0, 0, 191, 0, 0, 0, 0,
0, 183, 181, 184, 182, 180, 193, 192, 194, 0,
206, 0, 202, 0, 240, 148, 0, 222, 237, 238,
0, 237, 0, 0, 287, 0, 0, 0, 289, 0,
210, 0, 0, 214, 0, 0, 218, 277, 0, 269,
278, 272, 0, 276, 0, 237, 270, 0, 237, 0,
0, 288, 0, 0, 0, 290, 337, 327, 0, 0,
329, 0, 323, 0, 313, 0, 0, 0, 283, 0,
282, 0, 339, 0, 97, 259, 262, 0, 98, 265,
101, 126, 103, 104, 69, 108, 109, 61, 110, 113,
67, 70, 62, 237, 63, 72, 116, 65, 118, 68,
120, 121, 266, 123, 124, 128, 0, 90, 0, 0,
92, 96, 94, 81, 93, 95, 0, 91, 80, 260,
258, 136, 137, 142, 0, 135, 0, 312, 0, 299,
300, 0, 311, 0, 0, 0, 302, 307, 305, 308,
0, 0, 306, 307, 0, 303, 0, 304, 261, 310,
0, 261, 309, 0, 314, 315, 0, 261, 316, 317,
0, 0, 318, 0, 0, 0, 319, 320, 154, 153,
0, 0, 0, 286, 0, 0, 0, 301, 274, 267,
0, 275, 271, 0, 273, 263, 0, 264, 268, 84,
0, 0, 88, 75, 0, 77, 86, 0, 78, 87,
89, 79, 85, 76, 0, 82, 158, 156, 160, 157,
155, 159, 2, 59, 83, 0, 0, 62, 64, 63,
29, 4, 0, 60, 0, 38, 37, 36, 0, 0,
51, 0, 52, 0, 57, 58, 0, 38, 0, 0,
0, 0, 0, 47, 48, 0, 49, 0, 50, 0,
53, 54, 0, 0, 0, 0, 0, 55, 56, 0,
45, 39, 46, 40, 0, 0, 0, 0, 42, 0,
43, 44, 41, 0, 0, 28, 32, 33, 34, 35,
136, 261, 0, 0, 98, 265, 101, 126, 103, 104,
69, 108, 109, 61, 110, 113, 67, 70, 62, 237,
63, 72, 116, 65, 118, 68, 120, 121, 266, 123,
124, 128, 136, 0, 24, 0, 0, 30, 25, 31,
26, 22, 0, 27, 23, 6, 0, 8, 0, 7,
0, 1, 19, 10, 0, 11, 0, 12, 0, 17,
18, 0, 13, 14, 0, 15, 16, 9, 21, 5,
340};
const int QmlJSGrammar::goto_default [] = {
4, 498, 354, 192, 497, 520, 492, 496, 494, 499,
19, 495, 15, 529, 531, 530, 615, 522, 519, 187,
191, 193, 197, 546, 566, 565, 196, 228, 23, 470,
469, 352, 351, 6, 350, 353, 103, 14, 141, 21,
10, 140, 16, 22, 53, 20, 5, 25, 24, 265,
12, 259, 7, 255, 9, 257, 8, 256, 17, 263,
18, 264, 11, 258, 254, 295, 407, 260, 261, 198,
189, 188, 200, 229, 199, 204, 225, 226, 190, 356,
355, 227, 459, 458, 317, 318, 461, 320, 460, 319,
415, 419, 422, 418, 417, 437, 438, 181, 195, 177,
180, 194, 202, 201, 0};
5, 611, 355, 193, 501, 610, 629, 605, 609, 607,
612, 20, 608, 16, 500, 602, 593, 555, 502, 188,
192, 194, 198, 518, 544, 543, 197, 229, 24, 471,
470, 353, 352, 7, 351, 354, 104, 15, 142, 22,
11, 141, 17, 23, 54, 21, 6, 26, 25, 266,
13, 260, 8, 256, 10, 258, 9, 257, 18, 264,
19, 265, 12, 259, 255, 296, 408, 261, 262, 199,
190, 189, 201, 230, 200, 205, 226, 227, 191, 357,
356, 228, 460, 459, 318, 319, 462, 321, 461, 320,
416, 420, 423, 419, 418, 438, 439, 182, 196, 178,
181, 195, 203, 202, 0};
const int QmlJSGrammar::action_index [] = {
128, 1036, 2026, -39, 49, 73, -97, 54, 10, -69,
243, -97, 285, 1, -97, -97, 503, 29, 75, 246,
202, -97, -97, -97, 477, 288, 1036, -97, -97, -97,
289, -97, 1840, 1476, 1036, 1036, 1036, -97, 691, 1036,
-97, -97, 1036, 1036, -97, -97, -97, -97, -97, 1036,
-97, 1036, 1036, -97, 1036, 1036, 86, 211, -97, -97,
1036, 1036, 1036, -97, -97, -97, 197, 1036, 245, 1036,
1036, 1036, 1036, 438, 1036, 1036, 1036, 1036, 1036, 1036,
288, 1036, 1036, 1036, 133, 129, 132, 288, 288, 288,
288, 288, 410, 420, 386, 1036, -6, 1036, 62, 1747,
1036, 1036, -97, -97, -97, -97, -97, -97, -97, -97,
-97, -97, -97, -97, -97, -97, -97, -97, -97, -97,
-97, -97, -97, -97, -97, -97, -97, -97, -97, -97,
-97, -97, -97, -97, -97, -97, 112, 1036, -97, -97,
18, -38, -97, 1036, -97, -97, 1036, -97, -97, -97,
-97, -97, -97, -97, -97, -97, -97, -97, -97, -97,
1036, -47, 1036, 1036, 35, 34, 1036, -97, 1747, 1036,
1036, -97, 118, -97, -46, -97, -97, 60, -97, 295,
89, 50, -97, 298, -97, 38, 2119, -97, -97, -97,
-97, -97, 205, -97, -97, 14, -97, -97, -97, -97,
-97, -97, 2119, -97, -97, 346, -97, 512, 83, 2026,
30, 280, 100, 70, 2305, 93, 1036, -97, 80, 66,
1036, 65, -97, 59, 67, -97, -97, 276, -97, -97,
-97, -97, -97, -97, 79, -97, -97, -97, -97, 87,
-97, -97, -97, -97, -97, -97, 44, 48, 1036, 106,
76, -97, -97, 1212, -97, 77, 42, -9, -97, 331,
69, 32, 523, 78, 131, 444, 288, 292, 1036, 277,
1036, 1036, 1036, 1036, 444, 1036, 1036, 1036, 1036, 1036,
288, 288, 288, 288, 288, 349, 355, 359, 1036, -12,
1036, 82, 1036, -97, 606, 1036, -97, 1036, 64, 31,
1036, 16, 2026, -97, 1036, 122, 2026, -97, 1036, 57,
1036, 1036, 84, 81, 1036, -97, 68, 135, 63, -97,
-97, 1036, -97, 244, 1036, -97, -41, 1036, -42, 2026,
-97, 1036, 151, 2026, -97, -17, 226, -37, -8, 2119,
-28, -97, 2026, -97, 1036, 110, 2026, 5, 2026, -97,
-5, -4, -55, -97, -97, 2026, -22, 424, 46, 421,
99, 1036, 2026, 40, 20, 369, 52, 26, 768, 47,
41, -97, 1126, -97, 27, 2, 23, 1036, 22, 6,
1036, 127, 1036, 9, 7, 1036, -97, 1933, 28, -97,
-97, -97, -97, -97, -97, 1036, -97, -97, -97, -97,