forked from qt-creator/qt-creator
qmljs/parser: update to latest qt5 parser
fix error semicolon insertion of loops, strict mode Change-Id: Ic67d6b1fff6f476ea7eb64ae0ee43515d29654a5 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
This commit is contained in:
@@ -27,7 +27,7 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QtDebug>
|
||||
#include <QtCore/QCoreApplication>
|
||||
|
||||
#include <string.h>
|
||||
@@ -42,9 +42,16 @@
|
||||
#include "qmljsparser_p.h"
|
||||
#include <QVarLengthArray>
|
||||
|
||||
//
|
||||
// W A R N I N G
|
||||
// -------------
|
||||
//
|
||||
// This file is automatically generated from qmljs.g.
|
||||
// Changes will be lost.
|
||||
// Changes should be made to that file, not here. Any change to this file will
|
||||
// be lost!
|
||||
//
|
||||
// To regenerate this file, run:
|
||||
// qlalr --no-debug --no-lines --qt qmljs.g
|
||||
//
|
||||
|
||||
using namespace QmlJS;
|
||||
@@ -1384,7 +1391,7 @@ case 289: {
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 291: {
|
||||
case 292: {
|
||||
AST::DoWhileStatement *node = new (pool) AST::DoWhileStatement(sym(2).Statement, sym(5).Expression);
|
||||
node->doToken = loc(1);
|
||||
node->whileToken = loc(3);
|
||||
@@ -1394,7 +1401,7 @@ case 291: {
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 292: {
|
||||
case 293: {
|
||||
AST::WhileStatement *node = new (pool) AST::WhileStatement(sym(3).Expression, sym(5).Statement);
|
||||
node->whileToken = loc(1);
|
||||
node->lparenToken = loc(2);
|
||||
@@ -1402,7 +1409,7 @@ case 292: {
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 293: {
|
||||
case 294: {
|
||||
AST::ForStatement *node = new (pool) AST::ForStatement(sym(3).Expression,
|
||||
sym(5).Expression, sym(7).Expression, sym(9).Statement);
|
||||
node->forToken = loc(1);
|
||||
@@ -1413,7 +1420,7 @@ case 293: {
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 294: {
|
||||
case 295: {
|
||||
AST::LocalForStatement *node = new (pool) AST::LocalForStatement(
|
||||
sym(4).VariableDeclarationList->finish (/*readOnly=*/false), sym(6).Expression,
|
||||
sym(8).Expression, sym(10).Statement);
|
||||
@@ -1426,7 +1433,7 @@ case 294: {
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 295: {
|
||||
case 296: {
|
||||
AST:: ForEachStatement *node = new (pool) AST::ForEachStatement(sym(3).Expression,
|
||||
sym(5).Expression, sym(7).Statement);
|
||||
node->forToken = loc(1);
|
||||
@@ -1436,7 +1443,7 @@ case 295: {
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 296: {
|
||||
case 297: {
|
||||
AST::LocalForEachStatement *node = new (pool) AST::LocalForEachStatement(
|
||||
sym(4).VariableDeclaration, sym(6).Expression, sym(8).Statement);
|
||||
node->forToken = loc(1);
|
||||
@@ -1447,14 +1454,14 @@ case 296: {
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 298: {
|
||||
case 299: {
|
||||
AST::ContinueStatement *node = new (pool) AST::ContinueStatement();
|
||||
node->continueToken = loc(1);
|
||||
node->semicolonToken = loc(2);
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 300: {
|
||||
case 301: {
|
||||
AST::ContinueStatement *node = new (pool) AST::ContinueStatement(stringRef(2));
|
||||
node->continueToken = loc(1);
|
||||
node->identifierToken = loc(2);
|
||||
@@ -1462,14 +1469,14 @@ case 300: {
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 302: {
|
||||
case 303: {
|
||||
AST::BreakStatement *node = new (pool) AST::BreakStatement(QStringRef());
|
||||
node->breakToken = loc(1);
|
||||
node->semicolonToken = loc(2);
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 304: {
|
||||
case 305: {
|
||||
AST::BreakStatement *node = new (pool) AST::BreakStatement(stringRef(2));
|
||||
node->breakToken = loc(1);
|
||||
node->identifierToken = loc(2);
|
||||
@@ -1477,14 +1484,14 @@ case 304: {
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 306: {
|
||||
case 307: {
|
||||
AST::ReturnStatement *node = new (pool) AST::ReturnStatement(sym(2).Expression);
|
||||
node->returnToken = loc(1);
|
||||
node->semicolonToken = loc(3);
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 307: {
|
||||
case 308: {
|
||||
AST::WithStatement *node = new (pool) AST::WithStatement(sym(3).Expression, sym(5).Statement);
|
||||
node->withToken = loc(1);
|
||||
node->lparenToken = loc(2);
|
||||
@@ -1492,7 +1499,7 @@ case 307: {
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 308: {
|
||||
case 309: {
|
||||
AST::SwitchStatement *node = new (pool) AST::SwitchStatement(sym(3).Expression, sym(5).CaseBlock);
|
||||
node->switchToken = loc(1);
|
||||
node->lparenToken = loc(2);
|
||||
@@ -1500,57 +1507,50 @@ case 308: {
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 309: {
|
||||
case 310: {
|
||||
AST::CaseBlock *node = new (pool) AST::CaseBlock(sym(2).CaseClauses);
|
||||
node->lbraceToken = loc(1);
|
||||
node->rbraceToken = loc(3);
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 310: {
|
||||
case 311: {
|
||||
AST::CaseBlock *node = new (pool) AST::CaseBlock(sym(2).CaseClauses, sym(3).DefaultClause, sym(4).CaseClauses);
|
||||
node->lbraceToken = loc(1);
|
||||
node->rbraceToken = loc(5);
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 311: {
|
||||
case 312: {
|
||||
sym(1).Node = new (pool) AST::CaseClauses(sym(1).CaseClause);
|
||||
} break;
|
||||
|
||||
case 312: {
|
||||
case 313: {
|
||||
sym(1).Node = new (pool) AST::CaseClauses(sym(1).CaseClauses, sym(2).CaseClause);
|
||||
} break;
|
||||
|
||||
case 313: {
|
||||
case 314: {
|
||||
sym(1).Node = 0;
|
||||
} break;
|
||||
|
||||
case 314: {
|
||||
case 315: {
|
||||
sym(1).Node = sym(1).CaseClauses->finish ();
|
||||
} break;
|
||||
|
||||
case 315: {
|
||||
case 316: {
|
||||
AST::CaseClause *node = new (pool) AST::CaseClause(sym(2).Expression, sym(4).StatementList);
|
||||
node->caseToken = loc(1);
|
||||
node->colonToken = loc(3);
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 316: {
|
||||
case 317: {
|
||||
AST::DefaultClause *node = new (pool) AST::DefaultClause(sym(3).StatementList);
|
||||
node->defaultToken = loc(1);
|
||||
node->colonToken = loc(2);
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
case 317:
|
||||
case 318: {
|
||||
AST::LabelledStatement *node = new (pool) AST::LabelledStatement(stringRef(1), sym(3).Statement);
|
||||
node->identifierToken = loc(1);
|
||||
node->colonToken = loc(2);
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 318:
|
||||
case 319: {
|
||||
AST::LabelledStatement *node = new (pool) AST::LabelledStatement(stringRef(1), sym(3).Statement);
|
||||
node->identifierToken = loc(1);
|
||||
@@ -1558,32 +1558,39 @@ case 319: {
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 321: {
|
||||
case 320: {
|
||||
AST::LabelledStatement *node = new (pool) AST::LabelledStatement(stringRef(1), sym(3).Statement);
|
||||
node->identifierToken = loc(1);
|
||||
node->colonToken = loc(2);
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 322: {
|
||||
AST::ThrowStatement *node = new (pool) AST::ThrowStatement(sym(2).Expression);
|
||||
node->throwToken = loc(1);
|
||||
node->semicolonToken = loc(3);
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 322: {
|
||||
case 323: {
|
||||
AST::TryStatement *node = new (pool) AST::TryStatement(sym(2).Statement, sym(3).Catch);
|
||||
node->tryToken = loc(1);
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 323: {
|
||||
case 324: {
|
||||
AST::TryStatement *node = new (pool) AST::TryStatement(sym(2).Statement, sym(3).Finally);
|
||||
node->tryToken = loc(1);
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 324: {
|
||||
case 325: {
|
||||
AST::TryStatement *node = new (pool) AST::TryStatement(sym(2).Statement, sym(3).Catch, sym(4).Finally);
|
||||
node->tryToken = loc(1);
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 325: {
|
||||
case 326: {
|
||||
AST::Catch *node = new (pool) AST::Catch(stringRef(3), sym(5).Block);
|
||||
node->catchToken = loc(1);
|
||||
node->lparenToken = loc(2);
|
||||
@@ -1592,20 +1599,20 @@ case 325: {
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 326: {
|
||||
case 327: {
|
||||
AST::Finally *node = new (pool) AST::Finally(sym(2).Block);
|
||||
node->finallyToken = loc(1);
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 328: {
|
||||
case 329: {
|
||||
AST::DebuggerStatement *node = new (pool) AST::DebuggerStatement();
|
||||
node->debuggerToken = loc(1);
|
||||
node->semicolonToken = loc(2);
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 329: {
|
||||
case 330: {
|
||||
AST::FunctionDeclaration *node = new (pool) AST::FunctionDeclaration(stringRef(2), sym(4).FormalParameterList, sym(7).FunctionBody);
|
||||
node->functionToken = loc(1);
|
||||
node->identifierToken = loc(2);
|
||||
@@ -1616,7 +1623,7 @@ case 329: {
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 330: {
|
||||
case 331: {
|
||||
AST::FunctionExpression *node = new (pool) AST::FunctionExpression(stringRef(2), sym(4).FormalParameterList, sym(7).FunctionBody);
|
||||
node->functionToken = loc(1);
|
||||
if (! stringRef(2).isNull())
|
||||
@@ -1628,60 +1635,60 @@ case 330: {
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 331: {
|
||||
case 332: {
|
||||
AST::FormalParameterList *node = new (pool) AST::FormalParameterList(stringRef(1));
|
||||
node->identifierToken = loc(1);
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 332: {
|
||||
case 333: {
|
||||
AST::FormalParameterList *node = new (pool) AST::FormalParameterList(sym(1).FormalParameterList, stringRef(3));
|
||||
node->commaToken = loc(2);
|
||||
node->identifierToken = loc(3);
|
||||
sym(1).Node = node;
|
||||
} break;
|
||||
|
||||
case 333: {
|
||||
sym(1).Node = 0;
|
||||
} break;
|
||||
|
||||
case 334: {
|
||||
sym(1).Node = sym(1).FormalParameterList->finish ();
|
||||
sym(1).Node = 0;
|
||||
} break;
|
||||
|
||||
case 335: {
|
||||
sym(1).Node = sym(1).FormalParameterList->finish ();
|
||||
} break;
|
||||
|
||||
case 336: {
|
||||
sym(1).Node = 0;
|
||||
} break;
|
||||
|
||||
case 337: {
|
||||
case 338: {
|
||||
sym(1).Node = new (pool) AST::FunctionBody(sym(1).SourceElements->finish ());
|
||||
} break;
|
||||
|
||||
case 339: {
|
||||
case 340: {
|
||||
sym(1).Node = new (pool) AST::Program(sym(1).SourceElements->finish ());
|
||||
} break;
|
||||
|
||||
case 340: {
|
||||
case 341: {
|
||||
sym(1).Node = new (pool) AST::SourceElements(sym(1).SourceElement);
|
||||
} break;
|
||||
|
||||
case 341: {
|
||||
case 342: {
|
||||
sym(1).Node = new (pool) AST::SourceElements(sym(1).SourceElements, sym(2).SourceElement);
|
||||
} break;
|
||||
|
||||
case 342: {
|
||||
case 343: {
|
||||
sym(1).Node = new (pool) AST::StatementSourceElement(sym(1).Statement);
|
||||
} break;
|
||||
|
||||
case 343: {
|
||||
case 344: {
|
||||
sym(1).Node = new (pool) AST::FunctionSourceElement(sym(1).FunctionDeclaration);
|
||||
} break;
|
||||
|
||||
case 344: {
|
||||
case 345: {
|
||||
stringRef(1) = QStringRef();
|
||||
} break;
|
||||
|
||||
case 346: {
|
||||
case 347: {
|
||||
sym(1).Node = 0;
|
||||
} break;
|
||||
|
||||
@@ -1694,7 +1701,8 @@ case 346: {
|
||||
const int errorState = state_stack[tos];
|
||||
|
||||
// automatic insertion of `;'
|
||||
if (yytoken != -1 && t_action(errorState, T_AUTOMATIC_SEMICOLON) && lexer->canInsertAutomaticSemicolon(yytoken)) {
|
||||
if (yytoken != -1 && ((t_action(errorState, T_AUTOMATIC_SEMICOLON) && lexer->canInsertAutomaticSemicolon(yytoken))
|
||||
|| t_action(errorState, T_COMPATIBILITY_SEMICOLON))) {
|
||||
SavedToken &tk = token_buffer[0];
|
||||
tk.token = yytoken;
|
||||
tk.dval = yylval;
|
||||
|
||||
Reference in New Issue
Block a user