diff options
Diffstat (limited to 'src/declarative/qml/parser')
-rw-r--r-- | src/declarative/qml/parser/javascript.g | 16 | ||||
-rw-r--r-- | src/declarative/qml/parser/javascriptast_p.h | 241 | ||||
-rw-r--r-- | src/declarative/qml/parser/javascriptgrammar.cpp | 1033 | ||||
-rw-r--r-- | src/declarative/qml/parser/javascriptgrammar_p.h | 58 | ||||
-rw-r--r-- | src/declarative/qml/parser/javascriptparser.cpp | 8 | ||||
-rw-r--r-- | src/declarative/qml/parser/javascriptparser_p.h | 4 |
6 files changed, 673 insertions, 687 deletions
diff --git a/src/declarative/qml/parser/javascript.g b/src/declarative/qml/parser/javascript.g index 2284e93..f9a2165 100644 --- a/src/declarative/qml/parser/javascript.g +++ b/src/declarative/qml/parser/javascript.g @@ -87,7 +87,7 @@ %nonassoc T_IDENTIFIER T_COLON %nonassoc REDUCE_HERE -%start Program +%start UiProgram /. /**************************************************************************** @@ -286,7 +286,7 @@ public: bool parse(JavaScriptEnginePrivate *driver); JavaScript::AST::UiProgram *ast() - { return sym(1).UiProgram; } + { return program; } QList<DiagnosticMessage> diagnosticMessages() const { return diagnostic_messages; } @@ -326,6 +326,8 @@ protected: int *state_stack; JavaScript::AST::SourceLocation *location_stack; + JavaScript::AST::UiProgram *program; + // error recovery enum { TOKEN_BUFFER_SIZE = 3 }; @@ -422,6 +424,7 @@ bool JavaScriptParser::parse(JavaScriptEnginePrivate *driver) first_token = last_token = 0; tos = -1; + program = 0; do { if (++tos == stack_size) @@ -466,11 +469,12 @@ bool JavaScriptParser::parse(JavaScriptEnginePrivate *driver) -- Declarative UI -------------------------------------------------------------------------------------------------------- -Program: UiImportListOpt UiObjectMemberList ; +UiProgram: UiImportListOpt UiObjectMemberList ; /. case $rule_number: { - sym(1).Node = makeAstNode<AST::UiProgram> (driver->nodePool(), sym(1).UiImportList, + program = makeAstNode<AST::UiProgram> (driver->nodePool(), sym(1).UiImportList, sym(2).UiObjectMemberList->finish()); + sym(1).UiProgram = program; } break; ./ @@ -602,7 +606,7 @@ case $rule_number: { sym(4).UiObjectMemberList->finish()); node->colonToken = loc(2); node->lbracketToken = loc(3); - node->rbraceToken = loc(5); + node->rbracketToken = loc(5); sym(1).Node = node; } break; ./ @@ -2643,6 +2647,7 @@ PropertyNameAndValueListOpt: PropertyNameAndValueList ; yytoken = *tk; yylval = 0; yylloc = token_buffer[0].loc; + yylloc.length = 0; first_token = &token_buffer[0]; last_token = &token_buffer[2]; @@ -2665,6 +2670,7 @@ PropertyNameAndValueListOpt: PropertyNameAndValueList ; yytoken = tk; yylval = 0; yylloc = token_buffer[0].loc; + yylloc.length = 0; action = errorState; goto _Lcheck_token; diff --git a/src/declarative/qml/parser/javascriptast_p.h b/src/declarative/qml/parser/javascriptast_p.h index dabc0e0..4aa89c9 100644 --- a/src/declarative/qml/parser/javascriptast_p.h +++ b/src/declarative/qml/parser/javascriptast_p.h @@ -128,6 +128,11 @@ public: startLine(0), startColumn(0) { } + bool isValid() const { return length != 0; } + + quint32 begin() const { return offset; } + quint32 end() const { return offset + length; } + // attributes // ### encode quint32 offset; @@ -2175,6 +2180,40 @@ public: UiObjectMemberList *members; }; +class UiQualifiedId: public Node +{ +public: + JAVASCRIPT_DECLARE_AST_NODE(UiQualifiedId) + + UiQualifiedId(JavaScriptNameIdImpl *name) + : next(this), name(name) + { kind = K; } + + UiQualifiedId(UiQualifiedId *previous, JavaScriptNameIdImpl *name) + : name(name) + { + kind = K; + next = previous->next; + previous->next = this; + } + + virtual ~UiQualifiedId() {} + + UiQualifiedId *finish() + { + UiQualifiedId *head = next; + next = 0; + return head; + } + + virtual void accept0(Visitor *visitor); + +// attributes + UiQualifiedId *next; + JavaScriptNameIdImpl *name; + SourceLocation identifierToken; +}; + class UiImport: public Node { public: @@ -2227,6 +2266,57 @@ public: class UiObjectMember: public Node { +public: + virtual SourceLocation firstSourceLocation() const = 0; + virtual SourceLocation lastSourceLocation() const = 0; +}; + +class UiObjectMemberList: public Node +{ +public: + JAVASCRIPT_DECLARE_AST_NODE(UiObjectMemberList) + + UiObjectMemberList(UiObjectMember *member) + : next(this), member(member) + { kind = K; } + + UiObjectMemberList(UiObjectMemberList *previous, UiObjectMember *member) + : member(member) + { + kind = K; + next = previous->next; + previous->next = this; + } + + virtual void accept0(Visitor *visitor); + + UiObjectMemberList *finish() + { + UiObjectMemberList *head = next; + next = 0; + return head; + } + +// attributes + UiObjectMemberList *next; + UiObjectMember *member; +}; + +class UiObjectInitializer: public Node +{ +public: + JAVASCRIPT_DECLARE_AST_NODE(UiObjectInitializer) + + UiObjectInitializer(UiObjectMemberList *members) + : members(members) + { kind = K; } + + virtual void accept0(Visitor *visitor); + +// attributes + SourceLocation lbraceToken; + UiObjectMemberList *members; + SourceLocation rbraceToken; }; class UiPublicMember: public UiObjectMember @@ -2245,6 +2335,22 @@ public: : memberType(memberType), name(name), expression(expression), isDefaultMember(false) { kind = K; } + virtual SourceLocation firstSourceLocation() const + { return publicToken; } + + virtual SourceLocation lastSourceLocation() const + { + if (expression) + return expression->lastSourceLocation(); + else if (colonToken.isValid()) + return colonToken; + else if (identifierToken.isValid()) + return identifierToken; + else if (attributeTypeToken.isValid()) + return attributeTypeToken; + return publicToken; + } + virtual void accept0(Visitor *visitor); // attributes @@ -2268,29 +2374,23 @@ public: : name(name), initializer(initializer) { kind = K; } - virtual void accept0(Visitor *visitor); - -// attributes - JavaScriptNameIdImpl *name; - UiObjectInitializer *initializer; - SourceLocation identifierToken; -}; + virtual SourceLocation firstSourceLocation() const + { return identifierToken; } -class UiObjectInitializer: public Node -{ -public: - JAVASCRIPT_DECLARE_AST_NODE(UiObjectInitializer) + virtual SourceLocation lastSourceLocation() const + { + if (initializer) + return initializer->rbraceToken; - UiObjectInitializer(UiObjectMemberList *members) - : members(members) - { kind = K; } + return identifierToken; + } virtual void accept0(Visitor *visitor); // attributes - SourceLocation lbraceToken; - UiObjectMemberList *members; - SourceLocation rbraceToken; + JavaScriptNameIdImpl *name; + UiObjectInitializer *initializer; + SourceLocation identifierToken; }; class UiSourceElement: public UiObjectMember @@ -2302,6 +2402,27 @@ public: : sourceElement(sourceElement) { kind = K; } + virtual SourceLocation firstSourceLocation() const + { + if (FunctionDeclaration *funDecl = cast<FunctionDeclaration *>(sourceElement)) + return funDecl->firstSourceLocation(); + else if (VariableStatement *varStmt = cast<VariableStatement *>(sourceElement)) + return varStmt->firstSourceLocation(); + + return SourceLocation(); + } + + virtual SourceLocation lastSourceLocation() const + { + if (FunctionDeclaration *funDecl = cast<FunctionDeclaration *>(sourceElement)) + return funDecl->lastSourceLocation(); + else if (VariableStatement *varStmt = cast<VariableStatement *>(sourceElement)) + return varStmt->lastSourceLocation(); + + return SourceLocation(); + } + + virtual void accept0(Visitor *visitor); // attributes @@ -2321,6 +2442,12 @@ public: initializer(initializer) { kind = K; } + virtual SourceLocation firstSourceLocation() const + { return qualifiedId->identifierToken; } + + virtual SourceLocation lastSourceLocation() const + { return initializer->rbraceToken; } + virtual void accept0(Visitor *visitor); // attributes @@ -2342,6 +2469,12 @@ public: statement(statement) { kind = K; } + virtual SourceLocation firstSourceLocation() const + { return qualifiedId->identifierToken; } + + virtual SourceLocation lastSourceLocation() const + { return statement->lastSourceLocation(); } + virtual void accept0(Visitor *visitor); // attributes @@ -2361,6 +2494,12 @@ public: members(members) { kind = K; } + virtual SourceLocation firstSourceLocation() const + { return lbracketToken; } + + virtual SourceLocation lastSourceLocation() const + { return rbracketToken; } + virtual void accept0(Visitor *visitor); // attributes @@ -2368,75 +2507,9 @@ public: UiObjectMemberList *members; SourceLocation colonToken; SourceLocation lbracketToken; - SourceLocation rbraceToken; -}; - -class UiObjectMemberList: public Node -{ -public: - JAVASCRIPT_DECLARE_AST_NODE(UiObjectMemberList) - - UiObjectMemberList(UiObjectMember *member) - : next(this), member(member) - { kind = K; } - - UiObjectMemberList(UiObjectMemberList *previous, UiObjectMember *member) - : member(member) - { - kind = K; - next = previous->next; - previous->next = this; - } - - virtual void accept0(Visitor *visitor); - - UiObjectMemberList *finish() - { - UiObjectMemberList *head = next; - next = 0; - return head; - } - -// attributes - UiObjectMemberList *next; - UiObjectMember *member; -}; - -class UiQualifiedId: public Node -{ -public: - JAVASCRIPT_DECLARE_AST_NODE(UiQualifiedId) - - UiQualifiedId(JavaScriptNameIdImpl *name) - : next(this), name(name) - { kind = K; } - - UiQualifiedId(UiQualifiedId *previous, JavaScriptNameIdImpl *name) - : name(name) - { - kind = K; - next = previous->next; - previous->next = this; - } - - virtual ~UiQualifiedId() {} - - UiQualifiedId *finish() - { - UiQualifiedId *head = next; - next = 0; - return head; - } - - virtual void accept0(Visitor *visitor); - -// attributes - UiQualifiedId *next; - JavaScriptNameIdImpl *name; - SourceLocation identifierToken; + SourceLocation rbracketToken; }; - } } // namespace AST diff --git a/src/declarative/qml/parser/javascriptgrammar.cpp b/src/declarative/qml/parser/javascriptgrammar.cpp index afbec36..13c3fad 100644 --- a/src/declarative/qml/parser/javascriptgrammar.cpp +++ b/src/declarative/qml/parser/javascriptgrammar.cpp @@ -1,45 +1,4 @@ // This file was generated by qlalr - DO NOT EDIT! -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) -** -** This file is part of the QtCore module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - #include "javascriptgrammar_p.h" const char *const JavaScriptGrammar::spell [] = { @@ -118,523 +77,512 @@ const int JavaScriptGrammar:: rhs[] = { 2, 1, 1, 0, 1, 0, 1, 2}; const int JavaScriptGrammar::action_default [] = { - 8, 2, 0, 0, 4, 3, 0, 298, 0, 6, - 7, 5, 27, 225, 0, 29, 0, 226, 9, 1, - 0, 0, 28, 0, 285, 286, 0, 283, 0, 284, - 0, 287, 128, 195, 159, 167, 163, 203, 210, 107, - 179, 209, 217, 205, 155, 0, 206, 288, 0, 293, - 92, 207, 208, 213, 108, 171, 175, 96, 125, 106, - 111, 91, 145, 211, 132, 290, 289, 292, 214, 0, - 0, 0, 0, 38, 39, 0, 35, 0, 294, 32, - 0, 296, 50, 0, 0, 0, 0, 0, 33, 36, - 0, 0, 197, 239, 37, 0, 31, 0, 0, 34, - 0, 0, 0, 0, 0, 215, 216, 121, 204, 212, - 0, 0, 108, 127, 294, 32, 296, 110, 109, 0, - 0, 0, 123, 124, 122, 0, 295, 285, 0, 0, - 287, 0, 282, 0, 297, 0, 57, 58, 59, 60, - 85, 61, 86, 62, 63, 64, 65, 66, 67, 68, - 69, 54, 70, 71, 72, 73, 74, 56, 87, 75, - 55, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 88, 0, 52, 0, 0, 44, 0, 53, 43, 126, - 0, 156, 0, 0, 0, 0, 146, 0, 0, 0, - 0, 0, 0, 136, 0, 0, 0, 130, 131, 129, - 134, 138, 137, 135, 133, 148, 147, 149, 0, 164, - 0, 160, 0, 0, 102, 101, 90, 89, 0, 0, - 100, 196, 103, 0, 104, 0, 105, 99, 240, 241, - 281, 0, 192, 185, 183, 190, 191, 189, 188, 194, - 187, 186, 184, 193, 180, 0, 168, 0, 0, 172, - 0, 0, 176, 0, 0, 102, 94, 0, 93, 0, - 98, 291, 255, 0, 256, 257, 258, 251, 0, 252, - 253, 254, 279, 280, 112, 0, 0, 0, 0, 0, - 244, 245, 201, 199, 161, 169, 165, 181, 157, 202, - 0, 108, 173, 177, 150, 139, 0, 0, 158, 0, - 0, 0, 0, 151, 0, 0, 0, 0, 0, 143, - 141, 144, 142, 140, 153, 152, 154, 0, 166, 0, - 162, 0, 200, 108, 0, 182, 197, 198, 0, 197, - 0, 0, 247, 0, 0, 0, 249, 0, 170, 0, - 0, 174, 0, 0, 178, 237, 0, 229, 238, 232, - 0, 236, 0, 197, 230, 0, 197, 0, 0, 248, - 0, 0, 0, 250, 295, 0, 271, 0, 0, 0, - 243, 0, 242, 219, 222, 0, 58, 85, 61, 86, - 63, 64, 35, 68, 69, 32, 70, 73, 33, 36, - 197, 37, 76, 31, 78, 34, 80, 81, 82, 83, - 84, 88, 220, 218, 96, 97, 102, 0, 95, 0, - 259, 260, 0, 0, 0, 262, 267, 265, 268, 0, - 0, 266, 267, 0, 263, 0, 264, 221, 270, 0, - 221, 269, 0, 272, 273, 0, 221, 274, 275, 0, - 0, 276, 0, 0, 0, 277, 278, 114, 113, 0, - 0, 0, 246, 0, 0, 0, 261, 0, 51, 0, - 48, 50, 41, 0, 47, 42, 49, 46, 40, 0, - 45, 118, 116, 120, 117, 115, 119, 0, 18, 13, - 0, 14, 10, 0, 0, 0, 24, 0, 26, 23, - 0, 25, 0, 0, 22, 32, 50, 16, 29, 0, - 11, 0, 17, 0, 20, 12, 0, 21, 32, 50, - 15, 0, 19, 30, 234, 227, 0, 235, 231, 0, - 233, 223, 0, 224, 228}; + 8, 2, 0, 4, 3, 0, 0, 0, 6, 7, + 5, 27, 225, 0, 29, 0, 226, 9, 1, 0, + 0, 28, 0, 285, 286, 0, 283, 0, 284, 0, + 287, 128, 195, 159, 167, 163, 203, 210, 107, 179, + 209, 217, 205, 155, 0, 206, 288, 0, 293, 92, + 207, 208, 213, 108, 171, 175, 96, 125, 106, 111, + 91, 145, 211, 132, 290, 289, 292, 214, 0, 0, + 0, 0, 38, 39, 0, 35, 0, 294, 32, 0, + 296, 50, 0, 0, 0, 0, 0, 33, 36, 0, + 0, 197, 239, 37, 0, 31, 0, 0, 34, 0, + 0, 0, 0, 0, 215, 216, 121, 204, 212, 0, + 0, 108, 127, 294, 32, 296, 110, 109, 0, 0, + 0, 123, 124, 122, 0, 295, 285, 0, 0, 287, + 0, 282, 0, 297, 0, 57, 58, 59, 60, 85, + 61, 86, 62, 63, 64, 65, 66, 67, 68, 69, + 54, 70, 71, 72, 73, 74, 56, 87, 75, 55, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 88, + 0, 52, 0, 0, 44, 0, 53, 43, 126, 0, + 156, 0, 0, 0, 0, 146, 0, 0, 0, 0, + 0, 0, 136, 0, 0, 0, 130, 131, 129, 134, + 138, 137, 135, 133, 148, 147, 149, 0, 164, 0, + 160, 0, 0, 102, 101, 90, 89, 0, 0, 100, + 196, 103, 0, 104, 0, 105, 99, 240, 241, 281, + 0, 192, 185, 183, 190, 191, 189, 188, 194, 187, + 186, 184, 193, 180, 0, 168, 0, 0, 172, 0, + 0, 176, 0, 0, 102, 94, 0, 93, 0, 98, + 291, 255, 0, 256, 257, 258, 251, 0, 252, 253, + 254, 279, 280, 112, 0, 0, 0, 0, 0, 244, + 245, 201, 199, 161, 169, 165, 181, 157, 202, 0, + 108, 173, 177, 150, 139, 0, 0, 158, 0, 0, + 0, 0, 151, 0, 0, 0, 0, 0, 143, 141, + 144, 142, 140, 153, 152, 154, 0, 166, 0, 162, + 0, 200, 108, 0, 182, 197, 198, 0, 197, 0, + 0, 247, 0, 0, 0, 249, 0, 170, 0, 0, + 174, 0, 0, 178, 237, 0, 229, 238, 232, 0, + 236, 0, 197, 230, 0, 197, 0, 0, 248, 0, + 0, 0, 250, 295, 0, 271, 0, 0, 0, 243, + 0, 242, 219, 222, 0, 58, 85, 61, 86, 63, + 64, 35, 68, 69, 32, 70, 73, 33, 36, 197, + 37, 76, 31, 78, 34, 80, 81, 82, 83, 84, + 88, 220, 218, 96, 97, 102, 0, 95, 0, 259, + 260, 0, 0, 0, 262, 267, 265, 268, 0, 0, + 266, 267, 0, 263, 0, 264, 221, 270, 0, 221, + 269, 0, 272, 273, 0, 221, 274, 275, 0, 0, + 276, 0, 0, 0, 277, 278, 114, 113, 0, 0, + 0, 246, 0, 0, 0, 261, 0, 51, 0, 48, + 50, 41, 0, 47, 42, 49, 46, 40, 0, 45, + 118, 116, 120, 117, 115, 119, 0, 18, 13, 0, + 14, 10, 0, 0, 0, 24, 0, 26, 23, 0, + 25, 0, 0, 22, 32, 50, 16, 29, 0, 11, + 0, 17, 0, 20, 12, 0, 21, 32, 50, 15, + 0, 19, 30, 234, 227, 0, 235, 231, 0, 233, + 223, 0, 224, 228, 298}; const int JavaScriptGrammar::goto_default [] = { - 2, 6, 19, 1, 5, 4, 18, 499, 500, 478, - 20, 373, 45, 12, 108, 61, 459, 457, 135, 134, - 33, 458, 133, 136, 215, 57, 50, 223, 59, 39, - 222, 54, 60, 107, 58, 32, 64, 62, 294, 44, - 288, 34, 284, 36, 286, 35, 285, 55, 292, 56, - 293, 40, 287, 283, 324, 409, 289, 290, 37, 43, - 46, 51, 52, 41, 38, 63, 109, 53, 68, 105, - 106, 42, 375, 374, 21, 516, 515, 346, 347, 518, - 349, 517, 348, 415, 419, 422, 418, 417, 437, 438, - 26, 48, 125, 25, 47, 66, 65, 0}; + 6, 5, 18, 1, 4, 3, 17, 498, 499, 477, + 19, 372, 44, 11, 107, 60, 458, 456, 134, 133, + 32, 457, 132, 135, 214, 56, 49, 222, 58, 38, + 221, 53, 59, 106, 57, 31, 63, 61, 293, 43, + 287, 33, 283, 35, 285, 34, 284, 54, 291, 55, + 292, 39, 286, 282, 323, 408, 288, 289, 36, 42, + 45, 50, 51, 40, 37, 62, 108, 52, 67, 104, + 105, 41, 374, 373, 20, 515, 514, 345, 346, 517, + 348, 516, 347, 414, 418, 421, 417, 416, 436, 437, + 25, 47, 124, 24, 46, 65, 64, 0}; const int JavaScriptGrammar::action_index [] = { - -8, -88, 76, 23, -88, 35, 267, -88, 62, -88, - -88, -88, -88, -88, 49, 58, 122, -88, -88, 257, - 124, -17, -88, -22, -16, 12, -39, -88, 0, -88, - -2, 1331, 132, -88, 8, -47, -69, -88, -88, 209, - -88, -88, -88, -88, 255, 177, -88, -88, -10, -88, - -88, -88, -88, -88, 522, 45, 92, 236, 224, -88, - -88, -88, 437, -88, 215, -88, 1331, -88, -88, 164, - 206, 107, 599, -88, -88, 1247, -88, 78, 77, 87, - 69, 1583, 60, 599, 599, 599, 398, 599, -88, -88, - 599, 599, 599, -88, -88, 80, -88, 599, 599, -88, - 63, 599, 599, 66, 59, -88, -88, -88, -88, -88, - 599, 599, 123, 174, -1, -88, 1079, -88, -88, 599, - 599, 599, -88, -88, -88, 16, -88, -24, -54, -11, - 1331, 18, -88, 86, 84, 20, -88, -88, -88, -88, + -18, -88, 35, -88, 13, 262, 83, 118, -88, -88, + -88, -88, -88, 76, 71, 162, -88, -88, 249, 125, + 46, -88, 42, 41, 58, 17, -88, 52, -88, 54, + 1419, 126, -88, 156, 31, 10, -88, -88, 228, -88, + -88, -88, -88, 201, 199, -88, -88, 55, -88, -88, + -88, -88, -88, 408, 72, 79, 203, 188, -88, -88, + -88, 365, -88, 300, -88, 1419, -88, -88, 197, 204, + 80, 603, -88, -88, 1335, -88, 48, 33, 61, 37, + 1587, 64, 603, 603, 603, 441, 603, -88, -88, 603, + 603, 603, -88, -88, 44, -88, 603, 603, -88, 36, + 603, 603, 73, 59, -88, -88, -88, -88, -88, 603, + 603, 78, 185, 62, -88, 1083, -88, -88, 603, 603, + 603, -88, -88, -88, 65, -88, 74, 32, 60, 1419, + 57, -88, 81, 77, 75, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, - -88, 599, -88, 1163, 52, -88, 599, -88, -88, 191, - 599, 266, 599, 599, 599, 599, 329, 599, 599, 599, - 599, 599, 599, 157, 599, 599, 599, 120, 103, 90, - 196, 192, 175, 163, 195, 345, 366, 312, 599, 22, - 599, 73, 995, 599, 599, -88, -88, -88, 148, 599, - -88, -88, 64, 48, -88, 599, -88, -88, -88, -88, - -88, 599, -88, -88, -88, -88, -88, -88, -88, -88, - -88, -88, -88, -88, -88, 599, 34, 599, 599, 171, - 74, 599, -88, 995, 599, 599, -88, 154, -88, 40, - -88, -88, -88, 116, -88, -88, -88, -88, 88, -88, - -88, -88, -88, -88, -88, 37, 65, 599, 129, 97, - -88, -88, 676, -88, 53, -33, -59, -88, 258, 11, - -43, 478, 85, 113, 282, 225, -13, 599, 247, 599, - 599, 599, 599, 286, 599, 599, 599, 599, 599, 219, - 222, 231, 307, 237, 372, 372, 372, 599, -46, 599, - 24, 599, -88, 522, 599, -88, 599, 15, -50, 599, - -60, 1247, -88, 599, 156, 1247, -88, 599, -44, 599, - 599, 85, 1, 599, -88, -14, 119, -29, -88, -88, - 599, -88, 6, 599, -88, -3, 599, -5, 1247, -88, - 599, 101, 1247, -88, 26, 1247, -88, 599, 95, 1247, - 51, 1247, -88, -88, 1247, 14, 146, 31, 150, 72, - 599, 1247, 57, 27, 81, 54, 29, 406, 44, 43, - 834, 30, 7, 32, 599, 25, 5, 599, 4, 599, - 10, 13, -88, -88, 244, -88, 599, -12, -88, 83, - -88, -88, 599, 139, 9, -88, 36, -88, 21, 126, - 599, -88, 39, 33, -88, -21, -88, 1247, -88, 118, - 1247, -88, 221, -88, -88, 109, 1247, 46, -88, 17, - 3, -88, 28, -4, -9, -88, -88, -88, -88, 599, - 145, 1247, -88, 599, 149, 1247, -88, 162, 2, 753, - -88, 19, -88, 911, -88, -88, -88, -88, -88, 127, - -88, -88, -88, -88, -88, -88, -88, 302, -88, -88, - 291, -88, -88, 41, 42, 61, 79, 599, 75, 82, - 599, 71, 1499, 56, -88, 115, 111, -88, 47, 110, - -88, 106, -88, 70, -88, -88, 1415, -88, 105, 99, - -88, 96, -88, -88, 67, -88, 166, -88, -88, 599, - -88, -88, 68, -88, -88, + 603, -88, 1167, 56, -88, 603, -88, -88, 166, 603, + 235, 603, 603, 603, 603, 365, 603, 603, 603, 603, + 603, 603, 163, 603, 603, 603, 94, 96, 84, 300, + 300, 300, 300, 190, 365, 365, 365, 603, 10, 603, + 156, 999, 603, 603, -88, -88, -88, 131, 603, -88, + -88, 68, 30, -88, 603, -88, -88, -88, -88, -88, + 603, -88, -88, -88, -88, -88, -88, -88, -88, -88, + -88, -88, -88, -88, 603, 34, 603, 603, 63, 82, + 603, -88, 999, 603, 603, -88, 148, -88, 67, -88, + -88, -88, 124, -88, -88, -88, -88, 120, -88, -88, + -88, -88, -88, -88, 70, 66, 603, 111, 122, -88, + -88, 757, -88, 21, -24, -53, -88, 222, 5, -51, + 526, 69, 108, 266, 300, -17, 603, 251, 603, 603, + 603, 603, 250, 603, 603, 603, 603, 603, 211, 168, + 187, 167, 171, 276, 291, 270, 603, -76, 603, 1, + 603, -88, 352, 603, -88, 603, -1, -8, 603, 4, + 1335, -88, 603, 114, 1335, -88, 603, -20, 603, 603, + 69, 24, 603, -88, 18, 89, 9, -88, -88, 603, + -88, 15, 603, -88, -19, 603, -21, 1335, -88, 603, + 86, 1335, -88, 2, 1335, -88, 603, 88, 1335, 27, + 1335, -88, -88, 1335, -22, 173, 3, 170, 92, 603, + 1335, 49, 19, 85, 53, 25, 441, 47, 38, 915, + 39, 11, 43, 603, 45, -6, 603, 0, 603, -32, + -27, -88, -88, 174, -88, 603, -43, -88, 90, -88, + -88, 603, 100, -25, -88, 6, -88, 20, 106, 603, + -88, 14, 7, -88, -39, -88, 1335, -88, 99, 1335, + -88, 160, -88, -88, 93, 1335, -2, -88, -15, -13, + -88, -23, -57, -28, -88, -88, -88, -88, 603, 110, + 1335, -88, 603, 109, 1335, -88, 103, 50, 834, -88, + 40, -88, 680, -88, -88, -88, -88, -88, 107, -88, + -88, -88, -88, -88, -88, -88, 287, -88, -88, 295, + -88, -88, 12, 8, -3, 23, 603, 26, 29, 603, + 51, 1503, 28, -88, 130, 147, -88, 16, 117, -88, + 237, -88, 22, -88, -88, 1251, -88, 116, 135, -88, + 157, -88, -88, -16, -88, 195, -88, -88, 603, -88, + -88, -14, -88, -88, -88, - -98, -98, -98, -98, -98, 2, 9, -98, -98, -98, - -98, -98, -98, -98, -98, -98, -98, -98, -98, 70, + -98, -98, -98, -98, 2, -10, -98, -98, -98, -98, + -98, -98, -98, -98, -98, -98, -98, -98, 50, -98, + -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, + 57, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, - -98, 157, -98, -98, -98, -98, -98, -98, -98, -98, + -98, -98, -98, -36, -98, -98, -98, -98, -98, -98, + -98, -98, -98, -98, -98, 191, -98, -98, -98, -98, + -98, 68, -98, -98, 67, -98, -98, -98, -98, -98, + -98, -98, 41, 114, 150, 232, 153, -98, -98, 146, + 149, 47, -98, -98, -98, -98, 25, 89, -98, -29, + 85, 80, -98, -98, -98, -98, -98, -98, -98, 103, + 108, -98, -98, -98, -98, -98, -98, -98, 105, 100, + 96, -98, -98, -98, -98, -98, -68, -98, -98, 176, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, - -98, -98, -98, -98, -39, -98, -98, -98, -98, -98, - -98, -98, -98, -98, -98, -98, 258, -98, -98, -98, - -98, -98, 100, -98, -98, 15, -98, -98, -98, -98, - -98, -98, -98, 51, 81, 90, 91, 103, -98, -98, - 76, 60, 44, -98, -98, -98, -98, 50, 114, -98, - -13, 133, 125, -98, -98, -98, -98, -98, -98, -98, - 171, 128, -98, -98, -98, -98, -98, -98, -98, 107, - 120, 117, -98, -98, -98, -98, -98, -61, -98, -98, - 173, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, - -98, 34, -98, 36, -98, -98, 40, -98, -98, -98, - 63, -98, 55, 64, 66, 68, -98, 54, 42, 43, - 46, 52, 93, -98, 97, 95, 69, -98, -98, -98, - -98, -98, -98, -98, -98, -98, -98, -98, 75, -98, - 79, -98, 19, 32, 16, -98, -98, -98, -98, 12, - -98, -98, -98, -98, -98, 27, -98, -98, -98, -98, - -98, 33, -98, -98, -98, -98, -98, -98, -98, -98, - -98, -98, -98, -98, -98, 80, -98, 96, 35, -98, - -98, 39, -98, 47, 37, 48, -98, -98, -98, -98, + -12, -98, -13, -98, -98, 7, -98, -98, -98, 118, + -98, 117, 119, 141, 121, -98, 128, 130, 124, 140, + 83, 51, -98, 48, 62, 55, -98, -98, -98, -98, + -98, -98, -98, -98, -98, -98, -98, 60, -98, 54, + -98, 31, 37, 43, -98, -98, -98, -98, 22, -98, + -98, -98, -98, -98, 42, -98, -98, -98, -98, -98, + 45, -98, -98, -98, -98, -98, -98, -98, -98, -98, + -98, -98, -98, -98, 61, -98, 58, -20, -98, -98, + -7, -98, 52, 4, 53, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, - -98, -98, -98, -98, -98, -98, -98, 31, -98, -98, - -98, -98, 86, -98, -98, -98, -98, -98, -98, -98, - -98, -98, -98, -98, -98, -98, -98, 190, -98, 176, - 172, 180, 168, -98, 124, 136, 138, 106, 121, -98, - -98, -98, -98, -98, -98, -98, -98, 152, -98, 159, - -98, 186, -98, -98, 192, -98, 134, -98, -98, 137, - -98, 30, -98, 18, -98, 22, -98, 196, -98, 188, - 184, -98, -98, 145, -98, -98, -98, -98, -98, -98, - 144, -98, -51, 127, -98, -98, 123, -98, 23, -98, - 25, -98, 28, -98, -98, 29, -98, 26, -98, 24, - -98, 17, -98, -98, 41, -98, -98, -98, -98, -98, - 130, 53, -98, -98, -98, -98, -98, 116, -98, -98, - 45, -98, -98, -98, 49, -98, -12, 65, -98, 56, - -98, -98, -98, -98, -98, -98, 88, -98, -98, -98, - -98, -98, 38, -98, -98, -98, -98, -98, -81, -98, - -7, -98, -83, -98, -98, -98, -98, -72, -98, -98, - -64, -98, -98, -98, -98, -98, -98, -70, -98, -98, - -42, -98, -98, -98, -33, -98, -98, -98, -98, -2, - -98, 0, -98, 5, -98, 7, -98, -98, -98, -6, - -98, 6, -98, 11, -98, -98, -98, -98, -98, -98, - -98, -98, -98, -98, -98, -98, -98, 163, -98, -98, - 165, -98, -98, -98, -98, -98, -98, -8, -98, -98, - 8, -98, 10, -98, -98, 4, -1, -98, 3, -98, - -98, -98, -98, 57, -98, -98, 13, -98, 104, 59, - -98, -98, -98, -98, -98, -98, -98, -98, -98, -17, - -98, -98, -74, -98, -98}; + -98, -98, -98, -98, -98, -98, 9, -98, -98, -98, + -98, 138, -98, -98, -98, -98, -98, -98, -98, -98, + -98, -98, -98, -98, -98, -98, 194, -98, 167, 170, + 180, 186, -98, 73, 76, 90, 92, 99, -98, -98, + -98, -98, -98, -98, -98, -98, 196, -98, 184, -98, + 161, -98, -98, 160, -98, 112, -98, -98, 120, -98, + 6, -98, 12, -98, 17, -98, 163, -98, 164, 157, + -98, -98, 154, -98, -98, -98, -98, -98, -98, 192, + -98, -28, 113, -98, -98, 86, -98, 49, -98, 20, + -98, 28, -98, -98, 35, -98, 36, -98, 24, -98, + 30, -98, -98, 29, -98, -98, -98, -98, -98, 77, + 67, -98, -98, -98, -98, -98, 115, -98, -98, 19, + -98, -98, -98, 26, -98, -24, 84, -98, 69, -98, + -98, -98, -98, -98, -98, 126, -98, -98, -98, -98, + -98, 39, -98, -98, -98, -98, -98, -42, -98, 18, + -98, -82, -98, -98, -98, -98, -67, -98, -98, -71, + -98, -98, -98, -98, -98, -98, -86, -98, -98, -35, + -98, -98, -98, -33, -98, -98, -98, -98, 14, -98, + 8, -98, -2, -98, 1, -98, -98, -98, -9, -98, + -1, -98, -6, -98, -98, -98, -98, -98, -98, -98, + -98, -98, -98, -98, -98, -98, 82, -98, -98, 159, + -98, -98, -98, -98, -98, -98, 40, -98, -98, 46, + -98, 44, -98, -98, 38, 23, -98, 27, -98, -98, + -98, -98, 64, -98, -98, 33, -98, 34, 59, -98, + -98, -98, -98, -98, -98, -98, -98, -98, -14, -98, + -98, -56, -98, -98, -98}; const int JavaScriptGrammar::action_info [] = { - 331, 208, 360, 350, 317, 27, 129, 210, 343, 180, - 466, 329, 514, 27, 24, 317, 345, 319, 326, 321, - 28, 30, 130, 219, 436, 297, 420, 460, 126, 29, - 319, 31, -79, -226, 426, 345, 436, -55, 436, -77, - 427, 420, 416, 412, 420, 230, 449, 245, 408, 453, - -56, -74, 127, 442, 297, 358, 444, 443, 356, 176, - -225, -54, 24, 282, -66, 367, 440, 371, 460, 403, - 485, 489, 225, 132, 180, 178, 7, 3, 23, 219, - 477, 251, 208, 219, 519, 513, 487, 337, 8, 490, - 486, 477, 173, 171, 365, 453, 436, 514, 210, 498, - 260, 277, 449, 219, 503, 367, 364, 460, 227, 219, - 126, 276, 365, 506, 282, 439, 412, -294, 503, 460, - 3, 493, 365, 10, 9, 430, 219, 352, 498, 440, - 110, 492, 483, 273, 272, 219, 423, 219, 477, 493, - 498, 111, 247, 110, 411, 410, 248, 219, 477, 271, - 270, 484, 512, 219, 111, 369, 219, 219, 281, 280, - 110, 362, 219, 339, 219, 117, 504, 340, 273, 272, - 461, 111, 110, 245, 522, 263, 118, 266, 265, 268, - 353, 424, 194, 111, 195, 219, 119, 470, 194, 279, - 195, 0, 0, 263, 0, 196, 0, 0, 0, 414, - 194, 196, 195, 119, 220, 451, 0, 264, 262, 455, - 258, 269, 267, 196, 0, 0, 335, 194, 462, 195, - 194, 194, 195, 195, 212, 264, 262, 523, 521, 219, - 196, 120, 0, 196, 196, 268, 119, 121, 229, 228, - 194, 0, 195, 213, 194, 214, 195, 194, 120, 195, - 194, 253, 195, 196, 121, 0, 194, 196, 195, 253, - 196, 0, 194, 196, 195, 299, 300, 269, 267, 196, - 254, 0, 255, 182, 183, 196, 299, 300, 254, 14, - 406, 120, 434, 433, 182, 183, 15, 121, 0, 14, - 0, 0, 301, 302, 0, 0, 15, 0, 0, 0, - 184, 185, 0, 301, 302, 304, 305, 0, 0, 304, - 305, 184, 185, 14, 306, 0, 0, 307, 306, 308, - 15, 307, 0, 308, 14, 0, 0, 0, 0, 17, - 0, 15, 194, 0, 195, 187, 188, 0, 13, 17, - 0, 16, 0, 189, 190, 196, 481, 191, 13, 192, - 0, 16, 187, 188, 0, 0, 0, 479, 0, 0, - 189, 190, 0, 17, 191, 0, 192, 0, 187, 188, - 0, 0, 13, 0, 17, 16, 189, 190, 0, 0, - 191, 0, 192, 13, 0, 0, 16, 0, 0, 187, - 188, 0, 0, 0, 0, 304, 305, 189, 190, 0, - 0, 191, 0, 192, 306, 0, 0, 307, 0, 308, - 73, 74, 0, 0, 0, 0, 0, 0, 73, 74, - 114, 0, 0, 0, 0, 0, 0, 115, 114, 0, - 0, 116, 82, 0, 83, 115, 0, 0, 0, 116, - 82, 86, 83, 0, 0, 89, 0, 0, 0, 86, - 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, - 187, 188, 0, 94, 0, 96, 0, 0, 189, 190, - 0, 94, 191, 96, 192, 0, 88, 99, 76, 0, - 0, 232, 0, 0, 88, 99, 76, 0, 0, 0, - 0, 233, 0, 0, 0, 234, 0, 0, 0, 0, - 0, 0, 0, 0, 235, 0, 236, 0, 0, 333, - 0, 0, 0, 0, 0, 0, 0, 237, 0, 238, - 117, 0, 0, 0, 0, 232, 0, 239, 0, 0, - 240, 118, 0, 0, 0, 233, 241, 0, 0, 234, - 0, 0, 242, 0, 0, 0, 0, 0, 235, 0, - 236, 0, 0, 0, 0, 243, 0, 0, 0, 0, - 0, 237, 0, 238, 117, 0, 0, 0, 0, 0, - 0, 239, 0, 0, 240, 118, 0, 0, 0, 0, - 241, 0, 0, 0, 0, 0, 242, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, + 318, 518, 296, 443, 448, 435, 442, 218, 415, 452, + 325, 419, 344, 320, 426, 513, 425, 407, 439, 419, + 435, 441, 296, 318, 316, 419, 485, 435, 316, -226, + 486, 342, -225, 402, 218, 349, 489, 488, 23, 357, + 359, 484, 355, 370, 344, -56, -55, 411, 459, 476, + -77, 497, -79, 328, -74, 281, -66, 512, 465, 218, + -54, 366, 363, 175, 330, 244, 27, 2, 364, 435, + 26, 336, 459, 366, 244, 513, 224, 29, 23, 207, + 411, 28, 207, 524, 281, 172, 209, 30, 170, 250, + 226, 125, 128, 129, 218, 452, 218, 351, 2, 438, + 7, 126, 276, 26, 476, 22, 429, 218, 218, 448, + 229, 460, 131, 439, 125, 218, 422, 218, 218, 218, + 116, -294, 218, 364, 109, 502, 0, 259, 0, 246, + 177, 117, 491, 247, 109, 110, 109, 364, 0, 218, + 492, 272, 271, 459, 275, 110, 361, 110, 368, 476, + 352, 410, 409, 272, 271, 459, 218, 179, 338, 461, + 413, 423, 339, 476, 497, 502, 109, 469, 218, 454, + 450, 278, 482, 503, 334, 0, 497, 110, 118, 9, + 8, 270, 269, 280, 279, 265, 264, 219, 193, 252, + 194, 483, 193, 193, 194, 194, 193, 118, 194, 267, + 118, 195, 262, 521, 257, 195, 195, 218, 253, 195, + 405, 0, 193, 511, 194, 193, 0, 194, 252, 181, + 182, 433, 432, 119, 0, 195, 262, 0, 195, 120, + 0, 268, 266, 267, 263, 261, 193, 253, 194, 254, + 298, 299, 119, 211, 505, 119, 183, 184, 120, 195, + 0, 120, 492, 181, 182, 0, 522, 520, 263, 261, + 228, 227, 212, 0, 213, 268, 266, 300, 301, 298, + 299, 13, 0, 303, 304, 0, 0, 0, 14, 0, + 183, 184, 305, 0, 13, 306, 0, 307, 0, 303, + 304, 14, 0, 303, 304, 0, 300, 301, 305, 303, + 304, 306, 305, 307, 0, 306, 0, 307, 305, 13, + 0, 306, 0, 307, 303, 304, 14, 13, 0, 0, + 0, 16, 0, 305, 14, 193, 306, 194, 307, 0, + 12, 0, 0, 15, 16, 0, 0, 0, 195, 0, + 0, 0, 478, 12, 0, 0, 15, 0, 0, 0, + 480, 0, 0, 0, 0, 231, 0, 0, 0, 16, + 0, 0, 0, 0, 0, 232, 0, 16, 12, 233, + 0, 15, 0, 0, 0, 0, 12, 0, 234, 15, + 235, 0, 0, 0, 0, 0, 0, 0, 186, 187, + 0, 236, 0, 237, 116, 0, 188, 189, 0, 0, + 190, 238, 191, 0, 239, 117, 0, 0, 0, 0, + 240, 231, 0, 0, 0, 0, 241, 0, 0, 0, + 0, 232, 0, 0, 0, 233, 0, 0, 0, 242, + 0, 0, 0, 0, 234, 0, 235, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 236, 0, 237, + 116, 0, 0, 72, 73, 0, 0, 238, 0, 0, + 239, 117, 0, 113, 0, 0, 240, 0, 0, 0, + 114, 0, 241, 0, 115, 81, 0, 82, 0, 0, + 0, 0, 0, 0, 85, 242, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 72, 73, 74, 0, 0, 0, 0, 0, 0, 0, - 0, 114, 0, 0, 0, 0, 0, 0, 115, 0, - 0, 0, 116, 82, 0, 83, 0, 0, 0, 84, - 0, 85, 86, 87, 0, 0, 89, 0, 0, 0, - 90, 0, 91, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 94, 0, 96, 0, 98, 0, - 101, 0, 102, 0, 0, 0, 0, 88, 99, 76, - 0, 0, 0, 0, 0, 0, 0, 72, 73, 74, - 0, 0, 0, 0, 0, 0, 0, 0, 114, 0, - 0, 0, 0, 0, 0, 115, 0, 0, 0, 116, - 82, 0, 83, 0, 0, 0, 84, 0, 85, 86, - 87, 0, 0, 89, 0, 0, 0, 90, 0, 91, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 0, 96, 0, 98, 0, 101, 296, 102, - 0, 0, 0, 0, 88, 99, 76, 0, 0, 0, - 0, 0, 0, 0, 72, 73, 74, 0, 0, 0, - 0, 0, 0, 0, 0, 114, 0, 0, 0, 0, - 0, 0, 115, 0, 0, 0, 116, 82, 0, 83, - 0, 0, 0, 84, 0, 85, 86, 87, 0, 0, - 89, 0, 0, 0, 90, 0, 91, 0, 0, 468, - 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, - 96, 0, 98, 0, 101, 0, 102, 0, 0, 0, - 0, 88, 99, 76, 0, 0, 0, 0, 0, 0, - 0, -75, 0, 0, 0, 72, 73, 74, 0, 0, + 0, 0, 0, 0, 0, 0, 93, 0, 95, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, + 98, 75, 0, 0, 0, 0, 0, 0, 0, 231, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, + 0, 0, 0, 233, 0, 0, 0, 0, 0, 0, + 0, 0, 234, 0, 235, 0, 0, 332, 0, 0, + 0, 0, 0, 0, 0, 236, 0, 237, 116, 0, + 0, 0, 0, 0, 0, 238, 0, 0, 239, 117, + 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, + 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 242, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 71, 72, 73, 0, 0, 0, + 0, 0, 0, 0, 0, 113, 0, 0, 0, 0, + 0, 0, 114, 0, 0, 0, 115, 81, 0, 82, + 0, 0, 0, 83, 0, 84, 85, 86, 0, 0, + 88, 0, 0, 0, 89, 0, 90, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, + 95, 0, 97, 0, 100, 0, 101, 0, 0, 0, + 0, 87, 98, 75, 0, 0, 0, 0, 0, 0, + 0, 71, 72, 73, 0, 0, 0, 0, 0, 0, + 0, 0, 113, 0, 0, 0, 0, 0, 0, 114, + 0, 0, 0, 115, 81, 0, 82, 0, 0, 0, + 83, 0, 84, 85, 86, 0, 0, 88, 0, 0, + 0, 89, 0, 90, 0, 0, 464, 0, 0, 0, + 0, 0, 0, 0, 0, 93, 0, 95, 0, 97, + 0, 100, 0, 101, 0, 0, 0, 0, 87, 98, + 75, 0, 0, 0, 0, 0, 0, 0, 71, 72, + 73, 0, 0, 0, 0, 0, 0, 0, 0, 113, 0, 0, 0, 0, 0, 0, 114, 0, 0, 0, - 0, 0, 0, 115, 0, 0, 0, 116, 82, 0, - 83, 0, 0, 0, 84, 0, 85, 86, 87, 0, - 0, 89, 0, 0, 0, 90, 0, 91, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, - 0, 96, 0, 98, 0, 101, 0, 102, 0, 0, - 0, 0, 88, 99, 76, 0, 0, 0, 0, 0, - 0, 0, 72, 73, 74, 0, 0, 0, 0, 0, - 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, - 115, 0, 0, 0, 116, 82, 0, 83, 0, 0, - 0, 84, 0, 85, 86, 87, 0, 0, 89, 0, - 0, 0, 90, 0, 91, 0, 0, 465, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 0, 96, 0, - 98, 0, 101, 0, 102, 0, 0, 0, 0, 88, - 99, 76, 0, 0, 0, 0, 0, 0, 0, 137, - 138, 139, 0, 0, 141, 143, 144, 0, 0, 145, - 0, 146, 0, 0, 0, 148, 149, 150, 0, 0, - 0, 0, 0, 0, 217, 152, 153, 154, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 155, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, - 0, 161, 162, 163, 0, 165, 166, 167, 168, 169, - 170, 0, 0, 156, 164, 147, 140, 142, 158, 0, - 0, 0, 0, 137, 138, 139, 0, 0, 141, 143, - 144, 0, 0, 145, 0, 146, 0, 0, 0, 148, - 149, 150, 0, 0, 0, 0, 0, 0, 151, 152, - 153, 154, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 155, 0, 0, 0, 157, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 159, 0, - 0, 0, 0, 0, 160, 161, 162, 163, 0, 165, - 166, 167, 168, 169, 170, 0, 0, 156, 164, 147, - 140, 142, 158, 0, 0, 0, 0, 137, 138, 139, - 0, 0, 141, 143, 144, 0, 0, 145, 0, 146, - 0, 0, 0, 148, 149, 150, 0, 0, 0, 0, - 0, 0, 151, 152, 153, 154, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, - 157, 0, 0, 0, 0, 0, 0, 0, 175, 0, - 0, 0, 159, 0, 0, 0, 0, 0, 160, 161, - 162, 163, 0, 165, 166, 167, 168, 169, 170, 0, - 0, 156, 164, 147, 140, 142, 158, 0, 0, 0, - 0, 69, 0, 0, 0, 0, 70, 0, 72, 73, - 74, 75, 0, 0, 0, 0, 0, 0, 77, 114, - 0, 0, 0, 0, 0, 0, 79, 80, 0, 0, - 81, 82, 0, 83, 0, 0, 0, 84, 0, 85, - 86, 87, 0, 0, 89, 0, 0, 0, 90, 0, - 91, 0, 0, 0, 0, 0, 92, 0, 93, 0, - 0, 0, 94, 95, 96, 97, 98, 100, 101, 17, - 102, 103, 104, 0, 0, 88, 99, 76, 13, 71, - 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, - 70, 0, 72, 73, 74, 75, 0, 0, 0, 0, - 0, 0, 77, 78, 0, 0, 0, 0, 0, 0, - 79, 80, 0, 0, 81, 82, 0, 83, 0, 0, - 0, 84, 0, 85, 86, 87, 0, 0, 89, 0, - 0, 0, 90, 0, 91, 0, 0, 0, 0, 0, - 92, 0, 93, 0, 0, 0, 94, 95, 96, 97, - 98, 100, 101, 17, 102, 103, 104, 0, 0, 88, - 99, 76, 13, 71, 0, 0, 0, 0, 0, 69, - 0, 0, 0, 0, 70, 0, 72, 73, 74, 75, - 0, 0, 0, 0, 0, 0, 77, 114, 0, 0, - 0, 0, 0, 0, 508, 80, 0, 0, 81, 509, - 0, 83, 0, 0, 0, 84, 0, 85, 86, 87, - 0, 0, 89, 0, 0, 0, 90, 0, 91, 0, - 0, 0, 0, 0, 92, 0, 93, 0, 0, 0, - 94, 95, 96, 97, 98, 100, 101, 17, 102, 103, - 104, 0, 0, 88, 99, 76, 13, 71, 0, 0, - 0, 0, 0, 69, 0, 0, 0, 0, 70, 0, - 72, 73, 74, 75, 0, 0, 0, 0, 0, 0, - 77, 114, 0, 0, 0, 0, 0, 0, 495, 80, - 0, 0, 81, 496, 0, 83, 0, 0, 0, 84, - 0, 85, 86, 87, 0, 0, 89, 0, 0, 0, - 90, 0, 91, 0, 0, 0, 0, 0, 92, 0, - 93, 0, 0, 0, 94, 95, 96, 97, 98, 100, - 101, 17, 102, 103, 104, 0, 0, 88, 99, 76, - 13, 71, 0, 0, 0, 0, 0, 376, 138, 139, - 0, 0, 378, 143, 380, 73, 74, 381, 0, 146, - 0, 0, 0, 148, 383, 384, 0, 0, 0, 0, - 0, 0, 385, 386, 153, 154, 81, 82, 0, 83, - 0, 0, 0, 84, 0, 85, 387, 87, 0, 0, - 389, 0, 0, 0, 90, 0, 91, 0, -221, 0, - 0, 0, 390, 0, 93, 0, 0, 0, 391, 392, - 393, 394, 98, 396, 397, 398, 399, 400, 401, 0, - 0, 388, 395, 382, 377, 379, 158, 0, 0, 0, - 0, - - 428, 425, 524, 520, 488, 429, 421, 11, 431, 501, - 450, 452, 502, 497, 467, 231, 446, 454, 456, 441, - 491, 494, 463, 22, 507, 445, 275, 354, 372, 128, - 334, 464, 221, 336, 359, 370, 224, 361, 368, 363, - 366, 332, 216, 278, 218, 435, 435, 226, 0, 257, - 413, 0, 402, 244, 172, 250, 327, 327, 174, 252, - 177, 432, 432, 469, 275, 505, 511, 501, 224, 501, - 216, 256, 0, 112, 112, 259, 482, 112, 200, 201, - 0, 0, 202, 112, 22, 112, 112, 112, 203, 448, - 193, 112, 186, 475, 112, 112, 112, 112, 447, 112, - 112, 205, 181, 206, 199, 207, 112, 112, 224, 474, - 112, 112, 112, 510, 471, 407, 404, 291, 209, 405, - 211, 112, 295, 472, 112, 246, 112, 112, 112, 204, - 198, 112, 197, 274, 112, 327, 473, 112, 112, 327, - 122, 404, 312, 249, 405, 112, 327, 476, 112, 327, - 124, 112, 112, 123, 0, 112, 112, 313, 448, 112, - 309, 112, 179, 274, 112, 480, 447, 112, 67, 112, - 49, 482, 310, 0, 311, 323, 323, 22, 357, 22, - 295, 295, 355, 112, 67, 0, 49, 0, 295, 328, - 112, 0, 330, 0, 0, 295, 318, 351, 344, 112, - 0, 320, 112, 112, 295, 113, 316, 112, 295, 0, - 314, 112, 295, 0, 303, 323, 295, 323, 315, 112, - 295, 112, 295, 323, 295, 0, 295, 112, 295, 0, - 298, 0, 295, 0, 0, 0, 341, 342, 0, 322, - 0, 0, 338, 0, 0, 325, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 131, 0, 0, 0, 0, 67, - 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 115, 81, 0, 82, 0, 0, 0, 83, 0, 84, + 85, 86, 0, 0, 88, 0, 0, 0, 89, 0, + 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 93, 0, 95, 0, 97, 0, 100, 295, + 101, 0, 0, 0, 0, 87, 98, 75, 0, 0, + 0, 0, 0, 0, 0, 71, 72, 73, 0, 0, + 0, 0, 0, 0, 0, 0, 113, 0, 0, 0, + 0, 0, 0, 114, 0, 0, 0, 115, 81, 0, + 82, 0, 0, 0, 83, 0, 84, 85, 86, 0, + 0, 88, 0, 0, 0, 89, 0, 90, 0, 0, + 467, 0, 0, 0, 0, 0, 0, 0, 0, 93, + 0, 95, 0, 97, 0, 100, 0, 101, 0, 0, + 0, 0, 87, 98, 75, 0, 0, 0, 0, 0, + 0, 0, -75, 0, 0, 0, 71, 72, 73, 0, + 0, 0, 0, 0, 0, 0, 0, 113, 0, 0, + 0, 0, 0, 0, 114, 0, 0, 0, 115, 81, + 0, 82, 0, 0, 0, 83, 0, 84, 85, 86, + 0, 0, 88, 0, 0, 0, 89, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 93, 0, 95, 0, 97, 0, 100, 0, 101, 0, + 0, 0, 0, 87, 98, 75, 0, 0, 0, 0, + 0, 0, 0, 136, 137, 138, 0, 0, 140, 142, + 143, 0, 0, 144, 0, 145, 0, 0, 0, 147, + 148, 149, 0, 0, 0, 0, 0, 0, 216, 151, + 152, 153, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 154, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 158, 0, + 0, 0, 0, 0, 0, 160, 161, 162, 0, 164, + 165, 166, 167, 168, 169, 0, 0, 155, 163, 146, + 139, 141, 157, 0, 0, 0, 0, 136, 137, 138, + 0, 0, 140, 142, 143, 0, 0, 144, 0, 145, + 0, 0, 0, 147, 148, 149, 0, 0, 0, 0, + 0, 0, 150, 151, 152, 153, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 154, 0, 0, 0, + 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 158, 0, 0, 0, 0, 0, 159, 160, + 161, 162, 0, 164, 165, 166, 167, 168, 169, 0, + 0, 155, 163, 146, 139, 141, 157, 0, 0, 0, + 0, 136, 137, 138, 0, 0, 140, 142, 143, 0, + 0, 144, 0, 145, 0, 0, 0, 147, 148, 149, + 0, 0, 0, 0, 0, 0, 150, 151, 152, 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 154, 0, 0, 0, 156, 0, 0, 0, 0, 0, + 0, 0, 174, 0, 0, 0, 158, 0, 0, 0, + 0, 0, 159, 160, 161, 162, 0, 164, 165, 166, + 167, 168, 169, 0, 0, 155, 163, 146, 139, 141, + 157, 0, 0, 0, 0, 68, 0, 0, 0, 0, + 69, 0, 71, 72, 73, 74, 0, 0, 0, 0, + 0, 0, 76, 113, 0, 0, 0, 0, 0, 0, + 507, 79, 0, 0, 80, 508, 0, 82, 0, 0, + 0, 83, 0, 84, 85, 86, 0, 0, 88, 0, + 0, 0, 89, 0, 90, 0, 0, 0, 0, 0, + 91, 0, 92, 0, 0, 0, 93, 94, 95, 96, + 97, 99, 100, 16, 101, 102, 103, 0, 0, 87, + 98, 75, 12, 70, 0, 0, 0, 0, 0, 68, + 0, 0, 0, 0, 69, 0, 71, 72, 73, 74, + 0, 0, 0, 0, 0, 0, 76, 113, 0, 0, + 0, 0, 0, 0, 78, 79, 0, 0, 80, 81, + 0, 82, 0, 0, 0, 83, 0, 84, 85, 86, + 0, 0, 88, 0, 0, 0, 89, 0, 90, 0, + 0, 0, 0, 0, 91, 0, 92, 0, 0, 0, + 93, 94, 95, 96, 97, 99, 100, 16, 101, 102, + 103, 0, 0, 87, 98, 75, 12, 70, 0, 0, + 0, 0, 0, 68, 0, 0, 0, 0, 69, 0, + 71, 72, 73, 74, 0, 0, 0, 0, 0, 0, + 76, 77, 0, 0, 0, 0, 0, 0, 78, 79, + 0, 0, 80, 81, 0, 82, 0, 0, 0, 83, + 0, 84, 85, 86, 0, 0, 88, 0, 0, 0, + 89, 0, 90, 0, 0, 0, 0, 0, 91, 0, + 92, 0, 0, 0, 93, 94, 95, 96, 97, 99, + 100, 16, 101, 102, 103, 0, 0, 87, 98, 75, + 12, 70, 0, 0, 0, 0, 0, 68, 0, 0, + 0, 0, 69, 0, 71, 72, 73, 74, 0, 0, + 0, 0, 0, 0, 76, 113, 0, 0, 0, 0, + 0, 0, 494, 79, 0, 0, 80, 495, 0, 82, + 0, 0, 0, 83, 0, 84, 85, 86, 0, 0, + 88, 0, 0, 0, 89, 0, 90, 0, 0, 0, + 0, 0, 91, 0, 92, 0, 0, 0, 93, 94, + 95, 96, 97, 99, 100, 16, 101, 102, 103, 0, + 0, 87, 98, 75, 12, 70, 0, 0, 0, 0, + 0, 375, 137, 138, 0, 0, 377, 142, 379, 72, + 73, 380, 0, 145, 0, 0, 0, 147, 382, 383, + 0, 0, 0, 0, 0, 0, 384, 385, 152, 153, + 80, 81, 0, 82, 0, 0, 0, 83, 0, 84, + 386, 86, 0, 0, 388, 0, 0, 0, 89, 0, + 90, 0, -221, 0, 0, 0, 389, 0, 92, 0, + 0, 0, 390, 391, 392, 393, 97, 395, 396, 397, + 398, 399, 400, 0, 0, 387, 394, 381, 376, 378, + 157, 0, 0, 0, 0, + + 249, 430, 424, 440, 21, 427, 519, 10, 171, 173, + 453, 466, 455, 251, 463, 462, 256, 331, 230, 451, + 523, 277, 127, 445, 333, 444, 449, 176, 335, 434, + 428, 326, 360, 500, 434, 369, 501, 431, 431, 362, + 401, 371, 220, 509, 506, 420, 365, 496, 367, 217, + 353, 412, 487, 468, 215, 493, 481, 0, 490, 326, + 358, 0, 225, 223, 21, 243, 510, 0, 66, 500, + 48, 0, 504, 223, 500, 215, 255, 0, 274, 111, + 258, 0, 111, 196, 479, 111, 111, 203, 0, 111, + 198, 111, 111, 111, 0, 210, 21, 197, 326, 111, + 111, 273, 447, 208, 111, 248, 245, 111, 111, 308, + 273, 111, 309, 447, 111, 111, 111, 446, 446, 202, + 111, 111, 475, 111, 326, 326, 310, 111, 311, 123, + 111, 111, 326, 122, 111, 312, 111, 112, 121, 111, + 403, 356, 178, 404, 0, 111, 223, 470, 111, 111, + 111, 0, 111, 406, 185, 111, 204, 180, 206, 111, + 200, 111, 0, 0, 192, 481, 199, 327, 354, 290, + 0, 111, 111, 21, 294, 329, 201, 111, 205, 473, + 111, 111, 474, 471, 111, 322, 472, 66, 322, 48, + 294, 322, 322, 294, 111, 111, 294, 294, 111, 294, + 294, 111, 66, 294, 48, 302, 294, 343, 313, 337, + 341, 111, 340, 324, 321, 111, 294, 111, 314, 0, + 294, 0, 294, 322, 315, 111, 319, 111, 294, 0, + 294, 0, 294, 0, 297, 0, 0, 0, 0, 0, + 317, 0, 0, 0, 0, 350, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 403, 0, 0, + 404, 0, 0, 0, 0, 0, 0, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 260, 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, 261, 0}; + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; const int JavaScriptGrammar::action_check [] = { - 60, 48, 31, 17, 48, 29, 60, 76, 7, 1, - 8, 61, 29, 29, 36, 48, 29, 76, 61, 8, - 8, 60, 33, 8, 33, 1, 5, 8, 29, 29, - 76, 33, 7, 29, 55, 29, 33, 7, 33, 7, - 7, 5, 33, 36, 5, 55, 36, 2, 60, 36, - 7, 7, 36, 36, 1, 60, 60, 29, 61, 7, - 29, 7, 36, 36, 7, 36, 20, 16, 8, 55, - 29, 29, 8, 55, 1, 55, 0, 85, 29, 8, - 33, 7, 48, 8, 17, 29, 7, 2, 65, 7, - 29, 33, 8, 7, 7, 36, 33, 29, 76, 29, - 60, 36, 36, 8, 8, 36, 29, 8, 60, 8, - 29, 74, 7, 7, 36, 6, 36, 36, 8, 8, - 85, 15, 7, 61, 62, 7, 8, 8, 29, 20, - 40, 7, 10, 61, 62, 8, 10, 8, 33, 15, - 29, 51, 50, 40, 61, 62, 54, 8, 33, 61, - 62, 29, 56, 8, 51, 60, 8, 8, 61, 62, - 40, 60, 8, 50, 8, 42, 56, 54, 61, 62, - 8, 51, 40, 2, 8, 29, 53, 61, 62, 29, - 61, 55, 25, 51, 27, 8, 12, 60, 25, 60, - 27, -1, -1, 29, -1, 38, -1, -1, -1, 60, - 25, 38, 27, 12, 56, 60, -1, 61, 62, 60, - 56, 61, 62, 38, -1, -1, 60, 25, 56, 27, - 25, 25, 27, 27, 15, 61, 62, 61, 62, 8, - 38, 57, -1, 38, 38, 29, 12, 63, 61, 62, - 25, -1, 27, 34, 25, 36, 27, 25, 57, 27, - 25, 15, 27, 38, 63, -1, 25, 38, 27, 15, - 38, -1, 25, 38, 27, 18, 19, 61, 62, 38, - 34, -1, 36, 18, 19, 38, 18, 19, 34, 22, - 36, 57, 61, 62, 18, 19, 29, 63, -1, 22, - -1, -1, 45, 46, -1, -1, 29, -1, -1, -1, - 45, 46, -1, 45, 46, 23, 24, -1, -1, 23, - 24, 45, 46, 22, 32, -1, -1, 35, 32, 37, - 29, 35, -1, 37, 22, -1, -1, -1, -1, 72, - -1, 29, 25, -1, 27, 23, 24, -1, 81, 72, - -1, 84, -1, 31, 32, 38, 55, 35, 81, 37, - -1, 84, 23, 24, -1, -1, -1, 55, -1, -1, - 31, 32, -1, 72, 35, -1, 37, -1, 23, 24, - -1, -1, 81, -1, 72, 84, 31, 32, -1, -1, - 35, -1, 37, 81, -1, -1, 84, -1, -1, 23, - 24, -1, -1, -1, -1, 23, 24, 31, 32, -1, - -1, 35, -1, 37, 32, -1, -1, 35, -1, 37, - 12, 13, -1, -1, -1, -1, -1, -1, 12, 13, - 22, -1, -1, -1, -1, -1, -1, 29, 22, -1, - -1, 33, 34, -1, 36, 29, -1, -1, -1, 33, - 34, 43, 36, -1, -1, 47, -1, -1, -1, 43, - -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, - 23, 24, -1, 65, -1, 67, -1, -1, 31, 32, - -1, 65, 35, 67, 37, -1, 78, 79, 80, -1, - -1, 3, -1, -1, 78, 79, 80, -1, -1, -1, - -1, 13, -1, -1, -1, 17, -1, -1, -1, -1, - -1, -1, -1, -1, 26, -1, 28, -1, -1, 31, + 76, 17, 1, 60, 36, 33, 29, 8, 33, 36, + 61, 5, 29, 8, 7, 29, 55, 60, 20, 5, + 33, 36, 1, 76, 48, 5, 29, 33, 48, 29, + 7, 7, 29, 55, 8, 17, 7, 29, 36, 60, + 31, 29, 61, 16, 29, 7, 7, 36, 8, 33, + 7, 29, 7, 61, 7, 36, 7, 29, 8, 8, + 7, 36, 29, 7, 60, 2, 8, 85, 7, 33, + 29, 2, 8, 36, 2, 29, 8, 60, 36, 48, + 36, 29, 48, 0, 36, 8, 76, 33, 7, 7, + 60, 29, 60, 33, 8, 36, 8, 8, 85, 6, + 65, 36, 36, 29, 33, 29, 7, 8, 8, 36, + 55, 8, 55, 20, 29, 8, 10, 8, 8, 8, + 42, 36, 8, 7, 40, 8, -1, 60, -1, 50, + 55, 53, 7, 54, 40, 51, 40, 7, -1, 8, + 15, 61, 62, 8, 74, 51, 60, 51, 60, 33, + 61, 61, 62, 61, 62, 8, 8, 1, 50, 56, + 60, 55, 54, 33, 29, 8, 40, 60, 8, 60, + 60, 60, 10, 56, 60, -1, 29, 51, 12, 61, + 62, 61, 62, 61, 62, 61, 62, 56, 25, 15, + 27, 29, 25, 25, 27, 27, 25, 12, 27, 29, + 12, 38, 29, 8, 56, 38, 38, 8, 34, 38, + 36, -1, 25, 56, 27, 25, -1, 27, 15, 18, + 19, 61, 62, 57, -1, 38, 29, -1, 38, 63, + -1, 61, 62, 29, 61, 62, 25, 34, 27, 36, + 18, 19, 57, 15, 7, 57, 45, 46, 63, 38, + -1, 63, 15, 18, 19, -1, 61, 62, 61, 62, + 61, 62, 34, -1, 36, 61, 62, 45, 46, 18, + 19, 22, -1, 23, 24, -1, -1, -1, 29, -1, + 45, 46, 32, -1, 22, 35, -1, 37, -1, 23, + 24, 29, -1, 23, 24, -1, 45, 46, 32, 23, + 24, 35, 32, 37, -1, 35, -1, 37, 32, 22, + -1, 35, -1, 37, 23, 24, 29, 22, -1, -1, + -1, 72, -1, 32, 29, 25, 35, 27, 37, -1, + 81, -1, -1, 84, 72, -1, -1, -1, 38, -1, + -1, -1, 55, 81, -1, -1, 84, -1, -1, -1, + 55, -1, -1, -1, -1, 3, -1, -1, -1, 72, + -1, -1, -1, -1, -1, 13, -1, 72, 81, 17, + -1, 84, -1, -1, -1, -1, 81, -1, 26, 84, + 28, -1, -1, -1, -1, -1, -1, -1, 23, 24, + -1, 39, -1, 41, 42, -1, 31, 32, -1, -1, + 35, 49, 37, -1, 52, 53, -1, -1, -1, -1, + 58, 3, -1, -1, -1, -1, 64, -1, -1, -1, + -1, 13, -1, -1, -1, 17, -1, -1, -1, 77, + -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, 3, -1, 49, -1, -1, - 52, 53, -1, -1, -1, 13, 58, -1, -1, 17, - -1, -1, 64, -1, -1, -1, -1, -1, 26, -1, - 28, -1, -1, -1, -1, 77, -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, 77, + 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, 77, -1, -1, 47, -1, -1, -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, -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, -1, 67, -1, 69, -1, - 71, -1, 73, -1, -1, -1, -1, 78, 79, 80, - -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, -1, 67, -1, 69, -1, 71, 72, 73, - -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 65, -1, 67, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 78, + 79, 80, -1, -1, -1, -1, -1, -1, -1, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 13, + -1, -1, -1, 17, -1, -1, -1, -1, -1, -1, + -1, -1, 26, -1, 28, -1, -1, 31, -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, 77, -1, -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, -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, + 47, -1, -1, -1, 51, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, 67, -1, 69, -1, 71, -1, 73, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, -1, - -1, 7, -1, -1, -1, 11, 12, 13, -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, 56, -1, -1, -1, + -1, -1, -1, -1, -1, 65, -1, 67, -1, 69, + -1, 71, -1, 73, -1, -1, -1, -1, 78, 79, + 80, -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, -1, 67, -1, 69, -1, 71, 72, + 73, -1, -1, -1, -1, 78, 79, 80, -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, + 56, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, 67, -1, 69, -1, 71, -1, 73, -1, -1, -1, -1, 78, 79, 80, -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, 56, -1, -1, - -1, -1, -1, -1, -1, -1, 65, -1, 67, -1, - 69, -1, 71, -1, 73, -1, -1, -1, -1, 78, - 79, 80, -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, 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, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, - -1, 66, 67, 68, -1, 70, 71, 72, 73, 74, - 75, -1, -1, 78, 79, 80, 81, 82, 83, -1, + 65, -1, 67, -1, 69, -1, 71, -1, 73, -1, + -1, -1, -1, 78, 79, 80, -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, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, - -1, -1, -1, -1, 65, 66, 67, 68, -1, 70, + -1, -1, -1, -1, -1, 66, 67, 68, -1, 70, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -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, + 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, -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, + -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, -1, 70, 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, - -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, + 83, -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, @@ -659,51 +607,56 @@ const int JavaScriptGrammar::action_check [] = { 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, -1, -1, 78, 79, 80, - 81, 82, -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, + 81, 82, -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, 55, -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, -1, - -1, 78, 79, 80, 81, 82, 83, -1, -1, -1, - -1, + -1, 78, 79, 80, 81, 82, -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, -1, -1, 78, 79, 80, 81, 82, + 83, -1, -1, -1, -1, - 72, 84, 76, 20, 12, 12, 87, 5, 72, 10, - 12, 11, 9, 9, 20, 54, 58, 12, 11, 89, - 12, 11, 16, 14, 11, 58, 11, 78, 11, 90, - 12, 20, 20, 11, 11, 11, 20, 12, 12, 11, - 11, 11, 23, 12, 12, 58, 58, 20, -1, 12, - 12, -1, 11, 20, 20, 20, 12, 12, 22, 20, - 20, 12, 12, 12, 11, 8, 7, 10, 20, 10, - 23, 24, -1, 31, 31, 27, 6, 31, 36, 36, - -1, -1, 36, 31, 14, 31, 31, 31, 36, 33, - 36, 31, 37, 33, 31, 31, 31, 31, 33, 31, - 31, 37, 39, 37, 35, 37, 31, 31, 20, 33, - 31, 31, 31, 9, 33, 27, 25, 31, 43, 28, - 41, 31, 36, 33, 31, 45, 31, 31, 31, 36, - 35, 31, 35, 33, 31, 12, 33, 31, 31, 12, - 33, 25, 36, 47, 28, 31, 12, 33, 31, 12, - 33, 31, 31, 33, -1, 31, 31, 36, 33, 31, - 36, 31, 34, 33, 31, 2, 33, 31, 11, 31, - 13, 6, 36, -1, 36, 31, 31, 14, 55, 14, - 36, 36, 55, 31, 11, -1, 13, -1, 36, 55, - 31, -1, 55, -1, -1, 36, 44, 53, 53, 31, - -1, 42, 31, 31, 36, 34, 38, 31, 36, -1, - 38, 31, 36, -1, 38, 31, 36, 31, 38, 31, - 36, 31, 36, 31, 36, -1, 36, 31, 36, -1, - 40, -1, 36, -1, -1, -1, 48, 53, -1, 53, - -1, -1, 46, -1, -1, 53, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 91, -1, -1, -1, -1, 11, - -1, 13, -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, + 20, 72, 84, 89, 14, 72, 20, 5, 20, 22, + 12, 20, 11, 20, 20, 16, 12, 11, 54, 11, + 76, 12, 90, 58, 12, 58, 12, 20, 11, 58, + 12, 12, 12, 10, 58, 11, 9, 12, 12, 11, + 11, 11, 20, 9, 11, 87, 11, 9, 12, 12, + 78, 12, 12, 12, 23, 11, 6, -1, 12, 12, + 11, -1, 20, 20, 14, 20, 7, -1, 11, 10, + 13, -1, 8, 20, 10, 23, 24, -1, 11, 31, + 27, -1, 31, 35, 2, 31, 31, 36, -1, 31, + 35, 31, 31, 31, -1, 41, 14, 35, 12, 31, + 31, 33, 33, 43, 31, 47, 45, 31, 31, 36, + 33, 31, 36, 33, 31, 31, 31, 33, 33, 36, + 31, 31, 33, 31, 12, 12, 36, 31, 36, 33, + 31, 31, 12, 33, 31, 36, 31, 34, 33, 31, + 25, 55, 34, 28, -1, 31, 20, 33, 31, 31, + 31, -1, 31, 27, 37, 31, 37, 39, 37, 31, + 36, 31, -1, -1, 36, 6, 36, 55, 55, 31, + -1, 31, 31, 14, 36, 55, 36, 31, 37, 33, + 31, 31, 33, 33, 31, 31, 33, 11, 31, 13, + 36, 31, 31, 36, 31, 31, 36, 36, 31, 36, + 36, 31, 11, 36, 13, 38, 36, 53, 38, 46, + 53, 31, 48, 53, 53, 31, 36, 31, 38, -1, + 36, -1, 36, 31, 38, 31, 42, 31, 36, -1, + 36, -1, 36, -1, 40, -1, -1, -1, -1, -1, + 44, -1, -1, -1, -1, 53, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 25, -1, -1, + 28, -1, -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 96, -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, 96, -1}; + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; diff --git a/src/declarative/qml/parser/javascriptgrammar_p.h b/src/declarative/qml/parser/javascriptgrammar_p.h index 22d3d76..b6ffbc6 100644 --- a/src/declarative/qml/parser/javascriptgrammar_p.h +++ b/src/declarative/qml/parser/javascriptgrammar_p.h @@ -1,56 +1,4 @@ // This file was generated by qlalr - DO NOT EDIT! -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) -** -** This file is part of the QtCore module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** 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.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists for the convenience -// of other Qt classes. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - #ifndef JAVASCRIPTGRAMMAR_P_H #define JAVASCRIPTGRAMMAR_P_H @@ -147,15 +95,15 @@ public: T_XOR = 76, T_XOR_EQ = 77, - ACCEPT_STATE = 7, + ACCEPT_STATE = 524, RULE_COUNT = 298, STATE_COUNT = 525, TERMINAL_COUNT = 88, NON_TERMINAL_COUNT = 98, GOTO_INDEX_OFFSET = 525, - GOTO_INFO_OFFSET = 1671, - GOTO_CHECK_OFFSET = 1671 + GOTO_INFO_OFFSET = 1675, + GOTO_CHECK_OFFSET = 1675 }; static const char *const spell []; diff --git a/src/declarative/qml/parser/javascriptparser.cpp b/src/declarative/qml/parser/javascriptparser.cpp index 81a7e7b..f868216 100644 --- a/src/declarative/qml/parser/javascriptparser.cpp +++ b/src/declarative/qml/parser/javascriptparser.cpp @@ -123,6 +123,7 @@ bool JavaScriptParser::parse(JavaScriptEnginePrivate *driver) first_token = last_token = 0; tos = -1; + program = 0; do { if (++tos == stack_size) @@ -163,8 +164,9 @@ bool JavaScriptParser::parse(JavaScriptEnginePrivate *driver) switch (r) { case 0: { - sym(1).Node = makeAstNode<AST::UiProgram> (driver->nodePool(), sym(1).UiImportList, + program = makeAstNode<AST::UiProgram> (driver->nodePool(), sym(1).UiImportList, sym(2).UiObjectMemberList->finish()); + sym(1).UiProgram = program; } break; case 2: { @@ -246,7 +248,7 @@ case 19: { sym(4).UiObjectMemberList->finish()); node->colonToken = loc(2); node->lbracketToken = loc(3); - node->rbraceToken = loc(5); + node->rbracketToken = loc(5); sym(1).Node = node; } break; case 20: @@ -1550,6 +1552,7 @@ case 295: { yytoken = *tk; yylval = 0; yylloc = token_buffer[0].loc; + yylloc.length = 0; first_token = &token_buffer[0]; last_token = &token_buffer[2]; @@ -1572,6 +1575,7 @@ case 295: { yytoken = tk; yylval = 0; yylloc = token_buffer[0].loc; + yylloc.length = 0; action = errorState; goto _Lcheck_token; diff --git a/src/declarative/qml/parser/javascriptparser_p.h b/src/declarative/qml/parser/javascriptparser_p.h index 226ad8b..34edaf7 100644 --- a/src/declarative/qml/parser/javascriptparser_p.h +++ b/src/declarative/qml/parser/javascriptparser_p.h @@ -143,7 +143,7 @@ public: bool parse(JavaScriptEnginePrivate *driver); JavaScript::AST::UiProgram *ast() - { return sym(1).UiProgram; } + { return program; } QList<DiagnosticMessage> diagnosticMessages() const { return diagnostic_messages; } @@ -183,6 +183,8 @@ protected: int *state_stack; JavaScript::AST::SourceLocation *location_stack; + JavaScript::AST::UiProgram *program; + // error recovery enum { TOKEN_BUFFER_SIZE = 3 }; |