diff options
author | Fawzi Mohamed <fawzi.mohamed@digia.com> | 2013-01-22 11:15:23 +0100 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@digia.com> | 2013-01-23 14:47:26 +0100 |
commit | f0e4df5826a28b38eb91c9d05ef68c5d1d0231c1 (patch) | |
tree | fcad76f509a777339f0f4eb7fe50214f3df10749 /src/libs/qmljs | |
parent | 111872591e70c7cd62ed06904a01b939c08f10e7 (diff) | |
download | qt-creator-f0e4df5826a28b38eb91c9d05ef68c5d1d0231c1.tar.gz |
qmljs/parser: update to latest qt5 parser
fix error semicolon insertion of loops, strict mode
Change-Id: I311733ffb34269d1cee7e576d05af78893b2bcbb
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Diffstat (limited to 'src/libs/qmljs')
-rw-r--r-- | src/libs/qmljs/parser/parser.patch | 38 | ||||
-rw-r--r-- | src/libs/qmljs/parser/parser.pri | 3 | ||||
-rw-r--r-- | src/libs/qmljs/parser/qmldirparser.cpp | 32 | ||||
-rw-r--r-- | src/libs/qmljs/parser/qmldirparser_p.h | 2 | ||||
-rw-r--r-- | src/libs/qmljs/parser/qmlerror.cpp | 39 | ||||
-rw-r--r-- | src/libs/qmljs/parser/qmljs.g | 95 | ||||
-rw-r--r-- | src/libs/qmljs/parser/qmljsengine_p.cpp | 2 | ||||
-rw-r--r-- | src/libs/qmljs/parser/qmljsgrammar.cpp | 1610 | ||||
-rw-r--r-- | src/libs/qmljs/parser/qmljsgrammar_p.h | 41 | ||||
-rw-r--r-- | src/libs/qmljs/parser/qmljskeywords_p.h | 70 | ||||
-rw-r--r-- | src/libs/qmljs/parser/qmljslexer.cpp | 79 | ||||
-rw-r--r-- | src/libs/qmljs/parser/qmljslexer_p.h | 5 | ||||
-rw-r--r-- | src/libs/qmljs/parser/qmljsparser.cpp | 106 | ||||
-rw-r--r-- | src/libs/qmljs/parser/qmljsparser_p.h | 9 |
14 files changed, 1128 insertions, 1003 deletions
diff --git a/src/libs/qmljs/parser/parser.patch b/src/libs/qmljs/parser/parser.patch index da87c056b0..dda7920feb 100644 --- a/src/libs/qmljs/parser/parser.patch +++ b/src/libs/qmljs/parser/parser.patch @@ -1,17 +1,17 @@ -diff --git a/src/libs/qmljs/parser/qmljs.g b/src/libs/qmljs/parser/qmljs.g -index 069be3c..9cbdc23 100644 ---- a/src/libs/qmljs/parser/qmljs.g -+++ b/src/libs/qmljs/parser/qmljs.g -@@ -111,7 +111,7 @@ double integerFromString(const QString &str, int radix) +diff --git a/src/libs/qmljs/parser/qmljsengine_p.cpp b/src/libs/qmljs/parser/qmljsengine_p.cpp +index 73850bb..d7d2189 100644 +--- a/src/libs/qmljs/parser/qmljsengine_p.cpp ++++ b/src/libs/qmljs/parser/qmljsengine_p.cpp +@@ -110,7 +110,7 @@ double integerFromString(const QString &str, int radix) Engine::Engine() - : _lexer(0) -+ : _lexer(0), _directives(0) ++ : _lexer(0), directives(0) { } Engine::~Engine() -@@ -132,6 +132,12 @@ Lexer *Engine::lexer() const +@@ -131,6 +131,12 @@ Lexer *Engine::lexer() const void Engine::setLexer(Lexer *lexer) { _lexer = lexer; } @@ -24,11 +24,11 @@ index 069be3c..9cbdc23 100644 MemoryPool *Engine::pool() { return &_pool; } -diff --git b/src/libs/qmljs/parser/qmljsengine_p.h a/src/libs/qmljs/parser/qmljsengine_p.h -index 5057ea0..487619e 100644 ---- b/src/libs/qmljs/parser/qmljsengine_p.h -+++ a/src/libs/qmljs/parser/qmljsengine_p.h -@@ -54,6 +54,7 @@ QT_QML_BEGIN_NAMESPACE +diff --git a/src/libs/qmljs/parser/qmljsengine_p.h b/src/libs/qmljs/parser/qmljsengine_p.h +index d4ed4b37..4908e02 100644 +--- a/src/libs/qmljs/parser/qmljsengine_p.h ++++ b/src/libs/qmljs/parser/qmljsengine_p.h +@@ -53,6 +53,7 @@ QT_QML_BEGIN_NAMESPACE namespace QmlJS { class Lexer; @@ -36,7 +36,7 @@ index 5057ea0..487619e 100644 class MemoryPool; class QML_PARSER_EXPORT DiagnosticMessage -@@ -81,6 +82,7 @@ public: +@@ -80,6 +81,7 @@ public: class QML_PARSER_EXPORT Engine { Lexer *_lexer; @@ -44,7 +44,7 @@ index 5057ea0..487619e 100644 MemoryPool _pool; QList<AST::SourceLocation> _comments; QString _extraCode; -@@ -98,6 +100,9 @@ public: +@@ -97,6 +99,9 @@ public: Lexer *lexer() const; void setLexer(Lexer *lexer); @@ -54,11 +54,11 @@ index 5057ea0..487619e 100644 MemoryPool *pool(); inline QStringRef midRef(int position, int size) { return _code.midRef(position, size); } -diff --git b/src/libs/qmljs/parser/qmljsparser.cpp a/src/libs/qmljs/parser/qmljsparser.cpp -index a731c1a..e986534 100644 ---- b/src/libs/qmljs/parser/qmljsparser.cpp -+++ a/src/libs/qmljs/parser/qmljsparser.cpp -@@ -137,7 +137,20 @@ bool Parser::parse(int startToken) +diff --git a/src/libs/qmljs/parser/qmljsparser.cpp b/src/libs/qmljs/parser/qmljsparser.cpp +index d53960b..71e994f 100644 +--- a/src/libs/qmljs/parser/qmljsparser.cpp ++++ b/src/libs/qmljs/parser/qmljsparser.cpp +@@ -143,7 +143,20 @@ bool Parser::parse(int startToken) token_buffer[0].token = startToken; first_token = &token_buffer[0]; diff --git a/src/libs/qmljs/parser/parser.pri b/src/libs/qmljs/parser/parser.pri index aa1069e5c2..4a9242a845 100644 --- a/src/libs/qmljs/parser/parser.pri +++ b/src/libs/qmljs/parser/parser.pri @@ -21,3 +21,6 @@ SOURCES += \ $$PWD/qmljsparser.cpp \ $$PWD/qmldirparser.cpp \ $$PWD/qmlerror.cpp \ + +OTHER_FILES += \ + $$PWD/qmljs.g diff --git a/src/libs/qmljs/parser/qmldirparser.cpp b/src/libs/qmljs/parser/qmldirparser.cpp index 7a09f85347..11700bcf4c 100644 --- a/src/libs/qmljs/parser/qmldirparser.cpp +++ b/src/libs/qmljs/parser/qmldirparser.cpp @@ -32,7 +32,7 @@ -#include <QtCore/QDebug> +#include <QtCore/QtDebug> QT_BEGIN_NAMESPACE @@ -86,7 +86,7 @@ bool QmlDirParser::parse(const QString &source) _components.clear(); _scripts.clear(); - int lineNumber = 0; + quint16 lineNumber = 0; bool firstLine = true; const QChar *ch = source.constData(); @@ -129,7 +129,7 @@ bool QmlDirParser::parse(const QString &source) ++ch; if (invalidLine) { - reportError(lineNumber, -1, + reportError(lineNumber, 0, QString::fromUtf8("invalid qmldir directive contains too many tokens")); continue; } else if (sectionCount == 0) { @@ -137,18 +137,18 @@ bool QmlDirParser::parse(const QString &source) } else if (sections[0] == QLatin1String("module")) { if (sectionCount != 2) { - reportError(lineNumber, -1, - QString::fromUtf8("module directive requires one argument, but %1 were provided").arg(sectionCount - 1)); + reportError(lineNumber, 0, + QString::fromUtf8("module identifier directive requires one argument, but %1 were provided").arg(sectionCount - 1)); continue; } if (!_typeNamespace.isEmpty()) { - reportError(lineNumber, -1, - QString::fromUtf8("only one module directive may be defined in a qmldir file")); + reportError(lineNumber, 0, + QString::fromUtf8("only one module identifier directive may be defined in a qmldir file")); continue; } if (!firstLine) { - reportError(lineNumber, -1, - QString::fromUtf8("module directive must be the first directive in a qmldir file")); + reportError(lineNumber, 0, + QString::fromUtf8("module identifier directive must be the first command in a qmldir file")); continue; } @@ -156,7 +156,7 @@ bool QmlDirParser::parse(const QString &source) } else if (sections[0] == QLatin1String("plugin")) { if (sectionCount < 2) { - reportError(lineNumber, -1, + reportError(lineNumber, 0, QString::fromUtf8("plugin directive requires one or two arguments, but %1 were provided").arg(sectionCount - 1)); continue; @@ -168,7 +168,7 @@ bool QmlDirParser::parse(const QString &source) } else if (sections[0] == QLatin1String("internal")) { if (sectionCount != 3) { - reportError(lineNumber, -1, + reportError(lineNumber, 0, QString::fromUtf8("internal types require 2 arguments, but %1 were provided").arg(sectionCount - 1)); continue; } @@ -177,7 +177,7 @@ bool QmlDirParser::parse(const QString &source) _components.insertMulti(entry.typeName, entry); } else if (sections[0] == QLatin1String("typeinfo")) { if (sectionCount != 2) { - reportError(lineNumber, -1, + reportError(lineNumber, 0, QString::fromUtf8("typeinfo requires 1 argument, but %1 were provided").arg(sectionCount - 1)); continue; } @@ -195,9 +195,9 @@ bool QmlDirParser::parse(const QString &source) const int dotIndex = version.indexOf(QLatin1Char('.')); if (dotIndex == -1) { - reportError(lineNumber, -1, QLatin1String("expected '.'")); + reportError(lineNumber, 0, QLatin1String("expected '.'")); } else if (version.indexOf(QLatin1Char('.'), dotIndex + 1) != -1) { - reportError(lineNumber, -1, QLatin1String("unexpected '.'")); + reportError(lineNumber, 0, QLatin1String("unexpected '.'")); } else { bool validVersionNumber = false; const int majorVersion = parseInt(QStringRef(&version, 0, dotIndex), &validVersionNumber); @@ -220,7 +220,7 @@ bool QmlDirParser::parse(const QString &source) } } } else { - reportError(lineNumber, -1, + reportError(lineNumber, 0, QString::fromUtf8("a component declaration requires two or three arguments, but %1 were provided").arg(sectionCount)); } @@ -230,7 +230,7 @@ bool QmlDirParser::parse(const QString &source) return hasError(); } -void QmlDirParser::reportError(int line, int column, const QString &description) +void QmlDirParser::reportError(quint16 line, quint16 column, const QString &description) { QmlError error; error.setLine(line); diff --git a/src/libs/qmljs/parser/qmldirparser_p.h b/src/libs/qmljs/parser/qmldirparser_p.h index 5943b737a7..c768e9947c 100644 --- a/src/libs/qmljs/parser/qmldirparser_p.h +++ b/src/libs/qmljs/parser/qmldirparser_p.h @@ -128,7 +128,7 @@ public: #endif private: - void reportError(int line, int column, const QString &message); + void reportError(quint16 line, quint16 column, const QString &message); private: QList<QmlError> _errors; diff --git a/src/libs/qmljs/parser/qmlerror.cpp b/src/libs/qmljs/parser/qmlerror.cpp index 60d3d22b54..b6bf3bf63f 100644 --- a/src/libs/qmljs/parser/qmlerror.cpp +++ b/src/libs/qmljs/parser/qmlerror.cpp @@ -28,6 +28,7 @@ ****************************************************************************/ #include "qmlerror.h" +#include "qmlglobal_p.h" #include <QtCore/qdebug.h> #include <QtCore/qfile.h> @@ -69,12 +70,12 @@ public: QUrl url; QString description; - int line; - int column; + quint16 line; + quint16 column; }; QmlErrorPrivate::QmlErrorPrivate() -: line(-1), column(-1) +: line(0), column(0) { } @@ -114,7 +115,7 @@ QmlError &QmlError::operator=(const QmlError &other) } /*! - \internal + \internal */ QmlError::~QmlError() { @@ -170,7 +171,7 @@ void QmlError::setDescription(const QString &description) */ int QmlError::line() const { - if (d) return d->line; + if (d) return qmlSourceCoordinate(d->line); else return -1; } @@ -180,7 +181,7 @@ int QmlError::line() const void QmlError::setLine(int line) { if (!d) d = new QmlErrorPrivate; - d->line = line; + d->line = qmlSourceCoordinate(line); } /*! @@ -188,7 +189,7 @@ void QmlError::setLine(int line) */ int QmlError::column() const { - if (d) return d->column; + if (d) return qmlSourceCoordinate(d->column); else return -1; } @@ -198,7 +199,7 @@ int QmlError::column() const void QmlError::setColumn(int column) { if (!d) d = new QmlErrorPrivate; - d->column = column; + d->column = qmlSourceCoordinate(column); } /*! @@ -207,14 +208,20 @@ void QmlError::setColumn(int column) QString QmlError::toString() const { QString rv; - if (url().isEmpty()) { + + QUrl u(url()); + int l(line()); + + if (u.isEmpty()) { rv = QLatin1String("<Unknown File>"); - } else if (line() != -1) { - rv = url().toString() + QLatin1Char(':') + QString::number(line()); - if (column() != -1) - rv += QLatin1Char(':') + QString::number(column()); + } else if (l != -1) { + rv = u.toString() + QLatin1Char(':') + QString::number(l); + + int c(column()); + if (c != -1) + rv += QLatin1Char(':') + QString::number(c); } else { - rv = url().toString(); + rv = u.toString(); } rv += QLatin1String(": ") + description(); @@ -251,9 +258,9 @@ QDebug operator<<(QDebug debug, const QmlError &error) const QString &line = lines.at(error.line() - 1); debug << "\n " << qPrintable(line); - if (error.column() > 0) { + if(error.column() > 0) { int column = qMax(0, error.column() - 1); - column = qMin(column, line.length()); + column = qMin(column, line.length()); QByteArray ind; ind.reserve(column); diff --git a/src/libs/qmljs/parser/qmljs.g b/src/libs/qmljs/parser/qmljs.g index 0f9ba47af3..87dd912603 100644 --- a/src/libs/qmljs/parser/qmljs.g +++ b/src/libs/qmljs/parser/qmljs.g @@ -1,37 +1,29 @@ ------------------------------------------------------------------------------ +---------------------------------------------------------------------------- -- -- Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). -- Contact: http://www.qt-project.org/legal -- --- This file is part of Qt Creator. --- --- Commercial License Usage --- Licensees holding valid commercial Qt licenses may use this file in --- accordance with the commercial license agreement provided with the --- Software or, alternatively, in accordance with the terms contained in --- a written agreement between you and Digia. For licensing terms and --- conditions see http://qt.digia.com/licensing. For further information --- use the contact form at http://qt.digia.com/contact-us. +-- This file is part of the QtQml module of the Qt Toolkit. -- +-- $QT_BEGIN_LICENSE:LGPL-ONLY$ -- GNU Lesser General Public License Usage --- Alternatively, this file may be used under the terms of the GNU Lesser +-- 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, Digia gives you certain additional --- rights. These rights are described in the Digia 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 +-- us via http://www.qt-project.org/. -- ------------------------------------------------------------------------------ - - +-- $QT_END_LICENSE$ +-- +---------------------------------------------------------------------------- %parser QmlJSGrammar %decl qmljsparser_p.h -%impl qdeclarativejsparser.cpp +%impl qmljsparser.cpp %expect 2 %expect-rr 2 @@ -68,6 +60,7 @@ %token T_RESERVED_WORD "reserved word" %token T_MULTILINE_STRING_LITERAL "multiline string literal" %token T_COMMENT "comment" +%token T_COMPATIBILITY_SEMICOLON --- context keywords. %token T_PUBLIC "public" @@ -96,8 +89,9 @@ ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** -** This file is part of Qt Creator. +** This file is part of the QtQml module of the Qt Toolkit. ** +** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the @@ -118,10 +112,20 @@ ** rights. These rights are described in the Digia Qt LGPL Exception ** version 1.1, 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. +** +** +** $QT_END_LICENSE$ +** ****************************************************************************/ - -#include <QtCore/QDebug> +#include <QtCore/QtDebug> #include <QtCore/QCoreApplication> #include <string.h> @@ -138,8 +142,9 @@ ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** -** This file is part of Qt Creator. +** This file is part of the QtQml module of the Qt Toolkit. ** +** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the @@ -160,10 +165,20 @@ ** rights. These rights are described in the Digia Qt LGPL Exception ** version 1.1, 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. +** +** +** $QT_END_LICENSE$ +** ****************************************************************************/ - // // W A R N I N G // ------------- @@ -176,8 +191,15 @@ // // +// 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 // #ifndef QMLJSPARSER_P_H @@ -369,8 +391,15 @@ protected: #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; @@ -2411,6 +2440,7 @@ case $rule_number: { IterationStatement: T_DO Statement T_WHILE T_LPAREN Expression T_RPAREN T_AUTOMATIC_SEMICOLON ; -- automatic semicolon +IterationStatement: T_DO Statement T_WHILE T_LPAREN Expression T_RPAREN T_COMPATIBILITY_SEMICOLON ; -- for JSC/V8 compatibility IterationStatement: T_DO Statement T_WHILE T_LPAREN Expression T_RPAREN T_SEMICOLON ; /. case $rule_number: { @@ -2875,7 +2905,8 @@ PropertyNameAndValueListOpt: PropertyNameAndValueList ; 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; @@ -2887,7 +2918,7 @@ PropertyNameAndValueListOpt: PropertyNameAndValueList ; yylloc.startColumn += yylloc.length; yylloc.length = 0; - //const QString msg = qApp->translate("QQmlParser", "Missing `;'"); + //const QString msg = qApp->translate("QmlParser", "Missing `;'"); //diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Warning, yylloc, msg)); first_token = &token_buffer[0]; @@ -2917,9 +2948,9 @@ PropertyNameAndValueListOpt: PropertyNameAndValueList ; QString msg; int token = token_buffer[0].token; if (token < 0 || token >= TERMINAL_COUNT) - msg = qApp->translate("QQmlParser", "Syntax error"); + msg = qApp->translate("QmlParser", "Syntax error"); else - msg = qApp->translate("QQmlParser", "Unexpected token `%1'").arg(QLatin1String(spell[token])); + msg = qApp->translate("QmlParser", "Unexpected token `%1'").arg(QLatin1String(spell[token])); diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, token_buffer[0].loc, msg)); action = errorState; @@ -2947,7 +2978,7 @@ PropertyNameAndValueListOpt: PropertyNameAndValueList ; for (int *tk = tokens; *tk != EOF_SYMBOL; ++tk) { int a = t_action(errorState, *tk); if (a > 0 && t_action(a, yytoken)) { - const QString msg = qApp->translate("QQmlParser", "Expected token `%1'").arg(QLatin1String(spell[*tk])); + const QString msg = qApp->translate("QmlParser", "Expected token `%1'").arg(QLatin1String(spell[*tk])); diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, token_buffer[0].loc, msg)); yytoken = *tk; @@ -2971,7 +3002,7 @@ PropertyNameAndValueListOpt: PropertyNameAndValueList ; int a = t_action(errorState, tk); if (a > 0 && t_action(a, yytoken)) { - const QString msg = qApp->translate("QQmlParser", "Expected token `%1'").arg(QLatin1String(spell[tk])); + const QString msg = qApp->translate("QmlParser", "Expected token `%1'").arg(QLatin1String(spell[tk])); diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, token_buffer[0].loc, msg)); yytoken = tk; @@ -2984,7 +3015,7 @@ PropertyNameAndValueListOpt: PropertyNameAndValueList ; } } - const QString msg = qApp->translate("QQmlParser", "Syntax error"); + const QString msg = qApp->translate("QmlParser", "Syntax error"); diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, token_buffer[0].loc, msg)); } diff --git a/src/libs/qmljs/parser/qmljsengine_p.cpp b/src/libs/qmljs/parser/qmljsengine_p.cpp index 3638ef2ff3..d7d2189770 100644 --- a/src/libs/qmljs/parser/qmljsengine_p.cpp +++ b/src/libs/qmljs/parser/qmljsengine_p.cpp @@ -110,7 +110,7 @@ double integerFromString(const QString &str, int radix) Engine::Engine() - : _lexer(0), _directives(0) + : _lexer(0), directives(0) { } Engine::~Engine() diff --git a/src/libs/qmljs/parser/qmljsgrammar.cpp b/src/libs/qmljs/parser/qmljsgrammar.cpp index ca4c657b2e..1477181ae0 100644 --- a/src/libs/qmljs/parser/qmljsgrammar.cpp +++ b/src/libs/qmljs/parser/qmljsgrammar.cpp @@ -41,46 +41,46 @@ const char *const QmlJSGrammar::spell [] = { "||", "+", "+=", "++", "?", "}", "]", "%", "%=", "return", ")", ";", 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", "on", 0, 0, 0, 0, 0, 0, 0, - 0, 0}; + "^=", "null", "true", "false", "const", "debugger", "reserved word", "multiline string literal", "comment", 0, + "public", "import", "as", "on", 0, 0, 0, 0, 0, 0, + 0, 0, 0}; const short QmlJSGrammar::lhs [] = { - 102, 102, 102, 102, 102, 102, 103, 109, 109, 112, - 112, 114, 113, 113, 113, 113, 113, 113, 113, 113, - 116, 111, 110, 119, 119, 120, 120, 121, 121, 118, - 107, 107, 107, 107, 123, 123, 123, 123, 123, 123, - 123, 107, 131, 131, 131, 132, 132, 133, 133, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 117, 117, 117, 117, - 117, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 122, - 138, 138, 138, 138, 137, 137, 140, 140, 142, 142, - 142, 142, 142, 142, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 144, 144, 115, 115, 115, - 115, 115, 147, 147, 148, 148, 148, 148, 146, 146, - 149, 149, 150, 150, 151, 151, 151, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 153, 153, 153, - 153, 154, 154, 154, 155, 155, 155, 155, 156, 156, - 156, 156, 156, 156, 156, 157, 157, 157, 157, 157, - 157, 158, 158, 158, 158, 158, 159, 159, 159, 159, - 159, 160, 160, 161, 161, 162, 162, 163, 163, 164, - 164, 165, 165, 166, 166, 167, 167, 168, 168, 169, - 169, 170, 170, 171, 171, 141, 141, 172, 172, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 105, 105, 174, 174, 175, 175, 176, 176, 104, - 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 104, 124, 185, 185, 184, 184, 135, - 135, 186, 186, 187, 187, 189, 189, 188, 190, 193, - 191, 191, 194, 192, 192, 125, 126, 126, 127, 127, - 177, 177, 177, 177, 177, 177, 177, 178, 178, 178, - 178, 179, 179, 179, 179, 180, 180, 128, 129, 195, - 195, 198, 198, 196, 196, 199, 197, 181, 181, 181, - 182, 182, 130, 130, 130, 200, 201, 183, 183, 134, - 145, 205, 205, 202, 202, 203, 203, 206, 108, 108, - 207, 207, 106, 106, 204, 204, 139, 139, 208}; + 103, 103, 103, 103, 103, 103, 104, 110, 110, 113, + 113, 115, 114, 114, 114, 114, 114, 114, 114, 114, + 117, 112, 111, 120, 120, 121, 121, 122, 122, 119, + 108, 108, 108, 108, 124, 124, 124, 124, 124, 124, + 124, 108, 132, 132, 132, 133, 133, 134, 134, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 118, 118, 118, 118, + 118, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 123, + 139, 139, 139, 139, 138, 138, 141, 141, 143, 143, + 143, 143, 143, 143, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 145, 145, 116, 116, 116, + 116, 116, 148, 148, 149, 149, 149, 149, 147, 147, + 150, 150, 151, 151, 152, 152, 152, 153, 153, 153, + 153, 153, 153, 153, 153, 153, 153, 154, 154, 154, + 154, 155, 155, 155, 156, 156, 156, 156, 157, 157, + 157, 157, 157, 157, 157, 158, 158, 158, 158, 158, + 158, 159, 159, 159, 159, 159, 160, 160, 160, 160, + 160, 161, 161, 162, 162, 163, 163, 164, 164, 165, + 165, 166, 166, 167, 167, 168, 168, 169, 169, 170, + 170, 171, 171, 172, 172, 142, 142, 173, 173, 174, + 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, + 174, 106, 106, 175, 175, 176, 176, 177, 177, 105, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 125, 186, 186, 185, 185, 136, + 136, 187, 187, 188, 188, 190, 190, 189, 191, 194, + 192, 192, 195, 193, 193, 126, 127, 127, 128, 128, + 178, 178, 178, 178, 178, 178, 178, 178, 179, 179, + 179, 179, 180, 180, 180, 180, 181, 181, 129, 130, + 196, 196, 199, 199, 197, 197, 200, 198, 182, 182, + 182, 183, 183, 131, 131, 131, 201, 202, 184, 184, + 135, 146, 206, 206, 203, 203, 204, 204, 207, 109, + 109, 208, 208, 107, 107, 205, 205, 140, 140, 209}; const short QmlJSGrammar::rhs [] = { 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, @@ -112,18 +112,18 @@ const short QmlJSGrammar::rhs [] = { 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, 1, - 1, 2, 1, 1, 0, 1, 0, 1, 2}; + 7, 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, + 1, 1, 2, 1, 1, 0, 1, 0, 1, 2}; const short QmlJSGrammar::action_default [] = { 0, 0, 22, 0, 0, 0, 22, 0, 175, 242, 206, 214, 210, 154, 226, 202, 3, 139, 73, 155, 218, 222, 143, 172, 153, 158, 138, 192, 179, 0, - 80, 81, 76, 345, 67, 347, 0, 0, 0, 0, + 80, 81, 76, 346, 67, 348, 0, 0, 0, 0, 78, 0, 0, 74, 77, 71, 0, 0, 68, 70, 69, 79, 72, 0, 75, 0, 0, 168, 0, 0, 155, 174, 157, 156, 0, 0, 0, 170, 171, 169, @@ -138,347 +138,348 @@ const short QmlJSGrammar::action_default [] = { 0, 239, 232, 230, 237, 238, 236, 235, 241, 234, 233, 231, 240, 227, 0, 215, 0, 0, 219, 0, 0, 223, 0, 0, 149, 141, 0, 140, 0, 145, - 159, 0, 346, 334, 335, 0, 332, 0, 333, 0, - 336, 250, 257, 256, 264, 252, 0, 253, 337, 0, - 344, 254, 255, 260, 258, 341, 338, 343, 261, 0, - 272, 0, 0, 0, 0, 345, 67, 0, 347, 68, + 159, 0, 347, 335, 336, 0, 333, 0, 334, 0, + 337, 250, 257, 256, 264, 252, 0, 253, 338, 0, + 345, 254, 255, 260, 258, 342, 339, 344, 261, 0, + 272, 0, 0, 0, 0, 346, 67, 0, 348, 68, 244, 286, 69, 0, 0, 0, 273, 0, 0, 262, - 263, 0, 251, 259, 287, 288, 331, 342, 0, 302, - 303, 304, 305, 0, 298, 299, 300, 301, 328, 329, - 0, 0, 0, 0, 0, 291, 292, 248, 246, 208, - 216, 212, 228, 204, 249, 0, 155, 220, 224, 197, - 186, 0, 0, 205, 0, 0, 0, 0, 198, 0, - 0, 0, 0, 0, 190, 188, 191, 189, 187, 200, - 199, 201, 0, 213, 0, 209, 0, 247, 155, 0, - 229, 244, 245, 0, 244, 0, 0, 294, 0, 0, - 0, 296, 0, 217, 0, 0, 221, 0, 0, 225, - 284, 0, 276, 285, 279, 0, 283, 0, 244, 277, - 0, 244, 0, 0, 295, 0, 0, 0, 297, 346, - 334, 0, 0, 336, 0, 330, 0, 320, 0, 0, - 0, 290, 0, 289, 0, 348, 0, 104, 266, 269, - 0, 105, 272, 108, 133, 110, 111, 76, 115, 116, - 67, 117, 120, 74, 77, 68, 244, 69, 79, 123, - 72, 125, 75, 127, 128, 273, 130, 131, 135, 0, - 97, 0, 0, 99, 103, 101, 88, 100, 102, 0, - 98, 87, 267, 265, 143, 144, 149, 0, 142, 0, - 319, 0, 306, 307, 0, 318, 0, 0, 0, 309, - 314, 312, 315, 0, 0, 313, 314, 0, 310, 0, - 311, 268, 317, 0, 268, 316, 0, 321, 322, 0, - 268, 323, 324, 0, 0, 325, 0, 0, 0, 326, - 327, 161, 160, 0, 0, 0, 293, 0, 0, 0, - 308, 281, 274, 0, 282, 278, 0, 280, 270, 0, - 271, 275, 91, 0, 0, 95, 82, 0, 84, 93, - 0, 85, 94, 96, 86, 92, 83, 0, 89, 165, - 163, 167, 164, 162, 166, 339, 6, 340, 4, 2, - 65, 90, 0, 0, 68, 70, 69, 31, 5, 0, - 66, 0, 45, 44, 43, 0, 0, 58, 0, 59, - 35, 36, 37, 38, 40, 41, 62, 39, 0, 45, - 0, 0, 0, 0, 0, 54, 0, 55, 0, 0, - 26, 0, 0, 63, 27, 0, 30, 28, 24, 0, - 29, 25, 0, 56, 0, 57, 143, 0, 60, 64, - 0, 0, 0, 0, 61, 0, 52, 46, 53, 47, - 0, 0, 0, 0, 49, 0, 50, 51, 48, 0, - 0, 143, 268, 0, 0, 42, 105, 272, 108, 133, - 110, 111, 76, 115, 116, 67, 117, 120, 74, 77, - 68, 244, 69, 79, 123, 72, 125, 75, 127, 128, - 273, 130, 131, 135, 0, 32, 33, 0, 34, 8, - 0, 10, 0, 9, 0, 1, 21, 12, 0, 13, - 0, 14, 0, 19, 20, 0, 15, 16, 0, 17, - 18, 11, 23, 7, 349}; + 263, 0, 251, 259, 287, 288, 332, 343, 0, 303, + 304, 305, 306, 0, 299, 300, 301, 302, 329, 330, + 0, 0, 0, 0, 0, 291, 292, 293, 248, 246, + 208, 216, 212, 228, 204, 249, 0, 155, 220, 224, + 197, 186, 0, 0, 205, 0, 0, 0, 0, 198, + 0, 0, 0, 0, 0, 190, 188, 191, 189, 187, + 200, 199, 201, 0, 213, 0, 209, 0, 247, 155, + 0, 229, 244, 245, 0, 244, 0, 0, 295, 0, + 0, 0, 297, 0, 217, 0, 0, 221, 0, 0, + 225, 284, 0, 276, 285, 279, 0, 283, 0, 244, + 277, 0, 244, 0, 0, 296, 0, 0, 0, 298, + 347, 335, 0, 0, 337, 0, 331, 0, 321, 0, + 0, 0, 290, 0, 289, 0, 349, 0, 104, 266, + 269, 0, 105, 272, 108, 133, 110, 111, 76, 115, + 116, 67, 117, 120, 74, 77, 68, 244, 69, 79, + 123, 72, 125, 75, 127, 128, 273, 130, 131, 135, + 0, 97, 0, 0, 99, 103, 101, 88, 100, 102, + 0, 98, 87, 267, 265, 143, 144, 149, 0, 142, + 0, 320, 0, 307, 308, 0, 319, 0, 0, 0, + 310, 315, 313, 316, 0, 0, 314, 315, 0, 311, + 0, 312, 268, 318, 0, 268, 317, 0, 322, 323, + 0, 268, 324, 325, 0, 0, 326, 0, 0, 0, + 327, 328, 161, 160, 0, 0, 0, 294, 0, 0, + 0, 309, 281, 274, 0, 282, 278, 0, 280, 270, + 0, 271, 275, 91, 0, 0, 95, 82, 0, 84, + 93, 0, 85, 94, 96, 86, 92, 83, 0, 89, + 165, 163, 167, 164, 162, 166, 340, 6, 341, 4, + 2, 65, 90, 0, 0, 68, 70, 69, 31, 5, + 0, 66, 0, 45, 44, 43, 0, 0, 58, 0, + 59, 35, 36, 37, 38, 40, 41, 62, 39, 0, + 45, 0, 0, 0, 0, 0, 54, 0, 55, 0, + 0, 26, 0, 0, 63, 27, 0, 30, 28, 24, + 0, 29, 25, 0, 56, 0, 57, 143, 0, 60, + 64, 0, 0, 0, 0, 61, 0, 52, 46, 53, + 47, 0, 0, 0, 0, 49, 0, 50, 51, 48, + 0, 0, 143, 268, 0, 0, 42, 105, 272, 108, + 133, 110, 111, 76, 115, 116, 67, 117, 120, 74, + 77, 68, 244, 69, 79, 123, 72, 125, 75, 127, + 128, 273, 130, 131, 135, 0, 32, 33, 0, 34, + 8, 0, 10, 0, 9, 0, 1, 21, 12, 0, + 13, 0, 14, 0, 19, 20, 0, 15, 16, 0, + 17, 18, 11, 23, 7, 350}; const short QmlJSGrammar::goto_default [] = { - 7, 625, 207, 196, 205, 508, 496, 624, 643, 495, - 623, 621, 626, 22, 622, 18, 507, 549, 539, 546, - 541, 526, 191, 195, 197, 201, 233, 208, 230, 530, - 570, 569, 200, 232, 26, 474, 473, 356, 355, 9, - 354, 357, 107, 17, 145, 24, 13, 144, 19, 25, - 57, 23, 8, 28, 27, 269, 15, 263, 10, 259, - 12, 261, 11, 260, 20, 267, 21, 268, 14, 262, - 258, 299, 411, 264, 265, 202, 193, 192, 204, 203, - 229, 194, 360, 359, 231, 463, 462, 321, 322, 465, - 324, 464, 323, 419, 423, 426, 422, 421, 441, 442, + 7, 626, 207, 196, 205, 509, 497, 625, 644, 496, + 624, 622, 627, 22, 623, 18, 508, 550, 540, 547, + 542, 527, 191, 195, 197, 201, 233, 208, 230, 531, + 571, 570, 200, 232, 26, 475, 474, 357, 356, 9, + 355, 358, 107, 17, 145, 24, 13, 144, 19, 25, + 57, 23, 8, 28, 27, 270, 15, 264, 10, 260, + 12, 262, 11, 261, 20, 268, 21, 269, 14, 263, + 259, 300, 412, 265, 266, 202, 193, 192, 204, 203, + 229, 194, 361, 360, 231, 464, 463, 322, 323, 466, + 325, 465, 324, 420, 424, 427, 423, 422, 442, 443, 185, 199, 181, 184, 198, 206, 0}; const short QmlJSGrammar::action_index [] = { - 404, 1275, 2411, 2411, 2509, 1000, 68, 92, 90, -102, - 88, 62, 60, 256, -102, 298, 86, -102, -102, 638, - 83, 134, 172, 219, -102, -102, -102, 454, 194, 1275, - -102, -102, -102, 381, -102, 2215, 1555, 1275, 1275, 1275, - -102, 790, 1275, -102, -102, -102, 1275, 1275, -102, -102, - -102, -102, -102, 1275, -102, 1275, 1275, -102, 1275, 1275, - 102, 217, -102, -102, 1275, 1275, 1275, -102, -102, -102, - 204, 1275, 304, 1275, 1275, 1275, 1275, 539, 1275, 1275, - 1275, 1275, 1275, 1275, 308, 1275, 1275, 1275, 103, 131, - 135, 308, 210, 225, 216, 308, 444, 390, 434, 1275, - 82, 1275, 100, 2117, 1275, 1275, -102, -102, -102, -102, - -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, - -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, - -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, - 139, 1275, -102, -102, 91, 10, -102, 1275, -102, -102, - 1275, -102, -102, -102, -102, -102, -102, -102, -102, -102, - -102, -102, -102, -102, 1275, 26, 1275, 1275, 69, 66, - 1275, -102, 2117, 1275, 1275, -102, 97, -102, 44, -102, - -102, 67, -102, 297, 78, 24, -102, 291, -102, 36, - 2411, -102, -102, -102, -102, -102, 234, -102, -102, 12, - -102, -102, -102, -102, -102, -102, 2411, -102, -102, 464, - -102, 461, 115, 2509, 42, 381, 58, 46, 2705, 70, - 1275, -102, 74, 57, 1275, 65, -102, 59, 61, -102, - -102, 367, -102, -102, -102, -102, -102, -102, 106, -102, - -102, -102, -102, 87, -102, -102, -102, -102, -102, -102, - 56, 55, 1275, 99, 84, -102, -102, 1461, -102, 75, - 48, 52, -102, 306, 72, 53, 579, 77, 110, 370, - 230, 381, 1275, 286, 1275, 1275, 1275, 1275, 380, 1275, - 1275, 1275, 1275, 1275, 184, 169, 166, 190, 198, 460, - 363, 353, 1275, 50, 1275, 63, 1275, -102, 638, 1275, - -102, 1275, 64, 39, 1275, 30, 2509, -102, 1275, 173, - 2509, -102, 1275, 79, 1275, 1275, 81, 80, 1275, -102, - 71, 149, 32, -102, -102, 1275, -102, 381, 1275, -102, - 73, 1275, 76, 2509, -102, 1275, 142, 2509, -102, -16, - 381, -42, -12, 2411, -39, -102, 2509, -102, 1275, 154, - 2509, 14, 2509, -102, 20, 16, -32, -102, -102, 2509, - -51, 519, -4, 511, 136, 1275, 2509, -2, -35, 395, - -1, -27, 908, 4, 6, -102, 1370, -102, 0, -36, - 27, 1275, 47, 22, 1275, 45, 1275, 21, 17, 1275, - -102, 2313, 144, -102, -102, -102, -102, -102, -102, 1275, - -102, -102, -102, -102, 274, -102, 1275, -21, -102, 2509, - -102, 138, -102, -102, 2509, -102, 1275, 132, 5, -102, - 40, -102, 41, 101, 1275, -102, 38, 34, -102, -38, - -102, 2509, -102, 105, 2509, -102, 245, -102, -102, 96, - 2509, 11, -102, -7, -11, -102, 352, 8, 18, -102, - -102, -102, -102, 1275, 129, 2509, -102, 1275, 130, 2509, - -102, 49, -102, 226, -102, -102, 1275, -102, -102, 362, - -102, -102, -102, 107, 1837, -102, -102, 1649, -102, -102, - 1743, -102, -102, -102, -102, -102, -102, 114, -102, -102, - -102, -102, -102, -102, -102, -102, -102, 2411, -102, -102, - -102, 94, 9, 818, 189, -10, 31, -102, -102, 223, - -102, 191, -102, -102, -102, 300, 178, -102, 1928, -102, - -102, -102, -102, -102, -102, -102, -102, -102, 257, -25, - 381, 195, -22, 305, 240, -102, -6, -102, 818, 127, - -102, -18, 818, -102, -102, 1184, -102, -102, -102, 1092, - -102, -102, 237, -102, 1928, -102, 294, -8, -102, -102, - 176, 381, 19, 1928, -102, 165, -102, 174, -102, 2, - -52, 381, 183, 381, -102, 117, -102, -102, -102, 2019, - 880, 285, 2607, 1555, 3, -102, 522, 35, 453, 108, - 1275, 2509, 51, 23, 475, 54, -17, 700, 7, 43, - -102, 1370, -102, 28, -3, 33, 1275, 37, 15, 1275, - 25, 1275, 1, 13, 124, -102, -102, 29, -102, -102, - 728, -102, 250, -43, 627, -102, -102, 231, 372, -102, - 222, -102, 111, -102, -102, 381, -102, -102, 104, -102, - -102, -102, -102, -102, -102, + 425, 1471, 2619, 2619, 2718, 1193, 69, 100, 86, -103, + 97, 62, 60, 236, -103, 278, 93, -103, -103, 609, + 83, 117, 266, 184, -103, -103, -103, 514, 179, 1471, + -103, -103, -103, 392, -103, 2421, 1754, 1471, 1471, 1471, + -103, 1001, 1471, -103, -103, -103, 1471, 1471, -103, -103, + -103, -103, -103, 1471, -103, 1471, 1471, -103, 1471, 1471, + 115, 169, -103, -103, 1471, 1471, 1471, -103, -103, -103, + 152, 1471, 286, 1471, 1471, 1471, 1471, 562, 1471, 1471, + 1471, 1471, 1471, 1471, 198, 1471, 1471, 1471, 87, 122, + 138, 212, 197, 183, 227, 265, 562, 504, 472, 1471, + 79, 1471, 102, 2322, 1471, 1471, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + 132, 1471, -103, -103, 94, 11, -103, 1471, -103, -103, + 1471, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, 1471, 31, 1471, 1471, 67, 68, + 1471, -103, 2322, 1471, 1471, -103, 98, -103, 39, -103, + -103, 61, -103, 296, 66, 30, -103, 376, -103, 35, + 2619, -103, -103, -103, -103, -103, 237, -103, -103, 21, + -103, -103, -103, -103, -103, -103, 2619, -103, -103, 513, + -103, 541, 114, 2718, 36, 422, 59, 42, 2916, 75, + 1471, -103, 77, 53, 1471, 63, -103, 57, 58, -103, + -103, 407, -103, -103, -103, -103, -103, -103, 80, -103, + -103, -103, -103, 82, -103, -103, -103, -103, -103, -103, + 52, 51, 1471, 96, 200, -103, -103, -103, 1659, -103, + 76, 44, 46, -103, 298, 73, 48, 736, 78, 95, + 363, 233, 347, 1471, 303, 1471, 1471, 1471, 1471, 402, + 1471, 1471, 1471, 1471, 1471, 248, 189, 159, 167, 174, + 482, 482, 444, 1471, 7, 1471, 64, 1471, -103, 627, + 1471, -103, 1471, 65, 34, 1471, 54, 2718, -103, 1471, + 140, 2718, -103, 1471, 74, 1471, 1471, 81, 84, 1471, + -103, 71, 116, 33, -103, -103, 1471, -103, 313, 1471, + -103, 70, 1471, 72, 2718, -103, 1471, 234, 2718, -103, + -16, 324, -42, -12, 2619, -39, -103, 2718, -103, 1471, + 151, 2718, 12, 2718, -103, 20, 16, -32, -103, -103, + 2718, -52, 521, -2, 505, 129, 1471, 2718, -5, -35, + 497, 2, -24, 819, 6, 3, -103, 1567, -103, -1, + -36, 26, 1471, 47, 22, 1471, 45, 1471, 17, 15, + 1471, -103, 2520, 49, -103, -103, -103, -103, -103, -103, + 1471, -103, -103, -103, -103, 322, -103, 1471, -25, -103, + 2718, -103, 118, -103, -103, 2718, -103, 1471, 112, 8, + -103, 40, -103, 41, 106, 1471, -103, 38, 32, -103, + -38, -103, 2718, -103, 104, 2718, -103, 247, -103, -103, + 99, 2718, -6, -103, -10, -18, -103, 387, 10, 9, + -103, -103, -103, -103, 1471, 125, 2718, -103, 1471, 127, + 2718, -103, -13, -103, 187, -103, -103, 1471, -103, -103, + 398, -103, -103, -103, 110, 2039, -103, -103, 1849, -103, + -103, 1944, -103, -103, -103, -103, -103, -103, 105, -103, + -103, -103, -103, -103, -103, -103, -103, -103, 2619, -103, + -103, -103, 113, -7, 1009, 145, -8, 19, -103, -103, + 186, -103, 178, -103, -103, -103, 356, 226, -103, 2131, + -103, -103, -103, -103, -103, -103, -103, -103, -103, 322, + -26, 364, 205, 43, 316, 206, -103, -3, -103, 1009, + 107, -103, -11, 827, -103, -103, 1379, -103, -103, -103, + 1286, -103, -103, 195, -103, 2131, -103, 305, -4, -103, + -103, 209, 379, 18, 2131, -103, 182, -103, 199, -103, + 0, -53, 306, 154, 284, -103, 108, -103, -103, -103, + 2223, 918, 300, 2817, 1754, 5, -103, 549, 139, 636, + 114, 1471, 2718, 50, 24, 463, 55, -17, 910, 23, + 56, -103, 1567, -103, 27, 1, 29, 1471, 37, 14, + 1471, 25, 1471, 4, 13, 126, -103, -103, 28, -103, + -103, 1100, -103, 267, -41, 714, -103, -103, 121, 301, + -103, 215, -103, 91, -103, -103, 336, -103, -103, 89, + -103, -103, -103, -103, -103, -103, - -107, 9, -103, 2, 5, 266, 1, -107, -107, -107, - -107, -107, -107, -107, -107, -107, -107, -107, -107, -39, - -107, -107, -107, -107, -107, -107, -107, -107, -107, 86, - -107, -107, -107, 8, -107, -107, -22, 19, 71, 174, - -107, 186, 171, -107, -107, -107, 184, 178, -107, -107, - -107, -107, -107, 144, -107, 124, 150, -107, 165, 161, - -107, -107, -107, -107, 156, 160, 157, -107, -107, -107, - -107, 147, -107, 142, 135, 179, 166, -107, 177, 170, - 117, 72, 134, 92, -107, 75, 94, 66, -107, -107, - -107, -107, -107, -107, -107, -107, -107, -107, -107, 181, - -107, 106, -107, 143, 78, 55, -107, -107, -107, -107, + -107, 12, -95, 3, 6, 275, 2, -107, -107, -107, + -107, -107, -107, -107, -107, -107, -107, -107, -107, -37, + -107, -107, -107, -107, -107, -107, -107, -107, -107, 96, + -107, -107, -107, 8, -107, -107, -17, 24, 95, 74, + -107, 85, 175, -107, -107, -107, 172, 168, -107, -107, + -107, -107, -107, 169, -107, 165, 164, -107, 156, 176, + -107, -107, -107, -107, 182, 178, 112, -107, -107, -107, + -107, 121, -107, 144, 118, 116, 117, -107, 108, 133, + 134, 137, 143, 152, -107, 147, 141, 136, -107, -107, + -107, -107, -107, -107, -107, -107, -107, -107, -107, 107, + -107, 173, -107, 153, 84, 56, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, - -107, -5, -107, -107, -107, -107, -107, 54, -107, -107, - 51, -107, -107, -107, -107, -107, -107, -107, -107, -107, - -107, -107, -107, -107, 114, -107, 113, 38, -107, -107, - 41, -107, 231, 63, 112, -107, -107, -107, -107, -107, - -107, -107, -107, 30, -107, -107, -107, 52, -107, -107, + -107, 36, -107, -107, -107, -107, -107, 30, -107, -107, + 0, -107, -107, -107, -107, -107, -107, -107, -107, -107, + -107, -107, -107, -107, 79, -107, 99, 44, -107, -107, + 46, -107, 194, 70, 64, -107, -107, -107, -107, -107, + -107, -107, -107, 29, -107, -107, -107, 65, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, - -107, -107, -107, -107, -107, -107, 36, -107, -107, 45, - -107, 42, -107, 40, -107, 80, -107, -107, 77, -107, - 88, -107, -107, -107, 83, 74, -107, -107, -107, -107, - -107, -10, -107, -107, -107, -107, -107, -107, -107, -107, + -107, -107, -107, -107, -107, -107, 80, -107, -107, 51, + -107, 48, -107, 40, -107, 34, -107, -107, 86, -107, + 88, -107, -107, -107, 78, 60, -107, -107, -107, -107, + -107, -6, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, - -107, -107, 23, -107, -107, -107, -107, 100, -107, -107, + -107, -107, 21, -107, -107, -107, -107, -107, 104, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, - -107, 4, 223, -107, 230, 236, 222, 205, -107, 127, - 125, 115, 96, 102, -107, -107, -107, -107, -107, -107, - -107, -107, 234, -107, 215, -107, 199, -107, -107, 197, - -107, 190, -107, -107, 163, -107, 90, -107, 0, -107, - -1, -107, 203, -107, 189, 211, -107, -107, 195, -107, - -107, -107, -107, -107, -107, 191, -107, 98, 119, -107, - -107, 95, -107, 81, -107, 79, -107, 82, -107, -107, - 101, -107, -107, -16, -107, -107, 53, -107, 46, -107, - 57, -107, 59, -107, -107, -107, -107, -107, -107, 35, - -107, 33, -107, 39, -107, 89, 67, -107, -107, 58, - -107, -107, 84, -107, -107, -107, 73, -107, -107, -107, - -107, 65, -107, 43, 93, -107, 109, -107, -107, 49, - -107, 47, -107, -107, -107, -107, -107, -107, -107, 50, - -107, -107, -107, -107, -107, -107, 108, -107, -107, 61, - -107, -107, -107, -107, 62, -107, 68, -107, -107, -107, - -107, -107, -23, -107, 69, -107, -19, -107, -107, -107, - -107, 97, -107, -107, 99, -107, -107, -107, -107, -107, - 60, -61, -107, -107, 34, -107, 37, -107, 29, -107, - -107, -107, -107, 32, -107, 76, -107, 44, -107, 56, - -107, -107, -107, -107, -107, -107, 31, -107, -107, 116, - -107, -107, -107, -107, -6, -107, -107, 70, -107, -107, - 64, -107, -107, -107, -107, -107, -107, -107, -107, -107, - -107, -107, -107, -107, -107, -107, -107, 193, -107, -107, - -107, -107, -107, 7, -107, -107, -107, -107, -107, -107, - -107, -20, -107, -107, -107, -7, -107, -107, 290, -107, + -107, -107, 16, 201, -107, 202, 224, 223, 215, -107, + 67, 73, 75, 59, 106, -107, -107, -107, -107, -107, + -107, -107, -107, 185, -107, 208, -107, 233, -107, -107, + 234, -107, 203, -107, -107, 299, -107, 90, -107, -2, + -107, 11, -107, 181, -107, 200, 192, -107, -107, 189, + -107, -107, -107, -107, -107, -107, 199, -107, 123, 131, + -107, -107, 111, -107, 77, -107, 87, -107, 195, -107, + -107, 110, -107, -107, -50, -107, -107, 39, -107, 42, + -107, 63, -107, 66, -107, -107, -107, -107, -107, -107, + 68, -107, 43, -107, 47, -107, 92, 35, -107, -107, + 31, -107, -107, 105, -107, -107, -107, 94, -107, -107, + -107, -107, 71, -107, 54, 101, -107, 89, -107, -107, + 55, -107, 49, -107, -107, -107, -107, -107, -107, -107, + 38, -107, -107, -107, -107, -107, -107, 114, -107, -107, + 76, -107, -107, -107, -107, 91, -107, 93, -107, -107, + -107, -107, -107, -57, -107, 50, -107, -44, -107, -107, + -107, -107, 98, -107, -107, 97, -107, -107, -107, -107, + -107, 52, -42, -107, -107, 45, -107, 41, -107, 37, + -107, -107, -107, -107, 57, -107, 53, -107, 58, -107, + 62, -107, -107, -107, -107, -107, -107, 9, -107, -107, + 187, -107, -107, -107, -107, 33, -107, -107, 139, -107, + -107, 32, -107, -107, -107, -107, -107, -107, -107, -107, + -107, -107, -107, -107, -107, -107, -107, -107, 82, -107, + -107, -107, -107, -107, -11, -107, -107, -107, -107, -107, + -107, -107, -25, -107, -107, -107, -9, -107, -107, 297, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, - -2, -25, -107, -15, -107, -107, -107, -107, 172, -107, - -107, -107, 287, -107, -107, 288, -107, -107, -107, 291, - -107, -107, -107, -107, 336, -107, -107, 20, -107, -107, - 15, 3, -107, 304, -107, -107, -107, 24, -107, -107, - -107, 28, 21, 26, -107, -107, -107, -107, -107, 320, - 104, -107, 13, 381, -3, -107, 6, -107, 10, -107, - 167, 22, -107, -107, 12, -107, -107, 87, -107, -107, - -107, 25, -107, -107, -107, -107, 11, -107, 14, 85, - -107, 121, -107, -107, -107, -107, -107, 27, -107, -107, - 17, -107, -107, 18, 91, -107, -107, -107, 16, -107, - -107, -107, -107, -107, -107, -4, -107, -107, -107, -107, - -107, -107, -107, -107, -107}; + -107, -3, -26, -107, -10, -107, -107, -107, -107, 160, + -107, -107, -107, 120, -107, -107, 279, -107, -107, -107, + 285, -107, -107, -107, -107, 329, -107, -107, 17, -107, + -107, -13, 14, -107, 385, -107, -107, -107, 23, -107, + -107, -107, 28, 18, 20, -107, -107, -107, -107, -107, + 313, 188, -107, 26, 267, 7, -107, 5, -107, -1, + -107, 69, 19, -107, -107, 10, -107, -107, 103, -107, + -107, -107, 27, -107, -107, -107, -107, 15, -107, -5, + 61, -107, 81, -107, -107, -107, -107, -107, 13, -107, + -107, 25, -107, -107, 22, 119, -107, -107, -107, 4, + -107, -107, -107, -107, -107, -107, -15, -107, -107, -107, + -107, -107, -107, -107, -107, -107}; const short QmlJSGrammar::action_info [] = { - 416, 257, 533, -132, 403, -113, 346, -102, 575, 348, - 572, -121, 531, -103, -121, 545, 345, 430, 342, 348, - 340, 343, 440, 401, 391, 545, 563, 389, 538, 446, - 352, 444, -129, 416, -124, -102, 545, 453, 420, 408, - -124, 431, -132, 424, -126, 424, 424, 620, 440, 457, - -103, 440, -129, 457, -126, 440, 560, 453, -113, 257, - 565, 346, 545, 335, 272, 346, 466, 236, 448, 190, - 149, 164, 141, 170, 99, 511, 272, 409, 257, 312, - 296, 414, 348, 312, 189, 164, 187, 318, 325, 71, - 306, 252, 644, 416, 141, 453, 292, 457, 440, 147, - 304, 71, 443, 183, 179, 141, 0, 141, 0, 172, - 99, 427, 434, 141, 301, 477, 444, 0, 0, 0, - 0, 0, 141, 0, 0, 0, 0, 292, 173, 294, - 58, 294, 542, 251, 331, 542, 333, 141, 141, 101, - 141, 59, 0, 58, 62, 256, 255, 141, 247, 246, - 141, 399, 0, 177, 59, 63, 428, 327, 620, 254, - 314, 101, 141, 478, 315, 640, 639, 242, 241, 249, - 248, 58, 634, 633, 488, 58, 249, 248, 577, 576, - 615, 141, 59, 543, 166, 518, 59, 172, 167, 455, - 459, 85, 418, 86, 85, 142, 86, 249, 248, 413, - 412, 567, 337, 512, 87, 512, 173, 87, 174, 85, - 328, 86, 512, 0, 350, 85, 64, 86, 529, 85, - 512, 86, 87, 85, 512, 86, 568, 566, 87, 64, - 579, 64, 87, 310, 469, 85, 87, 86, 0, 519, - 517, 85, 141, 86, 554, 0, 172, 536, 87, 514, - 85, 514, 86, 141, 87, 85, 545, 86, 514, 0, - 513, 65, 513, 87, 514, 173, 514, 66, 87, 513, - 514, 103, 172, 0, 65, 513, 65, 513, 0, 0, - 66, 513, 66, 637, 636, 0, 0, 470, 468, 172, - 104, 173, 105, 406, 0, 235, 234, 630, 555, 553, - 172, 537, 535, 0, 274, 275, 438, 437, 173, 172, - 406, 631, 629, 635, 0, 580, 73, 74, -90, 173, - 34, 174, 73, 74, 274, 275, 34, -90, 173, 34, - 174, 276, 277, 85, 34, 86, 0, 0, 0, 0, - 0, 628, 0, 75, 76, 0, 87, 0, 0, 75, - 76, 276, 277, 0, 0, 0, 0, 48, 50, 49, - 0, 0, 0, 48, 50, 49, 48, 50, 49, 0, - 0, 48, 50, 49, 0, 0, 279, 280, 0, 0, - 0, 34, 0, 45, 0, 281, 279, 280, 282, 45, - 283, 34, 45, 279, 280, 281, 34, 45, 282, 0, - 283, 34, 281, 279, 280, 282, 0, 283, 0, 0, - 34, 0, 281, 78, 79, 282, 0, 283, 48, 50, - 49, 80, 81, 0, 34, 82, 0, 83, 48, 50, - 49, -345, 0, 48, 50, 49, 0, 0, 48, 50, - 49, 0, 0, 0, 45, 0, 0, 48, 50, 49, - 0, 0, 0, 0, 45, 0, 0, 78, 79, 45, - 0, 48, 50, 49, 45, 80, 81, 78, 79, 82, - 0, 83, 0, 45, 0, 80, 81, 78, 79, 82, - 0, 83, 34, 279, 280, 80, 81, 45, 0, 82, - 34, 83, 281, 34, 0, 282, 0, 283, 6, 5, - 4, 1, 3, 2, 34, 0, 0, 0, 0, 0, - 0, -345, 0, 0, 245, 244, 0, 0, 0, 48, - 50, 49, 245, 244, 0, 240, 239, 48, 50, 49, - 48, 50, 49, 0, 0, 0, 0, 0, 0, 0, - 34, 48, 50, 49, 0, 45, 0, 0, 34, 0, - 0, 34, 0, 45, 0, 0, 45, 0, 0, 0, - 0, 0, 78, 79, 0, 0, 0, 45, 0, 0, - 80, 81, 245, 244, 82, 0, 83, 48, 50, 49, - 240, 239, 151, 240, 239, 48, 50, 49, 48, 50, - 49, 0, 152, 0, 0, 0, 153, 0, 0, 0, - 0, 0, 0, 45, 0, 154, 0, 155, 0, 0, - 308, 45, 0, 0, 45, 0, 0, 0, 156, 0, - 157, 62, 0, 0, 0, 0, 0, 0, 158, 0, - 0, 159, 63, 0, 0, 0, 0, 160, 0, 30, - 31, 151, 0, 161, 0, 0, 0, 0, 0, 33, - 0, 152, 0, 0, 0, 153, 34, 0, 0, 162, - 35, 36, 0, 37, 154, 0, 155, 0, 0, 0, - 503, 0, 0, 0, 44, 0, 0, 156, 0, 157, - 62, 0, 0, 0, 0, 0, 0, 158, 0, 0, - 159, 63, 51, 48, 50, 49, 160, 52, 0, 0, - 0, 0, 161, 0, 0, 0, 0, 0, 43, 54, - 32, 0, 30, 31, 40, 0, 0, 0, 162, 45, - 0, 0, 33, 0, 0, 0, 0, 0, 0, 34, - 0, 0, 0, 35, 36, 0, 37, 0, 0, 0, - 30, 31, 0, 41, 0, 0, 0, 44, 0, 0, - 33, 0, 0, 0, 0, 0, 0, 34, 0, 0, - 0, 35, 36, 0, 37, 51, 48, 50, 49, 0, - 52, 503, 0, 0, 0, 44, 0, 0, 0, 0, - 0, 43, 54, 32, 0, 0, 0, 40, 0, 0, - 0, 0, 45, 51, 48, 50, 49, 0, 52, 0, - 0, 0, 30, 31, 0, 0, 0, 0, 0, 43, - 54, 32, 33, 0, 0, 40, 0, 0, 0, 34, - 45, 0, 0, 35, 36, 0, 37, 0, 0, 0, - 30, 31, 0, 41, 0, 0, 0, 44, 0, 0, - 33, 0, 0, 0, 0, 0, 0, 34, 0, 0, - 0, 35, 36, 0, 37, 51, 48, 50, 49, 0, - 52, 503, 0, 0, 0, 44, 0, 0, 0, 0, - 0, 43, 54, 32, 0, 0, 0, 40, 0, 0, - 0, 0, 45, 51, 48, 50, 49, 0, 52, 0, - 0, 0, 30, 31, 0, 0, 0, 0, 0, 43, - 54, 32, 33, 0, 0, 40, 0, 0, 0, 34, - 45, 0, 0, 35, 36, 0, 37, 0, 0, 0, - 30, 31, 0, 503, 0, 0, 0, 44, 0, 0, - 33, 0, 0, 0, 0, 0, 0, 34, 0, 0, - 0, 35, 36, 0, 37, 51, 48, 50, 49, 0, - 52, 41, 0, 0, 0, 44, 0, 0, 0, 0, - 0, 43, 54, 32, 0, 0, 0, 40, 0, 0, - 0, 0, 45, 51, 48, 50, 49, 0, 52, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, - 54, 32, 0, 0, 0, 40, 0, 0, 0, 0, - 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 502, 0, 30, 31, 0, 0, 0, 0, 0, 0, - 0, 0, 215, 0, 0, 0, 0, 0, 0, 34, - 0, 0, 0, 35, 36, 0, 37, 0, 0, 0, - 0, 0, 0, 503, 0, 0, 0, 44, 0, 0, + 417, 258, -113, 404, 467, -132, -102, 576, 573, 347, + -103, 532, 349, -121, 445, 441, 346, 431, 343, 349, + 341, 344, 546, 402, 392, 564, 447, 390, 353, 546, + -121, 539, -129, -124, -102, 409, -124, 417, 546, 432, + 454, 421, 441, 425, -126, 425, 425, 441, 566, 458, + 621, 458, -129, 454, -126, 441, 400, -113, 561, 512, + 258, 546, 347, -103, 336, 273, 347, 534, 190, 164, + 449, 149, 258, 141, 187, 170, 236, 273, 349, 99, + 313, 297, 410, 313, 415, 164, 295, 252, 326, 417, + 189, 319, 293, 454, 458, 305, 441, 183, 71, 179, + 645, 141, 147, 71, 141, 444, 141, 0, 0, 302, + 99, 435, 141, 141, 307, 543, 428, 0, 478, 445, + 141, 0, 293, 0, 328, 295, 58, 58, 172, 251, + 0, 332, 334, 141, 543, 141, 172, 59, 59, 101, + 141, 242, 241, 247, 246, 315, -132, 173, 141, 316, + 641, 640, 635, 634, 177, 173, 254, 62, 101, 141, + 621, 429, 58, 544, 64, 489, 479, 166, 63, 578, + 577, 167, 419, 59, 530, 249, 248, 329, 58, 414, + 413, 64, 616, 513, 85, 456, 86, 460, 142, 59, + 249, 248, 85, 580, 86, 470, 64, 87, 0, 85, + 311, 86, 555, 0, 85, 87, 86, 513, 85, 65, + 86, 351, 87, 537, 85, 66, 86, 87, 568, 546, + 515, 87, 85, 85, 86, 86, 65, 87, 513, 515, + 0, 514, 66, 519, 513, 87, 87, 85, 513, 86, + 514, 65, 141, 569, 567, 141, 0, 66, 471, 469, + 87, 103, 85, 515, 86, 141, 556, 554, 85, 0, + 86, 257, 255, 0, 514, 87, 0, 538, 536, 0, + 104, 87, 105, 85, 515, 86, 638, 637, 0, 581, + 515, 172, 0, 0, 515, 514, 87, 520, 518, 256, + 85, 514, 86, 0, 338, 514, 73, 74, 235, 234, + 173, 0, 174, 87, 73, 74, 0, 636, 439, 438, + 0, 0, 0, 34, 631, 172, 275, 276, 0, 0, + 172, 275, 276, 75, 76, 34, 0, 0, 632, 630, + 34, 75, 76, -90, 173, 34, 174, 172, -90, 173, + 0, 174, 34, 277, 278, 34, 0, 0, 277, 278, + 48, 50, 49, 34, 0, 0, 173, 0, 407, 629, + 0, 0, 48, 50, 49, 34, 0, 48, 50, 49, + 0, 0, 48, 50, 49, 0, 34, 45, 0, 48, + 50, 49, 48, 50, 49, 34, 280, 281, 0, 45, + 48, 50, 49, 34, 45, 282, 0, 0, 283, 45, + 284, 0, 48, 50, 49, 34, 45, 0, 34, 45, + 0, 0, 0, 48, 50, 49, 34, 45, 0, 0, + 0, 34, 48, 50, 49, 280, 281, 34, 0, 45, + 48, 50, 49, 0, 282, 0, 34, 283, 0, 284, + 45, 0, 48, 50, 49, 48, 50, 49, 0, 45, + 0, 34, 0, 48, 50, 49, 0, 45, 48, 50, + 49, 0, 0, 0, 48, 50, 49, 280, 281, 45, + 0, 0, 45, 48, 50, 49, 282, 0, 0, 283, + 45, 284, 0, 0, 0, 45, 0, 0, 48, 50, + 49, 45, 34, 0, 0, 78, 79, 0, 0, -346, + 45, 0, 0, 80, 81, 280, 281, 82, 0, 83, + 0, 0, 0, 0, 282, 45, 0, 283, 0, 284, + 6, 5, 4, 1, 3, 2, 34, 78, 79, 48, + 50, 49, 0, -346, 34, 80, 81, 78, 79, 82, + 0, 83, 34, 0, 0, 80, 81, 0, 0, 82, + 34, 83, 0, 0, 0, 0, 45, 0, 0, 0, + 0, 0, 0, 48, 50, 49, 245, 244, 0, 0, + 34, 48, 50, 49, 240, 239, 0, 0, 34, 48, + 50, 49, 240, 239, 0, 78, 79, 48, 50, 49, + 45, 0, 0, 80, 81, 0, 0, 82, 45, 83, + 0, 0, 245, 244, 0, 0, 45, 48, 50, 49, + 240, 239, 151, 0, 45, 48, 50, 49, 0, 0, + 0, 0, 152, 0, 0, 0, 153, 0, 0, 0, + 151, 0, 0, 0, 45, 154, 0, 155, 0, 0, + 152, 0, 45, 0, 153, 0, 0, 0, 156, 0, + 157, 62, 0, 154, 0, 155, 0, 0, 158, 0, + 0, 159, 63, 0, 0, 34, 156, 160, 157, 62, + 0, 0, 0, 161, 0, 0, 158, 0, 0, 159, + 63, 0, 0, 0, 0, 160, 0, 0, 0, 162, + 0, 161, 0, 0, 0, 0, 0, 245, 244, 0, + 0, 0, 48, 50, 49, 0, 0, 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 51, 504, 506, 505, 0, - 52, 0, 0, 0, 0, 226, 0, 0, 0, 0, - 0, 43, 54, 32, 210, 0, 0, 40, 0, 0, - 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 502, 0, 30, 31, 0, 0, 0, 0, - 0, 0, 0, 0, 215, 0, 0, 0, 0, 0, - 0, 34, 0, 0, 0, 35, 36, 0, 37, 0, - 0, 0, 0, 0, 0, 503, 0, 0, 0, 44, - 0, 0, 0, 0, 0, 0, 0, 550, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 51, 504, 506, - 505, 0, 52, 0, 0, 0, 0, 226, 0, 0, - 0, 0, 0, 43, 54, 32, 210, 0, 0, 40, - 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 502, 0, 30, 31, 0, 0, - 0, 0, 0, 0, 0, 0, 215, 0, 0, 0, - 0, 0, 0, 34, 0, 0, 0, 35, 36, 0, - 37, 0, 0, 0, 0, 0, 0, 503, 0, 0, - 0, 44, 0, 0, 0, 0, 0, 0, 0, 547, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, - 504, 506, 505, 0, 52, 0, 0, 0, 0, 226, - 0, 0, 0, 0, 0, 43, 54, 32, 210, 0, - 0, 40, 0, 0, 0, 0, 45, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 29, 30, 31, 0, - 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, - 0, 0, 0, 0, 34, 0, 0, 0, 35, 36, - 0, 37, 0, 0, 0, 38, 0, 39, 41, 42, - 0, 0, 44, 0, 0, 0, 46, 0, 47, 0, + 0, 0, 0, 0, 0, 0, 30, 31, 0, 45, + 0, 0, 0, 0, 0, 0, 33, 0, 0, 151, + 0, 0, 0, 34, 0, 0, 0, 35, 36, 152, + 37, 0, 0, 153, 0, 0, 0, 504, 0, 0, + 0, 44, 154, 0, 155, 0, 0, 309, 0, 0, + 0, 0, 0, 0, 0, 156, 0, 157, 62, 51, + 48, 50, 49, 0, 52, 158, 0, 0, 159, 63, + 0, 0, 0, 0, 160, 43, 54, 32, 0, 0, + 161, 40, 0, 0, 0, 0, 0, 45, 0, 0, + 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 51, 48, 50, 49, 0, 52, 0, 53, 0, 55, - 0, 56, 0, 0, 0, 0, 43, 54, 32, 0, - 0, 0, 40, 0, 0, 0, 0, 45, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -122, 0, 0, - 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, + 0, 30, 31, 0, 0, 0, 0, 0, 0, 30, + 31, 33, 0, 0, 0, 0, 0, 0, 34, 33, + 0, 0, 35, 36, 0, 37, 34, 0, 0, 0, + 35, 36, 41, 37, 0, 0, 44, 0, 0, 0, + 504, 0, 0, 0, 44, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 51, 48, 50, 49, 0, 52, + 0, 0, 51, 48, 50, 49, 0, 52, 0, 0, + 43, 54, 32, 0, 0, 0, 40, 0, 43, 54, + 32, 0, 45, 0, 40, 0, 0, 0, 0, 0, + 45, 0, 30, 31, 0, 0, 0, 0, 0, 0, + 30, 31, 33, 0, 0, 0, 0, 0, 0, 34, + 33, 0, 0, 35, 36, 0, 37, 34, 0, 0, + 0, 35, 36, 41, 37, 0, 0, 44, 0, 0, + 0, 504, 0, 0, 0, 44, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 51, 48, 50, 49, 0, + 52, 0, 0, 51, 48, 50, 49, 0, 52, 0, + 0, 43, 54, 32, 0, 0, 0, 40, 0, 43, + 54, 32, 0, 45, 0, 40, 0, 0, 0, 0, + 0, 45, 0, 30, 31, 0, 0, 0, 0, 0, + 0, 30, 31, 33, 0, 0, 0, 0, 0, 0, + 34, 33, 0, 0, 35, 36, 0, 37, 34, 0, + 0, 0, 35, 36, 41, 37, 0, 0, 44, 0, + 0, 0, 504, 0, 0, 0, 44, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 51, 48, 50, 49, + 0, 52, 0, 0, 51, 48, 50, 49, 0, 52, + 0, 0, 43, 54, 32, 0, 0, 0, 40, 0, + 43, 54, 32, 0, 45, 0, 40, 0, 0, 0, + 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 35, 36, 0, 37, 0, 0, 0, - 38, 0, 39, 41, 42, 0, 0, 44, 0, 0, - 0, 46, 0, 47, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 504, 0, 0, 0, 44, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 48, 50, 49, 0, - 52, 0, 53, 0, 55, 0, 56, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 54, 32, 0, 0, 0, 40, 0, 0, + 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 503, 0, 30, 31, 0, 0, 0, + 0, 0, 0, 0, 0, 215, 0, 0, 0, 0, + 0, 0, 34, 0, 0, 0, 35, 36, 0, 37, + 0, 0, 0, 0, 0, 0, 504, 0, 0, 0, + 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 51, 505, + 507, 506, 0, 52, 0, 0, 0, 0, 226, 0, + 0, 0, 0, 0, 43, 54, 32, 210, 0, 0, + 40, 0, 0, 0, 0, 0, 45, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 503, 0, 30, 31, + 0, 0, 0, 0, 0, 0, 0, 0, 215, 0, + 0, 0, 0, 0, 0, 34, 0, 0, 0, 35, + 36, 0, 37, 0, 0, 0, 0, 0, 0, 504, + 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, + 0, 551, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 51, 505, 507, 506, 0, 52, 0, 0, 0, + 0, 226, 0, 0, 0, 0, 0, 43, 54, 32, + 210, 0, 0, 40, 0, 0, 0, 0, 0, 45, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 503, + 0, 30, 31, 0, 0, 0, 0, 0, 0, 0, + 0, 215, 0, 0, 0, 0, 0, 0, 34, 0, + 0, 0, 35, 36, 0, 37, 0, 0, 0, 0, + 0, 0, 504, 0, 0, 0, 44, 0, 0, 0, + 0, 0, 0, 0, 548, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 51, 505, 507, 506, 0, 52, + 0, 0, 0, 0, 226, 0, 0, 0, 0, 0, + 43, 54, 32, 210, 0, 0, 40, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, @@ -486,351 +487,392 @@ const short QmlJSGrammar::action_info [] = { 0, 38, 0, 39, 41, 42, 0, 0, 44, 0, 0, 0, 46, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 48, 50, 49, - 0, 52, 0, 53, 0, 55, 271, 56, 0, 0, + 0, 52, 0, 53, 0, 55, 0, 56, 0, 0, 0, 0, 43, 54, 32, 0, 0, 0, 40, 0, - 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 475, 0, 0, 29, 30, 31, 0, - 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, - 0, 0, 0, 0, 34, 0, 0, 0, 35, 36, - 0, 37, 0, 0, 0, 38, 0, 39, 41, 42, - 0, 0, 44, 0, 0, 0, 46, 0, 47, 0, - 0, 476, 0, 0, 0, 0, 0, 0, 0, 0, - 51, 48, 50, 49, 0, 52, 0, 53, 0, 55, - 0, 56, 0, 0, 0, 0, 43, 54, 32, 0, - 0, 0, 40, 0, 0, 0, 0, 45, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 475, 0, 0, - 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, - 0, 33, 0, 0, 0, 0, 0, 0, 34, 0, - 0, 0, 35, 36, 0, 37, 0, 0, 0, 38, - 0, 39, 41, 42, 0, 0, 44, 0, 0, 0, - 46, 0, 47, 0, 0, 481, 0, 0, 0, 0, - 0, 0, 0, 0, 51, 48, 50, 49, 0, 52, - 0, 53, 0, 55, 0, 56, 0, 0, 0, 0, - 43, 54, 32, 0, 0, 0, 40, 0, 0, 0, - 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 483, 0, 0, 29, 30, 31, 0, 0, 0, - 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 35, 36, 0, 37, - 0, 0, 0, 38, 0, 39, 41, 42, 0, 0, - 44, 0, 0, 0, 46, 0, 47, 0, 0, 484, - 0, 0, 0, 0, 0, 0, 0, 0, 51, 48, - 50, 49, 0, 52, 0, 53, 0, 55, 0, 56, - 0, 0, 0, 0, 43, 54, 32, 0, 0, 0, - 40, 0, 0, 0, 0, 45, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 483, 0, 0, 29, 30, + 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -122, 0, 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 35, 36, 0, 37, 0, 0, 0, 38, 0, 39, 41, 42, 0, 0, 44, 0, 0, 0, 46, 0, - 47, 0, 0, 486, 0, 0, 0, 0, 0, 0, + 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 48, 50, 49, 0, 52, 0, 53, 0, 55, 0, 56, 0, 0, 0, 0, 43, 54, - 32, 0, 0, 0, 40, 0, 0, 0, 0, 45, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, - 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, - 33, 0, 0, 0, 0, 0, 0, 34, 217, 0, - 0, 218, 36, 0, 37, 0, 0, 0, 38, 0, - 39, 41, 42, 0, 0, 44, 0, 0, 0, 46, - 0, 47, 0, 0, 0, 0, 0, 0, 0, 221, - 0, 0, 0, 51, 48, 50, 49, 223, 52, 0, - 53, 225, 55, 0, 56, 0, 228, 0, 0, 43, - 54, 32, 0, 0, 0, 40, 0, 0, 0, 0, + 32, 0, 0, 0, 40, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, - 0, 33, 0, 0, 0, 0, 0, 0, 34, 217, - 0, 0, 582, 583, 0, 37, 0, 0, 0, 38, + 0, 33, 0, 0, 0, 0, 0, 0, 34, 0, + 0, 0, 35, 36, 0, 37, 0, 0, 0, 38, 0, 39, 41, 42, 0, 0, 44, 0, 0, 0, 46, 0, 47, 0, 0, 0, 0, 0, 0, 0, - 221, 0, 0, 0, 51, 48, 50, 49, 223, 52, - 0, 53, 225, 55, 0, 56, 0, 228, 0, 0, + 0, 0, 0, 0, 51, 48, 50, 49, 0, 52, + 0, 53, 0, 55, 272, 56, 0, 0, 0, 0, 43, 54, 32, 0, 0, 0, 40, 0, 0, 0, - 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 109, 110, 111, 0, 0, 113, 115, 116, 0, - 0, 117, 0, 118, 0, 0, 0, 120, 121, 122, - 0, 0, 0, 0, 0, 0, 34, 123, 124, 125, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, - 0, 0, 0, 48, 50, 49, 130, 131, 132, 0, - 134, 135, 136, 137, 138, 139, 0, 0, 127, 133, - 119, 112, 114, 128, 0, 0, 0, 0, 0, 45, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, - 110, 111, 0, 0, 113, 115, 116, 0, 0, 117, - 0, 118, 0, 0, 0, 120, 121, 122, 0, 0, - 0, 0, 0, 0, 393, 123, 124, 125, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 126, 0, - 0, 0, 394, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, - 398, 395, 397, 0, 130, 131, 132, 0, 134, 135, - 136, 137, 138, 139, 0, 0, 127, 133, 119, 112, - 114, 128, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 109, 110, 111, - 0, 0, 113, 115, 116, 0, 0, 117, 0, 118, - 0, 0, 0, 120, 121, 122, 0, 0, 0, 0, - 0, 0, 393, 123, 124, 125, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 126, 0, 0, 0, - 394, 0, 0, 0, 0, 0, 0, 0, 396, 0, - 0, 0, 129, 0, 0, 0, 0, 0, 398, 395, - 397, 0, 130, 131, 132, 0, 134, 135, 136, 137, - 138, 139, 0, 0, 127, 133, 119, 112, 114, 128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 209, 0, 0, 0, 0, - 211, 0, 29, 30, 31, 213, 0, 0, 0, 0, - 0, 0, 214, 215, 0, 0, 0, 0, 0, 0, - 216, 217, 0, 0, 218, 36, 0, 37, 0, 0, + 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 476, 0, 0, 29, 30, 31, 0, 0, + 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, + 0, 0, 0, 34, 0, 0, 0, 35, 36, 0, + 37, 0, 0, 0, 38, 0, 39, 41, 42, 0, + 0, 44, 0, 0, 0, 46, 0, 47, 0, 0, + 477, 0, 0, 0, 0, 0, 0, 0, 0, 51, + 48, 50, 49, 0, 52, 0, 53, 0, 55, 0, + 56, 0, 0, 0, 0, 43, 54, 32, 0, 0, + 0, 40, 0, 0, 0, 0, 0, 45, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 476, 0, 0, + 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, + 0, 33, 0, 0, 0, 0, 0, 0, 34, 0, + 0, 0, 35, 36, 0, 37, 0, 0, 0, 38, + 0, 39, 41, 42, 0, 0, 44, 0, 0, 0, + 46, 0, 47, 0, 0, 482, 0, 0, 0, 0, + 0, 0, 0, 0, 51, 48, 50, 49, 0, 52, + 0, 53, 0, 55, 0, 56, 0, 0, 0, 0, + 43, 54, 32, 0, 0, 0, 40, 0, 0, 0, + 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 484, 0, 0, 29, 30, 31, 0, 0, + 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, + 0, 0, 0, 34, 0, 0, 0, 35, 36, 0, + 37, 0, 0, 0, 38, 0, 39, 41, 42, 0, + 0, 44, 0, 0, 0, 46, 0, 47, 0, 0, + 485, 0, 0, 0, 0, 0, 0, 0, 0, 51, + 48, 50, 49, 0, 52, 0, 53, 0, 55, 0, + 56, 0, 0, 0, 0, 43, 54, 32, 0, 0, + 0, 40, 0, 0, 0, 0, 0, 45, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 484, 0, 0, + 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, + 0, 33, 0, 0, 0, 0, 0, 0, 34, 0, + 0, 0, 35, 36, 0, 37, 0, 0, 0, 38, + 0, 39, 41, 42, 0, 0, 44, 0, 0, 0, + 46, 0, 47, 0, 0, 487, 0, 0, 0, 0, + 0, 0, 0, 0, 51, 48, 50, 49, 0, 52, + 0, 53, 0, 55, 0, 56, 0, 0, 0, 0, + 43, 54, 32, 0, 0, 0, 40, 0, 0, 0, + 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, + 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, + 34, 217, 0, 0, 218, 36, 0, 37, 0, 0, 0, 38, 0, 39, 41, 42, 0, 0, 44, 0, 0, 0, 46, 0, 47, 0, 0, 0, 0, 0, - 220, 0, 221, 0, 0, 0, 51, 219, 222, 49, - 223, 52, 224, 53, 225, 55, 226, 56, 227, 228, - 0, 0, 43, 54, 32, 210, 212, 0, 40, 0, - 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, + 0, 0, 221, 0, 0, 0, 51, 48, 50, 49, + 223, 52, 0, 53, 225, 55, 0, 56, 0, 228, + 0, 0, 43, 54, 32, 0, 0, 0, 40, 0, + 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 29, 30, 31, 0, 0, 0, + 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, + 0, 0, 34, 217, 0, 0, 583, 584, 0, 37, + 0, 0, 0, 38, 0, 39, 41, 42, 0, 0, + 44, 0, 0, 0, 46, 0, 47, 0, 0, 0, + 0, 0, 0, 0, 221, 0, 0, 0, 51, 48, + 50, 49, 223, 52, 0, 53, 225, 55, 0, 56, + 0, 228, 0, 0, 43, 54, 32, 0, 0, 0, + 40, 0, 0, 0, 0, 0, 45, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 109, 110, 111, 0, + 0, 113, 115, 116, 0, 0, 117, 0, 118, 0, + 0, 0, 120, 121, 122, 0, 0, 0, 0, 0, + 0, 34, 123, 124, 125, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 126, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 129, 0, 0, 0, 0, 0, 0, 48, 50, + 49, 130, 131, 132, 0, 134, 135, 136, 137, 138, + 139, 0, 0, 127, 133, 119, 112, 114, 128, 0, + 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 109, 110, 111, 0, 0, + 113, 115, 116, 0, 0, 117, 0, 118, 0, 0, + 0, 120, 121, 122, 0, 0, 0, 0, 0, 0, + 394, 123, 124, 125, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 126, 0, 0, 0, 395, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 129, 0, 0, 0, 0, 0, 399, 396, 398, 0, + 130, 131, 132, 0, 134, 135, 136, 137, 138, 139, + 0, 0, 127, 133, 119, 112, 114, 128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 110, 111, 0, 0, 113, + 115, 116, 0, 0, 117, 0, 118, 0, 0, 0, + 120, 121, 122, 0, 0, 0, 0, 0, 0, 394, + 123, 124, 125, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 126, 0, 0, 0, 395, 0, 0, + 0, 0, 0, 0, 0, 397, 0, 0, 0, 129, + 0, 0, 0, 0, 0, 399, 396, 398, 0, 130, + 131, 132, 0, 134, 135, 136, 137, 138, 139, 0, + 0, 127, 133, 119, 112, 114, 128, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, 0, 0, 0, 211, 0, 29, 30, 31, 213, 0, 0, 0, 0, 0, 0, - 214, 33, 0, 0, 0, 0, 0, 0, 216, 217, + 214, 215, 0, 0, 0, 0, 0, 0, 216, 217, 0, 0, 218, 36, 0, 37, 0, 0, 0, 38, 0, 39, 41, 42, 0, 0, 44, 0, 0, 0, 46, 0, 47, 0, 0, 0, 0, 0, 220, 0, 221, 0, 0, 0, 51, 219, 222, 49, 223, 52, 224, 53, 225, 55, 226, 56, 227, 228, 0, 0, 43, 54, 32, 210, 212, 0, 40, 0, 0, 0, + 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 209, 0, 0, 0, 0, 211, 0, 29, + 30, 31, 213, 0, 0, 0, 0, 0, 0, 214, + 33, 0, 0, 0, 0, 0, 0, 216, 217, 0, + 0, 218, 36, 0, 37, 0, 0, 0, 38, 0, + 39, 41, 42, 0, 0, 44, 0, 0, 0, 46, + 0, 47, 0, 0, 0, 0, 0, 220, 0, 221, + 0, 0, 0, 51, 219, 222, 49, 223, 52, 224, + 53, 225, 55, 226, 56, 227, 228, 0, 0, 43, + 54, 32, 210, 212, 0, 40, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 586, 110, 111, 0, 0, 588, 115, 590, 30, - 31, 591, 0, 118, 0, 0, 0, 120, 593, 594, - 0, 0, 0, 0, 0, 0, 595, 596, 124, 125, + 0, 587, 110, 111, 0, 0, 589, 115, 591, 30, + 31, 592, 0, 118, 0, 0, 0, 120, 594, 595, + 0, 0, 0, 0, 0, 0, 596, 597, 124, 125, 218, 36, 0, 37, 0, 0, 0, 38, 0, 39, - 597, 42, 0, 0, 599, 0, 0, 0, 46, 0, - 47, 0, 0, 0, 0, 0, 601, 0, 221, 0, - 0, 0, 603, 600, 602, 49, 604, 605, 606, 53, - 608, 609, 610, 611, 612, 613, 0, 0, 598, 607, - 592, 587, 589, 128, 40, 0, 0, 0, 0, 45, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 361, - 110, 111, 0, 0, 363, 115, 365, 30, 31, 366, - 0, 118, 0, 0, 0, 120, 368, 369, 0, 0, - 0, 0, 0, 0, 370, 371, 124, 125, 218, 36, - 0, 37, 0, 0, 0, 38, 0, 39, 372, 42, - 0, 0, 374, 0, 0, 0, 46, 0, 47, 0, - -268, 0, 0, 0, 376, 0, 221, 0, 0, 0, - 378, 375, 377, 49, 379, 380, 381, 53, 383, 384, - 385, 386, 387, 388, 0, 0, 373, 382, 367, 362, - 364, 128, 40, 0, 0, 0, 0, 45, 0, 0, - 0, 0, 0, 0, 0, 0, 0, + 598, 42, 0, 0, 600, 0, 0, 0, 46, 0, + 47, 0, 0, 0, 0, 0, 602, 0, 221, 0, + 0, 0, 604, 601, 603, 49, 605, 606, 607, 53, + 609, 610, 611, 612, 613, 614, 0, 0, 599, 608, + 593, 588, 590, 128, 40, 0, 0, 0, 0, 0, + 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 362, 110, 111, 0, 0, 364, 115, 366, 30, 31, + 367, 0, 118, 0, 0, 0, 120, 369, 370, 0, + 0, 0, 0, 0, 0, 371, 372, 124, 125, 218, + 36, 0, 37, 0, 0, 0, 38, 0, 39, 373, + 42, 0, 0, 375, 0, 0, 0, 46, 0, 47, + 0, -268, 0, 0, 0, 377, 0, 221, 0, 0, + 0, 379, 376, 378, 49, 380, 381, 382, 53, 384, + 385, 386, 387, 388, 389, 0, 0, 374, 383, 368, + 363, 365, 128, 40, 0, 0, 0, 0, 0, 45, + 0, 0, 0, 0, 0, 0, 0, 0, 0, - 534, 311, 497, 309, 532, 461, 498, 499, 516, 515, - 619, 638, 16, 552, 436, 358, 616, 472, 562, 320, - 528, 238, 487, 182, 250, 243, 253, 182, 302, 641, - 627, 632, 150, 485, 143, 454, 439, 402, 445, 559, - 237, 574, 250, 578, 561, 186, 618, 458, 238, 349, - 573, 449, 447, 571, 243, 347, 450, 243, 460, 351, - 238, 353, 358, 410, 415, 439, 176, 188, 436, 250, - 467, 417, 433, 182, 425, 429, 302, 169, 456, 358, - 171, 140, 336, 334, 338, 344, 436, 392, 390, 400, - 163, 302, 307, 148, 146, 339, 439, 404, 302, 358, - 404, 358, 0, 482, 501, 480, 0, 642, 0, 479, - 0, 0, 0, 320, 60, 0, 186, 501, 90, 60, - 60, 489, 302, 60, 617, 93, 0, 88, 0, 405, - 0, 461, 405, 60, 60, 451, 180, 60, 0, 180, - 60, 60, 60, 451, 60, 95, 89, 146, 266, 287, - 60, 146, 407, 270, 60, 288, 178, 60, 106, 452, - 0, 60, 60, 60, 102, 60, 302, 332, 286, 60, - 92, 452, 60, 60, 451, 60, 165, 168, 285, 432, - 284, 435, 60, 60, 108, 501, 329, 94, 540, 96, - 60, 330, 60, 302, 494, 60, 77, 237, 60, 404, - 452, 341, 471, 72, 60, 60, 67, 69, 60, 60, - 68, 0, 70, 60, 60, 60, 61, 180, 60, 60, - 98, 491, 60, 91, 490, 60, 60, 60, 493, 60, - 84, 405, 60, 97, 492, 305, 0, 60, 0, 298, - 0, 100, 270, 298, 270, 298, 106, 298, 270, 0, - 270, 60, 270, 60, 316, 0, 270, 0, 270, 298, - 291, 326, 303, 60, 270, 319, 313, 300, 270, 297, - 60, 60, 108, 175, 295, 270, 270, 290, 60, 501, - 273, 317, 60, 270, 60, 278, 509, 270, 0, 270, - 0, 289, 0, 548, 0, 293, 551, 0, 500, 510, - 501, 501, 0, 544, 501, 0, 0, 0, 509, 0, - 0, 509, 520, 521, 522, 523, 527, 524, 525, 0, - 500, 510, 0, 500, 510, 564, 520, 521, 522, 523, - 527, 524, 525, 581, 0, 0, 0, 0, 0, 0, - 584, 585, 520, 521, 522, 523, 527, 524, 525, 556, - 0, 0, 0, 0, 0, 0, 557, 558, 520, 521, - 522, 523, 527, 524, 525, 0, 0, 0, 0, 0, + 639, 310, 529, 533, 516, 535, 517, 499, 500, 462, + 498, 620, 553, 312, 243, 16, 562, 440, 437, 633, + 238, 250, 473, 182, 253, 182, 617, 488, 359, 563, + 303, 321, 619, 642, 150, 575, 560, 250, 628, 163, + 426, 348, 250, 579, 186, 350, 182, 574, 468, 340, + 430, 345, 572, 434, 359, 457, 448, 446, 238, 450, + 455, 459, 243, 243, 461, 352, 238, 451, 354, 148, + 403, 483, 486, 176, 437, 143, 440, 401, 411, 335, + 188, 437, 440, 169, 237, 171, 237, 140, 359, 393, + 337, 303, 308, 416, 391, 146, 418, 303, 405, 359, + 359, 0, 0, 146, 0, 0, 0, 60, 178, 60, + 0, 452, 288, 0, 303, 60, 405, 60, 405, 180, + 285, 60, 60, 60, 491, 186, 286, 60, 287, 60, + 406, 453, 502, 502, 303, 643, 545, 60, 321, 453, + 60, 165, 180, 60, 60, 490, 180, 60, 406, 60, + 406, 452, 267, 146, 60, 60, 60, 271, 408, 289, + 60, 84, 69, 168, 60, 60, 60, 100, 106, 60, + 97, 98, 96, 502, 481, 0, 541, 72, 480, 436, + 433, 60, 60, 333, 60, 60, 91, 92, 90, 60, + 93, 60, 60, 89, 108, 60, 94, 339, 77, 88, + 60, 502, 462, 331, 60, 95, 303, 61, 618, 106, + 342, 330, 60, 60, 453, 452, 60, 60, 494, 495, + 60, 60, 493, 60, 60, 492, 60, 70, 68, 60, + 60, 102, 67, 60, 271, 108, 175, 299, 271, 0, + 299, 0, 271, 0, 314, 271, 294, 299, 60, 60, + 60, 0, 271, 271, 271, 271, 60, 279, 274, 320, + 0, 271, 318, 60, 0, 317, 0, 296, 271, 327, + 292, 60, 60, 472, 0, 304, 271, 271, 291, 290, + 557, 299, 299, 541, 549, 615, 271, 271, 502, 0, + 552, 0, 502, 0, 0, 510, 0, 0, 502, 510, + 0, 0, 303, 298, 301, 510, 473, 501, 511, 0, + 0, 501, 511, 0, 0, 0, 0, 501, 511, 521, + 522, 523, 524, 528, 525, 526, 582, 0, 0, 0, + 0, 0, 0, 585, 586, 521, 522, 523, 524, 528, + 525, 526, 557, 0, 0, 0, 0, 0, 0, 558, + 559, 521, 522, 523, 524, 528, 525, 526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 556, 0, 0, 540, 0, 614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 565, 521, 522, 523, + 524, 528, 525, 526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0}; + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0}; const short QmlJSGrammar::action_check [] = { - 36, 36, 24, 7, 55, 7, 7, 7, 60, 36, - 8, 7, 37, 7, 7, 33, 55, 55, 60, 36, - 36, 33, 33, 55, 8, 33, 7, 7, 34, 36, - 16, 20, 7, 36, 7, 7, 33, 36, 33, 60, - 7, 7, 7, 5, 7, 5, 5, 90, 33, 36, - 7, 33, 7, 36, 7, 33, 66, 36, 7, 36, - 29, 7, 33, 31, 1, 7, 17, 55, 60, 33, - 60, 2, 8, 7, 48, 66, 1, 7, 36, 2, - 8, 7, 36, 2, 60, 2, 8, 7, 17, 1, - 60, 36, 0, 36, 8, 36, 48, 36, 33, 8, - 61, 1, 6, 36, 60, 8, -1, 8, -1, 15, - 48, 10, 7, 8, 61, 8, 20, -1, -1, -1, - -1, -1, 8, -1, -1, -1, -1, 48, 34, 79, - 40, 79, 8, 77, 61, 8, 60, 8, 8, 79, - 8, 51, -1, 40, 42, 61, 62, 8, 61, 62, - 8, 7, -1, 56, 51, 53, 55, 8, 90, 60, - 50, 79, 8, 56, 54, 61, 62, 61, 62, 61, - 62, 40, 61, 62, 60, 40, 61, 62, 61, 62, - 56, 8, 51, 56, 50, 7, 51, 15, 54, 60, - 60, 25, 60, 27, 25, 56, 27, 61, 62, 61, - 62, 36, 60, 29, 38, 29, 34, 38, 36, 25, - 61, 27, 29, -1, 60, 25, 12, 27, 29, 25, - 29, 27, 38, 25, 29, 27, 61, 62, 38, 12, - 7, 12, 38, 60, 8, 25, 38, 27, -1, 61, - 62, 25, 8, 27, 7, -1, 15, 7, 38, 75, - 25, 75, 27, 8, 38, 25, 33, 27, 75, -1, - 86, 57, 86, 38, 75, 34, 75, 63, 38, 86, - 75, 15, 15, -1, 57, 86, 57, 86, -1, -1, - 63, 86, 63, 61, 62, -1, -1, 61, 62, 15, - 34, 34, 36, 36, -1, 61, 62, 47, 61, 62, - 15, 61, 62, -1, 18, 19, 61, 62, 34, 15, - 36, 61, 62, 91, -1, 92, 18, 19, 33, 34, - 29, 36, 18, 19, 18, 19, 29, 33, 34, 29, - 36, 45, 46, 25, 29, 27, -1, -1, -1, -1, - -1, 91, -1, 45, 46, -1, 38, -1, -1, 45, - 46, 45, 46, -1, -1, -1, -1, 66, 67, 68, - -1, -1, -1, 66, 67, 68, 66, 67, 68, -1, - -1, 66, 67, 68, -1, -1, 23, 24, -1, -1, - -1, 29, -1, 92, -1, 32, 23, 24, 35, 92, - 37, 29, 92, 23, 24, 32, 29, 92, 35, -1, - 37, 29, 32, 23, 24, 35, -1, 37, -1, -1, - 29, -1, 32, 23, 24, 35, -1, 37, 66, 67, - 68, 31, 32, -1, 29, 35, -1, 37, 66, 67, - 68, 36, -1, 66, 67, 68, -1, -1, 66, 67, - 68, -1, -1, -1, 92, -1, -1, 66, 67, 68, - -1, -1, -1, -1, 92, -1, -1, 23, 24, 92, - -1, 66, 67, 68, 92, 31, 32, 23, 24, 35, - -1, 37, -1, 92, -1, 31, 32, 23, 24, 35, - -1, 37, 29, 23, 24, 31, 32, 92, -1, 35, - 29, 37, 32, 29, -1, 35, -1, 37, 94, 95, - 96, 97, 98, 99, 29, -1, -1, -1, -1, -1, - -1, 36, -1, -1, 61, 62, -1, -1, -1, 66, - 67, 68, 61, 62, -1, 61, 62, 66, 67, 68, - 66, 67, 68, -1, -1, -1, -1, -1, -1, -1, - 29, 66, 67, 68, -1, 92, -1, -1, 29, -1, - -1, 29, -1, 92, -1, -1, 92, -1, -1, -1, - -1, -1, 23, 24, -1, -1, -1, 92, -1, -1, - 31, 32, 61, 62, 35, -1, 37, 66, 67, 68, - 61, 62, 3, 61, 62, 66, 67, 68, 66, 67, - 68, -1, 13, -1, -1, -1, 17, -1, -1, -1, - -1, -1, -1, 92, -1, 26, -1, 28, -1, -1, - 31, 92, -1, -1, 92, -1, -1, -1, 39, -1, - 41, 42, -1, -1, -1, -1, -1, -1, 49, -1, - -1, 52, 53, -1, -1, -1, -1, 58, -1, 12, - 13, 3, -1, 64, -1, -1, -1, -1, -1, 22, - -1, 13, -1, -1, -1, 17, 29, -1, -1, 80, - 33, 34, -1, 36, 26, -1, 28, -1, -1, -1, - 43, -1, -1, -1, 47, -1, -1, 39, -1, 41, - 42, -1, -1, -1, -1, -1, -1, 49, -1, -1, - 52, 53, 65, 66, 67, 68, 58, 70, -1, -1, - -1, -1, 64, -1, -1, -1, -1, -1, 81, 82, - 83, -1, 12, 13, 87, -1, -1, -1, 80, 92, - -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, - -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, - 12, 13, -1, 43, -1, -1, -1, 47, -1, -1, - 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, - -1, 33, 34, -1, 36, 65, 66, 67, 68, -1, - 70, 43, -1, -1, -1, 47, -1, -1, -1, -1, - -1, 81, 82, 83, -1, -1, -1, 87, -1, -1, - -1, -1, 92, 65, 66, 67, 68, -1, 70, -1, - -1, -1, 12, 13, -1, -1, -1, -1, -1, 81, - 82, 83, 22, -1, -1, 87, -1, -1, -1, 29, - 92, -1, -1, 33, 34, -1, 36, -1, -1, -1, - 12, 13, -1, 43, -1, -1, -1, 47, -1, -1, - 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, - -1, 33, 34, -1, 36, 65, 66, 67, 68, -1, - 70, 43, -1, -1, -1, 47, -1, -1, -1, -1, - -1, 81, 82, 83, -1, -1, -1, 87, -1, -1, - -1, -1, 92, 65, 66, 67, 68, -1, 70, -1, - -1, -1, 12, 13, -1, -1, -1, -1, -1, 81, - 82, 83, 22, -1, -1, 87, -1, -1, -1, 29, - 92, -1, -1, 33, 34, -1, 36, -1, -1, -1, - 12, 13, -1, 43, -1, -1, -1, 47, -1, -1, - 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, - -1, 33, 34, -1, 36, 65, 66, 67, 68, -1, - 70, 43, -1, -1, -1, 47, -1, -1, -1, -1, - -1, 81, 82, 83, -1, -1, -1, 87, -1, -1, - -1, -1, 92, 65, 66, 67, 68, -1, 70, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, - 82, 83, -1, -1, -1, 87, -1, -1, -1, -1, - 92, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, - -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, - -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, - -1, -1, -1, 43, -1, -1, -1, 47, -1, -1, + 36, 36, 7, 55, 17, 7, 7, 60, 8, 7, + 7, 37, 36, 7, 20, 33, 55, 55, 60, 36, + 36, 33, 33, 55, 8, 7, 36, 7, 16, 33, + 7, 34, 7, 7, 7, 60, 7, 36, 33, 7, + 36, 33, 33, 5, 7, 5, 5, 33, 29, 36, + 91, 36, 7, 36, 7, 33, 7, 7, 66, 66, + 36, 33, 7, 7, 31, 1, 7, 24, 33, 2, + 60, 60, 36, 8, 8, 7, 55, 1, 36, 48, + 2, 8, 7, 2, 7, 2, 79, 36, 17, 36, + 60, 7, 48, 36, 36, 61, 33, 36, 1, 60, + 0, 8, 8, 1, 8, 6, 8, -1, -1, 61, + 48, 7, 8, 8, 60, 8, 10, -1, 8, 20, + 8, -1, 48, -1, 8, 79, 40, 40, 15, 77, + -1, 61, 60, 8, 8, 8, 15, 51, 51, 79, + 8, 61, 62, 61, 62, 50, 7, 34, 8, 54, + 61, 62, 61, 62, 56, 34, 60, 42, 79, 8, + 91, 55, 40, 56, 12, 60, 56, 50, 53, 61, + 62, 54, 60, 51, 29, 61, 62, 61, 40, 61, + 62, 12, 56, 29, 25, 60, 27, 60, 56, 51, + 61, 62, 25, 7, 27, 8, 12, 38, -1, 25, + 60, 27, 7, -1, 25, 38, 27, 29, 25, 57, + 27, 60, 38, 7, 25, 63, 27, 38, 36, 33, + 75, 38, 25, 25, 27, 27, 57, 38, 29, 75, + -1, 86, 63, 7, 29, 38, 38, 25, 29, 27, + 86, 57, 8, 61, 62, 8, -1, 63, 61, 62, + 38, 15, 25, 75, 27, 8, 61, 62, 25, -1, + 27, 61, 62, -1, 86, 38, -1, 61, 62, -1, + 34, 38, 36, 25, 75, 27, 61, 62, -1, 93, + 75, 15, -1, -1, 75, 86, 38, 61, 62, 89, + 25, 86, 27, -1, 60, 86, 18, 19, 61, 62, + 34, -1, 36, 38, 18, 19, -1, 92, 61, 62, + -1, -1, -1, 29, 47, 15, 18, 19, -1, -1, + 15, 18, 19, 45, 46, 29, -1, -1, 61, 62, + 29, 45, 46, 33, 34, 29, 36, 15, 33, 34, + -1, 36, 29, 45, 46, 29, -1, -1, 45, 46, + 66, 67, 68, 29, -1, -1, 34, -1, 36, 92, + -1, -1, 66, 67, 68, 29, -1, 66, 67, 68, + -1, -1, 66, 67, 68, -1, 29, 93, -1, 66, + 67, 68, 66, 67, 68, 29, 23, 24, -1, 93, + 66, 67, 68, 29, 93, 32, -1, -1, 35, 93, + 37, -1, 66, 67, 68, 29, 93, -1, 29, 93, + -1, -1, -1, 66, 67, 68, 29, 93, -1, -1, + -1, 29, 66, 67, 68, 23, 24, 29, -1, 93, + 66, 67, 68, -1, 32, -1, 29, 35, -1, 37, + 93, -1, 66, 67, 68, 66, 67, 68, -1, 93, + -1, 29, -1, 66, 67, 68, -1, 93, 66, 67, + 68, -1, -1, -1, 66, 67, 68, 23, 24, 93, + -1, -1, 93, 66, 67, 68, 32, -1, -1, 35, + 93, 37, -1, -1, -1, 93, -1, -1, 66, 67, + 68, 93, 29, -1, -1, 23, 24, -1, -1, 36, + 93, -1, -1, 31, 32, 23, 24, 35, -1, 37, + -1, -1, -1, -1, 32, 93, -1, 35, -1, 37, + 95, 96, 97, 98, 99, 100, 29, 23, 24, 66, + 67, 68, -1, 36, 29, 31, 32, 23, 24, 35, + -1, 37, 29, -1, -1, 31, 32, -1, -1, 35, + 29, 37, -1, -1, -1, -1, 93, -1, -1, -1, + -1, -1, -1, 66, 67, 68, 61, 62, -1, -1, + 29, 66, 67, 68, 61, 62, -1, -1, 29, 66, + 67, 68, 61, 62, -1, 23, 24, 66, 67, 68, + 93, -1, -1, 31, 32, -1, -1, 35, 93, 37, + -1, -1, 61, 62, -1, -1, 93, 66, 67, 68, + 61, 62, 3, -1, 93, 66, 67, 68, -1, -1, + -1, -1, 13, -1, -1, -1, 17, -1, -1, -1, + 3, -1, -1, -1, 93, 26, -1, 28, -1, -1, + 13, -1, 93, -1, 17, -1, -1, -1, 39, -1, + 41, 42, -1, 26, -1, 28, -1, -1, 49, -1, + -1, 52, 53, -1, -1, 29, 39, 58, 41, 42, + -1, -1, -1, 64, -1, -1, 49, -1, -1, 52, + 53, -1, -1, -1, -1, 58, -1, -1, -1, 80, + -1, 64, -1, -1, -1, -1, -1, 61, 62, -1, + -1, -1, 66, 67, 68, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 65, 66, 67, 68, -1, - 70, -1, -1, -1, -1, 75, -1, -1, -1, -1, - -1, 81, 82, 83, 84, -1, -1, 87, -1, -1, - -1, -1, 92, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 10, -1, 12, 13, -1, -1, -1, -1, - -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, - -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, - -1, -1, -1, -1, -1, 43, -1, -1, -1, 47, - -1, -1, -1, -1, -1, -1, -1, 55, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, - 68, -1, 70, -1, -1, -1, -1, 75, -1, -1, - -1, -1, -1, 81, 82, 83, 84, -1, -1, 87, - -1, -1, -1, -1, 92, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 10, -1, 12, 13, -1, -1, - -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, - -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, - 36, -1, -1, -1, -1, -1, -1, 43, -1, -1, - -1, 47, -1, -1, -1, -1, -1, -1, -1, 55, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, - 66, 67, 68, -1, 70, -1, -1, -1, -1, 75, - -1, -1, -1, -1, -1, 81, 82, 83, 84, -1, - -1, 87, -1, -1, -1, -1, 92, -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, 12, 13, -1, 93, + -1, -1, -1, -1, -1, -1, 22, -1, -1, 3, + -1, -1, -1, 29, -1, -1, -1, 33, 34, 13, + 36, -1, -1, 17, -1, -1, -1, 43, -1, -1, + -1, 47, 26, -1, 28, -1, -1, 31, -1, -1, + -1, -1, -1, -1, -1, 39, -1, 41, 42, 65, + 66, 67, 68, -1, 70, 49, -1, -1, 52, 53, + -1, -1, -1, -1, 58, 81, 82, 83, -1, -1, + 64, 87, -1, -1, -1, -1, -1, 93, -1, -1, + -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 65, 66, 67, 68, -1, 70, -1, 72, -1, 74, - -1, 76, -1, -1, -1, -1, 81, 82, 83, -1, - -1, -1, 87, -1, -1, -1, -1, 92, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 7, -1, -1, - -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, + -1, 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, -1, -1, -1, 65, 66, 67, 68, -1, 70, + -1, -1, 65, 66, 67, 68, -1, 70, -1, -1, + 81, 82, 83, -1, -1, -1, 87, -1, 81, 82, + 83, -1, 93, -1, 87, -1, -1, -1, -1, -1, + 93, -1, 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, -1, -1, -1, 65, 66, 67, 68, -1, + 70, -1, -1, 65, 66, 67, 68, -1, 70, -1, + -1, 81, 82, 83, -1, -1, -1, 87, -1, 81, + 82, 83, -1, 93, -1, 87, -1, -1, -1, -1, + -1, 93, -1, 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, -1, -1, -1, 65, 66, 67, 68, + -1, 70, -1, -1, 65, 66, 67, 68, -1, 70, + -1, -1, 81, 82, 83, -1, -1, -1, 87, -1, + 81, 82, 83, -1, 93, -1, 87, -1, -1, -1, + -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, - 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, - -1, 51, -1, 53, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 43, -1, -1, -1, 47, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, 68, -1, - 70, -1, 72, -1, 74, -1, 76, -1, -1, -1, + 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, 87, -1, -1, - -1, -1, 92, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 93, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 10, -1, 12, 13, -1, -1, -1, + -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, + -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, + -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, + 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, + 67, 68, -1, 70, -1, -1, -1, -1, 75, -1, + -1, -1, -1, -1, 81, 82, 83, 84, -1, -1, + 87, -1, -1, -1, -1, -1, 93, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 10, -1, 12, 13, + -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, + -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, + 34, -1, 36, -1, -1, -1, -1, -1, -1, 43, + -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, + -1, 55, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 65, 66, 67, 68, -1, 70, -1, -1, -1, + -1, 75, -1, -1, -1, -1, -1, 81, 82, 83, + 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, + -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, + -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, + -1, -1, 33, 34, -1, 36, -1, -1, -1, -1, + -1, -1, 43, -1, -1, -1, 47, -1, -1, -1, + -1, -1, -1, -1, 55, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 65, 66, 67, 68, -1, 70, + -1, -1, -1, -1, 75, -1, -1, -1, -1, -1, + 81, 82, 83, 84, -1, -1, 87, -1, -1, -1, + -1, -1, 93, -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, 66, 67, 68, - -1, 70, -1, 72, -1, 74, 75, 76, -1, -1, + -1, 70, -1, 72, -1, 74, -1, 76, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, 87, -1, - -1, -1, -1, 92, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 8, -1, -1, 11, 12, 13, -1, - -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, - -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, - -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, - -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, - -1, 56, -1, -1, -1, -1, -1, -1, -1, -1, - 65, 66, 67, 68, -1, 70, -1, 72, -1, 74, - -1, 76, -1, -1, -1, -1, 81, 82, 83, -1, - -1, -1, 87, -1, -1, -1, -1, 92, -1, -1, + -1, -1, -1, -1, 93, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 7, -1, -1, -1, 11, 12, + 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, + -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, + 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, + 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, + 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 65, 66, 67, 68, -1, 70, -1, 72, + -1, 74, -1, 76, -1, -1, -1, -1, 81, 82, + 83, -1, -1, -1, 87, -1, -1, -1, -1, -1, + 93, -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, 66, 67, 68, -1, 70, + -1, 72, -1, 74, 75, 76, -1, -1, -1, -1, + 81, 82, 83, -1, -1, -1, 87, -1, -1, -1, + -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 8, -1, -1, 11, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, + -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, + 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, + -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, + 56, -1, -1, -1, -1, -1, -1, -1, -1, 65, + 66, 67, 68, -1, 70, -1, 72, -1, 74, -1, + 76, -1, -1, -1, -1, 81, 82, 83, -1, -1, + -1, 87, -1, -1, -1, -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, @@ -840,83 +882,74 @@ const short QmlJSGrammar::action_check [] = { -1, -1, -1, -1, 65, 66, 67, 68, -1, 70, -1, 72, -1, 74, -1, 76, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, 87, -1, -1, -1, - -1, 92, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 8, -1, -1, 11, 12, 13, -1, -1, -1, - -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, - -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, - -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, - 47, -1, -1, -1, 51, -1, 53, -1, -1, 56, - -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, - 67, 68, -1, 70, -1, 72, -1, 74, -1, 76, - -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, - 87, -1, -1, -1, -1, 92, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 8, -1, -1, 11, 12, - 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, - -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, - 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, - 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, - 53, -1, -1, 56, -1, -1, -1, -1, -1, -1, - -1, -1, 65, 66, 67, 68, -1, 70, -1, 72, - -1, 74, -1, 76, -1, -1, -1, -1, 81, 82, - 83, -1, -1, -1, 87, -1, -1, -1, -1, 92, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 11, - 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, - 22, -1, -1, -1, -1, -1, -1, 29, 30, -1, - -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, - 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, - -1, 53, -1, -1, -1, -1, -1, -1, -1, 61, - -1, -1, -1, 65, 66, 67, 68, 69, 70, -1, - 72, 73, 74, -1, 76, -1, 78, -1, -1, 81, - 82, 83, -1, -1, -1, 87, -1, -1, -1, -1, - 92, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 8, -1, -1, 11, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, + -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, + 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, + -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, + 56, -1, -1, -1, -1, -1, -1, -1, -1, 65, + 66, 67, 68, -1, 70, -1, 72, -1, 74, -1, + 76, -1, -1, -1, -1, 81, 82, 83, -1, -1, + -1, 87, -1, -1, -1, -1, -1, 93, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, - -1, 22, -1, -1, -1, -1, -1, -1, 29, 30, + -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, - 61, -1, -1, -1, 65, 66, 67, 68, 69, 70, - -1, 72, 73, 74, -1, 76, -1, 78, -1, -1, + 51, -1, 53, -1, -1, 56, -1, -1, -1, -1, + -1, -1, -1, -1, 65, 66, 67, 68, -1, 70, + -1, 72, -1, 74, -1, 76, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, 87, -1, -1, -1, - -1, 92, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4, 5, 6, -1, -1, 9, 10, 11, -1, - -1, 14, -1, 16, -1, -1, -1, 20, 21, 22, - -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, - -1, -1, -1, 66, 67, 68, 69, 70, 71, -1, - 73, 74, 75, 76, 77, 78, -1, -1, 81, 82, - 83, 84, 85, 86, -1, -1, -1, -1, -1, 92, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, - 5, 6, -1, -1, 9, 10, 11, -1, -1, 14, - -1, 16, -1, -1, -1, 20, 21, 22, -1, -1, - -1, -1, -1, -1, 29, 30, 31, 32, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, - -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, - 65, 66, 67, -1, 69, 70, 71, -1, 73, 74, - 75, 76, 77, 78, -1, -1, 81, 82, 83, 84, - 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, - -1, -1, 9, 10, 11, -1, -1, 14, -1, 16, - -1, -1, -1, 20, 21, 22, -1, -1, -1, -1, - -1, -1, 29, 30, 31, 32, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, - 47, -1, -1, -1, -1, -1, -1, -1, 55, -1, - -1, -1, 59, -1, -1, -1, -1, -1, 65, 66, - 67, -1, 69, 70, 71, -1, 73, 74, 75, 76, - 77, 78, -1, -1, 81, 82, 83, 84, 85, 86, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, - 9, -1, 11, 12, 13, 14, -1, -1, -1, -1, - -1, -1, 21, 22, -1, -1, -1, -1, -1, -1, + -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, + -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, 30, -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, -1, -1, -1, - 59, -1, 61, -1, -1, -1, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - -1, -1, 81, 82, 83, 84, 85, -1, 87, -1, - -1, -1, -1, 92, -1, -1, -1, -1, -1, -1, + -1, -1, 61, -1, -1, -1, 65, 66, 67, 68, + 69, 70, -1, 72, 73, 74, -1, 76, -1, 78, + -1, -1, 81, 82, 83, -1, -1, -1, 87, -1, + -1, -1, -1, -1, 93, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 11, 12, 13, -1, -1, -1, + -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, + -1, -1, 29, 30, -1, -1, 33, 34, -1, 36, + -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, + 47, -1, -1, -1, 51, -1, 53, -1, -1, -1, + -1, -1, -1, -1, 61, -1, -1, -1, 65, 66, + 67, 68, 69, 70, -1, 72, 73, 74, -1, 76, + -1, 78, -1, -1, 81, 82, 83, -1, -1, -1, + 87, -1, -1, -1, -1, -1, 93, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4, 5, 6, -1, + -1, 9, 10, 11, -1, -1, 14, -1, 16, -1, + -1, -1, 20, 21, 22, -1, -1, -1, -1, -1, + -1, 29, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, 66, 67, + 68, 69, 70, 71, -1, 73, 74, 75, 76, 77, + 78, -1, -1, 81, 82, 83, 84, 85, 86, -1, + -1, -1, -1, -1, -1, 93, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 4, 5, 6, -1, -1, + 9, 10, 11, -1, -1, 14, -1, 16, -1, -1, + -1, 20, 21, 22, -1, -1, -1, -1, -1, -1, + 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 43, -1, -1, -1, 47, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 59, -1, -1, -1, -1, -1, 65, 66, 67, -1, + 69, 70, 71, -1, 73, 74, 75, 76, 77, 78, + -1, -1, 81, 82, 83, 84, 85, 86, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4, 5, 6, -1, -1, 9, + 10, 11, -1, -1, 14, -1, 16, -1, -1, -1, + 20, 21, 22, -1, -1, -1, -1, -1, -1, 29, + 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 43, -1, -1, -1, 47, -1, -1, + -1, -1, -1, -1, -1, 55, -1, -1, -1, 59, + -1, -1, -1, -1, -1, 65, 66, 67, -1, 69, + 70, 71, -1, 73, 74, 75, 76, 77, 78, -1, + -1, 81, 82, 83, 84, 85, 86, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, 9, -1, 11, 12, 13, 14, -1, -1, -1, -1, -1, -1, 21, 22, -1, -1, -1, -1, -1, -1, 29, 30, @@ -926,7 +959,17 @@ const short QmlJSGrammar::action_check [] = { 61, -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, -1, 81, 82, 83, 84, 85, -1, 87, -1, -1, -1, - -1, 92, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 4, -1, -1, -1, -1, 9, -1, 11, + 12, 13, 14, -1, -1, -1, -1, -1, -1, 21, + 22, -1, -1, -1, -1, -1, -1, 29, 30, -1, + -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, + 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, + -1, 53, -1, -1, -1, -1, -1, 59, -1, 61, + -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, -1, -1, 81, + 82, 83, 84, 85, -1, 87, -1, -1, -1, -1, + -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, -1, -1, 9, 10, 11, 12, 13, 14, -1, 16, -1, -1, -1, 20, 21, 22, -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, @@ -935,67 +978,68 @@ const short QmlJSGrammar::action_check [] = { 53, -1, -1, -1, -1, -1, 59, -1, 61, -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, -1, 81, 82, - 83, 84, 85, 86, 87, -1, -1, -1, -1, 92, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, - 5, 6, -1, -1, 9, 10, 11, 12, 13, 14, - -1, 16, -1, -1, -1, 20, 21, 22, -1, -1, - -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, - -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, - -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, - 55, -1, -1, -1, 59, -1, 61, -1, -1, -1, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, -1, -1, 81, 82, 83, 84, - 85, 86, 87, -1, -1, -1, -1, 92, -1, -1, - -1, -1, -1, -1, -1, -1, -1, + 83, 84, 85, 86, 87, -1, -1, -1, -1, -1, + 93, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4, 5, 6, -1, -1, 9, 10, 11, 12, 13, + 14, -1, 16, -1, -1, -1, 20, 21, 22, -1, + -1, -1, -1, -1, -1, 29, 30, 31, 32, 33, + 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, + 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, + -1, 55, -1, -1, -1, 59, -1, 61, -1, -1, + -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, -1, -1, 81, 82, 83, + 84, 85, 86, 87, -1, -1, -1, -1, -1, 93, + -1, -1, -1, -1, -1, -1, -1, -1, -1, - 15, 2, 105, 3, 29, 15, 4, 2, 15, 29, - 9, 15, 3, 15, 3, 2, 19, 39, 15, 15, - 13, 15, 3, 15, 2, 15, 3, 15, 3, 11, - 13, 15, 71, 39, 39, 3, 22, 2, 99, 19, - 4, 15, 2, 15, 29, 15, 19, 3, 15, 3, - 29, 22, 15, 29, 15, 2, 22, 15, 2, 2, - 15, 2, 2, 2, 2, 22, 3, 15, 3, 2, - 39, 3, 3, 15, 97, 94, 3, 39, 2, 2, - 39, 3, 3, 2, 2, 101, 3, 40, 39, 39, - 39, 3, 2, 39, 39, 15, 22, 13, 3, 2, - 13, 2, -1, 39, 13, 35, -1, 16, -1, 39, - -1, -1, -1, 15, 48, -1, 15, 13, 52, 48, - 48, 50, 3, 48, 20, 53, -1, 52, -1, 45, - -1, 15, 45, 48, 48, 50, 50, 48, -1, 50, - 48, 48, 48, 50, 48, 53, 52, 39, 48, 53, - 48, 39, 44, 53, 48, 53, 44, 48, 15, 50, - -1, 48, 48, 48, 58, 48, 3, 72, 53, 48, - 53, 50, 48, 48, 50, 48, 62, 64, 53, 82, - 53, 82, 48, 48, 41, 13, 88, 53, 16, 54, - 48, 72, 48, 3, 50, 48, 54, 4, 48, 13, - 50, 100, 86, 56, 48, 48, 50, 50, 48, 48, - 50, -1, 51, 48, 48, 48, 51, 50, 48, 48, - 54, 50, 48, 53, 50, 48, 48, 48, 50, 48, - 53, 45, 48, 54, 50, 72, -1, 48, -1, 48, - -1, 60, 53, 48, 53, 48, 15, 48, 53, -1, - 53, 48, 53, 48, 65, -1, 53, -1, 53, 48, - 55, 70, 72, 48, 53, 70, 63, 70, 53, 70, - 48, 48, 41, 42, 59, 53, 53, 55, 48, 13, - 57, 70, 48, 53, 48, 55, 20, 53, -1, 53, - -1, 55, -1, 5, -1, 61, 5, -1, 32, 33, - 13, 13, -1, 16, 13, -1, -1, -1, 20, -1, - -1, 20, 22, 23, 24, 25, 26, 27, 28, -1, - 32, 33, -1, 32, 33, 21, 22, 23, 24, 25, - 26, 27, 28, 13, -1, -1, -1, -1, -1, -1, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 13, - -1, -1, -1, -1, -1, -1, 20, 21, 22, 23, - 24, 25, 26, 27, 28, -1, -1, -1, -1, -1, + 15, 3, 13, 29, 29, 15, 15, 4, 2, 15, + 105, 9, 15, 2, 15, 3, 29, 22, 3, 15, + 15, 2, 39, 15, 3, 15, 19, 3, 2, 15, + 3, 15, 19, 11, 71, 15, 19, 2, 13, 39, + 97, 2, 2, 15, 15, 3, 15, 29, 39, 15, + 94, 101, 29, 3, 2, 2, 15, 99, 15, 22, + 3, 3, 15, 15, 2, 2, 15, 22, 2, 39, + 2, 39, 39, 3, 3, 39, 22, 39, 2, 2, + 15, 3, 22, 39, 4, 39, 4, 3, 2, 40, + 3, 3, 2, 2, 39, 39, 3, 3, 13, 2, + 2, -1, -1, 39, -1, -1, -1, 48, 44, 48, + -1, 50, 53, -1, 3, 48, 13, 48, 13, 50, + 53, 48, 48, 48, 50, 15, 53, 48, 53, 48, + 45, 50, 13, 13, 3, 16, 16, 48, 15, 50, + 48, 62, 50, 48, 48, 50, 50, 48, 45, 48, + 45, 50, 48, 39, 48, 48, 48, 53, 44, 53, + 48, 53, 50, 64, 48, 48, 48, 60, 15, 48, + 54, 54, 54, 13, 35, -1, 16, 56, 39, 82, + 82, 48, 48, 72, 48, 48, 53, 53, 52, 48, + 53, 48, 48, 52, 41, 48, 53, 2, 54, 52, + 48, 13, 15, 72, 48, 53, 3, 51, 20, 15, + 100, 88, 48, 48, 50, 50, 48, 48, 50, 50, + 48, 48, 50, 48, 48, 50, 48, 51, 50, 48, + 48, 58, 50, 48, 53, 41, 42, 48, 53, -1, + 48, -1, 53, -1, 63, 53, 61, 48, 48, 48, + 48, -1, 53, 53, 53, 53, 48, 55, 57, 70, + -1, 53, 70, 48, -1, 65, -1, 59, 53, 70, + 55, 48, 48, 86, -1, 72, 53, 53, 55, 55, + 13, 48, 48, 16, 5, 18, 53, 53, 13, -1, + 5, -1, 13, -1, -1, 20, -1, -1, 13, 20, + -1, -1, 3, 70, 70, 20, 39, 32, 33, -1, + -1, 32, 33, -1, -1, -1, -1, 32, 33, 22, + 23, 24, 25, 26, 27, 28, 13, -1, -1, -1, + -1, -1, -1, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 13, -1, -1, -1, -1, -1, -1, 20, + 21, 22, 23, 24, 25, 26, 27, 28, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 72, -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, 13, -1, -1, 16, -1, 18, + -1, -1, -1, -1, -1, -1, 21, 22, 23, 24, + 25, 26, 27, 28, -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, - 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1}; + -1, -1}; QT_END_NAMESPACE diff --git a/src/libs/qmljs/parser/qmljsgrammar_p.h b/src/libs/qmljs/parser/qmljsgrammar_p.h index e7229a06cc..36e58a1c38 100644 --- a/src/libs/qmljs/parser/qmljsgrammar_p.h +++ b/src/libs/qmljs/parser/qmljsgrammar_p.h @@ -52,12 +52,12 @@ class QML_PARSER_EXPORT QmlJSGrammar public: enum VariousConstants { EOF_SYMBOL = 0, - REDUCE_HERE = 101, - SHIFT_THERE = 100, + REDUCE_HERE = 102, + SHIFT_THERE = 101, T_AND = 1, T_AND_AND = 2, T_AND_EQ = 3, - T_AS = 91, + T_AS = 92, T_AUTOMATIC_SEMICOLON = 62, T_BREAK = 4, T_CASE = 5, @@ -65,6 +65,7 @@ public: T_COLON = 7, T_COMMA = 8, T_COMMENT = 88, + T_COMPATIBILITY_SEMICOLON = 89, T_CONST = 84, T_CONTINUE = 9, T_DEBUGGER = 85, @@ -78,14 +79,14 @@ public: T_EQ = 17, T_EQ_EQ = 18, T_EQ_EQ_EQ = 19, - T_ERROR = 93, + T_ERROR = 94, T_FALSE = 83, - T_FEED_JS_EXPRESSION = 97, - T_FEED_JS_PROGRAM = 99, - T_FEED_JS_SOURCE_ELEMENT = 98, - T_FEED_JS_STATEMENT = 96, - T_FEED_UI_OBJECT_MEMBER = 95, - T_FEED_UI_PROGRAM = 94, + T_FEED_JS_EXPRESSION = 98, + T_FEED_JS_PROGRAM = 100, + T_FEED_JS_SOURCE_ELEMENT = 99, + T_FEED_JS_STATEMENT = 97, + T_FEED_UI_OBJECT_MEMBER = 96, + T_FEED_UI_PROGRAM = 95, T_FINALLY = 20, T_FOR = 21, T_FUNCTION = 22, @@ -97,7 +98,7 @@ public: T_GT_GT_GT_EQ = 28, T_IDENTIFIER = 29, T_IF = 30, - T_IMPORT = 90, + T_IMPORT = 91, T_IN = 31, T_INSTANCEOF = 32, T_LBRACE = 33, @@ -117,7 +118,7 @@ public: T_NOT_EQ_EQ = 46, T_NULL = 81, T_NUMERIC_LITERAL = 47, - T_ON = 92, + T_ON = 93, T_OR = 48, T_OR_EQ = 49, T_OR_OR = 50, @@ -125,7 +126,7 @@ public: T_PLUS_EQ = 52, T_PLUS_PLUS = 53, T_PROPERTY = 66, - T_PUBLIC = 89, + T_PUBLIC = 90, T_QUESTION = 54, T_RBRACE = 55, T_RBRACKET = 56, @@ -154,15 +155,15 @@ public: T_XOR = 79, T_XOR_EQ = 80, - ACCEPT_STATE = 644, - RULE_COUNT = 349, - STATE_COUNT = 645, - TERMINAL_COUNT = 102, + ACCEPT_STATE = 645, + RULE_COUNT = 350, + STATE_COUNT = 646, + TERMINAL_COUNT = 103, NON_TERMINAL_COUNT = 107, - GOTO_INDEX_OFFSET = 645, - GOTO_INFO_OFFSET = 2807, - GOTO_CHECK_OFFSET = 2807 + GOTO_INDEX_OFFSET = 646, + GOTO_INFO_OFFSET = 3019, + GOTO_CHECK_OFFSET = 3019 }; static const char *const spell []; diff --git a/src/libs/qmljs/parser/qmljskeywords_p.h b/src/libs/qmljs/parser/qmljskeywords_p.h index 2d35352fce..3c827da2de 100644 --- a/src/libs/qmljs/parser/qmljskeywords_p.h +++ b/src/libs/qmljs/parser/qmljskeywords_p.h @@ -44,7 +44,7 @@ static inline int classify2(const QChar *s, bool qmlMode) { if (s[0].unicode() == 'a') { if (s[1].unicode() == 's') { - return qmlMode ? Lexer::T_AS : Lexer::T_RESERVED_WORD; + return qmlMode ? Lexer::T_AS : Lexer::T_IDENTIFIER; } } else if (s[0].unicode() == 'd') { @@ -62,13 +62,13 @@ static inline int classify2(const QChar *s, bool qmlMode) { } else if (qmlMode && s[0].unicode() == 'o') { if (s[1].unicode() == 'n') { - return Lexer::T_ON; + return qmlMode ? Lexer::T_ON : Lexer::T_IDENTIFIER; } } return Lexer::T_IDENTIFIER; } -static inline int classify3(const QChar *s, bool /*qmlMode*/) { +static inline int classify3(const QChar *s, bool qmlMode) { if (s[0].unicode() == 'f') { if (s[1].unicode() == 'o') { if (s[2].unicode() == 'r') { @@ -79,7 +79,7 @@ static inline int classify3(const QChar *s, bool /*qmlMode*/) { else if (s[0].unicode() == 'i') { if (s[1].unicode() == 'n') { if (s[2].unicode() == 't') { - return Lexer::T_INT; + return qmlMode ? Lexer::T_INT : Lexer::T_IDENTIFIER; } } } @@ -107,12 +107,12 @@ static inline int classify3(const QChar *s, bool /*qmlMode*/) { return Lexer::T_IDENTIFIER; } -static inline int classify4(const QChar *s, bool /*qmlMode*/) { +static inline int classify4(const QChar *s, bool qmlMode) { if (s[0].unicode() == 'b') { if (s[1].unicode() == 'y') { if (s[2].unicode() == 't') { if (s[3].unicode() == 'e') { - return Lexer::T_BYTE; + return qmlMode ? Lexer::T_BYTE : Lexer::T_IDENTIFIER; } } } @@ -128,7 +128,7 @@ static inline int classify4(const QChar *s, bool /*qmlMode*/) { else if (s[1].unicode() == 'h') { if (s[2].unicode() == 'a') { if (s[3].unicode() == 'r') { - return Lexer::T_CHAR; + return qmlMode ? Lexer::T_CHAR : Lexer::T_IDENTIFIER; } } } @@ -153,7 +153,7 @@ static inline int classify4(const QChar *s, bool /*qmlMode*/) { if (s[1].unicode() == 'o') { if (s[2].unicode() == 't') { if (s[3].unicode() == 'o') { - return Lexer::T_GOTO; + return qmlMode ? Lexer::T_GOTO : Lexer::T_IDENTIFIER; } } } @@ -162,7 +162,7 @@ static inline int classify4(const QChar *s, bool /*qmlMode*/) { if (s[1].unicode() == 'o') { if (s[2].unicode() == 'n') { if (s[3].unicode() == 'g') { - return Lexer::T_LONG; + return qmlMode ? Lexer::T_LONG : Lexer::T_IDENTIFIER; } } } @@ -213,7 +213,7 @@ static inline int classify4(const QChar *s, bool /*qmlMode*/) { return Lexer::T_IDENTIFIER; } -static inline int classify5(const QChar *s, bool /*qmlMode*/) { +static inline int classify5(const QChar *s, bool qmlMode) { if (s[0].unicode() == 'b') { if (s[1].unicode() == 'r') { if (s[2].unicode() == 'e') { @@ -248,7 +248,7 @@ static inline int classify5(const QChar *s, bool /*qmlMode*/) { if (s[2].unicode() == 'n') { if (s[3].unicode() == 's') { if (s[4].unicode() == 't') { - return Lexer::T_CONST; + return qmlMode ? Lexer::T_CONST : Lexer::T_RESERVED_WORD; } } } @@ -268,7 +268,7 @@ static inline int classify5(const QChar *s, bool /*qmlMode*/) { if (s[2].unicode() == 'n') { if (s[3].unicode() == 'a') { if (s[4].unicode() == 'l') { - return Lexer::T_FINAL; + return qmlMode ? Lexer::T_FINAL : Lexer::T_IDENTIFIER; } } } @@ -277,7 +277,7 @@ static inline int classify5(const QChar *s, bool /*qmlMode*/) { if (s[2].unicode() == 'o') { if (s[3].unicode() == 'a') { if (s[4].unicode() == 't') { - return Lexer::T_FLOAT; + return qmlMode ? Lexer::T_FLOAT : Lexer::T_IDENTIFIER; } } } @@ -288,7 +288,7 @@ static inline int classify5(const QChar *s, bool /*qmlMode*/) { if (s[2].unicode() == 'o') { if (s[3].unicode() == 'r') { if (s[4].unicode() == 't') { - return Lexer::T_SHORT; + return qmlMode ? Lexer::T_SHORT : Lexer::T_IDENTIFIER; } } } @@ -297,7 +297,7 @@ static inline int classify5(const QChar *s, bool /*qmlMode*/) { if (s[2].unicode() == 'p') { if (s[3].unicode() == 'e') { if (s[4].unicode() == 'r') { - return Lexer::T_SUPER; + return qmlMode ? Lexer::T_SUPER : Lexer::T_IDENTIFIER; } } } @@ -346,7 +346,7 @@ static inline int classify6(const QChar *s, bool qmlMode) { if (s[3].unicode() == 'b') { if (s[4].unicode() == 'l') { if (s[5].unicode() == 'e') { - return Lexer::T_DOUBLE; + return qmlMode ? Lexer::T_DOUBLE : Lexer::T_IDENTIFIER; } } } @@ -385,7 +385,7 @@ static inline int classify6(const QChar *s, bool qmlMode) { if (s[3].unicode() == 'i') { if (s[4].unicode() == 'v') { if (s[5].unicode() == 'e') { - return Lexer::T_NATIVE; + return qmlMode ? Lexer::T_NATIVE : Lexer::T_IDENTIFIER; } } } @@ -398,7 +398,7 @@ static inline int classify6(const QChar *s, bool qmlMode) { if (s[3].unicode() == 'l') { if (s[4].unicode() == 'i') { if (s[5].unicode() == 'c') { - return qmlMode ? Lexer::T_PUBLIC : Lexer::T_RESERVED_WORD; + return qmlMode ? Lexer::T_PUBLIC : Lexer::T_IDENTIFIER; } } } @@ -435,7 +435,7 @@ static inline int classify6(const QChar *s, bool qmlMode) { if (s[3].unicode() == 't') { if (s[4].unicode() == 'i') { if (s[5].unicode() == 'c') { - return Lexer::T_STATIC; + return qmlMode ? Lexer::T_STATIC : Lexer::T_IDENTIFIER; } } } @@ -459,7 +459,7 @@ static inline int classify6(const QChar *s, bool qmlMode) { if (s[3].unicode() == 'o') { if (s[4].unicode() == 'w') { if (s[5].unicode() == 's') { - return Lexer::T_THROWS; + return qmlMode ? Lexer::T_THROWS : Lexer::T_IDENTIFIER; } } } @@ -480,7 +480,7 @@ static inline int classify6(const QChar *s, bool qmlMode) { return Lexer::T_IDENTIFIER; } -static inline int classify7(const QChar *s, bool /*qmlMode*/) { +static inline int classify7(const QChar *s, bool qmlMode) { if (s[0].unicode() == 'b') { if (s[1].unicode() == 'o') { if (s[2].unicode() == 'o') { @@ -488,7 +488,7 @@ static inline int classify7(const QChar *s, bool /*qmlMode*/) { if (s[4].unicode() == 'e') { if (s[5].unicode() == 'a') { if (s[6].unicode() == 'n') { - return Lexer::T_BOOLEAN; + return qmlMode ? Lexer::T_BOOLEAN : Lexer::T_IDENTIFIER; } } } @@ -548,7 +548,7 @@ static inline int classify7(const QChar *s, bool /*qmlMode*/) { if (s[4].unicode() == 'a') { if (s[5].unicode() == 'g') { if (s[6].unicode() == 'e') { - return Lexer::T_PACKAGE; + return qmlMode ? Lexer::T_PACKAGE : Lexer::T_IDENTIFIER; } } } @@ -561,7 +561,7 @@ static inline int classify7(const QChar *s, bool /*qmlMode*/) { if (s[4].unicode() == 'a') { if (s[5].unicode() == 't') { if (s[6].unicode() == 'e') { - return Lexer::T_PRIVATE; + return qmlMode ? Lexer::T_PRIVATE : Lexer::T_IDENTIFIER; } } } @@ -581,7 +581,7 @@ static inline int classify8(const QChar *s, bool qmlMode) { if (s[5].unicode() == 'a') { if (s[6].unicode() == 'c') { if (s[7].unicode() == 't') { - return Lexer::T_ABSTRACT; + return qmlMode ? Lexer::T_ABSTRACT : Lexer::T_IDENTIFIER; } } } @@ -649,7 +649,7 @@ static inline int classify8(const QChar *s, bool qmlMode) { if (s[5].unicode() == 'r') { if (s[6].unicode() == 't') { if (s[7].unicode() == 'y') { - return Lexer::T_PROPERTY; + return qmlMode ? Lexer::T_PROPERTY : Lexer::T_IDENTIFIER; } } } @@ -683,7 +683,7 @@ static inline int classify8(const QChar *s, bool qmlMode) { if (s[5].unicode() == 'i') { if (s[6].unicode() == 'l') { if (s[7].unicode() == 'e') { - return Lexer::T_VOLATILE; + return qmlMode ? Lexer::T_VOLATILE : Lexer::T_IDENTIFIER; } } } @@ -695,7 +695,7 @@ static inline int classify8(const QChar *s, bool qmlMode) { return Lexer::T_IDENTIFIER; } -static inline int classify9(const QChar *s, bool /*qmlMode*/) { +static inline int classify9(const QChar *s, bool qmlMode) { if (s[0].unicode() == 'i') { if (s[1].unicode() == 'n') { if (s[2].unicode() == 't') { @@ -705,7 +705,7 @@ static inline int classify9(const QChar *s, bool /*qmlMode*/) { if (s[6].unicode() == 'a') { if (s[7].unicode() == 'c') { if (s[8].unicode() == 'e') { - return Lexer::T_INTERFACE; + return qmlMode ? Lexer::T_INTERFACE : Lexer::T_IDENTIFIER; } } } @@ -724,7 +724,7 @@ static inline int classify9(const QChar *s, bool /*qmlMode*/) { if (s[6].unicode() == 't') { if (s[7].unicode() == 'e') { if (s[8].unicode() == 'd') { - return Lexer::T_PROTECTED; + return qmlMode ? Lexer::T_PROTECTED : Lexer::T_IDENTIFIER; } } } @@ -743,7 +743,7 @@ static inline int classify9(const QChar *s, bool /*qmlMode*/) { if (s[6].unicode() == 'e') { if (s[7].unicode() == 'n') { if (s[8].unicode() == 't') { - return Lexer::T_TRANSIENT; + return qmlMode ? Lexer::T_TRANSIENT : Lexer::T_IDENTIFIER; } } } @@ -756,7 +756,7 @@ static inline int classify9(const QChar *s, bool /*qmlMode*/) { return Lexer::T_IDENTIFIER; } -static inline int classify10(const QChar *s, bool /*qmlMode*/) { +static inline int classify10(const QChar *s, bool qmlMode) { if (s[0].unicode() == 'i') { if (s[1].unicode() == 'm') { if (s[2].unicode() == 'p') { @@ -767,7 +767,7 @@ static inline int classify10(const QChar *s, bool /*qmlMode*/) { if (s[7].unicode() == 'n') { if (s[8].unicode() == 't') { if (s[9].unicode() == 's') { - return Lexer::T_IMPLEMENTS; + return qmlMode ? Lexer::T_IMPLEMENTS : Lexer::T_IDENTIFIER; } } } @@ -800,7 +800,7 @@ static inline int classify10(const QChar *s, bool /*qmlMode*/) { return Lexer::T_IDENTIFIER; } -static inline int classify12(const QChar *s, bool /*qmlMode*/) { +static inline int classify12(const QChar *s, bool qmlMode) { if (s[0].unicode() == 's') { if (s[1].unicode() == 'y') { if (s[2].unicode() == 'n') { @@ -813,7 +813,7 @@ static inline int classify12(const QChar *s, bool /*qmlMode*/) { if (s[9].unicode() == 'z') { if (s[10].unicode() == 'e') { if (s[11].unicode() == 'd') { - return Lexer::T_SYNCHRONIZED; + return qmlMode ? Lexer::T_SYNCHRONIZED : Lexer::T_IDENTIFIER; } } } diff --git a/src/libs/qmljs/parser/qmljslexer.cpp b/src/libs/qmljs/parser/qmljslexer.cpp index 19f3281f7a..8217e5f9d4 100644 --- a/src/libs/qmljs/parser/qmljslexer.cpp +++ b/src/libs/qmljs/parser/qmljslexer.cpp @@ -154,10 +154,13 @@ void Lexer::setCode(const QString &code, int lineno, bool qmlMode) void Lexer::scanChar() { + unsigned sequenceLength = isLineTerminatorSequence(); _char = *_codePtr++; + if (sequenceLength == 2) + _char = *_codePtr++; - if (_char == QLatin1Char('\n')) { - _lastLinePtr = _codePtr; // points to the first character after the newline + if (unsigned sequenceLength = isLineTerminatorSequence()) { + _lastLinePtr = _codePtr + sequenceLength - 1; // points to the first character after the newline ++_currentLineNumber; } } @@ -275,13 +278,13 @@ again: _tokenLinePtr = _lastLinePtr; while (_char.isSpace()) { - if (_char == QLatin1Char('\n')) { - _tokenLinePtr = _codePtr; + if (unsigned sequenceLength = isLineTerminatorSequence()) { + _tokenLinePtr = _codePtr + sequenceLength - 1; if (_restrictedKeyword) { // automatic semicolon insertion _tokenLine = _currentLineNumber; - _tokenStartPtr = _codePtr - 1; // ### TODO: insert it before the optional \r sequence. + _tokenStartPtr = _codePtr - 1; return T_SEMICOLON; } else { _terminator = true; @@ -398,7 +401,7 @@ again: } } } else if (_char == QLatin1Char('/')) { - while (!_char.isNull() && _char != QLatin1Char('\n')) { + while (!_char.isNull() && !isLineTerminator()) { scanChar(); } if (_engine) { @@ -541,7 +544,7 @@ again: if (_engine) { while (!_char.isNull()) { - if (_char == QLatin1Char('\n') || _char == QLatin1Char('\\')) { + if (isLineTerminator() || _char == QLatin1Char('\\')) { break; } else if (_char == quote) { _tokenSpell = _engine->midRef(startCode - _code.unicode() - 1, _codePtr - startCode); @@ -556,13 +559,15 @@ again: _validTokenText = true; _tokenText.resize(0); startCode--; - while (startCode != _codePtr - 1) + while (startCode != _codePtr - 1) _tokenText += *startCode++; while (! _char.isNull()) { - if (_char == QLatin1Char('\n')) { + if (unsigned sequenceLength = isLineTerminatorSequence()) { multilineStringLiteral = true; _tokenText += _char; + if (sequenceLength == 2) + _tokenText += *_codePtr; scanChar(); } else if (_char == quote) { scanChar(); @@ -587,7 +592,6 @@ again: // hex escape sequence case 'x': - case 'X': if (isHexDigit(_codePtr[0]) && isHexDigit(_codePtr[1])) { scanChar(); @@ -625,23 +629,23 @@ again: break; case '\r': - while (_char == QLatin1Char('\r')) - scanChar(); - - if (_char == QLatin1Char('\n')) { - u = _char; - scanChar(); - } else { + if (isLineTerminatorSequence() == 2) { + _tokenText += QLatin1Char('\r'); u = QLatin1Char('\n'); + } else { + u = QLatin1Char('\r'); } - + scanChar(); break; case '\n': + case 0x2028u: + case 0x2029u: u = _char; scanChar(); break; + default: // non escape character u = _char; @@ -860,11 +864,6 @@ bool Lexer::scanRegExp(RegExpBodyPrefix prefix) while (true) { switch (_char.unicode()) { - case 0: // eof - case '\n': case '\r': // line terminator - _errorMessage = QCoreApplication::translate("QmlParser", "Unterminated regular expression literal"); - return false; - case '/': scanChar(); @@ -934,8 +933,13 @@ bool Lexer::scanRegExp(RegExpBodyPrefix prefix) break; default: - _tokenText += _char; - scanChar(); + if (_char.isNull() || isLineTerminator()) { + _errorMessage = QCoreApplication::translate("QmlParser", "Unterminated regular expression literal"); + return false; + } else { + _tokenText += _char; + scanChar(); + } } // switch } // while @@ -944,7 +948,28 @@ bool Lexer::scanRegExp(RegExpBodyPrefix prefix) bool Lexer::isLineTerminator() const { - return (_char == QLatin1Char('\n') || _char == QLatin1Char('\r')); + const ushort unicode = _char.unicode(); + return unicode == 0x000Au + || unicode == 0x000Du + || unicode == 0x2028u + || unicode == 0x2029u; +} + +unsigned Lexer::isLineTerminatorSequence() const +{ + switch (_char.unicode()) { + case 0x000Au: + case 0x2028u: + case 0x2029u: + return 1; + case 0x000Du: + if (_codePtr->unicode() == 0x000Au) + return 2; + else + return 1; + default: + return 0; + } } bool Lexer::isIdentLetter(QChar ch) @@ -1112,7 +1137,7 @@ bool Lexer::scanDirectives(Directives *directives) // // recognize the mandatory `as' followed by the module name // - if (! (lex() == T_RESERVED_WORD && tokenText() == QLatin1String("as"))) + if (! (lex() == T_IDENTIFIER && tokenText() == QLatin1String("as"))) return false; // expected `as' if (lex() != T_IDENTIFIER) diff --git a/src/libs/qmljs/parser/qmljslexer_p.h b/src/libs/qmljs/parser/qmljslexer_p.h index 3c46180a4c..422ea5509d 100644 --- a/src/libs/qmljs/parser/qmljslexer_p.h +++ b/src/libs/qmljs/parser/qmljslexer_p.h @@ -92,7 +92,6 @@ public: T_IMPLEMENTS = T_RESERVED_WORD, T_INT = T_RESERVED_WORD, T_INTERFACE = T_RESERVED_WORD, - T_LET = T_RESERVED_WORD, T_LONG = T_RESERVED_WORD, T_NATIVE = T_RESERVED_WORD, T_PACKAGE = T_RESERVED_WORD, @@ -104,8 +103,7 @@ public: T_SYNCHRONIZED = T_RESERVED_WORD, T_THROWS = T_RESERVED_WORD, T_TRANSIENT = T_RESERVED_WORD, - T_VOLATILE = T_RESERVED_WORD, - T_YIELD = T_RESERVED_WORD + T_VOLATILE = T_RESERVED_WORD }; enum Error { @@ -182,6 +180,7 @@ private: int scanNumber(QChar ch); bool isLineTerminator() const; + unsigned isLineTerminatorSequence() const; static bool isIdentLetter(QChar c); static bool isDecimalDigit(ushort c); static bool isHexDigit(QChar c); diff --git a/src/libs/qmljs/parser/qmljsparser.cpp b/src/libs/qmljs/parser/qmljsparser.cpp index 47608ea3aa..71e994fc72 100644 --- a/src/libs/qmljs/parser/qmljsparser.cpp +++ b/src/libs/qmljs/parser/qmljsparser.cpp @@ -27,7 +27,7 @@ ** ****************************************************************************/ -#include <QtCore/QDebug> +#include <QtCore/QtDebug> #include <QtCore/QCoreApplication> #include <string.h> @@ -43,8 +43,15 @@ #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,90 +1507,90 @@ 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: { +case 318: +case 319: { 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 319: { +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 321: { +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: { +case 334: { sym(1).Node = 0; } break; -case 334: { +case 335: { sym(1).Node = sym(1).FormalParameterList->finish (); } break; -case 335: { +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; diff --git a/src/libs/qmljs/parser/qmljsparser_p.h b/src/libs/qmljs/parser/qmljsparser_p.h index daec797849..e8e44c40f8 100644 --- a/src/libs/qmljs/parser/qmljsparser_p.h +++ b/src/libs/qmljs/parser/qmljsparser_p.h @@ -40,8 +40,15 @@ // // +// 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 // #ifndef QMLJSPARSER_P_H |