From 61d30a20ce5086badd19c6cc6696387290d6f642 Mon Sep 17 00:00:00 2001 From: Marco Benelli Date: Thu, 16 Mar 2017 17:13:46 +0100 Subject: QmlJs: sync qmljs parser The last version of the grammar contains some constructs that the code model needs to know. Task-number: QTCREATORBUG-17842 Change-Id: I6250f96431acc05b19f3fd1b6cc268a07485cf0f Reviewed-by: Leena Miettinen Reviewed-by: Tim Jenssen --- src/libs/qmljs/parser/qmldirparser.cpp | 9 + src/libs/qmljs/parser/qmlerror.cpp | 85 +- src/libs/qmljs/parser/qmlerror.h | 6 +- src/libs/qmljs/parser/qmljs.g | 194 ++-- src/libs/qmljs/parser/qmljsast_p.h | 582 +++++------ src/libs/qmljs/parser/qmljsastfwd_p.h | 1 + src/libs/qmljs/parser/qmljsastvisitor_p.h | 1 + src/libs/qmljs/parser/qmljsengine_p.cpp | 2 +- src/libs/qmljs/parser/qmljsengine_p.h | 1 + src/libs/qmljs/parser/qmljsglobal_p.h | 1 + src/libs/qmljs/parser/qmljsgrammar.cpp | 1045 ++++++++++---------- src/libs/qmljs/parser/qmljsgrammar_p.h | 17 +- src/libs/qmljs/parser/qmljskeywords_p.h | 1 + src/libs/qmljs/parser/qmljslexer_p.h | 1 + src/libs/qmljs/parser/qmljsmemorypool_p.h | 10 +- src/libs/qmljs/parser/qmljsparser.cpp | 455 +++++---- src/libs/qmljs/parser/qmljsparser_p.h | 7 +- src/libs/qmljs/qmljscheck.cpp | 5 +- src/libs/qmljs/qmljsinterpreter.cpp | 18 +- .../componentcore/findimplementation.cpp | 2 +- .../designercore/metainfo/nodemetainfo.cpp | 4 +- .../designercore/model/texttomodelmerger.cpp | 4 +- src/plugins/qmljseditor/qmljsfindreferences.cpp | 6 +- .../qmljseditor/qmljssemantichighlighter.cpp | 4 +- 24 files changed, 1325 insertions(+), 1136 deletions(-) diff --git a/src/libs/qmljs/parser/qmldirparser.cpp b/src/libs/qmljs/parser/qmldirparser.cpp index cb75a56516..ece7384c98 100644 --- a/src/libs/qmljs/parser/qmldirparser.cpp +++ b/src/libs/qmljs/parser/qmldirparser.cpp @@ -174,6 +174,15 @@ bool QmlDirParser::parse(const QString &source) _plugins.append(entry); + } else if (sections[0] == QLatin1String("classname")) { + if (sectionCount < 2) { + reportError(lineNumber, 0, + QStringLiteral("classname directive requires an argument, but %1 were provided").arg(sectionCount - 1)); + + continue; + } + + // Ignore these. qmlimportscanner uses them. } else if (sections[0] == QLatin1String("internal")) { if (sectionCount != 3) { reportError(lineNumber, 0, diff --git a/src/libs/qmljs/parser/qmlerror.cpp b/src/libs/qmljs/parser/qmlerror.cpp index 744c0de166..bd4d35af30 100644 --- a/src/libs/qmljs/parser/qmlerror.cpp +++ b/src/libs/qmljs/parser/qmlerror.cpp @@ -29,6 +29,7 @@ #include #include #include +#include @@ -76,11 +77,12 @@ public: QString description; quint16 line; quint16 column; + QtMsgType messageType; QObject *object; }; QmlErrorPrivate::QmlErrorPrivate() -: line(0), column(0), object() +: line(0), column(0), messageType(QtMsgType::QtWarningMsg), object() { } @@ -110,12 +112,14 @@ QmlError &QmlError::operator=(const QmlError &other) delete d; d = 0; } else { - if (!d) d = new QmlErrorPrivate; + if (!d) + d = new QmlErrorPrivate; d->url = other.d->url; d->description = other.d->description; d->line = other.d->line; d->column = other.d->column; d->object = other.d->object; + d->messageType = other.d->messageType; } return *this; } @@ -141,8 +145,9 @@ bool QmlError::isValid() const */ QUrl QmlError::url() const { - if (d) return d->url; - else return QUrl(); + if (d) + return d->url; + return QUrl(); } /*! @@ -150,7 +155,8 @@ QUrl QmlError::url() const */ void QmlError::setUrl(const QUrl &url) { - if (!d) d = new QmlErrorPrivate; + if (!d) + d = new QmlErrorPrivate; d->url = url; } @@ -159,8 +165,9 @@ void QmlError::setUrl(const QUrl &url) */ QString QmlError::description() const { - if (d) return d->description; - else return QString(); + if (d) + return d->description; + return QString(); } /*! @@ -168,7 +175,8 @@ QString QmlError::description() const */ void QmlError::setDescription(const QString &description) { - if (!d) d = new QmlErrorPrivate; + if (!d) + d = new QmlErrorPrivate; d->description = description; } @@ -177,8 +185,9 @@ void QmlError::setDescription(const QString &description) */ int QmlError::line() const { - if (d) return qmlSourceCoordinate(d->line); - else return -1; + if (d) + return qmlSourceCoordinate(d->line); + return -1; } /*! @@ -186,7 +195,8 @@ int QmlError::line() const */ void QmlError::setLine(int line) { - if (!d) d = new QmlErrorPrivate; + if (!d) + d = new QmlErrorPrivate; d->line = qmlSourceCoordinate(line); } @@ -195,8 +205,9 @@ void QmlError::setLine(int line) */ int QmlError::column() const { - if (d) return qmlSourceCoordinate(d->column); - else return -1; + if (d) + return qmlSourceCoordinate(d->column); + return -1; } /*! @@ -204,7 +215,8 @@ int QmlError::column() const */ void QmlError::setColumn(int column) { - if (!d) d = new QmlErrorPrivate; + if (!d) + d = new QmlErrorPrivate; d->column = qmlSourceCoordinate(column); } @@ -216,8 +228,9 @@ void QmlError::setColumn(int column) */ QObject *QmlError::object() const { - if (d) return d->object; - else return 0; + if (d) + return d->object; + return 0; } /*! @@ -225,10 +238,36 @@ QObject *QmlError::object() const */ void QmlError::setObject(QObject *object) { - if (!d) d = new QmlErrorPrivate; + if (!d) + d = new QmlErrorPrivate; d->object = object; } +/*! + \since 5.9 + + Returns the message type. + */ +QtMsgType QmlError::messageType() const +{ + if (d) + return d->messageType; + return QtMsgType::QtWarningMsg; +} + +/*! + \since 5.9 + + Sets the \a messageType for this message. The message type determines which + QDebug handlers are responsible for recieving the message. + */ +void QmlError::setMessageType(QtMsgType messageType) +{ + if (!d) + d = new QmlErrorPrivate; + d->messageType = messageType; +} + /*! Returns the error as a human readable string. */ @@ -240,9 +279,9 @@ QString QmlError::toString() const int l(line()); if (u.isEmpty() || (u.isLocalFile() && u.path().isEmpty())) - rv = QLatin1String(""); + rv += QLatin1String(""); else - rv = u.toString(); + rv += u.toString(); if (l != -1) { rv += QLatin1Char(':') + QString::number(l); @@ -276,15 +315,15 @@ QDebug operator<<(QDebug debug, const QmlError &error) if (f.open(QIODevice::ReadOnly)) { QByteArray data = f.readAll(); QTextStream stream(data, QIODevice::ReadOnly); -#ifndef QT_NO_TEXTCODEC +#if QT_CONFIG(textcodec) stream.setCodec("UTF-8"); #endif const QString code = stream.readAll(); - const QStringList lines = code.split(QLatin1Char('\n')); + const auto lines = code.splitRef(QLatin1Char('\n')); if (lines.count() >= error.line()) { - const QString &line = lines.at(error.line() - 1); - debug << "\n " << qPrintable(line); + const QStringRef &line = lines.at(error.line() - 1); + debug << "\n " << line.toLocal8Bit().constData(); if (error.column() > 0) { int column = qMax(0, error.column() - 1); diff --git a/src/libs/qmljs/parser/qmlerror.h b/src/libs/qmljs/parser/qmlerror.h index 6219a7c8b5..69fd20153f 100644 --- a/src/libs/qmljs/parser/qmlerror.h +++ b/src/libs/qmljs/parser/qmlerror.h @@ -25,13 +25,12 @@ #pragma once - - #include #include QT_BEGIN_NAMESPACE +// ### Qt 6: should this be called QmlMessage, since it can have a message type? class QDebug; class QmlErrorPrivate; class QmlError @@ -54,6 +53,8 @@ public: void setColumn(int); QObject *object() const; void setObject(QObject *); + QtMsgType messageType() const; + void setMessageType(QtMsgType messageType); QString toString() const; private: @@ -65,3 +66,4 @@ QDebug operator<<(QDebug debug, const QmlError &error); Q_DECLARE_TYPEINFO(QmlError, Q_MOVABLE_TYPE); QT_END_NAMESPACE + diff --git a/src/libs/qmljs/parser/qmljs.g b/src/libs/qmljs/parser/qmljs.g index 019250466e..22fb17e2e3 100644 --- a/src/libs/qmljs/parser/qmljs.g +++ b/src/libs/qmljs/parser/qmljs.g @@ -1,31 +1,37 @@ ---------------------------------------------------------------------------- -- --- Copyright (C) 2015 The Qt Company Ltd. +-- Copyright (C) 2016 The Qt Company Ltd. -- Contact: http://www.qt.io/licensing/ -- -- This file is part of the QtQml module of the Qt Toolkit. -- --- $QT_BEGIN_LICENSE:LGPL21$ +-- $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 -- Software or, alternatively, in accordance with the terms contained in -- a written agreement between you and The Qt Company. For licensing terms --- and conditions see http://www.qt.io/terms-conditions. For further --- information use the contact form at http://www.qt.io/contact-us. +-- and conditions see https://www.qt.io/terms-conditions. For further +-- information use the contact form at https://www.qt.io/contact-us. -- -- GNU Lesser General Public License Usage -- Alternatively, this file may be used under the terms of the GNU Lesser --- General Public License version 2.1 or version 3 as published by the Free --- Software Foundation and appearing in the file LICENSE.LGPLv21 and --- LICENSE.LGPLv3 included in the packaging of this file. Please review the --- following information to ensure the GNU Lesser General Public License --- requirements will be met: https://www.gnu.org/licenses/lgpl.html and --- http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +-- General Public License version 3 as published by the Free Software +-- Foundation and appearing in the file LICENSE.LGPL3 included in the +-- packaging of this file. Please review the following information to +-- ensure the GNU Lesser General Public License version 3 requirements +-- will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -- --- As a special exception, The Qt Company gives you certain additional --- rights. These rights are described in The Qt Company 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 2.0 or (at your option) the GNU General +-- Public license version 3 or any later version approved by the KDE Free +-- Qt Foundation. The licenses are as published by the Free Software +-- Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +-- included in the packaging of this file. Please review the following +-- information to ensure the GNU General Public License requirements will +-- be met: https://www.gnu.org/licenses/gpl-2.0.html and +-- https://www.gnu.org/licenses/gpl-3.0.html. -- -- $QT_END_LICENSE$ -- @@ -99,32 +105,38 @@ /./**************************************************************************** ** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtQml module of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL21$ +** $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 ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms -** and conditions see http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 or version 3 as published by the Free -** Software Foundation and appearing in the file LICENSE.LGPLv21 and -** LICENSE.LGPLv3 included in the packaging of this file. Please review the -** following information to ensure the GNU Lesser General Public License -** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. ** -** As a special exception, The Qt Company gives you certain additional -** rights. These rights are described in The Qt Company 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 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** @@ -144,32 +156,38 @@ /:/**************************************************************************** ** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtQml module of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL21$ +** $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 ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms -** and conditions see http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 or version 3 as published by the Free -** Software Foundation and appearing in the file LICENSE.LGPLv21 and -** LICENSE.LGPLv3 included in the packaging of this file. Please review the -** following information to ensure the GNU Lesser General Public License -** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. ** -** As a special exception, The Qt Company gives you certain additional -** rights. These rights are described in The Qt Company 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 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** @@ -199,7 +217,8 @@ // qlalr --no-debug --no-lines --qt qmljs.g // -#prama once +#ifndef QMLJSPARSER_P_H +#define QMLJSPARSER_P_H #include "qmljsglobal_p.h" #include "qmljsgrammar_p.h" @@ -311,7 +330,7 @@ public: inline DiagnosticMessage diagnosticMessage() const { - foreach (const DiagnosticMessage &d, diagnostic_messages) { + for (const DiagnosticMessage &d : diagnostic_messages) { if (d.kind != DiagnosticMessage::Warning) return d; } @@ -897,8 +916,40 @@ case $rule_number: ./ UiPropertyType: T_VAR ; +/. +case $rule_number: { + AST::UiQualifiedId *node = new (pool) AST::UiQualifiedId(stringRef(1)); + node->identifierToken = loc(1); + sym(1).Node = node; +} break; +./ + UiPropertyType: T_RESERVED_WORD ; +/. +case $rule_number: { + AST::UiQualifiedId *node = new (pool) AST::UiQualifiedId(stringRef(1)); + node->identifierToken = loc(1); + sym(1).Node = node; +} break; +./ + UiPropertyType: T_IDENTIFIER ; +/. +case $rule_number: { + AST::UiQualifiedId *node = new (pool) AST::UiQualifiedId(stringRef(1)); + node->identifierToken = loc(1); + sym(1).Node = node; +} break; +./ + +UiPropertyType: UiPropertyType T_DOT T_IDENTIFIER ; +/. +case $rule_number: { + AST::UiQualifiedId *node = new (pool) AST::UiQualifiedId(sym(1).UiQualifiedId, stringRef(3)); + node->identifierToken = loc(3); + sym(1).Node = node; +} break; +./ UiParameterListOpt: ; /. @@ -917,7 +968,7 @@ case $rule_number: { UiParameterList: UiPropertyType JsIdentifier ; /. case $rule_number: { - AST::UiParameterList *node = new (pool) AST::UiParameterList(stringRef(1), stringRef(2)); + AST::UiParameterList *node = new (pool) AST::UiParameterList(sym(1).UiQualifiedId->finish(), stringRef(2)); node->propertyTypeToken = loc(1); node->identifierToken = loc(2); sym(1).Node = node; @@ -927,7 +978,7 @@ case $rule_number: { UiParameterList: UiParameterList T_COMMA UiPropertyType JsIdentifier ; /. case $rule_number: { - AST::UiParameterList *node = new (pool) AST::UiParameterList(sym(1).UiParameterList, stringRef(3), stringRef(4)); + AST::UiParameterList *node = new (pool) AST::UiParameterList(sym(1).UiParameterList, sym(3).UiQualifiedId->finish(), stringRef(4)); node->propertyTypeToken = loc(3); node->commaToken = loc(2); node->identifierToken = loc(4); @@ -939,7 +990,7 @@ UiObjectMember: T_SIGNAL T_IDENTIFIER T_LPAREN UiParameterListOpt T_RPAREN T_AUT UiObjectMember: T_SIGNAL T_IDENTIFIER T_LPAREN UiParameterListOpt T_RPAREN T_SEMICOLON ; /. case $rule_number: { - AST::UiPublicMember *node = new (pool) AST::UiPublicMember(QStringRef(), stringRef(2)); + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(nullptr, stringRef(2)); node->type = AST::UiPublicMember::Signal; node->propertyToken = loc(1); node->typeToken = loc(2); @@ -954,7 +1005,7 @@ UiObjectMember: T_SIGNAL T_IDENTIFIER T_AUTOMATIC_SEMICOLON ; UiObjectMember: T_SIGNAL T_IDENTIFIER T_SEMICOLON ; /. case $rule_number: { - AST::UiPublicMember *node = new (pool) AST::UiPublicMember(QStringRef(), stringRef(2)); + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(nullptr, stringRef(2)); node->type = AST::UiPublicMember::Signal; node->propertyToken = loc(1); node->typeToken = loc(2); @@ -968,7 +1019,7 @@ UiObjectMember: T_PROPERTY T_IDENTIFIER T_LT UiPropertyType T_GT JsIdentifier T_ UiObjectMember: T_PROPERTY T_IDENTIFIER T_LT UiPropertyType T_GT JsIdentifier T_SEMICOLON ; /. case $rule_number: { - AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(4), stringRef(6)); + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(sym(4).UiQualifiedId->finish(), stringRef(6)); node->typeModifier = stringRef(2); node->propertyToken = loc(1); node->typeModifierToken = loc(2); @@ -983,7 +1034,7 @@ UiObjectMember: T_PROPERTY UiPropertyType JsIdentifier T_AUTOMATIC_SEMICOLON ; UiObjectMember: T_PROPERTY UiPropertyType JsIdentifier T_SEMICOLON ; /. case $rule_number: { - AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(2), stringRef(3)); + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(sym(2).UiQualifiedId->finish(), stringRef(3)); node->propertyToken = loc(1); node->typeToken = loc(2); node->identifierToken = loc(3); @@ -996,7 +1047,7 @@ UiObjectMember: T_DEFAULT T_PROPERTY UiPropertyType JsIdentifier T_AUTOMATIC_SEM UiObjectMember: T_DEFAULT T_PROPERTY UiPropertyType JsIdentifier T_SEMICOLON ; /. case $rule_number: { - AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(3), stringRef(4)); + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(sym(3).UiQualifiedId->finish(), stringRef(4)); node->isDefaultMember = true; node->defaultToken = loc(1); node->propertyToken = loc(2); @@ -1007,10 +1058,27 @@ case $rule_number: { } break; ./ +UiObjectMember: T_DEFAULT T_PROPERTY T_IDENTIFIER T_LT UiPropertyType T_GT JsIdentifier T_AUTOMATIC_SEMICOLON ; +UiObjectMember: T_DEFAULT T_PROPERTY T_IDENTIFIER T_LT UiPropertyType T_GT JsIdentifier T_SEMICOLON ; +/. +case $rule_number: { + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(sym(5).UiQualifiedId->finish(), stringRef(7)); + node->isDefaultMember = true; + node->defaultToken = loc(1); + node->typeModifier = stringRef(3); + node->propertyToken = loc(2); + node->typeModifierToken = loc(2); + node->typeToken = loc(4); + node->identifierToken = loc(7); + node->semicolonToken = loc(8); + sym(1).Node = node; +} break; +./ + UiObjectMember: T_PROPERTY UiPropertyType JsIdentifier T_COLON UiScriptStatement ; /. case $rule_number: { - AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(2), stringRef(3), + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(sym(2).UiQualifiedId->finish(), stringRef(3), sym(5).Statement); node->propertyToken = loc(1); node->typeToken = loc(2); @@ -1023,7 +1091,7 @@ case $rule_number: { UiObjectMember: T_READONLY T_PROPERTY UiPropertyType JsIdentifier T_COLON UiScriptStatement ; /. case $rule_number: { - AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(3), stringRef(4), + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(sym(3).UiQualifiedId->finish(), stringRef(4), sym(6).Statement); node->isReadonlyMember = true; node->readonlyToken = loc(1); @@ -1038,7 +1106,7 @@ case $rule_number: { UiObjectMember: T_DEFAULT T_PROPERTY UiPropertyType JsIdentifier T_COLON UiScriptStatement ; /. case $rule_number: { - AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(3), stringRef(4), + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(sym(3).UiQualifiedId->finish(), stringRef(4), sym(6).Statement); node->isDefaultMember = true; node->defaultToken = loc(1); @@ -1053,7 +1121,7 @@ case $rule_number: { UiObjectMember: T_PROPERTY T_IDENTIFIER T_LT UiPropertyType T_GT JsIdentifier T_COLON T_LBRACKET UiArrayMemberList T_RBRACKET ; /. case $rule_number: { - AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(4), stringRef(6)); + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(sym(4).UiQualifiedId->finish(), stringRef(6)); node->typeModifier = stringRef(2); node->propertyToken = loc(1); node->typeModifierToken = loc(2); @@ -1080,7 +1148,7 @@ case $rule_number: { UiObjectMember: T_PROPERTY UiPropertyType JsIdentifier T_COLON UiQualifiedId UiObjectInitializer ; /. case $rule_number: { - AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(2), stringRef(3)); + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(sym(2).UiQualifiedId->finish(), stringRef(3)); node->propertyToken = loc(1); node->typeToken = loc(2); node->identifierToken = loc(3); @@ -1103,7 +1171,7 @@ case $rule_number: { UiObjectMember: T_READONLY T_PROPERTY UiPropertyType JsIdentifier T_COLON UiQualifiedId UiObjectInitializer ; /. case $rule_number: { - AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(3), stringRef(4)); + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(sym(3).UiQualifiedId->finish(), stringRef(4)); node->isReadonlyMember = true; node->readonlyToken = loc(1); node->propertyToken = loc(2); @@ -3041,7 +3109,7 @@ PropertyAssignmentListOpt: PropertyAssignmentList ; yylloc.startColumn += yylloc.length; yylloc.length = 0; - //const QString msg = qApp->translate("QmlParser", "Missing `;'"); + //const QString msg = QCoreApplication::translate("QmlParser", "Missing \";\"."); //diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Warning, yylloc, msg)); first_token = &token_buffer[0]; @@ -3071,9 +3139,9 @@ PropertyAssignmentListOpt: PropertyAssignmentList ; QString msg; int token = token_buffer[0].token; if (token < 0 || token >= TERMINAL_COUNT) - msg = QCoreApplication::translate("QmlParser", "Syntax error"); + msg = QCoreApplication::translate("QmlParser", "Syntax error."); else - msg = QCoreApplication::translate("QmlParser", "Unexpected token `%1'").arg(QLatin1String(spell[token])); + msg = QCoreApplication::translate("QmlParser", "Unexpected token \"%1\".").arg(QLatin1String(spell[token])); diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, token_buffer[0].loc, msg)); action = errorState; @@ -3101,7 +3169,7 @@ PropertyAssignmentListOpt: PropertyAssignmentList ; for (int *tk = tokens; *tk != EOF_SYMBOL; ++tk) { int a = t_action(errorState, *tk); if (a > 0 && t_action(a, yytoken)) { - const QString msg = QCoreApplication::translate("QmlParser", "Expected token `%1'").arg(QLatin1String(spell[*tk])); + const QString msg = QCoreApplication::translate("QmlParser", "Expected token \"%1\".").arg(QLatin1String(spell[*tk])); diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, token_buffer[0].loc, msg)); yytoken = *tk; @@ -3125,7 +3193,7 @@ PropertyAssignmentListOpt: PropertyAssignmentList ; int a = t_action(errorState, tk); if (a > 0 && t_action(a, yytoken)) { - const QString msg = QCoreApplication::translate("QmlParser", "Expected token `%1'").arg(QLatin1String(spell[tk])); + const QString msg = QCoreApplication::translate("QmlParser", "Expected token \"%1\".").arg(QLatin1String(spell[tk])); diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, token_buffer[0].loc, msg)); yytoken = tk; @@ -3138,7 +3206,7 @@ PropertyAssignmentListOpt: PropertyAssignmentList ; } } - const QString msg = QCoreApplication::translate("QmlParser", "Syntax error"); + const QString msg = QCoreApplication::translate("QmlParser", "Syntax error."); diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, token_buffer[0].loc, msg)); } @@ -3153,4 +3221,6 @@ QT_QML_END_NAMESPACE QT_QML_END_NAMESPACE + +#endif // QMLJSPARSER_P_H :/ diff --git a/src/libs/qmljs/parser/qmljsast_p.h b/src/libs/qmljs/parser/qmljsast_p.h index a05a363496..0a06dace61 100644 --- a/src/libs/qmljs/parser/qmljsast_p.h +++ b/src/libs/qmljs/parser/qmljsast_p.h @@ -238,7 +238,7 @@ class QML_PARSER_EXPORT ExpressionNode: public Node public: ExpressionNode() {} - virtual ExpressionNode *expressionCast(); + ExpressionNode *expressionCast() override; }; class QML_PARSER_EXPORT Statement: public Node @@ -246,7 +246,7 @@ class QML_PARSER_EXPORT Statement: public Node public: Statement() {} - virtual Statement *statementCast(); + Statement *statementCast() override; }; class QML_PARSER_EXPORT NestedExpression: public ExpressionNode @@ -258,12 +258,12 @@ public: : expression(expression) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return lparenToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return rparenToken; } // attributes @@ -279,12 +279,12 @@ public: ThisExpression() { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return thisToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return thisToken; } // attributes @@ -299,12 +299,12 @@ public: IdentifierExpression(const QStringRef &n): name (n) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return identifierToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return identifierToken; } // attributes @@ -319,12 +319,12 @@ public: NullExpression() { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return nullToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return nullToken; } // attributes @@ -338,12 +338,12 @@ public: TrueLiteral() { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return trueToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return trueToken; } // attributes @@ -357,12 +357,12 @@ public: FalseLiteral() { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return falseToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return falseToken; } // attributes @@ -377,12 +377,12 @@ public: NumericLiteral(double v): value(v) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return literalToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return literalToken; } // attributes: @@ -398,12 +398,12 @@ public: StringLiteral(const QStringRef &v): value (v) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return literalToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return literalToken; } // attributes: @@ -419,12 +419,12 @@ public: RegExpLiteral(const QStringRef &p, int f): pattern (p), flags (f) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return literalToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return literalToken; } // attributes: @@ -450,12 +450,12 @@ public: elements (elts), elision (e) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return lbracketToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return rbracketToken; } // attributes @@ -477,12 +477,12 @@ public: ObjectLiteral(PropertyAssignmentList *plist): properties (plist) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return lbraceToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return rbraceToken; } // attributes @@ -506,12 +506,12 @@ public: previous->next = this; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return commaToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return next ? next->lastSourceLocation() : commaToken; } inline Elision *finish () @@ -550,16 +550,16 @@ public: return front; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { if (elision) return elision->firstSourceLocation(); return expression->firstSourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { if (next) return next->lastSourceLocation(); @@ -580,10 +580,10 @@ public: PropertyName() { kind = K; } - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return propertyNameToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return propertyNameToken; } virtual QString asString() const = 0; @@ -627,12 +627,12 @@ public: return front; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return assignment->firstSourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return next ? next->lastSourceLocation() : assignment->lastSourceLocation(); } // attributes @@ -650,12 +650,12 @@ public: : PropertyAssignment(n), value(v) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return name->firstSourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return value->lastSourceLocation(); } // attributes @@ -682,12 +682,12 @@ public: : PropertyAssignment(n), type(Setter), formals(f), functionBody (b) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return getSetToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return rbraceToken; } // attributes @@ -709,9 +709,9 @@ public: IdentifierPropertyName(const QStringRef &n): id (n) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual QString asString() const { return id.toString(); } + QString asString() const override { return id.toString(); } // attributes QStringRef id; @@ -725,9 +725,9 @@ public: StringLiteralPropertyName(const QStringRef &n): id (n) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual QString asString() const { return id.toString(); } + QString asString() const override { return id.toString(); } // attributes QStringRef id; @@ -741,9 +741,9 @@ public: NumericLiteralPropertyName(double n): id (n) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual QString asString() const { return QString::number(id, 'g', 16); } + QString asString() const override { return QString::number(id, 'g', 16); } // attributes double id; @@ -758,12 +758,12 @@ public: base (b), expression (e) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return base->firstSourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return rbracketToken; } // attributes @@ -782,12 +782,12 @@ public: base (b), name (n) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return base->firstSourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return identifierToken; } // attributes @@ -806,12 +806,12 @@ public: base (b), arguments (a) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return newToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return rparenToken; } // attributes @@ -830,12 +830,12 @@ public: NewExpression(ExpressionNode *e): expression (e) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return newToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return expression->lastSourceLocation(); } // attributes @@ -852,12 +852,12 @@ public: base (b), arguments (a) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return base->firstSourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return rparenToken; } // attributes @@ -884,12 +884,12 @@ public: previous->next = this; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return expression->firstSourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { if (next) return next->lastSourceLocation(); @@ -917,12 +917,12 @@ public: PostIncrementExpression(ExpressionNode *b): base (b) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return base->firstSourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return incrementToken; } // attributes @@ -938,12 +938,12 @@ public: PostDecrementExpression(ExpressionNode *b): base (b) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return base->firstSourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return decrementToken; } // attributes @@ -959,12 +959,12 @@ public: DeleteExpression(ExpressionNode *e): expression (e) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return deleteToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return expression->lastSourceLocation(); } // attributes @@ -980,12 +980,12 @@ public: VoidExpression(ExpressionNode *e): expression (e) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return voidToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return expression->lastSourceLocation(); } // attributes @@ -1001,12 +1001,12 @@ public: TypeOfExpression(ExpressionNode *e): expression (e) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return typeofToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return expression->lastSourceLocation(); } // attributes @@ -1022,12 +1022,12 @@ public: PreIncrementExpression(ExpressionNode *e): expression (e) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return incrementToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return expression->lastSourceLocation(); } // attributes @@ -1043,12 +1043,12 @@ public: PreDecrementExpression(ExpressionNode *e): expression (e) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return decrementToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return expression->lastSourceLocation(); } // attributes @@ -1064,12 +1064,12 @@ public: UnaryPlusExpression(ExpressionNode *e): expression (e) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return plusToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return expression->lastSourceLocation(); } // attributes @@ -1085,12 +1085,12 @@ public: UnaryMinusExpression(ExpressionNode *e): expression (e) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return minusToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return expression->lastSourceLocation(); } // attributes @@ -1106,12 +1106,12 @@ public: TildeExpression(ExpressionNode *e): expression (e) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return tildeToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return expression->lastSourceLocation(); } // attributes @@ -1127,12 +1127,12 @@ public: NotExpression(ExpressionNode *e): expression (e) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return notToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return expression->lastSourceLocation(); } // attributes @@ -1149,14 +1149,14 @@ public: left (l), op (o), right (r) { kind = K; } - virtual BinaryExpression *binaryExpressionCast(); + BinaryExpression *binaryExpressionCast() override; - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return left->firstSourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return right->lastSourceLocation(); } // attributes @@ -1175,12 +1175,12 @@ public: expression (e), ok (t), ko (f) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return expression->firstSourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return ko->lastSourceLocation(); } // attributes @@ -1199,12 +1199,12 @@ public: Expression(ExpressionNode *l, ExpressionNode *r): left (l), right (r) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return left->firstSourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return right->lastSourceLocation(); } // attributes @@ -1221,12 +1221,12 @@ public: Block(StatementList *slist): statements (slist) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return lbraceToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return rbraceToken; } // attributes @@ -1252,12 +1252,12 @@ public: previous->next = this; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return statement->firstSourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return next ? next->lastSourceLocation() : statement->lastSourceLocation(); } inline StatementList *finish () @@ -1281,12 +1281,12 @@ public: declarations (vlist) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return declarationKindToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return semicolonToken; } // attributes @@ -1304,12 +1304,12 @@ public: name (n), expression (e), readOnly(false) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return identifierToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return expression ? expression->lastSourceLocation() : identifierToken; } // attributes @@ -1336,12 +1336,12 @@ public: previous->next = this; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return declaration->firstSourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { if (next) return next->lastSourceLocation(); @@ -1373,12 +1373,12 @@ public: EmptyStatement() { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return semicolonToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return semicolonToken; } // attributes @@ -1393,12 +1393,12 @@ public: ExpressionStatement(ExpressionNode *e): expression (e) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return expression->firstSourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return semicolonToken; } // attributes @@ -1415,12 +1415,12 @@ public: expression (e), ok (t), ko (f) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return ifToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { if (ko) return ko->lastSourceLocation(); @@ -1447,12 +1447,12 @@ public: statement (stmt), expression (e) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return doToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return semicolonToken; } // attributes @@ -1474,12 +1474,12 @@ public: expression (e), statement (stmt) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return whileToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return statement->lastSourceLocation(); } // attributes @@ -1499,12 +1499,12 @@ public: initialiser (i), condition (c), expression (e), statement (stmt) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return forToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return statement->lastSourceLocation(); } // attributes @@ -1528,12 +1528,12 @@ public: declarations (vlist), condition (c), expression (e), statement (stmt) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return forToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return statement->lastSourceLocation(); } // attributes @@ -1558,12 +1558,12 @@ public: initialiser (i), expression (e), statement (stmt) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return forToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return statement->lastSourceLocation(); } // attributes @@ -1585,12 +1585,12 @@ public: declaration (v), expression (e), statement (stmt) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return forToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return statement->lastSourceLocation(); } // attributes @@ -1612,12 +1612,12 @@ public: ContinueStatement(const QStringRef &l = QStringRef()): label (l) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return continueToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return semicolonToken; } // attributes @@ -1635,12 +1635,12 @@ public: BreakStatement(const QStringRef &l): label (l) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return breakToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return semicolonToken; } // attributes @@ -1658,12 +1658,12 @@ public: ReturnStatement(ExpressionNode *e): expression (e) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return returnToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return semicolonToken; } // attributes @@ -1681,12 +1681,12 @@ public: expression (e), statement (stmt) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return withToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return statement->lastSourceLocation(); } // attributes @@ -1706,12 +1706,12 @@ public: clauses (c), defaultClause (d), moreClauses (r) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return lbraceToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return rbraceToken; } // attributes @@ -1731,12 +1731,12 @@ public: expression (e), block (b) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return switchToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return block->rbraceToken; } // attributes @@ -1756,12 +1756,12 @@ public: expression (e), statements (slist) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return caseToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return statements ? statements->lastSourceLocation() : colonToken; } // attributes @@ -1788,12 +1788,12 @@ public: previous->next = this; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return clause->firstSourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return next ? next->lastSourceLocation() : clause->lastSourceLocation(); } inline CaseClauses *finish () @@ -1817,12 +1817,12 @@ public: statements (slist) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return defaultToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return statements ? statements->lastSourceLocation() : colonToken; } // attributes @@ -1840,12 +1840,12 @@ public: label (l), statement (stmt) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return identifierToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return statement->lastSourceLocation(); } // attributes @@ -1863,12 +1863,12 @@ public: ThrowStatement(ExpressionNode *e): expression (e) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return throwToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return semicolonToken; } // attributes @@ -1886,12 +1886,12 @@ public: name (n), statement (stmt) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return catchToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return statement->lastSourceLocation(); } // attributes @@ -1912,12 +1912,12 @@ public: statement (stmt) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return finallyToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return statement ? statement->lastSourceLocation() : finallyToken; } // attributes @@ -1942,12 +1942,12 @@ public: statement (stmt), catchExpression (c), finallyExpression (0) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return tryToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { if (finallyExpression) return finallyExpression->statement->rbraceToken; @@ -1973,12 +1973,12 @@ public: name (n), formals (f), body (b) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return functionToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return rbraceToken; } // attributes @@ -2002,7 +2002,7 @@ public: FunctionExpression(n, f, b) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; }; class QML_PARSER_EXPORT FormalParameterList: public Node @@ -2022,12 +2022,12 @@ public: previous->next = this; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return identifierToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return next ? next->lastSourceLocation() : identifierToken; } inline FormalParameterList *finish () @@ -2070,12 +2070,12 @@ public: previous->next = this; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return element->firstSourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return next ? next->lastSourceLocation() : element->lastSourceLocation(); } inline SourceElements *finish () @@ -2099,12 +2099,12 @@ public: elements (elts) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return elements ? elements->firstSourceLocation() : SourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return elements ? elements->lastSourceLocation() : SourceLocation(); } // attributes @@ -2120,12 +2120,12 @@ public: elements (elts) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return elements ? elements->firstSourceLocation() : SourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return elements ? elements->lastSourceLocation() : SourceLocation(); } // attributes @@ -2141,12 +2141,12 @@ public: declaration (f) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return declaration->firstSourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return declaration->lastSourceLocation(); } // attributes @@ -2162,12 +2162,12 @@ public: statement (stmt) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return statement->firstSourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return statement->lastSourceLocation(); } // attributes @@ -2182,12 +2182,12 @@ public: DebuggerStatement() { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return debuggerToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return semicolonToken; } // attributes @@ -2219,12 +2219,12 @@ public: return head; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return identifierToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return next ? next->lastSourceLocation() : identifierToken; } // attributes @@ -2246,12 +2246,12 @@ public: : importUri(uri) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return importToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return semicolonToken; } // attributes @@ -2269,10 +2269,10 @@ public: class QML_PARSER_EXPORT UiObjectMember: public Node { public: - virtual SourceLocation firstSourceLocation() const = 0; - virtual SourceLocation lastSourceLocation() const = 0; + SourceLocation firstSourceLocation() const override = 0; + SourceLocation lastSourceLocation() const override = 0; - virtual UiObjectMember *uiObjectMemberCast(); + UiObjectMember *uiObjectMemberCast() override; }; class QML_PARSER_EXPORT UiObjectMemberList: public Node @@ -2292,12 +2292,12 @@ public: previous->next = this; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return member->firstSourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return next ? next->lastSourceLocation() : member->lastSourceLocation(); } UiObjectMemberList *finish() @@ -2336,12 +2336,12 @@ public: return head; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return identifierToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return next ? next->lastSourceLocation() : identifierToken; } // attributes @@ -2359,12 +2359,12 @@ public: : pragmaType(type) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return pragmaToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return semicolonToken; } // attributes @@ -2409,12 +2409,12 @@ public: return head; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return headerItem->firstSourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return next ? next->lastSourceLocation() : headerItem->lastSourceLocation(); } // attributes @@ -2431,9 +2431,9 @@ public: : headers(headers), members(members) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { if (headers) return headers->firstSourceLocation(); @@ -2442,7 +2442,7 @@ public: return SourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { if (members) return members->lastSourceLocation(); @@ -2473,12 +2473,12 @@ public: previous->next = this; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return member->firstSourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return next ? next->lastSourceLocation() : member->lastSourceLocation(); } UiArrayMemberList *finish() @@ -2503,12 +2503,12 @@ public: : members(members) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return lbraceToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return rbraceToken; } // attributes @@ -2522,11 +2522,11 @@ class QML_PARSER_EXPORT UiParameterList: public Node public: QMLJS_DECLARE_AST_NODE(UiParameterList) - UiParameterList(const QStringRef &t, const QStringRef &n): + UiParameterList(UiQualifiedId *t, const QStringRef &n): type (t), name (n), next (this) { kind = K; } - UiParameterList(UiParameterList *previous, const QStringRef &t, const QStringRef &n): + UiParameterList(UiParameterList *previous, UiQualifiedId *t, const QStringRef &n): type (t), name (n) { kind = K; @@ -2534,12 +2534,12 @@ public: previous->next = this; } - virtual void accept0(Visitor *); + void accept0(Visitor *) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return propertyTypeToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return next ? next->lastSourceLocation() : identifierToken; } inline UiParameterList *finish () @@ -2550,7 +2550,7 @@ public: } // attributes - QStringRef type; + UiQualifiedId *type; QStringRef name; UiParameterList *next; SourceLocation commaToken; @@ -2563,20 +2563,20 @@ class QML_PARSER_EXPORT UiPublicMember: public UiObjectMember public: QMLJS_DECLARE_AST_NODE(UiPublicMember) - UiPublicMember(const QStringRef &memberType, + UiPublicMember(UiQualifiedId *memberType, const QStringRef &name) : type(Property), memberType(memberType), name(name), statement(0), binding(0), isDefaultMember(false), isReadonlyMember(false), parameters(0) { kind = K; } - UiPublicMember(const QStringRef &memberType, + UiPublicMember(UiQualifiedId *memberType, const QStringRef &name, Statement *statement) : type(Property), memberType(memberType), name(name), statement(statement), binding(0), isDefaultMember(false), isReadonlyMember(false), parameters(0) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { if (defaultToken.isValid()) return defaultToken; @@ -2586,7 +2586,7 @@ public: return propertyToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { if (binding) return binding->lastSourceLocation(); @@ -2596,10 +2596,21 @@ public: return semicolonToken; } + QStringRef memberTypeName() const + { + return memberType ? memberType->name : QStringRef(); + } + + bool isValid() const + { + return memberType && !memberType->name.isNull() && !memberType->name.isEmpty(); + } + // attributes enum { Signal, Property } type; QStringRef typeModifier; - QStringRef memberType; + //QStringRef memberType; + UiQualifiedId *memberType; QStringRef name; Statement *statement; // initialized with a JS expression UiObjectMember *binding; // initialized with a QML object or array. @@ -2626,12 +2637,12 @@ public: : qualifiedTypeNameId(qualifiedTypeNameId), initializer(initializer) { kind = K; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return qualifiedTypeNameId->identifierToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return initializer->rbraceToken; } // attributes @@ -2648,7 +2659,7 @@ public: : sourceElement(sourceElement) { kind = K; } - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { if (FunctionDeclaration *funDecl = cast(sourceElement)) return funDecl->firstSourceLocation(); @@ -2658,7 +2669,7 @@ public: return SourceLocation(); } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { if (FunctionDeclaration *funDecl = cast(sourceElement)) return funDecl->lastSourceLocation(); @@ -2668,7 +2679,7 @@ public: return SourceLocation(); } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; // attributes @@ -2689,7 +2700,7 @@ public: hasOnToken(false) { kind = K; } - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { if (hasOnToken && qualifiedTypeNameId) return qualifiedTypeNameId->identifierToken; @@ -2697,10 +2708,10 @@ public: return qualifiedId->identifierToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return initializer->rbraceToken; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; // attributes @@ -2722,13 +2733,13 @@ public: statement(statement) { kind = K; } - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return qualifiedId->identifierToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return statement->lastSourceLocation(); } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; // attributes UiQualifiedId *qualifiedId; @@ -2747,13 +2758,13 @@ public: members(members) { kind = K; } - virtual SourceLocation firstSourceLocation() const + SourceLocation firstSourceLocation() const override { return qualifiedId->identifierToken; } - virtual SourceLocation lastSourceLocation() const + SourceLocation lastSourceLocation() const override { return rbracketToken; } - virtual void accept0(Visitor *visitor); + void accept0(Visitor *visitor) override; // attributes UiQualifiedId *qualifiedId; @@ -2768,3 +2779,4 @@ public: QT_QML_END_NAMESPACE + diff --git a/src/libs/qmljs/parser/qmljsastfwd_p.h b/src/libs/qmljs/parser/qmljsastfwd_p.h index 9cf82c100e..eb615437d7 100644 --- a/src/libs/qmljs/parser/qmljsastfwd_p.h +++ b/src/libs/qmljs/parser/qmljsastfwd_p.h @@ -170,3 +170,4 @@ class UiHeaderItemList; } } // namespace AST QT_QML_END_NAMESPACE + diff --git a/src/libs/qmljs/parser/qmljsastvisitor_p.h b/src/libs/qmljs/parser/qmljsastvisitor_p.h index 769cb644a4..0762e9b3c3 100644 --- a/src/libs/qmljs/parser/qmljsastvisitor_p.h +++ b/src/libs/qmljs/parser/qmljsastvisitor_p.h @@ -320,3 +320,4 @@ public: } } // namespace AST QT_QML_END_NAMESPACE + diff --git a/src/libs/qmljs/parser/qmljsengine_p.cpp b/src/libs/qmljs/parser/qmljsengine_p.cpp index 0e777835cb..fbcc1b1771 100644 --- a/src/libs/qmljs/parser/qmljsengine_p.cpp +++ b/src/libs/qmljs/parser/qmljsengine_p.cpp @@ -100,7 +100,7 @@ double integerFromString(const char *buf, int size, int radix) double integerFromString(const QString &str, int radix) { - QByteArray ba = str.trimmed().toLatin1(); + QByteArray ba = QStringRef(&str).trimmed().toLatin1(); return integerFromString(ba.constData(), ba.size(), radix); } diff --git a/src/libs/qmljs/parser/qmljsengine_p.h b/src/libs/qmljs/parser/qmljsengine_p.h index 44f7522246..8e20d3567b 100644 --- a/src/libs/qmljs/parser/qmljsengine_p.h +++ b/src/libs/qmljs/parser/qmljsengine_p.h @@ -110,3 +110,4 @@ double integerFromString(const char *buf, int size, int radix); } // end of namespace QmlJS QT_QML_END_NAMESPACE + diff --git a/src/libs/qmljs/parser/qmljsglobal_p.h b/src/libs/qmljs/parser/qmljsglobal_p.h index 12a5dad965..e9ea5ed351 100644 --- a/src/libs/qmljs/parser/qmljsglobal_p.h +++ b/src/libs/qmljs/parser/qmljsglobal_p.h @@ -62,3 +62,4 @@ # define QML_PARSER_EXPORT Q_DECL_IMPORT # endif #endif // QT_CREATOR + diff --git a/src/libs/qmljs/parser/qmljsgrammar.cpp b/src/libs/qmljs/parser/qmljsgrammar.cpp index b1acf49a1e..43d2733ba8 100644 --- a/src/libs/qmljs/parser/qmljsgrammar.cpp +++ b/src/libs/qmljs/parser/qmljsgrammar.cpp @@ -47,37 +47,38 @@ const short QmlJSGrammar::lhs [] = { 118, 118, 118, 118, 118, 122, 123, 115, 114, 126, 126, 127, 127, 128, 128, 125, 111, 111, 111, 111, 130, 130, 130, 130, 130, 130, 130, 111, 138, 138, - 138, 139, 139, 140, 140, 111, 111, 111, 111, 111, + 138, 138, 139, 139, 140, 140, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 124, 124, 124, 124, 124, 124, 124, + 111, 111, 111, 111, 111, 111, 124, 124, 124, 124, + 124, 124, 124, 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, 129, 145, - 145, 145, 145, 144, 144, 149, 149, 149, 147, 147, - 150, 150, 150, 150, 153, 153, 153, 153, 153, 153, + 143, 129, 145, 145, 145, 145, 144, 144, 149, 149, + 149, 147, 147, 150, 150, 150, 150, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 154, 154, 120, 120, 120, - 120, 120, 157, 157, 158, 158, 158, 158, 156, 156, - 159, 159, 160, 160, 161, 161, 161, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 163, 163, 163, - 163, 164, 164, 164, 165, 165, 165, 165, 166, 166, - 166, 166, 166, 166, 166, 167, 167, 167, 167, 167, - 167, 168, 168, 168, 168, 168, 169, 169, 169, 169, - 169, 170, 170, 171, 171, 172, 172, 173, 173, 174, - 174, 175, 175, 176, 176, 177, 177, 178, 178, 179, - 179, 180, 180, 181, 181, 148, 148, 182, 182, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 109, 109, 184, 184, 185, 185, 186, 186, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 131, 195, 195, 194, 194, 142, - 142, 196, 196, 197, 197, 199, 199, 198, 200, 203, - 201, 201, 204, 202, 202, 132, 133, 133, 134, 134, - 187, 187, 187, 187, 187, 187, 187, 187, 188, 188, - 188, 188, 189, 189, 189, 189, 190, 190, 135, 136, - 205, 205, 208, 208, 206, 206, 209, 207, 191, 192, - 192, 137, 137, 137, 210, 211, 193, 193, 212, 141, - 155, 155, 213, 213, 152, 152, 151, 151, 214, 112, - 112, 215, 215, 110, 110, 146, 146, 216}; + 153, 153, 153, 153, 153, 153, 153, 153, 154, 154, + 120, 120, 120, 120, 120, 157, 157, 158, 158, 158, + 158, 156, 156, 159, 159, 160, 160, 161, 161, 161, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 163, 163, 163, 163, 164, 164, 164, 165, 165, 165, + 165, 166, 166, 166, 166, 166, 166, 166, 167, 167, + 167, 167, 167, 167, 168, 168, 168, 168, 168, 169, + 169, 169, 169, 169, 170, 170, 171, 171, 172, 172, + 173, 173, 174, 174, 175, 175, 176, 176, 177, 177, + 178, 178, 179, 179, 180, 180, 181, 181, 148, 148, + 182, 182, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 109, 109, 184, 184, 185, 185, + 186, 186, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 131, 195, 195, + 194, 194, 142, 142, 196, 196, 197, 197, 199, 199, + 198, 200, 203, 201, 201, 204, 202, 202, 132, 133, + 133, 134, 134, 187, 187, 187, 187, 187, 187, 187, + 187, 188, 188, 188, 188, 189, 189, 189, 189, 190, + 190, 135, 136, 205, 205, 208, 208, 206, 206, 209, + 207, 191, 192, 192, 137, 137, 137, 210, 211, 193, + 193, 212, 141, 155, 155, 213, 213, 152, 152, 151, + 151, 214, 112, 112, 215, 215, 110, 110, 146, 146, + 216}; const short QmlJSGrammar::rhs [] = { 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, @@ -85,112 +86,114 @@ const short QmlJSGrammar::rhs [] = { 3, 5, 5, 4, 4, 2, 2, 0, 1, 1, 2, 1, 3, 2, 3, 2, 1, 5, 4, 4, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, - 1, 0, 1, 2, 4, 6, 6, 3, 3, 7, - 7, 4, 4, 5, 5, 5, 6, 6, 10, 6, - 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 3, 0, 1, 2, 4, 6, 6, 3, 3, + 7, 7, 4, 4, 5, 5, 8, 8, 5, 6, + 6, 10, 6, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 3, 3, 4, 5, 3, 4, 3, 1, 1, - 2, 3, 4, 1, 2, 3, 7, 8, 1, 3, + 1, 1, 1, 2, 3, 3, 4, 5, 3, 4, + 3, 1, 1, 2, 3, 4, 1, 2, 3, 7, + 8, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, - 3, 5, 1, 2, 4, 4, 4, 3, 0, 1, - 1, 3, 1, 1, 1, 2, 2, 1, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 1, 3, 3, - 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, - 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, - 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, - 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, - 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, - 3, 1, 5, 1, 5, 1, 3, 1, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 0, 1, 1, 3, 0, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 1, 2, 0, 1, 3, - 3, 1, 1, 1, 3, 1, 3, 2, 2, 2, - 0, 1, 2, 0, 1, 1, 2, 2, 7, 5, - 7, 7, 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, 4, 5, 2, 2, 2, 1, 8, - 8, 7, 1, 3, 0, 1, 0, 1, 1, 1, - 1, 1, 2, 1, 1, 0, 1, 2}; + 1, 1, 4, 3, 5, 1, 2, 4, 4, 4, + 3, 0, 1, 1, 3, 1, 1, 1, 2, 2, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, + 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, + 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, + 3, 3, 3, 3, 1, 3, 1, 3, 1, 3, + 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, + 1, 3, 1, 3, 1, 5, 1, 5, 1, 3, + 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 0, 1, 1, 3, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 3, 1, 2, + 0, 1, 3, 3, 1, 1, 1, 3, 1, 3, + 2, 2, 2, 0, 1, 2, 0, 1, 1, 2, + 2, 7, 5, 7, 7, 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, 4, 5, 2, 2, + 2, 1, 8, 8, 7, 1, 3, 0, 1, 0, + 1, 1, 1, 1, 1, 2, 1, 1, 0, 1, + 2}; const short QmlJSGrammar::action_default [] = { - 0, 0, 28, 0, 0, 0, 28, 0, 185, 252, - 216, 224, 220, 164, 236, 212, 3, 149, 82, 165, - 228, 232, 153, 182, 163, 168, 148, 202, 189, 0, - 89, 90, 85, 0, 79, 74, 356, 0, 0, 0, - 0, 87, 0, 0, 83, 86, 78, 0, 0, 75, - 77, 80, 76, 88, 81, 0, 84, 0, 0, 178, - 0, 0, 165, 184, 167, 166, 0, 0, 0, 180, - 181, 179, 183, 0, 213, 0, 0, 0, 0, 203, - 0, 0, 0, 0, 0, 0, 193, 0, 0, 0, - 187, 188, 186, 191, 195, 194, 192, 190, 205, 204, - 206, 0, 221, 0, 217, 0, 0, 159, 146, 158, - 147, 115, 116, 117, 142, 118, 143, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 144, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 145, 0, 0, 157, 253, 160, 0, 161, 0, - 162, 156, 0, 249, 242, 240, 247, 248, 246, 245, - 251, 244, 243, 241, 250, 237, 0, 225, 0, 0, - 229, 0, 0, 233, 0, 0, 159, 151, 0, 150, - 0, 155, 169, 0, 345, 345, 346, 0, 343, 0, - 344, 0, 347, 260, 267, 266, 274, 262, 0, 263, - 0, 348, 0, 355, 264, 265, 82, 270, 268, 352, - 349, 354, 271, 0, 282, 0, 0, 0, 0, 339, - 0, 356, 254, 296, 0, 0, 0, 283, 0, 0, - 272, 273, 0, 261, 269, 297, 298, 0, 345, 0, - 0, 347, 0, 340, 341, 0, 329, 353, 0, 313, - 314, 315, 316, 0, 309, 310, 311, 312, 337, 338, - 0, 0, 0, 0, 0, 301, 302, 303, 258, 256, - 218, 226, 222, 238, 214, 259, 0, 165, 230, 234, - 207, 196, 0, 0, 215, 0, 0, 0, 0, 208, - 0, 0, 0, 0, 0, 200, 198, 201, 199, 197, - 210, 209, 211, 0, 223, 0, 219, 0, 257, 165, - 0, 239, 254, 255, 0, 254, 0, 0, 305, 0, - 0, 0, 307, 0, 227, 0, 0, 231, 0, 0, - 235, 294, 0, 286, 295, 289, 0, 293, 0, 254, - 287, 0, 254, 0, 0, 306, 0, 0, 0, 308, - 0, 0, 0, 300, 0, 299, 82, 109, 357, 0, - 0, 114, 276, 279, 0, 115, 282, 118, 143, 120, - 121, 85, 125, 126, 79, 127, 130, 83, 86, 254, - 80, 88, 133, 81, 135, 84, 137, 138, 283, 140, - 141, 145, 0, 111, 110, 113, 97, 112, 96, 0, - 106, 277, 275, 0, 0, 0, 347, 0, 107, 153, - 154, 159, 0, 152, 0, 317, 318, 0, 345, 0, - 0, 347, 0, 108, 0, 0, 0, 320, 325, 323, - 326, 0, 0, 324, 325, 0, 321, 0, 322, 278, - 328, 0, 278, 327, 0, 330, 331, 0, 278, 332, - 333, 0, 0, 334, 0, 0, 0, 335, 336, 171, - 170, 0, 0, 0, 304, 0, 0, 0, 319, 291, - 284, 0, 292, 288, 0, 290, 280, 0, 281, 285, - 0, 0, 347, 0, 342, 100, 0, 0, 104, 91, - 0, 93, 102, 0, 94, 103, 105, 95, 101, 92, - 0, 98, 175, 173, 177, 174, 172, 176, 350, 6, - 351, 4, 2, 72, 99, 0, 0, 75, 77, 76, - 37, 5, 0, 73, 0, 51, 50, 49, 0, 0, - 64, 0, 65, 41, 42, 43, 44, 46, 47, 68, - 45, 0, 51, 0, 0, 0, 0, 0, 60, 0, - 61, 0, 0, 32, 0, 0, 69, 33, 0, 36, - 34, 30, 0, 35, 31, 0, 62, 0, 63, 153, - 0, 66, 70, 0, 0, 0, 0, 153, 278, 0, - 67, 82, 115, 282, 118, 143, 120, 121, 85, 125, - 126, 127, 130, 83, 86, 254, 88, 133, 81, 135, - 84, 137, 138, 283, 140, 141, 145, 71, 0, 58, - 52, 59, 53, 0, 0, 0, 0, 55, 0, 56, - 57, 54, 0, 0, 0, 0, 48, 0, 38, 39, - 0, 40, 8, 0, 0, 9, 0, 11, 0, 10, - 0, 1, 27, 15, 14, 26, 13, 12, 29, 7, - 0, 18, 0, 19, 0, 24, 25, 0, 20, 21, - 0, 22, 23, 16, 17, 358}; + 0, 0, 28, 0, 0, 0, 28, 0, 188, 255, + 219, 227, 223, 167, 239, 215, 3, 152, 85, 168, + 231, 235, 156, 185, 166, 171, 151, 205, 192, 0, + 92, 93, 88, 0, 82, 77, 359, 0, 0, 0, + 0, 90, 0, 0, 86, 89, 81, 0, 0, 78, + 80, 83, 79, 91, 84, 0, 87, 0, 0, 181, + 0, 0, 168, 187, 170, 169, 0, 0, 0, 183, + 184, 182, 186, 0, 216, 0, 0, 0, 0, 206, + 0, 0, 0, 0, 0, 0, 196, 0, 0, 0, + 190, 191, 189, 194, 198, 197, 195, 193, 208, 207, + 209, 0, 224, 0, 220, 0, 0, 162, 149, 161, + 150, 118, 119, 120, 145, 121, 146, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 147, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 148, 0, 0, 160, 256, 163, 0, 164, 0, + 165, 159, 0, 252, 245, 243, 250, 251, 249, 248, + 254, 247, 246, 244, 253, 240, 0, 228, 0, 0, + 232, 0, 0, 236, 0, 0, 162, 154, 0, 153, + 0, 158, 172, 0, 348, 348, 349, 0, 346, 0, + 347, 0, 350, 263, 270, 269, 277, 265, 0, 266, + 0, 351, 0, 358, 267, 268, 85, 273, 271, 355, + 352, 357, 274, 0, 285, 0, 0, 0, 0, 342, + 0, 359, 257, 299, 0, 0, 0, 286, 0, 0, + 275, 276, 0, 264, 272, 300, 301, 0, 348, 0, + 0, 350, 0, 343, 344, 0, 332, 356, 0, 316, + 317, 318, 319, 0, 312, 313, 314, 315, 340, 341, + 0, 0, 0, 0, 0, 304, 305, 306, 261, 259, + 221, 229, 225, 241, 217, 262, 0, 168, 233, 237, + 210, 199, 0, 0, 218, 0, 0, 0, 0, 211, + 0, 0, 0, 0, 0, 203, 201, 204, 202, 200, + 213, 212, 214, 0, 226, 0, 222, 0, 260, 168, + 0, 242, 257, 258, 0, 257, 0, 0, 308, 0, + 0, 0, 310, 0, 230, 0, 0, 234, 0, 0, + 238, 297, 0, 289, 298, 292, 0, 296, 0, 257, + 290, 0, 257, 0, 0, 309, 0, 0, 0, 311, + 0, 0, 0, 303, 0, 302, 85, 112, 360, 0, + 0, 117, 279, 282, 0, 118, 285, 121, 146, 123, + 124, 88, 128, 129, 82, 130, 133, 86, 89, 257, + 83, 91, 136, 84, 138, 87, 140, 141, 286, 143, + 144, 148, 0, 114, 113, 116, 100, 115, 99, 0, + 109, 280, 278, 0, 0, 0, 350, 0, 110, 156, + 157, 162, 0, 155, 0, 320, 321, 0, 348, 0, + 0, 350, 0, 111, 0, 0, 0, 323, 328, 326, + 329, 0, 0, 327, 328, 0, 324, 0, 325, 281, + 331, 0, 281, 330, 0, 333, 334, 0, 281, 335, + 336, 0, 0, 337, 0, 0, 0, 338, 339, 174, + 173, 0, 0, 0, 307, 0, 0, 0, 322, 294, + 287, 0, 295, 291, 0, 293, 283, 0, 284, 288, + 0, 0, 350, 0, 345, 103, 0, 0, 107, 94, + 0, 96, 105, 0, 97, 106, 108, 98, 104, 95, + 0, 101, 178, 176, 180, 177, 175, 179, 353, 6, + 354, 4, 2, 75, 102, 0, 0, 78, 80, 79, + 37, 5, 0, 76, 0, 51, 50, 49, 0, 0, + 51, 0, 0, 0, 52, 0, 67, 68, 0, 65, + 0, 66, 41, 42, 43, 44, 46, 47, 71, 45, + 0, 51, 0, 0, 0, 0, 0, 61, 0, 62, + 0, 0, 32, 0, 0, 72, 33, 0, 36, 34, + 30, 0, 35, 31, 0, 63, 0, 64, 156, 0, + 69, 73, 0, 0, 0, 0, 156, 281, 0, 70, + 85, 118, 285, 121, 146, 123, 124, 88, 128, 129, + 130, 133, 86, 89, 257, 91, 136, 84, 138, 87, + 140, 141, 286, 143, 144, 148, 74, 0, 59, 53, + 60, 54, 0, 0, 0, 0, 56, 0, 57, 58, + 55, 0, 0, 0, 0, 48, 0, 38, 39, 0, + 40, 8, 0, 0, 9, 0, 11, 0, 10, 0, + 1, 27, 15, 14, 26, 13, 12, 29, 7, 0, + 18, 0, 19, 0, 24, 25, 0, 20, 21, 0, + 22, 23, 16, 17, 361}; const short QmlJSGrammar::goto_default [] = { - 7, 641, 211, 198, 209, 521, 509, 636, 649, 508, - 635, 639, 637, 645, 22, 642, 640, 638, 18, 520, - 562, 552, 559, 554, 539, 193, 197, 199, 204, 234, - 212, 231, 543, 613, 612, 203, 233, 26, 487, 486, + 7, 650, 211, 198, 209, 521, 509, 645, 658, 508, + 644, 648, 646, 654, 22, 651, 649, 647, 18, 520, + 571, 561, 568, 563, 548, 193, 197, 199, 204, 234, + 212, 231, 552, 622, 621, 203, 233, 26, 487, 486, 359, 358, 9, 357, 360, 202, 480, 361, 109, 17, 147, 24, 13, 146, 19, 25, 59, 23, 8, 28, 27, 280, 15, 274, 10, 270, 12, 272, 11, 271, @@ -201,217 +204,225 @@ const short QmlJSGrammar::goto_default [] = { 0}; const short QmlJSGrammar::action_index [] = { - 264, 1225, 2708, 2708, 2606, 938, 94, 104, 119, -106, - 92, 79, 81, 262, -106, 263, 78, -106, -106, 654, - 89, 125, 259, 229, -106, -106, -106, 322, 314, 1225, - -106, -106, -106, 412, -106, -106, 2300, 1713, 1225, 1225, - 1225, -106, 842, 1225, -106, -106, -106, 1225, 1225, -106, - -106, -106, -106, -106, -106, 1225, -106, 1225, 1225, -106, - 1225, 1225, 141, 216, -106, -106, 1225, 1225, 1225, -106, - -106, -106, 209, 1225, 281, 1225, 1225, 1225, 1225, 367, - 1225, 1225, 1225, 1225, 1225, 1225, 219, 1225, 1225, 1225, - 101, 102, 115, 314, 314, 314, 314, 314, 357, 347, - 337, 1225, 71, 1225, 70, 2198, 1225, 1225, -106, -106, + 246, 1285, 2768, 2768, 2666, 998, 98, 198, 86, -106, + 26, -15, -39, 234, -106, 314, 54, -106, -106, 714, + 89, 151, 212, 219, -106, -106, -106, 412, 279, 1285, + -106, -106, -106, 525, -106, -106, 2360, 1675, 1285, 1285, + 1285, -106, 902, 1285, -106, -106, -106, 1285, 1285, -106, + -106, -106, -106, -106, -106, 1285, -106, 1285, 1285, -106, + 1285, 1285, 103, 197, -106, -106, 1285, 1285, 1285, -106, + -106, -106, 214, 1285, 297, 1285, 1285, 1285, 1285, 392, + 1285, 1285, 1285, 1285, 1285, 1285, 213, 1285, 1285, 1285, + 96, 100, 101, 279, 279, 195, 190, 181, 402, 372, + 382, 1285, -10, 1285, 106, 2258, 1285, 1285, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, - -106, -106, 98, 1225, -106, -106, 66, 65, -106, 1225, - -106, -106, 1225, -106, -106, -106, -106, -106, -106, -106, - -106, -106, -106, -106, -106, -106, 1225, 44, 1225, 1225, - 64, 57, 1225, -106, 2198, 1225, 1225, -106, 137, -106, - 49, -106, -106, 93, 344, 474, 95, 86, -106, 390, - -106, 85, 2708, -106, -106, -106, -106, -106, 189, -106, - 474, -106, 80, -106, -106, -106, 83, -106, -106, -106, - 2708, -106, -106, 490, -106, 551, 130, 2606, 46, 51, - 52, 2912, 1225, -106, 63, 1225, 56, -106, 58, 60, - -106, -106, 474, -106, -106, -106, -106, 61, 474, 62, - 67, 2708, 68, -106, -106, 2606, -106, -106, 87, -106, - -106, -106, -106, 110, -106, -106, -106, -106, -106, -106, - -24, 69, 1225, 122, 143, -106, -106, -106, 1419, -106, - 74, 76, 77, -106, 269, 73, 72, 611, 75, 114, - 397, 314, 474, 1225, 287, 1225, 1225, 1225, 1225, 397, - 1225, 1225, 1225, 1225, 1225, 218, 215, 198, 192, 182, - 397, 397, 312, 1225, 55, 1225, 59, 1225, -106, 654, - 1225, -106, 1225, 54, 53, 1225, 50, 2606, -106, 1225, - 124, 2606, -106, 1225, 90, 1225, 1225, 105, 88, 1225, - -106, 84, 157, -27, -106, -106, 1225, -106, 474, 1225, - -106, 82, 1225, 91, 2606, -106, 1225, 120, 2606, -106, - 1225, 103, 2606, -9, 2606, -106, -2, -106, 11, -30, - 17, -106, -106, 2606, -37, 469, 15, 551, 138, 1225, - 2606, 14, -16, 433, 2402, -20, 842, 6, 5, 1324, - 2402, 4, -36, 2, 1225, 7, -18, 1225, 10, 1225, - -26, -13, 2504, -106, -106, -106, -106, -106, -106, 1225, - -106, -106, -106, -33, -59, -25, 2708, 23, -106, 197, - -106, 1225, -12, -106, 140, -106, -106, 22, 474, -4, - 26, 2708, 12, -106, 1225, 113, 30, -106, 142, -106, - 142, 121, 1225, -106, -3, 45, -106, -5, -106, 2606, - -106, 108, 2606, -106, 207, -106, -106, 106, 2606, 37, - -106, 25, 36, -106, 474, 38, 40, -106, -106, -106, - -106, 1225, 136, 2606, -106, 1225, 166, 2606, -106, 13, - -106, 200, -106, -106, 1225, -106, -106, 474, -106, -106, - -17, 16, 2708, -11, -106, -106, 131, 1811, -106, -106, - 1615, -106, -106, 1517, -106, -106, -106, -106, -106, -106, - 109, -106, -106, -106, -106, -106, -106, -106, -106, -106, - 2708, -106, -106, -106, 233, -19, 748, 152, -60, 41, - -106, -106, 191, -106, 177, -106, -106, -106, 387, 203, - -106, 1906, -106, -106, -106, -106, -106, -106, -106, -106, - -106, 180, 43, 376, 174, 48, 474, 240, -106, 8, - -106, 748, 111, -106, -1, 748, -106, -106, 1130, -106, - -106, -106, 1034, -106, -106, 228, -106, 1906, -106, 295, - 21, -106, -106, 184, 379, 39, 2001, 288, 2810, 18, - -106, 34, 482, 33, 551, 138, 1225, 2606, 31, 9, - 399, 3, 643, 19, 29, 1324, 28, 1, 27, 1225, - 24, 0, 1225, 20, 1225, -7, -8, -106, 193, -106, - 205, -106, 47, 42, 329, 208, 319, -106, 128, -106, - -106, -106, 2096, 748, 1713, 35, -106, 132, -106, -106, - 32, -106, -106, 748, 748, 94, 748, -106, 250, -106, - 116, -106, -106, 233, 233, -106, -106, -106, -106, -106, - 393, -106, 214, -106, 100, -106, -106, 474, -106, -106, - 96, -106, -106, -106, -106, -106, + -106, -106, 136, 1285, -106, -106, 65, 29, -106, 1285, + -106, -106, 1285, -106, -106, -106, -106, -106, -106, -106, + -106, -106, -106, -106, -106, -106, 1285, -46, 1285, 1285, + 30, 27, 1285, -106, 2258, 1285, 1285, -106, 130, -106, + -31, -106, -106, -16, 520, 520, 71, 21, -106, 421, + -106, 38, 2768, -106, -106, -106, -106, -106, 237, -106, + 520, -106, -52, -106, -106, -106, 23, -106, -106, -106, + 2768, -106, -106, 596, -106, 588, 141, 2666, 2, 1, + -1, 2972, 1285, -106, 13, 1285, 28, -106, -28, -30, + -106, -106, 435, -106, -106, -106, -106, 60, 520, 52, + 67, 2768, 64, -106, -106, 2666, -106, -106, 126, -106, + -106, -106, -106, 73, -106, -106, -106, -106, -106, -106, + -18, 34, 1285, 156, 168, -106, -106, -106, 1479, -106, + 79, 40, 48, -106, 312, 75, 42, 672, 80, 143, + 331, 279, 442, 1285, 316, 1285, 1285, 1285, 1285, 341, + 1285, 1285, 1285, 1285, 1285, 279, 360, 360, 196, 225, + 443, 357, 351, 1285, -4, 1285, 63, 1285, -106, 714, + 1285, -106, 1285, 102, 68, 1285, 62, 2666, -106, 1285, + 147, 2666, -106, 1285, 56, 1285, 1285, 91, 87, 1285, + -106, 81, 149, 74, -106, -106, 1285, -106, 439, 1285, + -106, -44, 1285, -42, 2666, -106, 1285, 153, 2666, -106, + 1285, 154, 2666, 10, 2666, -106, 0, -106, 15, -54, + 92, -106, -106, 2666, -50, 539, -7, 536, 121, 1285, + 2666, 5, -8, 445, 2462, 24, 902, 51, 50, 1384, + 2462, 47, 20, 46, 1285, 44, 19, 1285, 41, 1285, + 3, -5, 2564, -106, -106, -106, -106, -106, -106, 1285, + -106, -106, -106, 6, -17, 11, 2768, -9, -106, 249, + -106, 1285, -13, -106, 105, -106, -106, -12, 520, -41, + -20, 2768, -45, -106, 1285, 115, 12, -106, 36, -106, + 31, 122, 1285, -106, 58, 4, -106, -51, -106, 2666, + -106, 146, 2666, -106, 235, -106, -106, 140, 2666, 93, + -106, 84, 76, -106, 520, 17, 33, -106, -106, -106, + -106, 1285, 134, 2666, -106, 1285, 125, 2666, -106, 55, + -106, 163, -106, -106, 1285, -106, -106, 520, -106, -106, + 7, 45, 2768, 32, -106, -106, 120, 1773, -106, -106, + 1577, -106, -106, 1871, -106, -106, -106, -106, -106, -106, + 113, -106, -106, -106, -106, -106, -106, -106, -106, -106, + 2768, -106, -106, -106, 109, 35, 808, 206, 49, 61, + -106, -106, 229, -106, 203, 37, -106, -106, 611, 183, + -106, 124, 39, 389, -106, 97, -106, -106, 252, -106, + 2061, -106, -106, -106, -106, -106, -106, -106, -106, -106, + 269, -23, 611, 243, 180, 424, 232, -106, 16, -106, + 808, 162, -106, 22, 808, -106, -106, 1190, -106, -106, + -106, 1094, -106, -106, 248, -106, 2061, -106, 305, -24, + -106, -106, 215, 457, 18, 2156, 292, 2870, -11, -106, + 14, 599, 9, 528, 119, 1285, 2666, 8, 70, 514, + 72, 902, 95, 90, 1384, 85, 59, 77, 1285, 110, + 83, 1285, 104, 1285, 82, 78, -106, 205, -106, 236, + -106, 57, 25, 611, 167, 517, -106, 107, -106, -106, + -106, 1966, 808, 1675, 43, -106, 155, -106, -106, 53, + -106, -106, 808, 808, 108, 808, -106, 289, -106, 117, + -106, -106, 150, 157, -106, -106, -106, -106, -106, 364, + -106, 226, -106, 69, -106, -106, 432, -106, -106, 88, + -106, -106, -106, -106, -106, - -111, 15, 71, 87, 80, 305, -6, -111, -111, -111, - -111, -111, -111, -111, -111, -111, -111, -111, -111, -42, - -111, -111, -111, -111, -111, -111, -111, -111, -111, 95, - -111, -111, -111, 3, -111, -111, -5, -11, 9, 109, - 91, -111, 62, 45, -111, -111, -111, 50, 63, -111, - -111, -111, -111, -111, -111, 32, -111, 203, 197, -111, - 189, 178, -111, -111, -111, -111, 182, 185, 188, -111, - -111, -111, -111, 193, -111, 198, 168, 113, 114, -111, - 133, 116, 123, 129, 130, 132, -111, 136, 139, 142, + -111, 8, 65, 83, 84, 317, 1, -111, -111, -111, + -111, -111, -111, -111, -111, -111, -111, -111, -111, -77, + -111, -111, -111, -111, -111, -111, -111, -111, -111, 96, + -111, -111, -111, 2, -111, -111, -5, -28, 12, 106, + 95, -111, 61, 55, -111, -111, -111, 63, 70, -111, + -111, -111, -111, -111, -111, 54, -111, 172, 177, -111, + 180, 191, -111, -111, -111, -111, 197, 202, 203, -111, + -111, -111, -111, 210, -111, 209, 195, 109, 116, -111, + 146, 125, 126, 127, 135, 138, -111, 141, 144, 110, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, - -111, 148, -111, 151, -111, 186, 6, -37, -111, -111, + -111, 150, -111, 155, -111, 192, 4, -33, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, - -111, -111, -111, 42, -111, -111, -111, -111, -111, 22, - -111, -111, 2, -111, -111, -111, -111, -111, -111, -111, - -111, -111, -111, -111, -111, -111, 96, -111, 66, 21, - -111, -111, 0, -111, 274, 35, 88, -111, -111, -111, - -111, -111, -111, -111, 41, 75, -111, -111, -111, 49, - -111, -111, 48, -111, -111, -111, -111, -111, -111, -111, - 57, -111, -111, -111, -111, -111, -111, -111, -111, -111, - 77, -111, -111, 54, -111, 27, -111, 243, -111, 25, - -111, 160, 36, -111, -111, 169, 40, -111, -111, -111, - -111, -111, 56, -111, -111, -111, -111, -111, 180, -111, - -111, 163, -111, -111, -111, 246, -111, -111, -111, -111, + -111, -111, -111, -9, -111, -111, -111, -111, -111, 7, + -111, -111, 40, -111, -111, -111, -111, -111, -111, -111, + -111, -111, -111, -111, -111, -111, 99, -111, 52, 31, + -111, -111, 30, -111, 253, 44, 87, -111, -111, -111, + -111, -111, -111, -111, 45, 86, -111, -111, -111, 41, + -111, -111, 5, -111, -111, -111, -111, -111, -111, -111, + 50, -111, -111, -111, -111, -111, -111, -111, -111, -111, + 154, -111, -111, 26, -111, 49, -111, 330, -111, 28, + -111, 248, 27, -111, -111, 124, 51, -111, -111, -111, + -111, -111, 46, -111, -111, -111, -111, -111, 196, -111, + -111, 185, -111, -111, -111, 194, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, - -111, -111, 8, -111, -111, -111, -111, -111, 69, -111, + -111, -111, 15, -111, -111, -111, -111, -111, 74, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, - -111, -111, 61, 211, -111, 272, 257, 256, 236, -111, - 81, 83, 85, 68, 94, -111, -111, -111, -111, -111, - -111, -111, -111, 235, -111, 218, -111, 209, -111, -111, - 244, -111, 227, -111, -111, 228, -111, 238, -111, 33, - -111, 167, -111, 245, -111, 253, 254, -111, -111, 225, - -111, -111, -111, -111, -111, -111, 217, -111, 194, 213, - -111, -111, 208, -111, 207, -111, 52, -111, 205, -111, - 55, -111, 201, -111, 199, -111, -111, -111, -111, -111, - -111, -111, -111, 278, -111, 39, -111, 34, -111, 173, - 219, -111, -111, 53, 231, -111, 73, -111, -111, 44, - 59, -111, -111, -111, 47, -111, 24, 102, -111, 101, - -111, -111, 111, -111, -111, -111, -111, -111, -111, 26, - -111, -111, -111, -111, -111, -111, 65, -111, -111, -111, - -111, 76, -111, -111, -111, -111, -111, -111, 79, -111, - -111, 89, -111, -111, 51, -111, -111, -111, -111, -111, - -62, -111, 37, -111, -63, -111, -111, -111, -111, 387, - -111, -111, 264, -111, -111, -111, -111, -111, 158, -54, - -111, -111, 28, -111, 38, -111, 23, -111, -111, -111, - -111, 43, -111, 78, -111, 58, -111, 67, -111, -111, - -111, -111, -111, -111, 18, -111, -111, 195, -111, -111, - -111, -111, 161, -111, -111, -111, -111, 20, -111, -111, - 157, -111, -111, 31, -111, -111, -111, -111, -111, -111, + -111, -111, -16, 230, -111, 233, 269, 251, 265, -111, + 80, 81, 82, 88, 89, -111, -111, -111, -111, -111, + -111, -111, -111, 216, -111, 255, -111, 259, -111, -111, + 223, -111, 68, -111, -111, 217, -111, 236, -111, 24, + -111, 244, -111, 227, -111, 226, 257, -111, -111, 263, + -111, -111, -111, -111, -111, -111, 249, -111, 113, 163, + -111, -111, 212, -111, 173, -111, 48, -111, 211, -111, + 53, -111, 206, -111, 204, -111, -111, -111, -111, -111, + -111, -111, -111, 199, -111, 23, -111, 25, -111, 134, + 175, -111, -111, 37, 200, -111, 222, -111, -111, 57, + 56, -111, -111, -111, 124, -111, 32, 43, -111, 105, + -111, -111, 139, -111, -111, -111, -111, -111, -111, 38, + -111, -111, -111, -111, -111, -111, 75, -111, -111, -111, + -111, 71, -111, -111, -111, -111, -111, -111, 72, -111, + -111, 85, -111, -111, 59, -111, -111, -111, -111, -111, + -37, -111, 62, -111, -58, -111, -111, -111, -111, 286, + -111, -111, 250, -111, -111, -111, -111, -111, 153, -57, + -111, -111, 33, -111, 34, -111, 36, -111, -111, -111, + -111, 47, -111, 77, -111, 29, -111, 67, -111, -111, + -111, -111, -111, -111, 42, -111, -111, 214, -111, -111, + -111, -111, 229, -111, -111, -111, -111, 35, -111, -111, + 145, -111, -111, 3, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, - 206, -111, -111, -111, -111, -111, -7, -111, -111, -111, - -111, -111, -111, -111, -24, -111, -111, -111, -12, -111, - -111, 342, -111, -111, -111, -111, -111, -111, -111, -111, - -111, -111, -111, -16, -32, -111, 5, -111, -111, -111, - -111, 152, -111, -111, -111, 248, -111, -111, 330, -111, - -111, -111, 324, -111, -111, -111, -111, 385, -111, -111, - -21, -111, -111, 1, 14, -111, 367, -111, 232, 12, - -111, -111, 11, -111, 10, -111, 164, 141, -111, -111, - 7, -111, 64, -111, -111, 19, -111, -111, -111, 17, - -111, -1, 60, -111, 46, -111, -111, -111, -111, -111, - -15, -111, -111, -111, -2, -17, -4, -111, -111, -111, - -111, -111, 484, 138, 313, -3, -111, -111, -111, -111, - 4, -111, -111, 13, 16, 97, 127, -111, -111, -111, - -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, - -14, -111, -111, -111, -111, -111, -111, -8, -111, -111, - -111, -111, -111, -111, -111, -111}; + 207, -111, -111, -111, -111, -111, 39, -111, -111, -111, + -111, -111, -111, -111, -24, -111, -111, -111, -12, -27, + -111, -111, -111, -14, -111, -111, -111, -111, -111, -111, + 333, -111, -111, -111, -111, -111, -111, -111, -111, -111, + -111, -111, 6, 22, -111, 20, -111, -111, -111, -111, + 159, -111, -111, -111, 246, -111, -111, 332, -111, -111, + -111, 436, -111, -111, -111, -111, 388, -111, -111, 18, + -111, -111, -6, 19, -111, 352, -111, 225, 14, -111, + -111, 13, -111, 11, -111, 167, 136, -111, -111, 10, + -111, 64, -111, -111, 9, -111, -111, -111, 124, -111, + 0, 69, -111, 60, -111, -111, -111, -111, -111, -10, + -111, -111, -111, -1, -11, -2, -111, -111, -111, -111, + -111, 370, 142, 315, -3, -111, -111, -111, -111, 17, + -111, -111, -13, 21, 133, 221, -111, -111, -111, -111, + -111, -111, -111, -111, -111, -111, -111, -111, -111, 16, + -111, -111, -111, -111, -111, -111, -15, -111, -111, -111, + -111, -111, -111, -111, -111}; const short QmlJSGrammar::action_info [] = { - 424, 405, 432, 404, 346, 245, 573, 354, 406, -134, - 461, -112, -113, -131, -136, 448, 350, -139, 402, 392, - 268, -123, -142, 465, 399, 398, -131, -139, 465, 461, - 474, -136, 558, 448, -134, -112, -113, 424, -123, 350, - -142, 245, 551, 481, 484, 268, 576, 524, 413, 482, - 438, 558, 439, 261, 558, 615, 420, 452, 418, 421, - 283, 454, 143, 428, 172, 558, 166, 423, 558, 448, - 608, 73, 546, 448, 149, 283, 0, 323, 408, 0, - 544, 307, 268, 0, 0, 0, 143, 184, 350, 448, - 245, 166, 101, 73, 461, 329, 465, 238, 456, 424, - 241, 336, 618, 189, 665, 262, 143, 323, 0, 181, - 317, 143, 451, 0, 315, 442, 143, 143, 192, 555, - 0, 143, 240, 243, 303, 151, 452, 101, 143, 185, - 143, 435, 143, 312, 305, 244, 0, 0, 303, 490, - 555, 60, 60, 342, 143, 143, 191, 432, 252, 251, - 103, 344, 61, 61, 144, 60, 305, 662, 661, 60, - 103, 656, 655, 352, 325, 338, 61, 556, 326, 501, - 61, 257, 256, 426, 143, 168, 436, 664, 663, 169, - 348, 542, 264, 64, 321, 633, 634, 491, 628, 620, - 619, 259, 258, 179, 65, 174, 463, 143, 622, 259, - 258, 416, 415, 525, 267, 265, 525, 87, 477, 88, - 531, 0, 174, 525, 175, 143, 411, 87, 339, 88, - 89, 66, 0, 87, 558, 88, 467, 527, 66, 610, - 89, 175, 266, 411, 525, 567, 89, 525, 526, 0, - 87, 66, 88, 87, 87, 88, 88, 549, 174, 527, - 236, 235, 527, 89, 611, 609, 89, 89, 0, 527, - 526, 478, 476, 526, 532, 530, 67, 175, 446, 445, - 526, 0, 68, 67, 174, 659, 658, 105, 0, 68, - 527, 75, 76, 527, 0, 623, 67, 285, 286, 568, - 566, 526, 68, 175, 526, 176, 106, 652, 107, 75, - 76, 550, 548, 174, 0, 285, 286, 657, 77, 78, - 174, 653, 651, 0, 287, 288, 0, 0, 0, 0, - 0, -99, 175, 0, 176, 0, 77, 78, -99, 175, - 0, 176, 287, 288, 0, 290, 291, 0, 0, 87, - 0, 88, 0, 650, 292, 80, 81, 293, 35, 294, - 0, 0, 89, 82, 83, 0, 0, 84, 35, 85, - 80, 81, 6, 5, 4, 1, 3, 2, 82, 83, - 80, 81, 84, 35, 85, 0, 0, 0, 82, 83, - 80, 81, 84, 0, 85, 49, 52, 50, 82, 83, - 80, 81, 84, 0, 85, 49, 52, 50, 82, 83, - 0, 0, 84, 0, 85, 35, 0, 0, 35, 0, - 49, 52, 50, 46, 34, 51, 35, 0, 0, 35, - 290, 291, 35, 46, 34, 51, 0, 0, 35, 292, - 0, 0, 293, 0, 294, 184, 0, 0, 46, 34, - 51, 35, 49, 52, 50, 49, 52, 50, 184, 0, - 0, 0, 0, 49, 52, 50, 49, 52, 50, 49, - 52, 50, 35, 0, 0, 49, 52, 50, 0, 184, - 46, 34, 51, 46, 34, 51, 0, 0, 49, 52, - 50, 46, 34, 51, 46, 34, 51, 46, 34, 51, - 0, 0, 0, 46, 34, 51, 0, 0, 35, 49, - 52, 50, 0, 35, 0, 0, 46, 34, 51, 0, - 0, 35, 0, 0, 0, 0, 0, 0, 0, 35, - 0, 0, 0, 0, 0, 0, 0, 46, 34, 51, - 250, 249, 0, 0, 0, 49, 52, 50, 0, 0, - 49, 52, 50, 250, 249, 0, 0, 0, 49, 52, - 50, 250, 249, 0, 0, 0, 49, 52, 50, 0, - 0, 0, 0, 46, 34, 51, 0, 0, 46, 34, - 51, 0, 0, 0, 0, 0, 46, 34, 51, 0, - 35, 0, 0, 0, 46, 34, 51, 0, 0, 0, + -145, 398, 101, 244, 438, 402, 465, 245, 461, 567, + 423, 439, -126, 421, 553, -126, -145, 342, 344, 420, + 185, 245, 567, 392, 418, 585, 354, 73, 268, 181, + 245, 465, 166, 101, 172, 350, 432, 184, 268, 461, + 103, 432, 404, 405, 406, 428, 408, 413, -142, 424, + 560, -139, 448, -137, -115, 567, 424, -116, -134, 261, + 350, 448, 143, 432, 283, 624, 448, 481, 534, 103, + 262, 192, 474, 149, 529, 305, 567, 456, 482, 189, + 283, 191, 323, 307, -137, 627, 567, 484, 303, 151, + 617, 166, -115, 323, 329, 424, 238, -116, 336, 399, + 241, 524, -134, 312, 303, 346, 268, 73, 350, 448, + 143, -142, 240, 452, 465, 582, 448, -139, 461, 243, + 454, 143, 317, 143, 174, 0, 60, 305, 490, 315, + 665, 664, 435, 143, 257, 256, 60, 61, 143, 532, + 60, 60, 143, 175, 143, 64, 451, 61, 533, 671, + 670, 61, 61, 442, 143, 143, 65, 338, 537, 536, + 452, 143, 143, 564, 143, 174, 416, 415, 629, 628, + 564, 477, 174, 501, 0, 426, 491, 436, 673, 672, + 259, 258, 259, 258, 175, 467, 179, 252, 251, 642, + 643, 175, 144, 325, 463, 532, 530, 326, 674, 642, + 643, 168, 259, 258, 555, 169, 87, 321, 88, 66, + 339, 637, 530, 348, 352, 87, 264, 88, 565, 89, + 87, 87, 88, 88, 478, 476, 66, 174, 89, 267, + 265, 66, 525, 89, 89, 551, 631, 0, 87, 558, + 88, 619, 527, 143, 530, 143, 175, 0, 176, 105, + 87, 89, 88, 526, 67, 576, 0, 266, 527, 540, + 68, 0, 567, 89, 174, 530, 620, 618, 106, 526, + 107, 67, 530, 0, 0, 0, 67, 68, 527, 0, + 0, 527, 68, 175, 174, 411, 0, 668, 667, 526, + 527, 0, 526, 559, 557, 0, 446, 445, 236, 235, + 0, 526, 0, 175, 87, 411, 88, 174, 0, 577, + 575, 527, 0, 541, 539, 75, 76, 89, 527, 666, + 174, 0, 526, 632, 0, -102, 175, 0, 176, 526, + 285, 286, 75, 76, 285, 286, 661, 0, -102, 175, + 0, 176, 77, 78, 6, 5, 4, 1, 3, 2, + 662, 660, 0, 0, 290, 291, 0, 287, 288, 77, + 78, 287, 288, 292, 290, 291, 293, 0, 294, 0, + 0, 0, 0, 292, 290, 291, 293, 0, 294, 0, + 290, 291, 659, 292, 0, 87, 293, 88, 294, 292, + 0, 0, 293, 35, 294, 80, 81, 0, 89, 0, + 0, 0, 0, 82, 83, 80, 81, 84, 0, 85, + 0, 0, 0, 82, 83, 80, 81, 84, 35, 85, + 0, 0, 0, 82, 83, 80, 81, 84, 0, 85, + 49, 52, 50, 82, 83, 80, 81, 84, 0, 85, + 0, 0, 0, 82, 83, 0, 0, 84, 0, 85, + 35, 0, 0, 35, 0, 49, 52, 50, 46, 34, + 51, 35, 0, 0, 35, 0, 290, 291, 35, 0, + 0, 35, 532, 0, 35, 292, 0, 0, 293, 0, + 294, 184, 0, 46, 34, 51, 35, 49, 52, 50, + 49, 52, 50, 0, 0, 0, 0, 0, 49, 52, + 50, 49, 52, 50, 0, 49, 52, 50, 49, 52, + 50, 49, 52, 50, 0, 46, 34, 51, 46, 34, + 51, 0, 0, 49, 52, 50, 46, 34, 51, 46, + 34, 51, 532, 46, 34, 51, 46, 34, 51, 46, + 34, 51, 0, 35, 0, 0, 35, 0, 0, 35, + 184, 46, 34, 51, 35, 0, 0, 35, 0, 0, + 0, 184, 0, 0, 0, 35, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 49, 52, 50, 49, 52, 50, 49, 52, 50, 255, + 254, 49, 52, 50, 49, 52, 50, 255, 254, 0, + 250, 249, 49, 52, 50, 49, 52, 50, 46, 34, + 51, 46, 34, 51, 46, 34, 51, 35, 0, 46, + 34, 51, 46, 34, 51, 35, 532, 0, 35, 0, + 46, 34, 51, 46, 34, 51, 0, 0, 0, 0, + 35, 0, 0, 0, 0, 0, 0, 0, 0, 255, + 254, 0, 0, 0, 49, 52, 50, 250, 249, 0, + 250, 249, 49, 52, 50, 49, 52, 50, 0, 0, + 0, 0, 0, 0, 0, 153, 0, 49, 52, 50, + 0, 0, 46, 34, 51, 154, 0, 0, 0, 155, + 46, 34, 51, 46, 34, 51, 0, 0, 156, 0, + 157, 0, 0, 319, 0, 46, 34, 51, 0, 0, + 0, 158, 0, 159, 64, 0, 0, 153, 0, 0, + 0, 160, 0, 0, 161, 65, 0, 154, 0, 0, + 162, 155, 0, 0, 0, 0, 163, 0, 0, 0, + 156, 0, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 164, 158, 0, 159, 64, 0, 0, 0, + 0, 0, 0, 160, 0, 0, 161, 65, 0, 0, + 0, 0, 162, 0, 0, 0, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 255, 254, 153, 0, 0, 49, 52, 50, - 0, 0, 0, 0, 154, 0, 0, 0, 155, 0, - 0, 0, 0, 0, 0, 0, 0, 156, 0, 157, - 0, 0, 319, 0, 0, 46, 34, 51, 0, 0, - 158, 0, 159, 64, 0, 30, 31, 153, 0, 0, - 160, 0, 0, 161, 65, 33, 0, 154, 0, 162, - 0, 155, 35, 0, 0, 163, 36, 37, 0, 38, - 156, 0, 157, 0, 0, 0, 42, 0, 0, 0, - 45, 164, 0, 158, 0, 159, 64, 0, 0, 0, - 0, 0, 0, 160, 0, 0, 161, 65, 53, 49, - 52, 50, 162, 54, 0, 0, 0, 0, 163, 0, - 0, 0, 0, 0, 44, 56, 32, 0, 0, 0, - 41, 0, 0, 0, 164, 0, 0, 46, 34, 51, + 0, 0, 0, 0, 164, 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, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, @@ -446,7 +457,7 @@ const short QmlJSGrammar::action_info [] = { 0, 0, 0, 0, 0, 0, 219, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 36, 37, 0, 38, 0, 0, 0, 0, 0, 0, 516, 0, 0, - 0, 45, 0, 0, 0, 0, 0, 0, 0, 563, + 0, 45, 0, 0, 0, 0, 0, 0, 0, 572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 517, 519, 518, 0, 54, 0, 0, 0, 0, 227, 0, 0, 0, 0, 0, 44, 56, 32, 214, 0, @@ -456,7 +467,7 @@ const short QmlJSGrammar::action_info [] = { 0, 0, 219, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 36, 37, 0, 38, 0, 0, 0, 0, 0, 0, 516, 0, 0, 0, 45, 0, 0, - 0, 0, 0, 0, 0, 560, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 517, 519, 518, 0, 54, 0, 0, 0, 0, 227, 0, 0, 0, 0, 0, 44, 56, 32, 214, 0, 0, 41, 0, 0, @@ -471,7 +482,7 @@ const short QmlJSGrammar::action_info [] = { 0, 58, 0, 0, 0, 0, 44, 56, 32, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 46, 34, 51, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -132, 0, 0, 0, 29, 30, 31, 0, 0, + 0, -135, 0, 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 36, 37, 0, 38, 0, 0, 0, 39, 0, 40, 42, 43, 0, @@ -490,12 +501,12 @@ const short QmlJSGrammar::action_info [] = { 0, 55, 0, 57, 282, 58, 0, 0, 0, 0, 44, 56, 32, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 46, 34, 51, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 496, 0, 0, 29, 30, + 0, 0, 0, 0, 0, 488, 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 36, 37, 0, 38, 0, 0, 0, 39, 0, 40, 42, 43, 0, 0, 45, 0, 0, 0, 47, 0, - 48, 0, 0, 497, 0, 0, 0, 0, 0, 0, + 48, 0, 0, 494, 0, 0, 0, 0, 0, 0, 0, 0, 53, 49, 52, 50, 0, 54, 0, 55, 0, 57, 0, 58, 0, 0, 0, 0, 44, 56, 32, 0, 0, 0, 41, 0, 0, 0, 0, 0, @@ -505,16 +516,16 @@ const short QmlJSGrammar::action_info [] = { 0, 0, 0, 0, 35, 0, 0, 0, 36, 37, 0, 38, 0, 0, 0, 39, 0, 40, 42, 43, 0, 0, 45, 0, 0, 0, 47, 0, 48, 0, - 0, 494, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 489, 0, 0, 0, 0, 0, 0, 0, 0, 53, 49, 52, 50, 0, 54, 0, 55, 0, 57, 0, 58, 0, 0, 0, 0, 44, 56, 32, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 46, 34, 51, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 488, 0, 0, 29, 30, 31, 0, 0, 0, + 0, 496, 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 36, 37, 0, 38, 0, 0, 0, 39, 0, 40, 42, 43, 0, 0, - 45, 0, 0, 0, 47, 0, 48, 0, 0, 489, + 45, 0, 0, 0, 47, 0, 48, 0, 0, 499, 0, 0, 0, 0, 0, 0, 0, 0, 53, 49, 52, 50, 0, 54, 0, 55, 0, 57, 0, 58, 0, 0, 0, 0, 44, 56, 32, 0, 0, 0, @@ -524,15 +535,15 @@ const short QmlJSGrammar::action_info [] = { 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 36, 37, 0, 38, 0, 0, 0, 39, 0, 40, 42, 43, 0, 0, 45, 0, - 0, 0, 47, 0, 48, 0, 0, 499, 0, 0, + 0, 0, 47, 0, 48, 0, 0, 497, 0, 0, 0, 0, 0, 0, 0, 0, 53, 49, 52, 50, 0, 54, 0, 55, 0, 57, 0, 58, 0, 0, 0, 0, 44, 56, 32, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 46, 34, 51, 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, 35, 220, 0, 0, 221, - 37, 0, 38, 0, 0, 0, 39, 0, 40, 42, + 0, 0, 0, 0, 0, 35, 220, 0, 0, 587, + 633, 0, 38, 0, 0, 0, 39, 0, 40, 42, 43, 0, 0, 45, 0, 0, 0, 47, 0, 48, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 53, 49, 52, 50, 224, 54, 0, 55, 226, @@ -541,7 +552,7 @@ const short QmlJSGrammar::action_info [] = { 46, 34, 51, 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, - 35, 220, 0, 0, 578, 37, 0, 38, 0, 0, + 35, 220, 0, 0, 221, 37, 0, 38, 0, 0, 0, 39, 0, 40, 42, 43, 0, 0, 45, 0, 0, 0, 47, 0, 48, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 53, 49, 52, 50, @@ -550,8 +561,8 @@ const short QmlJSGrammar::action_info [] = { 0, 0, 0, 0, 0, 46, 34, 51, 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, 35, 220, 0, 0, 578, - 624, 0, 38, 0, 0, 0, 39, 0, 40, 42, + 0, 0, 0, 0, 0, 35, 220, 0, 0, 587, + 37, 0, 38, 0, 0, 0, 39, 0, 40, 42, 43, 0, 0, 45, 0, 0, 0, 47, 0, 48, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 53, 49, 52, 50, 224, 54, 0, 55, 226, @@ -619,164 +630,165 @@ const short QmlJSGrammar::action_info [] = { 55, 226, 57, 227, 58, 228, 229, 0, 0, 44, 56, 32, 214, 216, 0, 41, 0, 0, 0, 0, 0, 0, 46, 34, 51, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 582, 112, 113, 0, 0, 584, - 117, 586, 30, 31, 587, 0, 120, 0, 0, 0, - 122, 589, 590, 0, 0, 0, 0, 0, 0, 35, - 591, 126, 127, 221, 37, 0, 38, 0, 0, 0, - 39, 0, 40, 592, 43, 0, 0, 594, 0, 0, - 0, 47, 0, 48, 0, 0, 0, 0, 0, 595, - 0, 223, 0, 0, 0, 596, 49, 52, 50, 597, - 598, 599, 55, 601, 602, 603, 604, 605, 606, 0, - 0, 593, 600, 588, 583, 585, 130, 41, 0, 0, + 0, 0, 0, 0, 591, 112, 113, 0, 0, 593, + 117, 595, 30, 31, 596, 0, 120, 0, 0, 0, + 122, 598, 599, 0, 0, 0, 0, 0, 0, 35, + 600, 126, 127, 221, 37, 0, 38, 0, 0, 0, + 39, 0, 40, 601, 43, 0, 0, 603, 0, 0, + 0, 47, 0, 48, 0, 0, 0, 0, 0, 604, + 0, 223, 0, 0, 0, 605, 49, 52, 50, 606, + 607, 608, 55, 610, 611, 612, 613, 614, 615, 0, + 0, 602, 609, 597, 592, 594, 130, 41, 0, 0, 0, 0, 0, 0, 46, 374, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 365, 112, 113, 0, 0, 367, 117, 369, 30, 31, 370, 0, 120, 0, 0, 0, 122, 372, 373, 0, 0, 0, 0, 0, 0, 35, 375, 126, 127, 221, 37, 0, 38, 0, 0, 0, 39, 0, 40, 376, 43, 0, 0, 378, - 0, 0, 0, 47, 0, 48, 0, -278, 0, 0, + 0, 0, 0, 47, 0, 48, 0, -281, 0, 0, 0, 379, 0, 223, 0, 0, 0, 381, 49, 52, 50, 382, 383, 384, 55, 386, 387, 388, 389, 390, 391, 0, 0, 377, 385, 371, 366, 368, 130, 41, 0, 0, 0, 0, 0, 0, 46, 374, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 545, 572, 565, 632, 654, 148, 529, 541, 528, 142, - 660, 263, 500, 393, 617, 616, 621, 614, 16, 629, - 444, 183, 313, 547, 447, 183, 631, 643, 253, 248, - 644, 485, 575, 574, 607, 152, 320, 437, 178, 313, - 441, 433, 173, 183, 165, 253, 462, 313, 457, 447, - 444, 453, 253, 458, 425, 347, 455, 248, 351, 188, - 475, 466, 498, 171, 150, 447, 206, 190, 400, 468, - 0, 183, 248, 495, 469, 237, 409, 393, 409, 331, - 464, 247, 512, 206, 145, 206, 62, 409, 507, 206, - 0, 511, 0, 188, 0, 206, 206, 188, 206, 62, - 62, 504, 460, 417, 62, 206, 505, 206, 647, 646, - 407, 0, 0, 410, 62, 410, 459, 62, 148, 506, - 62, 187, 62, 277, 410, 419, 412, 298, 281, 393, - 148, 0, 0, 0, 422, 62, 170, 62, 180, 62, - 295, 514, 296, 260, 297, 62, 648, 503, 62, 62, - 62, 182, 514, 299, 394, 62, 62, 460, 459, 206, - 362, 630, 362, 62, 167, 502, 514, 62, 62, 322, - 62, 553, 444, 99, 100, 93, 206, 62, 356, 206, - 510, 206, 94, 62, 62, 206, 62, 62, 95, 96, - 62, 97, 86, 62, 90, 493, 62, 91, 188, 492, - 92, 355, 62, 353, 108, 62, 483, 349, 242, 345, - 247, 313, 331, 469, 102, 104, 313, 206, 62, 206, - 182, 260, 62, 206, 206, 206, 239, 62, 98, 182, - 313, 313, 62, 110, 362, 72, 62, 206, 69, 62, - 318, 70, 62, 62, 71, 260, 63, 62, 246, 393, - 581, 62, 62, 460, 0, 74, 206, 62, 79, 459, - 0, 206, 514, 309, 206, 62, 362, 557, 281, 0, - 281, 309, 62, 0, 284, 403, 281, 281, 0, 309, - 401, 0, 206, 306, 281, 308, 343, 479, 340, 62, - 62, 341, 108, 337, 281, 281, 206, 302, 309, 62, - 0, 330, 304, 281, 281, 314, 316, 62, 309, 0, - 62, 62, 281, 281, 324, 281, 281, 301, 300, 514, - 311, 110, 177, 0, 327, 0, 62, 569, 522, 564, - 328, 281, 553, 289, 627, 561, 0, 0, 514, 0, - 513, 523, 0, 0, 514, 0, 0, 522, 0, 0, - 0, 0, 443, 522, 0, 485, 0, 0, 0, 513, - 523, 0, 0, 0, 0, 513, 523, 533, 534, 535, - 536, 540, 537, 538, 0, 0, 0, 0, 0, 0, - 0, 577, 0, 0, 0, 0, 0, 0, 0, 362, - 579, 580, 533, 534, 535, 536, 540, 537, 538, 569, - 0, 0, 0, 0, 0, 206, 0, 0, 570, 571, - 533, 534, 535, 536, 540, 537, 538, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 152, 652, 331, 669, 535, 531, 538, 142, 528, 148, + 641, 16, 313, 393, 485, 500, 626, 630, 263, 638, + 183, 625, 623, 206, 574, 447, 583, 320, 183, 253, + 313, 248, 466, 145, 663, 653, 616, 584, 556, 640, + 581, 248, 437, 253, 248, 495, 183, 178, 453, 150, + 462, 347, 455, 550, 554, 183, 351, 447, 458, 190, + 313, 457, 425, 188, 469, 441, 433, 253, 237, 468, + 0, 313, 173, 171, 393, 409, 447, 498, 409, 464, + 400, 0, 165, 206, 475, 206, 512, 511, 0, 0, + 188, 0, 0, 206, 0, 206, 0, 62, 0, 459, + 417, 206, 206, 206, 188, 0, 62, 0, 62, 62, + 507, 504, 410, 148, 62, 410, 460, 62, 419, 505, + 407, 412, 170, 62, 62, 459, 506, 444, 277, 148, + 422, 331, 187, 281, 62, 62, 62, 180, 260, 295, + 296, 297, 62, 62, 656, 655, 314, 298, 299, 62, + 62, 503, 182, 62, 206, 362, 514, 393, 247, 62, + 62, 460, 502, 62, 62, 639, 313, 167, 92, 99, + 62, 206, 206, 514, 510, 345, 100, 260, 562, 62, + 62, 62, 394, 493, 93, 94, 95, 492, 62, 62, + 182, 206, 62, 206, 96, 62, 246, 97, 62, 90, + 62, 401, 91, 206, 62, 86, 355, 340, 353, 62, + 108, 247, 206, 349, 188, 313, 102, 206, 393, 104, + 313, 62, 206, 182, 206, 206, 62, 362, 459, 206, + 242, 62, 469, 460, 62, 514, 409, 63, 318, 110, + 657, 341, 239, 590, 403, 62, 322, 206, 72, 62, + 362, 62, 362, 69, 206, 98, 62, 62, 70, 71, + 514, 0, 206, 62, 62, 566, 356, 0, 206, 79, + 62, 108, 74, 410, 483, 281, 0, 309, 0, 0, + 62, 62, 281, 304, 62, 281, 281, 62, 362, 281, + 343, 0, 281, 284, 289, 316, 324, 327, 0, 311, + 110, 177, 0, 309, 206, 62, 479, 0, 281, 62, + 281, 309, 301, 309, 281, 0, 281, 309, 281, 62, + 306, 0, 281, 62, 281, 337, 302, 0, 281, 578, + 300, 514, 260, 328, 562, 308, 636, 570, 443, 330, + 522, 0, 0, 0, 0, 0, 514, 0, 206, 0, + 0, 0, 513, 523, 0, 522, 0, 485, 542, 543, + 544, 545, 549, 546, 547, 0, 586, 513, 523, 0, + 0, 0, 0, 0, 440, 588, 589, 542, 543, 544, + 545, 549, 546, 547, 586, 0, 0, 0, 0, 0, + 0, 0, 0, 634, 635, 542, 543, 544, 545, 549, + 546, 547, 578, 0, 0, 0, 0, 0, 0, 0, + 0, 579, 580, 542, 543, 544, 545, 549, 546, 547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 573, 0, 0, 0, 0, 0, 0, 0, 0, + 514, 0, 0, 0, 0, 0, 0, 0, 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 513, 523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 577, 0, - 0, 0, 0, 0, 0, 0, 0, 625, 626, 533, - 534, 535, 536, 540, 537, 538, 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}; + 0, 0, 0, 0, 0, 0, 0}; const short QmlJSGrammar::action_check [] = { - 36, 60, 5, 36, 31, 7, 66, 16, 33, 7, - 36, 7, 7, 7, 7, 33, 36, 7, 55, 8, - 36, 7, 7, 36, 7, 55, 7, 7, 36, 36, - 17, 7, 33, 33, 7, 7, 7, 36, 7, 36, - 7, 7, 34, 60, 55, 36, 7, 66, 60, 33, - 55, 33, 7, 77, 33, 8, 60, 20, 36, 33, - 1, 36, 8, 33, 7, 33, 2, 55, 33, 33, - 29, 1, 24, 33, 8, 1, -1, 2, 55, -1, - 37, 8, 36, -1, -1, -1, 8, 36, 36, 33, - 7, 2, 48, 1, 36, 7, 36, 36, 60, 36, - 33, 17, 60, 8, 0, 36, 8, 2, -1, 60, - 60, 8, 6, -1, 61, 7, 8, 8, 33, 8, - -1, 8, 60, 55, 48, 60, 20, 48, 8, 36, - 8, 10, 8, 61, 79, 55, -1, -1, 48, 8, - 8, 40, 40, 61, 8, 8, 60, 5, 61, 62, - 79, 60, 51, 51, 56, 40, 79, 61, 62, 40, - 79, 61, 62, 60, 50, 8, 51, 56, 54, 60, - 51, 61, 62, 60, 8, 50, 55, 61, 62, 54, - 60, 29, 60, 42, 60, 91, 92, 56, 56, 61, - 62, 61, 62, 56, 53, 15, 60, 8, 7, 61, - 62, 61, 62, 29, 61, 62, 29, 25, 8, 27, - 7, -1, 15, 29, 34, 8, 36, 25, 61, 27, - 38, 12, -1, 25, 33, 27, 60, 75, 12, 36, - 38, 34, 89, 36, 29, 7, 38, 29, 86, -1, - 25, 12, 27, 25, 25, 27, 27, 7, 15, 75, - 61, 62, 75, 38, 61, 62, 38, 38, -1, 75, - 86, 61, 62, 86, 61, 62, 57, 34, 61, 62, - 86, -1, 63, 57, 15, 61, 62, 15, -1, 63, - 75, 18, 19, 75, -1, 94, 57, 18, 19, 61, - 62, 86, 63, 34, 86, 36, 34, 47, 36, 18, - 19, 61, 62, 15, -1, 18, 19, 93, 45, 46, - 15, 61, 62, -1, 45, 46, -1, -1, -1, -1, - -1, 33, 34, -1, 36, -1, 45, 46, 33, 34, - -1, 36, 45, 46, -1, 23, 24, -1, -1, 25, - -1, 27, -1, 93, 32, 23, 24, 35, 29, 37, - -1, -1, 38, 31, 32, -1, -1, 35, 29, 37, - 23, 24, 98, 99, 100, 101, 102, 103, 31, 32, - 23, 24, 35, 29, 37, -1, -1, -1, 31, 32, - 23, 24, 35, -1, 37, 66, 67, 68, 31, 32, - 23, 24, 35, -1, 37, 66, 67, 68, 31, 32, - -1, -1, 35, -1, 37, 29, -1, -1, 29, -1, - 66, 67, 68, 94, 95, 96, 29, -1, -1, 29, - 23, 24, 29, 94, 95, 96, -1, -1, 29, 32, - -1, -1, 35, -1, 37, 36, -1, -1, 94, 95, - 96, 29, 66, 67, 68, 66, 67, 68, 36, -1, - -1, -1, -1, 66, 67, 68, 66, 67, 68, 66, - 67, 68, 29, -1, -1, 66, 67, 68, -1, 36, - 94, 95, 96, 94, 95, 96, -1, -1, 66, 67, - 68, 94, 95, 96, 94, 95, 96, 94, 95, 96, - -1, -1, -1, 94, 95, 96, -1, -1, 29, 66, - 67, 68, -1, 29, -1, -1, 94, 95, 96, -1, - -1, 29, -1, -1, -1, -1, -1, -1, -1, 29, - -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, - 61, 62, -1, -1, -1, 66, 67, 68, -1, -1, - 66, 67, 68, 61, 62, -1, -1, -1, 66, 67, - 68, 61, 62, -1, -1, -1, 66, 67, 68, -1, - -1, -1, -1, 94, 95, 96, -1, -1, 94, 95, - 96, -1, -1, -1, -1, -1, 94, 95, 96, -1, - 29, -1, -1, -1, 94, 95, 96, -1, -1, -1, + 7, 55, 48, 55, 55, 55, 36, 7, 36, 33, + 55, 7, 7, 33, 37, 7, 7, 61, 60, 60, + 36, 7, 33, 8, 36, 7, 16, 1, 36, 60, + 7, 36, 2, 48, 7, 36, 5, 36, 36, 36, + 79, 5, 36, 60, 33, 33, 55, 60, 7, 36, + 34, 7, 33, 7, 7, 33, 36, 7, 7, 77, + 36, 33, 8, 5, 1, 8, 33, 60, 29, 79, + 36, 33, 17, 8, 37, 79, 33, 60, 33, 8, + 1, 60, 2, 8, 7, 60, 33, 55, 48, 60, + 29, 2, 7, 2, 7, 36, 36, 7, 17, 7, + 33, 66, 7, 61, 48, 31, 36, 1, 36, 33, + 8, 7, 60, 20, 36, 66, 33, 7, 36, 55, + 36, 8, 60, 8, 15, -1, 40, 79, 8, 61, + 61, 62, 10, 8, 61, 62, 40, 51, 8, 15, + 40, 40, 8, 34, 8, 42, 6, 51, 24, 61, + 62, 51, 51, 7, 8, 8, 53, 8, 61, 62, + 20, 8, 8, 8, 8, 15, 61, 62, 61, 62, + 8, 8, 15, 60, -1, 60, 56, 55, 61, 62, + 61, 62, 61, 62, 34, 60, 56, 61, 62, 91, + 92, 34, 56, 50, 60, 15, 29, 54, 0, 91, + 92, 50, 61, 62, 24, 54, 25, 60, 27, 12, + 61, 56, 29, 60, 60, 25, 60, 27, 56, 38, + 25, 25, 27, 27, 61, 62, 12, 15, 38, 61, + 62, 12, 29, 38, 38, 29, 7, -1, 25, 7, + 27, 36, 75, 8, 29, 8, 34, -1, 36, 15, + 25, 38, 27, 86, 57, 7, -1, 89, 75, 7, + 63, -1, 33, 38, 15, 29, 61, 62, 34, 86, + 36, 57, 29, -1, -1, -1, 57, 63, 75, -1, + -1, 75, 63, 34, 15, 36, -1, 61, 62, 86, + 75, -1, 86, 61, 62, -1, 61, 62, 61, 62, + -1, 86, -1, 34, 25, 36, 27, 15, -1, 61, + 62, 75, -1, 61, 62, 18, 19, 38, 75, 93, + 15, -1, 86, 94, -1, 33, 34, -1, 36, 86, + 18, 19, 18, 19, 18, 19, 47, -1, 33, 34, + -1, 36, 45, 46, 98, 99, 100, 101, 102, 103, + 61, 62, -1, -1, 23, 24, -1, 45, 46, 45, + 46, 45, 46, 32, 23, 24, 35, -1, 37, -1, + -1, -1, -1, 32, 23, 24, 35, -1, 37, -1, + 23, 24, 93, 32, -1, 25, 35, 27, 37, 32, + -1, -1, 35, 29, 37, 23, 24, -1, 38, -1, + -1, -1, -1, 31, 32, 23, 24, 35, -1, 37, + -1, -1, -1, 31, 32, 23, 24, 35, 29, 37, + -1, -1, -1, 31, 32, 23, 24, 35, -1, 37, + 66, 67, 68, 31, 32, 23, 24, 35, -1, 37, + -1, -1, -1, 31, 32, -1, -1, 35, -1, 37, + 29, -1, -1, 29, -1, 66, 67, 68, 94, 95, + 96, 29, -1, -1, 29, -1, 23, 24, 29, -1, + -1, 29, 15, -1, 29, 32, -1, -1, 35, -1, + 37, 36, -1, 94, 95, 96, 29, 66, 67, 68, + 66, 67, 68, -1, -1, -1, -1, -1, 66, 67, + 68, 66, 67, 68, -1, 66, 67, 68, 66, 67, + 68, 66, 67, 68, -1, 94, 95, 96, 94, 95, + 96, -1, -1, 66, 67, 68, 94, 95, 96, 94, + 95, 96, 15, 94, 95, 96, 94, 95, 96, 94, + 95, 96, -1, 29, -1, -1, 29, -1, -1, 29, + 36, 94, 95, 96, 29, -1, -1, 29, -1, -1, + -1, 36, -1, -1, -1, 29, -1, -1, 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 66, 67, 68, 66, 67, 68, 66, 67, 68, 61, + 62, 66, 67, 68, 66, 67, 68, 61, 62, -1, + 61, 62, 66, 67, 68, 66, 67, 68, 94, 95, + 96, 94, 95, 96, 94, 95, 96, 29, -1, 94, + 95, 96, 94, 95, 96, 29, 15, -1, 29, -1, + 94, 95, 96, 94, 95, 96, -1, -1, -1, -1, + 29, -1, -1, -1, -1, -1, -1, -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, 3, -1, 66, 67, 68, + -1, -1, 94, 95, 96, 13, -1, -1, -1, 17, + 94, 95, 96, 94, 95, 96, -1, -1, 26, -1, + 28, -1, -1, 31, -1, 94, 95, 96, -1, -1, + -1, 39, -1, 41, 42, -1, -1, 3, -1, -1, + -1, 49, -1, -1, 52, 53, -1, 13, -1, -1, + 58, 17, -1, -1, -1, -1, 64, -1, -1, -1, + 26, -1, 28, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 80, 39, -1, 41, 42, -1, -1, -1, + -1, -1, -1, 49, -1, -1, 52, 53, -1, -1, + -1, -1, 58, -1, -1, -1, -1, -1, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 61, 62, 3, -1, -1, 66, 67, 68, - -1, -1, -1, -1, 13, -1, -1, -1, 17, -1, - -1, -1, -1, -1, -1, -1, -1, 26, -1, 28, - -1, -1, 31, -1, -1, 94, 95, 96, -1, -1, - 39, -1, 41, 42, -1, 12, 13, 3, -1, -1, - 49, -1, -1, 52, 53, 22, -1, 13, -1, 58, - -1, 17, 29, -1, -1, 64, 33, 34, -1, 36, - 26, -1, 28, -1, -1, -1, 43, -1, -1, -1, - 47, 80, -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, -1, -1, - 87, -1, -1, -1, 80, -1, -1, 94, 95, 96, + -1, -1, -1, -1, 80, -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, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, @@ -1006,65 +1018,60 @@ const short QmlJSGrammar::action_check [] = { -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 32, 22, 18, 9, 18, 42, 18, 14, 32, 3, - 18, 3, 3, 18, 18, 32, 18, 32, 3, 22, - 3, 18, 3, 18, 25, 18, 22, 14, 18, 18, - 14, 42, 18, 32, 22, 77, 3, 100, 3, 3, - 3, 103, 42, 18, 42, 18, 3, 3, 25, 25, - 3, 105, 18, 25, 3, 3, 18, 18, 3, 18, - 42, 3, 42, 42, 42, 25, 18, 18, 42, 2, - -1, 18, 18, 42, 18, 18, 14, 18, 14, 18, - 2, 4, 2, 18, 42, 18, 54, 14, 56, 18, - -1, 4, -1, 18, -1, 18, 18, 18, 18, 54, - 54, 56, 56, 44, 54, 18, 56, 18, 11, 12, - 45, -1, -1, 51, 54, 51, 56, 54, 42, 56, - 54, 46, 54, 54, 51, 46, 50, 59, 59, 18, - 42, -1, -1, -1, 45, 54, 70, 54, 50, 54, - 59, 14, 59, 2, 59, 54, 19, 56, 54, 54, - 54, 56, 14, 59, 43, 54, 54, 56, 56, 18, - 2, 23, 2, 54, 68, 56, 14, 54, 54, 2, - 54, 19, 3, 60, 60, 59, 18, 54, 18, 18, - 109, 18, 59, 54, 54, 18, 54, 54, 59, 59, - 54, 59, 59, 54, 58, 38, 54, 58, 18, 42, - 58, 2, 54, 2, 18, 54, 45, 2, 45, 2, - 4, 3, 18, 18, 66, 64, 3, 18, 54, 18, - 56, 2, 54, 18, 18, 18, 46, 54, 60, 56, - 3, 3, 54, 47, 2, 57, 54, 18, 56, 54, - 2, 56, 54, 54, 56, 2, 57, 54, 2, 18, - 18, 54, 54, 56, -1, 62, 18, 54, 60, 56, - -1, 18, 14, 54, 18, 54, 2, 19, 59, -1, - 59, 54, 54, -1, 63, 44, 59, 59, -1, 54, - 2, -1, 18, 65, 59, 76, 78, 92, 94, 54, - 54, 78, 18, 76, 59, 59, 18, 61, 54, 54, - -1, 76, 67, 59, 59, 78, 78, 54, 54, -1, - 54, 54, 59, 59, 69, 59, 59, 61, 61, 14, - 76, 47, 48, -1, 71, -1, 54, 14, 23, 5, - 76, 59, 19, 61, 21, 5, -1, -1, 14, -1, - 35, 36, -1, -1, 14, -1, -1, 23, -1, -1, - -1, -1, 88, 23, -1, 42, -1, -1, -1, 35, - 36, -1, -1, -1, -1, 35, 36, 25, 26, 27, - 28, 29, 30, 31, -1, -1, -1, -1, -1, -1, - -1, 14, -1, -1, -1, -1, -1, -1, -1, 2, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 14, - -1, -1, -1, -1, -1, 18, -1, -1, 23, 24, - 25, 26, 27, 28, 29, 30, 31, -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, + 77, 14, 18, 18, 18, 32, 18, 3, 32, 42, + 9, 3, 3, 18, 42, 3, 18, 18, 3, 22, + 18, 32, 32, 18, 18, 25, 32, 3, 18, 18, + 3, 18, 3, 42, 18, 14, 22, 18, 18, 22, + 22, 18, 100, 18, 18, 42, 18, 3, 105, 42, + 3, 3, 18, 14, 32, 18, 3, 25, 25, 18, + 3, 25, 3, 18, 18, 3, 103, 18, 18, 2, + -1, 3, 42, 42, 18, 14, 25, 42, 14, 2, + 42, -1, 42, 18, 42, 18, 2, 4, -1, -1, + 18, -1, -1, 18, -1, 18, -1, 54, -1, 56, + 44, 18, 18, 18, 18, -1, 54, -1, 54, 54, + 56, 56, 51, 42, 54, 51, 56, 54, 46, 56, + 45, 50, 70, 54, 54, 56, 56, 3, 54, 42, + 45, 18, 46, 59, 54, 54, 54, 50, 2, 59, + 59, 59, 54, 54, 11, 12, 78, 59, 59, 54, + 54, 56, 56, 54, 18, 2, 14, 18, 4, 54, + 54, 56, 56, 54, 54, 23, 3, 68, 58, 60, + 54, 18, 18, 14, 109, 2, 60, 2, 19, 54, + 54, 54, 43, 38, 59, 59, 59, 42, 54, 54, + 56, 18, 54, 18, 59, 54, 2, 59, 54, 58, + 54, 2, 58, 18, 54, 59, 2, 94, 2, 54, + 18, 4, 18, 2, 18, 3, 66, 18, 18, 64, + 3, 54, 18, 56, 18, 18, 54, 2, 56, 18, + 45, 54, 18, 56, 54, 14, 14, 57, 2, 47, + 19, 78, 46, 18, 44, 54, 2, 18, 57, 54, + 2, 54, 2, 56, 18, 60, 54, 54, 56, 56, + 14, -1, 18, 54, 54, 19, 18, -1, 18, 60, + 54, 18, 62, 51, 45, 59, -1, 54, -1, -1, + 54, 54, 59, 67, 54, 59, 59, 54, 2, 59, + 78, -1, 59, 63, 61, 78, 69, 71, -1, 76, + 47, 48, -1, 54, 18, 54, 92, -1, 59, 54, + 59, 54, 61, 54, 59, -1, 59, 54, 59, 54, + 65, -1, 59, 54, 59, 76, 61, -1, 59, 14, + 61, 14, 2, 76, 19, 76, 21, 5, 88, 76, + 23, -1, -1, -1, -1, -1, 14, -1, 18, -1, + -1, -1, 35, 36, -1, 23, -1, 42, 25, 26, + 27, 28, 29, 30, 31, -1, 14, 35, 36, -1, + -1, -1, -1, -1, 88, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 14, -1, -1, -1, -1, -1, + -1, -1, -1, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 14, -1, -1, -1, -1, -1, -1, -1, + -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 14, -1, - -1, -1, -1, -1, -1, -1, -1, 23, 24, 25, - 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, + -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, + 14, -1, -1, -1, -1, -1, -1, -1, -1, 23, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 35, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1}; + -1, -1, -1, -1, -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 a492b692f9..2c5d0d62f7 100644 --- a/src/libs/qmljs/parser/qmljsgrammar_p.h +++ b/src/libs/qmljs/parser/qmljsgrammar_p.h @@ -35,7 +35,8 @@ // // This file was generated by qlalr - DO NOT EDIT! -#pragma once +#ifndef QMLJSGRAMMAR_P_H +#define QMLJSGRAMMAR_P_H #include "qmljsglobal_p.h" #include @@ -153,15 +154,15 @@ public: T_XOR = 79, T_XOR_EQ = 80, - ACCEPT_STATE = 665, - RULE_COUNT = 358, - STATE_COUNT = 666, + ACCEPT_STATE = 674, + RULE_COUNT = 361, + STATE_COUNT = 675, TERMINAL_COUNT = 106, NON_TERMINAL_COUNT = 111, - GOTO_INDEX_OFFSET = 666, - GOTO_INFO_OFFSET = 3018, - GOTO_CHECK_OFFSET = 3018 + GOTO_INDEX_OFFSET = 675, + GOTO_INFO_OFFSET = 3078, + GOTO_CHECK_OFFSET = 3078 }; static const char *const spell []; @@ -195,3 +196,5 @@ public: QT_END_NAMESPACE +#endif // QMLJSGRAMMAR_P_H + diff --git a/src/libs/qmljs/parser/qmljskeywords_p.h b/src/libs/qmljs/parser/qmljskeywords_p.h index 94c2d8aca2..92d56ef0e9 100644 --- a/src/libs/qmljs/parser/qmljskeywords_p.h +++ b/src/libs/qmljs/parser/qmljskeywords_p.h @@ -874,3 +874,4 @@ int Lexer::classify(const QChar *s, int n, bool qmlMode) { } // namespace QmlJS QT_QML_END_NAMESPACE + diff --git a/src/libs/qmljs/parser/qmljslexer_p.h b/src/libs/qmljs/parser/qmljslexer_p.h index 7f4ae245ad..b17aa51e3e 100644 --- a/src/libs/qmljs/parser/qmljslexer_p.h +++ b/src/libs/qmljs/parser/qmljslexer_p.h @@ -237,3 +237,4 @@ private: } // end of namespace QmlJS QT_QML_END_NAMESPACE + diff --git a/src/libs/qmljs/parser/qmljsmemorypool_p.h b/src/libs/qmljs/parser/qmljsmemorypool_p.h index 101892b4a4..2cb234f244 100644 --- a/src/libs/qmljs/parser/qmljsmemorypool_p.h +++ b/src/libs/qmljs/parser/qmljsmemorypool_p.h @@ -79,7 +79,7 @@ public: inline void *allocate(size_t size) { size = (size + 7) & ~7; - if (_ptr && (_ptr + size < _end)) { + if (Q_LIKELY(_ptr && (_ptr + size < _end))) { void *addr = _ptr; _ptr += size; return addr; @@ -96,7 +96,7 @@ public: template Tp *New() { return new (this->allocate(sizeof(Tp))) Tp(); } private: - void *allocate_helper(size_t size) + Q_NEVER_INLINE void *allocate_helper(size_t size) { Q_ASSERT(size < BLOCK_SIZE); @@ -107,6 +107,7 @@ private: _allocatedBlocks *= 2; _blocks = (char **) realloc(_blocks, sizeof(char *) * _allocatedBlocks); + Q_CHECK_PTR(_blocks); for (int index = _blockCount; index < _allocatedBlocks; ++index) _blocks[index] = 0; @@ -114,8 +115,10 @@ private: char *&block = _blocks[_blockCount]; - if (! block) + if (! block) { block = (char *) malloc(BLOCK_SIZE); + Q_CHECK_PTR(block); + } _ptr = block; _end = _ptr + BLOCK_SIZE; @@ -156,3 +159,4 @@ public: } // namespace QmlJS QT_QML_END_NAMESPACE + diff --git a/src/libs/qmljs/parser/qmljsparser.cpp b/src/libs/qmljs/parser/qmljsparser.cpp index bddfe95d27..87cc41b00c 100644 --- a/src/libs/qmljs/parser/qmljsparser.cpp +++ b/src/libs/qmljs/parser/qmljsparser.cpp @@ -422,31 +422,55 @@ case 47: sym(1).Node = node; } break; +case 48: { + AST::UiQualifiedId *node = new (pool) AST::UiQualifiedId(stringRef(1)); + node->identifierToken = loc(1); + sym(1).Node = node; +} break; + +case 49: { + AST::UiQualifiedId *node = new (pool) AST::UiQualifiedId(stringRef(1)); + node->identifierToken = loc(1); + sym(1).Node = node; +} break; + +case 50: { + AST::UiQualifiedId *node = new (pool) AST::UiQualifiedId(stringRef(1)); + node->identifierToken = loc(1); + sym(1).Node = node; +} break; + case 51: { - sym(1).Node = 0; + AST::UiQualifiedId *node = new (pool) AST::UiQualifiedId(sym(1).UiQualifiedId, stringRef(3)); + node->identifierToken = loc(3); + sym(1).Node = node; } break; case 52: { - sym(1).Node = sym(1).UiParameterList->finish (); + sym(1).Node = 0; } break; case 53: { - AST::UiParameterList *node = new (pool) AST::UiParameterList(stringRef(1), stringRef(2)); + sym(1).Node = sym(1).UiParameterList->finish (); +} break; + +case 54: { + AST::UiParameterList *node = new (pool) AST::UiParameterList(sym(1).UiQualifiedId->finish(), stringRef(2)); node->propertyTypeToken = loc(1); node->identifierToken = loc(2); sym(1).Node = node; } break; -case 54: { - AST::UiParameterList *node = new (pool) AST::UiParameterList(sym(1).UiParameterList, stringRef(3), stringRef(4)); +case 55: { + AST::UiParameterList *node = new (pool) AST::UiParameterList(sym(1).UiParameterList, sym(3).UiQualifiedId->finish(), stringRef(4)); node->propertyTypeToken = loc(3); node->commaToken = loc(2); node->identifierToken = loc(4); sym(1).Node = node; } break; -case 56: { - AST::UiPublicMember *node = new (pool) AST::UiPublicMember(QStringRef(), stringRef(2)); +case 57: { + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(nullptr, stringRef(2)); node->type = AST::UiPublicMember::Signal; node->propertyToken = loc(1); node->typeToken = loc(2); @@ -456,8 +480,8 @@ case 56: { sym(1).Node = node; } break; -case 58: { - AST::UiPublicMember *node = new (pool) AST::UiPublicMember(QStringRef(), stringRef(2)); +case 59: { + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(nullptr, stringRef(2)); node->type = AST::UiPublicMember::Signal; node->propertyToken = loc(1); node->typeToken = loc(2); @@ -466,8 +490,8 @@ case 58: { sym(1).Node = node; } break; -case 60: { - AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(4), stringRef(6)); +case 61: { + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(sym(4).UiQualifiedId->finish(), stringRef(6)); node->typeModifier = stringRef(2); node->propertyToken = loc(1); node->typeModifierToken = loc(2); @@ -477,8 +501,8 @@ case 60: { sym(1).Node = node; } break; -case 62: { - AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(2), stringRef(3)); +case 63: { + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(sym(2).UiQualifiedId->finish(), stringRef(3)); node->propertyToken = loc(1); node->typeToken = loc(2); node->identifierToken = loc(3); @@ -486,8 +510,8 @@ case 62: { sym(1).Node = node; } break; -case 64: { - AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(3), stringRef(4)); +case 65: { + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(sym(3).UiQualifiedId->finish(), stringRef(4)); node->isDefaultMember = true; node->defaultToken = loc(1); node->propertyToken = loc(2); @@ -497,8 +521,21 @@ case 64: { sym(1).Node = node; } break; -case 65: { - AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(2), stringRef(3), +case 67: { + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(sym(5).UiQualifiedId->finish(), stringRef(7)); + node->isDefaultMember = true; + node->defaultToken = loc(1); + node->typeModifier = stringRef(3); + node->propertyToken = loc(2); + node->typeModifierToken = loc(2); + node->typeToken = loc(4); + node->identifierToken = loc(7); + node->semicolonToken = loc(8); + sym(1).Node = node; +} break; + +case 68: { + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(sym(2).UiQualifiedId->finish(), stringRef(3), sym(5).Statement); node->propertyToken = loc(1); node->typeToken = loc(2); @@ -507,8 +544,8 @@ case 65: { sym(1).Node = node; } break; -case 66: { - AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(3), stringRef(4), +case 69: { + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(sym(3).UiQualifiedId->finish(), stringRef(4), sym(6).Statement); node->isReadonlyMember = true; node->readonlyToken = loc(1); @@ -519,8 +556,8 @@ case 66: { sym(1).Node = node; } break; -case 67: { - AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(3), stringRef(4), +case 70: { + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(sym(3).UiQualifiedId->finish(), stringRef(4), sym(6).Statement); node->isDefaultMember = true; node->defaultToken = loc(1); @@ -531,8 +568,8 @@ case 67: { sym(1).Node = node; } break; -case 68: { - AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(4), stringRef(6)); +case 71: { + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(sym(4).UiQualifiedId->finish(), stringRef(6)); node->typeModifier = stringRef(2); node->propertyToken = loc(1); node->typeModifierToken = loc(2); @@ -555,8 +592,8 @@ case 68: { sym(1).Node = node; } break; -case 69: { - AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(2), stringRef(3)); +case 72: { + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(sym(2).UiQualifiedId->finish(), stringRef(3)); node->propertyToken = loc(1); node->typeToken = loc(2); node->identifierToken = loc(3); @@ -575,8 +612,8 @@ case 69: { sym(1).Node = node; } break; -case 70: { - AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(3), stringRef(4)); +case 73: { + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(sym(3).UiQualifiedId->finish(), stringRef(4)); node->isReadonlyMember = true; node->readonlyToken = loc(1); node->propertyToken = loc(2); @@ -597,57 +634,57 @@ case 70: { sym(1).Node = node; } break; -case 71: { +case 74: { sym(1).Node = new (pool) AST::UiSourceElement(sym(1).Node); } break; -case 72: { +case 75: { sym(1).Node = new (pool) AST::UiSourceElement(sym(1).Node); } break; -case 80: { +case 83: { AST::ThisExpression *node = new (pool) AST::ThisExpression(); node->thisToken = loc(1); sym(1).Node = node; } break; -case 81: { +case 84: { AST::IdentifierExpression *node = new (pool) AST::IdentifierExpression(stringRef(1)); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 82: { +case 85: { AST::NullExpression *node = new (pool) AST::NullExpression(); node->nullToken = loc(1); sym(1).Node = node; } break; -case 83: { +case 86: { AST::TrueLiteral *node = new (pool) AST::TrueLiteral(); node->trueToken = loc(1); sym(1).Node = node; } break; -case 84: { +case 87: { AST::FalseLiteral *node = new (pool) AST::FalseLiteral(); node->falseToken = loc(1); sym(1).Node = node; } break; -case 85: { +case 88: { AST::NumericLiteral *node = new (pool) AST::NumericLiteral(sym(1).dval); node->literalToken = loc(1); sym(1).Node = node; } break; -case 86: -case 87: { +case 89: +case 90: { AST::StringLiteral *node = new (pool) AST::StringLiteral(stringRef(1)); node->literalToken = loc(1); sym(1).Node = node; } break; -case 88: { +case 91: { bool rx = lexer->scanRegExp(Lexer::NoPrefix); if (!rx) { diagnostic_messages.append(DiagnosticMessage(Severity::Error, location(lexer), lexer->errorMessage())); @@ -663,7 +700,7 @@ case 88: { sym(1).Node = node; } break; -case 89: { +case 92: { bool rx = lexer->scanRegExp(Lexer::EqualPrefix); if (!rx) { diagnostic_messages.append(DiagnosticMessage(Severity::Error, location(lexer), lexer->errorMessage())); @@ -679,28 +716,28 @@ case 89: { sym(1).Node = node; } break; -case 90: { +case 93: { AST::ArrayLiteral *node = new (pool) AST::ArrayLiteral((AST::Elision *) 0); node->lbracketToken = loc(1); node->rbracketToken = loc(2); sym(1).Node = node; } break; -case 91: { +case 94: { AST::ArrayLiteral *node = new (pool) AST::ArrayLiteral(sym(2).Elision->finish()); node->lbracketToken = loc(1); node->rbracketToken = loc(3); sym(1).Node = node; } break; -case 92: { +case 95: { AST::ArrayLiteral *node = new (pool) AST::ArrayLiteral(sym(2).ElementList->finish ()); node->lbracketToken = loc(1); node->rbracketToken = loc(3); sym(1).Node = node; } break; -case 93: { +case 96: { AST::ArrayLiteral *node = new (pool) AST::ArrayLiteral(sym(2).ElementList->finish (), (AST::Elision *) 0); node->lbracketToken = loc(1); @@ -709,7 +746,7 @@ case 93: { sym(1).Node = node; } break; -case 94: { +case 97: { AST::ArrayLiteral *node = new (pool) AST::ArrayLiteral(sym(2).ElementList->finish (), sym(4).Elision->finish()); node->lbracketToken = loc(1); @@ -718,7 +755,7 @@ case 94: { sym(1).Node = node; } break; -case 95: { +case 98: { AST::ObjectLiteral *node = 0; if (sym(2).Node) node = new (pool) AST::ObjectLiteral( @@ -730,7 +767,7 @@ case 95: { sym(1).Node = node; } break; -case 96: { +case 99: { AST::ObjectLiteral *node = new (pool) AST::ObjectLiteral( sym(2).PropertyAssignmentList->finish ()); node->lbraceToken = loc(1); @@ -738,14 +775,14 @@ case 96: { sym(1).Node = node; } break; -case 97: { +case 100: { AST::NestedExpression *node = new (pool) AST::NestedExpression(sym(2).Expression); node->lparenToken = loc(1); node->rparenToken = loc(3); sym(1).Node = node; } break; -case 98: { +case 101: { if (AST::ArrayMemberExpression *mem = AST::cast(sym(1).Expression)) { diagnostic_messages.append(DiagnosticMessage(Severity::Warning, mem->lbracketToken, QLatin1String("Ignored annotation"))); @@ -765,48 +802,48 @@ case 98: { } } break; -case 99: { +case 102: { sym(1).Node = new (pool) AST::ElementList((AST::Elision *) 0, sym(1).Expression); } break; -case 100: { +case 103: { sym(1).Node = new (pool) AST::ElementList(sym(1).Elision->finish(), sym(2).Expression); } break; -case 101: { +case 104: { AST::ElementList *node = new (pool) AST::ElementList(sym(1).ElementList, (AST::Elision *) 0, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 102: { +case 105: { AST::ElementList *node = new (pool) AST::ElementList(sym(1).ElementList, sym(3).Elision->finish(), sym(4).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 103: { +case 106: { AST::Elision *node = new (pool) AST::Elision(); node->commaToken = loc(1); sym(1).Node = node; } break; -case 104: { +case 107: { AST::Elision *node = new (pool) AST::Elision(sym(1).Elision); node->commaToken = loc(2); sym(1).Node = node; } break; -case 105: { +case 108: { AST::PropertyNameAndValue *node = new (pool) AST::PropertyNameAndValue( sym(1).PropertyName, sym(3).Expression); node->colonToken = loc(2); sym(1).Node = node; } break; -case 106: { +case 109: { AST::PropertyGetterSetter *node = new (pool) AST::PropertyGetterSetter( sym(2).PropertyName, sym(6).FunctionBody); node->getSetToken = loc(1); @@ -817,7 +854,7 @@ case 106: { sym(1).Node = node; } break; -case 107: { +case 110: { AST::PropertyGetterSetter *node = new (pool) AST::PropertyGetterSetter( sym(2).PropertyName, sym(4).FormalParameterList, sym(7).FunctionBody); node->getSetToken = loc(1); @@ -828,56 +865,56 @@ case 107: { sym(1).Node = node; } break; -case 108: { +case 111: { sym(1).Node = new (pool) AST::PropertyAssignmentList(sym(1).PropertyAssignment); } break; -case 109: { +case 112: { AST::PropertyAssignmentList *node = new (pool) AST::PropertyAssignmentList( sym(1).PropertyAssignmentList, sym(3).PropertyAssignment); node->commaToken = loc(2); sym(1).Node = node; } break; -case 110: { +case 113: { AST::IdentifierPropertyName *node = new (pool) AST::IdentifierPropertyName(stringRef(1)); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 111: { +case 114: { AST::StringLiteralPropertyName *node = new (pool) AST::StringLiteralPropertyName(stringRef(1)); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 112: { +case 115: { AST::NumericLiteralPropertyName *node = new (pool) AST::NumericLiteralPropertyName(sym(1).dval); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 113: { +case 116: { AST::IdentifierPropertyName *node = new (pool) AST::IdentifierPropertyName(stringRef(1)); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 149: { +case 152: { AST::ArrayMemberExpression *node = new (pool) AST::ArrayMemberExpression(sym(1).Expression, sym(3).Expression); node->lbracketToken = loc(2); node->rbracketToken = loc(4); sym(1).Node = node; } break; -case 150: { +case 153: { AST::FieldMemberExpression *node = new (pool) AST::FieldMemberExpression(sym(1).Expression, stringRef(3)); node->dotToken = loc(2); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 151: { +case 154: { AST::NewMemberExpression *node = new (pool) AST::NewMemberExpression(sym(2).Expression, sym(4).ArgumentList); node->newToken = loc(1); node->lparenToken = loc(3); @@ -885,384 +922,384 @@ case 151: { sym(1).Node = node; } break; -case 153: { +case 156: { AST::NewExpression *node = new (pool) AST::NewExpression(sym(2).Expression); node->newToken = loc(1); sym(1).Node = node; } break; -case 154: { +case 157: { AST::CallExpression *node = new (pool) AST::CallExpression(sym(1).Expression, sym(3).ArgumentList); node->lparenToken = loc(2); node->rparenToken = loc(4); sym(1).Node = node; } break; -case 155: { +case 158: { AST::CallExpression *node = new (pool) AST::CallExpression(sym(1).Expression, sym(3).ArgumentList); node->lparenToken = loc(2); node->rparenToken = loc(4); sym(1).Node = node; } break; -case 156: { +case 159: { AST::ArrayMemberExpression *node = new (pool) AST::ArrayMemberExpression(sym(1).Expression, sym(3).Expression); node->lbracketToken = loc(2); node->rbracketToken = loc(4); sym(1).Node = node; } break; -case 157: { +case 160: { AST::FieldMemberExpression *node = new (pool) AST::FieldMemberExpression(sym(1).Expression, stringRef(3)); node->dotToken = loc(2); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 158: { +case 161: { sym(1).Node = 0; } break; -case 159: { +case 162: { sym(1).Node = sym(1).ArgumentList->finish(); } break; -case 160: { +case 163: { sym(1).Node = new (pool) AST::ArgumentList(sym(1).Expression); } break; -case 161: { +case 164: { AST::ArgumentList *node = new (pool) AST::ArgumentList(sym(1).ArgumentList, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 165: { +case 168: { AST::PostIncrementExpression *node = new (pool) AST::PostIncrementExpression(sym(1).Expression); node->incrementToken = loc(2); sym(1).Node = node; } break; -case 166: { +case 169: { AST::PostDecrementExpression *node = new (pool) AST::PostDecrementExpression(sym(1).Expression); node->decrementToken = loc(2); sym(1).Node = node; } break; -case 168: { +case 171: { AST::DeleteExpression *node = new (pool) AST::DeleteExpression(sym(2).Expression); node->deleteToken = loc(1); sym(1).Node = node; } break; -case 169: { +case 172: { AST::VoidExpression *node = new (pool) AST::VoidExpression(sym(2).Expression); node->voidToken = loc(1); sym(1).Node = node; } break; -case 170: { +case 173: { AST::TypeOfExpression *node = new (pool) AST::TypeOfExpression(sym(2).Expression); node->typeofToken = loc(1); sym(1).Node = node; } break; -case 171: { +case 174: { AST::PreIncrementExpression *node = new (pool) AST::PreIncrementExpression(sym(2).Expression); node->incrementToken = loc(1); sym(1).Node = node; } break; -case 172: { +case 175: { AST::PreDecrementExpression *node = new (pool) AST::PreDecrementExpression(sym(2).Expression); node->decrementToken = loc(1); sym(1).Node = node; } break; -case 173: { +case 176: { AST::UnaryPlusExpression *node = new (pool) AST::UnaryPlusExpression(sym(2).Expression); node->plusToken = loc(1); sym(1).Node = node; } break; -case 174: { +case 177: { AST::UnaryMinusExpression *node = new (pool) AST::UnaryMinusExpression(sym(2).Expression); node->minusToken = loc(1); sym(1).Node = node; } break; -case 175: { +case 178: { AST::TildeExpression *node = new (pool) AST::TildeExpression(sym(2).Expression); node->tildeToken = loc(1); sym(1).Node = node; } break; -case 176: { +case 179: { AST::NotExpression *node = new (pool) AST::NotExpression(sym(2).Expression); node->notToken = loc(1); sym(1).Node = node; } break; -case 178: { +case 181: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Mul, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 179: { +case 182: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Div, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 180: { +case 183: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Mod, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 182: { +case 185: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Add, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 183: { +case 186: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Sub, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 185: { +case 188: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::LShift, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 186: { +case 189: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::RShift, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 187: { +case 190: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::URShift, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 189: { +case 192: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Lt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 190: { +case 193: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Gt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 191: { +case 194: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Le, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 192: { +case 195: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Ge, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 193: { +case 196: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::InstanceOf, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 194: { +case 197: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::In, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 196: { +case 199: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Lt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 197: { +case 200: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Gt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 198: { +case 201: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Le, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 199: { +case 202: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Ge, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 200: { +case 203: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::InstanceOf, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 202: { +case 205: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Equal, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 203: { +case 206: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::NotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 204: { +case 207: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::StrictEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 205: { +case 208: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::StrictNotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 207: { +case 210: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Equal, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 208: { +case 211: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::NotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 209: { +case 212: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::StrictEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 210: { +case 213: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::StrictNotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 212: { +case 215: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::BitAnd, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 214: { +case 217: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::BitAnd, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 216: { +case 219: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::BitXor, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 218: { +case 221: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::BitXor, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 220: { +case 223: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::BitOr, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 222: { +case 225: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::BitOr, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 224: { +case 227: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::And, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 226: { +case 229: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::And, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 228: { +case 231: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Or, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 230: { +case 233: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Or, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 232: { +case 235: { AST::ConditionalExpression *node = new (pool) AST::ConditionalExpression(sym(1).Expression, sym(3).Expression, sym(5).Expression); node->questionToken = loc(2); @@ -1270,7 +1307,7 @@ case 232: { sym(1).Node = node; } break; -case 234: { +case 237: { AST::ConditionalExpression *node = new (pool) AST::ConditionalExpression(sym(1).Expression, sym(3).Expression, sym(5).Expression); node->questionToken = loc(2); @@ -1278,112 +1315,112 @@ case 234: { sym(1).Node = node; } break; -case 236: { +case 239: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, sym(2).ival, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 238: { +case 241: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, sym(2).ival, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 239: { +case 242: { sym(1).ival = QSOperator::Assign; } break; -case 240: { +case 243: { sym(1).ival = QSOperator::InplaceMul; } break; -case 241: { +case 244: { sym(1).ival = QSOperator::InplaceDiv; } break; -case 242: { +case 245: { sym(1).ival = QSOperator::InplaceMod; } break; -case 243: { +case 246: { sym(1).ival = QSOperator::InplaceAdd; } break; -case 244: { +case 247: { sym(1).ival = QSOperator::InplaceSub; } break; -case 245: { +case 248: { sym(1).ival = QSOperator::InplaceLeftShift; } break; -case 246: { +case 249: { sym(1).ival = QSOperator::InplaceRightShift; } break; -case 247: { +case 250: { sym(1).ival = QSOperator::InplaceURightShift; } break; -case 248: { +case 251: { sym(1).ival = QSOperator::InplaceAnd; } break; -case 249: { +case 252: { sym(1).ival = QSOperator::InplaceXor; } break; -case 250: { +case 253: { sym(1).ival = QSOperator::InplaceOr; } break; -case 252: { +case 255: { AST::Expression *node = new (pool) AST::Expression(sym(1).Expression, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 253: { +case 256: { sym(1).Node = 0; } break; -case 256: { +case 259: { AST::Expression *node = new (pool) AST::Expression(sym(1).Expression, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 257: { +case 260: { sym(1).Node = 0; } break; -case 274: { +case 277: { AST::Block *node = new (pool) AST::Block(sym(2).StatementList); node->lbraceToken = loc(1); node->rbraceToken = loc(3); sym(1).Node = node; } break; -case 275: { +case 278: { sym(1).Node = new (pool) AST::StatementList(sym(1).Statement); } break; -case 276: { +case 279: { sym(1).Node = new (pool) AST::StatementList(sym(1).StatementList, sym(2).Statement); } break; -case 277: { +case 280: { sym(1).Node = 0; } break; -case 278: { +case 281: { sym(1).Node = sym(1).StatementList->finish (); } break; -case 280: { +case 283: { AST::VariableStatement *node = new (pool) AST::VariableStatement( sym(2).VariableDeclarationList->finish (/*readOnly=*/sym(1).ival == T_CONST)); node->declarationKindToken = loc(1); @@ -1391,76 +1428,76 @@ case 280: { sym(1).Node = node; } break; -case 281: { +case 284: { sym(1).ival = T_CONST; } break; -case 282: { +case 285: { sym(1).ival = T_VAR; } break; -case 283: { +case 286: { sym(1).Node = new (pool) AST::VariableDeclarationList(sym(1).VariableDeclaration); } break; -case 284: { +case 287: { AST::VariableDeclarationList *node = new (pool) AST::VariableDeclarationList( sym(1).VariableDeclarationList, sym(3).VariableDeclaration); node->commaToken = loc(2); sym(1).Node = node; } break; -case 285: { +case 288: { sym(1).Node = new (pool) AST::VariableDeclarationList(sym(1).VariableDeclaration); } break; -case 286: { +case 289: { sym(1).Node = new (pool) AST::VariableDeclarationList(sym(1).VariableDeclarationList, sym(3).VariableDeclaration); } break; -case 287: { +case 290: { AST::VariableDeclaration *node = new (pool) AST::VariableDeclaration(stringRef(1), sym(2).Expression); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 288: { +case 291: { AST::VariableDeclaration *node = new (pool) AST::VariableDeclaration(stringRef(1), sym(2).Expression); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 289: { +case 292: { // ### TODO: AST for initializer sym(1) = sym(2); } break; -case 290: { +case 293: { sym(1).Node = 0; } break; -case 292: { +case 295: { // ### TODO: AST for initializer sym(1) = sym(2); } break; -case 293: { +case 296: { sym(1).Node = 0; } break; -case 295: { +case 298: { AST::EmptyStatement *node = new (pool) AST::EmptyStatement(); node->semicolonToken = loc(1); sym(1).Node = node; } break; -case 297: { +case 300: { AST::ExpressionStatement *node = new (pool) AST::ExpressionStatement(sym(1).Expression); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 298: { +case 301: { AST::IfStatement *node = new (pool) AST::IfStatement(sym(3).Expression, sym(5).Statement, sym(7).Statement); node->ifToken = loc(1); node->lparenToken = loc(2); @@ -1469,7 +1506,7 @@ case 298: { sym(1).Node = node; } break; -case 299: { +case 302: { AST::IfStatement *node = new (pool) AST::IfStatement(sym(3).Expression, sym(5).Statement); node->ifToken = loc(1); node->lparenToken = loc(2); @@ -1477,7 +1514,7 @@ case 299: { sym(1).Node = node; } break; -case 302: { +case 305: { AST::DoWhileStatement *node = new (pool) AST::DoWhileStatement(sym(2).Statement, sym(5).Expression); node->doToken = loc(1); node->whileToken = loc(3); @@ -1487,7 +1524,7 @@ case 302: { sym(1).Node = node; } break; -case 303: { +case 306: { AST::WhileStatement *node = new (pool) AST::WhileStatement(sym(3).Expression, sym(5).Statement); node->whileToken = loc(1); node->lparenToken = loc(2); @@ -1495,7 +1532,7 @@ case 303: { sym(1).Node = node; } break; -case 304: { +case 307: { AST::ForStatement *node = new (pool) AST::ForStatement(sym(3).Expression, sym(5).Expression, sym(7).Expression, sym(9).Statement); node->forToken = loc(1); @@ -1506,7 +1543,7 @@ case 304: { sym(1).Node = node; } break; -case 305: { +case 308: { AST::LocalForStatement *node = new (pool) AST::LocalForStatement( sym(4).VariableDeclarationList->finish (/*readOnly=*/false), sym(6).Expression, sym(8).Expression, sym(10).Statement); @@ -1519,7 +1556,7 @@ case 305: { sym(1).Node = node; } break; -case 306: { +case 309: { AST:: ForEachStatement *node = new (pool) AST::ForEachStatement(sym(3).Expression, sym(5).Expression, sym(7).Statement); node->forToken = loc(1); @@ -1529,7 +1566,7 @@ case 306: { sym(1).Node = node; } break; -case 307: { +case 310: { AST::LocalForEachStatement *node = new (pool) AST::LocalForEachStatement( sym(4).VariableDeclaration, sym(6).Expression, sym(8).Statement); node->forToken = loc(1); @@ -1540,14 +1577,14 @@ case 307: { sym(1).Node = node; } break; -case 309: { +case 312: { AST::ContinueStatement *node = new (pool) AST::ContinueStatement(); node->continueToken = loc(1); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 311: { +case 314: { AST::ContinueStatement *node = new (pool) AST::ContinueStatement(stringRef(2)); node->continueToken = loc(1); node->identifierToken = loc(2); @@ -1555,14 +1592,14 @@ case 311: { sym(1).Node = node; } break; -case 313: { +case 316: { AST::BreakStatement *node = new (pool) AST::BreakStatement(QStringRef()); node->breakToken = loc(1); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 315: { +case 318: { AST::BreakStatement *node = new (pool) AST::BreakStatement(stringRef(2)); node->breakToken = loc(1); node->identifierToken = loc(2); @@ -1570,14 +1607,14 @@ case 315: { sym(1).Node = node; } break; -case 317: { +case 320: { AST::ReturnStatement *node = new (pool) AST::ReturnStatement(sym(2).Expression); node->returnToken = loc(1); node->semicolonToken = loc(3); sym(1).Node = node; } break; -case 318: { +case 321: { AST::WithStatement *node = new (pool) AST::WithStatement(sym(3).Expression, sym(5).Statement); node->withToken = loc(1); node->lparenToken = loc(2); @@ -1585,7 +1622,7 @@ case 318: { sym(1).Node = node; } break; -case 319: { +case 322: { AST::SwitchStatement *node = new (pool) AST::SwitchStatement(sym(3).Expression, sym(5).CaseBlock); node->switchToken = loc(1); node->lparenToken = loc(2); @@ -1593,83 +1630,83 @@ case 319: { sym(1).Node = node; } break; -case 320: { +case 323: { AST::CaseBlock *node = new (pool) AST::CaseBlock(sym(2).CaseClauses); node->lbraceToken = loc(1); node->rbraceToken = loc(3); sym(1).Node = node; } break; -case 321: { +case 324: { 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 322: { +case 325: { sym(1).Node = new (pool) AST::CaseClauses(sym(1).CaseClause); } break; -case 323: { +case 326: { sym(1).Node = new (pool) AST::CaseClauses(sym(1).CaseClauses, sym(2).CaseClause); } break; -case 324: { +case 327: { sym(1).Node = 0; } break; -case 325: { +case 328: { sym(1).Node = sym(1).CaseClauses->finish (); } break; -case 326: { +case 329: { 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 327: { +case 330: { AST::DefaultClause *node = new (pool) AST::DefaultClause(sym(3).StatementList); node->defaultToken = loc(1); node->colonToken = loc(2); sym(1).Node = node; } break; -case 328: { +case 331: { 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 330: { +case 333: { AST::ThrowStatement *node = new (pool) AST::ThrowStatement(sym(2).Expression); node->throwToken = loc(1); node->semicolonToken = loc(3); sym(1).Node = node; } break; -case 331: { +case 334: { AST::TryStatement *node = new (pool) AST::TryStatement(sym(2).Statement, sym(3).Catch); node->tryToken = loc(1); sym(1).Node = node; } break; -case 332: { +case 335: { AST::TryStatement *node = new (pool) AST::TryStatement(sym(2).Statement, sym(3).Finally); node->tryToken = loc(1); sym(1).Node = node; } break; -case 333: { +case 336: { 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 334: { +case 337: { AST::Catch *node = new (pool) AST::Catch(stringRef(3), sym(5).Block); node->catchToken = loc(1); node->lparenToken = loc(2); @@ -1678,20 +1715,20 @@ case 334: { sym(1).Node = node; } break; -case 335: { +case 338: { AST::Finally *node = new (pool) AST::Finally(sym(2).Block); node->finallyToken = loc(1); sym(1).Node = node; } break; -case 337: { +case 340: { AST::DebuggerStatement *node = new (pool) AST::DebuggerStatement(); node->debuggerToken = loc(1); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 339: { +case 342: { AST::FunctionDeclaration *node = new (pool) AST::FunctionDeclaration(stringRef(2), sym(4).FormalParameterList, sym(7).FunctionBody); node->functionToken = loc(1); node->identifierToken = loc(2); @@ -1702,7 +1739,7 @@ case 339: { sym(1).Node = node; } break; -case 340: { +case 343: { AST::FunctionExpression *node = new (pool) AST::FunctionExpression(stringRef(2), sym(4).FormalParameterList, sym(7).FunctionBody); node->functionToken = loc(1); if (! stringRef(2).isNull()) @@ -1714,7 +1751,7 @@ case 340: { sym(1).Node = node; } break; -case 341: { +case 344: { AST::FunctionExpression *node = new (pool) AST::FunctionExpression(QStringRef(), sym(3).FormalParameterList, sym(6).FunctionBody); node->functionToken = loc(1); node->lparenToken = loc(2); @@ -1724,56 +1761,56 @@ case 341: { sym(1).Node = node; } break; -case 342: { +case 345: { AST::FormalParameterList *node = new (pool) AST::FormalParameterList(stringRef(1)); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 343: { +case 346: { 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 344: { +case 347: { sym(1).Node = 0; } break; -case 345: { +case 348: { sym(1).Node = sym(1).FormalParameterList->finish (); } break; -case 346: { +case 349: { sym(1).Node = 0; } break; -case 348: { +case 351: { sym(1).Node = new (pool) AST::FunctionBody(sym(1).SourceElements->finish ()); } break; -case 350: { +case 353: { sym(1).Node = new (pool) AST::Program(sym(1).SourceElements->finish ()); } break; -case 351: { +case 354: { sym(1).Node = new (pool) AST::SourceElements(sym(1).SourceElement); } break; -case 352: { +case 355: { sym(1).Node = new (pool) AST::SourceElements(sym(1).SourceElements, sym(2).SourceElement); } break; -case 353: { +case 356: { sym(1).Node = new (pool) AST::StatementSourceElement(sym(1).Statement); } break; -case 354: { +case 357: { sym(1).Node = new (pool) AST::FunctionSourceElement(sym(1).FunctionDeclaration); } break; -case 355: { +case 358: { sym(1).Node = 0; } break; diff --git a/src/libs/qmljs/parser/qmljsparser_p.h b/src/libs/qmljs/parser/qmljsparser_p.h index 2bd91439d6..808afac25b 100644 --- a/src/libs/qmljs/parser/qmljsparser_p.h +++ b/src/libs/qmljs/parser/qmljsparser_p.h @@ -159,7 +159,7 @@ public: inline DiagnosticMessage diagnosticMessage() const { - foreach (const DiagnosticMessage &d, diagnostic_messages) { + for (const DiagnosticMessage &d : diagnostic_messages) { if (d.kind != Severity::Warning) return d; } @@ -231,8 +231,9 @@ protected: -#define J_SCRIPT_REGEXPLITERAL_RULE1 88 +#define J_SCRIPT_REGEXPLITERAL_RULE1 91 -#define J_SCRIPT_REGEXPLITERAL_RULE2 89 +#define J_SCRIPT_REGEXPLITERAL_RULE2 92 QT_QML_END_NAMESPACE + diff --git a/src/libs/qmljs/qmljscheck.cpp b/src/libs/qmljs/qmljscheck.cpp index 2b07dd1c66..66774a43f3 100644 --- a/src/libs/qmljs/qmljscheck.cpp +++ b/src/libs/qmljs/qmljscheck.cpp @@ -1045,9 +1045,8 @@ bool Check::visit(UiArrayBinding *ast) bool Check::visit(UiPublicMember *ast) { if (ast->type == UiPublicMember::Property) { - // check if the member type is valid - if (!ast->memberType.isEmpty()) { - const QStringRef name = ast->memberType; + if (ast->isValid()) { + const QStringRef name = ast->memberTypeName(); if (!name.isEmpty() && name.at(0).isLower()) { const QString nameS = name.toString(); if (!isValidBuiltinPropertyType(nameS)) diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp index a0fb193807..61c3aa4315 100644 --- a/src/libs/qmljs/qmljsinterpreter.cpp +++ b/src/libs/qmljs/qmljsinterpreter.cpp @@ -1852,7 +1852,7 @@ ASTObjectValue::ASTObjectValue(UiQualifiedId *typeName, for (UiObjectMemberList *it = m_initializer->members; it; it = it->next) { UiObjectMember *member = it->member; if (UiPublicMember *def = cast(member)) { - if (def->type == UiPublicMember::Property && !def->name.isEmpty() && !def->memberType.isEmpty()) { + if (def->type == UiPublicMember::Property && !def->name.isEmpty() && def->isValid()) { ASTPropertyReference *ref = new ASTPropertyReference(def, m_doc, valueOwner); m_properties.append(ref); if (def->defaultToken.isValid()) @@ -2117,10 +2117,10 @@ bool ASTPropertyReference::getSourceLocation(QString *fileName, int *line, int * const Value *ASTPropertyReference::value(ReferenceContext *referenceContext) const { if (m_ast->statement - && (m_ast->memberType.isEmpty() - || m_ast->memberType == QLatin1String("variant") - || m_ast->memberType == QLatin1String("var") - || m_ast->memberType == QLatin1String("alias"))) { + && (!m_ast->isValid() + || m_ast->memberTypeName() == QLatin1String("variant") + || m_ast->memberTypeName() == QLatin1String("var") + || m_ast->memberTypeName() == QLatin1String("alias"))) { // Adjust the context for the current location - expensive! // ### Improve efficiency by caching the 'use chain' constructed in ScopeBuilder. @@ -2136,7 +2136,7 @@ const Value *ASTPropertyReference::value(ReferenceContext *referenceContext) con return evaluator(m_ast->statement); } - const QString memberType = m_ast->memberType.toString(); + const QString memberType = m_ast->memberTypeName().toString(); const Value *builtin = valueOwner()->defaultValueForBuiltinType(memberType); if (!builtin->asUndefinedValue()) @@ -2160,7 +2160,7 @@ ASTSignal::ASTSignal(UiPublicMember *ast, const Document *doc, ValueOwner *value ObjectValue *v = valueOwner->newObject(/*prototype=*/0); for (UiParameterList *it = ast->parameters; it; it = it->next) { if (!it->name.isEmpty()) - v->setMember(it->name.toString(), valueOwner->defaultValueForBuiltinType(it->type.toString())); + v->setMember(it->name.toString(), valueOwner->defaultValueForBuiltinType(it->type->name.toString())); } m_bodyScope = v; } @@ -2187,9 +2187,9 @@ const Value *ASTSignal::argument(int index) const UiParameterList *param = m_ast->parameters; for (int i = 0; param && i < index; ++i) param = param->next; - if (!param || param->type.isEmpty()) + if (!param || param->type->name.isEmpty()) return valueOwner()->unknownValue(); - return valueOwner()->defaultValueForBuiltinType(param->type.toString()); + return valueOwner()->defaultValueForBuiltinType(param->type->name.toString()); } QString ASTSignal::argumentName(int index) const diff --git a/src/plugins/qmldesigner/components/componentcore/findimplementation.cpp b/src/plugins/qmldesigner/components/componentcore/findimplementation.cpp index f843c6f559..24bffa14d0 100644 --- a/src/plugins/qmldesigner/components/componentcore/findimplementation.cpp +++ b/src/plugins/qmldesigner/components/componentcore/findimplementation.cpp @@ -84,7 +84,7 @@ protected: virtual bool visit(AST::UiPublicMember *node) { - if (node->memberType == m_typeName){ + if (node->memberTypeName() == m_typeName){ const ObjectValue * objectValue = m_context->lookupType(m_document.data(), QStringList(m_typeName)); if (objectValue == m_typeValue) m_implemenations.append(node->typeToken); diff --git a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp index 17b1cf0862..10605c3445 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp @@ -84,8 +84,8 @@ static TypeName resolveTypeName(const ASTPropertyReference *ref, const ContextPt { TypeName type = "unknown"; - if (!ref->ast()->memberType.isEmpty()) { - type = ref->ast()->memberType.toUtf8(); + if (ref->ast()->isValid()) { + type = ref->ast()->memberTypeName().toUtf8(); if (type == "alias") { const Value *value = context->lookupReference(ref); diff --git a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp index c910249976..c66b4ef6a8 100644 --- a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp +++ b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp @@ -1127,7 +1127,7 @@ void TextToModelMerger::syncNode(ModelNode &modelNode, if (property->type == AST::UiPublicMember::Signal) continue; // QML designer doesn't support this yet. - if (property->name.isEmpty() || property->memberType.isEmpty()) + if (property->name.isEmpty() || !property->isValid()) continue; // better safe than sorry. const QStringRef astName = property->name; @@ -1142,7 +1142,7 @@ void TextToModelMerger::syncNode(ModelNode &modelNode, astValue = astValue.left(astValue.length() - 1); astValue = astValue.trimmed(); - const TypeName &astType = property->memberType.toUtf8(); + const TypeName &astType = property->memberTypeName().toUtf8(); AbstractProperty modelProperty = modelNode.property(astName.toUtf8()); if (property->binding) { diff --git a/src/plugins/qmljseditor/qmljsfindreferences.cpp b/src/plugins/qmljseditor/qmljsfindreferences.cpp index 4ffc21b37f..2e8bb9e407 100644 --- a/src/plugins/qmljseditor/qmljsfindreferences.cpp +++ b/src/plugins/qmljseditor/qmljsfindreferences.cpp @@ -322,7 +322,7 @@ protected: virtual bool visit(AST::UiPublicMember *node) { - if (node->memberType == _name){ + if (node->memberTypeName() == _name){ const ObjectValue * tVal = _context->lookupType(_doc.data(), QStringList(_name)); if (tVal == _typeValue) _usages.append(node->typeToken); @@ -583,8 +583,8 @@ protected: virtual bool visit(UiPublicMember *node) { if (containsOffset(node->typeToken)){ - if (!node->memberType.isEmpty()) { - _name = node->memberType.toString(); + if (node->isValid()) { + _name = node->memberTypeName().toString(); _targetValue = _scopeChain->context()->lookupType(_doc.data(), QStringList(_name)); _scope = 0; _typeKind = TypeKind; diff --git a/src/plugins/qmljseditor/qmljssemantichighlighter.cpp b/src/plugins/qmljseditor/qmljssemantichighlighter.cpp index d21ddb387a..d2a855062f 100644 --- a/src/plugins/qmljseditor/qmljssemantichighlighter.cpp +++ b/src/plugins/qmljseditor/qmljssemantichighlighter.cpp @@ -323,8 +323,8 @@ protected: bool visit(UiPublicMember *ast) { - if (ast->typeToken.isValid() && !ast->memberType.isEmpty()) { - if (m_scopeChain.context()->lookupType(m_scopeChain.document().data(), QStringList(ast->memberType.toString()))) + if (ast->typeToken.isValid() && ast->isValid()) { + if (m_scopeChain.context()->lookupType(m_scopeChain.document().data(), QStringList(ast->memberTypeName().toString()))) addUse(ast->typeToken, SemanticHighlighter::QmlTypeType); } if (ast->identifierToken.isValid()) -- cgit v1.2.3