From 1245e7cce64d46600b2535bc7d36474f8ba382e2 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Thu, 23 Jul 2009 13:20:21 +1000 Subject: Add SetAnchors. SetAnchors allows setting and resetting anchors in a state change. --- src/declarative/util/qmlstate.h | 3 +- src/declarative/util/qmlstateoperations.cpp | 199 ++++++++++++++++++++++++++++ src/declarative/util/qmlstateoperations.h | 49 +++++++ 3 files changed, 250 insertions(+), 1 deletion(-) diff --git a/src/declarative/util/qmlstate.h b/src/declarative/util/qmlstate.h index e453446..b727489 100644 --- a/src/declarative/util/qmlstate.h +++ b/src/declarative/util/qmlstate.h @@ -73,6 +73,7 @@ public: QmlBinding *toBinding; ActionEvent *event; + //strictly for matching QObject *specifiedObject; QString specifiedProperty; @@ -85,7 +86,7 @@ public: virtual ~ActionEvent(); virtual QString typeName() const; virtual void execute(); - virtual bool isReversable(); + virtual bool isReversable(); //### revertable is probably more correct (same below) virtual void reverse(); }; diff --git a/src/declarative/util/qmlstateoperations.cpp b/src/declarative/util/qmlstateoperations.cpp index 3e114d2..352f331 100644 --- a/src/declarative/util/qmlstateoperations.cpp +++ b/src/declarative/util/qmlstateoperations.cpp @@ -272,4 +272,203 @@ QmlRunScript::ActionList QmlRunScript::actions() return rv; } +/*! + \qmlclass SetAnchors + \brief The SetAnchors element allows you to change anchors in a state. +*/ + +QML_DEFINE_TYPE(QmlSetAnchors,SetAnchors) + +class QmlSetAnchorsPrivate : public QObjectPrivate +{ +public: + QmlSetAnchorsPrivate() : target(0) {} + + QString name; + QFxItem *target; + QString resetString; + QStringList resetList; + QFxAnchorLine left; + QFxAnchorLine right; + QFxAnchorLine top; + QFxAnchorLine bottom; + + QFxAnchorLine origLeft; + QFxAnchorLine origRight; + QFxAnchorLine origTop; + QFxAnchorLine origBottom; +}; + +QmlSetAnchors::QmlSetAnchors(QObject *parent) + : QmlStateOperation(*(new QmlSetAnchorsPrivate), parent) +{ +} + +QmlSetAnchors::~QmlSetAnchors() +{ +} + +QmlSetAnchors::ActionList QmlSetAnchors::actions() +{ + Action a; + a.event = this; + return ActionList() << a; +} + +QString QmlSetAnchors::name() const +{ + Q_D(const QmlSetAnchors); + return d->name; +} + +void QmlSetAnchors::setName(const QString &name) +{ + Q_D(QmlSetAnchors); + d->name = name; +} + +QFxItem *QmlSetAnchors::object() const +{ + Q_D(const QmlSetAnchors); + return d->target; +} + +void QmlSetAnchors::setObject(QFxItem *target) +{ + Q_D(QmlSetAnchors); + d->target = target; +} + +QString QmlSetAnchors::reset() const +{ + Q_D(const QmlSetAnchors); + return d->resetString; +} + +void QmlSetAnchors::setReset(const QString &reset) +{ + Q_D(QmlSetAnchors); + d->resetString = reset; + d->resetList = d->resetString.split(QLatin1Char(',')); +} + +QFxAnchorLine QmlSetAnchors::left() const +{ + Q_D(const QmlSetAnchors); + return d->left; +} + +void QmlSetAnchors::setLeft(const QFxAnchorLine &edge) +{ + Q_D(QmlSetAnchors); + d->left = edge; +} + +QFxAnchorLine QmlSetAnchors::right() const +{ + Q_D(const QmlSetAnchors); + return d->right; +} + +void QmlSetAnchors::setRight(const QFxAnchorLine &edge) +{ + Q_D(QmlSetAnchors); + d->right = edge; +} + +QFxAnchorLine QmlSetAnchors::top() const +{ + Q_D(const QmlSetAnchors); + return d->top; +} + +void QmlSetAnchors::setTop(const QFxAnchorLine &edge) +{ + Q_D(QmlSetAnchors); + d->top = edge; +} + +QFxAnchorLine QmlSetAnchors::bottom() const +{ + Q_D(const QmlSetAnchors); + return d->bottom; +} + +void QmlSetAnchors::setBottom(const QFxAnchorLine &edge) +{ + Q_D(QmlSetAnchors); + d->bottom = edge; +} + +void QmlSetAnchors::execute() +{ + Q_D(QmlSetAnchors); + if (!d->target) + return; + + //save original anchors + d->origLeft = d->target->anchors()->left(); + d->origRight = d->target->anchors()->right(); + d->origTop = d->target->anchors()->top(); + d->origBottom = d->target->anchors()->bottom(); + + //reset any anchors that have been specified + if (d->resetList.contains(QLatin1String("left"))) + d->target->anchors()->resetLeft(); + if (d->resetList.contains(QLatin1String("right"))) + d->target->anchors()->resetRight(); + if (d->resetList.contains(QLatin1String("top"))) + d->target->anchors()->resetTop(); + if (d->resetList.contains(QLatin1String("bottom"))) + d->target->anchors()->resetBottom(); + + //set any anchors that have been specified + if (d->left.anchorLine != QFxAnchorLine::Invalid) + d->target->anchors()->setLeft(d->left); + if (d->right.anchorLine != QFxAnchorLine::Invalid) + d->target->anchors()->setRight(d->right); + if (d->top.anchorLine != QFxAnchorLine::Invalid) + d->target->anchors()->setTop(d->top); + if (d->bottom.anchorLine != QFxAnchorLine::Invalid) + d->target->anchors()->setBottom(d->bottom); +} + +bool QmlSetAnchors::isReversable() +{ + return true; +} + +void QmlSetAnchors::reverse() +{ + Q_D(QmlSetAnchors); + if (!d->target) + return; + + //reset any anchors that were set in the state + if (d->left.anchorLine != QFxAnchorLine::Invalid) + d->target->anchors()->resetLeft(); + if (d->right.anchorLine != QFxAnchorLine::Invalid) + d->target->anchors()->resetRight(); + if (d->top.anchorLine != QFxAnchorLine::Invalid) + d->target->anchors()->resetTop(); + if (d->bottom.anchorLine != QFxAnchorLine::Invalid) + d->target->anchors()->resetBottom(); + + //restore previous anchors + if (d->origLeft.anchorLine != QFxAnchorLine::Invalid) + d->target->anchors()->setLeft(d->origLeft); + if (d->origRight.anchorLine != QFxAnchorLine::Invalid) + d->target->anchors()->setRight(d->origRight); + if (d->origTop.anchorLine != QFxAnchorLine::Invalid) + d->target->anchors()->setTop(d->origTop); + if (d->origBottom.anchorLine != QFxAnchorLine::Invalid) + d->target->anchors()->setBottom(d->origBottom); + +} + +QString QmlSetAnchors::typeName() const +{ + return QLatin1String("SetAnchors"); +} + QT_END_NAMESPACE diff --git a/src/declarative/util/qmlstateoperations.h b/src/declarative/util/qmlstateoperations.h index 67cd1cf..c4e1539 100644 --- a/src/declarative/util/qmlstateoperations.h +++ b/src/declarative/util/qmlstateoperations.h @@ -44,6 +44,7 @@ #include #include +#include QT_BEGIN_HEADER @@ -101,10 +102,58 @@ public: virtual void execute(); }; +class QmlSetAnchorsPrivate; +class Q_DECLARATIVE_EXPORT QmlSetAnchors : public QmlStateOperation, public ActionEvent +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlSetAnchors) + + Q_PROPERTY(QString name READ name WRITE setName) + Q_PROPERTY(QFxItem *target READ object WRITE setObject) + Q_PROPERTY(QString reset READ reset WRITE setReset) + Q_PROPERTY(QFxAnchorLine left READ left WRITE setLeft) + Q_PROPERTY(QFxAnchorLine right READ right WRITE setRight) + Q_PROPERTY(QFxAnchorLine top READ top WRITE setTop) + Q_PROPERTY(QFxAnchorLine bottom READ bottom WRITE setBottom) + +public: + QmlSetAnchors(QObject *parent=0); + ~QmlSetAnchors(); + + virtual ActionList actions(); + + QString name() const; + void setName(const QString &); + + QFxItem *object() const; + void setObject(QFxItem *); + + QString reset() const; + void setReset(const QString &); + + QFxAnchorLine left() const; + void setLeft(const QFxAnchorLine &edge); + + QFxAnchorLine right() const; + void setRight(const QFxAnchorLine &edge); + + QFxAnchorLine top() const; + void setTop(const QFxAnchorLine &edge); + + QFxAnchorLine bottom() const; + void setBottom(const QFxAnchorLine &edge); + + virtual void execute(); + virtual bool isReversable(); + virtual void reverse(); + virtual QString typeName() const; +}; + QT_END_NAMESPACE QML_DECLARE_TYPE(QmlParentChange) QML_DECLARE_TYPE(QmlRunScript) +QML_DECLARE_TYPE(QmlSetAnchors) QT_END_HEADER -- cgit v0.12 From e3c7d67be8ae3121dd84a89f9add452fcbb775ac Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Fri, 24 Jul 2009 08:39:32 +1000 Subject: Get anchor change transitions working. --- src/declarative/util/qmlstate.cpp | 28 +++++- src/declarative/util/qmlstate.h | 10 ++- src/declarative/util/qmlstateoperations.cpp | 120 +++++++++++++++++--------- src/declarative/util/qmlstateoperations.h | 8 +- src/declarative/util/qmltransitionmanager.cpp | 46 ++++++++-- 5 files changed, 158 insertions(+), 54 deletions(-) diff --git a/src/declarative/util/qmlstate.cpp b/src/declarative/util/qmlstate.cpp index 1aa7ffe..70b0137 100644 --- a/src/declarative/util/qmlstate.cpp +++ b/src/declarative/util/qmlstate.cpp @@ -92,6 +92,24 @@ void ActionEvent::reverse() { } +QList ActionEvent::extraActions() +{ + return QList(); +} + +bool ActionEvent::changesBindings() +{ + return false; +} + +void ActionEvent::clearForwardBindings() +{ +} + +void ActionEvent::clearReverseBindings() +{ +} + /*! \internal */ @@ -399,10 +417,12 @@ void QmlState::apply(QmlStateGroup *group, QmlTransition *trans, QmlState *rever // into this state need to be translated into apply actions for (int ii = 0; ii < d->revertList.count(); ++ii) { bool found = false; - for (int jj = 0; !found && jj < applyList.count(); ++jj) { - const Action &action = applyList.at(jj); - if (action.property == d->revertList.at(ii).property) - found = true; + if (!d->revertList.at(ii).event) { //### corresponding test for events? + for (int jj = 0; !found && jj < applyList.count(); ++jj) { + const Action &action = applyList.at(jj); + if (action.property == d->revertList.at(ii).property) + found = true; + } } if (!found) { QVariant cur = d->revertList.at(ii).property.read(); diff --git a/src/declarative/util/qmlstate.h b/src/declarative/util/qmlstate.h index b727489..7b3021b 100644 --- a/src/declarative/util/qmlstate.h +++ b/src/declarative/util/qmlstate.h @@ -85,9 +85,17 @@ class ActionEvent public: virtual ~ActionEvent(); virtual QString typeName() const; + virtual void execute(); - virtual bool isReversable(); //### revertable is probably more correct (same below) + virtual bool isReversable(); virtual void reverse(); + + //virtual bool hasExtraActions(); + virtual QList extraActions(); + + virtual bool changesBindings(); + virtual void clearForwardBindings(); + virtual void clearReverseBindings(); }; class QmlStateGroup; diff --git a/src/declarative/util/qmlstateoperations.cpp b/src/declarative/util/qmlstateoperations.cpp index 352f331..c341cd6 100644 --- a/src/declarative/util/qmlstateoperations.cpp +++ b/src/declarative/util/qmlstateoperations.cpp @@ -292,11 +292,14 @@ public: QFxAnchorLine right; QFxAnchorLine top; QFxAnchorLine bottom; - QFxAnchorLine origLeft; QFxAnchorLine origRight; QFxAnchorLine origTop; QFxAnchorLine origBottom; + qreal origX; + qreal origY; + qreal origWidth; + qreal origHeight; }; QmlSetAnchors::QmlSetAnchors(QObject *parent) @@ -315,18 +318,6 @@ QmlSetAnchors::ActionList QmlSetAnchors::actions() return ActionList() << a; } -QString QmlSetAnchors::name() const -{ - Q_D(const QmlSetAnchors); - return d->name; -} - -void QmlSetAnchors::setName(const QString &name) -{ - Q_D(QmlSetAnchors); - d->name = name; -} - QFxItem *QmlSetAnchors::object() const { Q_D(const QmlSetAnchors); @@ -406,22 +397,6 @@ void QmlSetAnchors::execute() if (!d->target) return; - //save original anchors - d->origLeft = d->target->anchors()->left(); - d->origRight = d->target->anchors()->right(); - d->origTop = d->target->anchors()->top(); - d->origBottom = d->target->anchors()->bottom(); - - //reset any anchors that have been specified - if (d->resetList.contains(QLatin1String("left"))) - d->target->anchors()->resetLeft(); - if (d->resetList.contains(QLatin1String("right"))) - d->target->anchors()->resetRight(); - if (d->resetList.contains(QLatin1String("top"))) - d->target->anchors()->resetTop(); - if (d->resetList.contains(QLatin1String("bottom"))) - d->target->anchors()->resetBottom(); - //set any anchors that have been specified if (d->left.anchorLine != QFxAnchorLine::Invalid) d->target->anchors()->setLeft(d->left); @@ -444,16 +419,6 @@ void QmlSetAnchors::reverse() if (!d->target) return; - //reset any anchors that were set in the state - if (d->left.anchorLine != QFxAnchorLine::Invalid) - d->target->anchors()->resetLeft(); - if (d->right.anchorLine != QFxAnchorLine::Invalid) - d->target->anchors()->resetRight(); - if (d->top.anchorLine != QFxAnchorLine::Invalid) - d->target->anchors()->resetTop(); - if (d->bottom.anchorLine != QFxAnchorLine::Invalid) - d->target->anchors()->resetBottom(); - //restore previous anchors if (d->origLeft.anchorLine != QFxAnchorLine::Invalid) d->target->anchors()->setLeft(d->origLeft); @@ -471,4 +436,81 @@ QString QmlSetAnchors::typeName() const return QLatin1String("SetAnchors"); } +QList QmlSetAnchors::extraActions() +{ + Q_D(QmlSetAnchors); + QList extra; + + //### try to be smarter about which ones we add. + // or short-circuit later on if they haven't actually changed. + // we shouldn't set explicit width if there wasn't one before. + if (d->target) { + Action a; + a.fromValue = d->origX; + a.property = QmlMetaProperty(d->target, "x"); + extra << a; + + a.fromValue = d->origY; + a.property = QmlMetaProperty(d->target, "y"); + extra << a; + + a.fromValue = d->origWidth; + a.property = QmlMetaProperty(d->target, "width"); + extra << a; + + a.fromValue = d->origHeight; + a.property = QmlMetaProperty(d->target, "height"); + extra << a; + } + + return extra; +} + +bool QmlSetAnchors::changesBindings() +{ + return true; +} + +void QmlSetAnchors::clearForwardBindings() +{ + Q_D(QmlSetAnchors); + d->origLeft = d->target->anchors()->left(); + d->origRight = d->target->anchors()->right(); + d->origTop = d->target->anchors()->top(); + d->origBottom = d->target->anchors()->bottom(); + d->origX = d->target->x(); + d->origY = d->target->y(); + d->origWidth = d->target->width(); + d->origHeight = d->target->height(); + + //reset any anchors that have been specified + if (d->resetList.contains(QLatin1String("left"))) + d->target->anchors()->resetLeft(); + if (d->resetList.contains(QLatin1String("right"))) + d->target->anchors()->resetRight(); + if (d->resetList.contains(QLatin1String("top"))) + d->target->anchors()->resetTop(); + if (d->resetList.contains(QLatin1String("bottom"))) + d->target->anchors()->resetBottom(); +} + +void QmlSetAnchors::clearReverseBindings() +{ + Q_D(QmlSetAnchors); + d->origX = d->target->x(); + d->origY = d->target->y(); + d->origWidth = d->target->width(); + d->origHeight = d->target->height(); + + //reset any anchors that were set in the state + if (d->left.anchorLine != QFxAnchorLine::Invalid) + d->target->anchors()->resetLeft(); + if (d->right.anchorLine != QFxAnchorLine::Invalid) + d->target->anchors()->resetRight(); + if (d->top.anchorLine != QFxAnchorLine::Invalid) + d->target->anchors()->resetTop(); + if (d->bottom.anchorLine != QFxAnchorLine::Invalid) + d->target->anchors()->resetBottom(); +} + QT_END_NAMESPACE diff --git a/src/declarative/util/qmlstateoperations.h b/src/declarative/util/qmlstateoperations.h index c4e1539..f595e16 100644 --- a/src/declarative/util/qmlstateoperations.h +++ b/src/declarative/util/qmlstateoperations.h @@ -108,7 +108,6 @@ class Q_DECLARATIVE_EXPORT QmlSetAnchors : public QmlStateOperation, public Acti Q_OBJECT Q_DECLARE_PRIVATE(QmlSetAnchors) - Q_PROPERTY(QString name READ name WRITE setName) Q_PROPERTY(QFxItem *target READ object WRITE setObject) Q_PROPERTY(QString reset READ reset WRITE setReset) Q_PROPERTY(QFxAnchorLine left READ left WRITE setLeft) @@ -122,9 +121,6 @@ public: virtual ActionList actions(); - QString name() const; - void setName(const QString &); - QFxItem *object() const; void setObject(QFxItem *); @@ -147,6 +143,10 @@ public: virtual bool isReversable(); virtual void reverse(); virtual QString typeName() const; + virtual QList extraActions(); + virtual bool changesBindings(); + virtual void clearForwardBindings(); + virtual void clearReverseBindings(); }; QT_END_NAMESPACE diff --git a/src/declarative/util/qmltransitionmanager.cpp b/src/declarative/util/qmltransitionmanager.cpp index 4609de8..b2d9414 100644 --- a/src/declarative/util/qmltransitionmanager.cpp +++ b/src/declarative/util/qmltransitionmanager.cpp @@ -95,7 +95,13 @@ void QmlTransitionManagerPrivate::applyBindings() if (action.toBinding) { action.property.setBinding(action.toBinding); action.toBinding->forceUpdate(); + } else if (action.event) { + if (action.reverseEvent) + action.event->reverse(); + else + action.event->execute(); } + } bindingsList.clear(); @@ -113,6 +119,13 @@ void QmlTransitionManager::transition(const QList &list, d->bindingsList << action; if (action.fromBinding) action.property.setBinding(0); // Disable current binding + if (action.event && action.event->changesBindings()) { //### assume isReversable()? + d->bindingsList << action; + if (action.reverseEvent) + action.event->clearReverseBindings(); + else + action.event->clearForwardBindings(); + } } // Animated transitions need both the start and the end value for @@ -126,13 +139,22 @@ void QmlTransitionManager::transition(const QList &list, if (!d->bindingsList.isEmpty()) { + //### do extra actions here? + // Apply all the property and binding changes - foreach(const Action &action, applyList) { + for (int ii = 0; ii < applyList.size(); ++ii) { + const Action &action = applyList.at(ii); if (action.toBinding) { action.property.setBinding(action.toBinding); action.toBinding->forceUpdate(); } else if (!action.event) { action.property.write(action.toValue); + } else if (action.event->isReversable()) { + if (action.reverseEvent) + action.event->reverse(); + else + action.event->execute(); + applyList << action.event->extraActions(); } } @@ -141,16 +163,28 @@ void QmlTransitionManager::transition(const QList &list, Action *action = &applyList[ii]; if (action->event) continue; - const QmlMetaProperty &prop = action->property; - if (action->toBinding) + if (action->toBinding || !action->toValue.isValid()) { //### is this always right (used for exta actions) action->toValue = prop.read(); + } } // Revert back to the original values foreach(const Action &action, applyList) { - if (action.event) + if (action.event) { + if (action.event->isReversable()) { + if (action.reverseEvent) { //reverse the reverse + action.event->clearForwardBindings(); + action.event->execute(); + action.event->clearReverseBindings(); + } else { + action.event->clearReverseBindings(); + action.event->reverse(); + action.event->clearForwardBindings(); + } + } continue; + } if (action.toBinding) action.property.setBinding(0); // Make sure this is disabled during the transition @@ -195,12 +229,12 @@ void QmlTransitionManager::transition(const QList &list, // applied at the end in applyBindings() to avoid any nastiness mid // transition foreach(const Action &action, applyList) { - if (action.event) { + if (action.event && !action.event->changesBindings()) { if (action.event->isReversable() && action.reverseEvent) action.event->reverse(); else action.event->execute(); - } else { + } else if (!action.event) { action.property.write(action.toValue); } } -- cgit v0.12 From 561ad2fa5003adcc207b52b50b6fef705e171500 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Fri, 24 Jul 2009 09:00:32 +1000 Subject: Compile fix after merge. --- src/declarative/util/qmlstateoperations.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/declarative/util/qmlstateoperations.cpp b/src/declarative/util/qmlstateoperations.cpp index fe9e410..e2cbae4 100644 --- a/src/declarative/util/qmlstateoperations.cpp +++ b/src/declarative/util/qmlstateoperations.cpp @@ -277,7 +277,7 @@ QmlRunScript::ActionList QmlRunScript::actions() \brief The SetAnchors element allows you to change anchors in a state. */ -QML_DEFINE_TYPE(QmlSetAnchors,SetAnchors) +QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,SetAnchors,QmlSetAnchors) class QmlSetAnchorsPrivate : public QObjectPrivate { -- cgit v0.12 From 2a3b4ceb65fd387126affcd61bc416da834e1b95 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Fri, 24 Jul 2009 09:00:51 +1000 Subject: Don't depend on qfxanchors.h. --- src/declarative/fx/qfxanchors.h | 27 ++------------------------- src/declarative/fx/qfxitem.h | 28 ++++++++++++++++++++++++++-- src/declarative/fx/qfxitem_p.h | 1 + 3 files changed, 29 insertions(+), 27 deletions(-) diff --git a/src/declarative/fx/qfxanchors.h b/src/declarative/fx/qfxanchors.h index dcd5d79..c11080c 100644 --- a/src/declarative/fx/qfxanchors.h +++ b/src/declarative/fx/qfxanchors.h @@ -45,6 +45,7 @@ #include #include #include +#include QT_BEGIN_HEADER @@ -52,31 +53,6 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class QFxItem; -class QFxAnchorLine -{ -public: - QFxAnchorLine() : item(0), anchorLine(Invalid) - { - } - - enum AnchorLine { - Invalid = 0x0, - Left = 0x01, - Right = 0x02, - Top = 0x04, - Bottom = 0x08, - HCenter = 0x10, - VCenter = 0x20, - Baseline = 0x40, - Horizontal_Mask = Left | Right | HCenter, - Vertical_Mask = Top | Bottom | VCenter | Baseline - }; - - QFxItem *item; - AnchorLine anchorLine; -}; - class QFxAnchorsPrivate; class Q_DECLARATIVE_EXPORT QFxAnchors : public QObject { @@ -184,6 +160,7 @@ private: Q_DISABLE_COPY(QFxAnchors) Q_DECLARE_PRIVATE(QFxAnchors) }; +Q_DECLARE_OPERATORS_FOR_FLAGS(QFxAnchors::UsedAnchors) QT_END_NAMESPACE diff --git a/src/declarative/fx/qfxitem.h b/src/declarative/fx/qfxitem.h index e3f371e..a75bdcd 100644 --- a/src/declarative/fx/qfxitem.h +++ b/src/declarative/fx/qfxitem.h @@ -45,7 +45,6 @@ #include #include #include -#include #include #include #include @@ -58,6 +57,7 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) +class QFxItem; class Q_DECLARATIVE_EXPORT QFxContents : public QObject { Q_OBJECT @@ -85,12 +85,36 @@ private: qreal m_height; qreal m_width; }; -Q_DECLARE_OPERATORS_FOR_FLAGS(QFxAnchors::UsedAnchors) + +class QFxAnchorLine +{ +public: + QFxAnchorLine() : item(0), anchorLine(Invalid) + { + } + + enum AnchorLine { + Invalid = 0x0, + Left = 0x01, + Right = 0x02, + Top = 0x04, + Bottom = 0x08, + HCenter = 0x10, + VCenter = 0x20, + Baseline = 0x40, + Horizontal_Mask = Left | Right | HCenter, + Vertical_Mask = Top | Bottom | VCenter | Baseline + }; + + QFxItem *item; + AnchorLine anchorLine; +}; class QmlState; class QmlTransition; class QFxTransform; class QFxKeyEvent; +class QFxAnchors; class QFxItemPrivate; class Q_DECLARATIVE_EXPORT QFxItem : public QGraphicsObject, public QmlParserStatus { diff --git a/src/declarative/fx/qfxitem_p.h b/src/declarative/fx/qfxitem_p.h index 029b8b0..bb3a97a 100644 --- a/src/declarative/fx/qfxitem_p.h +++ b/src/declarative/fx/qfxitem_p.h @@ -55,6 +55,7 @@ #include #include +#include #include #include #include -- cgit v0.12 From 8a67aa7d4397bf0fb2d24724c0d3588136f3c93e Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Fri, 24 Jul 2009 10:05:21 +1000 Subject: Throw in some cursory docs for QFxLineEdit Note that QFxLineEdit is quite unfinished, pending a review of the primitives. --- src/declarative/fx/qfxlineedit.cpp | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/declarative/fx/qfxlineedit.cpp b/src/declarative/fx/qfxlineedit.cpp index c77942d..c88f1d0 100644 --- a/src/declarative/fx/qfxlineedit.cpp +++ b/src/declarative/fx/qfxlineedit.cpp @@ -50,6 +50,10 @@ QT_BEGIN_NAMESPACE QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,LineEdit,QFxLineEdit); QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,QIntValidator,QIntValidator); +/*! + \qmlclass LineEdit + \brief The LineEdit item allows you to add an editable line of text to a scene. +*/ QFxLineEdit::QFxLineEdit(QFxItem* parent) : QFxPaintedItem(*(new QFxLineEditPrivate), parent) { @@ -71,6 +75,12 @@ QFxLineEdit::~QFxLineEdit() { } +/*! + \qmlproperty string LineEdit::text + + The text in the LineEdit. +*/ + QString QFxLineEdit::text() const { Q_D(const QFxLineEdit); @@ -86,12 +96,22 @@ void QFxLineEdit::setText(const QString &s) //emit textChanged(); } +/*! + \qmlproperty font LineEdit::font + + Set the LineEdit's font attributes. \c font.size sets the font's point size. +*/ QmlFont *QFxLineEdit::font() { Q_D(QFxLineEdit); return d->font; } +/*! + \qmlproperty color LineEdit::color + + The text color. +*/ QColor QFxLineEdit::color() const { Q_D(const QFxLineEdit); @@ -140,6 +160,10 @@ void QFxLineEdit::setMaxLength(int ml) d->control->setMaxLength(ml); } +/*! + \qmlproperty LineEdit::cursorPosition + \brief The position of the cursor in the LineEdit. +*/ int QFxLineEdit::cursorPosition() const { Q_D(const QFxLineEdit); @@ -264,6 +288,19 @@ void QFxLineEdit::setEchoMode(uint echo) d->control->setEchoMode(echo); } +/*! + \qmlproperty LineEdit::cursorDelegate + \brief The delegate for the cursor in the LineEdit. + + If you set a cursorDelegate for a LineEdit, this delegate will be used for + drawing the cursor instead of the standard cursor. An instance of the + delegate will be created and managed by the LineEdit when a cursor is + needed, and the x property of delegate instance will be set so as + to be one pixel before the top left of the current character. + + Note that the root item of the delegate component must be a QFxItem or + QFxItem derived item. +*/ QmlComponent* QFxLineEdit::cursorDelegate() const { Q_D(const QFxLineEdit); -- cgit v0.12 From 4e1a95923114a436e01f555dc90c57dc425ac79f Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Fri, 24 Jul 2009 06:03:42 +0200 Subject: Revert "Fixed the semantic action of UiArrayMemberList" This reverts commit ee91cc1041681654f7a250dc197d0902c53a951f. --- src/declarative/qml/parser/qmljs.g | 2 +- src/declarative/qml/parser/qmljsparser.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/declarative/qml/parser/qmljs.g b/src/declarative/qml/parser/qmljs.g index 7d8faee..d7fb17c 100644 --- a/src/declarative/qml/parser/qmljs.g +++ b/src/declarative/qml/parser/qmljs.g @@ -782,7 +782,7 @@ UiArrayMemberList: UiArrayMemberList T_COMMA UiAnnotation UiObjectDefinition ; case $rule_number: { sym(4).UiObjectMember->attributes = sym(3).UiAttributeList; AST::UiArrayMemberList *node = makeAstNode (driver->nodePool(), - sym(1).UiArrayMemberList, sym(4).UiObjectMember); + sym(1).UiArrayMemberList, sym(3).UiObjectMember); node->commaToken = loc(2); sym(1).Node = node; } break; diff --git a/src/declarative/qml/parser/qmljsparser.cpp b/src/declarative/qml/parser/qmljsparser.cpp index 296559b..93f9fda 100644 --- a/src/declarative/qml/parser/qmljsparser.cpp +++ b/src/declarative/qml/parser/qmljsparser.cpp @@ -360,7 +360,7 @@ case 35: { case 36: { sym(4).UiObjectMember->attributes = sym(3).UiAttributeList; AST::UiArrayMemberList *node = makeAstNode (driver->nodePool(), - sym(1).UiArrayMemberList, sym(4).UiObjectMember); + sym(1).UiArrayMemberList, sym(3).UiObjectMember); node->commaToken = loc(2); sym(1).Node = node; } break; -- cgit v0.12 From e6f14d21fa03d4301fcb7d7de1733bc65fe59e43 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Fri, 24 Jul 2009 06:04:19 +0200 Subject: Revert "Introduced annotations" This reverts commit 5f648e669235e0c6a11b6d25688c6dbd9bb58106. --- src/declarative/qml/parser/qmljs.g | 95 +- src/declarative/qml/parser/qmljsast.cpp | 25 - src/declarative/qml/parser/qmljsast_p.h | 70 +- src/declarative/qml/parser/qmljsastfwd_p.h | 2 - src/declarative/qml/parser/qmljsastvisitor_p.h | 4 - src/declarative/qml/parser/qmljsgrammar.cpp | 1396 ++++++++++++------------ src/declarative/qml/parser/qmljsgrammar_p.h | 33 +- src/declarative/qml/parser/qmljslexer.cpp | 1 - src/declarative/qml/parser/qmljsparser.cpp | 517 ++++----- src/declarative/qml/parser/qmljsparser_p.h | 6 +- 10 files changed, 945 insertions(+), 1204 deletions(-) diff --git a/src/declarative/qml/parser/qmljs.g b/src/declarative/qml/parser/qmljs.g index d7fb17c..20ee27d 100644 --- a/src/declarative/qml/parser/qmljs.g +++ b/src/declarative/qml/parser/qmljs.g @@ -81,8 +81,6 @@ %token T_RESERVED_WORD "reserved word" %token T_MULTILINE_STRING_LITERAL "multiline string literal" -%token T_AT "@" - --- context keywords. %token T_PUBLIC "public" %token T_IMPORT "import" @@ -273,8 +271,6 @@ public: AST::UiObjectMemberList *UiObjectMemberList; AST::UiArrayMemberList *UiArrayMemberList; AST::UiQualifiedId *UiQualifiedId; - AST::UiAttributeList *UiAttributeList; - AST::UiAttribute *UiAttribute; }; public: @@ -671,93 +667,25 @@ case $rule_number: { } break; ./ -UiRootMember: UiAnnotation UiObjectDefinition ; -/. -case $rule_number: { - sym(1).Node = makeAstNode (driver->nodePool(), - sym(1).UiAttributeList, sym(2).UiObjectMember); -} break; -./ - -UiAnnotation: Empty ; -UiAnnotation: UiAttributeList ; -/. -case $rule_number: { - sym(1).UiAttributeList = sym(1).UiAttributeList->finish(); -} break; -./ - -UiAttributeList: UiAttribute ; -/. -case $rule_number: { - sym(1).UiAttributeList = makeAstNode(driver->nodePool(), sym(1).UiAttribute); -} break; -./ - -UiAttributeList: UiAttributeList UiAttribute ; -/. -case $rule_number: { - sym(1).UiAttributeList = makeAstNode(driver->nodePool(), - sym(1).UiAttributeList, sym(2).UiAttribute); -} break; -./ - -UiAttributeName: JsIdentifier ; -UiAttributeName: ReservedIdentifier ; - -UiAttribute: T_AT UiAttributeName ; -/. -case $rule_number: { - AST::UiAttribute *ast = makeAstNode(driver->nodePool(), sym(2).sval); - ast->atToken = loc(1); - ast->nameToken = loc(2); - sym(1).UiAttribute = ast; -} break; -./ - -UiAttribute: T_AT UiAttributeName T_EQ UiAttributeValue ; -/. -case $rule_number: { - AST::UiAttribute *ast = makeAstNode(driver->nodePool(), - sym(2).sval, sym(4).Expression); - ast->atToken = loc(1); - ast->nameToken = loc(2); - ast->equalToken = loc(3); - sym(1).UiAttribute = ast; -} break; -./ - -UiAttributeValue: UiAttributeName ; -/. -case $rule_number: { - AST::IdentifierExpression *node = makeAstNode (driver->nodePool(), sym(1).sval); - node->identifierToken = loc(1); - sym(1).Node = node; -} break; -./ - -UiAttributeValue: T_NUMERIC_LITERAL ; +UiRootMember: UiObjectDefinition ; /. case $rule_number: { - AST::NumericLiteral *node = makeAstNode (driver->nodePool(), sym(1).dval, lexer->flags); - node->literalToken = loc(1); - sym(1).Node = node; + sym(1).Node = makeAstNode (driver->nodePool(), sym(1).UiObjectMember); } break; ./ -UiObjectMemberList: UiAnnotation UiObjectMember ; +UiObjectMemberList: UiObjectMember ; /. case $rule_number: { - sym(1).Node = makeAstNode (driver->nodePool(), - sym(1).UiAttributeList, sym(2).UiObjectMember); + sym(1).Node = makeAstNode (driver->nodePool(), sym(1).UiObjectMember); } break; ./ -UiObjectMemberList: UiObjectMemberList UiAnnotation UiObjectMember ; +UiObjectMemberList: UiObjectMemberList UiObjectMember ; /. case $rule_number: { AST::UiObjectMemberList *node = makeAstNode (driver->nodePool(), - sym(1).UiObjectMemberList, sym(2).UiAttributeList, sym(3).UiObjectMember); + sym(1).UiObjectMemberList, sym(2).UiObjectMember); sym(1).Node = node; } break; ./ @@ -769,18 +697,9 @@ case $rule_number: { } break; ./ -UiArrayMemberList: UiAttributeList UiObjectDefinition ; -/. -case $rule_number: { - sym(2).UiObjectMember->attributes = sym(1).UiAttributeList->finish(); - sym(1).Node = makeAstNode (driver->nodePool(), sym(2).UiObjectMember); -} break; -./ - -UiArrayMemberList: UiArrayMemberList T_COMMA UiAnnotation UiObjectDefinition ; +UiArrayMemberList: UiArrayMemberList T_COMMA UiObjectDefinition ; /. case $rule_number: { - sym(4).UiObjectMember->attributes = sym(3).UiAttributeList; AST::UiArrayMemberList *node = makeAstNode (driver->nodePool(), sym(1).UiArrayMemberList, sym(3).UiObjectMember); node->commaToken = loc(2); diff --git a/src/declarative/qml/parser/qmljsast.cpp b/src/declarative/qml/parser/qmljsast.cpp index fb4ea8a..d10c071 100644 --- a/src/declarative/qml/parser/qmljsast.cpp +++ b/src/declarative/qml/parser/qmljsast.cpp @@ -839,29 +839,9 @@ void UiProgram::accept0(Visitor *visitor) visitor->endVisit(this); } -void UiAttributeList::accept0(Visitor *visitor) -{ - if (visitor->visit(this)) { - for (UiAttributeList *it = this; it; it = it->next) - acceptChild(it->attribute, visitor); - } - - visitor->endVisit(this); -} - -void UiAttribute::accept0(Visitor *visitor) -{ - if (visitor->visit(this)) { - acceptChild(value, visitor); - } - - visitor->endVisit(this); -} - void UiPublicMember::accept0(Visitor *visitor) { if (visitor->visit(this)) { - acceptChild(attributes, visitor); acceptChild(expression, visitor); } @@ -871,7 +851,6 @@ void UiPublicMember::accept0(Visitor *visitor) void UiObjectDefinition::accept0(Visitor *visitor) { if (visitor->visit(this)) { - acceptChild(attributes, visitor); acceptChild(qualifiedTypeNameId, visitor); acceptChild(initializer, visitor); } @@ -892,7 +871,6 @@ void UiObjectInitializer::accept0(Visitor *visitor) void UiObjectBinding::accept0(Visitor *visitor) { if (visitor->visit(this)) { - acceptChild(attributes, visitor); acceptChild(qualifiedId, visitor); acceptChild(qualifiedTypeNameId, visitor); acceptChild(initializer, visitor); @@ -904,7 +882,6 @@ void UiObjectBinding::accept0(Visitor *visitor) void UiScriptBinding::accept0(Visitor *visitor) { if (visitor->visit(this)) { - acceptChild(attributes, visitor); acceptChild(qualifiedId, visitor); acceptChild(statement, visitor); } @@ -915,7 +892,6 @@ void UiScriptBinding::accept0(Visitor *visitor) void UiArrayBinding::accept0(Visitor *visitor) { if (visitor->visit(this)) { - acceptChild(attributes, visitor); acceptChild(qualifiedId, visitor); for (UiArrayMemberList *it = members; it; it = it->next) acceptChild(it->member, visitor); @@ -973,7 +949,6 @@ void UiImportList::accept0(Visitor *visitor) void UiSourceElement::accept0(Visitor *visitor) { if (visitor->visit(this)) { - acceptChild(attributes, visitor); acceptChild(sourceElement, visitor); } diff --git a/src/declarative/qml/parser/qmljsast_p.h b/src/declarative/qml/parser/qmljsast_p.h index 73b2cbc..6d269ac 100644 --- a/src/declarative/qml/parser/qmljsast_p.h +++ b/src/declarative/qml/parser/qmljsast_p.h @@ -104,7 +104,7 @@ enum Op { } // namespace QSOperator -namespace QmlJS { +namespace QmlJS { class NameId; namespace AST { @@ -213,9 +213,7 @@ public: Kind_UiPublicMember, Kind_UiQualifiedId, Kind_UiScriptBinding, - Kind_UiSourceElement, - Kind_UiAttributeList, - Kind_UiAttribute + Kind_UiSourceElement }; inline Node() @@ -2183,56 +2181,6 @@ public: UiObjectMemberList *members; }; -class UiAttributeList: public Node -{ -public: - QMLJS_DECLARE_AST_NODE(UiAttributeList) - - UiAttributeList(UiAttribute *attribute) - : attribute(attribute), next(this) - { kind = K; } - - UiAttributeList(UiAttributeList *previous, UiAttribute *attribute) - : attribute(attribute) - { - next = previous->next; - previous->next = this; - kind = K; - } - - UiAttributeList *finish() - { - UiAttributeList *head = next; - next = 0; - return head; - } - - virtual void accept0(Visitor *visitor); - -// attributes - UiAttribute *attribute; - UiAttributeList *next; -}; - -class UiAttribute: public Node -{ -public: - QMLJS_DECLARE_AST_NODE(UiAttribute) - - UiAttribute(NameId *name, ExpressionNode *value = 0) - : name(name), value(value) - { kind = K; } - - virtual void accept0(Visitor *visitor); - -// attributes - NameId *name; - ExpressionNode *value; - SourceLocation atToken; - SourceLocation nameToken; - SourceLocation equalToken; -}; - class UiQualifiedId: public Node { public: @@ -2331,9 +2279,6 @@ class UiObjectMember: public Node public: virtual SourceLocation firstSourceLocation() const = 0; virtual SourceLocation lastSourceLocation() const = 0; - -// attributes - UiAttributeList *attributes; }; class UiObjectMemberList: public Node @@ -2341,21 +2286,16 @@ class UiObjectMemberList: public Node public: QMLJS_DECLARE_AST_NODE(UiObjectMemberList) - UiObjectMemberList(UiAttributeList *attributes, UiObjectMember *member) + UiObjectMemberList(UiObjectMember *member) : next(this), member(member) - { - kind = K; - member->attributes = attributes; - } + { kind = K; } - UiObjectMemberList(UiObjectMemberList *previous, UiAttributeList *attributes, - UiObjectMember *member) + UiObjectMemberList(UiObjectMemberList *previous, UiObjectMember *member) : member(member) { kind = K; next = previous->next; previous->next = this; - member->attributes = attributes; } virtual void accept0(Visitor *visitor); diff --git a/src/declarative/qml/parser/qmljsastfwd_p.h b/src/declarative/qml/parser/qmljsastfwd_p.h index 18b3704..339bea4 100644 --- a/src/declarative/qml/parser/qmljsastfwd_p.h +++ b/src/declarative/qml/parser/qmljsastfwd_p.h @@ -176,8 +176,6 @@ class UiObjectMember; class UiObjectMemberList; class UiArrayMemberList; class UiQualifiedId; -class UiAttributeList; -class UiAttribute; } } // namespace AST diff --git a/src/declarative/qml/parser/qmljsastvisitor_p.h b/src/declarative/qml/parser/qmljsastvisitor_p.h index c2486d7..3677b1a 100644 --- a/src/declarative/qml/parser/qmljsastvisitor_p.h +++ b/src/declarative/qml/parser/qmljsastvisitor_p.h @@ -82,8 +82,6 @@ public: virtual bool visit(UiObjectMemberList *) { return true; } virtual bool visit(UiArrayMemberList *) { return true; } virtual bool visit(UiQualifiedId *) { return true; } - virtual bool visit(UiAttributeList *) { return true; } - virtual bool visit(UiAttribute *) { return true; } virtual void endVisit(UiProgram *) {} virtual void endVisit(UiImportList *) {} @@ -98,8 +96,6 @@ public: virtual void endVisit(UiObjectMemberList *) {} virtual void endVisit(UiArrayMemberList *) {} virtual void endVisit(UiQualifiedId *) {} - virtual void endVisit(UiAttributeList *) {} - virtual void endVisit(UiAttribute *) {} // QmlJS virtual bool visit(ThisExpression *) { return true; } diff --git a/src/declarative/qml/parser/qmljsgrammar.cpp b/src/declarative/qml/parser/qmljsgrammar.cpp index 13a68c8..1b23be6 100644 --- a/src/declarative/qml/parser/qmljsgrammar.cpp +++ b/src/declarative/qml/parser/qmljsgrammar.cpp @@ -51,428 +51,393 @@ const char *const QmlJSGrammar::spell [] = { "||", "+", "+=", "++", "?", "}", "]", "%", "%=", "return", ")", ";", 0, "*", "*=", "string literal", "property", "signal", "switch", "this", "throw", "~", "try", "typeof", "var", "void", "while", "with", "^", "^=", - "null", "true", "false", "const", "debugger", "reserved word", "multiline string literal", "@", "public", "import", - "as", 0, 0, 0, 0, 0}; + "null", "true", "false", "const", "debugger", "reserved word", "multiline string literal", "public", "import", "as", + 0, 0, 0, 0, 0}; const int QmlJSGrammar::lhs [] = { - 96, 96, 96, 97, 100, 100, 103, 103, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 102, 101, 107, 107, 109, 109, 111, 111, 110, 110, - 113, 113, 114, 114, 116, 116, 116, 117, 117, 108, - 115, 115, 115, 115, 115, 115, 115, 122, 122, 122, - 123, 123, 124, 124, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 106, 106, 105, 105, - 105, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 106, - 106, 129, 129, 129, 129, 128, 128, 131, 131, 133, - 133, 133, 133, 133, 133, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 134, 134, 135, 135, - 135, 135, 135, 138, 138, 139, 139, 139, 139, 137, - 137, 140, 140, 141, 141, 142, 142, 142, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 143, 144, 144, - 144, 144, 145, 145, 145, 146, 146, 146, 146, 147, - 147, 147, 147, 147, 147, 147, 148, 148, 148, 148, - 148, 148, 149, 149, 149, 149, 149, 150, 150, 150, - 150, 150, 151, 151, 152, 152, 153, 153, 154, 154, - 155, 155, 156, 156, 157, 157, 158, 158, 159, 159, - 160, 160, 161, 161, 162, 162, 132, 132, 163, 163, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 99, 99, 165, 165, 166, 166, 167, 167, - 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 118, 179, 179, 178, 178, - 126, 126, 180, 180, 181, 181, 183, 183, 182, 184, - 187, 185, 185, 188, 186, 186, 119, 120, 120, 121, - 121, 168, 168, 168, 168, 168, 168, 168, 169, 169, - 169, 169, 170, 170, 170, 170, 171, 171, 172, 174, - 189, 189, 192, 192, 190, 190, 193, 191, 173, 173, - 173, 175, 175, 176, 176, 176, 194, 195, 177, 177, - 125, 136, 199, 199, 196, 196, 197, 197, 200, 201, - 201, 202, 202, 198, 198, 130, 130, 203}; + 95, 95, 95, 96, 99, 99, 102, 102, 103, 103, + 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, + 101, 100, 107, 107, 109, 109, 110, 110, 106, 108, + 108, 108, 108, 108, 108, 108, 115, 115, 115, 116, + 116, 117, 117, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 105, 105, 104, 104, 104, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 105, 105, + 122, 122, 122, 122, 121, 121, 124, 124, 126, 126, + 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 128, 128, 129, 129, 129, + 129, 129, 132, 132, 133, 133, 133, 133, 131, 131, + 134, 134, 135, 135, 136, 136, 136, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 138, 138, 138, + 138, 139, 139, 139, 140, 140, 140, 140, 141, 141, + 141, 141, 141, 141, 141, 142, 142, 142, 142, 142, + 142, 143, 143, 143, 143, 143, 144, 144, 144, 144, + 144, 145, 145, 146, 146, 147, 147, 148, 148, 149, + 149, 150, 150, 151, 151, 152, 152, 153, 153, 154, + 154, 155, 155, 156, 156, 125, 125, 157, 157, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 98, 98, 159, 159, 160, 160, 161, 161, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 111, 173, 173, 172, 172, 119, + 119, 174, 174, 175, 175, 177, 177, 176, 178, 181, + 179, 179, 182, 180, 180, 112, 113, 113, 114, 114, + 162, 162, 162, 162, 162, 162, 162, 163, 163, 163, + 163, 164, 164, 164, 164, 165, 165, 166, 168, 183, + 183, 186, 186, 184, 184, 187, 185, 167, 167, 167, + 169, 169, 170, 170, 170, 188, 189, 171, 171, 118, + 130, 193, 193, 190, 190, 191, 191, 194, 195, 195, + 196, 196, 192, 192, 123, 123, 197}; const int QmlJSGrammar:: rhs[] = { 2, 2, 2, 2, 1, 1, 1, 2, 3, 3, 5, 5, 3, 3, 4, 4, 6, 6, 5, 5, - 0, 2, 1, 1, 1, 2, 1, 1, 2, 4, - 1, 1, 2, 3, 1, 2, 4, 2, 3, 2, - 1, 5, 4, 3, 3, 3, 3, 1, 1, 1, - 0, 1, 2, 4, 5, 2, 4, 4, 5, 5, - 6, 6, 7, 7, 1, 1, 1, 1, 1, 1, + 0, 1, 1, 2, 1, 3, 2, 3, 2, 1, + 5, 4, 3, 3, 3, 3, 1, 1, 1, 0, + 1, 2, 4, 5, 2, 4, 4, 5, 5, 6, + 6, 7, 7, 1, 1, 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, - 3, 1, 2, 3, 4, 1, 2, 3, 5, 1, + 2, 3, 3, 4, 5, 3, 4, 3, 1, 3, + 1, 2, 3, 4, 1, 2, 3, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, - 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, 3, 0, 1, 1, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 0, 1, 1, 3, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 1, 2, 0, 1, - 3, 3, 1, 1, 1, 3, 1, 3, 2, 2, - 2, 0, 1, 2, 0, 1, 1, 2, 2, 7, - 5, 7, 7, 5, 9, 10, 7, 8, 2, 2, - 3, 3, 2, 2, 3, 3, 3, 3, 5, 5, - 3, 5, 1, 2, 0, 1, 4, 3, 3, 3, - 3, 3, 3, 3, 3, 4, 5, 2, 2, 2, - 8, 8, 1, 3, 0, 1, 0, 1, 1, 1, - 2, 1, 1, 0, 1, 0, 1, 2}; + 1, 1, 1, 1, 3, 1, 2, 0, 1, 3, + 3, 1, 1, 1, 3, 1, 3, 2, 2, 2, + 0, 1, 2, 0, 1, 1, 2, 2, 7, 5, + 7, 7, 5, 9, 10, 7, 8, 2, 2, 3, + 3, 2, 2, 3, 3, 3, 3, 5, 5, 3, + 5, 1, 2, 0, 1, 4, 3, 3, 3, 3, + 3, 3, 3, 3, 4, 5, 2, 2, 2, 8, + 8, 1, 3, 0, 1, 0, 1, 1, 1, 2, + 1, 1, 0, 1, 0, 1, 2}; const int QmlJSGrammar::action_default [] = { - 0, 0, 0, 21, 0, 176, 243, 207, 215, 211, - 155, 227, 203, 3, 140, 73, 156, 219, 223, 144, - 173, 154, 159, 139, 193, 180, 0, 80, 81, 76, - 344, 69, 346, 0, 0, 0, 0, 78, 0, 0, - 74, 77, 0, 0, 70, 71, 79, 72, 0, 75, - 0, 0, 169, 0, 0, 156, 175, 158, 157, 0, - 0, 0, 171, 172, 170, 174, 0, 204, 0, 0, - 0, 0, 194, 0, 0, 0, 0, 0, 0, 184, - 0, 0, 0, 178, 179, 177, 182, 186, 185, 183, - 181, 196, 195, 197, 0, 212, 0, 208, 0, 0, - 150, 137, 149, 138, 106, 107, 108, 133, 109, 134, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 135, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 136, 0, 0, 148, 244, 151, - 0, 152, 0, 153, 147, 0, 240, 233, 231, 238, - 239, 237, 236, 242, 235, 234, 232, 241, 228, 0, - 216, 0, 0, 220, 0, 0, 224, 0, 0, 150, - 142, 0, 141, 0, 146, 160, 0, 345, 335, 336, - 0, 333, 0, 334, 0, 337, 251, 258, 257, 265, - 253, 0, 254, 338, 0, 343, 255, 256, 261, 259, - 340, 339, 342, 262, 0, 273, 0, 0, 0, 0, - 344, 69, 0, 346, 70, 245, 287, 71, 0, 0, - 0, 274, 0, 0, 263, 264, 0, 252, 260, 288, - 289, 332, 341, 0, 303, 304, 305, 306, 0, 299, - 300, 301, 302, 329, 330, 0, 0, 0, 0, 0, - 292, 293, 249, 247, 209, 217, 213, 229, 205, 250, - 0, 156, 221, 225, 198, 187, 0, 0, 206, 0, - 0, 0, 0, 199, 0, 0, 0, 0, 0, 191, - 189, 192, 190, 188, 201, 200, 202, 0, 214, 0, - 210, 0, 248, 156, 0, 230, 245, 246, 0, 245, - 0, 0, 295, 0, 0, 0, 297, 0, 218, 0, - 0, 222, 0, 0, 226, 285, 0, 277, 286, 280, - 0, 284, 0, 245, 278, 0, 245, 0, 0, 296, - 0, 0, 0, 298, 345, 335, 0, 0, 337, 0, - 331, 0, 321, 0, 0, 0, 291, 0, 290, 0, - 347, 0, 105, 267, 270, 0, 106, 273, 109, 134, - 111, 112, 76, 116, 117, 69, 118, 121, 74, 77, - 70, 245, 71, 79, 124, 72, 126, 75, 128, 129, - 274, 131, 132, 136, 0, 98, 0, 0, 100, 104, - 102, 88, 101, 103, 0, 99, 87, 268, 266, 144, - 145, 150, 0, 143, 0, 320, 0, 307, 308, 0, - 319, 0, 0, 0, 310, 315, 313, 316, 0, 0, - 314, 315, 0, 311, 0, 312, 269, 318, 0, 269, - 317, 0, 322, 323, 0, 269, 324, 325, 0, 0, - 326, 0, 0, 0, 327, 328, 162, 161, 0, 0, - 0, 294, 0, 0, 0, 309, 282, 275, 0, 283, - 279, 0, 281, 271, 0, 272, 276, 92, 0, 0, - 96, 82, 0, 84, 94, 0, 85, 95, 97, 86, - 93, 83, 0, 89, 166, 164, 168, 165, 163, 167, - 2, 5, 0, 7, 6, 21, 1, 90, 67, 68, + 0, 0, 0, 21, 0, 165, 232, 196, 204, 200, + 144, 216, 192, 3, 129, 62, 145, 208, 212, 133, + 162, 143, 148, 128, 182, 169, 0, 69, 70, 65, + 333, 58, 335, 0, 0, 0, 0, 67, 0, 0, + 63, 66, 0, 0, 59, 60, 68, 61, 0, 64, + 0, 0, 158, 0, 0, 145, 164, 147, 146, 0, + 0, 0, 160, 161, 159, 163, 0, 193, 0, 0, + 0, 0, 183, 0, 0, 0, 0, 0, 0, 173, + 0, 0, 0, 167, 168, 166, 171, 175, 174, 172, + 170, 185, 184, 186, 0, 201, 0, 197, 0, 0, + 139, 126, 138, 127, 95, 96, 97, 122, 98, 123, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 124, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 125, 0, 0, 137, 233, 140, + 0, 141, 0, 142, 136, 0, 229, 222, 220, 227, + 228, 226, 225, 231, 224, 223, 221, 230, 217, 0, + 205, 0, 0, 209, 0, 0, 213, 0, 0, 139, + 131, 0, 130, 0, 135, 149, 0, 334, 324, 325, + 0, 322, 0, 323, 0, 326, 240, 247, 246, 254, + 242, 0, 243, 327, 0, 332, 244, 245, 250, 248, + 329, 328, 331, 251, 0, 262, 0, 0, 0, 0, + 333, 58, 0, 335, 59, 234, 276, 60, 0, 0, + 0, 263, 0, 0, 252, 253, 0, 241, 249, 277, + 278, 321, 330, 0, 292, 293, 294, 295, 0, 288, + 289, 290, 291, 318, 319, 0, 0, 0, 0, 0, + 281, 282, 238, 236, 198, 206, 202, 218, 194, 239, + 0, 145, 210, 214, 187, 176, 0, 0, 195, 0, + 0, 0, 0, 188, 0, 0, 0, 0, 0, 180, + 178, 181, 179, 177, 190, 189, 191, 0, 203, 0, + 199, 0, 237, 145, 0, 219, 234, 235, 0, 234, + 0, 0, 284, 0, 0, 0, 286, 0, 207, 0, + 0, 211, 0, 0, 215, 274, 0, 266, 275, 269, + 0, 273, 0, 234, 267, 0, 234, 0, 0, 285, + 0, 0, 0, 287, 334, 324, 0, 0, 326, 0, + 320, 0, 310, 0, 0, 0, 280, 0, 279, 0, + 336, 0, 94, 256, 259, 0, 95, 262, 98, 123, + 100, 101, 65, 105, 106, 58, 107, 110, 63, 66, + 59, 234, 60, 68, 113, 61, 115, 64, 117, 118, + 263, 120, 121, 125, 0, 87, 0, 0, 89, 93, + 91, 77, 90, 92, 0, 88, 76, 257, 255, 133, + 134, 139, 0, 132, 0, 309, 0, 296, 297, 0, + 308, 0, 0, 0, 299, 304, 302, 305, 0, 0, + 303, 304, 0, 300, 0, 301, 258, 307, 0, 258, + 306, 0, 311, 312, 0, 258, 313, 314, 0, 0, + 315, 0, 0, 0, 316, 317, 151, 150, 0, 0, + 0, 283, 0, 0, 0, 298, 271, 264, 0, 272, + 268, 0, 270, 260, 0, 261, 265, 81, 0, 0, + 85, 71, 0, 73, 83, 0, 74, 84, 86, 75, + 82, 72, 0, 78, 155, 153, 157, 154, 152, 156, + 2, 5, 0, 7, 6, 0, 1, 79, 56, 57, 0, 0, 0, 9, 10, 0, 11, 12, 0, 13, - 0, 0, 14, 0, 19, 20, 91, 0, 15, 16, - 0, 17, 18, 8, 23, 0, 0, 25, 24, 4, - 27, 28, 29, 0, 32, 31, 30, 22, 0, 21, - 40, 38, 0, 21, 65, 0, 0, 70, 71, 41, - 33, 0, 66, 0, 50, 49, 48, 0, 0, 59, - 0, 60, 0, 63, 64, 0, 0, 0, 57, 0, - 58, 0, 61, 62, 56, 51, 52, 0, 0, 0, - 0, 54, 55, 53, 0, 44, 45, 0, 46, 47, - 269, 0, 43, 106, 273, 109, 134, 111, 112, 76, - 116, 117, 69, 118, 121, 74, 77, 70, 245, 71, - 79, 124, 72, 126, 75, 128, 129, 274, 131, 132, - 136, 73, 0, 0, 35, 21, 42, 0, 37, 26, - 36, 39, 0, 34, 348}; + 0, 0, 14, 0, 19, 20, 80, 0, 15, 16, + 0, 17, 18, 8, 22, 0, 4, 0, 29, 54, + 0, 0, 59, 27, 60, 30, 23, 0, 0, 55, + 0, 39, 38, 37, 0, 0, 48, 0, 49, 0, + 52, 53, 0, 0, 0, 46, 0, 47, 0, 50, + 51, 45, 40, 41, 0, 0, 0, 0, 43, 44, + 42, 28, 24, 0, 33, 34, 0, 35, 36, 258, + 0, 32, 95, 262, 98, 123, 100, 101, 65, 105, + 106, 58, 107, 110, 63, 66, 59, 234, 60, 68, + 113, 61, 115, 64, 117, 118, 263, 120, 121, 125, + 62, 0, 25, 0, 31, 26, 337}; const int QmlJSGrammar::goto_default [] = { - 4, 496, 353, 191, 495, 529, 524, 494, 493, 15, - 538, 526, 549, 528, 527, 532, 352, 536, 543, 550, - 622, 540, 186, 190, 192, 196, 566, 577, 576, 195, - 227, 23, 469, 468, 351, 350, 6, 349, 102, 19, - 14, 140, 21, 10, 139, 16, 22, 52, 20, 5, - 25, 24, 264, 12, 258, 7, 254, 9, 256, 8, - 255, 17, 262, 18, 263, 11, 257, 253, 294, 406, - 259, 260, 197, 188, 187, 199, 228, 198, 203, 224, - 225, 189, 355, 354, 226, 458, 457, 316, 317, 460, - 319, 459, 318, 414, 418, 421, 417, 416, 436, 437, - 180, 194, 176, 179, 193, 201, 200, 0}; + 4, 496, 353, 191, 495, 526, 491, 494, 493, 15, + 525, 535, 537, 536, 611, 528, 186, 190, 192, 196, + 553, 564, 563, 195, 227, 23, 469, 468, 351, 350, + 6, 349, 352, 102, 19, 14, 140, 21, 10, 139, + 16, 22, 52, 20, 5, 25, 24, 264, 12, 258, + 7, 254, 9, 256, 8, 255, 17, 262, 18, 263, + 11, 257, 253, 294, 406, 259, 260, 197, 188, 187, + 199, 228, 198, 203, 224, 225, 189, 355, 354, 226, + 458, 457, 316, 317, 460, 319, 459, 318, 414, 418, + 421, 417, 416, 436, 437, 180, 194, 176, 179, 193, + 201, 200, 0}; const int QmlJSGrammar::action_index [] = { - 142, 814, 1973, 78, 97, 86, -96, 90, 73, 71, - 257, -96, 315, 92, -96, -96, 539, 93, 81, 277, - 242, -96, -96, -96, 453, 252, 814, -96, -96, -96, - 214, -96, 1789, 1076, 814, 814, 814, -96, 729, 814, - -96, -96, 814, 814, -96, -96, -96, -96, 814, -96, - 814, 814, -96, 814, 814, 109, 207, -96, -96, 814, - 814, 814, -96, -96, -96, 205, 814, 313, 814, 814, - 814, 814, 434, 814, 814, 814, 814, 814, 814, 184, - 814, 814, 814, 146, 149, 150, 189, 204, 328, 328, - 328, 552, 473, 463, 814, 40, 814, 87, 1605, 814, - 814, -96, -96, -96, -96, -96, -96, -96, -96, -96, - -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, - -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, - -96, -96, -96, -96, -96, 140, 814, -96, -96, 65, - 33, -96, 814, -96, -96, 814, -96, -96, -96, -96, - -96, -96, -96, -96, -96, -96, -96, -96, -96, 814, - 29, 814, 814, 63, 59, 814, -96, 1605, 814, 814, - -96, 96, -96, 15, -96, -96, 31, -96, 208, 60, - 20, -96, 249, -96, 49, 2065, -96, -96, -96, -96, - -96, 248, -96, -96, 44, -96, -96, -96, -96, -96, - -96, 2065, -96, -96, 377, -96, 387, 83, 1973, 58, - 234, 72, 66, 2249, 67, 814, -96, 69, 54, 814, - 53, -96, 51, 45, -96, -96, 283, -96, -96, -96, - -96, -96, -96, 104, -96, -96, -96, -96, 102, -96, - -96, -96, -96, -96, -96, 48, 47, 814, 117, 120, - -96, -96, 988, -96, 77, 57, 64, -96, 406, 76, - 61, 582, 176, 100, 479, 328, 269, 814, 311, 814, - 814, 814, 814, 397, 814, 814, 814, 814, 814, 328, - 328, 328, 328, 328, 345, 360, 341, 814, 39, 814, - 70, 814, -96, 645, 814, -96, 814, 62, 24, 814, - 12, 1973, -96, 814, 131, 1973, -96, 814, 68, 814, - 814, 176, 89, 814, -96, 75, 95, 38, -96, -96, - 814, -96, 273, 814, -96, 79, 814, 74, 1973, -96, - 814, 111, 1973, -96, -16, 279, -41, -12, 2065, -37, - -96, 1973, -96, 814, 119, 1973, 6, 1973, -96, 22, - 18, -32, -96, -96, 1973, -52, 352, -2, 394, 98, - 814, 1973, 82, -34, 308, -7, -30, 729, 2, 4, - -96, 903, -96, 0, -5, 27, 814, 42, 21, 814, - 46, 814, 16, 14, 814, -96, 1881, 52, -96, -96, - -96, -96, -96, -96, 814, -96, -96, -96, -96, 307, - -96, 814, -22, -96, 1973, -96, 107, -96, -96, 1973, - -96, 814, 125, 13, -96, 37, -96, 35, 88, 814, - -96, 34, 10, -96, -4, -96, 1973, -96, 103, 1973, - -96, 263, -96, -96, 108, 1973, -8, -96, 11, 25, - -96, 260, -36, -6, -96, -96, -96, -96, 814, 115, - 1973, -96, 814, 112, 1973, -96, 43, -96, 190, -96, - -96, 814, -96, -96, 194, -96, -96, -96, 99, 1164, - -96, -96, 1337, -96, -96, 1425, -96, -96, -96, -96, - -96, -96, 101, -96, -96, -96, -96, -96, -96, -96, - -96, -96, 408, -96, -54, -57, -96, -96, -96, -96, - 177, 332, 216, -96, -96, 132, -96, -96, 237, -96, - 221, 163, -96, 122, -96, -96, -96, 240, -96, -96, - 126, -96, -96, -96, -96, 1605, 343, -96, -86, -96, - -96, -96, -1, 1697, -96, -96, -96, -96, 159, 121, - -96, -96, 470, 118, -96, -38, 174, 170, 3, -96, - -96, 203, -96, 173, -96, -96, -96, 32, 151, -96, - 814, -96, 145, -96, -96, 5, 7, 223, -96, 814, - -96, 187, -96, -96, 19, 141, 17, -45, 230, 191, - 228, -96, -96, -96, 1249, -96, -96, 309, -96, -96, - 2157, 1513, -96, 338, 1, 369, 85, 814, 1973, 82, - 9, 285, 36, 8, 729, 30, 26, -96, 903, -96, - 50, 28, 56, 814, 55, 23, 814, 41, 814, -26, - -23, -29, 124, 454, -96, -73, -96, 374, -96, -96, - -96, -96, 460, -96, -96, + 208, 808, 1863, 61, 100, 76, -95, 95, 59, 54, + 261, -95, 405, 86, -95, -95, 641, 91, 67, 187, + 200, -95, -95, -95, 446, 206, 808, -95, -95, -95, + 188, -95, 1681, 1412, 808, 808, 808, -95, 724, 808, + -95, -95, 808, 808, -95, -95, -95, -95, 808, -95, + 808, 808, -95, 808, 808, 131, 212, -95, -95, 808, + 808, 808, -95, -95, -95, 157, 808, 405, 808, 808, + 808, 808, 471, 808, 808, 808, 808, 808, 808, 161, + 808, 808, 808, 112, 119, 117, 154, 178, 173, 234, + 233, 456, 549, 409, 808, 9, 808, 72, 1590, 808, + 808, -95, -95, -95, -95, -95, -95, -95, -95, -95, + -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, + -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, + -95, -95, -95, -95, -95, 139, 808, -95, -95, 66, + 23, -95, 808, -95, -95, 808, -95, -95, -95, -95, + -95, -95, -95, -95, -95, -95, -95, -95, -95, 808, + 33, 808, 808, 69, 57, 808, -95, 1590, 808, 808, + -95, 126, -95, 8, -95, -95, 29, -95, 186, 62, + 60, -95, 207, -95, 36, 1954, -95, -95, -95, -95, + -95, 205, -95, -95, 35, -95, -95, -95, -95, -95, + -95, 1954, -95, -95, 386, -95, 398, 77, 1863, 50, + 162, 78, 42, 2136, 73, 808, -95, 85, 48, 808, + 56, -95, 43, 39, -95, -95, 328, -95, -95, -95, + -95, -95, -95, 75, -95, -95, -95, -95, 84, -95, + -95, -95, -95, -95, -95, 38, 55, 808, 102, 79, + -95, -95, 892, -95, 175, 47, 34, -95, 324, 74, + 16, 551, 65, 68, 477, 278, 328, 808, 292, 808, + 808, 808, 808, 402, 808, 808, 808, 808, 808, 302, + 306, 303, 282, 307, 385, 477, 477, 808, -2, 808, + 71, 808, -95, 641, 808, -95, 808, 58, 63, 808, + 51, 1863, -95, 808, 147, 1863, -95, 808, 14, 808, + 808, 96, 92, 808, -95, 80, 105, 70, -95, -95, + 808, -95, 255, 808, -95, -58, 808, -39, 1863, -95, + 808, 120, 1863, -95, -20, 259, -47, -21, 1954, -36, + -95, 1863, -95, 808, 101, 1863, 11, 1863, -95, 15, + 3, -45, -95, -95, 1863, -54, 401, 2, 337, 116, + 808, 1863, 0, -32, 318, -1, -28, 724, 81, -5, + -95, 980, -95, 45, 19, 46, 808, 44, 17, 808, + 41, 808, 13, -8, 808, -95, 1772, 49, -95, -95, + -95, -95, -95, -95, 808, -95, -95, -95, -95, 272, + -95, 808, -13, -95, 1863, -95, 64, -95, -95, 1863, + -95, 808, 98, 4, -95, 25, -95, 31, 93, 808, + -95, 40, 37, -95, -12, -95, 1863, -95, 123, 1863, + -95, 288, -95, -95, 109, 1863, 20, -95, -4, 1, + -95, 328, -14, 21, -95, -95, -95, -95, 808, 115, + 1863, -95, 808, 125, 1863, -95, 12, -95, 185, -95, + -95, 808, -95, -95, 252, -95, -95, -95, 97, 1154, + -95, -95, 1067, -95, -95, 1241, -95, -95, -95, -95, + -95, -95, 94, -95, -95, -95, -95, -95, -95, -95, + -95, -95, 407, -95, -73, 376, -95, -95, -95, -95, + 179, 321, 198, -95, -95, 110, -95, -95, 227, -95, + 248, 228, -95, 89, -95, -95, -95, 219, -95, -95, + 103, -95, -95, -95, -95, 127, -95, 475, -95, -95, + -46, 168, 165, -95, -6, -95, -95, 500, 189, -95, + 158, -95, -95, -95, 32, 176, -95, 808, -95, 262, + -95, -95, 6, 10, 128, -95, 808, -95, 148, -95, + -95, 5, 145, 30, -3, 213, 177, 216, -95, -95, + -95, -95, -95, 1325, -95, -95, 327, -95, -95, 2045, + 1499, -95, 345, 26, 330, 82, 808, 1863, 28, 22, + 310, 52, 27, 584, 81, 53, -95, 980, -95, 24, + -31, -7, 808, 7, -9, 808, 18, 808, -10, -19, + -15, 111, -95, 334, -95, -95, -95, - -108, 7, 100, -6, -108, -108, -108, -108, -108, -108, - -108, -108, -108, -108, -108, -108, -40, -108, -108, -108, - -108, -108, -108, -108, -108, -108, 103, -108, -108, -108, - 32, -108, -108, 27, 37, 80, 79, -108, 89, 159, - -108, -108, 167, 162, -108, -108, -108, -108, 156, -108, - 163, 155, -108, 178, 173, -108, -108, -108, -108, 170, - 177, 180, -108, -108, -108, -108, 116, -108, 119, 112, - 137, 111, -108, 110, 108, 121, 145, 149, 148, -108, - 135, 132, 123, -108, -108, -108, -108, -108, -108, -108, - -108, -108, -108, -108, 130, -108, 128, -108, 143, 43, - 40, -108, -108, -108, -108, -108, -108, -108, -108, -108, - -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, - -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, - -108, -108, -108, -108, -108, -108, 53, -108, -108, -108, - -108, -108, 54, -108, -108, 55, -108, -108, -108, -108, - -108, -108, -108, -108, -108, -108, -108, -108, -108, 106, - -108, 131, -19, -108, -108, -29, -108, 231, 13, 175, - -108, -108, -108, -108, -108, -108, -108, -108, 30, -108, - -108, -108, 3, -108, -108, 18, -108, -108, -108, -108, - -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, - -108, 91, -108, -108, 44, -108, 49, -108, 50, -108, - 57, -108, -108, -108, -108, 59, -108, -108, -108, 56, - 39, -108, -108, -108, -108, -108, 77, -108, -108, -108, - -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, - -108, -108, -108, -108, -108, -108, -108, 24, -108, -108, - -108, -108, 85, -108, -108, -108, -108, -108, -108, -108, - -108, -108, -108, -108, -108, -108, 17, 206, -108, 240, - 232, 205, 209, -108, 96, 84, 93, 95, 87, -108, - -108, -108, -108, -108, -108, -108, -108, 236, -108, 217, - -108, 185, -108, -108, 233, -108, 136, -108, -108, 176, - -108, 0, -108, 8, -108, 41, -108, 184, -108, 187, - 203, -108, -108, 196, -108, -108, -108, -108, -108, -108, - 230, -108, 101, 98, -108, -108, 151, -108, 46, -108, - 52, -108, 65, -108, -108, 113, -108, -108, 90, -108, - -108, 62, -108, 66, -108, 63, -108, 42, -108, -108, - -108, -108, -108, -108, 81, -108, 68, -108, 70, -108, - 74, 83, -108, -108, 45, -108, -108, 78, -108, -108, - -108, 47, -108, -108, -108, -108, 10, -108, -21, 163, - -108, 61, -108, -108, -2, -108, -16, -108, -108, -108, - -108, -108, -108, -108, 21, -108, -108, -108, -108, -108, - -108, 82, -108, -108, 31, -108, -108, -108, -108, 4, - -108, 5, -108, -108, -108, -108, -108, -83, -108, 72, - -108, -13, -108, -108, -108, -108, -26, -108, -108, -22, - -108, -108, -108, -108, -108, -108, -11, -108, -108, -3, - -108, 73, -108, 58, -108, -108, -108, -108, 71, -108, - 69, -108, 67, -108, 76, -108, -108, -108, -108, -108, - -108, 36, -108, -108, 88, -108, -108, -108, -108, 51, - -108, -108, 75, -108, -108, 48, -108, -108, -108, -108, - -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, - -108, -108, 104, -108, 60, -108, -108, -108, -108, -108, - -108, -108, 64, -108, -108, -108, -108, -108, 33, -108, - 6, -108, -108, -108, -108, -108, -108, 9, -108, -108, - -108, -108, -108, -108, -108, 169, 262, -108, 11, -108, - -108, -108, -108, 227, -108, -108, -108, -108, -108, 12, - -108, -108, 278, -8, -108, -108, -5, -108, -108, -108, - -108, -108, -108, -17, -108, -108, -108, -108, -108, -108, - 2, -108, -108, -108, -108, -108, -108, -108, -108, 35, - -108, -108, -108, -108, -108, 23, -108, -108, 26, 25, - 38, -108, -108, -108, 288, -108, -108, 16, -108, -108, - -108, 361, -108, 20, -108, 15, -108, 97, 28, -108, - -108, 22, -108, -108, 94, -108, -108, -108, 29, -108, - -108, -108, -108, 19, -108, 14, 163, -108, 102, -108, - -108, -108, -108, 219, -108, 34, -108, 86, -108, -108, - -108, -108, 286, -108, -108}; + -103, 37, 13, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -55, -103, -103, -103, + -103, -103, -103, -103, -103, -103, 89, -103, -103, -103, + 24, -103, -103, 6, 15, 92, 100, -103, 154, 66, + -103, -103, 86, 143, -103, -103, -103, -103, 152, -103, + 144, 140, -103, 134, 135, -103, -103, -103, -103, 161, + 170, 176, -103, -103, -103, -103, 174, -103, 169, 153, + 162, 167, -103, 128, 126, 112, 116, 119, 113, -103, + 111, 104, 110, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, 63, -103, 120, -103, 88, 77, + 57, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, 28, -103, -103, -103, + -103, -103, 31, -103, -103, 36, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, 157, + -103, 125, -24, -103, -103, -14, -103, 210, 27, 160, + -103, -103, -103, -103, -103, -103, -103, -103, 8, -103, + -103, -103, -5, -103, -103, 74, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, 94, -103, -103, 44, -103, 35, -103, 81, -103, + 61, -103, -103, -103, -103, 75, -103, -103, -103, 4, + -7, -103, -103, -103, -103, -103, 26, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, 68, -103, -103, + -103, -103, 90, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, 70, 220, -103, 208, + 231, 230, 234, -103, 101, 82, 60, 76, 79, -103, + -103, -103, -103, -103, -103, -103, -103, 211, -103, 194, + -103, 192, -103, -103, 204, -103, 166, -103, -103, 197, + -103, 23, -103, -1, -103, 9, -103, 180, -103, 181, + 223, -103, -103, 227, -103, -103, -103, -103, -103, -103, + 184, -103, 93, 98, -103, -103, 108, -103, 83, -103, + 78, -103, 40, -103, -103, 109, -103, -103, 102, -103, + -103, 41, -103, 43, -103, 52, -103, 62, -103, -103, + -103, -103, -103, -103, 55, -103, 50, -103, 51, -103, + 107, 49, -103, -103, 73, -103, -103, 154, -103, -103, + -103, 64, -103, -103, -103, -103, 16, -103, 12, 147, + -103, 103, -103, -103, -4, -103, 0, -103, -103, -103, + -103, -103, -103, -103, 7, -103, -103, -103, -103, -103, + -103, 187, -103, -103, 25, -103, -103, -103, -103, 71, + -103, 65, -103, -103, -103, -103, -103, -44, -103, 46, + -103, -34, -103, -103, -103, -103, -21, -103, -103, -45, + -103, -103, -103, -103, -103, -103, -32, -103, -103, 53, + -103, 56, -103, 47, -103, -103, -103, -103, 42, -103, + 45, -103, 38, -103, 48, -103, -103, -103, -103, -103, + -103, 22, -103, -103, 124, -103, -103, -103, -103, 59, + -103, -103, 137, -103, -103, 54, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, -103, 248, -103, -3, 114, -103, -103, -103, -103, + -103, -103, 5, -103, -103, -103, -103, -103, -8, -103, + 85, -103, -103, -103, -103, -103, -103, 11, -103, -103, + -103, -103, -103, -103, -103, -103, -103, 342, -103, -103, + -103, 29, -103, -103, -103, -103, -103, 273, -103, -103, + 3, -103, -103, -103, -103, -103, -103, 18, -103, -103, + -103, -103, -103, -103, -103, -103, 21, -103, -103, -103, + -103, -103, 2, -103, -103, 20, 14, 30, -103, -103, + -103, -103, -103, 284, -103, -103, -2, -103, -103, -103, + 222, -103, -9, -103, -6, -103, 96, 10, -103, -103, + 1, -103, -103, 80, -103, -103, -103, 72, -103, -103, + -103, -103, 69, -103, 58, 67, -103, 97, -103, -103, + -103, -103, -103, 84, -103, -103, -103}; const int QmlJSGrammar::action_info [] = { - -100, 525, 252, 398, -90, -133, 343, -103, -133, -122, - 448, -104, 439, 452, 525, 582, 533, 426, 340, 337, - 335, 338, 347, 396, 443, 579, 386, 435, 553, 384, - 525, 411, 574, -104, -125, 492, 567, -122, 403, 419, - 419, 335, 419, -100, 343, 252, 415, 441, -130, -127, - 452, 425, 448, -130, 435, 575, 435, -103, 435, 394, - 461, 558, -127, -125, 411, 159, 165, 178, 182, 330, - 136, 267, 301, 142, 404, 174, 409, 94, 267, 341, - 184, 452, 185, 247, 291, 299, 435, 448, 66, -114, - 411, 66, 320, 144, 252, 159, 313, 634, 422, 231, - 136, 0, 343, 322, 136, 287, 0, 472, 0, 136, - 429, 136, 0, 0, 438, 0, 287, 289, 96, 136, - 136, 94, 296, 136, 246, 136, 53, 136, 439, 0, - 0, 161, 625, 136, 328, 162, 0, 54, 0, 136, - 326, 0, 289, 423, 244, 243, 244, 243, 136, 96, - 309, 57, 172, 136, 310, 473, 323, 0, 560, 244, - 243, 483, 58, 242, 241, 237, 236, 492, 408, 407, - 554, 332, 454, 631, 510, 450, 541, 249, 307, 345, - 626, 251, 250, 515, 514, 413, 53, 522, 521, 53, - 53, 305, 539, 507, 506, 136, 137, 54, 464, 554, - 54, 54, 554, 31, 0, 525, 564, 563, 525, 80, - 584, 81, 561, 559, 80, 556, 81, 59, 510, 59, - 554, 0, 82, 31, 519, 518, 555, 82, 0, 80, - 569, 81, 0, 3, 2, 1, 539, 31, 504, 503, - 44, 45, 82, 31, 556, 31, 0, 556, 573, 572, - 31, 465, 463, 517, 59, 555, 136, 31, 555, 31, - 44, 45, 60, 31, 60, 556, 31, 502, 61, 31, - 61, 136, 98, 0, 44, 45, 555, 80, 31, 81, - 44, 45, 44, 45, 570, 568, 0, 44, 45, 31, - 82, 99, 167, 100, 44, 45, 44, 45, 31, 60, - 44, 45, 31, 44, 45, 61, 44, 45, 31, 230, - 229, 168, 31, 169, 31, 44, 45, 136, 0, 0, - 0, -344, 167, 0, 433, 432, 44, 45, 0, 269, - 270, 68, 69, 68, 69, 44, 45, 31, 0, 44, - 45, 168, 539, 401, -344, 44, 45, 510, 0, 44, - 45, 44, 45, 80, 0, 81, 271, 272, 70, 71, - 70, 71, 0, 0, 274, 275, 82, 31, 274, 275, - 230, 229, 31, 276, 44, 45, 277, 276, 278, 511, - 277, 31, 278, 274, 275, 0, 0, 0, 0, 0, - 0, 0, 276, 512, 509, 277, 0, 278, 31, 235, - 234, 0, 499, 31, 44, 45, 31, 0, 0, 44, - 45, 0, 0, 235, 234, 0, 31, 0, 44, 45, - 274, 275, 508, 31, 269, 270, 0, 0, 498, 276, - 240, 239, 277, 499, 278, 44, 45, 31, 235, 234, - 44, 45, 0, 44, 45, 0, 0, 0, 240, 239, - 0, 271, 272, 44, 45, 240, 239, 73, 74, 498, - 44, 45, 0, 0, 0, 75, 76, 499, 0, 77, - 545, 78, 0, 500, 44, 45, 73, 74, 0, 0, - 545, 0, 546, 31, 75, 76, 73, 74, 77, 31, - 78, 0, 546, 498, 75, 76, 73, 74, 77, 31, - 78, 0, 274, 275, 75, 76, 0, 0, 77, 0, - 78, 276, 0, 499, 277, 0, 278, 0, 0, 499, - 44, 45, 0, 0, 0, 0, 547, 548, 0, 499, - 0, 0, 0, 0, 221, 0, 547, 548, 0, 498, - 0, 525, 146, 205, 221, 498, 0, 0, 0, 0, - 0, 0, 147, 205, 0, 498, 148, 0, 0, 0, - 0, 0, 0, 0, 0, 149, 0, 150, 0, 0, - 0, 0, 0, 0, 0, 73, 74, 0, 151, 0, - 152, 57, 0, 75, 76, 146, 0, 77, 153, 78, - 0, 154, 58, 0, 0, 147, 0, 155, 0, 148, - 0, 0, 0, 156, 0, 0, 0, 0, 149, 0, - 150, 0, 0, 303, 0, 0, 0, 0, 157, 0, - 0, 151, 0, 152, 57, 0, 0, 0, 0, 0, - 0, 153, 0, 0, 154, 58, 0, 0, 0, 0, - 155, 0, 0, 0, 0, 0, 156, 0, 146, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 147, 0, - 0, 157, 148, 0, 0, 0, 0, 0, 0, 0, - 0, 149, 0, 150, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 151, 0, 152, 57, 0, 0, - 0, 0, 0, 0, 153, 0, 0, 154, 58, 0, - 0, 0, 0, 155, 0, 0, 0, 0, 0, 156, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, - 0, 30, 0, 0, 0, 0, 0, 0, 31, 0, - 0, 0, 32, 33, 0, 34, 0, 0, 0, 0, - 0, 0, 38, 0, 0, 0, 41, 0, 0, 0, + -114, 398, -93, 326, 252, 411, -89, -103, 343, -122, + 396, 386, 338, 337, -116, 492, 335, 452, -79, 340, + 540, 328, 384, 561, 435, -119, 448, 347, 452, 461, + 419, -92, 441, -122, 435, -103, 419, 415, 566, 554, + 439, 562, 335, 425, 426, 419, 443, 403, -119, 448, + 435, -116, -92, -114, 435, 411, 394, 569, 252, -89, + -93, 545, 287, 343, 165, 178, 136, 307, 174, 185, + 182, 159, 267, 66, 142, 452, 289, 296, 343, 448, + 404, 94, 291, 144, 411, 341, 252, 96, -111, 435, + 231, 247, 409, 159, 136, 287, 66, 320, 307, 313, + 616, 330, 136, 422, 0, 472, 136, 94, 0, 136, + 136, 301, 289, 322, 246, 438, 53, 161, 309, 613, + 184, 162, 310, 136, 299, 408, 407, 54, 136, 439, + 429, 136, 96, 136, 136, 556, 237, 236, 244, 243, + 251, 250, 510, 244, 243, 242, 241, 136, 423, 492, + 515, 514, 53, 473, 483, 136, 136, 53, 413, 53, + 527, 345, 249, 54, 522, 521, 323, 614, 54, 59, + 54, 507, 506, 57, 541, 450, 267, 244, 243, 80, + 332, 81, 172, 547, 58, 454, 80, 541, 81, 557, + 555, 31, 82, 464, 541, 137, 573, 31, 80, 82, + 81, 0, 167, 80, 510, 81, 541, 305, 0, 560, + 559, 82, 59, 136, 60, 31, 82, 31, 0, 543, + 61, 168, 527, 169, 59, 0, 0, 31, 44, 45, + 542, 80, 543, 81, 44, 45, 31, 548, 546, 543, + 504, 503, 31, 542, 82, 31, 465, 463, 31, 0, + 542, 543, 44, 45, 44, 45, 31, 60, 80, 80, + 81, 81, 542, 61, 44, 45, 230, 229, 502, 60, + 136, 82, 82, 44, 45, 61, 98, 31, 0, 44, + 45, 31, 44, 45, 31, 44, 45, 167, 31, 519, + 518, 0, 0, 44, 45, 99, 136, 100, 3, 2, + 1, 0, 0, 80, 0, 81, 168, 80, 401, 81, + 269, 270, 0, 0, 44, 45, 82, 517, 44, 45, + 82, 44, 45, 551, 550, 44, 45, 80, 80, 81, + 81, 80, 80, 81, 81, 136, 510, 271, 272, 31, + 82, 82, 269, 270, 82, 82, -333, 31, 0, 433, + 432, 0, 0, 0, -333, 0, 0, 31, 0, 31, + 527, 0, 0, 31, 0, 0, 31, 0, 511, 271, + 272, 0, 0, 0, 31, 0, 44, 45, 0, 0, + 0, 0, 512, 509, 44, 45, 0, 0, 230, 229, + 0, 240, 239, 499, 44, 45, 44, 45, 240, 239, + 44, 45, 0, 44, 45, 31, 235, 234, 274, 275, + 508, 44, 45, 0, 0, 31, 0, 276, 0, 498, + 277, 0, 278, 68, 69, 274, 275, 31, 0, 0, + 31, 0, 73, 74, 276, 499, 31, 277, 0, 278, + 75, 76, 44, 45, 77, 0, 78, 235, 234, 0, + 70, 71, 44, 45, 0, 0, 0, 0, 0, 240, + 239, 498, 235, 234, 44, 45, 499, 44, 45, 73, + 74, 0, 500, 44, 45, 0, 0, 75, 76, 73, + 74, 77, 0, 78, 0, 530, 0, 75, 76, 0, + 0, 77, 498, 78, 73, 74, 0, 531, 0, 0, + 274, 275, 75, 76, 31, 0, 77, 0, 78, 276, + 530, 0, 277, 0, 278, 0, 0, 0, 0, 0, + 0, 0, 531, 0, 0, 0, 0, 0, 0, 31, + 533, 0, 0, 0, 499, 0, 0, 0, 0, 0, + 0, 532, 534, 0, 0, 0, 0, 0, 0, 221, + 0, 0, 0, 0, 146, 571, 0, 0, 205, 499, + 498, 0, 0, 0, 147, 0, 532, 534, 148, 0, + 0, 0, 73, 74, 221, 0, 0, 149, 0, 150, + 75, 76, 303, 205, 77, 498, 78, 0, 0, 0, + 151, 0, 152, 57, 0, 0, 27, 28, 0, 0, + 153, 0, 0, 154, 58, 0, 30, 0, 0, 155, + 0, 0, 0, 31, 0, 156, 0, 32, 33, 0, + 34, 0, 0, 0, 0, 0, 0, 38, 0, 0, + 157, 41, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 146, 0, 0, 0, 0, 46, + 44, 45, 0, 47, 147, 0, 0, 0, 148, 0, + 0, 0, 0, 0, 40, 49, 29, 149, 0, 150, + 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 151, 0, 152, 57, 0, 0, 0, 0, 0, 0, + 153, 0, 0, 154, 58, 0, 0, 0, 0, 155, + 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 46, 44, 45, 0, 47, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, - 49, 29, 0, 0, 0, 37, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 26, 27, 28, 0, 0, + 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 32, 33, 0, - 34, 0, 0, 0, 35, 0, 36, 38, 39, 0, - 0, 41, 0, 0, 0, 42, 0, 43, 0, 0, + 34, 0, 0, 0, 0, 0, 0, 38, 0, 0, + 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, - 44, 45, 0, 47, 0, 48, 0, 50, 0, 51, + 44, 45, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 49, 29, 0, 0, 0, - 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -123, 0, 0, 0, 26, 27, 28, 0, 0, 0, - 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, - 0, 0, 31, 0, 0, 0, 32, 33, 0, 34, - 0, 0, 0, 35, 0, 36, 38, 39, 0, 0, - 41, 0, 0, 0, 42, 0, 43, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 46, 44, - 45, 0, 47, 0, 48, 0, 50, 0, 51, 0, - 0, 0, 0, 40, 49, 29, 0, 0, 0, 37, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, + 37, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 32, 33, 0, 34, 0, 0, 0, 35, 0, 36, 38, 39, 0, 0, 41, 0, 0, 0, 42, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 44, 45, 0, 47, 0, 48, - 0, 50, 266, 51, 0, 0, 0, 0, 40, 49, + 0, 50, 0, 51, 0, 0, 0, 0, 40, 49, 29, 0, 0, 0, 37, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 470, 0, 0, 26, 27, 28, - 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, - 0, 0, 0, 0, 0, 31, 0, 0, 0, 32, - 33, 0, 34, 0, 0, 0, 35, 0, 36, 38, - 39, 0, 0, 41, 0, 0, 0, 42, 0, 43, - 0, 0, 471, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 44, 45, 0, 47, 0, 48, 0, 50, - 0, 51, 0, 0, 0, 0, 40, 49, 29, 0, - 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 478, 0, 0, 26, 27, 28, 0, 0, - 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, - 0, 0, 0, 31, 0, 0, 0, 32, 33, 0, - 34, 0, 0, 0, 35, 0, 36, 38, 39, 0, - 0, 41, 0, 0, 0, 42, 0, 43, 0, 0, - 481, 0, 0, 0, 0, 0, 0, 0, 0, 46, - 44, 45, 0, 47, 0, 48, 0, 50, 0, 51, - 0, 0, 0, 0, 40, 49, 29, 0, 0, 0, - 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 26, 27, 28, 0, 0, 0, 0, 0, 0, 0, - 0, 30, 0, 0, 0, 0, 0, 0, 31, 212, - 0, 0, 590, 591, 0, 34, 0, 0, 0, 35, - 0, 36, 38, 39, 0, 0, 41, 0, 0, 0, - 42, 0, 43, 0, 0, 0, 0, 0, 0, 0, - 216, 0, 0, 0, 46, 44, 45, 0, 47, 0, - 48, 0, 50, 0, 51, 0, 0, 0, 0, 40, - 49, 29, 0, 0, 0, 37, 0, 0, 0, 0, + 0, 0, 0, 26, 27, 28, 0, 0, 0, 0, + 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, + 0, 31, 0, 0, 0, 32, 33, 0, 34, 0, + 0, 0, 35, 0, 36, 38, 39, 0, 0, 41, + 0, 0, 0, 42, 0, 43, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 46, 44, 45, + 0, 47, 0, 48, 0, 50, 266, 51, 0, 0, + 0, 0, 40, 49, 29, 0, 0, 0, 37, 0, + 0, 0, 0, 0, 0, 0, 0, -112, 0, 0, + 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, + 0, 0, 30, 0, 0, 0, 0, 0, 0, 31, + 0, 0, 0, 32, 33, 0, 34, 0, 0, 0, + 35, 0, 36, 38, 39, 0, 0, 41, 0, 0, + 0, 42, 0, 43, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 46, 44, 45, 0, 47, + 0, 48, 0, 50, 0, 51, 0, 0, 0, 0, + 40, 49, 29, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 470, 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, @@ -482,60 +447,76 @@ const int QmlJSGrammar::action_info [] = { 0, 0, 46, 44, 45, 0, 47, 0, 48, 0, 50, 0, 51, 0, 0, 0, 0, 40, 49, 29, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 478, 0, 0, 26, 27, 28, 0, + 0, 0, 478, 0, 0, 26, 27, 28, 0, 0, + 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, + 0, 0, 0, 31, 0, 0, 0, 32, 33, 0, + 34, 0, 0, 0, 35, 0, 36, 38, 39, 0, + 0, 41, 0, 0, 0, 42, 0, 43, 0, 0, + 481, 0, 0, 0, 0, 0, 0, 0, 0, 46, + 44, 45, 0, 47, 0, 48, 0, 50, 0, 51, + 0, 0, 0, 0, 40, 49, 29, 0, 0, 0, + 37, 0, 0, 0, 0, 0, 0, 0, 0, 478, + 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, + 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, + 31, 0, 0, 0, 32, 33, 0, 34, 0, 0, + 0, 35, 0, 36, 38, 39, 0, 0, 41, 0, + 0, 0, 42, 0, 43, 0, 0, 479, 0, 0, + 0, 0, 0, 0, 0, 0, 46, 44, 45, 0, + 47, 0, 48, 0, 50, 0, 51, 0, 0, 0, + 0, 40, 49, 29, 0, 0, 0, 37, 0, 0, + 0, 0, 0, 0, 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, - 0, 0, 0, 0, 31, 0, 0, 0, 32, 33, + 0, 0, 0, 0, 31, 212, 0, 0, 579, 580, 0, 34, 0, 0, 0, 35, 0, 36, 38, 39, 0, 0, 41, 0, 0, 0, 42, 0, 43, 0, - 0, 479, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 46, 44, 45, 0, 47, 0, 48, 0, 50, 0, 51, 0, 0, 0, 0, 40, 49, 29, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 470, 0, 0, 26, 27, 28, 0, 0, 0, - 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, - 0, 0, 31, 0, 0, 0, 32, 33, 0, 34, - 0, 0, 0, 35, 0, 36, 38, 39, 0, 0, - 41, 0, 0, 0, 42, 0, 43, 0, 0, 471, - 0, 0, 499, 0, 0, 0, 0, 0, 46, 44, - 45, 0, 47, 0, 48, 0, 50, 0, 51, 0, - 0, 0, 0, 40, 49, 29, 0, 0, 498, 37, - 525, 0, 0, 0, 0, 0, 0, 0, 0, 104, - 105, 106, 0, 0, 108, 110, 111, 0, 0, 112, - 0, 113, 0, 0, 0, 115, 116, 117, 0, 0, - 0, 0, 0, 0, 31, 118, 119, 120, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 121, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 124, 0, 0, 0, 0, 0, - 0, 44, 45, 125, 126, 127, 0, 129, 130, 131, - 132, 133, 134, 0, 0, 122, 128, 114, 107, 109, - 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 104, 105, 106, 0, 0, 108, 110, 111, 0, - 0, 112, 0, 113, 0, 0, 0, 115, 116, 117, - 0, 0, 0, 0, 0, 0, 31, 118, 119, 120, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 121, 0, 0, 0, 534, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 124, 0, 0, 0, - 0, 0, 0, 44, 45, 125, 126, 127, 0, 129, - 130, 131, 132, 133, 134, 0, 0, 122, 128, 114, - 107, 109, 123, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 104, 105, 106, 0, 0, 108, 110, - 111, 0, 0, 112, 0, 113, 0, 0, 0, 115, - 116, 117, 0, 0, 0, 0, 0, 0, 388, 118, - 119, 120, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 121, 0, 0, 0, 389, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, - 0, 0, 0, 0, 393, 390, 392, 125, 126, 127, - 0, 129, 130, 131, 132, 133, 134, 0, 0, 122, - 128, 114, 107, 109, 123, 0, 0, 0, 0, 0, + 470, 0, 0, 26, 27, 28, 0, 0, 0, 0, + 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, + 0, 31, 0, 0, 0, 32, 33, 0, 34, 0, + 0, 0, 35, 0, 36, 38, 39, 0, 0, 41, + 0, 0, 0, 42, 0, 43, 0, 0, 471, 0, + 0, 0, 0, 0, 0, 0, 0, 46, 44, 45, + 0, 47, 0, 48, 0, 50, 0, 51, 0, 0, + 0, 0, 40, 49, 29, 0, 0, 0, 37, 0, + 0, 0, 0, 0, 0, 0, 0, 470, 0, 0, + 26, 27, 28, 0, 0, 0, 0, 0, 0, 0, + 0, 30, 0, 0, 0, 0, 0, 0, 31, 0, + 0, 0, 32, 33, 0, 34, 0, 0, 0, 35, + 0, 36, 38, 39, 0, 0, 41, 0, 0, 0, + 42, 0, 43, 0, 0, 471, 0, 0, 499, 0, + 0, 0, 0, 0, 46, 44, 45, 0, 47, 0, + 48, 0, 50, 0, 51, 0, 0, 0, 0, 40, + 49, 29, 0, 0, 498, 37, 0, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 106, 0, 0, 108, + 110, 111, 0, 0, 112, 0, 113, 0, 0, 0, + 115, 116, 117, 0, 0, 0, 0, 0, 0, 31, + 118, 119, 120, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, + 0, 0, 0, 0, 0, 0, 44, 45, 125, 126, + 127, 0, 129, 130, 131, 132, 133, 134, 0, 0, + 122, 128, 114, 107, 109, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 105, 106, 0, 0, 108, 110, 111, 0, 0, 112, 0, 113, 0, 0, 0, 115, 116, 117, 0, 0, 0, 0, 0, 0, 388, 118, 119, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 389, 0, - 0, 0, 0, 0, 0, 0, 391, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, 0, 0, 0, 0, 393, 390, 392, 125, 126, 127, 0, 129, 130, 131, 132, 133, 134, 0, 0, 122, 128, 114, 107, 109, 123, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 104, 105, 106, 0, + 0, 108, 110, 111, 0, 0, 112, 0, 113, 0, + 0, 0, 115, 116, 117, 0, 0, 0, 0, 0, + 0, 388, 118, 119, 120, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 121, 0, 0, 0, 389, + 0, 0, 0, 0, 0, 0, 0, 391, 0, 0, + 0, 124, 0, 0, 0, 0, 0, 393, 390, 392, + 125, 126, 127, 0, 129, 130, 131, 132, 133, 134, + 0, 0, 122, 128, 114, 107, 109, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 0, 0, 0, 0, 206, 0, 26, 27, 28, 208, 0, 0, 0, 0, 0, 0, 209, 30, 0, 0, 0, 0, @@ -545,219 +526,190 @@ const int QmlJSGrammar::action_info [] = { 0, 0, 215, 0, 216, 0, 0, 0, 46, 214, 217, 218, 47, 219, 48, 220, 50, 221, 51, 222, 223, 0, 0, 40, 49, 29, 205, 207, 0, 37, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, - 0, 0, 0, 0, 206, 0, 26, 27, 28, 208, - 0, 0, 0, 0, 0, 0, 209, 210, 0, 0, - 0, 0, 0, 0, 211, 212, 0, 0, 213, 33, - 0, 34, 0, 0, 0, 35, 0, 36, 38, 39, - 0, 0, 41, 0, 0, 0, 42, 0, 43, 0, - 0, 0, 0, 0, 215, 0, 216, 0, 0, 0, - 46, 214, 217, 218, 47, 219, 48, 220, 50, 221, - 51, 222, 223, 0, 0, 40, 49, 29, 205, 207, - 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 593, 105, 106, 0, 0, 595, 110, 597, 27, - 28, 598, 0, 113, 0, 0, 0, 115, 600, 601, - 0, 0, 0, 0, 0, 0, 602, 603, 119, 120, - 213, 33, 0, 34, 0, 0, 0, 35, 0, 36, - 604, 39, 0, 0, 606, 0, 0, 0, 42, 0, - 43, 0, 0, 0, 0, 0, 608, 0, 216, 0, - 0, 0, 610, 607, 609, 611, 612, 613, 48, 615, - 616, 617, 618, 619, 620, 0, 0, 605, 614, 599, - 594, 596, 123, 37, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 356, 105, 106, 0, 0, 358, 110, - 360, 27, 28, 361, 0, 113, 0, 0, 0, 115, - 363, 364, 0, 0, 0, 0, 0, 0, 365, 366, - 119, 120, 213, 33, 0, 34, 0, 0, 0, 35, - 0, 36, 367, 39, 0, 0, 369, 0, 0, 0, - 42, 0, 43, 0, -269, 0, 0, 0, 371, 0, - 216, 0, 0, 0, 373, 370, 372, 374, 375, 376, - 48, 378, 379, 380, 381, 382, 383, 0, 0, 368, - 377, 362, 357, 359, 123, 37, 0, 0, 0, 0, - 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 204, 0, + 0, 0, 0, 206, 0, 26, 27, 28, 208, 0, + 0, 0, 0, 0, 0, 209, 210, 0, 0, 0, + 0, 0, 0, 211, 212, 0, 0, 213, 33, 0, + 34, 0, 0, 0, 35, 0, 36, 38, 39, 0, + 0, 41, 0, 0, 0, 42, 0, 43, 0, 0, + 0, 0, 0, 215, 0, 216, 0, 0, 0, 46, + 214, 217, 218, 47, 219, 48, 220, 50, 221, 51, + 222, 223, 0, 0, 40, 49, 29, 205, 207, 0, + 37, 0, 0, 0, 0, 0, 0, 0, 0, 582, + 105, 106, 0, 0, 584, 110, 586, 27, 28, 587, + 0, 113, 0, 0, 0, 115, 589, 590, 0, 0, + 0, 0, 0, 0, 591, 592, 119, 120, 213, 33, + 0, 34, 0, 0, 0, 35, 0, 36, 593, 39, + 0, 0, 595, 0, 0, 0, 42, 0, 43, 0, + 0, 0, 0, 0, 597, 0, 216, 0, 0, 0, + 599, 596, 598, 600, 601, 602, 48, 604, 605, 606, + 607, 608, 609, 0, 0, 594, 603, 588, 583, 585, + 123, 37, 0, 0, 0, 0, 0, 0, 0, 0, + 356, 105, 106, 0, 0, 358, 110, 360, 27, 28, + 361, 0, 113, 0, 0, 0, 115, 363, 364, 0, + 0, 0, 0, 0, 0, 365, 366, 119, 120, 213, + 33, 0, 34, 0, 0, 0, 35, 0, 36, 367, + 39, 0, 0, 369, 0, 0, 0, 42, 0, 43, + 0, -258, 0, 0, 0, 371, 0, 216, 0, 0, + 0, 373, 370, 372, 374, 375, 376, 48, 378, 379, + 380, 381, 382, 383, 0, 0, 368, 377, 362, 357, + 359, 123, 37, 0, 0, 0, 0, 0, 0, 0, + 0, - 491, 434, 302, 632, 565, 562, 410, 166, 412, 557, - 13, 304, 183, 431, 420, 516, 171, 164, 520, 445, - 202, 387, 431, 542, 238, 629, 315, 248, 145, 233, - 245, 177, 297, 405, 385, 583, 434, 592, 571, 181, - 482, 177, 513, 306, 348, 627, 135, 581, 329, 578, - 297, 580, 245, 233, 177, 331, 427, 395, 238, 431, - 430, 434, 297, 467, 342, 346, 334, 333, 523, 344, - 453, 451, 462, 505, 449, 428, 141, 233, 455, 238, - 444, 424, 442, 397, 477, 245, 456, 480, 440, 138, - 143, 158, 202, 202, 0, 497, 0, 456, 628, 0, - 0, 297, 490, 0, 0, 0, 55, 475, 447, 0, - 315, 474, 0, 497, 501, 0, 0, 399, 141, 55, - 400, 175, 181, 402, 55, 55, 485, 484, 399, 55, - 261, 400, 55, 399, 280, 265, 400, 283, 55, 297, - 55, 55, 55, 281, 175, 282, 279, 55, 55, 447, - 175, 55, 101, 55, 297, 55, 55, 55, 86, 103, - 79, 55, 93, 91, 55, 160, 55, 325, 55, 67, - 72, 87, 85, 55, 466, 55, 55, 55, 530, 297, - 55, 84, 55, 97, 83, 531, 0, 95, 92, 324, - 55, 339, 163, 55, 55, 88, 0, 232, 90, 89, - 55, 55, 447, 489, 55, 298, 486, 55, 55, 488, - 446, 141, 55, 336, 487, 55, 173, 62, 55, 0, - 327, 65, 55, 55, 63, 55, 56, 64, 497, 55, - 293, 630, 55, 629, 265, 265, 530, 265, 0, 0, - 101, 293, 535, 531, 308, 300, 265, 103, 293, 311, - 55, 55, 292, 265, 55, 265, 265, 285, 0, 265, - 268, 286, 55, 314, 0, 0, 0, 265, 0, 170, - 312, 497, 0, 290, 537, 293, 0, 55, 293, 0, - 265, 55, 265, 265, 284, 55, 265, 497, 551, 0, - 265, 587, 273, 0, 288, 497, 551, 321, 0, 0, - 295, 0, 0, 0, 0, 633, 0, 544, 552, 0, - 585, 586, 588, 589, 0, 544, 552, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 233, 513, 304, 238, 183, 523, 164, 431, 145, 434, + 177, 306, 245, 581, 505, 490, 166, 181, 482, 431, + 520, 549, 565, 544, 558, 302, 385, 405, 434, 570, + 171, 387, 430, 177, 567, 456, 467, 395, 552, 568, + 13, 453, 333, 342, 238, 449, 344, 451, 420, 428, + 455, 245, 462, 233, 346, 424, 427, 397, 138, 233, + 238, 143, 440, 444, 348, 442, 158, 297, 412, 445, + 334, 248, 431, 410, 434, 297, 202, 0, 297, 315, + 135, 331, 177, 245, 477, 329, 0, 141, 0, 480, + 0, 0, 0, 497, 516, 615, 202, 101, 0, 0, + 55, 297, 315, 55, 202, 281, 55, 55, 486, 446, + 0, 297, 0, 0, 399, 95, 55, 400, 181, 55, + 103, 282, 55, 497, 283, 524, 55, 280, 487, 55, + 261, 175, 55, 456, 484, 265, 55, 55, 175, 447, + 55, 55, 485, 55, 55, 447, 279, 55, 84, 175, + 55, 55, 55, 55, 85, 83, 55, 87, 90, 55, + 55, 88, 325, 475, 89, 55, 55, 474, 55, 297, + 97, 86, 327, 79, 55, 55, 324, 56, 65, 0, + 55, 163, 447, 55, 55, 488, 446, 55, 399, 446, + 141, 400, 55, 55, 489, 232, 173, 55, 339, 91, + 297, 55, 55, 62, 336, 466, 0, 55, 92, 55, + 55, 160, 63, 93, 55, 72, 55, 141, 64, 101, + 55, 55, 67, 402, 293, 265, 265, 0, 0, 265, + 298, 610, 293, 612, 55, 308, 0, 265, 311, 265, + 0, 0, 103, 170, 293, 290, 321, 0, 55, 265, + 0, 55, 467, 265, 292, 273, 265, 497, 501, 0, + 55, 300, 0, 293, 288, 265, 295, 293, 265, 268, + 55, 55, 265, 0, 55, 265, 265, 285, 284, 265, + 0, 286, 497, 538, 0, 312, 572, 576, 0, 314, + 0, 0, 0, 0, 0, 0, 529, 539, 0, 0, + 574, 575, 577, 578, 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, - 621, 0, 0, 624, 623, 0, 0, 0, 0, 0, + 0, 497, 538, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 529, 539, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 467, 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 int QmlJSGrammar::action_check [] = { - 7, 87, 36, 55, 33, 7, 36, 7, 7, 7, - 36, 7, 20, 36, 87, 60, 17, 7, 55, 60, - 36, 33, 16, 55, 60, 8, 8, 33, 66, 7, - 87, 36, 29, 7, 7, 89, 29, 7, 60, 5, - 5, 36, 5, 7, 36, 36, 33, 36, 7, 7, - 36, 55, 36, 7, 33, 36, 33, 7, 33, 7, - 17, 29, 7, 7, 36, 2, 7, 36, 8, 31, - 8, 1, 60, 8, 7, 60, 7, 48, 1, 7, - 60, 36, 33, 36, 8, 61, 33, 36, 1, 7, - 36, 1, 17, 60, 36, 2, 7, 0, 10, 55, - 8, -1, 36, 8, 8, 48, -1, 8, -1, 8, - 7, 8, -1, -1, 6, -1, 48, 78, 78, 8, - 8, 48, 61, 8, 76, 8, 40, 8, 20, -1, - -1, 50, 8, 8, 60, 54, -1, 51, -1, 8, - 61, -1, 78, 55, 61, 62, 61, 62, 8, 78, - 50, 42, 56, 8, 54, 56, 61, -1, 7, 61, - 62, 60, 53, 61, 62, 61, 62, 89, 61, 62, - 29, 60, 60, 55, 15, 60, 55, 60, 2, 60, - 56, 61, 62, 61, 62, 60, 40, 61, 62, 40, - 40, 60, 33, 61, 62, 8, 56, 51, 8, 29, - 51, 51, 29, 29, -1, 87, 61, 62, 87, 25, - 7, 27, 61, 62, 25, 74, 27, 12, 15, 12, - 29, -1, 38, 29, 61, 62, 85, 38, -1, 25, - 7, 27, -1, 91, 92, 93, 33, 29, 61, 62, - 66, 67, 38, 29, 74, 29, -1, 74, 61, 62, - 29, 61, 62, 90, 12, 85, 8, 29, 85, 29, - 66, 67, 57, 29, 57, 74, 29, 90, 63, 29, - 63, 8, 15, -1, 66, 67, 85, 25, 29, 27, - 66, 67, 66, 67, 61, 62, -1, 66, 67, 29, - 38, 34, 15, 36, 66, 67, 66, 67, 29, 57, - 66, 67, 29, 66, 67, 63, 66, 67, 29, 61, - 62, 34, 29, 36, 29, 66, 67, 8, -1, -1, - -1, 36, 15, -1, 61, 62, 66, 67, -1, 18, - 19, 18, 19, 18, 19, 66, 67, 29, -1, 66, - 67, 34, 33, 36, 36, 66, 67, 15, -1, 66, - 67, 66, 67, 25, -1, 27, 45, 46, 45, 46, - 45, 46, -1, -1, 23, 24, 38, 29, 23, 24, - 61, 62, 29, 32, 66, 67, 35, 32, 37, 47, - 35, 29, 37, 23, 24, -1, -1, -1, -1, -1, - -1, -1, 32, 61, 62, 35, -1, 37, 29, 61, - 62, -1, 59, 29, 66, 67, 29, -1, -1, 66, - 67, -1, -1, 61, 62, -1, 29, -1, 66, 67, - 23, 24, 90, 29, 18, 19, -1, -1, 85, 32, - 61, 62, 35, 59, 37, 66, 67, 29, 61, 62, - 66, 67, -1, 66, 67, -1, -1, -1, 61, 62, - -1, 45, 46, 66, 67, 61, 62, 23, 24, 85, - 66, 67, -1, -1, -1, 31, 32, 59, -1, 35, - 10, 37, -1, 65, 66, 67, 23, 24, -1, -1, - 10, -1, 22, 29, 31, 32, 23, 24, 35, 29, - 37, -1, 22, 85, 31, 32, 23, 24, 35, 29, - 37, -1, 23, 24, 31, 32, -1, -1, 35, -1, - 37, 32, -1, 59, 35, -1, 37, -1, -1, 59, - 66, 67, -1, -1, -1, -1, 66, 67, -1, 59, - -1, -1, -1, -1, 74, -1, 66, 67, -1, 85, - -1, 87, 3, 83, 74, 85, -1, -1, -1, -1, - -1, -1, 13, 83, -1, 85, 17, -1, -1, -1, - -1, -1, -1, -1, -1, 26, -1, 28, -1, -1, - -1, -1, -1, -1, -1, 23, 24, -1, 39, -1, - 41, 42, -1, 31, 32, 3, -1, 35, 49, 37, - -1, 52, 53, -1, -1, 13, -1, 58, -1, 17, - -1, -1, -1, 64, -1, -1, -1, -1, 26, -1, - 28, -1, -1, 31, -1, -1, -1, -1, 79, -1, - -1, 39, -1, 41, 42, -1, -1, -1, -1, -1, - -1, 49, -1, -1, 52, 53, -1, -1, -1, -1, - 58, -1, -1, -1, -1, -1, 64, -1, 3, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 13, -1, - -1, 79, 17, -1, -1, -1, -1, -1, -1, -1, - -1, 26, -1, 28, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 39, -1, 41, 42, -1, -1, - -1, -1, -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, -1, 79, -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, 22, -1, -1, -1, -1, -1, -1, 29, -1, - -1, -1, 33, 34, -1, 36, -1, -1, -1, -1, - -1, -1, 43, -1, -1, -1, 47, -1, -1, -1, + 7, 55, 7, 61, 36, 36, 7, 7, 36, 7, + 55, 8, 33, 60, 7, 88, 36, 36, 33, 55, + 66, 60, 7, 29, 33, 7, 36, 16, 36, 17, + 5, 7, 36, 7, 33, 7, 5, 33, 8, 29, + 20, 36, 36, 55, 7, 5, 60, 60, 7, 36, + 33, 7, 7, 7, 33, 36, 7, 60, 36, 7, + 7, 29, 48, 36, 7, 36, 8, 2, 60, 33, + 8, 2, 1, 1, 8, 36, 78, 61, 36, 36, + 7, 48, 8, 60, 36, 7, 36, 78, 7, 33, + 55, 36, 7, 2, 8, 48, 1, 17, 2, 7, + 0, 31, 8, 10, -1, 8, 8, 48, -1, 8, + 8, 60, 78, 8, 76, 6, 40, 50, 50, 8, + 60, 54, 54, 8, 61, 61, 62, 51, 8, 20, + 7, 8, 78, 8, 8, 7, 61, 62, 61, 62, + 61, 62, 15, 61, 62, 61, 62, 8, 55, 88, + 61, 62, 40, 56, 60, 8, 8, 40, 60, 40, + 33, 60, 60, 51, 61, 62, 61, 56, 51, 12, + 51, 61, 62, 42, 29, 60, 1, 61, 62, 25, + 60, 27, 56, 7, 53, 60, 25, 29, 27, 61, + 62, 29, 38, 8, 29, 56, 7, 29, 25, 38, + 27, -1, 15, 25, 15, 27, 29, 60, -1, 61, + 62, 38, 12, 8, 57, 29, 38, 29, -1, 74, + 63, 34, 33, 36, 12, -1, -1, 29, 66, 67, + 85, 25, 74, 27, 66, 67, 29, 61, 62, 74, + 61, 62, 29, 85, 38, 29, 61, 62, 29, -1, + 85, 74, 66, 67, 66, 67, 29, 57, 25, 25, + 27, 27, 85, 63, 66, 67, 61, 62, 89, 57, + 8, 38, 38, 66, 67, 63, 15, 29, -1, 66, + 67, 29, 66, 67, 29, 66, 67, 15, 29, 61, + 62, -1, -1, 66, 67, 34, 8, 36, 90, 91, + 92, -1, -1, 25, -1, 27, 34, 25, 36, 27, + 18, 19, -1, -1, 66, 67, 38, 89, 66, 67, + 38, 66, 67, 61, 62, 66, 67, 25, 25, 27, + 27, 25, 25, 27, 27, 8, 15, 45, 46, 29, + 38, 38, 18, 19, 38, 38, 36, 29, -1, 61, + 62, -1, -1, -1, 36, -1, -1, 29, -1, 29, + 33, -1, -1, 29, -1, -1, 29, -1, 47, 45, + 46, -1, -1, -1, 29, -1, 66, 67, -1, -1, + -1, -1, 61, 62, 66, 67, -1, -1, 61, 62, + -1, 61, 62, 59, 66, 67, 66, 67, 61, 62, + 66, 67, -1, 66, 67, 29, 61, 62, 23, 24, + 89, 66, 67, -1, -1, 29, -1, 32, -1, 85, + 35, -1, 37, 18, 19, 23, 24, 29, -1, -1, + 29, -1, 23, 24, 32, 59, 29, 35, -1, 37, + 31, 32, 66, 67, 35, -1, 37, 61, 62, -1, + 45, 46, 66, 67, -1, -1, -1, -1, -1, 61, + 62, 85, 61, 62, 66, 67, 59, 66, 67, 23, + 24, -1, 65, 66, 67, -1, -1, 31, 32, 23, + 24, 35, -1, 37, -1, 10, -1, 31, 32, -1, + -1, 35, 85, 37, 23, 24, -1, 22, -1, -1, + 23, 24, 31, 32, 29, -1, 35, -1, 37, 32, + 10, -1, 35, -1, 37, -1, -1, -1, -1, -1, + -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, + 55, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, 66, 67, -1, -1, -1, -1, -1, -1, 74, + -1, -1, -1, -1, 3, 55, -1, -1, 83, 59, + 85, -1, -1, -1, 13, -1, 66, 67, 17, -1, + -1, -1, 23, 24, 74, -1, -1, 26, -1, 28, + 31, 32, 31, 83, 35, 85, 37, -1, -1, -1, + 39, -1, 41, 42, -1, -1, 12, 13, -1, -1, + 49, -1, -1, 52, 53, -1, 22, -1, -1, 58, + -1, -1, -1, 29, -1, 64, -1, 33, 34, -1, + 36, -1, -1, -1, -1, -1, -1, 43, -1, -1, + 79, 47, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3, -1, -1, -1, -1, 65, + 66, 67, -1, 69, 13, -1, -1, -1, 17, -1, + -1, -1, -1, -1, 80, 81, 82, 26, -1, 28, + 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 39, -1, 41, 42, -1, -1, -1, -1, -1, -1, + 49, -1, -1, 52, 53, -1, -1, -1, -1, 58, + -1, -1, -1, -1, -1, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 65, 66, 67, -1, 69, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, - 81, 82, -1, -1, -1, 86, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 11, 12, 13, -1, -1, + 79, -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, 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, - 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, - -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, + 36, -1, -1, -1, -1, -1, -1, 43, -1, -1, + -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, - 66, 67, -1, 69, -1, 71, -1, 73, -1, 75, + 66, 67, -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, 81, 82, -1, -1, -1, - 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 7, -1, -1, -1, 11, 12, 13, -1, -1, -1, - -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, - -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, - -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, - 47, -1, -1, -1, 51, -1, 53, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, - 67, -1, 69, -1, 71, -1, 73, -1, 75, -1, - -1, -1, -1, 80, 81, 82, -1, -1, -1, 86, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 11, + 86, -1, -1, -1, -1, -1, -1, -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, -1, 69, -1, 71, - -1, 73, 74, 75, -1, -1, -1, -1, 80, 81, + -1, 73, -1, 75, -1, -1, -1, -1, 80, 81, 82, -1, -1, -1, 86, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 8, -1, -1, 11, 12, 13, - -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, - -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, - 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, - 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, - -1, -1, 56, -1, -1, -1, -1, -1, -1, -1, - -1, 65, 66, 67, -1, 69, -1, 71, -1, 73, - -1, 75, -1, -1, -1, -1, 80, 81, 82, -1, - -1, -1, 86, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 8, -1, -1, 11, 12, 13, -1, -1, - -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, - -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, - 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, - -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, - 56, -1, -1, -1, -1, -1, -1, -1, -1, 65, - 66, 67, -1, 69, -1, 71, -1, 73, -1, 75, - -1, -1, -1, -1, 80, 81, 82, -1, -1, -1, - 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, - -1, 22, -1, -1, -1, -1, -1, -1, 29, 30, - -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, - -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, - 51, -1, 53, -1, -1, -1, -1, -1, -1, -1, - 61, -1, -1, -1, 65, 66, 67, -1, 69, -1, - 71, -1, 73, -1, 75, -1, -1, -1, -1, 80, - 81, 82, -1, -1, -1, 86, -1, -1, -1, -1, + -1, -1, -1, 11, 12, 13, -1, -1, -1, -1, + -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, + -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, + -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, + -1, -1, -1, 51, -1, 53, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, + -1, 69, -1, 71, -1, 73, 74, 75, -1, -1, + -1, -1, 80, 81, 82, -1, -1, -1, 86, -1, + -1, -1, -1, -1, -1, -1, -1, 7, -1, -1, + -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, + -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, + -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, + 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, + -1, 51, -1, 53, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 65, 66, 67, -1, 69, + -1, 71, -1, 73, -1, 75, -1, -1, -1, -1, + 80, 81, 82, -1, -1, -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, @@ -767,60 +719,76 @@ const int QmlJSGrammar::action_check [] = { -1, -1, 65, 66, 67, -1, 69, -1, 71, -1, 73, -1, 75, -1, -1, -1, -1, 80, 81, 82, -1, -1, -1, 86, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 8, -1, -1, 11, 12, 13, -1, + -1, -1, 8, -1, -1, 11, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, + -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, + 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, + -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, + 56, -1, -1, -1, -1, -1, -1, -1, -1, 65, + 66, 67, -1, 69, -1, 71, -1, 73, -1, 75, + -1, -1, -1, -1, 80, 81, 82, -1, -1, -1, + 86, -1, -1, -1, -1, -1, -1, -1, -1, 8, + -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, + -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, + 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, + -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, + -1, -1, 51, -1, 53, -1, -1, 56, -1, -1, + -1, -1, -1, -1, -1, -1, 65, 66, 67, -1, + 69, -1, 71, -1, 73, -1, 75, -1, -1, -1, + -1, 80, 81, 82, -1, -1, -1, 86, -1, -1, + -1, -1, -1, -1, -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, - -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, + -1, -1, -1, -1, 29, 30, -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, - -1, 56, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, 65, 66, 67, -1, 69, -1, 71, -1, 73, -1, 75, -1, -1, -1, -1, 80, 81, 82, -1, -1, -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 8, -1, -1, 11, 12, 13, -1, -1, -1, - -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, - -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, - -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, - 47, -1, -1, -1, 51, -1, 53, -1, -1, 56, - -1, -1, 59, -1, -1, -1, -1, -1, 65, 66, - 67, -1, 69, -1, 71, -1, 73, -1, 75, -1, - -1, -1, -1, 80, 81, 82, -1, -1, 85, 86, - 87, -1, -1, -1, -1, -1, -1, -1, -1, 4, - 5, 6, -1, -1, 9, 10, 11, -1, -1, 14, - -1, 16, -1, -1, -1, 20, 21, 22, -1, -1, - -1, -1, -1, -1, 29, 30, 31, 32, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, - -1, 66, 67, 68, 69, 70, -1, 72, 73, 74, - 75, 76, 77, -1, -1, 80, 81, 82, 83, 84, - 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4, 5, 6, -1, -1, 9, 10, 11, -1, - -1, 14, -1, 16, -1, -1, -1, 20, 21, 22, - -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 43, -1, -1, -1, 47, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, - -1, -1, -1, 66, 67, 68, 69, 70, -1, 72, - 73, 74, 75, 76, 77, -1, -1, 80, 81, 82, - 83, 84, 85, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 4, 5, 6, -1, -1, 9, 10, - 11, -1, -1, 14, -1, 16, -1, -1, -1, 20, - 21, 22, -1, -1, -1, -1, -1, -1, 29, 30, - 31, 32, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 43, -1, -1, -1, 47, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, - -1, -1, -1, -1, 65, 66, 67, 68, 69, 70, - -1, 72, 73, 74, 75, 76, 77, -1, -1, 80, - 81, 82, 83, 84, 85, -1, -1, -1, -1, -1, + 8, -1, -1, 11, 12, 13, -1, -1, -1, -1, + -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, + -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, + -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, + -1, -1, -1, 51, -1, 53, -1, -1, 56, -1, + -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, + -1, 69, -1, 71, -1, 73, -1, 75, -1, -1, + -1, -1, 80, 81, 82, -1, -1, -1, 86, -1, + -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, + 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, + -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, + -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, + -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, + 51, -1, 53, -1, -1, 56, -1, -1, 59, -1, + -1, -1, -1, -1, 65, 66, 67, -1, 69, -1, + 71, -1, 73, -1, 75, -1, -1, -1, -1, 80, + 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, + -1, -1, -1, -1, 4, 5, 6, -1, -1, 9, + 10, 11, -1, -1, 14, -1, 16, -1, -1, -1, + 20, 21, 22, -1, -1, -1, -1, -1, -1, 29, + 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + -1, -1, -1, -1, -1, -1, 66, 67, 68, 69, + 70, -1, 72, 73, 74, 75, 76, 77, -1, -1, + 80, 81, 82, 83, 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, -1, -1, 9, 10, 11, -1, -1, 14, -1, 16, -1, -1, -1, 20, 21, 22, -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, 47, -1, - -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, 75, 76, 77, -1, -1, 80, 81, 82, 83, 84, 85, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4, 5, 6, -1, + -1, 9, 10, 11, -1, -1, 14, -1, 16, -1, + -1, -1, 20, 21, 22, -1, -1, -1, -1, -1, + -1, 29, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 43, -1, -1, -1, 47, + -1, -1, -1, -1, -1, -1, -1, 55, -1, -1, + -1, 59, -1, -1, -1, -1, -1, 65, 66, 67, + 68, 69, 70, -1, 72, 73, 74, 75, 76, 77, + -1, -1, 80, 81, 82, 83, 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, 9, -1, 11, 12, 13, 14, -1, -1, -1, -1, -1, -1, 21, 22, -1, -1, -1, -1, @@ -830,81 +798,79 @@ const int QmlJSGrammar::action_check [] = { -1, -1, 59, -1, 61, -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, 80, 81, 82, 83, 84, -1, 86, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, - -1, -1, -1, -1, 9, -1, 11, 12, 13, 14, - -1, -1, -1, -1, -1, -1, 21, 22, -1, -1, - -1, -1, -1, -1, 29, 30, -1, -1, 33, 34, + -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, + -1, -1, -1, 9, -1, 11, 12, 13, 14, -1, + -1, -1, -1, -1, -1, 21, 22, -1, -1, -1, + -1, -1, -1, 29, 30, -1, -1, 33, 34, -1, + 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, + -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, + -1, -1, -1, 59, -1, 61, -1, -1, -1, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, -1, -1, 80, 81, 82, 83, 84, -1, + 86, -1, -1, -1, -1, -1, -1, -1, -1, 4, + 5, 6, -1, -1, 9, 10, 11, 12, 13, 14, + -1, 16, -1, -1, -1, 20, 21, 22, -1, -1, + -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, -1, -1, -1, 59, -1, 61, -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, 80, 81, 82, 83, 84, - -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4, 5, 6, -1, -1, 9, 10, 11, 12, - 13, 14, -1, 16, -1, -1, -1, 20, 21, 22, - -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, - 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, - 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, - 53, -1, -1, -1, -1, -1, 59, -1, 61, -1, - -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, -1, -1, 80, 81, 82, - 83, 84, 85, 86, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 4, 5, 6, -1, -1, 9, 10, - 11, 12, 13, 14, -1, 16, -1, -1, -1, 20, - 21, 22, -1, -1, -1, -1, -1, -1, 29, 30, - 31, 32, 33, 34, -1, 36, -1, -1, -1, 40, - -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, - 51, -1, 53, -1, 55, -1, -1, -1, 59, -1, - 61, -1, -1, -1, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, -1, -1, 80, - 81, 82, 83, 84, 85, 86, -1, -1, -1, -1, - -1, -1, -1, -1, -1, + 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, + 4, 5, 6, -1, -1, 9, 10, 11, 12, 13, + 14, -1, 16, -1, -1, -1, 20, 21, 22, -1, + -1, -1, -1, -1, -1, 29, 30, 31, 32, 33, + 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, + 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, + -1, 55, -1, -1, -1, 59, -1, 61, -1, -1, + -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, -1, -1, 80, 81, 82, 83, + 84, 85, 86, -1, -1, -1, -1, -1, -1, -1, + -1, - 6, 22, 2, 11, 9, 3, 2, 36, 3, 26, - 3, 3, 9, 3, 97, 9, 3, 36, 9, 22, - 2, 37, 3, 11, 9, 14, 9, 3, 68, 9, - 2, 9, 3, 2, 36, 9, 22, 21, 3, 9, - 3, 9, 9, 2, 2, 11, 3, 9, 2, 26, - 3, 26, 2, 9, 9, 3, 82, 36, 9, 3, - 82, 22, 3, 36, 2, 2, 9, 2, 8, 3, - 3, 2, 36, 9, 3, 3, 36, 9, 2, 9, - 22, 94, 9, 2, 36, 2, 9, 36, 99, 36, - 36, 36, 2, 2, -1, 9, -1, 9, 12, -1, - -1, 3, 2, -1, -1, -1, 45, 32, 47, -1, - 9, 36, -1, 9, 10, -1, -1, 39, 36, 45, - 42, 47, 9, 41, 45, 45, 47, 47, 39, 45, - 45, 42, 45, 39, 50, 50, 42, 50, 45, 3, - 45, 45, 45, 50, 47, 50, 50, 45, 45, 47, - 47, 45, 9, 45, 3, 45, 45, 45, 50, 16, - 50, 45, 51, 51, 45, 59, 45, 69, 45, 53, - 51, 50, 49, 45, 86, 45, 45, 45, 9, 3, - 45, 49, 45, 55, 49, 16, -1, 57, 51, 88, - 45, 101, 61, 45, 45, 50, -1, 106, 50, 50, - 45, 45, 47, 47, 45, 69, 47, 45, 45, 47, - 47, 36, 45, 100, 47, 45, 41, 47, 45, -1, - 69, 48, 45, 45, 47, 45, 48, 47, 9, 45, - 45, 12, 45, 14, 50, 50, 9, 50, -1, -1, - 9, 45, 15, 16, 60, 69, 50, 16, 45, 62, - 45, 45, 67, 50, 45, 50, 50, 52, -1, 50, - 54, 52, 45, 67, -1, -1, -1, 50, -1, 38, - 67, 9, -1, 56, 12, 45, -1, 45, 45, -1, - 50, 45, 50, 50, 52, 45, 50, 9, 10, -1, - 50, 3, 52, -1, 58, 9, 10, 67, -1, -1, - 67, -1, -1, -1, -1, 19, -1, 29, 30, -1, - 22, 23, 24, 25, -1, 29, 30, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 9, 9, 3, 9, 9, 8, 30, 3, 63, 16, + 9, 2, 2, 15, 9, 2, 30, 9, 3, 3, + 9, 3, 20, 20, 3, 2, 30, 2, 16, 9, + 3, 31, 77, 9, 20, 9, 30, 30, 9, 9, + 3, 3, 2, 2, 9, 3, 3, 2, 92, 3, + 2, 2, 30, 9, 2, 89, 77, 2, 30, 9, + 9, 30, 94, 16, 2, 9, 30, 3, 3, 16, + 9, 3, 3, 2, 16, 3, 2, -1, 3, 9, + 3, 3, 9, 2, 30, 2, -1, 30, -1, 30, + -1, -1, -1, 9, 9, 11, 2, 9, -1, -1, + 40, 3, 9, 40, 2, 45, 40, 40, 42, 42, + -1, 3, -1, -1, 34, 52, 40, 37, 9, 40, + 32, 45, 40, 9, 45, 11, 40, 45, 42, 40, + 40, 42, 40, 9, 42, 45, 40, 40, 42, 42, + 40, 40, 42, 40, 40, 42, 45, 40, 44, 42, + 40, 40, 40, 40, 44, 44, 40, 45, 45, 40, + 40, 45, 64, 26, 45, 40, 40, 30, 40, 3, + 50, 45, 64, 45, 40, 40, 83, 43, 43, -1, + 40, 56, 42, 40, 40, 42, 42, 40, 34, 42, + 30, 37, 40, 40, 42, 101, 36, 40, 96, 46, + 3, 40, 40, 42, 95, 81, -1, 40, 46, 40, + 40, 54, 42, 46, 40, 46, 40, 30, 42, 9, + 40, 40, 48, 36, 40, 45, 45, -1, -1, 45, + 64, 9, 40, 11, 40, 55, -1, 45, 57, 45, + -1, -1, 32, 33, 40, 51, 62, -1, 40, 45, + -1, 40, 30, 45, 62, 47, 45, 9, 10, -1, + 40, 64, -1, 40, 53, 45, 62, 40, 45, 49, + 40, 40, 45, -1, 40, 45, 45, 47, 47, 45, + -1, 47, 9, 10, -1, 62, 13, 3, -1, 62, + -1, -1, -1, -1, -1, -1, 23, 24, -1, -1, + 16, 17, 18, 19, -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, - 9, -1, -1, 12, 13, -1, -1, -1, -1, -1, + -1, 9, 10, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 23, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 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}; diff --git a/src/declarative/qml/parser/qmljsgrammar_p.h b/src/declarative/qml/parser/qmljsgrammar_p.h index 7ffda6a..c760564 100644 --- a/src/declarative/qml/parser/qmljsgrammar_p.h +++ b/src/declarative/qml/parser/qmljsgrammar_p.h @@ -59,13 +59,12 @@ class QmlJSGrammar public: enum { EOF_SYMBOL = 0, - REDUCE_HERE = 95, - SHIFT_THERE = 94, + REDUCE_HERE = 94, + SHIFT_THERE = 93, T_AND = 1, T_AND_AND = 2, T_AND_EQ = 3, - T_AS = 90, - T_AT = 87, + T_AS = 89, T_AUTOMATIC_SEMICOLON = 62, T_BREAK = 4, T_CASE = 5, @@ -86,9 +85,9 @@ public: T_EQ_EQ = 18, T_EQ_EQ_EQ = 19, T_FALSE = 82, - T_FEED_JS_EXPRESSION = 93, - T_FEED_JS_STATEMENT = 92, - T_FEED_UI_PROGRAM = 91, + T_FEED_JS_EXPRESSION = 92, + T_FEED_JS_STATEMENT = 91, + T_FEED_UI_PROGRAM = 90, T_FINALLY = 20, T_FOR = 21, T_FUNCTION = 22, @@ -100,7 +99,7 @@ public: T_GT_GT_GT_EQ = 28, T_IDENTIFIER = 29, T_IF = 30, - T_IMPORT = 89, + T_IMPORT = 88, T_IN = 31, T_INSTANCEOF = 32, T_LBRACE = 33, @@ -127,7 +126,7 @@ public: T_PLUS_EQ = 52, T_PLUS_PLUS = 53, T_PROPERTY = 66, - T_PUBLIC = 88, + T_PUBLIC = 87, T_QUESTION = 54, T_RBRACE = 55, T_RBRACKET = 56, @@ -155,15 +154,15 @@ public: T_XOR = 78, T_XOR_EQ = 79, - ACCEPT_STATE = 634, - RULE_COUNT = 348, - STATE_COUNT = 635, - TERMINAL_COUNT = 96, - NON_TERMINAL_COUNT = 108, + ACCEPT_STATE = 616, + RULE_COUNT = 337, + STATE_COUNT = 617, + TERMINAL_COUNT = 95, + NON_TERMINAL_COUNT = 103, - GOTO_INDEX_OFFSET = 635, - GOTO_INFO_OFFSET = 2345, - GOTO_CHECK_OFFSET = 2345 + GOTO_INDEX_OFFSET = 617, + GOTO_INFO_OFFSET = 2231, + GOTO_CHECK_OFFSET = 2231 }; static const char *const spell []; diff --git a/src/declarative/qml/parser/qmljslexer.cpp b/src/declarative/qml/parser/qmljslexer.cpp index 0756f10..a22169d 100644 --- a/src/declarative/qml/parser/qmljslexer.cpp +++ b/src/declarative/qml/parser/qmljslexer.cpp @@ -1038,7 +1038,6 @@ int Lexer::matchPunctuator(ushort c1, ushort c2, case '[': shift(1); return QmlJSGrammar::T_LBRACKET; case ']': shift(1); return QmlJSGrammar::T_RBRACKET; case ';': shift(1); return QmlJSGrammar::T_SEMICOLON; - case '@': shift(1); return QmlJSGrammar::T_AT; default: return -1; } diff --git a/src/declarative/qml/parser/qmljsparser.cpp b/src/declarative/qml/parser/qmljsparser.cpp index 93f9fda..a1236d5 100644 --- a/src/declarative/qml/parser/qmljsparser.cpp +++ b/src/declarative/qml/parser/qmljsparser.cpp @@ -292,100 +292,51 @@ case 20: { } break; case 21: { - sym(1).Node = makeAstNode (driver->nodePool(), - sym(1).UiAttributeList, sym(2).UiObjectMember); + sym(1).Node = makeAstNode (driver->nodePool(), sym(1).UiObjectMember); } break; -case 23: { - sym(1).UiAttributeList = sym(1).UiAttributeList->finish(); -} break; - -case 24: { - sym(1).UiAttributeList = makeAstNode(driver->nodePool(), sym(1).UiAttribute); -} break; - -case 25: { - sym(1).UiAttributeList = makeAstNode(driver->nodePool(), - sym(1).UiAttributeList, sym(2).UiAttribute); -} break; - -case 28: { - AST::UiAttribute *ast = makeAstNode(driver->nodePool(), sym(2).sval); - ast->atToken = loc(1); - ast->nameToken = loc(2); - sym(1).UiAttribute = ast; -} break; - -case 29: { - AST::UiAttribute *ast = makeAstNode(driver->nodePool(), - sym(2).sval, sym(4).Expression); - ast->atToken = loc(1); - ast->nameToken = loc(2); - ast->equalToken = loc(3); - sym(1).UiAttribute = ast; -} break; - -case 30: { - AST::IdentifierExpression *node = makeAstNode (driver->nodePool(), sym(1).sval); - node->identifierToken = loc(1); - sym(1).Node = node; -} break; - -case 31: { - AST::NumericLiteral *node = makeAstNode (driver->nodePool(), sym(1).dval, lexer->flags); - node->literalToken = loc(1); - sym(1).Node = node; -} break; - -case 32: { - sym(1).Node = makeAstNode (driver->nodePool(), - sym(1).UiAttributeList, sym(2).UiObjectMember); +case 22: { + sym(1).Node = makeAstNode (driver->nodePool(), sym(1).UiObjectMember); } break; -case 33: { +case 23: { AST::UiObjectMemberList *node = makeAstNode (driver->nodePool(), - sym(1).UiObjectMemberList, sym(2).UiAttributeList, sym(3).UiObjectMember); + sym(1).UiObjectMemberList, sym(2).UiObjectMember); sym(1).Node = node; } break; -case 34: { +case 24: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).UiObjectMember); } break; -case 35: { - sym(2).UiObjectMember->attributes = sym(1).UiAttributeList->finish(); - sym(1).Node = makeAstNode (driver->nodePool(), sym(2).UiObjectMember); -} break; - -case 36: { - sym(4).UiObjectMember->attributes = sym(3).UiAttributeList; +case 25: { AST::UiArrayMemberList *node = makeAstNode (driver->nodePool(), sym(1).UiArrayMemberList, sym(3).UiObjectMember); node->commaToken = loc(2); sym(1).Node = node; } break; -case 37: { +case 26: { AST::UiObjectInitializer *node = makeAstNode (driver->nodePool(), (AST::UiObjectMemberList*)0); node->lbraceToken = loc(1); node->rbraceToken = loc(2); sym(1).Node = node; } break; -case 38: { +case 27: { AST::UiObjectInitializer *node = makeAstNode (driver->nodePool(), sym(2).UiObjectMemberList->finish()); node->lbraceToken = loc(1); node->rbraceToken = loc(3); sym(1).Node = node; } break; -case 39: { +case 28: { AST::UiObjectDefinition *node = makeAstNode (driver->nodePool(), sym(1).UiQualifiedId->finish(), sym(2).UiObjectInitializer); sym(1).Node = node; } break; -case 41: { +case 30: { AST::UiArrayBinding *node = makeAstNode (driver->nodePool(), sym(1).UiQualifiedId->finish(), sym(4).UiArrayMemberList->finish()); node->colonToken = loc(2); @@ -394,7 +345,7 @@ case 41: { sym(1).Node = node; } break; -case 42: { +case 31: { if (AST::UiQualifiedId *qualifiedId = reparseAsQualifiedId(sym(3).Expression)) { AST::UiObjectBinding *node = makeAstNode (driver->nodePool(), sym(1).UiQualifiedId->finish(), qualifiedId, sym(4).UiObjectInitializer); @@ -409,7 +360,7 @@ case 42: { return false; // ### recover } } break; -case 43:case 44:case 45:case 46: +case 32:case 33:case 34:case 35: { AST::UiScriptBinding *node = makeAstNode (driver->nodePool(), sym(1).UiQualifiedId->finish(), sym(3).Statement); @@ -417,35 +368,35 @@ case 43:case 44:case 45:case 46: sym(1).Node = node; } break; -case 47: +case 36: -case 48: { +case 37: { sym(1).sval = driver->intern(lexer->characterBuffer(), lexer->characterCount()); break; } -case 50: { +case 39: { sym(1).Node = 0; } break; -case 51: { +case 40: { sym(1).Node = sym(1).UiParameterList->finish (); } break; -case 52: { +case 41: { AST::UiParameterList *node = makeAstNode (driver->nodePool(), sym(1).sval, sym(2).sval); node->identifierToken = loc(2); sym(1).Node = node; } break; -case 53: { +case 42: { AST::UiParameterList *node = makeAstNode (driver->nodePool(), sym(1).UiParameterList, sym(3).sval, sym(4).sval); node->commaToken = loc(2); node->identifierToken = loc(4); sym(1).Node = node; } break; -case 54: { +case 43: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), (NameId *)0, sym(2).sval); node->type = AST::UiPublicMember::Signal; node->propertyToken = loc(1); @@ -455,7 +406,7 @@ case 54: { sym(1).Node = node; } break; -case 55: { +case 44: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), (NameId *)0, sym(2).sval); node->type = AST::UiPublicMember::Signal; node->propertyToken = loc(1); @@ -464,7 +415,7 @@ case 55: { sym(1).Node = node; } break; -case 57: { +case 46: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), sym(2).sval, sym(3).sval); node->propertyToken = loc(1); node->typeToken = loc(2); @@ -473,7 +424,7 @@ case 57: { sym(1).Node = node; } break; -case 59: { +case 48: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), sym(3).sval, sym(4).sval); node->isDefaultMember = true; node->defaultToken = loc(1); @@ -484,7 +435,7 @@ case 59: { sym(1).Node = node; } break; -case 61: { +case 50: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), sym(2).sval, sym(3).sval, sym(5).Expression); node->propertyToken = loc(1); @@ -495,7 +446,7 @@ case 61: { sym(1).Node = node; } break; -case 63: { +case 52: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), sym(3).sval, sym(4).sval, sym(6).Expression); node->isDefaultMember = true; @@ -508,76 +459,76 @@ case 63: { sym(1).Node = node; } break; -case 64: { +case 53: { sym(1).Node = makeAstNode(driver->nodePool(), sym(1).Node); } break; -case 65: { +case 54: { sym(1).Node = makeAstNode(driver->nodePool(), sym(1).Node); } break; -case 66: -case 67: +case 55: +case 56: { AST::UiQualifiedId *node = makeAstNode (driver->nodePool(), driver->intern(lexer->characterBuffer(), lexer->characterCount())); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 69: { +case 58: { QString s = QLatin1String(QmlJSGrammar::spell[T_PROPERTY]); sym(1).sval = driver->intern(s.constData(), s.length()); break; } -case 70: { +case 59: { QString s = QLatin1String(QmlJSGrammar::spell[T_SIGNAL]); sym(1).sval = driver->intern(s.constData(), s.length()); break; } -case 71: { +case 60: { AST::ThisExpression *node = makeAstNode (driver->nodePool()); node->thisToken = loc(1); sym(1).Node = node; } break; -case 72: { +case 61: { AST::IdentifierExpression *node = makeAstNode (driver->nodePool(), sym(1).sval); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 73: { +case 62: { AST::NullExpression *node = makeAstNode (driver->nodePool()); node->nullToken = loc(1); sym(1).Node = node; } break; -case 74: { +case 63: { AST::TrueLiteral *node = makeAstNode (driver->nodePool()); node->trueToken = loc(1); sym(1).Node = node; } break; -case 75: { +case 64: { AST::FalseLiteral *node = makeAstNode (driver->nodePool()); node->falseToken = loc(1); sym(1).Node = node; } break; -case 76: { +case 65: { AST::NumericLiteral *node = makeAstNode (driver->nodePool(), sym(1).dval, lexer->flags); node->literalToken = loc(1); sym(1).Node = node; } break; -case 77: -case 78: { +case 66: +case 67: { AST::StringLiteral *node = makeAstNode (driver->nodePool(), sym(1).sval); node->literalToken = loc(1); sym(1).Node = node; } break; -case 79: { +case 68: { bool rx = lexer->scanRegExp(Lexer::NoPrefix); if (!rx) { diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, location(lexer), lexer->errorMessage())); @@ -588,7 +539,7 @@ case 79: { sym(1).Node = node; } break; -case 80: { +case 69: { bool rx = lexer->scanRegExp(Lexer::EqualPrefix); if (!rx) { diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, location(lexer), lexer->errorMessage())); @@ -599,28 +550,28 @@ case 80: { sym(1).Node = node; } break; -case 81: { +case 70: { AST::ArrayLiteral *node = makeAstNode (driver->nodePool(), (AST::Elision *) 0); node->lbracketToken = loc(1); node->rbracketToken = loc(2); sym(1).Node = node; } break; -case 82: { +case 71: { AST::ArrayLiteral *node = makeAstNode (driver->nodePool(), sym(2).Elision->finish()); node->lbracketToken = loc(1); node->rbracketToken = loc(3); sym(1).Node = node; } break; -case 83: { +case 72: { AST::ArrayLiteral *node = makeAstNode (driver->nodePool(), sym(2).ElementList->finish ()); node->lbracketToken = loc(1); node->rbracketToken = loc(3); sym(1).Node = node; } break; -case 84: { +case 73: { AST::ArrayLiteral *node = makeAstNode (driver->nodePool(), sym(2).ElementList->finish (), (AST::Elision *) 0); node->lbracketToken = loc(1); @@ -629,7 +580,7 @@ case 84: { sym(1).Node = node; } break; -case 85: { +case 74: { AST::ArrayLiteral *node = makeAstNode (driver->nodePool(), sym(2).ElementList->finish (), sym(4).Elision->finish()); node->lbracketToken = loc(1); @@ -638,7 +589,7 @@ case 85: { sym(1).Node = node; } break; -case 86: { +case 75: { AST::ObjectLiteral *node = 0; if (sym(2).Node) node = makeAstNode (driver->nodePool(), @@ -650,7 +601,7 @@ case 86: { sym(1).Node = node; } break; -case 87: { +case 76: { AST::ObjectLiteral *node = makeAstNode (driver->nodePool(), sym(2).PropertyNameAndValueList->finish ()); node->lbraceToken = loc(1); @@ -658,67 +609,67 @@ case 87: { sym(1).Node = node; } break; -case 88: { +case 77: { AST::NestedExpression *node = makeAstNode(driver->nodePool(), sym(2).Expression); node->lparenToken = loc(1); node->rparenToken = loc(3); sym(1).Node = node; } break; -case 89: { +case 78: { AST::UiQualifiedId *node = makeAstNode (driver->nodePool(), sym(1).sval); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 90: { +case 79: { AST::UiQualifiedId *node = makeAstNode (driver->nodePool(), sym(1).UiQualifiedId, sym(3).sval); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 91: { +case 80: { sym(1).Node = makeAstNode (driver->nodePool(), (AST::Elision *) 0, sym(1).Expression); } break; -case 92: { +case 81: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).Elision->finish(), sym(2).Expression); } break; -case 93: { +case 82: { AST::ElementList *node = makeAstNode (driver->nodePool(), sym(1).ElementList, (AST::Elision *) 0, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 94: { +case 83: { AST::ElementList *node = makeAstNode (driver->nodePool(), sym(1).ElementList, sym(3).Elision->finish(), sym(4).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 95: { +case 84: { AST::Elision *node = makeAstNode (driver->nodePool()); node->commaToken = loc(1); sym(1).Node = node; } break; -case 96: { +case 85: { AST::Elision *node = makeAstNode (driver->nodePool(), sym(1).Elision); node->commaToken = loc(2); sym(1).Node = node; } break; -case 97: { +case 86: { AST::PropertyNameAndValueList *node = makeAstNode (driver->nodePool(), sym(1).PropertyName, sym(3).Expression); node->colonToken = loc(2); sym(1).Node = node; } break; -case 98: { +case 87: { AST::PropertyNameAndValueList *node = makeAstNode (driver->nodePool(), sym(1).PropertyNameAndValueList, sym(3).PropertyName, sym(5).Expression); node->commaToken = loc(2); @@ -726,36 +677,58 @@ case 98: { sym(1).Node = node; } break; -case 99: { +case 88: { AST::IdentifierPropertyName *node = makeAstNode (driver->nodePool(), sym(1).sval); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 100: -case 101: { +case 89: +case 90: { AST::IdentifierPropertyName *node = makeAstNode (driver->nodePool(), driver->intern(lexer->characterBuffer(), lexer->characterCount())); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 102: { +case 91: { AST::StringLiteralPropertyName *node = makeAstNode (driver->nodePool(), sym(1).sval); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 103: { +case 92: { AST::NumericLiteralPropertyName *node = makeAstNode (driver->nodePool(), sym(1).dval); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 104: { +case 93: { AST::IdentifierPropertyName *node = makeAstNode (driver->nodePool(), sym(1).sval); node->propertyNameToken = loc(1); sym(1).Node = node; } break; +case 94: + +case 95: + +case 96: + +case 97: + +case 98: + +case 99: + +case 100: + +case 101: + +case 102: + +case 103: + +case 104: + case 105: case 106: @@ -795,47 +768,25 @@ case 122: case 123: case 124: - -case 125: - -case 126: - -case 127: - -case 128: - -case 129: - -case 130: - -case 131: - -case 132: - -case 133: - -case 134: - -case 135: { sym(1).sval = driver->intern(lexer->characterBuffer(), lexer->characterCount()); } break; -case 140: { +case 129: { AST::ArrayMemberExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).Expression); node->lbracketToken = loc(2); node->rbracketToken = loc(4); sym(1).Node = node; } break; -case 141: { +case 130: { AST::FieldMemberExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).sval); node->dotToken = loc(2); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 142: { +case 131: { AST::NewMemberExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression, sym(4).ArgumentList); node->newToken = loc(1); node->lparenToken = loc(3); @@ -843,384 +794,384 @@ case 142: { sym(1).Node = node; } break; -case 144: { +case 133: { AST::NewExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->newToken = loc(1); sym(1).Node = node; } break; -case 145: { +case 134: { AST::CallExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).ArgumentList); node->lparenToken = loc(2); node->rparenToken = loc(4); sym(1).Node = node; } break; -case 146: { +case 135: { AST::CallExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).ArgumentList); node->lparenToken = loc(2); node->rparenToken = loc(4); sym(1).Node = node; } break; -case 147: { +case 136: { AST::ArrayMemberExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).Expression); node->lbracketToken = loc(2); node->rbracketToken = loc(4); sym(1).Node = node; } break; -case 148: { +case 137: { AST::FieldMemberExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).sval); node->dotToken = loc(2); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 149: { +case 138: { sym(1).Node = 0; } break; -case 150: { +case 139: { sym(1).Node = sym(1).ArgumentList->finish(); } break; -case 151: { +case 140: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).Expression); } break; -case 152: { +case 141: { AST::ArgumentList *node = makeAstNode (driver->nodePool(), sym(1).ArgumentList, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 156: { +case 145: { AST::PostIncrementExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression); node->incrementToken = loc(2); sym(1).Node = node; } break; -case 157: { +case 146: { AST::PostDecrementExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression); node->decrementToken = loc(2); sym(1).Node = node; } break; -case 159: { +case 148: { AST::DeleteExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->deleteToken = loc(1); sym(1).Node = node; } break; -case 160: { +case 149: { AST::VoidExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->voidToken = loc(1); sym(1).Node = node; } break; -case 161: { +case 150: { AST::TypeOfExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->typeofToken = loc(1); sym(1).Node = node; } break; -case 162: { +case 151: { AST::PreIncrementExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->incrementToken = loc(1); sym(1).Node = node; } break; -case 163: { +case 152: { AST::PreDecrementExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->decrementToken = loc(1); sym(1).Node = node; } break; -case 164: { +case 153: { AST::UnaryPlusExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->plusToken = loc(1); sym(1).Node = node; } break; -case 165: { +case 154: { AST::UnaryMinusExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->minusToken = loc(1); sym(1).Node = node; } break; -case 166: { +case 155: { AST::TildeExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->tildeToken = loc(1); sym(1).Node = node; } break; -case 167: { +case 156: { AST::NotExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->notToken = loc(1); sym(1).Node = node; } break; -case 169: { +case 158: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Mul, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 170: { +case 159: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Div, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 171: { +case 160: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Mod, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 173: { +case 162: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Add, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 174: { +case 163: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Sub, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 176: { +case 165: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::LShift, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 177: { +case 166: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::RShift, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 178: { +case 167: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::URShift, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 180: { +case 169: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Lt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 181: { +case 170: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Gt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 182: { +case 171: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Le, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 183: { +case 172: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Ge, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 184: { +case 173: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::InstanceOf, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 185: { +case 174: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::In, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 187: { +case 176: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Lt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 188: { +case 177: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Gt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 189: { +case 178: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Le, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 190: { +case 179: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Ge, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 191: { +case 180: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::InstanceOf, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 193: { +case 182: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Equal, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 194: { +case 183: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::NotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 195: { +case 184: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::StrictEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 196: { +case 185: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::StrictNotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 198: { +case 187: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Equal, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 199: { +case 188: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::NotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 200: { +case 189: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::StrictEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 201: { +case 190: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::StrictNotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 203: { +case 192: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::BitAnd, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 205: { +case 194: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::BitAnd, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 207: { +case 196: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::BitXor, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 209: { +case 198: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::BitXor, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 211: { +case 200: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::BitOr, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 213: { +case 202: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::BitOr, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 215: { +case 204: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::And, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 217: { +case 206: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::And, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 219: { +case 208: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Or, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 221: { +case 210: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Or, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 223: { +case 212: { AST::ConditionalExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).Expression, sym(5).Expression); node->questionToken = loc(2); @@ -1228,7 +1179,7 @@ case 223: { sym(1).Node = node; } break; -case 225: { +case 214: { AST::ConditionalExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).Expression, sym(5).Expression); node->questionToken = loc(2); @@ -1236,112 +1187,112 @@ case 225: { sym(1).Node = node; } break; -case 227: { +case 216: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(2).ival, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 229: { +case 218: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(2).ival, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 230: { +case 219: { sym(1).ival = QSOperator::Assign; } break; -case 231: { +case 220: { sym(1).ival = QSOperator::InplaceMul; } break; -case 232: { +case 221: { sym(1).ival = QSOperator::InplaceDiv; } break; -case 233: { +case 222: { sym(1).ival = QSOperator::InplaceMod; } break; -case 234: { +case 223: { sym(1).ival = QSOperator::InplaceAdd; } break; -case 235: { +case 224: { sym(1).ival = QSOperator::InplaceSub; } break; -case 236: { +case 225: { sym(1).ival = QSOperator::InplaceLeftShift; } break; -case 237: { +case 226: { sym(1).ival = QSOperator::InplaceRightShift; } break; -case 238: { +case 227: { sym(1).ival = QSOperator::InplaceURightShift; } break; -case 239: { +case 228: { sym(1).ival = QSOperator::InplaceAnd; } break; -case 240: { +case 229: { sym(1).ival = QSOperator::InplaceXor; } break; -case 241: { +case 230: { sym(1).ival = QSOperator::InplaceOr; } break; -case 243: { +case 232: { AST::Expression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 244: { +case 233: { sym(1).Node = 0; } break; -case 247: { +case 236: { AST::Expression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 248: { +case 237: { sym(1).Node = 0; } break; -case 265: { +case 254: { AST::Block *node = makeAstNode (driver->nodePool(), sym(2).StatementList); node->lbraceToken = loc(1); node->rbraceToken = loc(3); sym(1).Node = node; } break; -case 266: { +case 255: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).Statement); } break; -case 267: { +case 256: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).StatementList, sym(2).Statement); } break; -case 268: { +case 257: { sym(1).Node = 0; } break; -case 269: { +case 258: { sym(1).Node = sym(1).StatementList->finish (); } break; -case 271: { +case 260: { AST::VariableStatement *node = makeAstNode (driver->nodePool(), sym(2).VariableDeclarationList->finish (/*readOnly=*/sym(1).ival == T_CONST)); node->declarationKindToken = loc(1); @@ -1349,76 +1300,76 @@ case 271: { sym(1).Node = node; } break; -case 272: { +case 261: { sym(1).ival = T_CONST; } break; -case 273: { +case 262: { sym(1).ival = T_VAR; } break; -case 274: { +case 263: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).VariableDeclaration); } break; -case 275: { +case 264: { AST::VariableDeclarationList *node = makeAstNode (driver->nodePool(), sym(1).VariableDeclarationList, sym(3).VariableDeclaration); node->commaToken = loc(2); sym(1).Node = node; } break; -case 276: { +case 265: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).VariableDeclaration); } break; -case 277: { +case 266: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).VariableDeclarationList, sym(3).VariableDeclaration); } break; -case 278: { +case 267: { AST::VariableDeclaration *node = makeAstNode (driver->nodePool(), sym(1).sval, sym(2).Expression); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 279: { +case 268: { AST::VariableDeclaration *node = makeAstNode (driver->nodePool(), sym(1).sval, sym(2).Expression); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 280: { +case 269: { // ### TODO: AST for initializer sym(1) = sym(2); } break; -case 281: { +case 270: { sym(1).Node = 0; } break; -case 283: { +case 272: { // ### TODO: AST for initializer sym(1) = sym(2); } break; -case 284: { +case 273: { sym(1).Node = 0; } break; -case 286: { +case 275: { AST::EmptyStatement *node = makeAstNode (driver->nodePool()); node->semicolonToken = loc(1); sym(1).Node = node; } break; -case 288: { +case 277: { AST::ExpressionStatement *node = makeAstNode (driver->nodePool(), sym(1).Expression); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 289: { +case 278: { AST::IfStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).Statement, sym(7).Statement); node->ifToken = loc(1); node->lparenToken = loc(2); @@ -1427,7 +1378,7 @@ case 289: { sym(1).Node = node; } break; -case 290: { +case 279: { AST::IfStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).Statement); node->ifToken = loc(1); node->lparenToken = loc(2); @@ -1435,7 +1386,7 @@ case 290: { sym(1).Node = node; } break; -case 292: { +case 281: { AST::DoWhileStatement *node = makeAstNode (driver->nodePool(), sym(2).Statement, sym(5).Expression); node->doToken = loc(1); node->whileToken = loc(3); @@ -1445,7 +1396,7 @@ case 292: { sym(1).Node = node; } break; -case 293: { +case 282: { AST::WhileStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).Statement); node->whileToken = loc(1); node->lparenToken = loc(2); @@ -1453,7 +1404,7 @@ case 293: { sym(1).Node = node; } break; -case 294: { +case 283: { AST::ForStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).Expression, sym(7).Expression, sym(9).Statement); node->forToken = loc(1); @@ -1464,7 +1415,7 @@ case 294: { sym(1).Node = node; } break; -case 295: { +case 284: { AST::LocalForStatement *node = makeAstNode (driver->nodePool(), sym(4).VariableDeclarationList->finish (/*readOnly=*/false), sym(6).Expression, sym(8).Expression, sym(10).Statement); @@ -1477,7 +1428,7 @@ case 295: { sym(1).Node = node; } break; -case 296: { +case 285: { AST:: ForEachStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).Expression, sym(7).Statement); node->forToken = loc(1); @@ -1487,7 +1438,7 @@ case 296: { sym(1).Node = node; } break; -case 297: { +case 286: { AST::LocalForEachStatement *node = makeAstNode (driver->nodePool(), sym(4).VariableDeclaration, sym(6).Expression, sym(8).Statement); node->forToken = loc(1); @@ -1498,14 +1449,14 @@ case 297: { sym(1).Node = node; } break; -case 299: { +case 288: { AST::ContinueStatement *node = makeAstNode (driver->nodePool()); node->continueToken = loc(1); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 301: { +case 290: { AST::ContinueStatement *node = makeAstNode (driver->nodePool(), sym(2).sval); node->continueToken = loc(1); node->identifierToken = loc(2); @@ -1513,14 +1464,14 @@ case 301: { sym(1).Node = node; } break; -case 303: { +case 292: { AST::BreakStatement *node = makeAstNode (driver->nodePool()); node->breakToken = loc(1); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 305: { +case 294: { AST::BreakStatement *node = makeAstNode (driver->nodePool(), sym(2).sval); node->breakToken = loc(1); node->identifierToken = loc(2); @@ -1528,14 +1479,14 @@ case 305: { sym(1).Node = node; } break; -case 307: { +case 296: { AST::ReturnStatement *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->returnToken = loc(1); node->semicolonToken = loc(3); sym(1).Node = node; } break; -case 308: { +case 297: { AST::WithStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).Statement); node->withToken = loc(1); node->lparenToken = loc(2); @@ -1543,7 +1494,7 @@ case 308: { sym(1).Node = node; } break; -case 309: { +case 298: { AST::SwitchStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).CaseBlock); node->switchToken = loc(1); node->lparenToken = loc(2); @@ -1551,90 +1502,90 @@ case 309: { sym(1).Node = node; } break; -case 310: { +case 299: { AST::CaseBlock *node = makeAstNode (driver->nodePool(), sym(2).CaseClauses); node->lbraceToken = loc(1); node->rbraceToken = loc(3); sym(1).Node = node; } break; -case 311: { +case 300: { AST::CaseBlock *node = makeAstNode (driver->nodePool(), sym(2).CaseClauses, sym(3).DefaultClause, sym(4).CaseClauses); node->lbraceToken = loc(1); node->rbraceToken = loc(5); sym(1).Node = node; } break; -case 312: { +case 301: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).CaseClause); } break; -case 313: { +case 302: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).CaseClauses, sym(2).CaseClause); } break; -case 314: { +case 303: { sym(1).Node = 0; } break; -case 315: { +case 304: { sym(1).Node = sym(1).CaseClauses->finish (); } break; -case 316: { +case 305: { AST::CaseClause *node = makeAstNode (driver->nodePool(), sym(2).Expression, sym(4).StatementList); node->caseToken = loc(1); node->colonToken = loc(3); sym(1).Node = node; } break; -case 317: { +case 306: { AST::DefaultClause *node = makeAstNode (driver->nodePool(), sym(3).StatementList); node->defaultToken = loc(1); node->colonToken = loc(2); sym(1).Node = node; } break; -case 318: -case 319: { +case 307: +case 308: { AST::LabelledStatement *node = makeAstNode (driver->nodePool(), driver->intern(lexer->characterBuffer(), lexer->characterCount()), sym(3).Statement); node->identifierToken = loc(1); node->colonToken = loc(2); sym(1).Node = node; } break; -case 320: { +case 309: { AST::LabelledStatement *node = makeAstNode (driver->nodePool(), sym(1).sval, sym(3).Statement); node->identifierToken = loc(1); node->colonToken = loc(2); sym(1).Node = node; } break; -case 322: { +case 311: { AST::ThrowStatement *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->throwToken = loc(1); node->semicolonToken = loc(3); sym(1).Node = node; } break; -case 323: { +case 312: { AST::TryStatement *node = makeAstNode (driver->nodePool(), sym(2).Statement, sym(3).Catch); node->tryToken = loc(1); sym(1).Node = node; } break; -case 324: { +case 313: { AST::TryStatement *node = makeAstNode (driver->nodePool(), sym(2).Statement, sym(3).Finally); node->tryToken = loc(1); sym(1).Node = node; } break; -case 325: { +case 314: { AST::TryStatement *node = makeAstNode (driver->nodePool(), sym(2).Statement, sym(3).Catch, sym(4).Finally); node->tryToken = loc(1); sym(1).Node = node; } break; -case 326: { +case 315: { AST::Catch *node = makeAstNode (driver->nodePool(), sym(3).sval, sym(5).Block); node->catchToken = loc(1); node->lparenToken = loc(2); @@ -1643,20 +1594,20 @@ case 326: { sym(1).Node = node; } break; -case 327: { +case 316: { AST::Finally *node = makeAstNode (driver->nodePool(), sym(2).Block); node->finallyToken = loc(1); sym(1).Node = node; } break; -case 329: { +case 318: { AST::DebuggerStatement *node = makeAstNode (driver->nodePool()); node->debuggerToken = loc(1); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 330: { +case 319: { AST::FunctionDeclaration *node = makeAstNode (driver->nodePool(), sym(2).sval, sym(4).FormalParameterList, sym(7).FunctionBody); node->functionToken = loc(1); node->identifierToken = loc(2); @@ -1667,7 +1618,7 @@ case 330: { sym(1).Node = node; } break; -case 331: { +case 320: { AST::FunctionExpression *node = makeAstNode (driver->nodePool(), sym(2).sval, sym(4).FormalParameterList, sym(7).FunctionBody); node->functionToken = loc(1); if (sym(2).sval) @@ -1679,56 +1630,56 @@ case 331: { sym(1).Node = node; } break; -case 332: { +case 321: { AST::FormalParameterList *node = makeAstNode (driver->nodePool(), sym(1).sval); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 333: { +case 322: { AST::FormalParameterList *node = makeAstNode (driver->nodePool(), sym(1).FormalParameterList, sym(3).sval); node->commaToken = loc(2); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 334: { +case 323: { sym(1).Node = 0; } break; -case 335: { +case 324: { sym(1).Node = sym(1).FormalParameterList->finish (); } break; -case 336: { +case 325: { sym(1).Node = 0; } break; -case 338: { +case 327: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).SourceElements->finish ()); } break; -case 339: { +case 328: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).SourceElement); } break; -case 340: { +case 329: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).SourceElements, sym(2).SourceElement); } break; -case 341: { +case 330: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).Statement); } break; -case 342: { +case 331: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).FunctionDeclaration); } break; -case 343: { +case 332: { sym(1).sval = 0; } break; -case 345: { +case 334: { sym(1).Node = 0; } break; diff --git a/src/declarative/qml/parser/qmljsparser_p.h b/src/declarative/qml/parser/qmljsparser_p.h index 74d3c84..6f36484 100644 --- a/src/declarative/qml/parser/qmljsparser_p.h +++ b/src/declarative/qml/parser/qmljsparser_p.h @@ -120,8 +120,6 @@ public: AST::UiObjectMemberList *UiObjectMemberList; AST::UiArrayMemberList *UiArrayMemberList; AST::UiQualifiedId *UiQualifiedId; - AST::UiAttributeList *UiAttributeList; - AST::UiAttribute *UiAttribute; }; public: @@ -221,9 +219,9 @@ protected: -#define J_SCRIPT_REGEXPLITERAL_RULE1 79 +#define J_SCRIPT_REGEXPLITERAL_RULE1 68 -#define J_SCRIPT_REGEXPLITERAL_RULE2 80 +#define J_SCRIPT_REGEXPLITERAL_RULE2 69 QT_END_NAMESPACE -- cgit v0.12 From 60cd50b800b6e6cf185df170c1b2cb41108a82b6 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Fri, 24 Jul 2009 06:15:06 +0200 Subject: Removed support for CSS-like literals. --- src/declarative/qml/parser/qmljs.g | 2 +- src/declarative/qml/parser/qmljsast.cpp | 38 --------------- src/declarative/qml/parser/qmljsast_p.h | 29 ++---------- src/declarative/qml/parser/qmljslexer.cpp | 58 ----------------------- src/declarative/qml/parser/qmljslexer_p.h | 19 -------- src/declarative/qml/parser/qmljsparser.cpp | 2 +- src/declarative/qml/qmlbasicscript.cpp | 75 +++++++++++++++--------------- src/declarative/qml/qmlrewrite.cpp | 53 +-------------------- src/declarative/qml/qmlrewrite_p.h | 15 ------ src/declarative/qml/qmlscriptparser.cpp | 21 +++------ 10 files changed, 49 insertions(+), 263 deletions(-) diff --git a/src/declarative/qml/parser/qmljs.g b/src/declarative/qml/parser/qmljs.g index 20ee27d..5f0fe8f 100644 --- a/src/declarative/qml/parser/qmljs.g +++ b/src/declarative/qml/parser/qmljs.g @@ -1021,7 +1021,7 @@ case $rule_number: { PrimaryExpression: T_NUMERIC_LITERAL ; /. case $rule_number: { - AST::NumericLiteral *node = makeAstNode (driver->nodePool(), sym(1).dval, lexer->flags); + AST::NumericLiteral *node = makeAstNode (driver->nodePool(), sym(1).dval); node->literalToken = loc(1); sym(1).Node = node; } break; diff --git a/src/declarative/qml/parser/qmljsast.cpp b/src/declarative/qml/parser/qmljsast.cpp index d10c071..52f19e2 100644 --- a/src/declarative/qml/parser/qmljsast.cpp +++ b/src/declarative/qml/parser/qmljsast.cpp @@ -49,44 +49,6 @@ QT_BEGIN_NAMESPACE namespace QmlJS { namespace AST { -int NumericLiteral::suffixLength[] = { - 0, // noSuffix - 2, // emSuffix - 2, // exSuffix - 2, // pxSuffix - 2, // cmSuffix - 2, // mmSuffix - 2, // inSuffix - 2, // ptSuffix - 2, // pcSuffix - 3, // degSuffix - 3, // radSuffix - 4, // gradSuffix - 2, // msSuffix - 1, // sSuffix - 2, // hzSuffix - 3 // khzSuffix -}; - -const char *const NumericLiteral::suffixSpell[] = { - "", - "em", - "ex", - "px", - "cm", - "mm", - "in", - "pt", - "pc", - "deg", - "rad", - "grad", - "ms", - "s", - "hz", - "khz" -}; - ExpressionNode *Node::expressionCast() { return 0; diff --git a/src/declarative/qml/parser/qmljsast_p.h b/src/declarative/qml/parser/qmljsast_p.h index 6d269ac..eba9202 100644 --- a/src/declarative/qml/parser/qmljsast_p.h +++ b/src/declarative/qml/parser/qmljsast_p.h @@ -104,7 +104,7 @@ enum Op { } // namespace QSOperator -namespace QmlJS { +namespace QmlJS { class NameId; namespace AST { @@ -400,30 +400,8 @@ class NumericLiteral: public ExpressionNode public: QMLJS_DECLARE_AST_NODE(NumericLiteral) - enum Suffix { // ### keep it in sync with the Suffix enum in qmljslexer_p.h - noSuffix, - emSuffix, - exSuffix, - pxSuffix, - cmSuffix, - mmSuffix, - inSuffix, - ptSuffix, - pcSuffix, - degSuffix, - radSuffix, - gradSuffix, - msSuffix, - sSuffix, - hzSuffix, - khzSuffix - }; - - static int suffixLength[]; - static const char *const suffixSpell[]; - - NumericLiteral(double v, int suffix): - value(v), suffix(suffix) { kind = K; } + NumericLiteral(double v): + value(v) { kind = K; } virtual ~NumericLiteral() {} virtual void accept0(Visitor *visitor); @@ -436,7 +414,6 @@ public: // attributes: double value; - int suffix; SourceLocation literalToken; }; diff --git a/src/declarative/qml/parser/qmljslexer.cpp b/src/declarative/qml/parser/qmljslexer.cpp index a22169d..beb5ebd 100644 --- a/src/declarative/qml/parser/qmljslexer.cpp +++ b/src/declarative/qml/parser/qmljslexer.cpp @@ -755,64 +755,6 @@ int Lexer::lex() bol = false; } - if (state == Number) { - // CSS-style suffix for numeric literals - - flags = noSuffix; - - const ushort c = QChar::toLower(current); - const ushort n1 = QChar::toLower(next1); - const ushort n2 = QChar::toLower(next2); - const ushort n3 = QChar::toLower(next3); - - if (c == 'e' && n1 == 'm') { - flags = emSuffix; - shift(2); - } else if (c == 'e' && n1 == 'x') { - flags = exSuffix; - shift(2); - } else if (c == 'p' && n1 == 'x') { - flags = pxSuffix; - shift(2); - } else if (c == 'c' && n1 == 'm') { - flags = cmSuffix; - shift(2); - } else if (c == 'm' && n1 == 'm') { - flags = mmSuffix; - shift(2); - } else if (c == 'i' && n1 == 'n') { - flags = inSuffix; - shift(2); - } else if (c == 'p' && n1 == 't') { - flags = ptSuffix; - shift(2); - } else if (c == 'p' && n1 == 'c') { - flags = pcSuffix; - shift(1); - } else if (c == 'd' && n1 == 'e' && n2 == 'g') { - flags = degSuffix; - shift(3); - } else if (c == 'r' && n1 == 'a' && n2 == 'd') { - flags = radSuffix; - shift(3); - } else if (c == 'g' && n1 == 'r' && n2 == 'a' && n3 == 'd') { - flags = gradSuffix; - shift(4); - } else if (c == 'm' && n1 == 's') { - flags = msSuffix; - shift(2); - } else if (c == 's') { - flags = sSuffix; - shift(1); - } else if (c == 'h' && n1 == 'z') { - flags = hzSuffix; - shift(2); - } else if (c == 'k' && n1 == 'h' && n2 == 'z') { - flags = khzSuffix; - shift(3); - } - } - // no identifiers allowed directly after numeric literal, e.g. "3in" is bad if ((state == Number || state == Octal || state == Hex) && isIdentLetter(current)) { diff --git a/src/declarative/qml/parser/qmljslexer_p.h b/src/declarative/qml/parser/qmljslexer_p.h index e1ff23e..5817868 100644 --- a/src/declarative/qml/parser/qmljslexer_p.h +++ b/src/declarative/qml/parser/qmljslexer_p.h @@ -112,25 +112,6 @@ public: Other, Bad }; - enum Suffix { - noSuffix, - emSuffix, - exSuffix, - pxSuffix, - cmSuffix, - mmSuffix, - inSuffix, - ptSuffix, - pcSuffix, - degSuffix, - radSuffix, - gradSuffix, - msSuffix, - sSuffix, - hzSuffix, - khzSuffix - }; - enum Error { NoError, IllegalCharacter, diff --git a/src/declarative/qml/parser/qmljsparser.cpp b/src/declarative/qml/parser/qmljsparser.cpp index a1236d5..e64774e 100644 --- a/src/declarative/qml/parser/qmljsparser.cpp +++ b/src/declarative/qml/parser/qmljsparser.cpp @@ -517,7 +517,7 @@ case 64: { } break; case 65: { - AST::NumericLiteral *node = makeAstNode (driver->nodePool(), sym(1).dval, lexer->flags); + AST::NumericLiteral *node = makeAstNode (driver->nodePool(), sym(1).dval); node->literalToken = loc(1); sym(1).Node = node; } break; diff --git a/src/declarative/qml/qmlbasicscript.cpp b/src/declarative/qml/qmlbasicscript.cpp index 073642f..8fcb0e1 100644 --- a/src/declarative/qml/qmlbasicscript.cpp +++ b/src/declarative/qml/qmlbasicscript.cpp @@ -89,7 +89,7 @@ class QmlBasicScriptPrivate { public: enum Flags { OwnData = 0x00000001 }; - + int size; int stateSize; int instructionCount; @@ -102,14 +102,14 @@ public: return (const char *)(instructions() + instructionCount); } - const char *data() const + const char *data() const { return (const char *)(instructions() + instructionCount) + exprLen + 1; } static unsigned int alignRound(int s) { - if (s % 4) + if (s % 4) s += 4 - (s % 4); return s; } @@ -177,10 +177,10 @@ static QVariant fetch_value(QObject *o, int idx, int type) return QVariant(val); } break; - default: + default: { if (QmlMetaType::isObject(type)) { - // NOTE: This assumes a cast to QObject does not alter the + // NOTE: This assumes a cast to QObject does not alter the // object pointer QObject *val = 0; void *args[] = { &val, 0 }; @@ -241,14 +241,14 @@ struct QmlBasicScriptCompiler evaluated using the QmlBasicScript engine. To see if the QmlBasicScript engine can handle a binding, call compile() - and check the return value, or isValid() afterwards. + and check the return value, or isValid() afterwards. To evaluate the binding, the QmlBasicScript instance needs some memory in which to cache state. This may be allocated by calling newScriptState() and destroyed by calling deleteScriptState(). The state data is then passed to the run() method when evaluating the binding. - To further accelerate binding, QmlBasicScript can return a precompiled + To further accelerate binding, QmlBasicScript can return a precompiled version of itself that can be saved for future use. Call compileData() to get an opaque pointer to the compiled state, and compileDataSize() for the size of this data in bytes. This data can be saved and passed to future @@ -271,10 +271,10 @@ QmlBasicScript::QmlBasicScript() previously created QmlBasicScript instance. Any other data will almost certainly cause the QmlBasicScript engine to crash. - \a data must continue to be valid throughout the QmlBasicScript instance + \a data must continue to be valid throughout the QmlBasicScript instance life. It does not assume ownership of the memory. - If \a owner is set, it is referenced on creation and dereferenced on + If \a owner is set, it is referenced on creation and dereferenced on destruction of this instance. */ @@ -407,8 +407,8 @@ bool QmlBasicScript::compile(const Expression &expression) if (bsc.compile(expression.expression.asAST())) { int len = ::strlen(src); flags = QmlBasicScriptPrivate::OwnData; - int size = sizeof(QmlBasicScriptPrivate) + - bsc.bytecode.count() * sizeof(ScriptInstruction) + + int size = sizeof(QmlBasicScriptPrivate) + + bsc.bytecode.count() * sizeof(ScriptInstruction) + QmlBasicScriptPrivate::alignRound(bsc.data.count() + len + 1); d = (QmlBasicScriptPrivate *) malloc(size); d->size = size; @@ -416,10 +416,10 @@ bool QmlBasicScript::compile(const Expression &expression) d->instructionCount = bsc.bytecode.count(); d->exprLen = len; ::memcpy((char *)d->expr(), src, len + 1); - for (int ii = 0; ii < d->instructionCount; ++ii) + for (int ii = 0; ii < d->instructionCount; ++ii) d->instructions()[ii] = bsc.bytecode.at(ii); ::memcpy((char *)d->data(), bsc.data.constData(), bsc.data.count()); - } + } return d != 0; } @@ -431,15 +431,14 @@ bool QmlBasicScriptCompiler::compile(QmlJS::AST::Node *node) bool QmlBasicScriptCompiler::tryConstant(QmlJS::AST::Node *node) { - if (node->kind == AST::Node::Kind_TrueLiteral || + if (node->kind == AST::Node::Kind_TrueLiteral || node->kind == AST::Node::Kind_FalseLiteral) return true; if (node->kind == AST::Node::Kind_NumericLiteral) { AST::NumericLiteral *lit = static_cast(node); - return lit->suffix == AST::NumericLiteral::noSuffix && - double(int(lit->value)) == lit->value; + return double(int(lit->value)) == lit->value; } return false; @@ -469,13 +468,13 @@ bool QmlBasicScriptCompiler::tryName(QmlJS::AST::Node *node) node->kind == AST::Node::Kind_FieldMemberExpression; } -bool QmlBasicScriptCompiler::buildName(QStringList &name, +bool QmlBasicScriptCompiler::buildName(QStringList &name, QmlJS::AST::Node *node) { if (node->kind == AST::Node::Kind_IdentifierExpression) { name << static_cast(node)->name->asString(); } else if (node->kind == AST::Node::Kind_FieldMemberExpression) { - AST::FieldMemberExpression *expr = + AST::FieldMemberExpression *expr = static_cast(node); if (!buildName(name, expr->base)) @@ -499,7 +498,7 @@ QmlBasicScriptCompiler::fetch(int type, const QMetaObject *mo, int idx) if (prop.isConstant()) instr.constant.notify = 0; else - instr.constant.notify = prop.notifySignalIndex(); + instr.constant.notify = prop.notifySignalIndex(); instr.constant.type = prop.userType(); bytecode << instr; return QmlMetaType::metaObjectForType(prop.userType()); @@ -518,7 +517,7 @@ bool QmlBasicScriptCompiler::parseName(AST::Node *node) const QString &name = nameParts.at(ii); // We don't handle signal properties - if (name.length() > 2 && name.startsWith(QLatin1String("on")) && + if (name.length() > 2 && name.startsWith(QLatin1String("on")) && name.at(2).isUpper()) return false; @@ -543,10 +542,10 @@ bool QmlBasicScriptCompiler::parseName(AST::Node *node) d1Idx = component->metaObject()->indexOfProperty(cname); if (d0Idx != -1) { - metaType = fetch(ScriptInstruction::FetchContextConstant, + metaType = fetch(ScriptInstruction::FetchContextConstant, context->metaObject(), d0Idx); } else if(d1Idx != -1) { - metaType = fetch(ScriptInstruction::FetchRootConstant, + metaType = fetch(ScriptInstruction::FetchRootConstant, component->metaObject(), d1Idx); } else { return false; @@ -602,7 +601,7 @@ bool QmlBasicScriptCompiler::compileExpression(QmlJS::AST::Node *node) bool QmlBasicScriptCompiler::tryBinaryExpression(AST::Node *node) { if (node->kind == AST::Node::Kind_BinaryExpression) { - AST::BinaryExpression *expr = + AST::BinaryExpression *expr = static_cast(node); if (expr->op == QSOperator::Equal) @@ -614,7 +613,7 @@ bool QmlBasicScriptCompiler::tryBinaryExpression(AST::Node *node) bool QmlBasicScriptCompiler::compileBinaryExpression(AST::Node *node) { if (node->kind == AST::Node::Kind_BinaryExpression) { - AST::BinaryExpression *expr = + AST::BinaryExpression *expr = static_cast(node); if (!compileExpression(expr->left)) return false; @@ -631,7 +630,7 @@ bool QmlBasicScriptCompiler::compileBinaryExpression(AST::Node *node) bytecode.append(instr); return true; - } + } return false; } @@ -639,7 +638,7 @@ bool QmlBasicScriptCompiler::compileBinaryExpression(AST::Node *node) \enum QmlBasicScript::CacheState \value NoChange The query has not change. Any previous monitoring is still valid. - \value Incremental The query has been incrementally changed. Any previous + \value Incremental The query has been incrementally changed. Any previous monitoring is still valid, but needs to have the fresh properties added to it. \value Reset The entire query has been reset from the beginning. Any previous @@ -647,60 +646,60 @@ bool QmlBasicScriptCompiler::compileBinaryExpression(AST::Node *node) */ /*! - Run the script in \a context and return the result. \a voidCache should - contain state memory previously acquired from newScript. + Run the script in \a context and return the result. \a voidCache should + contain state memory previously acquired from newScript. */ QVariant QmlBasicScript::run(QmlContext *context, void *voidCache, CacheState *cached) { Q_UNUSED(voidCache); if (!isValid()) return QVariant(); - + QmlContextPrivate *contextPrivate = context->d_func(); QmlEnginePrivate *enginePrivate = context->engine()->d_func(); QStack stack; - + CacheState state = NoChange; for (int idx = 0; idx < d->instructionCount; ++idx) { const ScriptInstruction &instr = d->instructions()[idx]; switch(instr.type) { - case ScriptInstruction::LoadIdObject: + case ScriptInstruction::LoadIdObject: { stack.push(contextPrivate->propertyValues.at(instr.fetch.idx)); enginePrivate->capturedProperties << - QmlEnginePrivate::CapturedProperty(context, -1, contextPrivate->notifyIndex + instr.fetch.idx); + QmlEnginePrivate::CapturedProperty(context, -1, contextPrivate->notifyIndex + instr.fetch.idx); state = Reset; } break; - case ScriptInstruction::FetchContextConstant: + case ScriptInstruction::FetchContextConstant: { QObject *obj = contextPrivate->defaultObjects.at(0); stack.push(fetch_value(obj, instr.constant.idx, instr.constant.type)); if (obj && instr.constant.notify != 0) enginePrivate->capturedProperties << - QmlEnginePrivate::CapturedProperty(obj, instr.constant.idx, instr.constant.notify); + QmlEnginePrivate::CapturedProperty(obj, instr.constant.idx, instr.constant.notify); state = Reset; } break; - case ScriptInstruction::FetchRootConstant: + case ScriptInstruction::FetchRootConstant: { QObject *obj = contextPrivate->defaultObjects.at(1); stack.push(fetch_value(obj, instr.constant.idx, instr.constant.type)); if (obj && instr.constant.notify != 0) enginePrivate->capturedProperties << - QmlEnginePrivate::CapturedProperty(obj, instr.constant.idx, instr.constant.notify); + QmlEnginePrivate::CapturedProperty(obj, instr.constant.idx, instr.constant.notify); state = Reset; } break; - case ScriptInstruction::FetchConstant: + case ScriptInstruction::FetchConstant: { QVariant o = stack.pop(); QObject *obj = qvariant_cast(o); @@ -708,7 +707,7 @@ QVariant QmlBasicScript::run(QmlContext *context, void *voidCache, CacheState *c stack.push(fetch_value(obj, instr.constant.idx, instr.constant.type)); if (obj && instr.constant.notify != 0) enginePrivate->capturedProperties << - QmlEnginePrivate::CapturedProperty(obj, instr.constant.idx, instr.constant.notify); + QmlEnginePrivate::CapturedProperty(obj, instr.constant.idx, instr.constant.notify); state = Reset; } break; diff --git a/src/declarative/qml/qmlrewrite.cpp b/src/declarative/qml/qmlrewrite.cpp index 02bf8fa..c708418 100644 --- a/src/declarative/qml/qmlrewrite.cpp +++ b/src/declarative/qml/qmlrewrite.cpp @@ -61,7 +61,7 @@ void RewriteBinding::accept(AST::Node *node) AST::Node::acceptChild(node, this); } -QString RewriteBinding::rewrite(QString code, unsigned position, +QString RewriteBinding::rewrite(QString code, unsigned position, AST::Statement *node) { TextWriter w; @@ -101,57 +101,6 @@ bool RewriteBinding::visit(AST::ExpressionStatement *ast) return false; } -bool RewriteBinding::visit(AST::NumericLiteral *node) -{ - if (node->suffix != AST::NumericLiteral::noSuffix) { - const int suffixLength = AST::NumericLiteral::suffixLength[node->suffix]; - const char *suffixSpell = AST::NumericLiteral::suffixSpell[node->suffix]; - QString pre; - pre += QLatin1String("qmlNumberFrom"); - pre += QChar(QLatin1Char(suffixSpell[0])).toUpper(); - pre += QLatin1String(&suffixSpell[1]); - pre += QLatin1Char('('); - _writer->replace(node->literalToken.begin() - _position, 0, pre); - _writer->replace(node->literalToken.end() - _position - suffixLength, - suffixLength, - QLatin1String(")")); - } - - return false; -} - -QString RewriteNumericLiterals::operator()(QString code, unsigned position, AST::Node *node) -{ - TextWriter w; - _writer = &w; - _position = position; - - AST::Node::acceptChild(node, this); - - w.write(&code); - - return code; -} - -bool RewriteNumericLiterals::visit(AST::NumericLiteral *node) -{ - if (node->suffix != AST::NumericLiteral::noSuffix) { - const int suffixLength = AST::NumericLiteral::suffixLength[node->suffix]; - const char *suffixSpell = AST::NumericLiteral::suffixSpell[node->suffix]; - QString pre; - pre += QLatin1String("qmlNumberFrom"); - pre += QChar(QLatin1Char(suffixSpell[0])).toUpper(); - pre += QLatin1String(&suffixSpell[1]); - pre += QLatin1Char('('); - _writer->replace(node->literalToken.begin() - _position, 0, pre); - _writer->replace(node->literalToken.end() - _position - suffixLength, - suffixLength, - QLatin1String(")")); - } - - return false; -} - } // namespace QmlRewrite QT_END_NAMESPACE diff --git a/src/declarative/qml/qmlrewrite_p.h b/src/declarative/qml/qmlrewrite_p.h index 51a8015..b6fe017 100644 --- a/src/declarative/qml/qmlrewrite_p.h +++ b/src/declarative/qml/qmlrewrite_p.h @@ -78,21 +78,6 @@ protected: QString rewrite(QString code, unsigned position, AST::Statement *node); virtual bool visit(AST::Block *ast); virtual bool visit(AST::ExpressionStatement *ast); - virtual bool visit(AST::NumericLiteral *node); -}; - -class RewriteNumericLiterals: protected AST::Visitor -{ - unsigned _position; - TextWriter *_writer; - -public: - QString operator()(QString code, unsigned position, AST::Node *node); - -protected: - using AST::Visitor::visit; - - virtual bool visit(AST::NumericLiteral *node); }; } // namespace QmlRewrite diff --git a/src/declarative/qml/qmlscriptparser.cpp b/src/declarative/qml/qmlscriptparser.cpp index c1c11c7..2f82f0d 100644 --- a/src/declarative/qml/qmlscriptparser.cpp +++ b/src/declarative/qml/qmlscriptparser.cpp @@ -154,15 +154,12 @@ protected: const AST::SourceLocation &last) const { return _contents.mid(first.offset, last.offset + last.length - first.offset); } - QmlRewrite::RewriteNumericLiterals rewriteNumericLiterals; - QString asString(AST::ExpressionNode *expr) { if (! expr) return QString(); - return rewriteNumericLiterals(textAt(expr->firstSourceLocation(), expr->lastSourceLocation()), - expr->firstSourceLocation().offset, expr); + return textAt(expr->firstSourceLocation(), expr->lastSourceLocation()); } QString asString(AST::Statement *stmt) @@ -170,9 +167,7 @@ protected: if (! stmt) return QString(); - QString s = rewriteNumericLiterals(textAt(stmt->firstSourceLocation(), stmt->lastSourceLocation()), - stmt->firstSourceLocation().offset, stmt); - + QString s = textAt(stmt->firstSourceLocation(), stmt->lastSourceLocation()); s += QLatin1Char('\n'); return s; } @@ -479,7 +474,7 @@ bool ProcessAST::visit(AST::UiPublicMember *node) const QString memberType = p->type->asString(); const char *qtType = 0; for(int ii = 0; !qtType && ii < propTypeNameToTypesCount; ++ii) { - if(QLatin1String(propTypeNameToTypes[ii].name) == memberType) + if(QLatin1String(propTypeNameToTypes[ii].name) == memberType) qtType = propTypeNameToTypes[ii].qtName; } @@ -530,7 +525,7 @@ bool ProcessAST::visit(AST::UiPublicMember *node) property.isDefaultProperty = node->isDefaultMember; property.type = type; property.name = name.toUtf8(); - property.location = location(node->firstSourceLocation(), + property.location = location(node->firstSourceLocation(), node->lastSourceLocation()); if (node->expression) { // default value @@ -588,11 +583,7 @@ QmlParser::Variant ProcessAST::getVariant(AST::ExpressionNode *expr) } else if (expr->kind == AST::Node::Kind_FalseLiteral) { return QmlParser::Variant(false); } else if (AST::NumericLiteral *lit = AST::cast(expr)) { - if (lit->suffix == AST::NumericLiteral::noSuffix) - return QmlParser::Variant(lit->value, asString(expr)); - else - return QmlParser::Variant(asString(expr), expr); - + return QmlParser::Variant(lit->value, asString(expr)); } else { if (AST::UnaryMinusExpression *unaryMinus = AST::cast(expr)) { @@ -624,7 +615,7 @@ bool ProcessAST::visit(AST::UiScriptBinding *node) if (AST::ExpressionStatement *stmt = AST::cast(node->statement)) { primitive = getVariant(stmt->expression); } else { // do binding - primitive = QmlParser::Variant(asString(node->statement), + primitive = QmlParser::Variant(asString(node->statement), node->statement); } -- cgit v0.12 From 3ff864cf3ec30af8f5a7522eef7bc170d7e99911 Mon Sep 17 00:00:00 2001 From: Rhys Weatherley Date: Fri, 24 Jul 2009 14:50:34 +1000 Subject: Make custom string converters work for builtin variant metatypes With QVector3D now being a builtin variant type, the string converter code broke. This change looks for string converters for all kinds of types, just as in the rest of the QML code. --- src/declarative/qml/qmlbinding.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/declarative/qml/qmlbinding.cpp b/src/declarative/qml/qmlbinding.cpp index 431dd66..41cef49 100644 --- a/src/declarative/qml/qmlbinding.cpp +++ b/src/declarative/qml/qmlbinding.cpp @@ -139,8 +139,7 @@ void QmlBinding::update() } else { QVariant value = this->value(); - if ((uint)d->property.propertyType() >= QVariant::UserType && - value.type() == QVariant::String) { + if (value.type() == QVariant::String) { QmlMetaType::StringConverter con = QmlMetaType::customStringConverter(d->property.propertyType()); if (con) value = con(value.toString()); -- cgit v0.12 From 17030b55cc61daac51112a3a43e12b96ba7fa280 Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Fri, 24 Jul 2009 14:52:57 +1000 Subject: Add a 'loading' property to fontfamily. --- src/declarative/util/qmlfontfamily.cpp | 13 ++++++++++++- src/declarative/util/qmlfontfamily.h | 4 ++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/declarative/util/qmlfontfamily.cpp b/src/declarative/util/qmlfontfamily.cpp index 407d2ab..e539085 100644 --- a/src/declarative/util/qmlfontfamily.cpp +++ b/src/declarative/util/qmlfontfamily.cpp @@ -57,13 +57,14 @@ class QmlFontFamilyPrivate : public QObjectPrivate Q_DECLARE_PUBLIC(QmlFontFamily); public: - QmlFontFamilyPrivate() : reply(0) {} + QmlFontFamilyPrivate() : reply(0), loading(false) {} void addFontToDatabase(const QByteArray &); QUrl url; QString name; QNetworkReply *reply; + bool loading; }; QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,FontFamily,QmlFontFamily) @@ -94,6 +95,8 @@ void QmlFontFamily::setSource(const QUrl &url) return; d->url = qmlContext(this)->resolvedUrl(url); + d->loading = true; + emit loadingChanged(); #ifndef QT_NO_LOCALFILE_OPTIMIZED_QML if (d->url.scheme() == QLatin1String("file")) { QFile file(d->url.toLocalFile()); @@ -125,6 +128,12 @@ void QmlFontFamily::setName(const QString &name) emit nameChanged(); } +bool QmlFontFamily::isLoading() const +{ + Q_D(const QmlFontFamily); + return d->loading; +} + void QmlFontFamily::replyFinished() { Q_D(QmlFontFamily); @@ -144,6 +153,8 @@ void QmlFontFamilyPrivate::addFontToDatabase(const QByteArray &ba) if (id != -1) { name = QFontDatabase::applicationFontFamilies(id).at(0); emit q->nameChanged(); + loading = false; + emit q->loadingChanged(); } else { qWarning() << "Cannot load font: " << name << url; } diff --git a/src/declarative/util/qmlfontfamily.h b/src/declarative/util/qmlfontfamily.h index 739a553..c647f67 100644 --- a/src/declarative/util/qmlfontfamily.h +++ b/src/declarative/util/qmlfontfamily.h @@ -59,6 +59,7 @@ class Q_DECLARATIVE_EXPORT QmlFontFamily : public QObject Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) + Q_PROPERTY(bool loading READ isLoading NOTIFY loadingChanged) public: QmlFontFamily(QObject *parent = 0); @@ -70,11 +71,14 @@ public: QString name() const; void setName(const QString &name); + bool isLoading() const; + private Q_SLOTS: void replyFinished(); Q_SIGNALS: void nameChanged(); + void loadingChanged(); }; QT_END_NAMESPACE -- cgit v0.12 From f052ecabf63354737df71ac813adf157158e7b4d Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Fri, 24 Jul 2009 15:13:45 +1000 Subject: Rename QmlBindableComponent to QmlComponentJS, as per Aaron's request. --- src/declarative/qml/qml.pri | 6 +- src/declarative/qml/qmlbindablecomponent.cpp | 129 --------------------------- src/declarative/qml/qmlbindablecomponent.h | 92 ------------------- src/declarative/qml/qmlbindablecomponent_p.h | 77 ---------------- src/declarative/qml/qmlcomponentjs.cpp | 129 +++++++++++++++++++++++++++ src/declarative/qml/qmlcomponentjs.h | 92 +++++++++++++++++++ src/declarative/qml/qmlcomponentjs_p.h | 77 ++++++++++++++++ src/declarative/qml/qmlengine.cpp | 8 +- 8 files changed, 305 insertions(+), 305 deletions(-) delete mode 100644 src/declarative/qml/qmlbindablecomponent.cpp delete mode 100644 src/declarative/qml/qmlbindablecomponent.h delete mode 100644 src/declarative/qml/qmlbindablecomponent_p.h create mode 100644 src/declarative/qml/qmlcomponentjs.cpp create mode 100644 src/declarative/qml/qmlcomponentjs.h create mode 100644 src/declarative/qml/qmlcomponentjs_p.h diff --git a/src/declarative/qml/qml.pri b/src/declarative/qml/qml.pri index d8b69df..6ee670e 100644 --- a/src/declarative/qml/qml.pri +++ b/src/declarative/qml/qml.pri @@ -5,7 +5,7 @@ SOURCES += qml/qmlparser.cpp \ qml/qmlexpression.cpp \ qml/qmlbinding.cpp \ qml/qmlmetaproperty.cpp \ - qml/qmlbindablecomponent.cpp \ + qml/qmlcomponentjs.cpp \ qml/qmlcomponent.cpp \ qml/qmlcontext.cpp \ qml/qmlcustomparser.cpp \ @@ -38,8 +38,8 @@ HEADERS += qml/qmlparser_p.h \ qml/qmlbinding.h \ qml/qmlbinding_p.h \ qml/qmlmetaproperty.h \ - qml/qmlbindablecomponent.h \ - qml/qmlbindablecomponent_p.h \ + qml/qmlcomponentjs.h \ + qml/qmlcomponentjs_p.h \ qml/qmlcomponent.h \ qml/qmlcomponent_p.h \ qml/qmlcustomparser_p.h \ diff --git a/src/declarative/qml/qmlbindablecomponent.cpp b/src/declarative/qml/qmlbindablecomponent.cpp deleted file mode 100644 index 6938592..0000000 --- a/src/declarative/qml/qmlbindablecomponent.cpp +++ /dev/null @@ -1,129 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain -** additional rights. These rights are described in the Nokia Qt LGPL -** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qmlbindablecomponent.h" -#include "qmlbindablecomponent_p.h" -#include "qmlcomponent.h" - -QT_BEGIN_NAMESPACE -QmlBindableComponent::QmlBindableComponent(QmlEngine *engine, QObject *parent) - : QmlComponent(*(new QmlBindableComponentPrivate), parent) -{ - Q_D(QmlBindableComponent); - d->engine = engine; - connect(this, SIGNAL(statusChanged(QmlComponent::Status)), - this, SLOT(statusChange(QmlComponent::Status))); -} - -QmlBindableComponent::QmlBindableComponent(QmlEngine *engine, const QUrl &url, QObject *parent) - : QmlComponent(*(new QmlBindableComponentPrivate), parent) -{ - Q_D(QmlBindableComponent); - d->engine = engine; - loadUrl(url); - connect(this, SIGNAL(statusChanged(QmlComponent::Status)), - this, SLOT(statusChange(QmlComponent::Status))); -} - -void QmlBindableComponent::setContext(QmlContext* c) -{ - Q_D(QmlBindableComponent); - d->ctxt =c; -} -/*! - Create a script object instance from this component. Returns a null - script object if creation failed. It will create the instance in the - same context that it was created it. QmlBindableComponent is only - meant to be created from with script - C++ developers should just use - QmlComponent directly. - - Similar to QmlComponent::create(), but creates an object suitable - for usage within scripts. -*/ -QScriptValue QmlBindableComponent::createObject() -{ - Q_D(QmlBindableComponent); - QObject* ret = create(d->ctxt); - return QmlEngine::qmlScriptObject(ret, d->engine); -} - -/*! - Return the list of errors that occured during the last compile or create - operation, as a single string. An empty string is returned if isError() - is not set. - - This function is similar to errors(), except more useful when called from - QML. C++ code should usually use errors(). - - \sa errors() -*/ -QString QmlBindableComponent::errorsString() const -{ - Q_D(const QmlBindableComponent); - QString ret; - if(!isError()) - return ret; - foreach(const QmlError &e, d->errors) { - ret += e.url().toString() + QLatin1String(":") + - QString::number(e.line()) + QLatin1String(" ") + - e.description() + QLatin1String("\n"); - } - return ret; -} - - -void QmlBindableComponent::statusChange(QmlComponent::Status newStatus) -{ - Q_D(QmlBindableComponent); - if(newStatus == d->prevStatus) - return; - if(newStatus == QmlComponent::Null || d->prevStatus == QmlComponent::Null) - emit isNullChanged(); - if(newStatus == QmlComponent::Ready || d->prevStatus == QmlComponent::Ready) - emit isReadyChanged(); - if(newStatus == QmlComponent::Loading || d->prevStatus == QmlComponent::Loading) - emit isLoadingChanged(); - if(newStatus == QmlComponent::Error || d->prevStatus == QmlComponent::Error) - emit isErrorChanged(); - d->prevStatus = newStatus; -} - -QT_END_NAMESPACE diff --git a/src/declarative/qml/qmlbindablecomponent.h b/src/declarative/qml/qmlbindablecomponent.h deleted file mode 100644 index 43e3537..0000000 --- a/src/declarative/qml/qmlbindablecomponent.h +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain -** additional rights. These rights are described in the Nokia Qt LGPL -** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLBINDABLECOMPONENT_H -#define QMLBINDABLECOMPONENT_H - -#include -#include -#include -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlBindableComponentPrivate; -class QmlEngine; -class QmlContext; -class Q_DECLARATIVE_EXPORT QmlBindableComponent : public QmlComponent -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlBindableComponent) - friend class QmlEngine; -public: - QmlBindableComponent(QmlEngine *, const QUrl &url, QObject *parent = 0); - QmlBindableComponent(QmlEngine *, QObject *parent=0); - Q_PROPERTY(bool isNull READ isNull NOTIFY isNullChanged); - Q_PROPERTY(bool isReady READ isReady NOTIFY isReadyChanged); - Q_PROPERTY(bool isError READ isError NOTIFY isErrorChanged); - Q_PROPERTY(bool isLoading READ isLoading NOTIFY isLoadingChanged); - - Q_INVOKABLE QScriptValue createObject(); - Q_INVOKABLE QString errorsString() const; - - void setContext(QmlContext* c); -Q_SIGNALS: - void isNullChanged(); - void isErrorChanged(); - void isReadyChanged(); - void isLoadingChanged(); -private slots: - void statusChange(QmlComponent::Status newStatus); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlBindableComponent) - -QT_END_HEADER -#endif diff --git a/src/declarative/qml/qmlbindablecomponent_p.h b/src/declarative/qml/qmlbindablecomponent_p.h deleted file mode 100644 index 79335df..0000000 --- a/src/declarative/qml/qmlbindablecomponent_p.h +++ /dev/null @@ -1,77 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain -** additional rights. These rights are described in the Nokia Qt LGPL -** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLBINDABLECOMPONENT_P_H -#define QMLBINDABLECOMPONENT_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qmlcomponent.h" -#include "qmlbindablecomponent.h" -#include "qmlcomponent_p.h" - -QT_BEGIN_NAMESPACE - -class QmlContext; -class QmlBindableComponentPrivate : public QmlComponentPrivate -{ - Q_DECLARE_PUBLIC(QmlBindableComponent) -public: - QmlBindableComponentPrivate() : QmlComponentPrivate(), - prevStatus(QmlBindableComponent::Null), ctxt(0) - { } - - QmlComponent::Status prevStatus; - QmlContext* ctxt; -}; - -QT_END_NAMESPACE - -#endif diff --git a/src/declarative/qml/qmlcomponentjs.cpp b/src/declarative/qml/qmlcomponentjs.cpp new file mode 100644 index 0000000..32c2249 --- /dev/null +++ b/src/declarative/qml/qmlcomponentjs.cpp @@ -0,0 +1,129 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qmlcomponentjs.h" +#include "qmlcomponentjs_p.h" +#include "qmlcomponent.h" + +QT_BEGIN_NAMESPACE +QmlComponentJS::QmlComponentJS(QmlEngine *engine, QObject *parent) + : QmlComponent(*(new QmlComponentJSPrivate), parent) +{ + Q_D(QmlComponentJS); + d->engine = engine; + connect(this, SIGNAL(statusChanged(QmlComponent::Status)), + this, SLOT(statusChange(QmlComponent::Status))); +} + +QmlComponentJS::QmlComponentJS(QmlEngine *engine, const QUrl &url, QObject *parent) + : QmlComponent(*(new QmlComponentJSPrivate), parent) +{ + Q_D(QmlComponentJS); + d->engine = engine; + loadUrl(url); + connect(this, SIGNAL(statusChanged(QmlComponent::Status)), + this, SLOT(statusChange(QmlComponent::Status))); +} + +void QmlComponentJS::setContext(QmlContext* c) +{ + Q_D(QmlComponentJS); + d->ctxt =c; +} +/*! + Create a script object instance from this component. Returns a null + script object if creation failed. It will create the instance in the + same context that it was created it. QmlComponentJS is only + meant to be created from with script - C++ developers should just use + QmlComponent directly. + + Similar to QmlComponent::create(), but creates an object suitable + for usage within scripts. +*/ +QScriptValue QmlComponentJS::createObject() +{ + Q_D(QmlComponentJS); + QObject* ret = create(d->ctxt); + return QmlEngine::qmlScriptObject(ret, d->engine); +} + +/*! + Return the list of errors that occured during the last compile or create + operation, as a single string. An empty string is returned if isError() + is not set. + + This function is similar to errors(), except more useful when called from + QML. C++ code should usually use errors(). + + \sa errors() +*/ +QString QmlComponentJS::errorsString() const +{ + Q_D(const QmlComponentJS); + QString ret; + if(!isError()) + return ret; + foreach(const QmlError &e, d->errors) { + ret += e.url().toString() + QLatin1String(":") + + QString::number(e.line()) + QLatin1String(" ") + + e.description() + QLatin1String("\n"); + } + return ret; +} + + +void QmlComponentJS::statusChange(QmlComponent::Status newStatus) +{ + Q_D(QmlComponentJS); + if(newStatus == d->prevStatus) + return; + if(newStatus == QmlComponent::Null || d->prevStatus == QmlComponent::Null) + emit isNullChanged(); + if(newStatus == QmlComponent::Ready || d->prevStatus == QmlComponent::Ready) + emit isReadyChanged(); + if(newStatus == QmlComponent::Loading || d->prevStatus == QmlComponent::Loading) + emit isLoadingChanged(); + if(newStatus == QmlComponent::Error || d->prevStatus == QmlComponent::Error) + emit isErrorChanged(); + d->prevStatus = newStatus; +} + +QT_END_NAMESPACE diff --git a/src/declarative/qml/qmlcomponentjs.h b/src/declarative/qml/qmlcomponentjs.h new file mode 100644 index 0000000..5ad1635 --- /dev/null +++ b/src/declarative/qml/qmlcomponentjs.h @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLBINDABLECOMPONENT_H +#define QMLBINDABLECOMPONENT_H + +#include +#include +#include +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QmlComponentJSPrivate; +class QmlEngine; +class QmlContext; +class Q_DECLARATIVE_EXPORT QmlComponentJS : public QmlComponent +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QmlComponentJS) + friend class QmlEngine; +public: + QmlComponentJS(QmlEngine *, const QUrl &url, QObject *parent = 0); + QmlComponentJS(QmlEngine *, QObject *parent=0); + Q_PROPERTY(bool isNull READ isNull NOTIFY isNullChanged); + Q_PROPERTY(bool isReady READ isReady NOTIFY isReadyChanged); + Q_PROPERTY(bool isError READ isError NOTIFY isErrorChanged); + Q_PROPERTY(bool isLoading READ isLoading NOTIFY isLoadingChanged); + + Q_INVOKABLE QScriptValue createObject(); + Q_INVOKABLE QString errorsString() const; + + void setContext(QmlContext* c); +Q_SIGNALS: + void isNullChanged(); + void isErrorChanged(); + void isReadyChanged(); + void isLoadingChanged(); +private slots: + void statusChange(QmlComponent::Status newStatus); +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QmlComponentJS) + +QT_END_HEADER +#endif diff --git a/src/declarative/qml/qmlcomponentjs_p.h b/src/declarative/qml/qmlcomponentjs_p.h new file mode 100644 index 0000000..75d5517 --- /dev/null +++ b/src/declarative/qml/qmlcomponentjs_p.h @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLBINDABLECOMPONENT_P_H +#define QMLBINDABLECOMPONENT_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlcomponent.h" +#include "qmlcomponentjs.h" +#include "qmlcomponent_p.h" + +QT_BEGIN_NAMESPACE + +class QmlContext; +class QmlComponentJSPrivate : public QmlComponentPrivate +{ + Q_DECLARE_PUBLIC(QmlComponentJS) +public: + QmlComponentJSPrivate() : QmlComponentPrivate(), + prevStatus(QmlComponentJS::Null), ctxt(0) + { } + + QmlComponent::Status prevStatus; + QmlContext* ctxt; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/declarative/qml/qmlengine.cpp b/src/declarative/qml/qmlengine.cpp index 33c6710..69cc542 100644 --- a/src/declarative/qml/qmlengine.cpp +++ b/src/declarative/qml/qmlengine.cpp @@ -71,7 +71,7 @@ #include #include #include -#include +#include #include "private/qmlmetaproperty_p.h" #include #include @@ -602,18 +602,18 @@ QScriptValue QmlEngine::qmlScriptObject(QObject* object, QmlEngine* engine) */ QScriptValue QmlEngine::createComponent(QScriptContext *ctxt, QScriptEngine *engine) { - QmlBindableComponent* c; + QmlComponentJS* c; QmlEngine* activeEngine = qobject_cast( engine->globalObject().property(QLatin1String("qmlEngine")).toQObject()); QmlContext* context =activeEngine->d_func()->currentExpression->context(); if(ctxt->argumentCount() != 1 || !activeEngine){ - c = new QmlBindableComponent(activeEngine); + c = new QmlComponentJS(activeEngine); }else{ QUrl url = QUrl(context->resolvedUrl(ctxt->argument(0).toString())); if(!url.isValid()){ url = QUrl(ctxt->argument(0).toString()); } - c = new QmlBindableComponent(activeEngine, url, activeEngine); + c = new QmlComponentJS(activeEngine, url, activeEngine); } c->setContext(context); return engine->newQObject(c); -- cgit v0.12 From a5469a1e0289786ec6f15bcfd4af2826249f81fc Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Fri, 24 Jul 2009 06:39:37 +0200 Subject: Accept the optional semicolon at the end of a signal declaration. --- src/declarative/qml/parser/qmljs.g | 12 +- src/declarative/qml/parser/qmljsgrammar.cpp | 1353 ++++++++++++++------------- src/declarative/qml/parser/qmljsgrammar_p.h | 12 +- src/declarative/qml/parser/qmljsparser.cpp | 400 ++++---- src/declarative/qml/parser/qmljsparser_p.h | 4 +- 5 files changed, 903 insertions(+), 878 deletions(-) diff --git a/src/declarative/qml/parser/qmljs.g b/src/declarative/qml/parser/qmljs.g index 5f0fe8f..d8d67c3 100644 --- a/src/declarative/qml/parser/qmljs.g +++ b/src/declarative/qml/parser/qmljs.g @@ -837,27 +837,31 @@ case $rule_number: { } break; ./ -UiObjectMember: T_SIGNAL T_IDENTIFIER T_LPAREN UiParameterListOpt T_RPAREN ; +UiObjectMember: T_SIGNAL T_IDENTIFIER T_LPAREN UiParameterListOpt T_RPAREN T_AUTOMATIC_SEMICOLON ; +UiObjectMember: T_SIGNAL T_IDENTIFIER T_LPAREN UiParameterListOpt T_RPAREN T_SEMICOLON ; /. case $rule_number: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), (NameId *)0, sym(2).sval); node->type = AST::UiPublicMember::Signal; node->propertyToken = loc(1); node->typeToken = loc(2); - node->identifierToken = loc(3); + node->identifierToken = loc(2); node->parameters = sym(4).UiParameterList; + node->semicolonToken = loc(6); sym(1).Node = node; } break; ./ -UiObjectMember: T_SIGNAL T_IDENTIFIER ; +UiObjectMember: T_SIGNAL T_IDENTIFIER T_AUTOMATIC_SEMICOLON ; +UiObjectMember: T_SIGNAL T_IDENTIFIER T_SEMICOLON ; /. case $rule_number: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), (NameId *)0, sym(2).sval); node->type = AST::UiPublicMember::Signal; node->propertyToken = loc(1); node->typeToken = loc(2); - node->identifierToken = loc(3); + node->identifierToken = loc(2); + node->semicolonToken = loc(3); sym(1).Node = node; } break; ./ diff --git a/src/declarative/qml/parser/qmljsgrammar.cpp b/src/declarative/qml/parser/qmljsgrammar.cpp index 1b23be6..873307f 100644 --- a/src/declarative/qml/parser/qmljsgrammar.cpp +++ b/src/declarative/qml/parser/qmljsgrammar.cpp @@ -60,140 +60,141 @@ const int QmlJSGrammar::lhs [] = { 101, 100, 107, 107, 109, 109, 110, 110, 106, 108, 108, 108, 108, 108, 108, 108, 115, 115, 115, 116, 116, 117, 117, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 105, 105, 104, 104, 104, + 108, 108, 108, 108, 108, 108, 108, 105, 105, 104, + 104, 104, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 105, 105, - 122, 122, 122, 122, 121, 121, 124, 124, 126, 126, - 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, + 105, 105, 122, 122, 122, 122, 121, 121, 124, 124, + 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 128, 128, 129, 129, 129, - 129, 129, 132, 132, 133, 133, 133, 133, 131, 131, - 134, 134, 135, 135, 136, 136, 136, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 138, 138, 138, - 138, 139, 139, 139, 140, 140, 140, 140, 141, 141, - 141, 141, 141, 141, 141, 142, 142, 142, 142, 142, - 142, 143, 143, 143, 143, 143, 144, 144, 144, 144, - 144, 145, 145, 146, 146, 147, 147, 148, 148, 149, - 149, 150, 150, 151, 151, 152, 152, 153, 153, 154, - 154, 155, 155, 156, 156, 125, 125, 157, 157, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 98, 98, 159, 159, 160, 160, 161, 161, 97, - 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, - 97, 97, 97, 97, 111, 173, 173, 172, 172, 119, - 119, 174, 174, 175, 175, 177, 177, 176, 178, 181, - 179, 179, 182, 180, 180, 112, 113, 113, 114, 114, - 162, 162, 162, 162, 162, 162, 162, 163, 163, 163, - 163, 164, 164, 164, 164, 165, 165, 166, 168, 183, - 183, 186, 186, 184, 184, 187, 185, 167, 167, 167, - 169, 169, 170, 170, 170, 188, 189, 171, 171, 118, - 130, 193, 193, 190, 190, 191, 191, 194, 195, 195, - 196, 196, 192, 192, 123, 123, 197}; + 127, 127, 127, 127, 127, 127, 127, 128, 128, 129, + 129, 129, 129, 129, 132, 132, 133, 133, 133, 133, + 131, 131, 134, 134, 135, 135, 136, 136, 136, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 138, + 138, 138, 138, 139, 139, 139, 140, 140, 140, 140, + 141, 141, 141, 141, 141, 141, 141, 142, 142, 142, + 142, 142, 142, 143, 143, 143, 143, 143, 144, 144, + 144, 144, 144, 145, 145, 146, 146, 147, 147, 148, + 148, 149, 149, 150, 150, 151, 151, 152, 152, 153, + 153, 154, 154, 155, 155, 156, 156, 125, 125, 157, + 157, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 98, 98, 159, 159, 160, 160, 161, + 161, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 111, 173, 173, 172, + 172, 119, 119, 174, 174, 175, 175, 177, 177, 176, + 178, 181, 179, 179, 182, 180, 180, 112, 113, 113, + 114, 114, 162, 162, 162, 162, 162, 162, 162, 163, + 163, 163, 163, 164, 164, 164, 164, 165, 165, 166, + 168, 183, 183, 186, 186, 184, 184, 187, 185, 167, + 167, 167, 169, 169, 170, 170, 170, 188, 189, 171, + 171, 118, 130, 193, 193, 190, 190, 191, 191, 194, + 195, 195, 196, 196, 192, 192, 123, 123, 197}; const int QmlJSGrammar:: rhs[] = { 2, 2, 2, 2, 1, 1, 1, 2, 3, 3, 5, 5, 3, 3, 4, 4, 6, 6, 5, 5, 0, 1, 1, 2, 1, 3, 2, 3, 2, 1, 5, 4, 3, 3, 3, 3, 1, 1, 1, 0, - 1, 2, 4, 5, 2, 4, 4, 5, 5, 6, - 6, 7, 7, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 4, 6, 6, 3, 3, 4, 4, 5, + 5, 6, 6, 7, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 3, 3, 4, 5, 3, 4, 3, 1, 3, - 1, 2, 3, 4, 1, 2, 3, 5, 1, 1, + 1, 1, 2, 3, 3, 4, 5, 3, 4, 3, + 1, 3, 1, 2, 3, 4, 1, 2, 3, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 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, 3, 1, 2, 0, 1, 3, - 3, 1, 1, 1, 3, 1, 3, 2, 2, 2, - 0, 1, 2, 0, 1, 1, 2, 2, 7, 5, - 7, 7, 5, 9, 10, 7, 8, 2, 2, 3, - 3, 2, 2, 3, 3, 3, 3, 5, 5, 3, - 5, 1, 2, 0, 1, 4, 3, 3, 3, 3, - 3, 3, 3, 3, 4, 5, 2, 2, 2, 8, - 8, 1, 3, 0, 1, 0, 1, 1, 1, 2, - 1, 1, 0, 1, 0, 1, 2}; + 1, 1, 1, 1, 1, 1, 3, 1, 2, 0, + 1, 3, 3, 1, 1, 1, 3, 1, 3, 2, + 2, 2, 0, 1, 2, 0, 1, 1, 2, 2, + 7, 5, 7, 7, 5, 9, 10, 7, 8, 2, + 2, 3, 3, 2, 2, 3, 3, 3, 3, 5, + 5, 3, 5, 1, 2, 0, 1, 4, 3, 3, + 3, 3, 3, 3, 3, 3, 4, 5, 2, 2, + 2, 8, 8, 1, 3, 0, 1, 0, 1, 1, + 1, 2, 1, 1, 0, 1, 0, 1, 2}; const int QmlJSGrammar::action_default [] = { - 0, 0, 0, 21, 0, 165, 232, 196, 204, 200, - 144, 216, 192, 3, 129, 62, 145, 208, 212, 133, - 162, 143, 148, 128, 182, 169, 0, 69, 70, 65, - 333, 58, 335, 0, 0, 0, 0, 67, 0, 0, - 63, 66, 0, 0, 59, 60, 68, 61, 0, 64, - 0, 0, 158, 0, 0, 145, 164, 147, 146, 0, - 0, 0, 160, 161, 159, 163, 0, 193, 0, 0, - 0, 0, 183, 0, 0, 0, 0, 0, 0, 173, - 0, 0, 0, 167, 168, 166, 171, 175, 174, 172, - 170, 185, 184, 186, 0, 201, 0, 197, 0, 0, - 139, 126, 138, 127, 95, 96, 97, 122, 98, 123, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 124, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 125, 0, 0, 137, 233, 140, - 0, 141, 0, 142, 136, 0, 229, 222, 220, 227, - 228, 226, 225, 231, 224, 223, 221, 230, 217, 0, - 205, 0, 0, 209, 0, 0, 213, 0, 0, 139, - 131, 0, 130, 0, 135, 149, 0, 334, 324, 325, - 0, 322, 0, 323, 0, 326, 240, 247, 246, 254, - 242, 0, 243, 327, 0, 332, 244, 245, 250, 248, - 329, 328, 331, 251, 0, 262, 0, 0, 0, 0, - 333, 58, 0, 335, 59, 234, 276, 60, 0, 0, - 0, 263, 0, 0, 252, 253, 0, 241, 249, 277, - 278, 321, 330, 0, 292, 293, 294, 295, 0, 288, - 289, 290, 291, 318, 319, 0, 0, 0, 0, 0, - 281, 282, 238, 236, 198, 206, 202, 218, 194, 239, - 0, 145, 210, 214, 187, 176, 0, 0, 195, 0, - 0, 0, 0, 188, 0, 0, 0, 0, 0, 180, - 178, 181, 179, 177, 190, 189, 191, 0, 203, 0, - 199, 0, 237, 145, 0, 219, 234, 235, 0, 234, - 0, 0, 284, 0, 0, 0, 286, 0, 207, 0, - 0, 211, 0, 0, 215, 274, 0, 266, 275, 269, - 0, 273, 0, 234, 267, 0, 234, 0, 0, 285, - 0, 0, 0, 287, 334, 324, 0, 0, 326, 0, - 320, 0, 310, 0, 0, 0, 280, 0, 279, 0, - 336, 0, 94, 256, 259, 0, 95, 262, 98, 123, - 100, 101, 65, 105, 106, 58, 107, 110, 63, 66, - 59, 234, 60, 68, 113, 61, 115, 64, 117, 118, - 263, 120, 121, 125, 0, 87, 0, 0, 89, 93, - 91, 77, 90, 92, 0, 88, 76, 257, 255, 133, - 134, 139, 0, 132, 0, 309, 0, 296, 297, 0, - 308, 0, 0, 0, 299, 304, 302, 305, 0, 0, - 303, 304, 0, 300, 0, 301, 258, 307, 0, 258, - 306, 0, 311, 312, 0, 258, 313, 314, 0, 0, - 315, 0, 0, 0, 316, 317, 151, 150, 0, 0, - 0, 283, 0, 0, 0, 298, 271, 264, 0, 272, - 268, 0, 270, 260, 0, 261, 265, 81, 0, 0, - 85, 71, 0, 73, 83, 0, 74, 84, 86, 75, - 82, 72, 0, 78, 155, 153, 157, 154, 152, 156, - 2, 5, 0, 7, 6, 0, 1, 79, 56, 57, + 0, 0, 0, 21, 0, 167, 234, 198, 206, 202, + 146, 218, 194, 3, 131, 64, 147, 210, 214, 135, + 164, 145, 150, 130, 184, 171, 0, 71, 72, 67, + 335, 60, 337, 0, 0, 0, 0, 69, 0, 0, + 65, 68, 0, 0, 61, 62, 70, 63, 0, 66, + 0, 0, 160, 0, 0, 147, 166, 149, 148, 0, + 0, 0, 162, 163, 161, 165, 0, 195, 0, 0, + 0, 0, 185, 0, 0, 0, 0, 0, 0, 175, + 0, 0, 0, 169, 170, 168, 173, 177, 176, 174, + 172, 187, 186, 188, 0, 203, 0, 199, 0, 0, + 141, 128, 140, 129, 97, 98, 99, 124, 100, 125, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 126, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 127, 0, 0, 139, 235, 142, + 0, 143, 0, 144, 138, 0, 231, 224, 222, 229, + 230, 228, 227, 233, 226, 225, 223, 232, 219, 0, + 207, 0, 0, 211, 0, 0, 215, 0, 0, 141, + 133, 0, 132, 0, 137, 151, 0, 336, 326, 327, + 0, 324, 0, 325, 0, 328, 242, 249, 248, 256, + 244, 0, 245, 329, 0, 334, 246, 247, 252, 250, + 331, 330, 333, 253, 0, 264, 0, 0, 0, 0, + 335, 60, 0, 337, 61, 236, 278, 62, 0, 0, + 0, 265, 0, 0, 254, 255, 0, 243, 251, 279, + 280, 323, 332, 0, 294, 295, 296, 297, 0, 290, + 291, 292, 293, 320, 321, 0, 0, 0, 0, 0, + 283, 284, 240, 238, 200, 208, 204, 220, 196, 241, + 0, 147, 212, 216, 189, 178, 0, 0, 197, 0, + 0, 0, 0, 190, 0, 0, 0, 0, 0, 182, + 180, 183, 181, 179, 192, 191, 193, 0, 205, 0, + 201, 0, 239, 147, 0, 221, 236, 237, 0, 236, + 0, 0, 286, 0, 0, 0, 288, 0, 209, 0, + 0, 213, 0, 0, 217, 276, 0, 268, 277, 271, + 0, 275, 0, 236, 269, 0, 236, 0, 0, 287, + 0, 0, 0, 289, 336, 326, 0, 0, 328, 0, + 322, 0, 312, 0, 0, 0, 282, 0, 281, 0, + 338, 0, 96, 258, 261, 0, 97, 264, 100, 125, + 102, 103, 67, 107, 108, 60, 109, 112, 65, 68, + 61, 236, 62, 70, 115, 63, 117, 66, 119, 120, + 265, 122, 123, 127, 0, 89, 0, 0, 91, 95, + 93, 79, 92, 94, 0, 90, 78, 259, 257, 135, + 136, 141, 0, 134, 0, 311, 0, 298, 299, 0, + 310, 0, 0, 0, 301, 306, 304, 307, 0, 0, + 305, 306, 0, 302, 0, 303, 260, 309, 0, 260, + 308, 0, 313, 314, 0, 260, 315, 316, 0, 0, + 317, 0, 0, 0, 318, 319, 153, 152, 0, 0, + 0, 285, 0, 0, 0, 300, 273, 266, 0, 274, + 270, 0, 272, 262, 0, 263, 267, 83, 0, 0, + 87, 73, 0, 75, 85, 0, 76, 86, 88, 77, + 84, 74, 0, 80, 157, 155, 159, 156, 154, 158, + 2, 5, 0, 7, 6, 0, 1, 81, 58, 59, 0, 0, 0, 9, 10, 0, 11, 12, 0, 13, - 0, 0, 14, 0, 19, 20, 80, 0, 15, 16, - 0, 17, 18, 8, 22, 0, 4, 0, 29, 54, - 0, 0, 59, 27, 60, 30, 23, 0, 0, 55, - 0, 39, 38, 37, 0, 0, 48, 0, 49, 0, - 52, 53, 0, 0, 0, 46, 0, 47, 0, 50, - 51, 45, 40, 41, 0, 0, 0, 0, 43, 44, - 42, 28, 24, 0, 33, 34, 0, 35, 36, 258, - 0, 32, 95, 262, 98, 123, 100, 101, 65, 105, - 106, 58, 107, 110, 63, 66, 59, 234, 60, 68, - 113, 61, 115, 64, 117, 118, 263, 120, 121, 125, - 62, 0, 25, 0, 31, 26, 337}; + 0, 0, 14, 0, 19, 20, 82, 0, 15, 16, + 0, 17, 18, 8, 22, 0, 4, 0, 29, 56, + 0, 0, 61, 27, 62, 30, 23, 0, 0, 57, + 0, 39, 38, 37, 0, 0, 50, 0, 51, 0, + 54, 55, 0, 0, 0, 48, 0, 49, 0, 52, + 53, 0, 46, 40, 47, 41, 0, 0, 0, 0, + 43, 0, 44, 45, 42, 28, 24, 0, 33, 34, + 0, 35, 36, 260, 0, 32, 97, 264, 100, 125, + 102, 103, 67, 107, 108, 60, 109, 112, 65, 68, + 61, 236, 62, 70, 115, 63, 117, 66, 119, 120, + 265, 122, 123, 127, 64, 0, 25, 0, 31, 26, + 339}; const int QmlJSGrammar::goto_default [] = { 4, 496, 353, 191, 495, 526, 491, 494, 493, 15, - 525, 535, 537, 536, 611, 528, 186, 190, 192, 196, - 553, 564, 563, 195, 227, 23, 469, 468, 351, 350, + 525, 535, 537, 536, 615, 528, 186, 190, 192, 196, + 553, 566, 565, 195, 227, 23, 469, 468, 351, 350, 6, 349, 352, 102, 19, 14, 140, 21, 10, 139, 16, 22, 52, 20, 5, 25, 24, 264, 12, 258, 7, 254, 9, 256, 8, 255, 17, 262, 18, 263, @@ -204,222 +205,221 @@ const int QmlJSGrammar::goto_default [] = { 201, 200, 0}; const int QmlJSGrammar::action_index [] = { - 208, 808, 1863, 61, 100, 76, -95, 95, 59, 54, - 261, -95, 405, 86, -95, -95, 641, 91, 67, 187, - 200, -95, -95, -95, 446, 206, 808, -95, -95, -95, - 188, -95, 1681, 1412, 808, 808, 808, -95, 724, 808, - -95, -95, 808, 808, -95, -95, -95, -95, 808, -95, - 808, 808, -95, 808, 808, 131, 212, -95, -95, 808, - 808, 808, -95, -95, -95, 157, 808, 405, 808, 808, - 808, 808, 471, 808, 808, 808, 808, 808, 808, 161, - 808, 808, 808, 112, 119, 117, 154, 178, 173, 234, - 233, 456, 549, 409, 808, 9, 808, 72, 1590, 808, - 808, -95, -95, -95, -95, -95, -95, -95, -95, -95, + 175, 862, 1917, -50, 39, 89, -95, 32, -14, -52, + 374, -95, 341, 21, -95, -95, 577, 42, 84, 198, + 250, -95, -95, -95, 473, 252, 862, -95, -95, -95, + 259, -95, 1735, 1208, 862, 862, 862, -95, 638, 862, + -95, -95, 862, 862, -95, -95, -95, -95, 862, -95, + 862, 862, -95, 862, 862, 93, 300, -95, -95, 862, + 862, 862, -95, -95, -95, 287, 862, 324, 862, 862, + 862, 862, 453, 862, 862, 862, 862, 862, 862, 307, + 862, 862, 862, 118, 102, 127, 308, 293, 326, 251, + 255, 463, 488, 508, 862, 23, 862, 82, 1644, 862, + 862, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, - -95, -95, -95, -95, -95, 139, 808, -95, -95, 66, - 23, -95, 808, -95, -95, 808, -95, -95, -95, -95, - -95, -95, -95, -95, -95, -95, -95, -95, -95, 808, - 33, 808, 808, 69, 57, 808, -95, 1590, 808, 808, - -95, 126, -95, 8, -95, -95, 29, -95, 186, 62, - 60, -95, 207, -95, 36, 1954, -95, -95, -95, -95, - -95, 205, -95, -95, 35, -95, -95, -95, -95, -95, - -95, 1954, -95, -95, 386, -95, 398, 77, 1863, 50, - 162, 78, 42, 2136, 73, 808, -95, 85, 48, 808, - 56, -95, 43, 39, -95, -95, 328, -95, -95, -95, - -95, -95, -95, 75, -95, -95, -95, -95, 84, -95, - -95, -95, -95, -95, -95, 38, 55, 808, 102, 79, - -95, -95, 892, -95, 175, 47, 34, -95, 324, 74, - 16, 551, 65, 68, 477, 278, 328, 808, 292, 808, - 808, 808, 808, 402, 808, 808, 808, 808, 808, 302, - 306, 303, 282, 307, 385, 477, 477, 808, -2, 808, - 71, 808, -95, 641, 808, -95, 808, 58, 63, 808, - 51, 1863, -95, 808, 147, 1863, -95, 808, 14, 808, - 808, 96, 92, 808, -95, 80, 105, 70, -95, -95, - 808, -95, 255, 808, -95, -58, 808, -39, 1863, -95, - 808, 120, 1863, -95, -20, 259, -47, -21, 1954, -36, - -95, 1863, -95, 808, 101, 1863, 11, 1863, -95, 15, - 3, -45, -95, -95, 1863, -54, 401, 2, 337, 116, - 808, 1863, 0, -32, 318, -1, -28, 724, 81, -5, - -95, 980, -95, 45, 19, 46, 808, 44, 17, 808, - 41, 808, 13, -8, 808, -95, 1772, 49, -95, -95, - -95, -95, -95, -95, 808, -95, -95, -95, -95, 272, - -95, 808, -13, -95, 1863, -95, 64, -95, -95, 1863, - -95, 808, 98, 4, -95, 25, -95, 31, 93, 808, - -95, 40, 37, -95, -12, -95, 1863, -95, 123, 1863, - -95, 288, -95, -95, 109, 1863, 20, -95, -4, 1, - -95, 328, -14, 21, -95, -95, -95, -95, 808, 115, - 1863, -95, 808, 125, 1863, -95, 12, -95, 185, -95, - -95, 808, -95, -95, 252, -95, -95, -95, 97, 1154, - -95, -95, 1067, -95, -95, 1241, -95, -95, -95, -95, - -95, -95, 94, -95, -95, -95, -95, -95, -95, -95, - -95, -95, 407, -95, -73, 376, -95, -95, -95, -95, - 179, 321, 198, -95, -95, 110, -95, -95, 227, -95, - 248, 228, -95, 89, -95, -95, -95, 219, -95, -95, - 103, -95, -95, -95, -95, 127, -95, 475, -95, -95, - -46, 168, 165, -95, -6, -95, -95, 500, 189, -95, - 158, -95, -95, -95, 32, 176, -95, 808, -95, 262, - -95, -95, 6, 10, 128, -95, 808, -95, 148, -95, - -95, 5, 145, 30, -3, 213, 177, 216, -95, -95, - -95, -95, -95, 1325, -95, -95, 327, -95, -95, 2045, - 1499, -95, 345, 26, 330, 82, 808, 1863, 28, 22, - 310, 52, 27, 584, 81, 53, -95, 980, -95, 24, - -31, -7, 808, 7, -9, 808, 18, 808, -10, -19, - -15, 111, -95, 334, -95, -95, -95, + -95, -95, -95, -95, -95, 119, 862, -95, -95, 88, + 63, -95, 862, -95, -95, 862, -95, -95, -95, -95, + -95, -95, -95, -95, -95, -95, -95, -95, -95, 862, + 3, 862, 862, 28, 24, 862, -95, 1644, 862, 862, + -95, 131, -95, -41, -95, -95, -25, -95, 208, -5, + -11, -95, 202, -95, 61, 2008, -95, -95, -95, -95, + -95, 222, -95, -95, 65, -95, -95, -95, -95, -95, + -95, 2008, -95, -95, 376, -95, 405, 75, 1917, 56, + 274, 79, 54, 2190, 71, 862, -95, 74, 49, 862, + 51, -95, 43, 67, -95, -95, 281, -95, -95, -95, + -95, -95, -95, 90, -95, -95, -95, -95, 83, -95, + -95, -95, -95, -95, -95, 35, 55, 862, 94, 70, + -95, -95, 946, -95, 76, 34, -10, -95, 336, 59, + 10, 695, 73, 138, 356, 277, 262, 862, 178, 862, + 862, 862, 862, 446, 862, 862, 862, 862, 862, 267, + 273, 292, 270, 311, 446, 518, 446, 862, 19, 862, + 72, 862, -95, 543, 862, -95, 862, 58, 69, 862, + 68, 1917, -95, 862, 116, 1917, -95, 862, 57, 862, + 862, 96, 92, 862, -95, 78, 98, 62, -95, -95, + 862, -95, 256, 862, -95, 64, 862, 9, 1917, -95, + 862, 101, 1917, -95, -36, 220, -53, -13, 2008, -33, + -95, 1917, -95, 862, 100, 1917, -2, 1917, -95, 6, + 1, -40, -95, -95, 1917, -45, 390, 52, 388, 122, + 862, 1917, -6, -34, 337, -1, -28, 778, 18, 45, + -95, 1034, -95, 46, 14, 17, 862, 40, 15, 862, + 48, 862, 26, 29, 862, -95, 1826, 140, -95, -95, + -95, -95, -95, -95, 862, -95, -95, -95, -95, 322, + -95, 862, -32, -95, 1917, -95, 95, -95, -95, 1917, + -95, 862, 106, 8, -95, 38, -95, 37, 107, 862, + -95, 31, 33, -95, -18, -95, 1917, -95, 105, 1917, + -95, 181, -95, -95, 113, 1917, 7, -95, -4, 12, + -95, 162, 4, 13, -95, -95, -95, -95, 862, 133, + 1917, -95, 862, 135, 1917, -95, 0, -95, 196, -95, + -95, 862, -95, -95, 206, -95, -95, -95, 108, 1121, + -95, -95, 1379, -95, -95, 1466, -95, -95, -95, -95, + -95, -95, 114, -95, -95, -95, -95, -95, -95, -95, + -95, -95, 450, -95, -12, 361, -95, -95, -95, -95, + 159, 350, 197, -95, -95, 111, -95, -95, 180, -95, + 150, 149, -95, 124, -95, -95, -95, 189, -95, -95, + 109, -95, -95, -95, -95, 85, -95, 603, -95, -95, + 44, 136, 165, -95, 27, -95, -95, 492, 294, -95, + 185, -95, -95, -95, 60, 183, -95, 862, -95, 190, + -95, -95, 36, 41, 192, -95, 862, -95, 199, -95, + -95, 179, -95, 148, -95, 66, 20, 134, 151, 139, + -95, 120, -95, -95, -95, -95, -95, 1292, -95, -95, + 306, -95, -95, 2099, 1553, -95, 397, 81, 333, 87, + 862, 1917, 80, -15, 347, 11, -20, 778, 5, 16, + -95, 1034, -95, -3, -31, 47, 862, 53, 30, 862, + 50, 862, 25, 22, 2, 99, -95, 363, -95, -95, + -95, - -103, 37, 13, -103, -103, -103, -103, -103, -103, -103, - -103, -103, -103, -103, -103, -103, -55, -103, -103, -103, - -103, -103, -103, -103, -103, -103, 89, -103, -103, -103, - 24, -103, -103, 6, 15, 92, 100, -103, 154, 66, - -103, -103, 86, 143, -103, -103, -103, -103, 152, -103, - 144, 140, -103, 134, 135, -103, -103, -103, -103, 161, - 170, 176, -103, -103, -103, -103, 174, -103, 169, 153, - 162, 167, -103, 128, 126, 112, 116, 119, 113, -103, - 111, 104, 110, -103, -103, -103, -103, -103, -103, -103, - -103, -103, -103, -103, 63, -103, 120, -103, 88, 77, - 57, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, 0, 3, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -44, -103, -103, -103, + -103, -103, -103, -103, -103, -103, 44, -103, -103, -103, + 20, -103, -103, -16, 13, 110, 121, -103, 165, 156, + -103, -103, 167, 155, -103, -103, -103, -103, 170, -103, + 171, 211, -103, 126, 125, -103, -103, -103, -103, 130, + 136, 142, -103, -103, -103, -103, 131, -103, 134, 137, + 141, 145, -103, 113, 115, 119, 117, 161, 149, -103, + 160, 83, 45, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, 91, -103, 80, -103, 106, 5, + 51, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, - -103, -103, -103, -103, -103, -103, 28, -103, -103, -103, - -103, -103, 31, -103, -103, 36, -103, -103, -103, -103, - -103, -103, -103, -103, -103, -103, -103, -103, -103, 157, - -103, 125, -24, -103, -103, -14, -103, 210, 27, 160, - -103, -103, -103, -103, -103, -103, -103, -103, 8, -103, - -103, -103, -5, -103, -103, 74, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, 23, -103, -103, -103, + -103, -103, 27, -103, -103, 36, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, 94, + -103, 86, 41, -103, -103, 37, -103, 196, 57, 73, + -103, -103, -103, -103, -103, -103, -103, -103, 54, -103, + -103, -103, 50, -103, -103, 70, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, - -103, 94, -103, -103, 44, -103, 35, -103, 81, -103, - 61, -103, -103, -103, -103, 75, -103, -103, -103, 4, - -7, -103, -103, -103, -103, -103, 26, -103, -103, -103, + -103, 114, -103, -103, 34, -103, 26, -103, 81, -103, + 67, -103, -103, -103, -103, 79, -103, -103, -103, 4, + -10, -103, -103, -103, -103, -103, -5, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, - -103, -103, -103, -103, -103, -103, -103, 68, -103, -103, - -103, -103, 90, -103, -103, -103, -103, -103, -103, -103, - -103, -103, -103, -103, -103, -103, 70, 220, -103, 208, - 231, 230, 234, -103, 101, 82, 60, 76, 79, -103, - -103, -103, -103, -103, -103, -103, -103, 211, -103, 194, - -103, 192, -103, -103, 204, -103, 166, -103, -103, 197, - -103, 23, -103, -1, -103, 9, -103, 180, -103, 181, - 223, -103, -103, 227, -103, -103, -103, -103, -103, -103, - 184, -103, 93, 98, -103, -103, 108, -103, 83, -103, - 78, -103, 40, -103, -103, 109, -103, -103, 102, -103, - -103, 41, -103, 43, -103, 52, -103, 62, -103, -103, - -103, -103, -103, -103, 55, -103, 50, -103, 51, -103, - 107, 49, -103, -103, 73, -103, -103, 154, -103, -103, - -103, 64, -103, -103, -103, -103, 16, -103, 12, 147, - -103, 103, -103, -103, -4, -103, 0, -103, -103, -103, - -103, -103, -103, -103, 7, -103, -103, -103, -103, -103, - -103, 187, -103, -103, 25, -103, -103, -103, -103, 71, - -103, 65, -103, -103, -103, -103, -103, -44, -103, 46, - -103, -34, -103, -103, -103, -103, -21, -103, -103, -45, - -103, -103, -103, -103, -103, -103, -32, -103, -103, 53, - -103, 56, -103, 47, -103, -103, -103, -103, 42, -103, - 45, -103, 38, -103, 48, -103, -103, -103, -103, -103, - -103, 22, -103, -103, 124, -103, -103, -103, -103, 59, - -103, -103, 137, -103, -103, 54, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, -103, 19, -103, -103, + -103, -103, 66, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, -103, -103, 18, 209, -103, 210, + 274, 228, 219, -103, 99, 101, 109, 95, 88, -103, + -103, -103, -103, -103, -103, -103, -103, 180, -103, 192, + -103, 194, -103, -103, 200, -103, 111, -103, -103, 129, + -103, 9, -103, 25, -103, 7, -103, 181, -103, 178, + 182, -103, -103, 207, -103, -103, -103, -103, -103, -103, + 201, -103, 120, 92, -103, -103, 87, -103, 76, -103, + 77, -103, 75, -103, -103, 78, -103, -103, 135, -103, + -103, 42, -103, 43, -103, 46, -103, 52, -103, -103, + -103, -103, -103, -103, 32, -103, 30, -103, 33, -103, + 68, 53, -103, -103, 56, -103, -103, 65, -103, -103, + -103, 71, -103, -103, -103, -103, 55, -103, 40, 177, + -103, 211, -103, -103, 39, -103, 2, -103, -103, -103, + -103, -103, -103, -103, 38, -103, -103, -103, -103, -103, + -103, 89, -103, -103, 59, -103, -103, -103, -103, 60, + -103, 72, -103, -103, -103, -103, -103, -22, -103, 61, + -103, -38, -103, -103, -103, -103, -32, -103, -103, -40, + -103, -103, -103, -103, -103, -103, -58, -103, -103, 24, + -103, 64, -103, 31, -103, -103, -103, -103, 35, -103, + 48, -103, 49, -103, 47, -103, -103, -103, -103, -103, + -103, 63, -103, -103, 127, -103, -103, -103, -103, 58, + -103, -103, 74, -103, -103, 62, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, - -103, -103, 248, -103, -3, 114, -103, -103, -103, -103, - -103, -103, 5, -103, -103, -103, -103, -103, -8, -103, - 85, -103, -103, -103, -103, -103, -103, 11, -103, -103, - -103, -103, -103, -103, -103, -103, -103, 342, -103, -103, - -103, 29, -103, -103, -103, -103, -103, 273, -103, -103, - 3, -103, -103, -103, -103, -103, -103, 18, -103, -103, - -103, -103, -103, -103, -103, -103, 21, -103, -103, -103, - -103, -103, 2, -103, -103, 20, 14, 30, -103, -103, - -103, -103, -103, 284, -103, -103, -2, -103, -103, -103, - 222, -103, -9, -103, -6, -103, 96, 10, -103, -103, - 1, -103, -103, 80, -103, -103, -103, 72, -103, -103, - -103, -103, 69, -103, 58, 67, -103, 97, -103, -103, - -103, -103, -103, 84, -103, -103, -103}; + -103, -103, 103, -103, -7, 96, -103, -103, -103, -103, + -103, -103, 1, -103, -103, -103, -103, -103, -9, -103, + 85, -103, -103, -103, -103, -103, -103, 6, -103, -103, + -103, -103, -103, -103, -103, -103, -103, 261, -103, -103, + -103, 16, -103, -103, -103, -103, -103, 267, -103, -103, + 21, -103, -103, -103, -103, -103, -103, 17, -103, -103, + -103, -103, -103, -103, -103, -103, 10, -103, -103, -103, + -103, -103, -103, -8, -103, -103, -103, 12, -2, 14, + -103, -103, -103, -103, -103, -103, -103, 374, -103, -103, + 11, -103, -103, -103, 256, -103, 8, -103, 15, -103, + 105, 28, -103, -103, 22, -103, -103, 84, -103, -103, + -103, 29, -103, -103, -103, -103, -1, -103, -10, 148, + -103, 82, -103, -103, -103, -103, -103, 205, -103, -103, + -103}; const int QmlJSGrammar::action_info [] = { - -114, 398, -93, 326, 252, 411, -89, -103, 343, -122, - 396, 386, 338, 337, -116, 492, 335, 452, -79, 340, - 540, 328, 384, 561, 435, -119, 448, 347, 452, 461, - 419, -92, 441, -122, 435, -103, 419, 415, 566, 554, - 439, 562, 335, 425, 426, 419, 443, 403, -119, 448, - 435, -116, -92, -114, 435, 411, 394, 569, 252, -89, - -93, 545, 287, 343, 165, 178, 136, 307, 174, 185, - 182, 159, 267, 66, 142, 452, 289, 296, 343, 448, - 404, 94, 291, 144, 411, 341, 252, 96, -111, 435, - 231, 247, 409, 159, 136, 287, 66, 320, 307, 313, - 616, 330, 136, 422, 0, 472, 136, 94, 0, 136, - 136, 301, 289, 322, 246, 438, 53, 161, 309, 613, - 184, 162, 310, 136, 299, 408, 407, 54, 136, 439, - 429, 136, 96, 136, 136, 556, 237, 236, 244, 243, - 251, 250, 510, 244, 243, 242, 241, 136, 423, 492, - 515, 514, 53, 473, 483, 136, 136, 53, 413, 53, - 527, 345, 249, 54, 522, 521, 323, 614, 54, 59, - 54, 507, 506, 57, 541, 450, 267, 244, 243, 80, - 332, 81, 172, 547, 58, 454, 80, 541, 81, 557, - 555, 31, 82, 464, 541, 137, 573, 31, 80, 82, - 81, 0, 167, 80, 510, 81, 541, 305, 0, 560, - 559, 82, 59, 136, 60, 31, 82, 31, 0, 543, - 61, 168, 527, 169, 59, 0, 0, 31, 44, 45, - 542, 80, 543, 81, 44, 45, 31, 548, 546, 543, - 504, 503, 31, 542, 82, 31, 465, 463, 31, 0, - 542, 543, 44, 45, 44, 45, 31, 60, 80, 80, - 81, 81, 542, 61, 44, 45, 230, 229, 502, 60, - 136, 82, 82, 44, 45, 61, 98, 31, 0, 44, - 45, 31, 44, 45, 31, 44, 45, 167, 31, 519, - 518, 0, 0, 44, 45, 99, 136, 100, 3, 2, - 1, 0, 0, 80, 0, 81, 168, 80, 401, 81, - 269, 270, 0, 0, 44, 45, 82, 517, 44, 45, - 82, 44, 45, 551, 550, 44, 45, 80, 80, 81, - 81, 80, 80, 81, 81, 136, 510, 271, 272, 31, - 82, 82, 269, 270, 82, 82, -333, 31, 0, 433, - 432, 0, 0, 0, -333, 0, 0, 31, 0, 31, - 527, 0, 0, 31, 0, 0, 31, 0, 511, 271, - 272, 0, 0, 0, 31, 0, 44, 45, 0, 0, - 0, 0, 512, 509, 44, 45, 0, 0, 230, 229, - 0, 240, 239, 499, 44, 45, 44, 45, 240, 239, - 44, 45, 0, 44, 45, 31, 235, 234, 274, 275, - 508, 44, 45, 0, 0, 31, 0, 276, 0, 498, - 277, 0, 278, 68, 69, 274, 275, 31, 0, 0, - 31, 0, 73, 74, 276, 499, 31, 277, 0, 278, - 75, 76, 44, 45, 77, 0, 78, 235, 234, 0, - 70, 71, 44, 45, 0, 0, 0, 0, 0, 240, - 239, 498, 235, 234, 44, 45, 499, 44, 45, 73, - 74, 0, 500, 44, 45, 0, 0, 75, 76, 73, - 74, 77, 0, 78, 0, 530, 0, 75, 76, 0, - 0, 77, 498, 78, 73, 74, 0, 531, 0, 0, - 274, 275, 75, 76, 31, 0, 77, 0, 78, 276, - 530, 0, 277, 0, 278, 0, 0, 0, 0, 0, - 0, 0, 531, 0, 0, 0, 0, 0, 0, 31, - 533, 0, 0, 0, 499, 0, 0, 0, 0, 0, - 0, 532, 534, 0, 0, 0, 0, 0, 0, 221, - 0, 0, 0, 0, 146, 571, 0, 0, 205, 499, - 498, 0, 0, 0, 147, 0, 532, 534, 148, 0, - 0, 0, 73, 74, 221, 0, 0, 149, 0, 150, - 75, 76, 303, 205, 77, 498, 78, 0, 0, 0, - 151, 0, 152, 57, 0, 0, 27, 28, 0, 0, - 153, 0, 0, 154, 58, 0, 30, 0, 0, 155, - 0, 0, 0, 31, 0, 156, 0, 32, 33, 0, - 34, 0, 0, 0, 0, 0, 0, 38, 0, 0, - 157, 41, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 146, 0, 0, 0, 0, 46, - 44, 45, 0, 47, 147, 0, 0, 0, 148, 0, - 0, 0, 0, 0, 40, 49, 29, 149, 0, 150, - 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 151, 0, 152, 57, 0, 0, 0, 0, 0, 0, - 153, 0, 0, 154, 58, 0, 0, 0, 0, 155, - 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, + 335, -105, 252, 182, -94, 411, -91, 337, 343, 386, + 398, 178, -113, 384, 347, 396, 343, 461, -91, 174, + 338, 252, 340, -95, -116, -113, 96, 439, 403, 136, + 159, 165, 441, 66, 94, -81, 419, 425, 492, 620, + 426, 415, 419, 419, 159, 435, 435, -118, 435, 184, + 411, 94, -95, -94, -116, -121, 561, -121, 452, -124, + -118, 448, 448, 435, 443, 452, 136, 291, 289, 328, + 554, 296, 335, 267, 568, 307, 492, 267, 404, 448, + 571, 409, 287, 66, 435, 411, 341, -105, -124, 545, + 343, 247, 252, 330, 185, 320, 142, 289, 307, 313, + 510, 96, 136, 452, 0, 287, 322, 617, 136, 136, + 540, 246, 429, 136, 136, 0, 472, 422, 527, 438, + 231, 0, 136, 144, 136, 326, 0, 136, 301, 53, + 299, 251, 250, 439, 161, 57, 244, 243, 162, 136, + 54, 136, 53, 136, 242, 241, 58, 394, 244, 243, + 0, 237, 236, 54, 249, 618, 408, 407, 53, 323, + 345, 332, 423, 31, 473, 31, 413, 53, 31, 54, + 522, 521, 507, 506, 483, 137, 305, 541, 54, 31, + 541, 573, 572, 244, 243, 515, 514, 172, 309, 136, + 547, 31, 310, 450, 541, 454, 269, 270, 136, 556, + 44, 45, 44, 45, 464, 44, 45, 136, 0, 31, + 519, 518, 0, 167, 541, 563, 44, 45, 31, 0, + 504, 503, 543, 271, 272, 543, 31, 0, 44, 45, + 136, 31, 168, 542, 169, 31, 542, 31, 517, 543, + 564, 562, 433, 432, 548, 546, 44, 45, 502, 31, + 542, 551, 550, 557, 555, 44, 45, 465, 463, 543, + 560, 559, 59, 44, 45, 3, 2, 1, 44, 45, + 542, 0, 44, 45, 44, 45, 80, 80, 81, 81, + 80, 0, 81, 230, 229, 31, 44, 45, 31, 82, + 82, 31, 80, 82, 81, 80, 0, 81, 80, 59, + 81, 577, 80, 31, 81, 82, 0, 60, 82, 510, + 31, 82, 59, 61, 136, 82, 0, 80, 80, 81, + 81, 0, 44, 45, 0, 44, 45, 527, 44, 45, + 82, 82, 80, 80, 81, 81, 80, 167, 81, 527, + 44, 45, 68, 69, 60, 82, 82, 44, 45, 82, + 61, 80, 0, 81, 269, 270, 168, 60, 401, 68, + 69, 0, 31, 61, 82, 510, 31, 230, 229, 70, + 71, 0, 0, -335, 0, 0, 31, 0, 0, 274, + 275, 271, 272, -335, 0, 0, 70, 71, 276, 98, + 31, 277, 31, 278, 240, 239, 0, 511, 0, 44, + 45, 0, 0, 44, 45, 31, 0, 0, 99, 0, + 100, 512, 509, 44, 45, 0, 0, 31, 0, 31, + 499, 0, 499, 0, 0, 0, 31, 44, 45, 44, + 45, 0, 0, 0, 31, 0, 0, 235, 234, 508, + 0, 0, 44, 45, 0, 0, 498, 0, 498, 240, + 239, 235, 234, 0, 44, 45, 44, 45, 235, 234, + 0, 0, 0, 44, 45, 0, 240, 239, 0, 274, + 275, 44, 45, 0, 0, 0, 73, 74, 276, 31, + 0, 277, 0, 278, 75, 76, 73, 74, 77, 0, + 78, 0, 0, 0, 75, 76, 73, 74, 77, 0, + 78, 0, 530, 0, 75, 76, 0, 0, 77, 499, + 78, 73, 74, 0, 531, 500, 44, 45, 0, 75, + 76, 31, 0, 77, 0, 78, 0, 0, 0, 0, + 0, 73, 74, 0, 0, 498, 0, 0, 0, 75, + 76, 274, 275, 77, 0, 78, 146, 575, 0, 0, + 276, 499, 0, 277, 0, 278, 147, 0, 532, 534, + 148, 0, 0, 0, 0, 0, 221, 0, 0, 149, + 0, 150, 0, 0, 0, 205, 0, 498, 0, 0, + 146, 0, 151, 0, 152, 57, 0, 0, 0, 0, + 147, 0, 153, 0, 148, 154, 58, 0, 0, 0, + 0, 155, 0, 149, 0, 150, 0, 156, 0, 0, + 0, 0, 0, 530, 0, 0, 151, 0, 152, 57, + 0, 0, 157, 0, 0, 531, 153, 0, 0, 154, + 58, 0, 31, 0, 0, 155, 0, 0, 0, 0, + 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 28, 0, 0, 0, 0, 157, 0, 533, 0, + 30, 0, 499, 0, 0, 0, 0, 31, 0, 532, + 534, 32, 33, 0, 34, 0, 0, 221, 0, 0, + 0, 38, 0, 0, 0, 41, 205, 0, 498, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 146, 0, + 0, 0, 0, 46, 44, 45, 0, 47, 147, 0, + 0, 0, 148, 0, 0, 0, 0, 0, 40, 49, + 29, 149, 0, 150, 37, 0, 303, 0, 0, 0, + 0, 0, 0, 0, 151, 0, 152, 57, 0, 0, + 0, 0, 0, 0, 153, 0, 0, 154, 58, 0, + 0, 0, 0, 155, 0, 0, 0, 0, 0, 156, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 27, 28, 0, 0, - 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, - 0, 0, 0, 31, 0, 0, 0, 32, 33, 0, - 34, 0, 0, 0, 0, 0, 0, 38, 0, 0, - 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, - 44, 45, 0, 47, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 49, 29, 0, 0, 0, - 37, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 31, 0, 0, - 0, 32, 33, 0, 34, 0, 0, 0, 35, 0, - 36, 38, 39, 0, 0, 41, 0, 0, 0, 42, - 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 46, 44, 45, 0, 47, 0, 48, - 0, 50, 0, 51, 0, 0, 0, 0, 40, 49, + 0, 32, 33, 0, 34, 0, 0, 0, 0, 0, + 0, 38, 0, 0, 0, 41, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 44, 45, 0, 47, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 40, 49, 29, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, @@ -427,32 +427,23 @@ const int QmlJSGrammar::action_info [] = { 0, 0, 35, 0, 36, 38, 39, 0, 0, 41, 0, 0, 0, 42, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 44, 45, - 0, 47, 0, 48, 0, 50, 266, 51, 0, 0, + 0, 47, 0, 48, 0, 50, 0, 51, 0, 0, 0, 0, 40, 49, 29, 0, 0, 0, 37, 0, - 0, 0, 0, 0, 0, 0, 0, -112, 0, 0, - 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, - 0, 0, 30, 0, 0, 0, 0, 0, 0, 31, - 0, 0, 0, 32, 33, 0, 34, 0, 0, 0, - 35, 0, 36, 38, 39, 0, 0, 41, 0, 0, - 0, 42, 0, 43, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 46, 44, 45, 0, 47, - 0, 48, 0, 50, 0, 51, 0, 0, 0, 0, - 40, 49, 29, 0, 0, 0, 37, 0, 0, 0, - 0, 0, 0, 0, 0, 470, 0, 0, 26, 27, - 28, 0, 0, 0, 0, 0, 0, 0, 0, 30, - 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, - 32, 33, 0, 34, 0, 0, 0, 35, 0, 36, - 38, 39, 0, 0, 41, 0, 0, 0, 42, 0, - 43, 0, 0, 476, 0, 0, 0, 0, 0, 0, - 0, 0, 46, 44, 45, 0, 47, 0, 48, 0, - 50, 0, 51, 0, 0, 0, 0, 40, 49, 29, - 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, - 0, 0, 478, 0, 0, 26, 27, 28, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 26, 27, 28, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, + 0, 0, 0, 0, 0, 31, 0, 0, 0, 32, + 33, 0, 34, 0, 0, 0, 35, 0, 36, 38, + 39, 0, 0, 41, 0, 0, 0, 42, 0, 43, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 46, 44, 45, 0, 47, 0, 48, 0, 50, + 266, 51, 0, 0, 0, 0, 40, 49, 29, 0, + 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, + 0, -114, 0, 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 32, 33, 0, 34, 0, 0, 0, 35, 0, 36, 38, 39, 0, 0, 41, 0, 0, 0, 42, 0, 43, 0, 0, - 481, 0, 0, 0, 0, 0, 0, 0, 0, 46, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 44, 45, 0, 47, 0, 48, 0, 50, 0, 51, 0, 0, 0, 0, 40, 49, 29, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 478, @@ -460,25 +451,25 @@ const int QmlJSGrammar::action_info [] = { 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 32, 33, 0, 34, 0, 0, 0, 35, 0, 36, 38, 39, 0, 0, 41, 0, - 0, 0, 42, 0, 43, 0, 0, 479, 0, 0, + 0, 0, 42, 0, 43, 0, 0, 481, 0, 0, 0, 0, 0, 0, 0, 0, 46, 44, 45, 0, 47, 0, 48, 0, 50, 0, 51, 0, 0, 0, 0, 40, 49, 29, 0, 0, 0, 37, 0, 0, - 0, 0, 0, 0, 0, 0, 26, 27, 28, 0, - 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, - 0, 0, 0, 0, 31, 212, 0, 0, 579, 580, - 0, 34, 0, 0, 0, 35, 0, 36, 38, 39, - 0, 0, 41, 0, 0, 0, 42, 0, 43, 0, - 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, - 46, 44, 45, 0, 47, 0, 48, 0, 50, 0, - 51, 0, 0, 0, 0, 40, 49, 29, 0, 0, - 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, - 470, 0, 0, 26, 27, 28, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 470, 0, 0, 26, + 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, + 30, 0, 0, 0, 0, 0, 0, 31, 0, 0, + 0, 32, 33, 0, 34, 0, 0, 0, 35, 0, + 36, 38, 39, 0, 0, 41, 0, 0, 0, 42, + 0, 43, 0, 0, 471, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 44, 45, 0, 47, 0, 48, + 0, 50, 0, 51, 0, 0, 0, 0, 40, 49, + 29, 0, 0, 0, 37, 0, 0, 0, 0, 0, + 0, 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, - 0, 31, 0, 0, 0, 32, 33, 0, 34, 0, + 0, 31, 212, 0, 0, 583, 584, 0, 34, 0, 0, 0, 35, 0, 36, 38, 39, 0, 0, 41, - 0, 0, 0, 42, 0, 43, 0, 0, 471, 0, - 0, 0, 0, 0, 0, 0, 0, 46, 44, 45, + 0, 0, 0, 42, 0, 43, 0, 0, 0, 0, + 0, 0, 0, 216, 0, 0, 0, 46, 44, 45, 0, 47, 0, 48, 0, 50, 0, 51, 0, 0, 0, 0, 40, 49, 29, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 470, 0, 0, @@ -486,212 +477,229 @@ const int QmlJSGrammar::action_info [] = { 0, 30, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 32, 33, 0, 34, 0, 0, 0, 35, 0, 36, 38, 39, 0, 0, 41, 0, 0, 0, - 42, 0, 43, 0, 0, 471, 0, 0, 499, 0, + 42, 0, 43, 0, 0, 476, 0, 0, 0, 0, 0, 0, 0, 0, 46, 44, 45, 0, 47, 0, 48, 0, 50, 0, 51, 0, 0, 0, 0, 40, - 49, 29, 0, 0, 498, 37, 0, 0, 0, 0, - 0, 0, 0, 0, 104, 105, 106, 0, 0, 108, - 110, 111, 0, 0, 112, 0, 113, 0, 0, 0, - 115, 116, 117, 0, 0, 0, 0, 0, 0, 31, - 118, 119, 120, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, - 0, 0, 0, 0, 0, 0, 44, 45, 125, 126, - 127, 0, 129, 130, 131, 132, 133, 134, 0, 0, - 122, 128, 114, 107, 109, 123, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 104, 105, 106, 0, 0, - 108, 110, 111, 0, 0, 112, 0, 113, 0, 0, - 0, 115, 116, 117, 0, 0, 0, 0, 0, 0, - 388, 118, 119, 120, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 121, 0, 0, 0, 389, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 124, 0, 0, 0, 0, 0, 393, 390, 392, 125, - 126, 127, 0, 129, 130, 131, 132, 133, 134, 0, - 0, 122, 128, 114, 107, 109, 123, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 104, 105, 106, 0, - 0, 108, 110, 111, 0, 0, 112, 0, 113, 0, - 0, 0, 115, 116, 117, 0, 0, 0, 0, 0, - 0, 388, 118, 119, 120, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 121, 0, 0, 0, 389, - 0, 0, 0, 0, 0, 0, 0, 391, 0, 0, - 0, 124, 0, 0, 0, 0, 0, 393, 390, 392, - 125, 126, 127, 0, 129, 130, 131, 132, 133, 134, - 0, 0, 122, 128, 114, 107, 109, 123, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 204, 0, 0, - 0, 0, 206, 0, 26, 27, 28, 208, 0, 0, - 0, 0, 0, 0, 209, 30, 0, 0, 0, 0, - 0, 0, 211, 212, 0, 0, 213, 33, 0, 34, + 49, 29, 0, 0, 0, 37, 0, 0, 0, 0, + 0, 0, 0, 0, 478, 0, 0, 26, 27, 28, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, + 0, 0, 0, 0, 0, 31, 0, 0, 0, 32, + 33, 0, 34, 0, 0, 0, 35, 0, 36, 38, + 39, 0, 0, 41, 0, 0, 0, 42, 0, 43, + 0, 0, 479, 0, 0, 0, 0, 0, 0, 0, + 0, 46, 44, 45, 0, 47, 0, 48, 0, 50, + 0, 51, 0, 0, 0, 0, 40, 49, 29, 0, + 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, + 0, 470, 0, 0, 26, 27, 28, 0, 0, 0, + 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 0, 32, 33, 0, 34, 0, 0, 0, 35, 0, 36, 38, 39, 0, 0, - 41, 0, 0, 0, 42, 0, 43, 0, 0, 0, - 0, 0, 215, 0, 216, 0, 0, 0, 46, 214, - 217, 218, 47, 219, 48, 220, 50, 221, 51, 222, - 223, 0, 0, 40, 49, 29, 205, 207, 0, 37, - 0, 0, 0, 0, 0, 0, 0, 0, 204, 0, - 0, 0, 0, 206, 0, 26, 27, 28, 208, 0, - 0, 0, 0, 0, 0, 209, 210, 0, 0, 0, - 0, 0, 0, 211, 212, 0, 0, 213, 33, 0, - 34, 0, 0, 0, 35, 0, 36, 38, 39, 0, - 0, 41, 0, 0, 0, 42, 0, 43, 0, 0, - 0, 0, 0, 215, 0, 216, 0, 0, 0, 46, - 214, 217, 218, 47, 219, 48, 220, 50, 221, 51, - 222, 223, 0, 0, 40, 49, 29, 205, 207, 0, - 37, 0, 0, 0, 0, 0, 0, 0, 0, 582, - 105, 106, 0, 0, 584, 110, 586, 27, 28, 587, - 0, 113, 0, 0, 0, 115, 589, 590, 0, 0, - 0, 0, 0, 0, 591, 592, 119, 120, 213, 33, - 0, 34, 0, 0, 0, 35, 0, 36, 593, 39, - 0, 0, 595, 0, 0, 0, 42, 0, 43, 0, - 0, 0, 0, 0, 597, 0, 216, 0, 0, 0, - 599, 596, 598, 600, 601, 602, 48, 604, 605, 606, - 607, 608, 609, 0, 0, 594, 603, 588, 583, 585, - 123, 37, 0, 0, 0, 0, 0, 0, 0, 0, - 356, 105, 106, 0, 0, 358, 110, 360, 27, 28, - 361, 0, 113, 0, 0, 0, 115, 363, 364, 0, - 0, 0, 0, 0, 0, 365, 366, 119, 120, 213, - 33, 0, 34, 0, 0, 0, 35, 0, 36, 367, - 39, 0, 0, 369, 0, 0, 0, 42, 0, 43, - 0, -258, 0, 0, 0, 371, 0, 216, 0, 0, - 0, 373, 370, 372, 374, 375, 376, 48, 378, 379, - 380, 381, 382, 383, 0, 0, 368, 377, 362, 357, - 359, 123, 37, 0, 0, 0, 0, 0, 0, 0, - 0, + 41, 0, 0, 0, 42, 0, 43, 0, 0, 471, + 0, 0, 499, 0, 0, 0, 0, 0, 46, 44, + 45, 0, 47, 0, 48, 0, 50, 0, 51, 0, + 0, 0, 0, 40, 49, 29, 0, 0, 498, 37, + 0, 0, 0, 0, 0, 0, 0, 0, 104, 105, + 106, 0, 0, 108, 110, 111, 0, 0, 112, 0, + 113, 0, 0, 0, 115, 116, 117, 0, 0, 0, + 0, 0, 0, 31, 118, 119, 120, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 124, 0, 0, 0, 0, 0, 0, + 44, 45, 125, 126, 127, 0, 129, 130, 131, 132, + 133, 134, 0, 0, 122, 128, 114, 107, 109, 123, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, + 105, 106, 0, 0, 108, 110, 111, 0, 0, 112, + 0, 113, 0, 0, 0, 115, 116, 117, 0, 0, + 0, 0, 0, 0, 388, 118, 119, 120, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 121, 0, + 0, 0, 389, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 124, 0, 0, 0, 0, 0, + 393, 390, 392, 125, 126, 127, 0, 129, 130, 131, + 132, 133, 134, 0, 0, 122, 128, 114, 107, 109, + 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 104, 105, 106, 0, 0, 108, 110, 111, 0, 0, + 112, 0, 113, 0, 0, 0, 115, 116, 117, 0, + 0, 0, 0, 0, 0, 388, 118, 119, 120, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, + 0, 0, 0, 389, 0, 0, 0, 0, 0, 0, + 0, 391, 0, 0, 0, 124, 0, 0, 0, 0, + 0, 393, 390, 392, 125, 126, 127, 0, 129, 130, + 131, 132, 133, 134, 0, 0, 122, 128, 114, 107, + 109, 123, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 204, 0, 0, 0, 0, 206, 0, 26, 27, + 28, 208, 0, 0, 0, 0, 0, 0, 209, 30, + 0, 0, 0, 0, 0, 0, 211, 212, 0, 0, + 213, 33, 0, 34, 0, 0, 0, 35, 0, 36, + 38, 39, 0, 0, 41, 0, 0, 0, 42, 0, + 43, 0, 0, 0, 0, 0, 215, 0, 216, 0, + 0, 0, 46, 214, 217, 218, 47, 219, 48, 220, + 50, 221, 51, 222, 223, 0, 0, 40, 49, 29, + 205, 207, 0, 37, 0, 0, 0, 0, 0, 0, + 0, 0, 204, 0, 0, 0, 0, 206, 0, 26, + 27, 28, 208, 0, 0, 0, 0, 0, 0, 209, + 210, 0, 0, 0, 0, 0, 0, 211, 212, 0, + 0, 213, 33, 0, 34, 0, 0, 0, 35, 0, + 36, 38, 39, 0, 0, 41, 0, 0, 0, 42, + 0, 43, 0, 0, 0, 0, 0, 215, 0, 216, + 0, 0, 0, 46, 214, 217, 218, 47, 219, 48, + 220, 50, 221, 51, 222, 223, 0, 0, 40, 49, + 29, 205, 207, 0, 37, 0, 0, 0, 0, 0, + 0, 0, 0, 586, 105, 106, 0, 0, 588, 110, + 590, 27, 28, 591, 0, 113, 0, 0, 0, 115, + 593, 594, 0, 0, 0, 0, 0, 0, 595, 596, + 119, 120, 213, 33, 0, 34, 0, 0, 0, 35, + 0, 36, 597, 39, 0, 0, 599, 0, 0, 0, + 42, 0, 43, 0, 0, 0, 0, 0, 601, 0, + 216, 0, 0, 0, 603, 600, 602, 604, 605, 606, + 48, 608, 609, 610, 611, 612, 613, 0, 0, 598, + 607, 592, 587, 589, 123, 37, 0, 0, 0, 0, + 0, 0, 0, 0, 356, 105, 106, 0, 0, 358, + 110, 360, 27, 28, 361, 0, 113, 0, 0, 0, + 115, 363, 364, 0, 0, 0, 0, 0, 0, 365, + 366, 119, 120, 213, 33, 0, 34, 0, 0, 0, + 35, 0, 36, 367, 39, 0, 0, 369, 0, 0, + 0, 42, 0, 43, 0, -260, 0, 0, 0, 371, + 0, 216, 0, 0, 0, 373, 370, 372, 374, 375, + 376, 48, 378, 379, 380, 381, 382, 383, 0, 0, + 368, 377, 362, 357, 359, 123, 37, 0, 0, 0, + 0, 0, 0, 0, 0, - 233, 513, 304, 238, 183, 523, 164, 431, 145, 434, - 177, 306, 245, 581, 505, 490, 166, 181, 482, 431, - 520, 549, 565, 544, 558, 302, 385, 405, 434, 570, - 171, 387, 430, 177, 567, 456, 467, 395, 552, 568, - 13, 453, 333, 342, 238, 449, 344, 451, 420, 428, - 455, 245, 462, 233, 346, 424, 427, 397, 138, 233, - 238, 143, 440, 444, 348, 442, 158, 297, 412, 445, - 334, 248, 431, 410, 434, 297, 202, 0, 297, 315, - 135, 331, 177, 245, 477, 329, 0, 141, 0, 480, - 0, 0, 0, 497, 516, 615, 202, 101, 0, 0, - 55, 297, 315, 55, 202, 281, 55, 55, 486, 446, - 0, 297, 0, 0, 399, 95, 55, 400, 181, 55, - 103, 282, 55, 497, 283, 524, 55, 280, 487, 55, - 261, 175, 55, 456, 484, 265, 55, 55, 175, 447, - 55, 55, 485, 55, 55, 447, 279, 55, 84, 175, - 55, 55, 55, 55, 85, 83, 55, 87, 90, 55, - 55, 88, 325, 475, 89, 55, 55, 474, 55, 297, - 97, 86, 327, 79, 55, 55, 324, 56, 65, 0, - 55, 163, 447, 55, 55, 488, 446, 55, 399, 446, - 141, 400, 55, 55, 489, 232, 173, 55, 339, 91, - 297, 55, 55, 62, 336, 466, 0, 55, 92, 55, - 55, 160, 63, 93, 55, 72, 55, 141, 64, 101, - 55, 55, 67, 402, 293, 265, 265, 0, 0, 265, - 298, 610, 293, 612, 55, 308, 0, 265, 311, 265, - 0, 0, 103, 170, 293, 290, 321, 0, 55, 265, - 0, 55, 467, 265, 292, 273, 265, 497, 501, 0, - 55, 300, 0, 293, 288, 265, 295, 293, 265, 268, - 55, 55, 265, 0, 55, 265, 265, 285, 284, 265, - 0, 286, 497, 538, 0, 312, 572, 576, 0, 314, - 0, 0, 0, 0, 0, 0, 529, 539, 0, 0, - 574, 575, 577, 578, 0, 0, 0, 0, 0, 0, + 513, 523, 431, 13, 456, 490, 434, 431, 135, 306, + 505, 302, 567, 558, 467, 520, 482, 233, 569, 145, + 549, 574, 248, 570, 238, 552, 585, 315, 304, 177, + 245, 177, 297, 387, 397, 238, 440, 430, 449, 233, + 445, 544, 238, 233, 342, 427, 344, 444, 346, 455, + 451, 424, 453, 138, 348, 245, 434, 143, 431, 183, + 171, 405, 410, 181, 428, 177, 158, 166, 395, 385, + 420, 164, 202, 442, 297, 412, 334, 333, 329, 0, + 331, 141, 297, 245, 55, 55, 175, 181, 480, 85, + 297, 0, 477, 462, 516, 297, 0, 0, 0, 399, + 475, 0, 400, 141, 474, 497, 261, 524, 55, 173, + 175, 265, 497, 501, 297, 101, 202, 0, 399, 141, + 55, 400, 55, 55, 447, 402, 55, 84, 55, 315, + 97, 55, 297, 283, 55, 55, 456, 202, 103, 55, + 282, 55, 163, 95, 279, 55, 280, 175, 160, 55, + 55, 327, 484, 55, 281, 55, 325, 55, 79, 55, + 86, 55, 88, 485, 87, 55, 55, 0, 65, 56, + 55, 55, 62, 336, 55, 298, 55, 55, 63, 67, + 72, 55, 55, 91, 64, 55, 0, 92, 55, 55, + 446, 93, 0, 300, 90, 55, 55, 488, 486, 399, + 55, 55, 400, 324, 83, 101, 89, 55, 466, 487, + 55, 55, 489, 446, 497, 232, 619, 55, 55, 446, + 55, 55, 293, 265, 0, 265, 265, 265, 103, 170, + 0, 339, 55, 288, 293, 311, 308, 265, 0, 265, + 293, 293, 0, 290, 312, 265, 265, 293, 0, 55, + 55, 55, 265, 447, 265, 265, 292, 273, 268, 55, + 0, 0, 295, 321, 265, 614, 286, 616, 55, 314, + 497, 538, 0, 265, 0, 285, 497, 538, 0, 0, + 576, 0, 0, 0, 529, 539, 467, 0, 0, 0, + 529, 539, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 55, 0, 0, 0, 0, 265, + 0, 284, 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, 497, 538, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 529, 539, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 578, 579, 581, 582, 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, 0, 0}; const int QmlJSGrammar::action_check [] = { - 7, 55, 7, 61, 36, 36, 7, 7, 36, 7, - 55, 8, 33, 60, 7, 88, 36, 36, 33, 55, - 66, 60, 7, 29, 33, 7, 36, 16, 36, 17, - 5, 7, 36, 7, 33, 7, 5, 33, 8, 29, - 20, 36, 36, 55, 7, 5, 60, 60, 7, 36, - 33, 7, 7, 7, 33, 36, 7, 60, 36, 7, - 7, 29, 48, 36, 7, 36, 8, 2, 60, 33, - 8, 2, 1, 1, 8, 36, 78, 61, 36, 36, - 7, 48, 8, 60, 36, 7, 36, 78, 7, 33, - 55, 36, 7, 2, 8, 48, 1, 17, 2, 7, - 0, 31, 8, 10, -1, 8, 8, 48, -1, 8, - 8, 60, 78, 8, 76, 6, 40, 50, 50, 8, - 60, 54, 54, 8, 61, 61, 62, 51, 8, 20, - 7, 8, 78, 8, 8, 7, 61, 62, 61, 62, - 61, 62, 15, 61, 62, 61, 62, 8, 55, 88, - 61, 62, 40, 56, 60, 8, 8, 40, 60, 40, - 33, 60, 60, 51, 61, 62, 61, 56, 51, 12, - 51, 61, 62, 42, 29, 60, 1, 61, 62, 25, - 60, 27, 56, 7, 53, 60, 25, 29, 27, 61, - 62, 29, 38, 8, 29, 56, 7, 29, 25, 38, - 27, -1, 15, 25, 15, 27, 29, 60, -1, 61, - 62, 38, 12, 8, 57, 29, 38, 29, -1, 74, - 63, 34, 33, 36, 12, -1, -1, 29, 66, 67, - 85, 25, 74, 27, 66, 67, 29, 61, 62, 74, - 61, 62, 29, 85, 38, 29, 61, 62, 29, -1, - 85, 74, 66, 67, 66, 67, 29, 57, 25, 25, - 27, 27, 85, 63, 66, 67, 61, 62, 89, 57, - 8, 38, 38, 66, 67, 63, 15, 29, -1, 66, - 67, 29, 66, 67, 29, 66, 67, 15, 29, 61, - 62, -1, -1, 66, 67, 34, 8, 36, 90, 91, - 92, -1, -1, 25, -1, 27, 34, 25, 36, 27, - 18, 19, -1, -1, 66, 67, 38, 89, 66, 67, - 38, 66, 67, 61, 62, 66, 67, 25, 25, 27, - 27, 25, 25, 27, 27, 8, 15, 45, 46, 29, - 38, 38, 18, 19, 38, 38, 36, 29, -1, 61, - 62, -1, -1, -1, 36, -1, -1, 29, -1, 29, - 33, -1, -1, 29, -1, -1, 29, -1, 47, 45, - 46, -1, -1, -1, 29, -1, 66, 67, -1, -1, - -1, -1, 61, 62, 66, 67, -1, -1, 61, 62, - -1, 61, 62, 59, 66, 67, 66, 67, 61, 62, - 66, 67, -1, 66, 67, 29, 61, 62, 23, 24, - 89, 66, 67, -1, -1, 29, -1, 32, -1, 85, - 35, -1, 37, 18, 19, 23, 24, 29, -1, -1, - 29, -1, 23, 24, 32, 59, 29, 35, -1, 37, - 31, 32, 66, 67, 35, -1, 37, 61, 62, -1, - 45, 46, 66, 67, -1, -1, -1, -1, -1, 61, - 62, 85, 61, 62, 66, 67, 59, 66, 67, 23, - 24, -1, 65, 66, 67, -1, -1, 31, 32, 23, - 24, 35, -1, 37, -1, 10, -1, 31, 32, -1, - -1, 35, 85, 37, 23, 24, -1, 22, -1, -1, - 23, 24, 31, 32, 29, -1, 35, -1, 37, 32, - 10, -1, 35, -1, 37, -1, -1, -1, -1, -1, - -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, - 55, -1, -1, -1, 59, -1, -1, -1, -1, -1, - -1, 66, 67, -1, -1, -1, -1, -1, -1, 74, - -1, -1, -1, -1, 3, 55, -1, -1, 83, 59, - 85, -1, -1, -1, 13, -1, 66, 67, 17, -1, - -1, -1, 23, 24, 74, -1, -1, 26, -1, 28, - 31, 32, 31, 83, 35, 85, 37, -1, -1, -1, - 39, -1, 41, 42, -1, -1, 12, 13, -1, -1, - 49, -1, -1, 52, 53, -1, 22, -1, -1, 58, - -1, -1, -1, 29, -1, 64, -1, 33, 34, -1, - 36, -1, -1, -1, -1, -1, -1, 43, -1, -1, - 79, 47, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 3, -1, -1, -1, -1, 65, - 66, 67, -1, 69, 13, -1, -1, -1, 17, -1, - -1, -1, -1, -1, 80, 81, 82, 26, -1, 28, - 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 39, -1, 41, 42, -1, -1, -1, -1, -1, -1, - 49, -1, -1, 52, 53, -1, -1, -1, -1, 58, - -1, -1, -1, -1, -1, 64, -1, -1, -1, -1, + 36, 7, 36, 8, 7, 36, 7, 60, 36, 8, + 55, 36, 7, 7, 16, 55, 36, 17, 7, 60, + 33, 36, 55, 7, 7, 7, 78, 20, 60, 8, + 2, 7, 36, 1, 48, 33, 5, 55, 88, 0, + 7, 33, 5, 5, 2, 33, 33, 7, 33, 60, + 36, 48, 7, 7, 7, 7, 29, 7, 36, 7, + 7, 36, 36, 33, 60, 36, 8, 8, 78, 60, + 29, 61, 36, 1, 8, 2, 88, 1, 7, 36, + 60, 7, 48, 1, 33, 36, 7, 7, 7, 29, + 36, 36, 36, 31, 33, 17, 8, 78, 2, 7, + 15, 78, 8, 36, -1, 48, 8, 8, 8, 8, + 66, 76, 7, 8, 8, -1, 8, 10, 33, 6, + 55, -1, 8, 60, 8, 61, -1, 8, 60, 40, + 61, 61, 62, 20, 50, 42, 61, 62, 54, 8, + 51, 8, 40, 8, 61, 62, 53, 7, 61, 62, + -1, 61, 62, 51, 60, 56, 61, 62, 40, 61, + 60, 60, 55, 29, 56, 29, 60, 40, 29, 51, + 61, 62, 61, 62, 60, 56, 60, 29, 51, 29, + 29, 61, 62, 61, 62, 61, 62, 56, 50, 8, + 7, 29, 54, 60, 29, 60, 18, 19, 8, 7, + 66, 67, 66, 67, 8, 66, 67, 8, -1, 29, + 61, 62, -1, 15, 29, 36, 66, 67, 29, -1, + 61, 62, 74, 45, 46, 74, 29, -1, 66, 67, + 8, 29, 34, 85, 36, 29, 85, 29, 89, 74, + 61, 62, 61, 62, 61, 62, 66, 67, 89, 29, + 85, 61, 62, 61, 62, 66, 67, 61, 62, 74, + 61, 62, 12, 66, 67, 90, 91, 92, 66, 67, + 85, -1, 66, 67, 66, 67, 25, 25, 27, 27, + 25, -1, 27, 61, 62, 29, 66, 67, 29, 38, + 38, 29, 25, 38, 27, 25, -1, 27, 25, 12, + 27, 7, 25, 29, 27, 38, -1, 57, 38, 15, + 29, 38, 12, 63, 8, 38, -1, 25, 25, 27, + 27, -1, 66, 67, -1, 66, 67, 33, 66, 67, + 38, 38, 25, 25, 27, 27, 25, 15, 27, 33, + 66, 67, 18, 19, 57, 38, 38, 66, 67, 38, + 63, 25, -1, 27, 18, 19, 34, 57, 36, 18, + 19, -1, 29, 63, 38, 15, 29, 61, 62, 45, + 46, -1, -1, 36, -1, -1, 29, -1, -1, 23, + 24, 45, 46, 36, -1, -1, 45, 46, 32, 15, + 29, 35, 29, 37, 61, 62, -1, 47, -1, 66, + 67, -1, -1, 66, 67, 29, -1, -1, 34, -1, + 36, 61, 62, 66, 67, -1, -1, 29, -1, 29, + 59, -1, 59, -1, -1, -1, 29, 66, 67, 66, + 67, -1, -1, -1, 29, -1, -1, 61, 62, 89, + -1, -1, 66, 67, -1, -1, 85, -1, 85, 61, + 62, 61, 62, -1, 66, 67, 66, 67, 61, 62, + -1, -1, -1, 66, 67, -1, 61, 62, -1, 23, + 24, 66, 67, -1, -1, -1, 23, 24, 32, 29, + -1, 35, -1, 37, 31, 32, 23, 24, 35, -1, + 37, -1, -1, -1, 31, 32, 23, 24, 35, -1, + 37, -1, 10, -1, 31, 32, -1, -1, 35, 59, + 37, 23, 24, -1, 22, 65, 66, 67, -1, 31, + 32, 29, -1, 35, -1, 37, -1, -1, -1, -1, + -1, 23, 24, -1, -1, 85, -1, -1, -1, 31, + 32, 23, 24, 35, -1, 37, 3, 55, -1, -1, + 32, 59, -1, 35, -1, 37, 13, -1, 66, 67, + 17, -1, -1, -1, -1, -1, 74, -1, -1, 26, + -1, 28, -1, -1, -1, 83, -1, 85, -1, -1, + 3, -1, 39, -1, 41, 42, -1, -1, -1, -1, + 13, -1, 49, -1, 17, 52, 53, -1, -1, -1, + -1, 58, -1, 26, -1, 28, -1, 64, -1, -1, + -1, -1, -1, 10, -1, -1, 39, -1, 41, 42, + -1, -1, 79, -1, -1, 22, 49, -1, -1, 52, + 53, -1, 29, -1, -1, 58, -1, -1, -1, -1, + -1, 64, -1, -1, -1, -1, -1, -1, -1, -1, + 12, 13, -1, -1, -1, -1, 79, -1, 55, -1, + 22, -1, 59, -1, -1, -1, -1, 29, -1, 66, + 67, 33, 34, -1, 36, -1, -1, 74, -1, -1, + -1, 43, -1, -1, -1, 47, 83, -1, 85, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, + -1, -1, -1, 65, 66, 67, -1, 69, 13, -1, + -1, -1, 17, -1, -1, -1, -1, -1, 80, 81, + 82, 26, -1, 28, 86, -1, 31, -1, -1, -1, + -1, -1, -1, -1, 39, -1, 41, 42, -1, -1, + -1, -1, -1, -1, 49, -1, -1, 52, 53, -1, + -1, -1, -1, 58, -1, -1, -1, -1, -1, 64, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 79, -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, 22, -1, -1, -1, - -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, - 36, -1, -1, -1, -1, -1, -1, 43, -1, -1, - -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, - 66, 67, -1, 69, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 80, 81, 82, -1, -1, -1, - 86, -1, -1, -1, -1, -1, -1, -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, - -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, - 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, - -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 65, 66, 67, -1, 69, -1, 71, - -1, 73, -1, 75, -1, -1, -1, -1, 80, 81, + -1, 33, 34, -1, 36, -1, -1, -1, -1, -1, + -1, 43, -1, -1, -1, 47, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 65, 66, 67, -1, 69, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 80, 81, 82, -1, -1, -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, @@ -699,32 +707,23 @@ const int QmlJSGrammar::action_check [] = { -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, - -1, 69, -1, 71, -1, 73, 74, 75, -1, -1, + -1, 69, -1, 71, -1, 73, -1, 75, -1, -1, -1, -1, 80, 81, 82, -1, -1, -1, 86, -1, - -1, -1, -1, -1, -1, -1, -1, 7, -1, -1, - -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, - -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, - -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, - 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, - -1, 51, -1, 53, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 65, 66, 67, -1, 69, - -1, 71, -1, 73, -1, 75, -1, -1, -1, -1, - 80, 81, 82, -1, -1, -1, 86, -1, -1, -1, - -1, -1, -1, -1, -1, 8, -1, -1, 11, 12, - 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, - -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, - 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, - 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, - 53, -1, -1, 56, -1, -1, -1, -1, -1, -1, - -1, -1, 65, 66, 67, -1, 69, -1, 71, -1, - 73, -1, 75, -1, -1, -1, -1, 80, 81, 82, - -1, -1, -1, 86, -1, -1, -1, -1, -1, -1, - -1, -1, 8, -1, -1, 11, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 11, 12, 13, + -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, + -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, + 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, + 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 65, 66, 67, -1, 69, -1, 71, -1, 73, + 74, 75, -1, -1, -1, -1, 80, 81, 82, -1, + -1, -1, 86, -1, -1, -1, -1, -1, -1, -1, + -1, 7, -1, -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, - 56, -1, -1, -1, -1, -1, -1, -1, -1, 65, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, -1, 69, -1, 71, -1, 73, -1, 75, -1, -1, -1, -1, 80, 81, 82, -1, -1, -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, 8, @@ -736,21 +735,21 @@ const int QmlJSGrammar::action_check [] = { -1, -1, -1, -1, -1, -1, 65, 66, 67, -1, 69, -1, 71, -1, 73, -1, 75, -1, -1, -1, -1, 80, 81, 82, -1, -1, -1, 86, -1, -1, - -1, -1, -1, -1, -1, -1, 11, 12, 13, -1, - -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, - -1, -1, -1, -1, 29, 30, -1, -1, 33, 34, - -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, - -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, - -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, - 65, 66, 67, -1, 69, -1, 71, -1, 73, -1, - 75, -1, -1, -1, -1, 80, 81, 82, -1, -1, - -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, - 8, -1, -1, 11, 12, 13, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, + 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, + 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, + -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, + 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, + -1, 53, -1, -1, 56, -1, -1, -1, -1, -1, + -1, -1, -1, 65, 66, 67, -1, 69, -1, 71, + -1, 73, -1, 75, -1, -1, -1, -1, 80, 81, + 82, -1, -1, -1, 86, -1, -1, -1, -1, -1, + -1, -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, - -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, + -1, 29, 30, -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, - -1, -1, -1, 51, -1, 53, -1, -1, 56, -1, - -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, + -1, -1, -1, 51, -1, 53, -1, -1, -1, -1, + -1, -1, -1, 61, -1, -1, -1, 65, 66, 67, -1, 69, -1, 71, -1, 73, -1, 75, -1, -1, -1, -1, 80, 81, 82, -1, -1, -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, @@ -758,113 +757,133 @@ const int QmlJSGrammar::action_check [] = { -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, - 51, -1, 53, -1, -1, 56, -1, -1, 59, -1, + 51, -1, 53, -1, -1, 56, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, -1, 69, -1, 71, -1, 73, -1, 75, -1, -1, -1, -1, 80, - 81, 82, -1, -1, 85, 86, -1, -1, -1, -1, - -1, -1, -1, -1, 4, 5, 6, -1, -1, 9, - 10, 11, -1, -1, 14, -1, 16, -1, -1, -1, - 20, 21, 22, -1, -1, -1, -1, -1, -1, 29, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, - -1, -1, -1, -1, -1, -1, 66, 67, 68, 69, - 70, -1, 72, 73, 74, 75, 76, 77, -1, -1, - 80, 81, 82, 83, 84, 85, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 4, 5, 6, -1, -1, - 9, 10, 11, -1, -1, 14, -1, 16, -1, -1, - -1, 20, 21, 22, -1, -1, -1, -1, -1, -1, - 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 43, -1, -1, -1, 47, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, -1, -1, -1, -1, -1, 65, 66, 67, 68, - 69, 70, -1, 72, 73, 74, 75, 76, 77, -1, - -1, 80, 81, 82, 83, 84, 85, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 4, 5, 6, -1, - -1, 9, 10, 11, -1, -1, 14, -1, 16, -1, - -1, -1, 20, 21, 22, -1, -1, -1, -1, -1, - -1, 29, 30, 31, 32, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 43, -1, -1, -1, 47, - -1, -1, -1, -1, -1, -1, -1, 55, -1, -1, - -1, 59, -1, -1, -1, -1, -1, 65, 66, 67, - 68, 69, 70, -1, 72, 73, 74, 75, 76, 77, - -1, -1, 80, 81, 82, 83, 84, 85, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, - -1, -1, 9, -1, 11, 12, 13, 14, -1, -1, - -1, -1, -1, -1, 21, 22, -1, -1, -1, -1, - -1, -1, 29, 30, -1, -1, 33, 34, -1, 36, + 81, 82, -1, -1, -1, 86, -1, -1, -1, -1, + -1, -1, -1, -1, 8, -1, -1, 11, 12, 13, + -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, + -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, + 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, + 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, + -1, -1, 56, -1, -1, -1, -1, -1, -1, -1, + -1, 65, 66, 67, -1, 69, -1, 71, -1, 73, + -1, 75, -1, -1, -1, -1, 80, 81, 82, -1, + -1, -1, 86, -1, -1, -1, -1, -1, -1, -1, + -1, 8, -1, -1, 11, 12, 13, -1, -1, -1, + -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, + -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, - 47, -1, -1, -1, 51, -1, 53, -1, -1, -1, - -1, -1, 59, -1, 61, -1, -1, -1, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, -1, -1, 80, 81, 82, 83, 84, -1, 86, - -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, - -1, -1, -1, 9, -1, 11, 12, 13, 14, -1, - -1, -1, -1, -1, -1, 21, 22, -1, -1, -1, - -1, -1, -1, 29, 30, -1, -1, 33, 34, -1, - 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, - -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, - -1, -1, -1, 59, -1, 61, -1, -1, -1, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, -1, -1, 80, 81, 82, 83, 84, -1, - 86, -1, -1, -1, -1, -1, -1, -1, -1, 4, - 5, 6, -1, -1, 9, 10, 11, 12, 13, 14, + 47, -1, -1, -1, 51, -1, 53, -1, -1, 56, + -1, -1, 59, -1, -1, -1, -1, -1, 65, 66, + 67, -1, 69, -1, 71, -1, 73, -1, 75, -1, + -1, -1, -1, 80, 81, 82, -1, -1, 85, 86, + -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, + 6, -1, -1, 9, 10, 11, -1, -1, 14, -1, + 16, -1, -1, -1, 20, 21, 22, -1, -1, -1, + -1, -1, -1, 29, 30, 31, 32, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + 66, 67, 68, 69, 70, -1, 72, 73, 74, 75, + 76, 77, -1, -1, 80, 81, 82, 83, 84, 85, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, + 5, 6, -1, -1, 9, 10, 11, -1, -1, 14, -1, 16, -1, -1, -1, 20, 21, 22, -1, -1, - -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, - -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, - -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, - -1, -1, -1, -1, 59, -1, 61, -1, -1, -1, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + -1, -1, -1, -1, 29, 30, 31, 32, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, + -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, 75, 76, 77, -1, -1, 80, 81, 82, 83, 84, - 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, - 4, 5, 6, -1, -1, 9, 10, 11, 12, 13, + 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4, 5, 6, -1, -1, 9, 10, 11, -1, -1, 14, -1, 16, -1, -1, -1, 20, 21, 22, -1, - -1, -1, -1, -1, -1, 29, 30, 31, 32, 33, - 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, - 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, - -1, 55, -1, -1, -1, 59, -1, 61, -1, -1, - -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, -1, -1, -1, -1, 29, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, + -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, + -1, 55, -1, -1, -1, 59, -1, -1, -1, -1, + -1, 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, 75, 76, 77, -1, -1, 80, 81, 82, 83, - 84, 85, 86, -1, -1, -1, -1, -1, -1, -1, - -1, + 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4, -1, -1, -1, -1, 9, -1, 11, 12, + 13, 14, -1, -1, -1, -1, -1, -1, 21, 22, + -1, -1, -1, -1, -1, -1, 29, 30, -1, -1, + 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, + 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, + 53, -1, -1, -1, -1, -1, 59, -1, 61, -1, + -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, -1, -1, 80, 81, 82, + 83, 84, -1, 86, -1, -1, -1, -1, -1, -1, + -1, -1, 4, -1, -1, -1, -1, 9, -1, 11, + 12, 13, 14, -1, -1, -1, -1, -1, -1, 21, + 22, -1, -1, -1, -1, -1, -1, 29, 30, -1, + -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, + 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, + -1, 53, -1, -1, -1, -1, -1, 59, -1, 61, + -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, -1, -1, 80, 81, + 82, 83, 84, -1, 86, -1, -1, -1, -1, -1, + -1, -1, -1, 4, 5, 6, -1, -1, 9, 10, + 11, 12, 13, 14, -1, 16, -1, -1, -1, 20, + 21, 22, -1, -1, -1, -1, -1, -1, 29, 30, + 31, 32, 33, 34, -1, 36, -1, -1, -1, 40, + -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, + 51, -1, 53, -1, -1, -1, -1, -1, 59, -1, + 61, -1, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, -1, -1, 80, + 81, 82, 83, 84, 85, 86, -1, -1, -1, -1, + -1, -1, -1, -1, 4, 5, 6, -1, -1, 9, + 10, 11, 12, 13, 14, -1, 16, -1, -1, -1, + 20, 21, 22, -1, -1, -1, -1, -1, -1, 29, + 30, 31, 32, 33, 34, -1, 36, -1, -1, -1, + 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, + -1, 51, -1, 53, -1, 55, -1, -1, -1, 59, + -1, 61, -1, -1, -1, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, + 80, 81, 82, 83, 84, 85, 86, -1, -1, -1, + -1, -1, -1, -1, -1, - 9, 9, 3, 9, 9, 8, 30, 3, 63, 16, - 9, 2, 2, 15, 9, 2, 30, 9, 3, 3, - 9, 3, 20, 20, 3, 2, 30, 2, 16, 9, - 3, 31, 77, 9, 20, 9, 30, 30, 9, 9, - 3, 3, 2, 2, 9, 3, 3, 2, 92, 3, - 2, 2, 30, 9, 2, 89, 77, 2, 30, 9, - 9, 30, 94, 16, 2, 9, 30, 3, 3, 16, - 9, 3, 3, 2, 16, 3, 2, -1, 3, 9, - 3, 3, 9, 2, 30, 2, -1, 30, -1, 30, - -1, -1, -1, 9, 9, 11, 2, 9, -1, -1, - 40, 3, 9, 40, 2, 45, 40, 40, 42, 42, - -1, 3, -1, -1, 34, 52, 40, 37, 9, 40, - 32, 45, 40, 9, 45, 11, 40, 45, 42, 40, - 40, 42, 40, 9, 42, 45, 40, 40, 42, 42, - 40, 40, 42, 40, 40, 42, 45, 40, 44, 42, - 40, 40, 40, 40, 44, 44, 40, 45, 45, 40, - 40, 45, 64, 26, 45, 40, 40, 30, 40, 3, - 50, 45, 64, 45, 40, 40, 83, 43, 43, -1, - 40, 56, 42, 40, 40, 42, 42, 40, 34, 42, - 30, 37, 40, 40, 42, 101, 36, 40, 96, 46, - 3, 40, 40, 42, 95, 81, -1, 40, 46, 40, - 40, 54, 42, 46, 40, 46, 40, 30, 42, 9, - 40, 40, 48, 36, 40, 45, 45, -1, -1, 45, - 64, 9, 40, 11, 40, 55, -1, 45, 57, 45, - -1, -1, 32, 33, 40, 51, 62, -1, 40, 45, - -1, 40, 30, 45, 62, 47, 45, 9, 10, -1, - 40, 64, -1, 40, 53, 45, 62, 40, 45, 49, - 40, 40, 45, -1, 40, 45, 45, 47, 47, 45, - -1, 47, 9, 10, -1, 62, 13, 3, -1, 62, - -1, -1, -1, -1, -1, -1, 23, 24, -1, -1, - 16, 17, 18, 19, -1, -1, -1, -1, -1, -1, + 9, 8, 3, 3, 9, 2, 16, 3, 3, 2, + 9, 2, 20, 3, 30, 9, 3, 9, 20, 63, + 3, 9, 3, 9, 9, 9, 15, 9, 3, 9, + 2, 9, 3, 31, 2, 9, 94, 77, 3, 9, + 16, 20, 9, 9, 2, 77, 3, 16, 2, 2, + 2, 89, 3, 30, 2, 2, 16, 30, 3, 9, + 3, 2, 2, 9, 3, 9, 30, 30, 30, 30, + 92, 30, 2, 9, 3, 3, 9, 2, 2, -1, + 3, 30, 3, 2, 40, 40, 42, 9, 30, 44, + 3, -1, 30, 30, 9, 3, -1, -1, -1, 34, + 26, -1, 37, 30, 30, 9, 40, 11, 40, 36, + 42, 45, 9, 10, 3, 9, 2, -1, 34, 30, + 40, 37, 40, 40, 42, 36, 40, 44, 40, 9, + 50, 40, 3, 45, 40, 40, 9, 2, 32, 40, + 45, 40, 56, 52, 45, 40, 45, 42, 54, 40, + 40, 64, 42, 40, 45, 40, 64, 40, 45, 40, + 45, 40, 45, 42, 45, 40, 40, -1, 43, 43, + 40, 40, 42, 95, 40, 64, 40, 40, 42, 48, + 46, 40, 40, 46, 42, 40, -1, 46, 40, 40, + 42, 46, -1, 64, 45, 40, 40, 42, 42, 34, + 40, 40, 37, 83, 44, 9, 45, 40, 81, 42, + 40, 40, 42, 42, 9, 101, 11, 40, 40, 42, + 40, 40, 40, 45, -1, 45, 45, 45, 32, 33, + -1, 96, 40, 53, 40, 57, 55, 45, -1, 45, + 40, 40, -1, 51, 62, 45, 45, 40, -1, 40, + 40, 40, 45, 42, 45, 45, 62, 47, 49, 40, + -1, -1, 62, 62, 45, 9, 47, 11, 40, 62, + 9, 10, -1, 45, -1, 47, 9, 10, -1, -1, + 13, -1, -1, -1, 23, 24, 30, -1, -1, -1, + 23, 24, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 40, -1, -1, -1, -1, 45, + -1, 47, -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, 9, 10, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 23, 24, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 16, 17, 18, 19, -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, @@ -872,5 +891,5 @@ const int QmlJSGrammar::action_check [] = { -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}; diff --git a/src/declarative/qml/parser/qmljsgrammar_p.h b/src/declarative/qml/parser/qmljsgrammar_p.h index c760564..1101e69 100644 --- a/src/declarative/qml/parser/qmljsgrammar_p.h +++ b/src/declarative/qml/parser/qmljsgrammar_p.h @@ -154,15 +154,15 @@ public: T_XOR = 78, T_XOR_EQ = 79, - ACCEPT_STATE = 616, - RULE_COUNT = 337, - STATE_COUNT = 617, + ACCEPT_STATE = 620, + RULE_COUNT = 339, + STATE_COUNT = 621, TERMINAL_COUNT = 95, NON_TERMINAL_COUNT = 103, - GOTO_INDEX_OFFSET = 617, - GOTO_INFO_OFFSET = 2231, - GOTO_CHECK_OFFSET = 2231 + GOTO_INDEX_OFFSET = 621, + GOTO_INFO_OFFSET = 2285, + GOTO_CHECK_OFFSET = 2285 }; static const char *const spell []; diff --git a/src/declarative/qml/parser/qmljsparser.cpp b/src/declarative/qml/parser/qmljsparser.cpp index e64774e..7469381 100644 --- a/src/declarative/qml/parser/qmljsparser.cpp +++ b/src/declarative/qml/parser/qmljsparser.cpp @@ -396,26 +396,28 @@ case 42: { sym(1).Node = node; } break; -case 43: { +case 44: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), (NameId *)0, sym(2).sval); node->type = AST::UiPublicMember::Signal; node->propertyToken = loc(1); node->typeToken = loc(2); - node->identifierToken = loc(3); + node->identifierToken = loc(2); node->parameters = sym(4).UiParameterList; + node->semicolonToken = loc(6); sym(1).Node = node; } break; -case 44: { +case 46: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), (NameId *)0, sym(2).sval); node->type = AST::UiPublicMember::Signal; node->propertyToken = loc(1); node->typeToken = loc(2); - node->identifierToken = loc(3); + node->identifierToken = loc(2); + node->semicolonToken = loc(3); sym(1).Node = node; } break; -case 46: { +case 48: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), sym(2).sval, sym(3).sval); node->propertyToken = loc(1); node->typeToken = loc(2); @@ -424,7 +426,7 @@ case 46: { sym(1).Node = node; } break; -case 48: { +case 50: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), sym(3).sval, sym(4).sval); node->isDefaultMember = true; node->defaultToken = loc(1); @@ -435,7 +437,7 @@ case 48: { sym(1).Node = node; } break; -case 50: { +case 52: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), sym(2).sval, sym(3).sval, sym(5).Expression); node->propertyToken = loc(1); @@ -446,7 +448,7 @@ case 50: { sym(1).Node = node; } break; -case 52: { +case 54: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), sym(3).sval, sym(4).sval, sym(6).Expression); node->isDefaultMember = true; @@ -459,76 +461,76 @@ case 52: { sym(1).Node = node; } break; -case 53: { +case 55: { sym(1).Node = makeAstNode(driver->nodePool(), sym(1).Node); } break; -case 54: { +case 56: { sym(1).Node = makeAstNode(driver->nodePool(), sym(1).Node); } break; -case 55: -case 56: +case 57: +case 58: { AST::UiQualifiedId *node = makeAstNode (driver->nodePool(), driver->intern(lexer->characterBuffer(), lexer->characterCount())); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 58: { +case 60: { QString s = QLatin1String(QmlJSGrammar::spell[T_PROPERTY]); sym(1).sval = driver->intern(s.constData(), s.length()); break; } -case 59: { +case 61: { QString s = QLatin1String(QmlJSGrammar::spell[T_SIGNAL]); sym(1).sval = driver->intern(s.constData(), s.length()); break; } -case 60: { +case 62: { AST::ThisExpression *node = makeAstNode (driver->nodePool()); node->thisToken = loc(1); sym(1).Node = node; } break; -case 61: { +case 63: { AST::IdentifierExpression *node = makeAstNode (driver->nodePool(), sym(1).sval); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 62: { +case 64: { AST::NullExpression *node = makeAstNode (driver->nodePool()); node->nullToken = loc(1); sym(1).Node = node; } break; -case 63: { +case 65: { AST::TrueLiteral *node = makeAstNode (driver->nodePool()); node->trueToken = loc(1); sym(1).Node = node; } break; -case 64: { +case 66: { AST::FalseLiteral *node = makeAstNode (driver->nodePool()); node->falseToken = loc(1); sym(1).Node = node; } break; -case 65: { +case 67: { AST::NumericLiteral *node = makeAstNode (driver->nodePool(), sym(1).dval); node->literalToken = loc(1); sym(1).Node = node; } break; -case 66: -case 67: { +case 68: +case 69: { AST::StringLiteral *node = makeAstNode (driver->nodePool(), sym(1).sval); node->literalToken = loc(1); sym(1).Node = node; } break; -case 68: { +case 70: { bool rx = lexer->scanRegExp(Lexer::NoPrefix); if (!rx) { diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, location(lexer), lexer->errorMessage())); @@ -539,7 +541,7 @@ case 68: { sym(1).Node = node; } break; -case 69: { +case 71: { bool rx = lexer->scanRegExp(Lexer::EqualPrefix); if (!rx) { diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, location(lexer), lexer->errorMessage())); @@ -550,28 +552,28 @@ case 69: { sym(1).Node = node; } break; -case 70: { +case 72: { AST::ArrayLiteral *node = makeAstNode (driver->nodePool(), (AST::Elision *) 0); node->lbracketToken = loc(1); node->rbracketToken = loc(2); sym(1).Node = node; } break; -case 71: { +case 73: { AST::ArrayLiteral *node = makeAstNode (driver->nodePool(), sym(2).Elision->finish()); node->lbracketToken = loc(1); node->rbracketToken = loc(3); sym(1).Node = node; } break; -case 72: { +case 74: { AST::ArrayLiteral *node = makeAstNode (driver->nodePool(), sym(2).ElementList->finish ()); node->lbracketToken = loc(1); node->rbracketToken = loc(3); sym(1).Node = node; } break; -case 73: { +case 75: { AST::ArrayLiteral *node = makeAstNode (driver->nodePool(), sym(2).ElementList->finish (), (AST::Elision *) 0); node->lbracketToken = loc(1); @@ -580,7 +582,7 @@ case 73: { sym(1).Node = node; } break; -case 74: { +case 76: { AST::ArrayLiteral *node = makeAstNode (driver->nodePool(), sym(2).ElementList->finish (), sym(4).Elision->finish()); node->lbracketToken = loc(1); @@ -589,7 +591,7 @@ case 74: { sym(1).Node = node; } break; -case 75: { +case 77: { AST::ObjectLiteral *node = 0; if (sym(2).Node) node = makeAstNode (driver->nodePool(), @@ -601,7 +603,7 @@ case 75: { sym(1).Node = node; } break; -case 76: { +case 78: { AST::ObjectLiteral *node = makeAstNode (driver->nodePool(), sym(2).PropertyNameAndValueList->finish ()); node->lbraceToken = loc(1); @@ -609,67 +611,67 @@ case 76: { sym(1).Node = node; } break; -case 77: { +case 79: { AST::NestedExpression *node = makeAstNode(driver->nodePool(), sym(2).Expression); node->lparenToken = loc(1); node->rparenToken = loc(3); sym(1).Node = node; } break; -case 78: { +case 80: { AST::UiQualifiedId *node = makeAstNode (driver->nodePool(), sym(1).sval); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 79: { +case 81: { AST::UiQualifiedId *node = makeAstNode (driver->nodePool(), sym(1).UiQualifiedId, sym(3).sval); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 80: { +case 82: { sym(1).Node = makeAstNode (driver->nodePool(), (AST::Elision *) 0, sym(1).Expression); } break; -case 81: { +case 83: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).Elision->finish(), sym(2).Expression); } break; -case 82: { +case 84: { AST::ElementList *node = makeAstNode (driver->nodePool(), sym(1).ElementList, (AST::Elision *) 0, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 83: { +case 85: { AST::ElementList *node = makeAstNode (driver->nodePool(), sym(1).ElementList, sym(3).Elision->finish(), sym(4).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 84: { +case 86: { AST::Elision *node = makeAstNode (driver->nodePool()); node->commaToken = loc(1); sym(1).Node = node; } break; -case 85: { +case 87: { AST::Elision *node = makeAstNode (driver->nodePool(), sym(1).Elision); node->commaToken = loc(2); sym(1).Node = node; } break; -case 86: { +case 88: { AST::PropertyNameAndValueList *node = makeAstNode (driver->nodePool(), sym(1).PropertyName, sym(3).Expression); node->colonToken = loc(2); sym(1).Node = node; } break; -case 87: { +case 89: { AST::PropertyNameAndValueList *node = makeAstNode (driver->nodePool(), sym(1).PropertyNameAndValueList, sym(3).PropertyName, sym(5).Expression); node->commaToken = loc(2); @@ -677,40 +679,36 @@ case 87: { sym(1).Node = node; } break; -case 88: { +case 90: { AST::IdentifierPropertyName *node = makeAstNode (driver->nodePool(), sym(1).sval); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 89: -case 90: { +case 91: +case 92: { AST::IdentifierPropertyName *node = makeAstNode (driver->nodePool(), driver->intern(lexer->characterBuffer(), lexer->characterCount())); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 91: { +case 93: { AST::StringLiteralPropertyName *node = makeAstNode (driver->nodePool(), sym(1).sval); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 92: { +case 94: { AST::NumericLiteralPropertyName *node = makeAstNode (driver->nodePool(), sym(1).dval); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 93: { +case 95: { AST::IdentifierPropertyName *node = makeAstNode (driver->nodePool(), sym(1).sval); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 94: - -case 95: - case 96: case 97: @@ -768,25 +766,29 @@ case 122: case 123: case 124: + +case 125: + +case 126: { sym(1).sval = driver->intern(lexer->characterBuffer(), lexer->characterCount()); } break; -case 129: { +case 131: { AST::ArrayMemberExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).Expression); node->lbracketToken = loc(2); node->rbracketToken = loc(4); sym(1).Node = node; } break; -case 130: { +case 132: { AST::FieldMemberExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).sval); node->dotToken = loc(2); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 131: { +case 133: { AST::NewMemberExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression, sym(4).ArgumentList); node->newToken = loc(1); node->lparenToken = loc(3); @@ -794,316 +796,309 @@ case 131: { sym(1).Node = node; } break; -case 133: { +case 135: { AST::NewExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->newToken = loc(1); sym(1).Node = node; } break; -case 134: { +case 136: { AST::CallExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).ArgumentList); node->lparenToken = loc(2); node->rparenToken = loc(4); sym(1).Node = node; } break; -case 135: { +case 137: { AST::CallExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).ArgumentList); node->lparenToken = loc(2); node->rparenToken = loc(4); sym(1).Node = node; } break; -case 136: { +case 138: { AST::ArrayMemberExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).Expression); node->lbracketToken = loc(2); node->rbracketToken = loc(4); sym(1).Node = node; } break; -case 137: { +case 139: { AST::FieldMemberExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).sval); node->dotToken = loc(2); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 138: { +case 140: { sym(1).Node = 0; } break; -case 139: { +case 141: { sym(1).Node = sym(1).ArgumentList->finish(); } break; -case 140: { +case 142: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).Expression); } break; -case 141: { +case 143: { AST::ArgumentList *node = makeAstNode (driver->nodePool(), sym(1).ArgumentList, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 145: { +case 147: { AST::PostIncrementExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression); node->incrementToken = loc(2); sym(1).Node = node; } break; -case 146: { +case 148: { AST::PostDecrementExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression); node->decrementToken = loc(2); sym(1).Node = node; } break; -case 148: { +case 150: { AST::DeleteExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->deleteToken = loc(1); sym(1).Node = node; } break; -case 149: { +case 151: { AST::VoidExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->voidToken = loc(1); sym(1).Node = node; } break; -case 150: { +case 152: { AST::TypeOfExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->typeofToken = loc(1); sym(1).Node = node; } break; -case 151: { +case 153: { AST::PreIncrementExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->incrementToken = loc(1); sym(1).Node = node; } break; -case 152: { +case 154: { AST::PreDecrementExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->decrementToken = loc(1); sym(1).Node = node; } break; -case 153: { +case 155: { AST::UnaryPlusExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->plusToken = loc(1); sym(1).Node = node; } break; -case 154: { +case 156: { AST::UnaryMinusExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->minusToken = loc(1); sym(1).Node = node; } break; -case 155: { +case 157: { AST::TildeExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->tildeToken = loc(1); sym(1).Node = node; } break; -case 156: { +case 158: { AST::NotExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->notToken = loc(1); sym(1).Node = node; } break; -case 158: { +case 160: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Mul, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 159: { +case 161: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Div, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 160: { +case 162: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Mod, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 162: { +case 164: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Add, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 163: { +case 165: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Sub, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 165: { +case 167: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::LShift, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 166: { +case 168: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::RShift, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 167: { +case 169: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::URShift, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 169: { +case 171: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Lt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 170: { +case 172: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Gt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 171: { +case 173: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Le, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 172: { +case 174: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Ge, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 173: { +case 175: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::InstanceOf, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 174: { +case 176: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::In, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 176: { +case 178: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Lt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 177: { +case 179: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Gt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 178: { +case 180: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Le, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 179: { +case 181: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Ge, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 180: { +case 182: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::InstanceOf, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 182: { +case 184: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Equal, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 183: { +case 185: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::NotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 184: { +case 186: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::StrictEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 185: { +case 187: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::StrictNotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 187: { +case 189: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Equal, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 188: { +case 190: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::NotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 189: { +case 191: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::StrictEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 190: { - AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, - QSOperator::StrictNotEqual, sym(3).Expression); - node->operatorToken = loc(2); - sym(1).Node = node; -} break; - case 192: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, - QSOperator::BitAnd, sym(3).Expression); + QSOperator::StrictNotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; @@ -1117,7 +1112,7 @@ case 194: { case 196: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, - QSOperator::BitXor, sym(3).Expression); + QSOperator::BitAnd, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; @@ -1131,7 +1126,7 @@ case 198: { case 200: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, - QSOperator::BitOr, sym(3).Expression); + QSOperator::BitXor, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; @@ -1145,7 +1140,7 @@ case 202: { case 204: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, - QSOperator::And, sym(3).Expression); + QSOperator::BitOr, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; @@ -1159,7 +1154,7 @@ case 206: { case 208: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, - QSOperator::Or, sym(3).Expression); + QSOperator::And, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; @@ -1172,6 +1167,13 @@ case 210: { } break; case 212: { + AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, + QSOperator::Or, sym(3).Expression); + node->operatorToken = loc(2); + sym(1).Node = node; +} break; + +case 214: { AST::ConditionalExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).Expression, sym(5).Expression); node->questionToken = loc(2); @@ -1179,7 +1181,7 @@ case 212: { sym(1).Node = node; } break; -case 214: { +case 216: { AST::ConditionalExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).Expression, sym(5).Expression); node->questionToken = loc(2); @@ -1187,112 +1189,112 @@ case 214: { sym(1).Node = node; } break; -case 216: { +case 218: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(2).ival, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 218: { +case 220: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(2).ival, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 219: { +case 221: { sym(1).ival = QSOperator::Assign; } break; -case 220: { +case 222: { sym(1).ival = QSOperator::InplaceMul; } break; -case 221: { +case 223: { sym(1).ival = QSOperator::InplaceDiv; } break; -case 222: { +case 224: { sym(1).ival = QSOperator::InplaceMod; } break; -case 223: { +case 225: { sym(1).ival = QSOperator::InplaceAdd; } break; -case 224: { +case 226: { sym(1).ival = QSOperator::InplaceSub; } break; -case 225: { +case 227: { sym(1).ival = QSOperator::InplaceLeftShift; } break; -case 226: { +case 228: { sym(1).ival = QSOperator::InplaceRightShift; } break; -case 227: { +case 229: { sym(1).ival = QSOperator::InplaceURightShift; } break; -case 228: { +case 230: { sym(1).ival = QSOperator::InplaceAnd; } break; -case 229: { +case 231: { sym(1).ival = QSOperator::InplaceXor; } break; -case 230: { +case 232: { sym(1).ival = QSOperator::InplaceOr; } break; -case 232: { +case 234: { AST::Expression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 233: { +case 235: { sym(1).Node = 0; } break; -case 236: { +case 238: { AST::Expression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 237: { +case 239: { sym(1).Node = 0; } break; -case 254: { +case 256: { AST::Block *node = makeAstNode (driver->nodePool(), sym(2).StatementList); node->lbraceToken = loc(1); node->rbraceToken = loc(3); sym(1).Node = node; } break; -case 255: { +case 257: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).Statement); } break; -case 256: { +case 258: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).StatementList, sym(2).Statement); } break; -case 257: { +case 259: { sym(1).Node = 0; } break; -case 258: { +case 260: { sym(1).Node = sym(1).StatementList->finish (); } break; -case 260: { +case 262: { AST::VariableStatement *node = makeAstNode (driver->nodePool(), sym(2).VariableDeclarationList->finish (/*readOnly=*/sym(1).ival == T_CONST)); node->declarationKindToken = loc(1); @@ -1300,76 +1302,76 @@ case 260: { sym(1).Node = node; } break; -case 261: { +case 263: { sym(1).ival = T_CONST; } break; -case 262: { +case 264: { sym(1).ival = T_VAR; } break; -case 263: { +case 265: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).VariableDeclaration); } break; -case 264: { +case 266: { AST::VariableDeclarationList *node = makeAstNode (driver->nodePool(), sym(1).VariableDeclarationList, sym(3).VariableDeclaration); node->commaToken = loc(2); sym(1).Node = node; } break; -case 265: { +case 267: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).VariableDeclaration); } break; -case 266: { +case 268: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).VariableDeclarationList, sym(3).VariableDeclaration); } break; -case 267: { +case 269: { AST::VariableDeclaration *node = makeAstNode (driver->nodePool(), sym(1).sval, sym(2).Expression); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 268: { +case 270: { AST::VariableDeclaration *node = makeAstNode (driver->nodePool(), sym(1).sval, sym(2).Expression); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 269: { +case 271: { // ### TODO: AST for initializer sym(1) = sym(2); } break; -case 270: { +case 272: { sym(1).Node = 0; } break; -case 272: { +case 274: { // ### TODO: AST for initializer sym(1) = sym(2); } break; -case 273: { +case 275: { sym(1).Node = 0; } break; -case 275: { +case 277: { AST::EmptyStatement *node = makeAstNode (driver->nodePool()); node->semicolonToken = loc(1); sym(1).Node = node; } break; -case 277: { +case 279: { AST::ExpressionStatement *node = makeAstNode (driver->nodePool(), sym(1).Expression); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 278: { +case 280: { AST::IfStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).Statement, sym(7).Statement); node->ifToken = loc(1); node->lparenToken = loc(2); @@ -1378,7 +1380,7 @@ case 278: { sym(1).Node = node; } break; -case 279: { +case 281: { AST::IfStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).Statement); node->ifToken = loc(1); node->lparenToken = loc(2); @@ -1386,7 +1388,7 @@ case 279: { sym(1).Node = node; } break; -case 281: { +case 283: { AST::DoWhileStatement *node = makeAstNode (driver->nodePool(), sym(2).Statement, sym(5).Expression); node->doToken = loc(1); node->whileToken = loc(3); @@ -1396,7 +1398,7 @@ case 281: { sym(1).Node = node; } break; -case 282: { +case 284: { AST::WhileStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).Statement); node->whileToken = loc(1); node->lparenToken = loc(2); @@ -1404,7 +1406,7 @@ case 282: { sym(1).Node = node; } break; -case 283: { +case 285: { AST::ForStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).Expression, sym(7).Expression, sym(9).Statement); node->forToken = loc(1); @@ -1415,7 +1417,7 @@ case 283: { sym(1).Node = node; } break; -case 284: { +case 286: { AST::LocalForStatement *node = makeAstNode (driver->nodePool(), sym(4).VariableDeclarationList->finish (/*readOnly=*/false), sym(6).Expression, sym(8).Expression, sym(10).Statement); @@ -1428,7 +1430,7 @@ case 284: { sym(1).Node = node; } break; -case 285: { +case 287: { AST:: ForEachStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).Expression, sym(7).Statement); node->forToken = loc(1); @@ -1438,7 +1440,7 @@ case 285: { sym(1).Node = node; } break; -case 286: { +case 288: { AST::LocalForEachStatement *node = makeAstNode (driver->nodePool(), sym(4).VariableDeclaration, sym(6).Expression, sym(8).Statement); node->forToken = loc(1); @@ -1449,14 +1451,14 @@ case 286: { sym(1).Node = node; } break; -case 288: { +case 290: { AST::ContinueStatement *node = makeAstNode (driver->nodePool()); node->continueToken = loc(1); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 290: { +case 292: { AST::ContinueStatement *node = makeAstNode (driver->nodePool(), sym(2).sval); node->continueToken = loc(1); node->identifierToken = loc(2); @@ -1464,14 +1466,14 @@ case 290: { sym(1).Node = node; } break; -case 292: { +case 294: { AST::BreakStatement *node = makeAstNode (driver->nodePool()); node->breakToken = loc(1); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 294: { +case 296: { AST::BreakStatement *node = makeAstNode (driver->nodePool(), sym(2).sval); node->breakToken = loc(1); node->identifierToken = loc(2); @@ -1479,14 +1481,14 @@ case 294: { sym(1).Node = node; } break; -case 296: { +case 298: { AST::ReturnStatement *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->returnToken = loc(1); node->semicolonToken = loc(3); sym(1).Node = node; } break; -case 297: { +case 299: { AST::WithStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).Statement); node->withToken = loc(1); node->lparenToken = loc(2); @@ -1494,7 +1496,7 @@ case 297: { sym(1).Node = node; } break; -case 298: { +case 300: { AST::SwitchStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).CaseBlock); node->switchToken = loc(1); node->lparenToken = loc(2); @@ -1502,90 +1504,90 @@ case 298: { sym(1).Node = node; } break; -case 299: { +case 301: { AST::CaseBlock *node = makeAstNode (driver->nodePool(), sym(2).CaseClauses); node->lbraceToken = loc(1); node->rbraceToken = loc(3); sym(1).Node = node; } break; -case 300: { +case 302: { AST::CaseBlock *node = makeAstNode (driver->nodePool(), sym(2).CaseClauses, sym(3).DefaultClause, sym(4).CaseClauses); node->lbraceToken = loc(1); node->rbraceToken = loc(5); sym(1).Node = node; } break; -case 301: { +case 303: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).CaseClause); } break; -case 302: { +case 304: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).CaseClauses, sym(2).CaseClause); } break; -case 303: { +case 305: { sym(1).Node = 0; } break; -case 304: { +case 306: { sym(1).Node = sym(1).CaseClauses->finish (); } break; -case 305: { +case 307: { AST::CaseClause *node = makeAstNode (driver->nodePool(), sym(2).Expression, sym(4).StatementList); node->caseToken = loc(1); node->colonToken = loc(3); sym(1).Node = node; } break; -case 306: { +case 308: { AST::DefaultClause *node = makeAstNode (driver->nodePool(), sym(3).StatementList); node->defaultToken = loc(1); node->colonToken = loc(2); sym(1).Node = node; } break; -case 307: -case 308: { +case 309: +case 310: { AST::LabelledStatement *node = makeAstNode (driver->nodePool(), driver->intern(lexer->characterBuffer(), lexer->characterCount()), sym(3).Statement); node->identifierToken = loc(1); node->colonToken = loc(2); sym(1).Node = node; } break; -case 309: { +case 311: { AST::LabelledStatement *node = makeAstNode (driver->nodePool(), sym(1).sval, sym(3).Statement); node->identifierToken = loc(1); node->colonToken = loc(2); sym(1).Node = node; } break; -case 311: { +case 313: { AST::ThrowStatement *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->throwToken = loc(1); node->semicolonToken = loc(3); sym(1).Node = node; } break; -case 312: { +case 314: { AST::TryStatement *node = makeAstNode (driver->nodePool(), sym(2).Statement, sym(3).Catch); node->tryToken = loc(1); sym(1).Node = node; } break; -case 313: { +case 315: { AST::TryStatement *node = makeAstNode (driver->nodePool(), sym(2).Statement, sym(3).Finally); node->tryToken = loc(1); sym(1).Node = node; } break; -case 314: { +case 316: { AST::TryStatement *node = makeAstNode (driver->nodePool(), sym(2).Statement, sym(3).Catch, sym(4).Finally); node->tryToken = loc(1); sym(1).Node = node; } break; -case 315: { +case 317: { AST::Catch *node = makeAstNode (driver->nodePool(), sym(3).sval, sym(5).Block); node->catchToken = loc(1); node->lparenToken = loc(2); @@ -1594,20 +1596,20 @@ case 315: { sym(1).Node = node; } break; -case 316: { +case 318: { AST::Finally *node = makeAstNode (driver->nodePool(), sym(2).Block); node->finallyToken = loc(1); sym(1).Node = node; } break; -case 318: { +case 320: { AST::DebuggerStatement *node = makeAstNode (driver->nodePool()); node->debuggerToken = loc(1); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 319: { +case 321: { AST::FunctionDeclaration *node = makeAstNode (driver->nodePool(), sym(2).sval, sym(4).FormalParameterList, sym(7).FunctionBody); node->functionToken = loc(1); node->identifierToken = loc(2); @@ -1618,7 +1620,7 @@ case 319: { sym(1).Node = node; } break; -case 320: { +case 322: { AST::FunctionExpression *node = makeAstNode (driver->nodePool(), sym(2).sval, sym(4).FormalParameterList, sym(7).FunctionBody); node->functionToken = loc(1); if (sym(2).sval) @@ -1630,56 +1632,56 @@ case 320: { sym(1).Node = node; } break; -case 321: { +case 323: { AST::FormalParameterList *node = makeAstNode (driver->nodePool(), sym(1).sval); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 322: { +case 324: { AST::FormalParameterList *node = makeAstNode (driver->nodePool(), sym(1).FormalParameterList, sym(3).sval); node->commaToken = loc(2); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 323: { +case 325: { sym(1).Node = 0; } break; -case 324: { +case 326: { sym(1).Node = sym(1).FormalParameterList->finish (); } break; -case 325: { +case 327: { sym(1).Node = 0; } break; -case 327: { +case 329: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).SourceElements->finish ()); } break; -case 328: { +case 330: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).SourceElement); } break; -case 329: { +case 331: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).SourceElements, sym(2).SourceElement); } break; -case 330: { +case 332: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).Statement); } break; -case 331: { +case 333: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).FunctionDeclaration); } break; -case 332: { +case 334: { sym(1).sval = 0; } break; -case 334: { +case 336: { sym(1).Node = 0; } break; diff --git a/src/declarative/qml/parser/qmljsparser_p.h b/src/declarative/qml/parser/qmljsparser_p.h index 6f36484..17f33d6 100644 --- a/src/declarative/qml/parser/qmljsparser_p.h +++ b/src/declarative/qml/parser/qmljsparser_p.h @@ -219,9 +219,9 @@ protected: -#define J_SCRIPT_REGEXPLITERAL_RULE1 68 +#define J_SCRIPT_REGEXPLITERAL_RULE1 70 -#define J_SCRIPT_REGEXPLITERAL_RULE2 69 +#define J_SCRIPT_REGEXPLITERAL_RULE2 71 QT_END_NAMESPACE -- cgit v0.12 From f4c02abe4f4638f2c3b702405119e232fcfe47e8 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Fri, 24 Jul 2009 07:17:02 +0200 Subject: Recognize formal arguments in the left hand side of a binding. --- src/declarative/qml/parser/qmljs.g | 61 +- src/declarative/qml/parser/qmljsgrammar.cpp | 1451 +++++++++++++-------------- src/declarative/qml/parser/qmljsgrammar_p.h | 14 +- src/declarative/qml/parser/qmljsparser.cpp | 475 ++++----- src/declarative/qml/parser/qmljsparser_p.h | 4 +- 5 files changed, 1038 insertions(+), 967 deletions(-) diff --git a/src/declarative/qml/parser/qmljs.g b/src/declarative/qml/parser/qmljs.g index d8d67c3..ccfe7fd 100644 --- a/src/declarative/qml/parser/qmljs.g +++ b/src/declarative/qml/parser/qmljs.g @@ -741,8 +741,8 @@ UiObjectMember: UiObjectDefinition ; UiObjectMember: UiQualifiedId T_COLON T_LBRACKET UiArrayMemberList T_RBRACKET ; /. case $rule_number: { - AST::UiArrayBinding *node = makeAstNode (driver->nodePool(), sym(1).UiQualifiedId->finish(), - sym(4).UiArrayMemberList->finish()); + AST::UiArrayBinding *node = makeAstNode (driver->nodePool(), + sym(1).UiQualifiedId->finish(), sym(4).UiArrayMemberList->finish()); node->colonToken = loc(2); node->lbracketToken = loc(3); node->rbracketToken = loc(5); @@ -750,7 +750,7 @@ case $rule_number: { } break; ./ -UiObjectMember: UiQualifiedId T_COLON Expression UiObjectInitializer ; +UiObjectMember: UiQualifiedId T_COLON Expression UiObjectInitializer ; /. case $rule_number: { if (AST::UiQualifiedId *qualifiedId = reparseAsQualifiedId(sym(3).Expression)) { @@ -769,6 +769,48 @@ case $rule_number: { } break; ./ +UiObjectMember: UiQualifiedId UiSignature T_COLON Expression UiObjectInitializer ; +/. +case $rule_number: { + if (AST::UiQualifiedId *qualifiedId = reparseAsQualifiedId(sym(4).Expression)) { + AST::UiObjectBinding *node = makeAstNode (driver->nodePool(), + sym(1).UiQualifiedId->finish(), qualifiedId, sym(5).UiObjectInitializer); + node->colonToken = loc(3); + sym(1).Node = node; + } else { + sym(1).Node = 0; + + diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, loc(2), + QLatin1String("Expected a type name after token `:'"))); + + return false; // ### recover + } +} break; +./ + +UiObjectMember: UiQualifiedId UiSignature T_COLON Block ; +/.case $rule_number:./ + +UiObjectMember: UiQualifiedId UiSignature T_COLON EmptyStatement ; +/.case $rule_number:./ + +UiObjectMember: UiQualifiedId UiSignature T_COLON ExpressionStatement ; +/.case $rule_number:./ + +UiObjectMember: UiQualifiedId UiSignature T_COLON IfStatement ; --- ### do we really want if statement in a binding? +/.case $rule_number:./ + +/. +{ + AST::UiScriptBinding *node = makeAstNode (driver->nodePool(), + sym(1).UiQualifiedId->finish(), sym(4).Statement); + node->colonToken = loc(3); + sym(1).Node = node; +} break; +./ + + + UiObjectMember: UiQualifiedId T_COLON Block ; /.case $rule_number:./ @@ -783,8 +825,8 @@ UiObjectMember: UiQualifiedId T_COLON IfStatement ; --- ### do we really want if /. { - AST::UiScriptBinding *node = makeAstNode (driver->nodePool(), sym(1).UiQualifiedId->finish(), - sym(3).Statement); + AST::UiScriptBinding *node = makeAstNode (driver->nodePool(), + sym(1).UiQualifiedId->finish(), sym(3).Statement); node->colonToken = loc(2); sym(1).Node = node; } break; @@ -837,6 +879,15 @@ case $rule_number: { } break; ./ +UiFormal: JsIdentifier ; +UiFormal: JsIdentifier T_AS JsIdentifier ; + +UiFormalList: UiFormal ; +UiFormalList: UiFormalList T_COMMA UiFormal ; + +UiSignature: T_LPAREN T_RPAREN ; +UiSignature: T_LPAREN UiFormalList T_RPAREN ; + UiObjectMember: T_SIGNAL T_IDENTIFIER T_LPAREN UiParameterListOpt T_RPAREN T_AUTOMATIC_SEMICOLON ; UiObjectMember: T_SIGNAL T_IDENTIFIER T_LPAREN UiParameterListOpt T_RPAREN T_SEMICOLON ; /. diff --git a/src/declarative/qml/parser/qmljsgrammar.cpp b/src/declarative/qml/parser/qmljsgrammar.cpp index 873307f..21dde3f 100644 --- a/src/declarative/qml/parser/qmljsgrammar.cpp +++ b/src/declarative/qml/parser/qmljsgrammar.cpp @@ -58,392 +58,434 @@ const int QmlJSGrammar::lhs [] = { 95, 95, 95, 96, 99, 99, 102, 102, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 101, 100, 107, 107, 109, 109, 110, 110, 106, 108, - 108, 108, 108, 108, 108, 108, 115, 115, 115, 116, - 116, 117, 117, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 105, 105, 104, - 104, 104, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 105, 105, 122, 122, 122, 122, 121, 121, 124, 124, - 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 128, 128, 129, - 129, 129, 129, 129, 132, 132, 133, 133, 133, 133, - 131, 131, 134, 134, 135, 135, 136, 136, 136, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 138, - 138, 138, 138, 139, 139, 139, 140, 140, 140, 140, - 141, 141, 141, 141, 141, 141, 141, 142, 142, 142, - 142, 142, 142, 143, 143, 143, 143, 143, 144, 144, - 144, 144, 144, 145, 145, 146, 146, 147, 147, 148, - 148, 149, 149, 150, 150, 151, 151, 152, 152, 153, - 153, 154, 154, 155, 155, 156, 156, 125, 125, 157, - 157, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 98, 98, 159, 159, 160, 160, 161, - 161, 97, 97, 97, 97, 97, 97, 97, 97, 97, - 97, 97, 97, 97, 97, 97, 111, 173, 173, 172, - 172, 119, 119, 174, 174, 175, 175, 177, 177, 176, - 178, 181, 179, 179, 182, 180, 180, 112, 113, 113, - 114, 114, 162, 162, 162, 162, 162, 162, 162, 163, - 163, 163, 163, 164, 164, 164, 164, 165, 165, 166, - 168, 183, 183, 186, 186, 184, 184, 187, 185, 167, - 167, 167, 169, 169, 170, 170, 170, 188, 189, 171, - 171, 118, 130, 193, 193, 190, 190, 191, 191, 194, - 195, 195, 196, 196, 192, 192, 123, 123, 197}; + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 116, 116, 116, 117, 117, 118, 118, 119, 119, + 120, 120, 111, 111, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 105, 105, + 104, 104, 104, 123, 123, 123, 123, 123, 123, 123, + 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, + 123, 105, 105, 125, 125, 125, 125, 124, 124, 127, + 127, 129, 129, 129, 129, 129, 129, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 131, 131, + 132, 132, 132, 132, 132, 135, 135, 136, 136, 136, + 136, 134, 134, 137, 137, 138, 138, 139, 139, 139, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 141, 141, 141, 141, 142, 142, 142, 143, 143, 143, + 143, 144, 144, 144, 144, 144, 144, 144, 145, 145, + 145, 145, 145, 145, 146, 146, 146, 146, 146, 147, + 147, 147, 147, 147, 148, 148, 149, 149, 150, 150, + 151, 151, 152, 152, 153, 153, 154, 154, 155, 155, + 156, 156, 157, 157, 158, 158, 159, 159, 128, 128, + 160, 160, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 98, 98, 162, 162, 163, 163, + 164, 164, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 112, 176, 176, + 175, 175, 122, 122, 177, 177, 178, 178, 180, 180, + 179, 181, 184, 182, 182, 185, 183, 183, 113, 114, + 114, 115, 115, 165, 165, 165, 165, 165, 165, 165, + 166, 166, 166, 166, 167, 167, 167, 167, 168, 168, + 169, 171, 186, 186, 189, 189, 187, 187, 190, 188, + 170, 170, 170, 172, 172, 173, 173, 173, 191, 192, + 174, 174, 121, 133, 196, 196, 193, 193, 194, 194, + 197, 198, 198, 199, 199, 195, 195, 126, 126, 200}; const int QmlJSGrammar:: rhs[] = { 2, 2, 2, 2, 1, 1, 1, 2, 3, 3, 5, 5, 3, 3, 4, 4, 6, 6, 5, 5, 0, 1, 1, 2, 1, 3, 2, 3, 2, 1, - 5, 4, 3, 3, 3, 3, 1, 1, 1, 0, - 1, 2, 4, 6, 6, 3, 3, 4, 4, 5, - 5, 6, 6, 7, 7, 1, 1, 1, 1, 1, + 5, 4, 5, 4, 4, 4, 4, 3, 3, 3, + 3, 1, 1, 1, 0, 1, 2, 4, 1, 3, + 1, 3, 2, 3, 6, 6, 3, 3, 4, 4, + 5, 5, 6, 6, 7, 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, 3, 1, 2, 3, 4, 1, 2, 3, 5, + 1, 1, 1, 2, 3, 3, 4, 5, 3, 4, + 3, 1, 3, 1, 2, 3, 4, 1, 2, 3, + 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 3, 5, 1, 2, 4, 4, 4, 3, - 0, 1, 1, 3, 1, 1, 1, 2, 2, 1, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, - 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, - 1, 3, 3, 3, 3, 3, 3, 1, 3, 3, - 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, - 3, 3, 3, 1, 3, 1, 3, 1, 3, 1, - 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, - 3, 1, 3, 1, 5, 1, 5, 1, 3, 1, - 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 0, 1, 1, 3, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 3, 1, 2, 0, - 1, 3, 3, 1, 1, 1, 3, 1, 3, 2, - 2, 2, 0, 1, 2, 0, 1, 1, 2, 2, - 7, 5, 7, 7, 5, 9, 10, 7, 8, 2, - 2, 3, 3, 2, 2, 3, 3, 3, 3, 5, - 5, 3, 5, 1, 2, 0, 1, 4, 3, 3, - 3, 3, 3, 3, 3, 3, 4, 5, 2, 2, - 2, 8, 8, 1, 3, 0, 1, 0, 1, 1, - 1, 2, 1, 1, 0, 1, 0, 1, 2}; + 1, 1, 4, 3, 5, 1, 2, 4, 4, 4, + 3, 0, 1, 1, 3, 1, 1, 1, 2, 2, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, + 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, + 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, + 3, 3, 3, 3, 1, 3, 1, 3, 1, 3, + 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, + 1, 3, 1, 3, 1, 5, 1, 5, 1, 3, + 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 0, 1, 1, 3, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 3, 1, 2, + 0, 1, 3, 3, 1, 1, 1, 3, 1, 3, + 2, 2, 2, 0, 1, 2, 0, 1, 1, 2, + 2, 7, 5, 7, 7, 5, 9, 10, 7, 8, + 2, 2, 3, 3, 2, 2, 3, 3, 3, 3, + 5, 5, 3, 5, 1, 2, 0, 1, 4, 3, + 3, 3, 3, 3, 3, 3, 3, 4, 5, 2, + 2, 2, 8, 8, 1, 3, 0, 1, 0, 1, + 1, 1, 2, 1, 1, 0, 1, 0, 1, 2}; const int QmlJSGrammar::action_default [] = { - 0, 0, 0, 21, 0, 167, 234, 198, 206, 202, - 146, 218, 194, 3, 131, 64, 147, 210, 214, 135, - 164, 145, 150, 130, 184, 171, 0, 71, 72, 67, - 335, 60, 337, 0, 0, 0, 0, 69, 0, 0, - 65, 68, 0, 0, 61, 62, 70, 63, 0, 66, - 0, 0, 160, 0, 0, 147, 166, 149, 148, 0, - 0, 0, 162, 163, 161, 165, 0, 195, 0, 0, - 0, 0, 185, 0, 0, 0, 0, 0, 0, 175, - 0, 0, 0, 169, 170, 168, 173, 177, 176, 174, - 172, 187, 186, 188, 0, 203, 0, 199, 0, 0, - 141, 128, 140, 129, 97, 98, 99, 124, 100, 125, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 126, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 127, 0, 0, 139, 235, 142, - 0, 143, 0, 144, 138, 0, 231, 224, 222, 229, - 230, 228, 227, 233, 226, 225, 223, 232, 219, 0, - 207, 0, 0, 211, 0, 0, 215, 0, 0, 141, - 133, 0, 132, 0, 137, 151, 0, 336, 326, 327, - 0, 324, 0, 325, 0, 328, 242, 249, 248, 256, - 244, 0, 245, 329, 0, 334, 246, 247, 252, 250, - 331, 330, 333, 253, 0, 264, 0, 0, 0, 0, - 335, 60, 0, 337, 61, 236, 278, 62, 0, 0, - 0, 265, 0, 0, 254, 255, 0, 243, 251, 279, - 280, 323, 332, 0, 294, 295, 296, 297, 0, 290, - 291, 292, 293, 320, 321, 0, 0, 0, 0, 0, - 283, 284, 240, 238, 200, 208, 204, 220, 196, 241, - 0, 147, 212, 216, 189, 178, 0, 0, 197, 0, - 0, 0, 0, 190, 0, 0, 0, 0, 0, 182, - 180, 183, 181, 179, 192, 191, 193, 0, 205, 0, - 201, 0, 239, 147, 0, 221, 236, 237, 0, 236, - 0, 0, 286, 0, 0, 0, 288, 0, 209, 0, - 0, 213, 0, 0, 217, 276, 0, 268, 277, 271, - 0, 275, 0, 236, 269, 0, 236, 0, 0, 287, - 0, 0, 0, 289, 336, 326, 0, 0, 328, 0, - 322, 0, 312, 0, 0, 0, 282, 0, 281, 0, - 338, 0, 96, 258, 261, 0, 97, 264, 100, 125, - 102, 103, 67, 107, 108, 60, 109, 112, 65, 68, - 61, 236, 62, 70, 115, 63, 117, 66, 119, 120, - 265, 122, 123, 127, 0, 89, 0, 0, 91, 95, - 93, 79, 92, 94, 0, 90, 78, 259, 257, 135, - 136, 141, 0, 134, 0, 311, 0, 298, 299, 0, - 310, 0, 0, 0, 301, 306, 304, 307, 0, 0, - 305, 306, 0, 302, 0, 303, 260, 309, 0, 260, - 308, 0, 313, 314, 0, 260, 315, 316, 0, 0, - 317, 0, 0, 0, 318, 319, 153, 152, 0, 0, - 0, 285, 0, 0, 0, 300, 273, 266, 0, 274, - 270, 0, 272, 262, 0, 263, 267, 83, 0, 0, - 87, 73, 0, 75, 85, 0, 76, 86, 88, 77, - 84, 74, 0, 80, 157, 155, 159, 156, 154, 158, - 2, 5, 0, 7, 6, 0, 1, 81, 58, 59, + 0, 0, 0, 21, 0, 178, 245, 209, 217, 213, + 157, 229, 205, 3, 142, 75, 158, 221, 225, 146, + 175, 156, 161, 141, 195, 182, 0, 82, 83, 78, + 346, 71, 348, 0, 0, 0, 0, 80, 0, 0, + 76, 79, 0, 0, 72, 73, 81, 74, 0, 77, + 0, 0, 171, 0, 0, 158, 177, 160, 159, 0, + 0, 0, 173, 174, 172, 176, 0, 206, 0, 0, + 0, 0, 196, 0, 0, 0, 0, 0, 0, 186, + 0, 0, 0, 180, 181, 179, 184, 188, 187, 185, + 183, 198, 197, 199, 0, 214, 0, 210, 0, 0, + 152, 139, 151, 140, 108, 109, 110, 135, 111, 136, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 137, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 138, 0, 0, 150, 246, 153, + 0, 154, 0, 155, 149, 0, 242, 235, 233, 240, + 241, 239, 238, 244, 237, 236, 234, 243, 230, 0, + 218, 0, 0, 222, 0, 0, 226, 0, 0, 152, + 144, 0, 143, 0, 148, 162, 0, 347, 337, 338, + 0, 335, 0, 336, 0, 339, 253, 260, 259, 267, + 255, 0, 256, 340, 0, 345, 257, 258, 263, 261, + 342, 341, 344, 264, 0, 275, 0, 0, 0, 0, + 346, 71, 0, 348, 72, 247, 289, 73, 0, 0, + 0, 276, 0, 0, 265, 266, 0, 254, 262, 290, + 291, 334, 343, 0, 305, 306, 307, 308, 0, 301, + 302, 303, 304, 331, 332, 0, 0, 0, 0, 0, + 294, 295, 251, 249, 211, 219, 215, 231, 207, 252, + 0, 158, 223, 227, 200, 189, 0, 0, 208, 0, + 0, 0, 0, 201, 0, 0, 0, 0, 0, 193, + 191, 194, 192, 190, 203, 202, 204, 0, 216, 0, + 212, 0, 250, 158, 0, 232, 247, 248, 0, 247, + 0, 0, 297, 0, 0, 0, 299, 0, 220, 0, + 0, 224, 0, 0, 228, 287, 0, 279, 288, 282, + 0, 286, 0, 247, 280, 0, 247, 0, 0, 298, + 0, 0, 0, 300, 347, 337, 0, 0, 339, 0, + 333, 0, 323, 0, 0, 0, 293, 0, 292, 0, + 349, 0, 107, 269, 272, 0, 108, 275, 111, 136, + 113, 114, 78, 118, 119, 71, 120, 123, 76, 79, + 72, 247, 73, 81, 126, 74, 128, 77, 130, 131, + 276, 133, 134, 138, 0, 100, 0, 0, 102, 106, + 104, 90, 103, 105, 0, 101, 89, 270, 268, 146, + 147, 152, 0, 145, 0, 322, 0, 309, 310, 0, + 321, 0, 0, 0, 312, 317, 315, 318, 0, 0, + 316, 317, 0, 313, 0, 314, 271, 320, 0, 271, + 319, 0, 324, 325, 0, 271, 326, 327, 0, 0, + 328, 0, 0, 0, 329, 330, 164, 163, 0, 0, + 0, 296, 0, 0, 0, 311, 284, 277, 0, 285, + 281, 0, 283, 273, 0, 274, 278, 94, 0, 0, + 98, 84, 0, 86, 96, 0, 87, 97, 99, 88, + 95, 85, 0, 91, 168, 166, 170, 167, 165, 169, + 2, 5, 0, 7, 6, 0, 1, 92, 69, 70, 0, 0, 0, 9, 10, 0, 11, 12, 0, 13, - 0, 0, 14, 0, 19, 20, 82, 0, 15, 16, - 0, 17, 18, 8, 22, 0, 4, 0, 29, 56, - 0, 0, 61, 27, 62, 30, 23, 0, 0, 57, - 0, 39, 38, 37, 0, 0, 50, 0, 51, 0, - 54, 55, 0, 0, 0, 48, 0, 49, 0, 52, - 53, 0, 46, 40, 47, 41, 0, 0, 0, 0, - 43, 0, 44, 45, 42, 28, 24, 0, 33, 34, - 0, 35, 36, 260, 0, 32, 97, 264, 100, 125, - 102, 103, 67, 107, 108, 60, 109, 112, 65, 68, - 61, 236, 62, 70, 115, 63, 117, 66, 119, 120, - 265, 122, 123, 127, 64, 0, 25, 0, 31, 26, - 339}; + 0, 0, 14, 0, 19, 20, 93, 0, 15, 16, + 0, 17, 18, 8, 22, 0, 4, 0, 29, 67, + 0, 0, 72, 27, 73, 30, 23, 0, 0, 68, + 0, 44, 43, 42, 0, 0, 61, 0, 62, 0, + 65, 66, 0, 0, 0, 59, 0, 60, 0, 63, + 64, 0, 57, 45, 58, 46, 0, 0, 0, 0, + 48, 0, 55, 56, 47, 28, 24, 0, 0, 0, + 38, 39, 0, 40, 41, 271, 0, 32, 108, 275, + 111, 136, 113, 114, 78, 118, 119, 71, 120, 123, + 76, 79, 72, 247, 73, 81, 126, 74, 128, 77, + 130, 131, 276, 133, 134, 138, 75, 0, 25, 0, + 31, 26, 49, 53, 51, 0, 0, 50, 0, 54, + 52, 0, 34, 35, 0, 36, 37, 33, 350}; const int QmlJSGrammar::goto_default [] = { 4, 496, 353, 191, 495, 526, 491, 494, 493, 15, - 525, 535, 537, 536, 615, 528, 186, 190, 192, 196, - 553, 566, 565, 195, 227, 23, 469, 468, 351, 350, - 6, 349, 352, 102, 19, 14, 140, 21, 10, 139, - 16, 22, 52, 20, 5, 25, 24, 264, 12, 258, - 7, 254, 9, 256, 8, 255, 17, 262, 18, 263, - 11, 257, 253, 294, 406, 259, 260, 197, 188, 187, - 199, 228, 198, 203, 224, 225, 189, 355, 354, 226, - 458, 457, 316, 317, 460, 319, 459, 318, 414, 418, - 421, 417, 416, 436, 437, 180, 194, 176, 179, 193, - 201, 200, 0}; + 525, 535, 537, 536, 617, 528, 579, 186, 190, 192, + 196, 553, 566, 565, 624, 625, 195, 227, 23, 469, + 468, 351, 350, 6, 349, 352, 102, 19, 14, 140, + 21, 10, 139, 16, 22, 52, 20, 5, 25, 24, + 264, 12, 258, 7, 254, 9, 256, 8, 255, 17, + 262, 18, 263, 11, 257, 253, 294, 406, 259, 260, + 197, 188, 187, 199, 228, 198, 203, 224, 225, 189, + 355, 354, 226, 458, 457, 316, 317, 460, 319, 459, + 318, 414, 418, 421, 417, 416, 436, 437, 180, 194, + 176, 179, 193, 201, 200, 0}; const int QmlJSGrammar::action_index [] = { - 175, 862, 1917, -50, 39, 89, -95, 32, -14, -52, - 374, -95, 341, 21, -95, -95, 577, 42, 84, 198, - 250, -95, -95, -95, 473, 252, 862, -95, -95, -95, - 259, -95, 1735, 1208, 862, 862, 862, -95, 638, 862, - -95, -95, 862, 862, -95, -95, -95, -95, 862, -95, - 862, 862, -95, 862, 862, 93, 300, -95, -95, 862, - 862, 862, -95, -95, -95, 287, 862, 324, 862, 862, - 862, 862, 453, 862, 862, 862, 862, 862, 862, 307, - 862, 862, 862, 118, 102, 127, 308, 293, 326, 251, - 255, 463, 488, 508, 862, 23, 862, 82, 1644, 862, - 862, -95, -95, -95, -95, -95, -95, -95, -95, -95, + 157, 803, 2033, -22, 55, 68, -95, 96, 32, -10, + 282, -95, 348, 42, -95, -95, 636, 92, 75, 201, + 218, -95, -95, -95, 544, 253, 803, -95, -95, -95, + 179, -95, 1760, 1230, 803, 803, 803, -95, 719, 803, + -95, -95, 803, 803, -95, -95, -95, -95, 803, -95, + 803, 803, -95, 803, 803, 104, 202, -95, -95, 803, + 803, 803, -95, -95, -95, 198, 803, 340, 803, 803, + 803, 803, 544, 803, 803, 803, 803, 803, 803, 206, + 803, 803, 803, 64, 72, 69, 253, 167, 182, 158, + 150, 454, 544, 544, 803, -70, 803, 96, 1669, 803, + 803, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, - -95, -95, -95, -95, -95, 119, 862, -95, -95, 88, - 63, -95, 862, -95, -95, 862, -95, -95, -95, -95, - -95, -95, -95, -95, -95, -95, -95, -95, -95, 862, - 3, 862, 862, 28, 24, 862, -95, 1644, 862, 862, - -95, 131, -95, -41, -95, -95, -25, -95, 208, -5, - -11, -95, 202, -95, 61, 2008, -95, -95, -95, -95, - -95, 222, -95, -95, 65, -95, -95, -95, -95, -95, - -95, 2008, -95, -95, 376, -95, 405, 75, 1917, 56, - 274, 79, 54, 2190, 71, 862, -95, 74, 49, 862, - 51, -95, 43, 67, -95, -95, 281, -95, -95, -95, - -95, -95, -95, 90, -95, -95, -95, -95, 83, -95, - -95, -95, -95, -95, -95, 35, 55, 862, 94, 70, - -95, -95, 946, -95, 76, 34, -10, -95, 336, 59, - 10, 695, 73, 138, 356, 277, 262, 862, 178, 862, - 862, 862, 862, 446, 862, 862, 862, 862, 862, 267, - 273, 292, 270, 311, 446, 518, 446, 862, 19, 862, - 72, 862, -95, 543, 862, -95, 862, 58, 69, 862, - 68, 1917, -95, 862, 116, 1917, -95, 862, 57, 862, - 862, 96, 92, 862, -95, 78, 98, 62, -95, -95, - 862, -95, 256, 862, -95, 64, 862, 9, 1917, -95, - 862, 101, 1917, -95, -36, 220, -53, -13, 2008, -33, - -95, 1917, -95, 862, 100, 1917, -2, 1917, -95, 6, - 1, -40, -95, -95, 1917, -45, 390, 52, 388, 122, - 862, 1917, -6, -34, 337, -1, -28, 778, 18, 45, - -95, 1034, -95, 46, 14, 17, 862, 40, 15, 862, - 48, 862, 26, 29, 862, -95, 1826, 140, -95, -95, - -95, -95, -95, -95, 862, -95, -95, -95, -95, 322, - -95, 862, -32, -95, 1917, -95, 95, -95, -95, 1917, - -95, 862, 106, 8, -95, 38, -95, 37, 107, 862, - -95, 31, 33, -95, -18, -95, 1917, -95, 105, 1917, - -95, 181, -95, -95, 113, 1917, 7, -95, -4, 12, - -95, 162, 4, 13, -95, -95, -95, -95, 862, 133, - 1917, -95, 862, 135, 1917, -95, 0, -95, 196, -95, - -95, 862, -95, -95, 206, -95, -95, -95, 108, 1121, - -95, -95, 1379, -95, -95, 1466, -95, -95, -95, -95, - -95, -95, 114, -95, -95, -95, -95, -95, -95, -95, - -95, -95, 450, -95, -12, 361, -95, -95, -95, -95, - 159, 350, 197, -95, -95, 111, -95, -95, 180, -95, - 150, 149, -95, 124, -95, -95, -95, 189, -95, -95, - 109, -95, -95, -95, -95, 85, -95, 603, -95, -95, - 44, 136, 165, -95, 27, -95, -95, 492, 294, -95, - 185, -95, -95, -95, 60, 183, -95, 862, -95, 190, - -95, -95, 36, 41, 192, -95, 862, -95, 199, -95, - -95, 179, -95, 148, -95, 66, 20, 134, 151, 139, - -95, 120, -95, -95, -95, -95, -95, 1292, -95, -95, - 306, -95, -95, 2099, 1553, -95, 397, 81, 333, 87, - 862, 1917, 80, -15, 347, 11, -20, 778, 5, 16, - -95, 1034, -95, -3, -31, 47, 862, 53, 30, 862, - 50, 862, 25, 22, 2, 99, -95, 363, -95, -95, - -95, + -95, -95, -95, -95, -95, 137, 803, -95, -95, 82, + 61, -95, 803, -95, -95, 803, -95, -95, -95, -95, + -95, -95, -95, -95, -95, -95, -95, -95, -95, 803, + 6, 803, 803, 43, 39, 803, -95, 1669, 803, 803, + -95, 143, -95, 9, -95, -95, 29, -95, 264, 59, + 10, -95, 259, -95, 8, 1942, -95, -95, -95, -95, + -95, 274, -95, -95, 31, -95, -95, -95, -95, -95, + -95, 1942, -95, -95, 421, -95, 414, 105, 2033, 40, + 234, 71, 41, 2215, 66, 803, -95, 65, 28, 803, + 20, -95, 22, 11, -95, -95, 290, -95, -95, -95, + -95, -95, -95, 119, -95, -95, -95, -95, 112, -95, + -95, -95, -95, -95, -95, -17, 27, 803, 135, 117, + -95, -95, 975, -95, 48, -6, 62, -95, 400, 85, + 63, 569, 93, 102, 472, 235, 205, 803, 400, 803, + 803, 803, 803, 398, 803, 803, 803, 803, 803, 253, + 295, 323, 241, 323, 472, 472, 355, 803, 5, 803, + 81, 803, -95, 636, 803, -95, 803, 76, 53, 803, + 57, 2033, -95, 803, 146, 2033, -95, 803, 54, 803, + 803, 90, 84, 803, -95, 12, 125, -24, -95, -95, + 803, -95, 203, 803, -95, -49, 803, -47, 2033, -95, + 803, 130, 2033, -95, -34, 285, -28, 0, 1942, -21, + -95, 2033, -95, 803, 129, 2033, 1, 2033, -95, 17, + 19, -29, -95, -95, 2033, -33, 405, 21, 375, 107, + 803, 2033, 23, -20, 305, -1, -31, 719, 3, 4, + -95, 891, -95, 7, -35, -3, 803, 33, 2, 803, + 13, 803, -18, -11, 803, -95, 1851, 16, -95, -95, + -95, -95, -95, -95, 803, -95, -95, -95, -95, 281, + -95, 803, -45, -95, 2033, -95, 70, -95, -95, 2033, + -95, 803, 122, -12, -95, 14, -95, 34, 106, 803, + -95, -2, 30, -95, -19, -95, 2033, -95, 103, 2033, + -95, 250, -95, -95, 116, 2033, 18, -95, -5, 2, + -95, 280, -60, 2, -95, -95, -95, -95, 803, 110, + 2033, -95, 803, 99, 2033, -95, -8, -95, 156, -95, + -95, 803, -95, -95, 136, -95, -95, -95, 97, 1317, + -95, -95, 1404, -95, -95, 1491, -95, -95, -95, -95, + -95, -95, 98, -95, -95, -95, -95, -95, -95, -95, + -95, -95, 433, -95, 51, 344, -95, -95, -95, -95, + 139, 366, 155, -95, -95, 73, -95, -95, 186, -95, + 190, 162, -95, 101, -95, -95, -95, 131, -95, -95, + 88, -95, -95, -95, -95, 111, -95, 495, -95, -95, + 47, 298, 221, -95, 60, -95, -95, 518, 306, -95, + 255, -95, -95, -95, 58, 292, -95, 803, -95, 246, + -95, -95, 52, 56, 164, -95, 803, -95, 228, -95, + -95, 151, -95, 209, -95, 95, 67, 175, 200, 210, + -95, 86, -95, -95, -95, -95, -95, 1143, 303, 91, + -95, -95, 347, -95, -95, 2124, 1578, -95, 397, 89, + 386, 80, 803, 2033, 94, 26, 308, 74, 25, 719, + 44, 49, -95, 891, -95, 45, 24, 37, 803, 36, + 15, 803, 50, 803, 38, 35, 46, 120, -95, 372, + -95, -95, -14, -95, -95, 183, 238, -95, 257, -95, + -95, 1059, -95, -95, 335, -95, -95, -95, -95, - -103, 0, 3, -103, -103, -103, -103, -103, -103, -103, - -103, -103, -103, -103, -103, -103, -44, -103, -103, -103, - -103, -103, -103, -103, -103, -103, 44, -103, -103, -103, - 20, -103, -103, -16, 13, 110, 121, -103, 165, 156, - -103, -103, 167, 155, -103, -103, -103, -103, 170, -103, - 171, 211, -103, 126, 125, -103, -103, -103, -103, 130, - 136, 142, -103, -103, -103, -103, 131, -103, 134, 137, - 141, 145, -103, 113, 115, 119, 117, 161, 149, -103, - 160, 83, 45, -103, -103, -103, -103, -103, -103, -103, - -103, -103, -103, -103, 91, -103, 80, -103, 106, 5, - 51, -103, -103, -103, -103, -103, -103, -103, -103, -103, - -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, - -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, - -103, -103, -103, -103, -103, -103, 23, -103, -103, -103, - -103, -103, 27, -103, -103, 36, -103, -103, -103, -103, - -103, -103, -103, -103, -103, -103, -103, -103, -103, 94, - -103, 86, 41, -103, -103, 37, -103, 196, 57, 73, - -103, -103, -103, -103, -103, -103, -103, -103, 54, -103, - -103, -103, 50, -103, -103, 70, -103, -103, -103, -103, - -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, - -103, 114, -103, -103, 34, -103, 26, -103, 81, -103, - 67, -103, -103, -103, -103, 79, -103, -103, -103, 4, - -10, -103, -103, -103, -103, -103, -5, -103, -103, -103, - -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, - -103, -103, -103, -103, -103, -103, -103, 19, -103, -103, - -103, -103, 66, -103, -103, -103, -103, -103, -103, -103, - -103, -103, -103, -103, -103, -103, 18, 209, -103, 210, - 274, 228, 219, -103, 99, 101, 109, 95, 88, -103, - -103, -103, -103, -103, -103, -103, -103, 180, -103, 192, - -103, 194, -103, -103, 200, -103, 111, -103, -103, 129, - -103, 9, -103, 25, -103, 7, -103, 181, -103, 178, - 182, -103, -103, 207, -103, -103, -103, -103, -103, -103, - 201, -103, 120, 92, -103, -103, 87, -103, 76, -103, - 77, -103, 75, -103, -103, 78, -103, -103, 135, -103, - -103, 42, -103, 43, -103, 46, -103, 52, -103, -103, - -103, -103, -103, -103, 32, -103, 30, -103, 33, -103, - 68, 53, -103, -103, 56, -103, -103, 65, -103, -103, - -103, 71, -103, -103, -103, -103, 55, -103, 40, 177, - -103, 211, -103, -103, 39, -103, 2, -103, -103, -103, - -103, -103, -103, -103, 38, -103, -103, -103, -103, -103, - -103, 89, -103, -103, 59, -103, -103, -103, -103, 60, - -103, 72, -103, -103, -103, -103, -103, -22, -103, 61, - -103, -38, -103, -103, -103, -103, -32, -103, -103, -40, - -103, -103, -103, -103, -103, -103, -58, -103, -103, 24, - -103, 64, -103, 31, -103, -103, -103, -103, 35, -103, - 48, -103, 49, -103, 47, -103, -103, -103, -103, -103, - -103, 63, -103, -103, 127, -103, -103, -103, -103, 58, - -103, -103, 74, -103, -103, 62, -103, -103, -103, -103, - -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, - -103, -103, 103, -103, -7, 96, -103, -103, -103, -103, - -103, -103, 1, -103, -103, -103, -103, -103, -9, -103, - 85, -103, -103, -103, -103, -103, -103, 6, -103, -103, - -103, -103, -103, -103, -103, -103, -103, 261, -103, -103, - -103, 16, -103, -103, -103, -103, -103, 267, -103, -103, - 21, -103, -103, -103, -103, -103, -103, 17, -103, -103, - -103, -103, -103, -103, -103, -103, 10, -103, -103, -103, - -103, -103, -103, -8, -103, -103, -103, 12, -2, 14, - -103, -103, -103, -103, -103, -103, -103, 374, -103, -103, - 11, -103, -103, -103, 256, -103, 8, -103, 15, -103, - 105, 28, -103, -103, 22, -103, -103, 84, -103, -103, - -103, 29, -103, -103, -103, -103, -1, -103, -10, 148, - -103, 82, -103, -103, -103, -103, -103, 205, -103, -103, - -103}; + -106, 3, 1, -106, -106, -106, -106, -106, -106, -106, + -106, -106, -106, -106, -106, -106, -54, -106, -106, -106, + -106, -106, -106, -106, -106, -106, 72, -106, -106, -106, + 4, -106, -106, -16, 18, 100, 170, -106, 174, 167, + -106, -106, 164, 182, -106, -106, -106, -106, 127, -106, + 126, 117, -106, 113, 131, -106, -106, -106, -106, 146, + 135, 143, -106, -106, -106, -106, 139, -106, 159, 173, + 109, 83, -106, 136, 149, 150, 156, 133, 120, -106, + 158, 176, 177, -106, -106, -106, -106, -106, -106, -106, + -106, -106, -106, -106, 91, -106, 101, -106, 94, -2, + -29, -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, -106, 33, -106, -106, -106, + -106, -106, 14, -106, -106, 19, -106, -106, -106, -106, + -106, -106, -106, -106, -106, -106, -106, -106, -106, 85, + -106, 63, 49, -106, -106, 53, -106, 311, 60, 118, + -106, -106, -106, -106, -106, -106, -106, -106, 51, -106, + -106, -106, -4, -106, -106, 59, -106, -106, -106, -106, + -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, + -106, 122, -106, -106, 30, -106, 44, -106, 41, -106, + 27, -106, -106, -106, -106, 84, -106, -106, -106, 71, + 58, -106, -106, -106, -106, -106, 64, -106, -106, -106, + -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, + -106, -106, -106, -106, -106, -106, -106, 13, -106, -106, + -106, -106, 65, -106, -106, -106, -106, -106, -106, -106, + -106, -106, -106, -106, -106, -106, -1, 197, -106, 188, + 187, 221, 229, -106, 90, 87, 93, 105, 107, -106, + -106, -106, -106, -106, -106, -106, -106, 230, -106, 207, + -106, 219, -106, -106, 205, -106, 180, -106, -106, 106, + -106, 28, -106, 31, -106, 26, -106, 185, -106, 198, + 186, -106, -106, 217, -106, -106, -106, -106, -106, -106, + 220, -106, 81, 97, -106, -106, 172, -106, 76, -106, + 78, -106, 69, -106, -106, 89, -106, -106, 86, -106, + -106, 75, -106, 80, -106, 70, -106, 82, -106, -106, + -106, -106, -106, -106, 42, -106, 39, -106, 40, -106, + 214, 48, -106, -106, 37, -106, -106, 163, -106, -106, + -106, 52, -106, -106, -106, -106, 61, -106, 50, 151, + -106, 67, -106, -106, 43, -106, 45, -106, -106, -106, + -106, -106, -106, -106, 47, -106, -106, -106, -106, -106, + -106, 98, -106, -106, 57, -106, -106, -106, -106, 54, + -106, 55, -106, -106, -106, -106, -106, -38, -106, 66, + -106, -24, -106, -106, -106, -106, -15, -106, -106, -18, + -106, -106, -106, -106, -106, -106, -46, -106, -106, 24, + -106, 36, -106, 25, -106, -106, -106, -106, 35, -106, + 68, -106, 34, -106, 38, -106, -106, -106, -106, -106, + -106, 21, -106, -106, 111, -106, -106, -106, -106, 62, + -106, -106, 132, -106, -106, 56, -106, -106, -106, -106, + -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, + -106, -106, 92, -106, 77, 96, -106, -106, -106, -106, + -106, -106, -9, -106, -106, -106, -106, -106, 0, -106, + -7, -106, -106, -106, -106, -106, -106, 22, -106, -106, + -106, -106, -106, -106, -106, -106, -106, 265, -106, -106, + -106, 16, -106, -106, -106, -106, -106, 280, -106, -106, + -11, -106, -106, -106, -106, -106, -106, 23, -106, -106, + -106, -106, -106, -106, -106, -106, 29, -106, -106, -106, + -106, -106, -106, 12, -106, -106, -106, 11, 8, 5, + -106, -106, -106, -106, -106, -106, -106, 277, 2, -106, + -106, -106, 7, -106, -106, -106, 233, -106, 9, -106, + 15, -106, 73, 17, -106, -106, 6, -106, -106, 74, + -106, -106, -106, 32, -106, -106, -106, -106, 20, -106, + 10, 151, -106, 104, -106, -106, -106, -106, -106, 112, + -106, -106, -106, -106, -106, -106, 88, -106, 95, -106, + -106, 284, -106, -106, -8, -106, -106, -106, -106}; const int QmlJSGrammar::action_info [] = { - 335, -105, 252, 182, -94, 411, -91, 337, 343, 386, - 398, 178, -113, 384, 347, 396, 343, 461, -91, 174, - 338, 252, 340, -95, -116, -113, 96, 439, 403, 136, - 159, 165, 441, 66, 94, -81, 419, 425, 492, 620, - 426, 415, 419, 419, 159, 435, 435, -118, 435, 184, - 411, 94, -95, -94, -116, -121, 561, -121, 452, -124, - -118, 448, 448, 435, 443, 452, 136, 291, 289, 328, - 554, 296, 335, 267, 568, 307, 492, 267, 404, 448, - 571, 409, 287, 66, 435, 411, 341, -105, -124, 545, - 343, 247, 252, 330, 185, 320, 142, 289, 307, 313, - 510, 96, 136, 452, 0, 287, 322, 617, 136, 136, - 540, 246, 429, 136, 136, 0, 472, 422, 527, 438, - 231, 0, 136, 144, 136, 326, 0, 136, 301, 53, - 299, 251, 250, 439, 161, 57, 244, 243, 162, 136, - 54, 136, 53, 136, 242, 241, 58, 394, 244, 243, - 0, 237, 236, 54, 249, 618, 408, 407, 53, 323, - 345, 332, 423, 31, 473, 31, 413, 53, 31, 54, - 522, 521, 507, 506, 483, 137, 305, 541, 54, 31, - 541, 573, 572, 244, 243, 515, 514, 172, 309, 136, - 547, 31, 310, 450, 541, 454, 269, 270, 136, 556, - 44, 45, 44, 45, 464, 44, 45, 136, 0, 31, - 519, 518, 0, 167, 541, 563, 44, 45, 31, 0, - 504, 503, 543, 271, 272, 543, 31, 0, 44, 45, - 136, 31, 168, 542, 169, 31, 542, 31, 517, 543, - 564, 562, 433, 432, 548, 546, 44, 45, 502, 31, - 542, 551, 550, 557, 555, 44, 45, 465, 463, 543, - 560, 559, 59, 44, 45, 3, 2, 1, 44, 45, - 542, 0, 44, 45, 44, 45, 80, 80, 81, 81, - 80, 0, 81, 230, 229, 31, 44, 45, 31, 82, - 82, 31, 80, 82, 81, 80, 0, 81, 80, 59, - 81, 577, 80, 31, 81, 82, 0, 60, 82, 510, - 31, 82, 59, 61, 136, 82, 0, 80, 80, 81, - 81, 0, 44, 45, 0, 44, 45, 527, 44, 45, - 82, 82, 80, 80, 81, 81, 80, 167, 81, 527, - 44, 45, 68, 69, 60, 82, 82, 44, 45, 82, - 61, 80, 0, 81, 269, 270, 168, 60, 401, 68, - 69, 0, 31, 61, 82, 510, 31, 230, 229, 70, - 71, 0, 0, -335, 0, 0, 31, 0, 0, 274, - 275, 271, 272, -335, 0, 0, 70, 71, 276, 98, - 31, 277, 31, 278, 240, 239, 0, 511, 0, 44, - 45, 0, 0, 44, 45, 31, 0, 0, 99, 0, - 100, 512, 509, 44, 45, 0, 0, 31, 0, 31, - 499, 0, 499, 0, 0, 0, 31, 44, 45, 44, - 45, 0, 0, 0, 31, 0, 0, 235, 234, 508, - 0, 0, 44, 45, 0, 0, 498, 0, 498, 240, - 239, 235, 234, 0, 44, 45, 44, 45, 235, 234, - 0, 0, 0, 44, 45, 0, 240, 239, 0, 274, - 275, 44, 45, 0, 0, 0, 73, 74, 276, 31, - 0, 277, 0, 278, 75, 76, 73, 74, 77, 0, - 78, 0, 0, 0, 75, 76, 73, 74, 77, 0, - 78, 0, 530, 0, 75, 76, 0, 0, 77, 499, - 78, 73, 74, 0, 531, 500, 44, 45, 0, 75, - 76, 31, 0, 77, 0, 78, 0, 0, 0, 0, - 0, 73, 74, 0, 0, 498, 0, 0, 0, 75, - 76, 274, 275, 77, 0, 78, 146, 575, 0, 0, - 276, 499, 0, 277, 0, 278, 147, 0, 532, 534, - 148, 0, 0, 0, 0, 0, 221, 0, 0, 149, - 0, 150, 0, 0, 0, 205, 0, 498, 0, 0, - 146, 0, 151, 0, 152, 57, 0, 0, 0, 0, - 147, 0, 153, 0, 148, 154, 58, 0, 0, 0, - 0, 155, 0, 149, 0, 150, 0, 156, 0, 0, - 0, 0, 0, 530, 0, 0, 151, 0, 152, 57, - 0, 0, 157, 0, 0, 531, 153, 0, 0, 154, - 58, 0, 31, 0, 0, 155, 0, 0, 0, 0, - 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, - 27, 28, 0, 0, 0, 0, 157, 0, 533, 0, - 30, 0, 499, 0, 0, 0, 0, 31, 0, 532, - 534, 32, 33, 0, 34, 0, 0, 221, 0, 0, - 0, 38, 0, 0, 0, 41, 205, 0, 498, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 146, 0, - 0, 0, 0, 46, 44, 45, 0, 47, 147, 0, - 0, 0, 148, 0, 0, 0, 0, 0, 40, 49, - 29, 149, 0, 150, 37, 0, 303, 0, 0, 0, - 0, 0, 0, 0, 151, 0, 152, 57, 0, 0, - 0, 0, 0, 0, 153, 0, 0, 154, 58, 0, - 0, 0, 0, 155, 0, 0, 0, 0, 0, 156, + 443, 411, 335, 419, -127, 343, -102, 330, 96, 461, + -124, -106, 326, 328, -105, 403, 252, 347, 448, 419, + -132, 415, 398, 394, 384, 452, 396, 386, -135, 320, + -116, 441, 337, 338, 340, 435, 425, 426, 439, 419, + -129, 185, 287, -129, -127, 159, 165, 452, 435, 267, + 136, -124, -105, 435, 94, 638, -106, -132, 448, 246, + 411, 343, 252, 247, 411, 178, 492, 182, 96, 174, + 184, 452, 409, 404, 448, 626, 252, 343, 341, -92, + 94, -102, 267, 289, 136, 554, 231, 545, 335, 561, + 142, 313, 307, 291, 159, 307, -135, 66, 631, 0, + 0, -116, 287, 568, 53, 472, 136, 136, 53, 53, + 429, 136, 53, 540, 299, 54, 422, 301, 136, 54, + 54, 144, 438, 54, 296, 161, 510, 571, 619, 162, + 136, 408, 407, 322, 507, 506, 439, 136, 136, 492, + 289, 244, 243, 136, 527, 136, 57, 573, 572, 522, + 521, 136, 309, 473, 136, 0, 310, 58, 483, 454, + 31, 423, 515, 514, 464, 31, 244, 243, 244, 243, + 450, 556, 0, 242, 241, 80, 620, 81, 251, 250, + 237, 236, 413, 80, 31, 81, 323, 563, 82, 345, + 332, 628, 80, 137, 81, 249, 82, 44, 45, 172, + 504, 503, 44, 45, 31, 82, 305, 80, 31, 81, + 59, 0, 564, 562, 59, 31, 167, 465, 463, 31, + 82, 44, 45, 519, 518, 557, 555, 0, 502, 541, + 59, 80, 31, 81, 31, 168, 136, 169, 541, 31, + 0, 44, 45, 629, 82, 44, 45, 3, 2, 1, + 541, 517, 44, 45, 136, 60, 44, 45, 136, 60, + 80, 61, 81, 31, 0, 61, 80, 31, 81, 44, + 45, 44, 45, 82, 543, 60, 44, 45, 80, 82, + 81, 61, 136, 543, 541, 542, 31, 0, 31, 560, + 559, 82, 0, 31, 542, 543, 167, 98, 0, 547, + 44, 45, 0, 0, 44, 45, 542, 551, 550, 31, + 0, 433, 432, 577, 31, 168, 99, 401, 100, 31, + 80, 510, 81, 44, 45, 44, 45, 31, 0, 543, + 44, 45, 31, 82, 31, 230, 229, 31, 0, 527, + 542, -346, 578, 136, -346, 0, 44, 45, 80, 0, + 81, 44, 45, 548, 546, 136, 44, 45, 68, 69, + 0, 82, 0, 623, 44, 45, 68, 69, 527, 44, + 45, 44, 45, 31, 44, 45, 0, 0, 274, 275, + 527, 510, 0, 0, 0, 70, 71, 276, 0, 0, + 277, 0, 278, 70, 71, 0, 230, 229, 0, 0, + 0, 31, 0, 499, 31, 0, 0, 0, 230, 229, + 44, 45, 0, 511, 0, 31, 0, 0, 269, 270, + 0, 274, 275, 0, 0, 0, 31, 512, 509, 498, + 276, 499, 0, 277, 31, 278, 240, 239, 44, 45, + 0, 44, 45, 31, 0, 271, 272, 240, 239, 0, + 31, 0, 44, 45, 0, 508, 0, 498, 235, 234, + 0, 0, 31, 44, 45, 0, 235, 234, 0, 0, + 0, 44, 45, 0, 0, 240, 239, 73, 74, 0, + 44, 45, 235, 234, 0, 75, 76, 44, 45, 77, + 0, 78, 499, 0, 0, 274, 275, 0, 500, 44, + 45, 0, 0, 0, 276, 530, 0, 277, 0, 278, + 0, 0, 0, 0, 0, 0, 0, 531, 498, 0, + 0, 0, 0, 0, 31, 0, 0, 0, 530, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, + 531, 0, 0, 0, 0, 0, 0, 31, 0, 0, + 533, 0, 0, 0, 499, 0, 0, 0, 0, 0, + 0, 532, 534, 0, 0, 0, 0, 73, 74, 221, + 0, 0, 146, 575, 0, 75, 76, 499, 205, 77, + 498, 78, 147, 0, 532, 534, 148, 0, 0, 0, + 0, 0, 221, 0, 0, 149, 0, 150, 0, 0, + 303, 205, 0, 498, 0, 0, 0, 0, 151, 0, + 152, 57, 0, 0, 0, 0, 0, 0, 153, 0, + 0, 154, 58, 0, 0, 0, 0, 155, 0, 0, + 0, 0, 0, 156, 0, 0, 0, 0, 0, 146, + 0, 0, 0, 0, 0, 0, 0, 0, 157, 147, + 0, 0, 0, 148, 0, 0, 0, 0, 0, 0, + 0, 0, 149, 0, 150, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 151, 0, 152, 57, 0, + 0, 0, 0, 0, 0, 153, 0, 0, 154, 58, + 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, + 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, - 30, 0, 0, 0, 0, 0, 0, 31, 0, 0, - 0, 32, 33, 0, 34, 0, 0, 0, 0, 0, - 0, 38, 0, 0, 0, 41, 0, 0, 0, 0, + 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, + 0, 30, 0, 0, 0, 0, 0, 0, 31, 0, + 0, 0, 32, 33, 0, 34, 0, 0, 0, 0, + 0, 0, 38, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 46, 44, 45, 0, 47, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 40, 49, - 29, 0, 0, 0, 37, 0, 0, 0, 0, 0, - 0, 0, 0, 26, 27, 28, 0, 0, 0, 0, - 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, - 0, 31, 0, 0, 0, 32, 33, 0, 34, 0, - 0, 0, 35, 0, 36, 38, 39, 0, 0, 41, - 0, 0, 0, 42, 0, 43, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 46, 44, 45, - 0, 47, 0, 48, 0, 50, 0, 51, 0, 0, - 0, 0, 40, 49, 29, 0, 0, 0, 37, 0, - 0, 0, 0, 0, 0, 0, 0, 26, 27, 28, - 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, - 0, 0, 0, 0, 0, 31, 0, 0, 0, 32, - 33, 0, 34, 0, 0, 0, 35, 0, 36, 38, - 39, 0, 0, 41, 0, 0, 0, 42, 0, 43, + 0, 0, 0, 0, 46, 44, 45, 0, 47, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, + 49, 29, 0, 0, 0, 37, 0, 0, 0, 0, + 0, 0, 0, 0, 26, 27, 28, 0, 0, 0, + 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 0, 32, 33, 0, 34, + 0, 0, 0, 35, 0, 36, 38, 39, 0, 0, + 41, 0, 0, 0, 42, 0, 43, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 46, 44, + 45, 0, 47, 0, 48, 0, 50, 0, 51, 0, + 0, 0, 0, 40, 49, 29, 0, 0, 0, 37, + 0, 0, 0, 0, 0, 0, 0, 0, -125, 0, + 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, + 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, + 31, 0, 0, 0, 32, 33, 0, 34, 0, 0, + 0, 35, 0, 36, 38, 39, 0, 0, 41, 0, + 0, 0, 42, 0, 43, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 46, 44, 45, 0, + 47, 0, 48, 0, 50, 0, 51, 0, 0, 0, + 0, 40, 49, 29, 0, 0, 0, 37, 0, 0, + 0, 0, 0, 0, 0, 0, 26, 27, 28, 0, + 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, + 0, 0, 0, 0, 31, 0, 0, 0, 32, 33, + 0, 34, 0, 0, 0, 35, 0, 36, 38, 39, + 0, 0, 41, 0, 0, 0, 42, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 44, 45, 0, 47, 0, 48, 0, 50, - 266, 51, 0, 0, 0, 0, 40, 49, 29, 0, - 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, - 0, -114, 0, 0, 0, 26, 27, 28, 0, 0, + 46, 44, 45, 0, 47, 0, 48, 0, 50, 266, + 51, 0, 0, 0, 0, 40, 49, 29, 0, 0, + 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, + 26, 27, 28, 0, 0, 0, 0, 0, 0, 0, + 0, 30, 0, 0, 0, 0, 0, 0, 31, 212, + 0, 0, 585, 33, 0, 34, 0, 0, 0, 35, + 0, 36, 38, 39, 0, 0, 41, 0, 0, 0, + 42, 0, 43, 0, 0, 0, 0, 0, 0, 0, + 216, 0, 0, 0, 46, 44, 45, 0, 47, 0, + 48, 0, 50, 0, 51, 0, 0, 0, 0, 40, + 49, 29, 0, 0, 0, 37, 0, 0, 0, 0, + 0, 0, 0, 0, 26, 27, 28, 0, 0, 0, + 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, + 0, 0, 31, 212, 0, 0, 585, 586, 0, 34, + 0, 0, 0, 35, 0, 36, 38, 39, 0, 0, + 41, 0, 0, 0, 42, 0, 43, 0, 0, 0, + 0, 0, 0, 0, 216, 0, 0, 0, 46, 44, + 45, 0, 47, 0, 48, 0, 50, 0, 51, 0, + 0, 0, 0, 40, 49, 29, 0, 0, 0, 37, + 0, 0, 0, 0, 0, 0, 0, 0, 470, 0, + 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, + 0, 0, 30, 0, 0, 0, 0, 0, 0, 31, + 0, 0, 0, 32, 33, 0, 34, 0, 0, 0, + 35, 0, 36, 38, 39, 0, 0, 41, 0, 0, + 0, 42, 0, 43, 0, 0, 471, 0, 0, 0, + 0, 0, 0, 0, 0, 46, 44, 45, 0, 47, + 0, 48, 0, 50, 0, 51, 0, 0, 0, 0, + 40, 49, 29, 0, 0, 0, 37, 0, 0, 0, + 0, 0, 0, 0, 0, 478, 0, 0, 26, 27, + 28, 0, 0, 0, 0, 0, 0, 0, 0, 30, + 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, + 32, 33, 0, 34, 0, 0, 0, 35, 0, 36, + 38, 39, 0, 0, 41, 0, 0, 0, 42, 0, + 43, 0, 0, 481, 0, 0, 0, 0, 0, 0, + 0, 0, 46, 44, 45, 0, 47, 0, 48, 0, + 50, 0, 51, 0, 0, 0, 0, 40, 49, 29, + 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, + 0, 0, 470, 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 32, 33, 0, 34, 0, 0, 0, 35, 0, 36, 38, 39, 0, 0, 41, 0, 0, 0, 42, 0, 43, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, + 476, 0, 0, 0, 0, 0, 0, 0, 0, 46, 44, 45, 0, 47, 0, 48, 0, 50, 0, 51, 0, 0, 0, 0, 40, 49, 29, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 478, @@ -451,7 +493,7 @@ const int QmlJSGrammar::action_info [] = { 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 32, 33, 0, 34, 0, 0, 0, 35, 0, 36, 38, 39, 0, 0, 41, 0, - 0, 0, 42, 0, 43, 0, 0, 481, 0, 0, + 0, 0, 42, 0, 43, 0, 0, 479, 0, 0, 0, 0, 0, 0, 0, 0, 46, 44, 45, 0, 47, 0, 48, 0, 50, 0, 51, 0, 0, 0, 0, 40, 49, 29, 0, 0, 0, 37, 0, 0, @@ -460,151 +502,110 @@ const int QmlJSGrammar::action_info [] = { 30, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 32, 33, 0, 34, 0, 0, 0, 35, 0, 36, 38, 39, 0, 0, 41, 0, 0, 0, 42, - 0, 43, 0, 0, 471, 0, 0, 0, 0, 0, + 0, 43, 0, 0, 471, 0, 0, 499, 0, 0, 0, 0, 0, 46, 44, 45, 0, 47, 0, 48, 0, 50, 0, 51, 0, 0, 0, 0, 40, 49, - 29, 0, 0, 0, 37, 0, 0, 0, 0, 0, - 0, 0, 0, 26, 27, 28, 0, 0, 0, 0, - 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, - 0, 31, 212, 0, 0, 583, 584, 0, 34, 0, + 29, 0, 0, 498, 37, 0, 0, 0, 0, 0, + 0, 0, 0, 104, 105, 106, 0, 0, 108, 110, + 111, 0, 0, 112, 0, 113, 0, 0, 0, 115, + 116, 117, 0, 0, 0, 0, 0, 0, 31, 118, + 119, 120, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, + 0, 0, 0, 0, 0, 44, 45, 125, 126, 127, + 0, 129, 130, 131, 132, 133, 134, 0, 0, 122, + 128, 114, 107, 109, 123, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 106, 0, 0, 108, + 110, 111, 0, 0, 112, 0, 113, 0, 0, 0, + 115, 116, 117, 0, 0, 0, 0, 0, 0, 388, + 118, 119, 120, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 121, 0, 0, 0, 389, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, + 0, 0, 0, 0, 0, 393, 390, 392, 125, 126, + 127, 0, 129, 130, 131, 132, 133, 134, 0, 0, + 122, 128, 114, 107, 109, 123, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 104, 105, 106, 0, 0, + 108, 110, 111, 0, 0, 112, 0, 113, 0, 0, + 0, 115, 116, 117, 0, 0, 0, 0, 0, 0, + 388, 118, 119, 120, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 121, 0, 0, 0, 389, 0, + 0, 0, 0, 0, 0, 0, 391, 0, 0, 0, + 124, 0, 0, 0, 0, 0, 393, 390, 392, 125, + 126, 127, 0, 129, 130, 131, 132, 133, 134, 0, + 0, 122, 128, 114, 107, 109, 123, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 204, 0, 0, 0, + 0, 206, 0, 26, 27, 28, 208, 0, 0, 0, + 0, 0, 0, 209, 210, 0, 0, 0, 0, 0, + 0, 211, 212, 0, 0, 213, 33, 0, 34, 0, 0, 0, 35, 0, 36, 38, 39, 0, 0, 41, 0, 0, 0, 42, 0, 43, 0, 0, 0, 0, - 0, 0, 0, 216, 0, 0, 0, 46, 44, 45, - 0, 47, 0, 48, 0, 50, 0, 51, 0, 0, - 0, 0, 40, 49, 29, 0, 0, 0, 37, 0, - 0, 0, 0, 0, 0, 0, 0, 470, 0, 0, - 26, 27, 28, 0, 0, 0, 0, 0, 0, 0, - 0, 30, 0, 0, 0, 0, 0, 0, 31, 0, - 0, 0, 32, 33, 0, 34, 0, 0, 0, 35, - 0, 36, 38, 39, 0, 0, 41, 0, 0, 0, - 42, 0, 43, 0, 0, 476, 0, 0, 0, 0, - 0, 0, 0, 0, 46, 44, 45, 0, 47, 0, - 48, 0, 50, 0, 51, 0, 0, 0, 0, 40, - 49, 29, 0, 0, 0, 37, 0, 0, 0, 0, - 0, 0, 0, 0, 478, 0, 0, 26, 27, 28, - 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, - 0, 0, 0, 0, 0, 31, 0, 0, 0, 32, - 33, 0, 34, 0, 0, 0, 35, 0, 36, 38, - 39, 0, 0, 41, 0, 0, 0, 42, 0, 43, - 0, 0, 479, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 44, 45, 0, 47, 0, 48, 0, 50, - 0, 51, 0, 0, 0, 0, 40, 49, 29, 0, - 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, - 0, 470, 0, 0, 26, 27, 28, 0, 0, 0, - 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, - 0, 0, 31, 0, 0, 0, 32, 33, 0, 34, + 0, 215, 0, 216, 0, 0, 0, 46, 214, 217, + 218, 47, 219, 48, 220, 50, 221, 51, 222, 223, + 0, 0, 40, 49, 29, 205, 207, 0, 37, 0, + 0, 0, 0, 0, 0, 0, 0, 204, 0, 0, + 0, 0, 206, 0, 26, 27, 28, 208, 0, 0, + 0, 0, 0, 0, 209, 30, 0, 0, 0, 0, + 0, 0, 211, 212, 0, 0, 213, 33, 0, 34, 0, 0, 0, 35, 0, 36, 38, 39, 0, 0, - 41, 0, 0, 0, 42, 0, 43, 0, 0, 471, - 0, 0, 499, 0, 0, 0, 0, 0, 46, 44, - 45, 0, 47, 0, 48, 0, 50, 0, 51, 0, - 0, 0, 0, 40, 49, 29, 0, 0, 498, 37, - 0, 0, 0, 0, 0, 0, 0, 0, 104, 105, - 106, 0, 0, 108, 110, 111, 0, 0, 112, 0, - 113, 0, 0, 0, 115, 116, 117, 0, 0, 0, - 0, 0, 0, 31, 118, 119, 120, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 124, 0, 0, 0, 0, 0, 0, - 44, 45, 125, 126, 127, 0, 129, 130, 131, 132, - 133, 134, 0, 0, 122, 128, 114, 107, 109, 123, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, - 105, 106, 0, 0, 108, 110, 111, 0, 0, 112, - 0, 113, 0, 0, 0, 115, 116, 117, 0, 0, - 0, 0, 0, 0, 388, 118, 119, 120, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 121, 0, - 0, 0, 389, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 124, 0, 0, 0, 0, 0, - 393, 390, 392, 125, 126, 127, 0, 129, 130, 131, - 132, 133, 134, 0, 0, 122, 128, 114, 107, 109, - 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 104, 105, 106, 0, 0, 108, 110, 111, 0, 0, - 112, 0, 113, 0, 0, 0, 115, 116, 117, 0, - 0, 0, 0, 0, 0, 388, 118, 119, 120, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, - 0, 0, 0, 389, 0, 0, 0, 0, 0, 0, - 0, 391, 0, 0, 0, 124, 0, 0, 0, 0, - 0, 393, 390, 392, 125, 126, 127, 0, 129, 130, - 131, 132, 133, 134, 0, 0, 122, 128, 114, 107, - 109, 123, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 204, 0, 0, 0, 0, 206, 0, 26, 27, - 28, 208, 0, 0, 0, 0, 0, 0, 209, 30, - 0, 0, 0, 0, 0, 0, 211, 212, 0, 0, - 213, 33, 0, 34, 0, 0, 0, 35, 0, 36, - 38, 39, 0, 0, 41, 0, 0, 0, 42, 0, - 43, 0, 0, 0, 0, 0, 215, 0, 216, 0, - 0, 0, 46, 214, 217, 218, 47, 219, 48, 220, - 50, 221, 51, 222, 223, 0, 0, 40, 49, 29, - 205, 207, 0, 37, 0, 0, 0, 0, 0, 0, - 0, 0, 204, 0, 0, 0, 0, 206, 0, 26, - 27, 28, 208, 0, 0, 0, 0, 0, 0, 209, - 210, 0, 0, 0, 0, 0, 0, 211, 212, 0, - 0, 213, 33, 0, 34, 0, 0, 0, 35, 0, - 36, 38, 39, 0, 0, 41, 0, 0, 0, 42, - 0, 43, 0, 0, 0, 0, 0, 215, 0, 216, - 0, 0, 0, 46, 214, 217, 218, 47, 219, 48, - 220, 50, 221, 51, 222, 223, 0, 0, 40, 49, - 29, 205, 207, 0, 37, 0, 0, 0, 0, 0, - 0, 0, 0, 586, 105, 106, 0, 0, 588, 110, - 590, 27, 28, 591, 0, 113, 0, 0, 0, 115, - 593, 594, 0, 0, 0, 0, 0, 0, 595, 596, - 119, 120, 213, 33, 0, 34, 0, 0, 0, 35, - 0, 36, 597, 39, 0, 0, 599, 0, 0, 0, - 42, 0, 43, 0, 0, 0, 0, 0, 601, 0, - 216, 0, 0, 0, 603, 600, 602, 604, 605, 606, - 48, 608, 609, 610, 611, 612, 613, 0, 0, 598, - 607, 592, 587, 589, 123, 37, 0, 0, 0, 0, - 0, 0, 0, 0, 356, 105, 106, 0, 0, 358, - 110, 360, 27, 28, 361, 0, 113, 0, 0, 0, - 115, 363, 364, 0, 0, 0, 0, 0, 0, 365, - 366, 119, 120, 213, 33, 0, 34, 0, 0, 0, - 35, 0, 36, 367, 39, 0, 0, 369, 0, 0, - 0, 42, 0, 43, 0, -260, 0, 0, 0, 371, - 0, 216, 0, 0, 0, 373, 370, 372, 374, 375, - 376, 48, 378, 379, 380, 381, 382, 383, 0, 0, - 368, 377, 362, 357, 359, 123, 37, 0, 0, 0, - 0, 0, 0, 0, 0, + 41, 0, 0, 0, 42, 0, 43, 0, 0, 0, + 0, 0, 215, 0, 216, 0, 0, 0, 46, 214, + 217, 218, 47, 219, 48, 220, 50, 221, 51, 222, + 223, 0, 0, 40, 49, 29, 205, 207, 0, 37, + 0, 0, 0, 0, 0, 0, 0, 0, 588, 105, + 106, 0, 0, 590, 110, 592, 27, 28, 593, 0, + 113, 0, 0, 0, 115, 595, 596, 0, 0, 0, + 0, 0, 0, 597, 598, 119, 120, 213, 33, 0, + 34, 0, 0, 0, 35, 0, 36, 599, 39, 0, + 0, 601, 0, 0, 0, 42, 0, 43, 0, 0, + 0, 0, 0, 603, 0, 216, 0, 0, 0, 605, + 602, 604, 606, 607, 608, 48, 610, 611, 612, 613, + 614, 615, 0, 0, 600, 609, 594, 589, 591, 123, + 37, 0, 0, 0, 0, 0, 0, 0, 0, 356, + 105, 106, 0, 0, 358, 110, 360, 27, 28, 361, + 0, 113, 0, 0, 0, 115, 363, 364, 0, 0, + 0, 0, 0, 0, 365, 366, 119, 120, 213, 33, + 0, 34, 0, 0, 0, 35, 0, 36, 367, 39, + 0, 0, 369, 0, 0, 0, 42, 0, 43, 0, + -271, 0, 0, 0, 371, 0, 216, 0, 0, 0, + 373, 370, 372, 374, 375, 376, 48, 378, 379, 380, + 381, 382, 383, 0, 0, 368, 377, 362, 357, 359, + 123, 37, 0, 0, 0, 0, 0, 0, 0, 0, - 513, 523, 431, 13, 456, 490, 434, 431, 135, 306, - 505, 302, 567, 558, 467, 520, 482, 233, 569, 145, - 549, 574, 248, 570, 238, 552, 585, 315, 304, 177, - 245, 177, 297, 387, 397, 238, 440, 430, 449, 233, - 445, 544, 238, 233, 342, 427, 344, 444, 346, 455, - 451, 424, 453, 138, 348, 245, 434, 143, 431, 183, - 171, 405, 410, 181, 428, 177, 158, 166, 395, 385, - 420, 164, 202, 442, 297, 412, 334, 333, 329, 0, - 331, 141, 297, 245, 55, 55, 175, 181, 480, 85, - 297, 0, 477, 462, 516, 297, 0, 0, 0, 399, - 475, 0, 400, 141, 474, 497, 261, 524, 55, 173, - 175, 265, 497, 501, 297, 101, 202, 0, 399, 141, - 55, 400, 55, 55, 447, 402, 55, 84, 55, 315, - 97, 55, 297, 283, 55, 55, 456, 202, 103, 55, - 282, 55, 163, 95, 279, 55, 280, 175, 160, 55, - 55, 327, 484, 55, 281, 55, 325, 55, 79, 55, - 86, 55, 88, 485, 87, 55, 55, 0, 65, 56, - 55, 55, 62, 336, 55, 298, 55, 55, 63, 67, - 72, 55, 55, 91, 64, 55, 0, 92, 55, 55, - 446, 93, 0, 300, 90, 55, 55, 488, 486, 399, - 55, 55, 400, 324, 83, 101, 89, 55, 466, 487, - 55, 55, 489, 446, 497, 232, 619, 55, 55, 446, - 55, 55, 293, 265, 0, 265, 265, 265, 103, 170, - 0, 339, 55, 288, 293, 311, 308, 265, 0, 265, - 293, 293, 0, 290, 312, 265, 265, 293, 0, 55, - 55, 55, 265, 447, 265, 265, 292, 273, 268, 55, - 0, 0, 295, 321, 265, 614, 286, 616, 55, 314, - 497, 538, 0, 265, 0, 285, 497, 538, 0, 0, - 576, 0, 0, 0, 529, 539, 467, 0, 0, 0, - 529, 539, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 55, 0, 0, 0, 0, 265, - 0, 284, 0, 0, 0, 0, 0, 0, 0, 0, + 505, 135, 516, 490, 141, 183, 13, 637, 315, 513, + 544, 622, 145, 177, 570, 177, 248, 467, 233, 245, + 574, 482, 587, 431, 238, 552, 549, 434, 306, 569, + 302, 520, 558, 567, 304, 297, 334, 453, 449, 233, + 455, 445, 444, 245, 397, 442, 177, 143, 233, 238, + 245, 440, 158, 238, 462, 297, 410, 420, 412, 405, + 181, 202, 430, 171, 431, 427, 138, 434, 424, 428, + 451, 333, 346, 456, 431, 434, 385, 342, 329, 387, + 395, 331, 164, 344, 348, 523, 166, 297, 202, 477, + 315, 0, 0, 0, 0, 480, 0, 627, 181, 0, + 297, 497, 501, 101, 622, 497, 55, 524, 261, 297, + 55, 399, 447, 265, 400, 55, 55, 175, 175, 630, + 456, 497, 163, 621, 202, 0, 55, 0, 55, 103, + 55, 141, 93, 55, 55, 280, 55, 402, 279, 0, + 0, 281, 160, 55, 55, 484, 95, 55, 55, 447, + 55, 141, 55, 282, 97, 283, 55, 173, 92, 56, + 55, 475, 447, 55, 325, 474, 0, 324, 90, 55, + 55, 446, 489, 300, 55, 297, 55, 65, 55, 55, + 63, 89, 55, 297, 79, 339, 55, 336, 64, 55, + 67, 62, 55, 55, 55, 466, 446, 86, 87, 55, + 399, 55, 55, 400, 88, 83, 0, 55, 72, 487, + 55, 399, 486, 55, 400, 485, 55, 0, 0, 55, + 55, 0, 91, 84, 85, 55, 232, 488, 55, 293, + 55, 55, 0, 265, 265, 265, 265, 284, 273, 327, + 55, 55, 616, 308, 618, 265, 265, 298, 293, 268, + 55, 312, 0, 265, 0, 265, 0, 55, 311, 175, + 293, 290, 293, 293, 55, 265, 467, 265, 265, 265, + 295, 285, 55, 55, 497, 538, 0, 265, 265, 286, + 582, 0, 314, 0, 292, 321, 288, 634, 0, 497, + 538, 529, 539, 576, 580, 581, 583, 584, 0, 0, + 0, 632, 633, 635, 636, 0, 529, 539, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 101, 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, 580, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 578, 579, 581, 582, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 103, 170, 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, @@ -614,116 +615,153 @@ const int QmlJSGrammar::action_info [] = { 0, 0, 0, 0, 0, 0, 0}; const int QmlJSGrammar::action_check [] = { - 36, 7, 36, 8, 7, 36, 7, 60, 36, 8, - 55, 36, 7, 7, 16, 55, 36, 17, 7, 60, - 33, 36, 55, 7, 7, 7, 78, 20, 60, 8, - 2, 7, 36, 1, 48, 33, 5, 55, 88, 0, - 7, 33, 5, 5, 2, 33, 33, 7, 33, 60, - 36, 48, 7, 7, 7, 7, 29, 7, 36, 7, - 7, 36, 36, 33, 60, 36, 8, 8, 78, 60, - 29, 61, 36, 1, 8, 2, 88, 1, 7, 36, - 60, 7, 48, 1, 33, 36, 7, 7, 7, 29, - 36, 36, 36, 31, 33, 17, 8, 78, 2, 7, - 15, 78, 8, 36, -1, 48, 8, 8, 8, 8, - 66, 76, 7, 8, 8, -1, 8, 10, 33, 6, - 55, -1, 8, 60, 8, 61, -1, 8, 60, 40, - 61, 61, 62, 20, 50, 42, 61, 62, 54, 8, - 51, 8, 40, 8, 61, 62, 53, 7, 61, 62, - -1, 61, 62, 51, 60, 56, 61, 62, 40, 61, - 60, 60, 55, 29, 56, 29, 60, 40, 29, 51, - 61, 62, 61, 62, 60, 56, 60, 29, 51, 29, - 29, 61, 62, 61, 62, 61, 62, 56, 50, 8, - 7, 29, 54, 60, 29, 60, 18, 19, 8, 7, - 66, 67, 66, 67, 8, 66, 67, 8, -1, 29, - 61, 62, -1, 15, 29, 36, 66, 67, 29, -1, - 61, 62, 74, 45, 46, 74, 29, -1, 66, 67, - 8, 29, 34, 85, 36, 29, 85, 29, 89, 74, - 61, 62, 61, 62, 61, 62, 66, 67, 89, 29, - 85, 61, 62, 61, 62, 66, 67, 61, 62, 74, - 61, 62, 12, 66, 67, 90, 91, 92, 66, 67, - 85, -1, 66, 67, 66, 67, 25, 25, 27, 27, - 25, -1, 27, 61, 62, 29, 66, 67, 29, 38, - 38, 29, 25, 38, 27, 25, -1, 27, 25, 12, - 27, 7, 25, 29, 27, 38, -1, 57, 38, 15, - 29, 38, 12, 63, 8, 38, -1, 25, 25, 27, - 27, -1, 66, 67, -1, 66, 67, 33, 66, 67, - 38, 38, 25, 25, 27, 27, 25, 15, 27, 33, - 66, 67, 18, 19, 57, 38, 38, 66, 67, 38, - 63, 25, -1, 27, 18, 19, 34, 57, 36, 18, - 19, -1, 29, 63, 38, 15, 29, 61, 62, 45, - 46, -1, -1, 36, -1, -1, 29, -1, -1, 23, - 24, 45, 46, 36, -1, -1, 45, 46, 32, 15, - 29, 35, 29, 37, 61, 62, -1, 47, -1, 66, - 67, -1, -1, 66, 67, 29, -1, -1, 34, -1, - 36, 61, 62, 66, 67, -1, -1, 29, -1, 29, - 59, -1, 59, -1, -1, -1, 29, 66, 67, 66, - 67, -1, -1, -1, 29, -1, -1, 61, 62, 89, - -1, -1, 66, 67, -1, -1, 85, -1, 85, 61, - 62, 61, 62, -1, 66, 67, 66, 67, 61, 62, - -1, -1, -1, 66, 67, -1, 61, 62, -1, 23, - 24, 66, 67, -1, -1, -1, 23, 24, 32, 29, - -1, 35, -1, 37, 31, 32, 23, 24, 35, -1, - 37, -1, -1, -1, 31, 32, 23, 24, 35, -1, - 37, -1, 10, -1, 31, 32, -1, -1, 35, 59, - 37, 23, 24, -1, 22, 65, 66, 67, -1, 31, - 32, 29, -1, 35, -1, 37, -1, -1, -1, -1, - -1, 23, 24, -1, -1, 85, -1, -1, -1, 31, - 32, 23, 24, 35, -1, 37, 3, 55, -1, -1, - 32, 59, -1, 35, -1, 37, 13, -1, 66, 67, - 17, -1, -1, -1, -1, -1, 74, -1, -1, 26, - -1, 28, -1, -1, -1, 83, -1, 85, -1, -1, - 3, -1, 39, -1, 41, 42, -1, -1, -1, -1, - 13, -1, 49, -1, 17, 52, 53, -1, -1, -1, - -1, 58, -1, 26, -1, 28, -1, 64, -1, -1, - -1, -1, -1, 10, -1, -1, 39, -1, 41, 42, - -1, -1, 79, -1, -1, 22, 49, -1, -1, 52, - 53, -1, 29, -1, -1, 58, -1, -1, -1, -1, - -1, 64, -1, -1, -1, -1, -1, -1, -1, -1, - 12, 13, -1, -1, -1, -1, 79, -1, 55, -1, - 22, -1, 59, -1, -1, -1, -1, 29, -1, 66, - 67, 33, 34, -1, 36, -1, -1, 74, -1, -1, - -1, 43, -1, -1, -1, 47, 83, -1, 85, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, - -1, -1, -1, 65, 66, 67, -1, 69, 13, -1, - -1, -1, 17, -1, -1, -1, -1, -1, 80, 81, - 82, 26, -1, 28, 86, -1, 31, -1, -1, -1, - -1, -1, -1, -1, 39, -1, 41, 42, -1, -1, - -1, -1, -1, -1, 49, -1, -1, 52, 53, -1, - -1, -1, -1, 58, -1, -1, -1, -1, -1, 64, + 60, 36, 36, 5, 7, 36, 7, 31, 78, 17, + 7, 7, 61, 60, 7, 60, 36, 16, 36, 5, + 7, 33, 55, 7, 7, 36, 55, 8, 7, 17, + 7, 36, 60, 33, 55, 33, 55, 7, 20, 5, + 7, 33, 48, 7, 7, 2, 7, 36, 33, 1, + 8, 7, 7, 33, 48, 0, 7, 7, 36, 76, + 36, 36, 36, 36, 36, 36, 88, 8, 78, 60, + 60, 36, 7, 7, 36, 89, 36, 36, 7, 33, + 48, 7, 1, 78, 8, 29, 55, 29, 36, 29, + 8, 7, 2, 8, 2, 2, 7, 1, 7, -1, + -1, 7, 48, 8, 40, 8, 8, 8, 40, 40, + 7, 8, 40, 66, 61, 51, 10, 60, 8, 51, + 51, 60, 6, 51, 61, 50, 15, 60, 8, 54, + 8, 61, 62, 8, 61, 62, 20, 8, 8, 88, + 78, 61, 62, 8, 33, 8, 42, 61, 62, 61, + 62, 8, 50, 56, 8, -1, 54, 53, 60, 60, + 29, 55, 61, 62, 8, 29, 61, 62, 61, 62, + 60, 7, -1, 61, 62, 25, 56, 27, 61, 62, + 61, 62, 60, 25, 29, 27, 61, 36, 38, 60, + 60, 8, 25, 56, 27, 60, 38, 66, 67, 56, + 61, 62, 66, 67, 29, 38, 60, 25, 29, 27, + 12, -1, 61, 62, 12, 29, 15, 61, 62, 29, + 38, 66, 67, 61, 62, 61, 62, -1, 89, 29, + 12, 25, 29, 27, 29, 34, 8, 36, 29, 29, + -1, 66, 67, 60, 38, 66, 67, 90, 91, 92, + 29, 89, 66, 67, 8, 57, 66, 67, 8, 57, + 25, 63, 27, 29, -1, 63, 25, 29, 27, 66, + 67, 66, 67, 38, 74, 57, 66, 67, 25, 38, + 27, 63, 8, 74, 29, 85, 29, -1, 29, 61, + 62, 38, -1, 29, 85, 74, 15, 15, -1, 7, + 66, 67, -1, -1, 66, 67, 85, 61, 62, 29, + -1, 61, 62, 7, 29, 34, 34, 36, 36, 29, + 25, 15, 27, 66, 67, 66, 67, 29, -1, 74, + 66, 67, 29, 38, 29, 61, 62, 29, -1, 33, + 85, 36, 36, 8, 36, -1, 66, 67, 25, -1, + 27, 66, 67, 61, 62, 8, 66, 67, 18, 19, + -1, 38, -1, 60, 66, 67, 18, 19, 33, 66, + 67, 66, 67, 29, 66, 67, -1, -1, 23, 24, + 33, 15, -1, -1, -1, 45, 46, 32, -1, -1, + 35, -1, 37, 45, 46, -1, 61, 62, -1, -1, + -1, 29, -1, 59, 29, -1, -1, -1, 61, 62, + 66, 67, -1, 47, -1, 29, -1, -1, 18, 19, + -1, 23, 24, -1, -1, -1, 29, 61, 62, 85, + 32, 59, -1, 35, 29, 37, 61, 62, 66, 67, + -1, 66, 67, 29, -1, 45, 46, 61, 62, -1, + 29, -1, 66, 67, -1, 89, -1, 85, 61, 62, + -1, -1, 29, 66, 67, -1, 61, 62, -1, -1, + -1, 66, 67, -1, -1, 61, 62, 23, 24, -1, + 66, 67, 61, 62, -1, 31, 32, 66, 67, 35, + -1, 37, 59, -1, -1, 23, 24, -1, 65, 66, + 67, -1, -1, -1, 32, 10, -1, 35, -1, 37, + -1, -1, -1, -1, -1, -1, -1, 22, 85, -1, + -1, -1, -1, -1, 29, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 79, -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, 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, - -1, 33, 34, -1, 36, -1, -1, -1, -1, -1, - -1, 43, -1, -1, -1, 47, -1, -1, -1, -1, + 55, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, 66, 67, -1, -1, -1, -1, 23, 24, 74, + -1, -1, 3, 55, -1, 31, 32, 59, 83, 35, + 85, 37, 13, -1, 66, 67, 17, -1, -1, -1, + -1, -1, 74, -1, -1, 26, -1, 28, -1, -1, + 31, 83, -1, 85, -1, -1, -1, -1, 39, -1, + 41, 42, -1, -1, -1, -1, -1, -1, 49, -1, + -1, 52, 53, -1, -1, -1, -1, 58, -1, -1, + -1, -1, -1, 64, -1, -1, -1, -1, -1, 3, + -1, -1, -1, -1, -1, -1, -1, -1, 79, 13, + -1, -1, -1, 17, -1, -1, -1, -1, -1, -1, + -1, -1, 26, -1, 28, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 39, -1, 41, 42, -1, + -1, -1, -1, -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, -1, 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 65, 66, 67, -1, 69, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 80, 81, - 82, -1, -1, -1, 86, -1, -1, -1, -1, -1, - -1, -1, -1, 11, 12, 13, -1, -1, -1, -1, - -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, - -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, - -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, - -1, -1, -1, 51, -1, 53, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, - -1, 69, -1, 71, -1, 73, -1, 75, -1, -1, - -1, -1, 80, 81, 82, -1, -1, -1, 86, -1, - -1, -1, -1, -1, -1, -1, -1, 11, 12, 13, - -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, - -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, - 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, - 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, + -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, + -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, + -1, -1, 33, 34, -1, 36, -1, -1, -1, -1, + -1, -1, 43, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 65, 66, 67, -1, 69, -1, 71, -1, 73, - 74, 75, -1, -1, -1, -1, 80, 81, 82, -1, - -1, -1, 86, -1, -1, -1, -1, -1, -1, -1, - -1, 7, -1, -1, -1, 11, 12, 13, -1, -1, + -1, -1, -1, -1, 65, 66, 67, -1, 69, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, + 81, 82, -1, -1, -1, 86, -1, -1, -1, -1, + -1, -1, -1, -1, 11, 12, 13, -1, -1, -1, + -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, + -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, + -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, + 47, -1, -1, -1, 51, -1, 53, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, + 67, -1, 69, -1, 71, -1, 73, -1, 75, -1, + -1, -1, -1, 80, 81, 82, -1, -1, -1, 86, + -1, -1, -1, -1, -1, -1, -1, -1, 7, -1, + -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, + -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, + 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, + -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, + -1, -1, 51, -1, 53, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 65, 66, 67, -1, + 69, -1, 71, -1, 73, -1, 75, -1, -1, -1, + -1, 80, 81, 82, -1, -1, -1, 86, -1, -1, + -1, -1, -1, -1, -1, -1, 11, 12, 13, -1, + -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, + -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, + -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, + -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 65, 66, 67, -1, 69, -1, 71, -1, 73, 74, + 75, -1, -1, -1, -1, 80, 81, 82, -1, -1, + -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, + 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, + -1, 22, -1, -1, -1, -1, -1, -1, 29, 30, + -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, + -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, + 51, -1, 53, -1, -1, -1, -1, -1, -1, -1, + 61, -1, -1, -1, 65, 66, 67, -1, 69, -1, + 71, -1, 73, -1, 75, -1, -1, -1, -1, 80, + 81, 82, -1, -1, -1, 86, -1, -1, -1, -1, + -1, -1, -1, -1, 11, 12, 13, -1, -1, -1, + -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, + -1, -1, 29, 30, -1, -1, 33, 34, -1, 36, + -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, + 47, -1, -1, -1, 51, -1, 53, -1, -1, -1, + -1, -1, -1, -1, 61, -1, -1, -1, 65, 66, + 67, -1, 69, -1, 71, -1, 73, -1, 75, -1, + -1, -1, -1, 80, 81, 82, -1, -1, -1, 86, + -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, + -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, + -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, + -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, + 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, + -1, 51, -1, 53, -1, -1, 56, -1, -1, -1, + -1, -1, -1, -1, -1, 65, 66, 67, -1, 69, + -1, 71, -1, 73, -1, 75, -1, -1, -1, -1, + 80, 81, 82, -1, -1, -1, 86, -1, -1, -1, + -1, -1, -1, -1, -1, 8, -1, -1, 11, 12, + 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, + -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, + 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, + 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, + 53, -1, -1, 56, -1, -1, -1, -1, -1, -1, + -1, -1, 65, 66, 67, -1, 69, -1, 71, -1, + 73, -1, 75, -1, -1, -1, -1, 80, 81, 82, + -1, -1, -1, 86, -1, -1, -1, -1, -1, -1, + -1, -1, 8, -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, + 56, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, -1, 69, -1, 71, -1, 73, -1, 75, -1, -1, -1, -1, 80, 81, 82, -1, -1, -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, 8, @@ -740,151 +778,110 @@ const int QmlJSGrammar::action_check [] = { 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, - -1, 53, -1, -1, 56, -1, -1, -1, -1, -1, + -1, 53, -1, -1, 56, -1, -1, 59, -1, -1, -1, -1, -1, 65, 66, 67, -1, 69, -1, 71, -1, 73, -1, 75, -1, -1, -1, -1, 80, 81, - 82, -1, -1, -1, 86, -1, -1, -1, -1, -1, - -1, -1, -1, 11, 12, 13, -1, -1, -1, -1, - -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, + 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, + -1, -1, -1, 4, 5, 6, -1, -1, 9, 10, + 11, -1, -1, 14, -1, 16, -1, -1, -1, 20, + 21, 22, -1, -1, -1, -1, -1, -1, 29, 30, + 31, 32, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 43, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, + -1, -1, -1, -1, -1, 66, 67, 68, 69, 70, + -1, 72, 73, 74, 75, 76, 77, -1, -1, 80, + 81, 82, 83, 84, 85, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4, 5, 6, -1, -1, 9, + 10, 11, -1, -1, 14, -1, 16, -1, -1, -1, + 20, 21, 22, -1, -1, -1, -1, -1, -1, 29, + 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 43, -1, -1, -1, 47, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + -1, -1, -1, -1, -1, 65, 66, 67, 68, 69, + 70, -1, 72, 73, 74, 75, 76, 77, -1, -1, + 80, 81, 82, 83, 84, 85, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 4, 5, 6, -1, -1, + 9, 10, 11, -1, -1, 14, -1, 16, -1, -1, + -1, 20, 21, 22, -1, -1, -1, -1, -1, -1, + 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 43, -1, -1, -1, 47, -1, + -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, + 59, -1, -1, -1, -1, -1, 65, 66, 67, 68, + 69, 70, -1, 72, 73, 74, 75, 76, 77, -1, + -1, 80, 81, 82, 83, 84, 85, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, + -1, 9, -1, 11, 12, 13, 14, -1, -1, -1, + -1, -1, -1, 21, 22, -1, -1, -1, -1, -1, -1, 29, 30, -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, -1, -1, - -1, -1, -1, 61, -1, -1, -1, 65, 66, 67, - -1, 69, -1, 71, -1, 73, -1, 75, -1, -1, - -1, -1, 80, 81, 82, -1, -1, -1, 86, -1, - -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, - 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, - -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, - -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, - -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, - 51, -1, 53, -1, -1, 56, -1, -1, -1, -1, - -1, -1, -1, -1, 65, 66, 67, -1, 69, -1, - 71, -1, 73, -1, 75, -1, -1, -1, -1, 80, - 81, 82, -1, -1, -1, 86, -1, -1, -1, -1, - -1, -1, -1, -1, 8, -1, -1, 11, 12, 13, - -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, - -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, - 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, - 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, - -1, -1, 56, -1, -1, -1, -1, -1, -1, -1, - -1, 65, 66, 67, -1, 69, -1, 71, -1, 73, - -1, 75, -1, -1, -1, -1, 80, 81, 82, -1, - -1, -1, 86, -1, -1, -1, -1, -1, -1, -1, - -1, 8, -1, -1, 11, 12, 13, -1, -1, -1, - -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, - -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, + -1, 59, -1, 61, -1, -1, -1, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + -1, -1, 80, 81, 82, 83, 84, -1, 86, -1, + -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, + -1, -1, 9, -1, 11, 12, 13, 14, -1, -1, + -1, -1, -1, -1, 21, 22, -1, -1, -1, -1, + -1, -1, 29, 30, -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, - 47, -1, -1, -1, 51, -1, 53, -1, -1, 56, - -1, -1, 59, -1, -1, -1, -1, -1, 65, 66, - 67, -1, 69, -1, 71, -1, 73, -1, 75, -1, - -1, -1, -1, 80, 81, 82, -1, -1, 85, 86, + 47, -1, -1, -1, 51, -1, 53, -1, -1, -1, + -1, -1, 59, -1, 61, -1, -1, -1, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, -1, -1, 80, 81, 82, 83, 84, -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, - 6, -1, -1, 9, 10, 11, -1, -1, 14, -1, + 6, -1, -1, 9, 10, 11, 12, 13, 14, -1, 16, -1, -1, -1, 20, 21, 22, -1, -1, -1, - -1, -1, -1, 29, 30, 31, 32, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, - 66, 67, 68, 69, 70, -1, 72, 73, 74, 75, + -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, + 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, + -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, + -1, -1, -1, 59, -1, 61, -1, -1, -1, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, 80, 81, 82, 83, 84, 85, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, - 5, 6, -1, -1, 9, 10, 11, -1, -1, 14, + 86, -1, -1, -1, -1, -1, -1, -1, -1, 4, + 5, 6, -1, -1, 9, 10, 11, 12, 13, 14, -1, 16, -1, -1, -1, 20, 21, 22, -1, -1, - -1, -1, -1, -1, 29, 30, 31, 32, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, - -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, - 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, + -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, + -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, + -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, + 55, -1, -1, -1, 59, -1, 61, -1, -1, -1, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, 80, 81, 82, 83, 84, - 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 4, 5, 6, -1, -1, 9, 10, 11, -1, -1, - 14, -1, 16, -1, -1, -1, 20, 21, 22, -1, - -1, -1, -1, -1, -1, 29, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, - -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, - -1, 55, -1, -1, -1, 59, -1, -1, -1, -1, - -1, 65, 66, 67, 68, 69, 70, -1, 72, 73, - 74, 75, 76, 77, -1, -1, 80, 81, 82, 83, - 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4, -1, -1, -1, -1, 9, -1, 11, 12, - 13, 14, -1, -1, -1, -1, -1, -1, 21, 22, - -1, -1, -1, -1, -1, -1, 29, 30, -1, -1, - 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, - 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, - 53, -1, -1, -1, -1, -1, 59, -1, 61, -1, - -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, -1, -1, 80, 81, 82, - 83, 84, -1, 86, -1, -1, -1, -1, -1, -1, - -1, -1, 4, -1, -1, -1, -1, 9, -1, 11, - 12, 13, 14, -1, -1, -1, -1, -1, -1, 21, - 22, -1, -1, -1, -1, -1, -1, 29, 30, -1, - -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, - 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, - -1, 53, -1, -1, -1, -1, -1, 59, -1, 61, - -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, -1, -1, 80, 81, - 82, 83, 84, -1, 86, -1, -1, -1, -1, -1, - -1, -1, -1, 4, 5, 6, -1, -1, 9, 10, - 11, 12, 13, 14, -1, 16, -1, -1, -1, 20, - 21, 22, -1, -1, -1, -1, -1, -1, 29, 30, - 31, 32, 33, 34, -1, 36, -1, -1, -1, 40, - -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, - 51, -1, 53, -1, -1, -1, -1, -1, 59, -1, - 61, -1, -1, -1, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, -1, -1, 80, - 81, 82, 83, 84, 85, 86, -1, -1, -1, -1, - -1, -1, -1, -1, 4, 5, 6, -1, -1, 9, - 10, 11, 12, 13, 14, -1, 16, -1, -1, -1, - 20, 21, 22, -1, -1, -1, -1, -1, -1, 29, - 30, 31, 32, 33, 34, -1, 36, -1, -1, -1, - 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, - -1, 51, -1, 53, -1, 55, -1, -1, -1, 59, - -1, 61, -1, -1, -1, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, - 80, 81, 82, 83, 84, 85, 86, -1, -1, -1, - -1, -1, -1, -1, -1, + 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, - 9, 8, 3, 3, 9, 2, 16, 3, 3, 2, - 9, 2, 20, 3, 30, 9, 3, 9, 20, 63, - 3, 9, 3, 9, 9, 9, 15, 9, 3, 9, - 2, 9, 3, 31, 2, 9, 94, 77, 3, 9, - 16, 20, 9, 9, 2, 77, 3, 16, 2, 2, - 2, 89, 3, 30, 2, 2, 16, 30, 3, 9, - 3, 2, 2, 9, 3, 9, 30, 30, 30, 30, - 92, 30, 2, 9, 3, 3, 9, 2, 2, -1, - 3, 30, 3, 2, 40, 40, 42, 9, 30, 44, - 3, -1, 30, 30, 9, 3, -1, -1, -1, 34, - 26, -1, 37, 30, 30, 9, 40, 11, 40, 36, - 42, 45, 9, 10, 3, 9, 2, -1, 34, 30, - 40, 37, 40, 40, 42, 36, 40, 44, 40, 9, - 50, 40, 3, 45, 40, 40, 9, 2, 32, 40, - 45, 40, 56, 52, 45, 40, 45, 42, 54, 40, - 40, 64, 42, 40, 45, 40, 64, 40, 45, 40, - 45, 40, 45, 42, 45, 40, 40, -1, 43, 43, - 40, 40, 42, 95, 40, 64, 40, 40, 42, 48, - 46, 40, 40, 46, 42, 40, -1, 46, 40, 40, - 42, 46, -1, 64, 45, 40, 40, 42, 42, 34, - 40, 40, 37, 83, 44, 9, 45, 40, 81, 42, - 40, 40, 42, 42, 9, 101, 11, 40, 40, 42, - 40, 40, 40, 45, -1, 45, 45, 45, 32, 33, - -1, 96, 40, 53, 40, 57, 55, 45, -1, 45, - 40, 40, -1, 51, 62, 45, 45, 40, -1, 40, - 40, 40, 45, 42, 45, 45, 62, 47, 49, 40, - -1, -1, 62, 62, 45, 9, 47, 11, 40, 62, - 9, 10, -1, 45, -1, 47, 9, 10, -1, -1, - 13, -1, -1, -1, 23, 24, 30, -1, -1, -1, - 23, 24, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 40, -1, -1, -1, -1, 45, - -1, 47, -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, 3, -1, -1, + 9, 3, 9, 2, 33, 9, 3, 15, 9, 9, + 21, 9, 66, 9, 9, 9, 3, 33, 9, 2, + 9, 3, 15, 3, 9, 9, 3, 17, 2, 21, + 2, 9, 3, 21, 3, 3, 9, 3, 3, 9, + 2, 17, 17, 2, 2, 9, 9, 33, 9, 9, + 2, 97, 33, 9, 33, 3, 2, 95, 3, 2, + 9, 2, 80, 3, 3, 80, 33, 17, 92, 3, + 2, 2, 2, 9, 3, 17, 33, 2, 2, 34, + 33, 3, 33, 3, 2, 8, 33, 3, 2, 33, + 9, -1, -1, -1, -1, 33, -1, 9, 9, -1, + 3, 9, 10, 9, 9, 9, 43, 11, 43, 3, + 43, 37, 45, 48, 40, 43, 43, 45, 45, 24, + 9, 9, 59, 11, 2, -1, 43, -1, 43, 35, + 43, 33, 49, 43, 43, 48, 43, 39, 48, -1, + -1, 48, 57, 43, 43, 45, 55, 43, 43, 45, + 43, 33, 43, 48, 53, 48, 43, 39, 49, 46, + 43, 29, 45, 43, 67, 33, -1, 86, 48, 43, + 43, 45, 45, 67, 43, 3, 43, 46, 43, 43, + 45, 48, 43, 3, 48, 99, 43, 98, 45, 43, + 51, 45, 43, 43, 43, 84, 45, 48, 48, 43, + 37, 43, 43, 40, 48, 47, -1, 43, 49, 45, + 43, 37, 45, 43, 40, 45, 43, -1, -1, 43, + 43, -1, 49, 47, 47, 43, 104, 45, 43, 43, + 43, 43, -1, 48, 48, 48, 48, 50, 50, 67, + 43, 43, 9, 58, 11, 48, 48, 67, 43, 52, + 43, 65, -1, 48, -1, 48, -1, 43, 60, 45, + 43, 54, 43, 43, 43, 48, 33, 48, 48, 48, + 65, 50, 43, 43, 9, 10, -1, 48, 48, 50, + 3, -1, 65, -1, 65, 65, 56, 3, -1, 9, + 10, 26, 27, 13, 17, 18, 19, 20, -1, -1, + -1, 17, 18, 19, 20, -1, 26, 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 16, 17, 18, 19, -1, -1, -1, -1, -1, -1, + 9, -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, 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, diff --git a/src/declarative/qml/parser/qmljsgrammar_p.h b/src/declarative/qml/parser/qmljsgrammar_p.h index 1101e69..c2bc60e 100644 --- a/src/declarative/qml/parser/qmljsgrammar_p.h +++ b/src/declarative/qml/parser/qmljsgrammar_p.h @@ -154,15 +154,15 @@ public: T_XOR = 78, T_XOR_EQ = 79, - ACCEPT_STATE = 620, - RULE_COUNT = 339, - STATE_COUNT = 621, + ACCEPT_STATE = 638, + RULE_COUNT = 350, + STATE_COUNT = 639, TERMINAL_COUNT = 95, - NON_TERMINAL_COUNT = 103, + NON_TERMINAL_COUNT = 106, - GOTO_INDEX_OFFSET = 621, - GOTO_INFO_OFFSET = 2285, - GOTO_CHECK_OFFSET = 2285 + GOTO_INDEX_OFFSET = 639, + GOTO_INFO_OFFSET = 2310, + GOTO_CHECK_OFFSET = 2310 }; static const char *const spell []; diff --git a/src/declarative/qml/parser/qmljsparser.cpp b/src/declarative/qml/parser/qmljsparser.cpp index 7469381..22f3820 100644 --- a/src/declarative/qml/parser/qmljsparser.cpp +++ b/src/declarative/qml/parser/qmljsparser.cpp @@ -337,8 +337,8 @@ case 28: { } break; case 30: { - AST::UiArrayBinding *node = makeAstNode (driver->nodePool(), sym(1).UiQualifiedId->finish(), - sym(4).UiArrayMemberList->finish()); + AST::UiArrayBinding *node = makeAstNode (driver->nodePool(), + sym(1).UiQualifiedId->finish(), sym(4).UiArrayMemberList->finish()); node->colonToken = loc(2); node->lbracketToken = loc(3); node->rbracketToken = loc(5); @@ -360,43 +360,66 @@ case 31: { return false; // ### recover } } break; -case 32:case 33:case 34:case 35: + +case 32: { + if (AST::UiQualifiedId *qualifiedId = reparseAsQualifiedId(sym(4).Expression)) { + AST::UiObjectBinding *node = makeAstNode (driver->nodePool(), + sym(1).UiQualifiedId->finish(), qualifiedId, sym(5).UiObjectInitializer); + node->colonToken = loc(3); + sym(1).Node = node; + } else { + sym(1).Node = 0; + + diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, loc(2), + QLatin1String("Expected a type name after token `:'"))); + + return false; // ### recover + } +} break; +case 33:case 34:case 35:case 36: +{ + AST::UiScriptBinding *node = makeAstNode (driver->nodePool(), + sym(1).UiQualifiedId->finish(), sym(4).Statement); + node->colonToken = loc(3); + sym(1).Node = node; +} break; +case 37:case 38:case 39:case 40: { - AST::UiScriptBinding *node = makeAstNode (driver->nodePool(), sym(1).UiQualifiedId->finish(), - sym(3).Statement); + AST::UiScriptBinding *node = makeAstNode (driver->nodePool(), + sym(1).UiQualifiedId->finish(), sym(3).Statement); node->colonToken = loc(2); sym(1).Node = node; } break; -case 36: +case 41: -case 37: { +case 42: { sym(1).sval = driver->intern(lexer->characterBuffer(), lexer->characterCount()); break; } -case 39: { +case 44: { sym(1).Node = 0; } break; -case 40: { +case 45: { sym(1).Node = sym(1).UiParameterList->finish (); } break; -case 41: { +case 46: { AST::UiParameterList *node = makeAstNode (driver->nodePool(), sym(1).sval, sym(2).sval); node->identifierToken = loc(2); sym(1).Node = node; } break; -case 42: { +case 47: { AST::UiParameterList *node = makeAstNode (driver->nodePool(), sym(1).UiParameterList, sym(3).sval, sym(4).sval); node->commaToken = loc(2); node->identifierToken = loc(4); sym(1).Node = node; } break; -case 44: { +case 55: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), (NameId *)0, sym(2).sval); node->type = AST::UiPublicMember::Signal; node->propertyToken = loc(1); @@ -407,7 +430,7 @@ case 44: { sym(1).Node = node; } break; -case 46: { +case 57: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), (NameId *)0, sym(2).sval); node->type = AST::UiPublicMember::Signal; node->propertyToken = loc(1); @@ -417,7 +440,7 @@ case 46: { sym(1).Node = node; } break; -case 48: { +case 59: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), sym(2).sval, sym(3).sval); node->propertyToken = loc(1); node->typeToken = loc(2); @@ -426,7 +449,7 @@ case 48: { sym(1).Node = node; } break; -case 50: { +case 61: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), sym(3).sval, sym(4).sval); node->isDefaultMember = true; node->defaultToken = loc(1); @@ -437,7 +460,7 @@ case 50: { sym(1).Node = node; } break; -case 52: { +case 63: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), sym(2).sval, sym(3).sval, sym(5).Expression); node->propertyToken = loc(1); @@ -448,7 +471,7 @@ case 52: { sym(1).Node = node; } break; -case 54: { +case 65: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), sym(3).sval, sym(4).sval, sym(6).Expression); node->isDefaultMember = true; @@ -461,76 +484,76 @@ case 54: { sym(1).Node = node; } break; -case 55: { +case 66: { sym(1).Node = makeAstNode(driver->nodePool(), sym(1).Node); } break; -case 56: { +case 67: { sym(1).Node = makeAstNode(driver->nodePool(), sym(1).Node); } break; -case 57: -case 58: +case 68: +case 69: { AST::UiQualifiedId *node = makeAstNode (driver->nodePool(), driver->intern(lexer->characterBuffer(), lexer->characterCount())); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 60: { +case 71: { QString s = QLatin1String(QmlJSGrammar::spell[T_PROPERTY]); sym(1).sval = driver->intern(s.constData(), s.length()); break; } -case 61: { +case 72: { QString s = QLatin1String(QmlJSGrammar::spell[T_SIGNAL]); sym(1).sval = driver->intern(s.constData(), s.length()); break; } -case 62: { +case 73: { AST::ThisExpression *node = makeAstNode (driver->nodePool()); node->thisToken = loc(1); sym(1).Node = node; } break; -case 63: { +case 74: { AST::IdentifierExpression *node = makeAstNode (driver->nodePool(), sym(1).sval); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 64: { +case 75: { AST::NullExpression *node = makeAstNode (driver->nodePool()); node->nullToken = loc(1); sym(1).Node = node; } break; -case 65: { +case 76: { AST::TrueLiteral *node = makeAstNode (driver->nodePool()); node->trueToken = loc(1); sym(1).Node = node; } break; -case 66: { +case 77: { AST::FalseLiteral *node = makeAstNode (driver->nodePool()); node->falseToken = loc(1); sym(1).Node = node; } break; -case 67: { +case 78: { AST::NumericLiteral *node = makeAstNode (driver->nodePool(), sym(1).dval); node->literalToken = loc(1); sym(1).Node = node; } break; -case 68: -case 69: { +case 79: +case 80: { AST::StringLiteral *node = makeAstNode (driver->nodePool(), sym(1).sval); node->literalToken = loc(1); sym(1).Node = node; } break; -case 70: { +case 81: { bool rx = lexer->scanRegExp(Lexer::NoPrefix); if (!rx) { diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, location(lexer), lexer->errorMessage())); @@ -541,7 +564,7 @@ case 70: { sym(1).Node = node; } break; -case 71: { +case 82: { bool rx = lexer->scanRegExp(Lexer::EqualPrefix); if (!rx) { diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, location(lexer), lexer->errorMessage())); @@ -552,28 +575,28 @@ case 71: { sym(1).Node = node; } break; -case 72: { +case 83: { AST::ArrayLiteral *node = makeAstNode (driver->nodePool(), (AST::Elision *) 0); node->lbracketToken = loc(1); node->rbracketToken = loc(2); sym(1).Node = node; } break; -case 73: { +case 84: { AST::ArrayLiteral *node = makeAstNode (driver->nodePool(), sym(2).Elision->finish()); node->lbracketToken = loc(1); node->rbracketToken = loc(3); sym(1).Node = node; } break; -case 74: { +case 85: { AST::ArrayLiteral *node = makeAstNode (driver->nodePool(), sym(2).ElementList->finish ()); node->lbracketToken = loc(1); node->rbracketToken = loc(3); sym(1).Node = node; } break; -case 75: { +case 86: { AST::ArrayLiteral *node = makeAstNode (driver->nodePool(), sym(2).ElementList->finish (), (AST::Elision *) 0); node->lbracketToken = loc(1); @@ -582,7 +605,7 @@ case 75: { sym(1).Node = node; } break; -case 76: { +case 87: { AST::ArrayLiteral *node = makeAstNode (driver->nodePool(), sym(2).ElementList->finish (), sym(4).Elision->finish()); node->lbracketToken = loc(1); @@ -591,7 +614,7 @@ case 76: { sym(1).Node = node; } break; -case 77: { +case 88: { AST::ObjectLiteral *node = 0; if (sym(2).Node) node = makeAstNode (driver->nodePool(), @@ -603,7 +626,7 @@ case 77: { sym(1).Node = node; } break; -case 78: { +case 89: { AST::ObjectLiteral *node = makeAstNode (driver->nodePool(), sym(2).PropertyNameAndValueList->finish ()); node->lbraceToken = loc(1); @@ -611,67 +634,67 @@ case 78: { sym(1).Node = node; } break; -case 79: { +case 90: { AST::NestedExpression *node = makeAstNode(driver->nodePool(), sym(2).Expression); node->lparenToken = loc(1); node->rparenToken = loc(3); sym(1).Node = node; } break; -case 80: { +case 91: { AST::UiQualifiedId *node = makeAstNode (driver->nodePool(), sym(1).sval); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 81: { +case 92: { AST::UiQualifiedId *node = makeAstNode (driver->nodePool(), sym(1).UiQualifiedId, sym(3).sval); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 82: { +case 93: { sym(1).Node = makeAstNode (driver->nodePool(), (AST::Elision *) 0, sym(1).Expression); } break; -case 83: { +case 94: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).Elision->finish(), sym(2).Expression); } break; -case 84: { +case 95: { AST::ElementList *node = makeAstNode (driver->nodePool(), sym(1).ElementList, (AST::Elision *) 0, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 85: { +case 96: { AST::ElementList *node = makeAstNode (driver->nodePool(), sym(1).ElementList, sym(3).Elision->finish(), sym(4).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 86: { +case 97: { AST::Elision *node = makeAstNode (driver->nodePool()); node->commaToken = loc(1); sym(1).Node = node; } break; -case 87: { +case 98: { AST::Elision *node = makeAstNode (driver->nodePool(), sym(1).Elision); node->commaToken = loc(2); sym(1).Node = node; } break; -case 88: { +case 99: { AST::PropertyNameAndValueList *node = makeAstNode (driver->nodePool(), sym(1).PropertyName, sym(3).Expression); node->colonToken = loc(2); sym(1).Node = node; } break; -case 89: { +case 100: { AST::PropertyNameAndValueList *node = makeAstNode (driver->nodePool(), sym(1).PropertyNameAndValueList, sym(3).PropertyName, sym(5).Expression); node->commaToken = loc(2); @@ -679,58 +702,36 @@ case 89: { sym(1).Node = node; } break; -case 90: { +case 101: { AST::IdentifierPropertyName *node = makeAstNode (driver->nodePool(), sym(1).sval); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 91: -case 92: { +case 102: +case 103: { AST::IdentifierPropertyName *node = makeAstNode (driver->nodePool(), driver->intern(lexer->characterBuffer(), lexer->characterCount())); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 93: { +case 104: { AST::StringLiteralPropertyName *node = makeAstNode (driver->nodePool(), sym(1).sval); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 94: { +case 105: { AST::NumericLiteralPropertyName *node = makeAstNode (driver->nodePool(), sym(1).dval); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 95: { +case 106: { AST::IdentifierPropertyName *node = makeAstNode (driver->nodePool(), sym(1).sval); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 96: - -case 97: - -case 98: - -case 99: - -case 100: - -case 101: - -case 102: - -case 103: - -case 104: - -case 105: - -case 106: - case 107: case 108: @@ -770,25 +771,47 @@ case 124: case 125: case 126: + +case 127: + +case 128: + +case 129: + +case 130: + +case 131: + +case 132: + +case 133: + +case 134: + +case 135: + +case 136: + +case 137: { sym(1).sval = driver->intern(lexer->characterBuffer(), lexer->characterCount()); } break; -case 131: { +case 142: { AST::ArrayMemberExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).Expression); node->lbracketToken = loc(2); node->rbracketToken = loc(4); sym(1).Node = node; } break; -case 132: { +case 143: { AST::FieldMemberExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).sval); node->dotToken = loc(2); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 133: { +case 144: { AST::NewMemberExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression, sym(4).ArgumentList); node->newToken = loc(1); node->lparenToken = loc(3); @@ -796,384 +819,384 @@ case 133: { sym(1).Node = node; } break; -case 135: { +case 146: { AST::NewExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->newToken = loc(1); sym(1).Node = node; } break; -case 136: { +case 147: { AST::CallExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).ArgumentList); node->lparenToken = loc(2); node->rparenToken = loc(4); sym(1).Node = node; } break; -case 137: { +case 148: { AST::CallExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).ArgumentList); node->lparenToken = loc(2); node->rparenToken = loc(4); sym(1).Node = node; } break; -case 138: { +case 149: { AST::ArrayMemberExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).Expression); node->lbracketToken = loc(2); node->rbracketToken = loc(4); sym(1).Node = node; } break; -case 139: { +case 150: { AST::FieldMemberExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).sval); node->dotToken = loc(2); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 140: { +case 151: { sym(1).Node = 0; } break; -case 141: { +case 152: { sym(1).Node = sym(1).ArgumentList->finish(); } break; -case 142: { +case 153: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).Expression); } break; -case 143: { +case 154: { AST::ArgumentList *node = makeAstNode (driver->nodePool(), sym(1).ArgumentList, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 147: { +case 158: { AST::PostIncrementExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression); node->incrementToken = loc(2); sym(1).Node = node; } break; -case 148: { +case 159: { AST::PostDecrementExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression); node->decrementToken = loc(2); sym(1).Node = node; } break; -case 150: { +case 161: { AST::DeleteExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->deleteToken = loc(1); sym(1).Node = node; } break; -case 151: { +case 162: { AST::VoidExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->voidToken = loc(1); sym(1).Node = node; } break; -case 152: { +case 163: { AST::TypeOfExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->typeofToken = loc(1); sym(1).Node = node; } break; -case 153: { +case 164: { AST::PreIncrementExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->incrementToken = loc(1); sym(1).Node = node; } break; -case 154: { +case 165: { AST::PreDecrementExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->decrementToken = loc(1); sym(1).Node = node; } break; -case 155: { +case 166: { AST::UnaryPlusExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->plusToken = loc(1); sym(1).Node = node; } break; -case 156: { +case 167: { AST::UnaryMinusExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->minusToken = loc(1); sym(1).Node = node; } break; -case 157: { +case 168: { AST::TildeExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->tildeToken = loc(1); sym(1).Node = node; } break; -case 158: { +case 169: { AST::NotExpression *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->notToken = loc(1); sym(1).Node = node; } break; -case 160: { +case 171: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Mul, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 161: { +case 172: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Div, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 162: { +case 173: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Mod, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 164: { +case 175: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Add, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 165: { +case 176: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Sub, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 167: { +case 178: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::LShift, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 168: { +case 179: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::RShift, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 169: { +case 180: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::URShift, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 171: { +case 182: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Lt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 172: { +case 183: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Gt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 173: { +case 184: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Le, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 174: { +case 185: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Ge, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 175: { +case 186: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::InstanceOf, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 176: { +case 187: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::In, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 178: { +case 189: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Lt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 179: { +case 190: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Gt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 180: { +case 191: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Le, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 181: { +case 192: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Ge, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 182: { +case 193: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::InstanceOf, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 184: { +case 195: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Equal, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 185: { +case 196: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::NotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 186: { +case 197: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::StrictEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 187: { +case 198: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::StrictNotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 189: { +case 200: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Equal, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 190: { +case 201: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::NotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 191: { +case 202: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::StrictEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 192: { +case 203: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::StrictNotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 194: { +case 205: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::BitAnd, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 196: { +case 207: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::BitAnd, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 198: { +case 209: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::BitXor, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 200: { +case 211: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::BitXor, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 202: { +case 213: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::BitOr, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 204: { +case 215: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::BitOr, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 206: { +case 217: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::And, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 208: { +case 219: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::And, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 210: { +case 221: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Or, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 212: { +case 223: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, QSOperator::Or, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 214: { +case 225: { AST::ConditionalExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).Expression, sym(5).Expression); node->questionToken = loc(2); @@ -1181,7 +1204,7 @@ case 214: { sym(1).Node = node; } break; -case 216: { +case 227: { AST::ConditionalExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).Expression, sym(5).Expression); node->questionToken = loc(2); @@ -1189,112 +1212,112 @@ case 216: { sym(1).Node = node; } break; -case 218: { +case 229: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(2).ival, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 220: { +case 231: { AST::BinaryExpression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(2).ival, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 221: { +case 232: { sym(1).ival = QSOperator::Assign; } break; -case 222: { +case 233: { sym(1).ival = QSOperator::InplaceMul; } break; -case 223: { +case 234: { sym(1).ival = QSOperator::InplaceDiv; } break; -case 224: { +case 235: { sym(1).ival = QSOperator::InplaceMod; } break; -case 225: { +case 236: { sym(1).ival = QSOperator::InplaceAdd; } break; -case 226: { +case 237: { sym(1).ival = QSOperator::InplaceSub; } break; -case 227: { +case 238: { sym(1).ival = QSOperator::InplaceLeftShift; } break; -case 228: { +case 239: { sym(1).ival = QSOperator::InplaceRightShift; } break; -case 229: { +case 240: { sym(1).ival = QSOperator::InplaceURightShift; } break; -case 230: { +case 241: { sym(1).ival = QSOperator::InplaceAnd; } break; -case 231: { +case 242: { sym(1).ival = QSOperator::InplaceXor; } break; -case 232: { +case 243: { sym(1).ival = QSOperator::InplaceOr; } break; -case 234: { +case 245: { AST::Expression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 235: { +case 246: { sym(1).Node = 0; } break; -case 238: { +case 249: { AST::Expression *node = makeAstNode (driver->nodePool(), sym(1).Expression, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 239: { +case 250: { sym(1).Node = 0; } break; -case 256: { +case 267: { AST::Block *node = makeAstNode (driver->nodePool(), sym(2).StatementList); node->lbraceToken = loc(1); node->rbraceToken = loc(3); sym(1).Node = node; } break; -case 257: { +case 268: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).Statement); } break; -case 258: { +case 269: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).StatementList, sym(2).Statement); } break; -case 259: { +case 270: { sym(1).Node = 0; } break; -case 260: { +case 271: { sym(1).Node = sym(1).StatementList->finish (); } break; -case 262: { +case 273: { AST::VariableStatement *node = makeAstNode (driver->nodePool(), sym(2).VariableDeclarationList->finish (/*readOnly=*/sym(1).ival == T_CONST)); node->declarationKindToken = loc(1); @@ -1302,76 +1325,76 @@ case 262: { sym(1).Node = node; } break; -case 263: { +case 274: { sym(1).ival = T_CONST; } break; -case 264: { +case 275: { sym(1).ival = T_VAR; } break; -case 265: { +case 276: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).VariableDeclaration); } break; -case 266: { +case 277: { AST::VariableDeclarationList *node = makeAstNode (driver->nodePool(), sym(1).VariableDeclarationList, sym(3).VariableDeclaration); node->commaToken = loc(2); sym(1).Node = node; } break; -case 267: { +case 278: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).VariableDeclaration); } break; -case 268: { +case 279: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).VariableDeclarationList, sym(3).VariableDeclaration); } break; -case 269: { +case 280: { AST::VariableDeclaration *node = makeAstNode (driver->nodePool(), sym(1).sval, sym(2).Expression); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 270: { +case 281: { AST::VariableDeclaration *node = makeAstNode (driver->nodePool(), sym(1).sval, sym(2).Expression); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 271: { +case 282: { // ### TODO: AST for initializer sym(1) = sym(2); } break; -case 272: { +case 283: { sym(1).Node = 0; } break; -case 274: { +case 285: { // ### TODO: AST for initializer sym(1) = sym(2); } break; -case 275: { +case 286: { sym(1).Node = 0; } break; -case 277: { +case 288: { AST::EmptyStatement *node = makeAstNode (driver->nodePool()); node->semicolonToken = loc(1); sym(1).Node = node; } break; -case 279: { +case 290: { AST::ExpressionStatement *node = makeAstNode (driver->nodePool(), sym(1).Expression); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 280: { +case 291: { AST::IfStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).Statement, sym(7).Statement); node->ifToken = loc(1); node->lparenToken = loc(2); @@ -1380,7 +1403,7 @@ case 280: { sym(1).Node = node; } break; -case 281: { +case 292: { AST::IfStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).Statement); node->ifToken = loc(1); node->lparenToken = loc(2); @@ -1388,7 +1411,7 @@ case 281: { sym(1).Node = node; } break; -case 283: { +case 294: { AST::DoWhileStatement *node = makeAstNode (driver->nodePool(), sym(2).Statement, sym(5).Expression); node->doToken = loc(1); node->whileToken = loc(3); @@ -1398,7 +1421,7 @@ case 283: { sym(1).Node = node; } break; -case 284: { +case 295: { AST::WhileStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).Statement); node->whileToken = loc(1); node->lparenToken = loc(2); @@ -1406,7 +1429,7 @@ case 284: { sym(1).Node = node; } break; -case 285: { +case 296: { AST::ForStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).Expression, sym(7).Expression, sym(9).Statement); node->forToken = loc(1); @@ -1417,7 +1440,7 @@ case 285: { sym(1).Node = node; } break; -case 286: { +case 297: { AST::LocalForStatement *node = makeAstNode (driver->nodePool(), sym(4).VariableDeclarationList->finish (/*readOnly=*/false), sym(6).Expression, sym(8).Expression, sym(10).Statement); @@ -1430,7 +1453,7 @@ case 286: { sym(1).Node = node; } break; -case 287: { +case 298: { AST:: ForEachStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).Expression, sym(7).Statement); node->forToken = loc(1); @@ -1440,7 +1463,7 @@ case 287: { sym(1).Node = node; } break; -case 288: { +case 299: { AST::LocalForEachStatement *node = makeAstNode (driver->nodePool(), sym(4).VariableDeclaration, sym(6).Expression, sym(8).Statement); node->forToken = loc(1); @@ -1451,14 +1474,14 @@ case 288: { sym(1).Node = node; } break; -case 290: { +case 301: { AST::ContinueStatement *node = makeAstNode (driver->nodePool()); node->continueToken = loc(1); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 292: { +case 303: { AST::ContinueStatement *node = makeAstNode (driver->nodePool(), sym(2).sval); node->continueToken = loc(1); node->identifierToken = loc(2); @@ -1466,14 +1489,14 @@ case 292: { sym(1).Node = node; } break; -case 294: { +case 305: { AST::BreakStatement *node = makeAstNode (driver->nodePool()); node->breakToken = loc(1); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 296: { +case 307: { AST::BreakStatement *node = makeAstNode (driver->nodePool(), sym(2).sval); node->breakToken = loc(1); node->identifierToken = loc(2); @@ -1481,14 +1504,14 @@ case 296: { sym(1).Node = node; } break; -case 298: { +case 309: { AST::ReturnStatement *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->returnToken = loc(1); node->semicolonToken = loc(3); sym(1).Node = node; } break; -case 299: { +case 310: { AST::WithStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).Statement); node->withToken = loc(1); node->lparenToken = loc(2); @@ -1496,7 +1519,7 @@ case 299: { sym(1).Node = node; } break; -case 300: { +case 311: { AST::SwitchStatement *node = makeAstNode (driver->nodePool(), sym(3).Expression, sym(5).CaseBlock); node->switchToken = loc(1); node->lparenToken = loc(2); @@ -1504,90 +1527,90 @@ case 300: { sym(1).Node = node; } break; -case 301: { +case 312: { AST::CaseBlock *node = makeAstNode (driver->nodePool(), sym(2).CaseClauses); node->lbraceToken = loc(1); node->rbraceToken = loc(3); sym(1).Node = node; } break; -case 302: { +case 313: { AST::CaseBlock *node = makeAstNode (driver->nodePool(), sym(2).CaseClauses, sym(3).DefaultClause, sym(4).CaseClauses); node->lbraceToken = loc(1); node->rbraceToken = loc(5); sym(1).Node = node; } break; -case 303: { +case 314: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).CaseClause); } break; -case 304: { +case 315: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).CaseClauses, sym(2).CaseClause); } break; -case 305: { +case 316: { sym(1).Node = 0; } break; -case 306: { +case 317: { sym(1).Node = sym(1).CaseClauses->finish (); } break; -case 307: { +case 318: { AST::CaseClause *node = makeAstNode (driver->nodePool(), sym(2).Expression, sym(4).StatementList); node->caseToken = loc(1); node->colonToken = loc(3); sym(1).Node = node; } break; -case 308: { +case 319: { AST::DefaultClause *node = makeAstNode (driver->nodePool(), sym(3).StatementList); node->defaultToken = loc(1); node->colonToken = loc(2); sym(1).Node = node; } break; -case 309: -case 310: { +case 320: +case 321: { AST::LabelledStatement *node = makeAstNode (driver->nodePool(), driver->intern(lexer->characterBuffer(), lexer->characterCount()), sym(3).Statement); node->identifierToken = loc(1); node->colonToken = loc(2); sym(1).Node = node; } break; -case 311: { +case 322: { AST::LabelledStatement *node = makeAstNode (driver->nodePool(), sym(1).sval, sym(3).Statement); node->identifierToken = loc(1); node->colonToken = loc(2); sym(1).Node = node; } break; -case 313: { +case 324: { AST::ThrowStatement *node = makeAstNode (driver->nodePool(), sym(2).Expression); node->throwToken = loc(1); node->semicolonToken = loc(3); sym(1).Node = node; } break; -case 314: { +case 325: { AST::TryStatement *node = makeAstNode (driver->nodePool(), sym(2).Statement, sym(3).Catch); node->tryToken = loc(1); sym(1).Node = node; } break; -case 315: { +case 326: { AST::TryStatement *node = makeAstNode (driver->nodePool(), sym(2).Statement, sym(3).Finally); node->tryToken = loc(1); sym(1).Node = node; } break; -case 316: { +case 327: { AST::TryStatement *node = makeAstNode (driver->nodePool(), sym(2).Statement, sym(3).Catch, sym(4).Finally); node->tryToken = loc(1); sym(1).Node = node; } break; -case 317: { +case 328: { AST::Catch *node = makeAstNode (driver->nodePool(), sym(3).sval, sym(5).Block); node->catchToken = loc(1); node->lparenToken = loc(2); @@ -1596,20 +1619,20 @@ case 317: { sym(1).Node = node; } break; -case 318: { +case 329: { AST::Finally *node = makeAstNode (driver->nodePool(), sym(2).Block); node->finallyToken = loc(1); sym(1).Node = node; } break; -case 320: { +case 331: { AST::DebuggerStatement *node = makeAstNode (driver->nodePool()); node->debuggerToken = loc(1); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 321: { +case 332: { AST::FunctionDeclaration *node = makeAstNode (driver->nodePool(), sym(2).sval, sym(4).FormalParameterList, sym(7).FunctionBody); node->functionToken = loc(1); node->identifierToken = loc(2); @@ -1620,7 +1643,7 @@ case 321: { sym(1).Node = node; } break; -case 322: { +case 333: { AST::FunctionExpression *node = makeAstNode (driver->nodePool(), sym(2).sval, sym(4).FormalParameterList, sym(7).FunctionBody); node->functionToken = loc(1); if (sym(2).sval) @@ -1632,56 +1655,56 @@ case 322: { sym(1).Node = node; } break; -case 323: { +case 334: { AST::FormalParameterList *node = makeAstNode (driver->nodePool(), sym(1).sval); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 324: { +case 335: { AST::FormalParameterList *node = makeAstNode (driver->nodePool(), sym(1).FormalParameterList, sym(3).sval); node->commaToken = loc(2); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 325: { +case 336: { sym(1).Node = 0; } break; -case 326: { +case 337: { sym(1).Node = sym(1).FormalParameterList->finish (); } break; -case 327: { +case 338: { sym(1).Node = 0; } break; -case 329: { +case 340: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).SourceElements->finish ()); } break; -case 330: { +case 341: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).SourceElement); } break; -case 331: { +case 342: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).SourceElements, sym(2).SourceElement); } break; -case 332: { +case 343: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).Statement); } break; -case 333: { +case 344: { sym(1).Node = makeAstNode (driver->nodePool(), sym(1).FunctionDeclaration); } break; -case 334: { +case 345: { sym(1).sval = 0; } break; -case 336: { +case 347: { sym(1).Node = 0; } break; diff --git a/src/declarative/qml/parser/qmljsparser_p.h b/src/declarative/qml/parser/qmljsparser_p.h index 17f33d6..be5317b 100644 --- a/src/declarative/qml/parser/qmljsparser_p.h +++ b/src/declarative/qml/parser/qmljsparser_p.h @@ -219,9 +219,9 @@ protected: -#define J_SCRIPT_REGEXPLITERAL_RULE1 70 +#define J_SCRIPT_REGEXPLITERAL_RULE1 81 -#define J_SCRIPT_REGEXPLITERAL_RULE2 71 +#define J_SCRIPT_REGEXPLITERAL_RULE2 82 QT_END_NAMESPACE -- cgit v0.12 From 64f8d8c72874cd2aca592045e861a7d73d058e15 Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Fri, 24 Jul 2009 15:32:55 +1000 Subject: Fix assert QmlMetaType::attachedPropertiesFuncId already has the hack, not needed from here too! --- src/declarative/qml/qmlcompiler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/declarative/qml/qmlcompiler.cpp b/src/declarative/qml/qmlcompiler.cpp index 20f0d93f..2e8666d 100644 --- a/src/declarative/qml/qmlcompiler.cpp +++ b/src/declarative/qml/qmlcompiler.cpp @@ -1427,7 +1427,7 @@ bool QmlCompiler::buildAttachedProperty(QmlParser::Property *prop, const BindingContext &ctxt) { Q_ASSERT(prop->value); - int id = QmlMetaType::attachedPropertiesFuncId("Qt/4.6/"+prop->name); // XXX Should not hard-code namespace + int id = QmlMetaType::attachedPropertiesFuncId(prop->name); Q_ASSERT(id != -1); // This is checked in compileProperty() prop->index = id; -- cgit v0.12 From aff524d218e9d2f2ed4a02258a5a159be3e61de6 Mon Sep 17 00:00:00 2001 From: Rhys Weatherley Date: Fri, 24 Jul 2009 15:37:14 +1000 Subject: Add QVector3D as a value type to QML Reviewed-by: Aaron Kennedy --- src/declarative/qml/qmlvaluetype.cpp | 49 ++++++++++++++++++++++++++++++++++++ src/declarative/qml/qmlvaluetype_p.h | 25 ++++++++++++++++++ 2 files changed, 74 insertions(+) diff --git a/src/declarative/qml/qmlvaluetype.cpp b/src/declarative/qml/qmlvaluetype.cpp index a01b4a7..571263e 100644 --- a/src/declarative/qml/qmlvaluetype.cpp +++ b/src/declarative/qml/qmlvaluetype.cpp @@ -61,6 +61,8 @@ QmlValueType *QmlValueTypeFactory::valueType(int t) switch (t) { case QVariant::Rect: return new QmlRectValueType; + case QVariant::Vector3D: + return new QmlVector3DValueType; default: return 0; } @@ -128,4 +130,51 @@ void QmlRectValueType::setHeight(int h) rect.setHeight(h); } +QmlVector3DValueType::QmlVector3DValueType(QObject *parent) +: QmlValueType(parent) +{ +} + +void QmlVector3DValueType::read(QObject *obj, int idx) +{ + void *a[] = { &vector, 0 }; + QMetaObject::metacall(obj, QMetaObject::ReadProperty, idx, a); +} + +void QmlVector3DValueType::write(QObject *obj, int idx) +{ + void *a[] = { &vector, 0 }; + QMetaObject::metacall(obj, QMetaObject::WriteProperty, idx, a); +} + +qreal QmlVector3DValueType::x() const +{ + return vector.x(); +} + +qreal QmlVector3DValueType::y() const +{ + return vector.y(); +} + +qreal QmlVector3DValueType::z() const +{ + return vector.z(); +} + +void QmlVector3DValueType::setX(qreal x) +{ + vector.setX(x); +} + +void QmlVector3DValueType::setY(qreal y) +{ + vector.setY(y); +} + +void QmlVector3DValueType::setZ(qreal z) +{ + vector.setZ(z); +} + QT_END_NAMESPACE diff --git a/src/declarative/qml/qmlvaluetype_p.h b/src/declarative/qml/qmlvaluetype_p.h index 5581df7..b19c1ba 100644 --- a/src/declarative/qml/qmlvaluetype_p.h +++ b/src/declarative/qml/qmlvaluetype_p.h @@ -56,6 +56,7 @@ #include #include #include +#include QT_BEGIN_NAMESPACE @@ -105,6 +106,30 @@ public: private: QRect rect; }; + +class QmlVector3DValueType : public QmlValueType +{ + Q_PROPERTY(qreal x READ x WRITE setX); + Q_PROPERTY(qreal y READ y WRITE setY); + Q_PROPERTY(qreal z READ z WRITE setZ); + Q_OBJECT +public: + QmlVector3DValueType(QObject *parent = 0); + + virtual void read(QObject *, int); + virtual void write(QObject *, int); + + qreal x() const; + qreal y() const; + qreal z() const; + void setX(qreal); + void setY(qreal); + void setZ(qreal); + +private: + QVector3D vector; +}; + QT_END_NAMESPACE #endif // QMLVALUETYPE_P_H -- cgit v0.12 From d150ada7c985f066e9c59571ce3db2bc6494ca08 Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Fri, 24 Jul 2009 15:39:59 +1000 Subject: doc --- src/declarative/qml/qmldom.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/declarative/qml/qmldom.cpp b/src/declarative/qml/qmldom.cpp index 5082fda..73332fe 100644 --- a/src/declarative/qml/qmldom.cpp +++ b/src/declarative/qml/qmldom.cpp @@ -93,10 +93,10 @@ QmlDomDocumentPrivate::~QmlDomDocumentPrivate() file.open(QIODevice::ReadOnly); QByteArray xmlData = file.readAll(); - QDomDocument document; - document.load(xmlData); + QmlDomDocument document; + document.load(qmlengine, xmlData); - QDomObject rootObject = document.rootObject(); + QmlDomObject rootObject = document.rootObject(); qDebug() << rootObject.objectType(); foreach(QmlDomProperty property, rootObject.properties()) qDebug() << property.propertyName(); -- cgit v0.12 From 3b6ac3b45a333815b097603c93bb38d97782826e Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Fri, 24 Jul 2009 17:01:17 +1000 Subject: Add the fully-qualified type name to the DOM (via QmlParser::Object) QML-defined ones are still defined by their URL, not a qualified name. --- src/declarative/qml/qmlcompiler.cpp | 4 +++- src/declarative/qml/qmldom.cpp | 3 +-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/declarative/qml/qmlcompiler.cpp b/src/declarative/qml/qmlcompiler.cpp index 2e8666d..7e483cd 100644 --- a/src/declarative/qml/qmlcompiler.cpp +++ b/src/declarative/qml/qmlcompiler.cpp @@ -628,6 +628,8 @@ bool QmlCompiler::buildObject(Object *obj, const BindingContext &ctxt) if (tr.component) obj->url = tr.component->url(); + if (tr.type) + obj->typeName = tr.type->qmlTypeName(); // This object is a "Component" element if (obj->metatype == &QmlComponent::staticMetaObject) { @@ -1714,7 +1716,7 @@ bool QmlCompiler::buildPropertyObjectAssignment(QmlParser::Property *prop, QmlParser::Object *root = v->object; QmlParser::Object *component = new QmlParser::Object; component->type = componentTypeRef(); - component->typeName = "Component"; + component->typeName = "Qt/4.6/Component"; component->metatype = &QmlComponent::staticMetaObject; component->location = root->location; QmlParser::Value *componentValue = new QmlParser::Value; diff --git a/src/declarative/qml/qmldom.cpp b/src/declarative/qml/qmldom.cpp index 73332fe..6725950 100644 --- a/src/declarative/qml/qmldom.cpp +++ b/src/declarative/qml/qmldom.cpp @@ -161,7 +161,6 @@ QList QmlDomDocument::imports() const */ bool QmlDomDocument::load(QmlEngine *engine, const QByteArray &data, const QUrl &url) { - Q_UNUSED(engine); d->errors.clear(); d->imports.clear(); @@ -951,7 +950,7 @@ QByteArray QmlDomObject::customTypeData() const bool QmlDomObject::isComponent() const { return d->isVirtualComponent || - (d->object && d->object->typeName == "Component"); + (d->object && d->object->typeName == "Qt/4.6/Component"); } /*! -- cgit v0.12 From ae038738460f9f42da23446eff67964851ed446f Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Fri, 24 Jul 2009 09:00:56 +0200 Subject: Convert linux-g++-x11egl/qmake.conf from DOS to Unix linefeeds. Reviewed-by: Trustme --- mkspecs/linux-g++-x11egl/qmake.conf | 60 ++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/mkspecs/linux-g++-x11egl/qmake.conf b/mkspecs/linux-g++-x11egl/qmake.conf index 50c1d68..593f120 100644 --- a/mkspecs/linux-g++-x11egl/qmake.conf +++ b/mkspecs/linux-g++-x11egl/qmake.conf @@ -1,30 +1,30 @@ -# -# qmake configuration for linux-g++ -# - -MAKEFILE_GENERATOR = UNIX -TEMPLATE = app -CONFIG += qt warn_on release incremental link_prl -QT += core gui -QMAKE_INCREMENTAL_STYLE = sublib - -include(../common/g++.conf) -include(../common/linux.conf) -load(qt_config) - -QMAKE_INCDIR_EGL = $(HOME)/opengles2/SDKPackage/Builds/OGLES2/Include -QMAKE_LIBDIR_EGL = $(HOME)/opengles2/SDKPackage/Builds/OGLES2/LinuxPC/Lib -QMAKE_LIBS_EGL = -lGLESv2 -lEGL - -QMAKE_INCDIR_OPENGL = $(HOME)/opengles2/SDKPackage/Builds/OGLES2/Include -QMAKE_INCDIR_OPENGL_QT = $(HOME)/opengles2/SDKPackage/Builds/OGLES2/Include - -QMAKE_LIBDIR_OPENGL = $(HOME)/opengles2/SDKPackage/Builds/OGLES2/LinuxPC/Lib -QMAKE_LIBDIR_OPENGL_QT = $(HOME)/opengles2/SDKPackage/Builds/OGLES2/LinuxPC/Lib - -QMAKE_LIBS_OPENGL = -lGLESv2 -lEGL -QMAKE_LIBS += -Wl,-rpath=$(HOME)/opengles2/SDKPackage/Builds/OGLES2/LinuxPC/Lib - -QMAKE_LIBS_OPENGL_QT = -lGLESv2 -lEGL - -QMAKE_RPATH = -Wl,-rpath, +# +# qmake configuration for linux-g++ +# + +MAKEFILE_GENERATOR = UNIX +TEMPLATE = app +CONFIG += qt warn_on release incremental link_prl +QT += core gui +QMAKE_INCREMENTAL_STYLE = sublib + +include(../common/g++.conf) +include(../common/linux.conf) +load(qt_config) + +QMAKE_INCDIR_EGL = $(HOME)/opengles2/SDKPackage/Builds/OGLES2/Include +QMAKE_LIBDIR_EGL = $(HOME)/opengles2/SDKPackage/Builds/OGLES2/LinuxPC/Lib +QMAKE_LIBS_EGL = -lGLESv2 -lEGL + +QMAKE_INCDIR_OPENGL = $(HOME)/opengles2/SDKPackage/Builds/OGLES2/Include +QMAKE_INCDIR_OPENGL_QT = $(HOME)/opengles2/SDKPackage/Builds/OGLES2/Include + +QMAKE_LIBDIR_OPENGL = $(HOME)/opengles2/SDKPackage/Builds/OGLES2/LinuxPC/Lib +QMAKE_LIBDIR_OPENGL_QT = $(HOME)/opengles2/SDKPackage/Builds/OGLES2/LinuxPC/Lib + +QMAKE_LIBS_OPENGL = -lGLESv2 -lEGL +QMAKE_LIBS += -Wl,-rpath=$(HOME)/opengles2/SDKPackage/Builds/OGLES2/LinuxPC/Lib + +QMAKE_LIBS_OPENGL_QT = -lGLESv2 -lEGL + +QMAKE_RPATH = -Wl,-rpath, -- cgit v0.12 From 80476372e6f4dd3e179eeba949e86a336bc8fde3 Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Fri, 24 Jul 2009 09:48:28 +0200 Subject: Added objectClassName now that objectType is the fully-qualified type name. --- src/declarative/qml/qmlcompiler.cpp | 1 + src/declarative/qml/qmldom.cpp | 23 ++++++++++++++++++++--- src/declarative/qml/qmldom.h | 1 + src/declarative/qml/qmlparser_p.h | 4 +++- 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/declarative/qml/qmlcompiler.cpp b/src/declarative/qml/qmlcompiler.cpp index 7e483cd..f0473f5 100644 --- a/src/declarative/qml/qmlcompiler.cpp +++ b/src/declarative/qml/qmlcompiler.cpp @@ -630,6 +630,7 @@ bool QmlCompiler::buildObject(Object *obj, const BindingContext &ctxt) obj->url = tr.component->url(); if (tr.type) obj->typeName = tr.type->qmlTypeName(); + obj->className = tr.className; // This object is a "Component" element if (obj->metatype == &QmlComponent::staticMetaObject) { diff --git a/src/declarative/qml/qmldom.cpp b/src/declarative/qml/qmldom.cpp index 6725950..c6b7192 100644 --- a/src/declarative/qml/qmldom.cpp +++ b/src/declarative/qml/qmldom.cpp @@ -747,11 +747,11 @@ bool QmlDomObject::isValid() const } /*! - Returns the type name of this object. + Returns the fully-qualified type name of this object. - For example, the type of this object would be "QGraphicsWidget". + For example, the type of this object would be "Qt/4.6/Rect". \qml -QGraphicsWidget { } +Rect { } \endqml */ QByteArray QmlDomObject::objectType() const @@ -761,6 +761,23 @@ QByteArray QmlDomObject::objectType() const } /*! + Returns the fully-qualified type name of this object. + + For example, the type of this object would be "Qt/4.6/Rect". + \qml +Rect { } + \endqml +*/ +QByteArray QmlDomObject::objectClassName() const +{ + if (d->object) + return d->object->className; + else + return QByteArray(); +} + + +/*! Returns the QML id assigned to this object, or an empty QByteArray if no id has been assigned. diff --git a/src/declarative/qml/qmldom.h b/src/declarative/qml/qmldom.h index 339570b..1c70206 100644 --- a/src/declarative/qml/qmldom.h +++ b/src/declarative/qml/qmldom.h @@ -150,6 +150,7 @@ public: bool isValid() const; QByteArray objectType() const; + QByteArray objectClassName() const; QString objectId() const; void setObjectId(const QByteArray &); diff --git a/src/declarative/qml/qmlparser_p.h b/src/declarative/qml/qmlparser_p.h index 927c9e6..120af75 100644 --- a/src/declarative/qml/qmlparser_p.h +++ b/src/declarative/qml/qmlparser_p.h @@ -115,8 +115,10 @@ namespace QmlParser int type; // The url of this object if it is an external type. Used by the DOM QUrl url; - // The name of this type + // The fully-qualified name of this type QByteArray typeName; + // The class name + QByteArray className; // The id assigned to the object (if any). Set by the QmlCompiler QString id; // The id index assigned to the object (if any). Set by the QmlCompiler -- cgit v0.12 From 05c1db3b28067336fcf14cce7909d1f09007998b Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Mon, 27 Jul 2009 01:43:22 +0200 Subject: Added formal parameters to the QML signals. --- src/declarative/qml/parser/qmljs.g | 52 +++++++++++++++ src/declarative/qml/parser/qmljsast.cpp | 25 ++++++++ src/declarative/qml/parser/qmljsast_p.h | 88 +++++++++++++++++++++++++- src/declarative/qml/parser/qmljsastfwd_p.h | 3 + src/declarative/qml/parser/qmljsastvisitor_p.h | 6 ++ src/declarative/qml/parser/qmljsparser.cpp | 40 ++++++++++++ src/declarative/qml/parser/qmljsparser_p.h | 3 + 7 files changed, 216 insertions(+), 1 deletion(-) diff --git a/src/declarative/qml/parser/qmljs.g b/src/declarative/qml/parser/qmljs.g index ccfe7fd..a1c4ba2 100644 --- a/src/declarative/qml/parser/qmljs.g +++ b/src/declarative/qml/parser/qmljs.g @@ -271,6 +271,9 @@ public: AST::UiObjectMemberList *UiObjectMemberList; AST::UiArrayMemberList *UiArrayMemberList; AST::UiQualifiedId *UiQualifiedId; + AST::UiSignature *UiSignature; + AST::UiFormalList *UiFormalList; + AST::UiFormal *UiFormal; }; public: @@ -880,13 +883,62 @@ case $rule_number: { ./ UiFormal: JsIdentifier ; +/. +case $rule_number: { + AST::UiFormal *node = makeAstNode(driver->nodePool(), sym(1).sval); + node->identifierToken = loc(1); + sym(1).UiFormal = node; +} break; +./ + UiFormal: JsIdentifier T_AS JsIdentifier ; +/. +case $rule_number: { + AST::UiFormal *node = makeAstNode(driver->nodePool(), + sym(1).sval, sym(3).sval); + node->identifierToken = loc(1); + node->asToken = loc(2); + node->aliasToken = loc(3); + sym(1).UiFormal = node; +} break; +./ UiFormalList: UiFormal ; +/. +case $rule_number: { + sym(1).UiFormalList = makeAstNode(driver->nodePool(), + sym(1).UiFormal); +} break; +./ + UiFormalList: UiFormalList T_COMMA UiFormal ; +/. +case $rule_number: { + sym(1).UiFormalList = makeAstNode(driver->nodePool(), + sym(1).UiFormalList, sym(3).UiFormal); +} break; +./ UiSignature: T_LPAREN T_RPAREN ; +/. +case $rule_number: { + AST::UiSignature *node = makeAstNode(driver->nodePool()); + node->lparenToken = loc(1); + node->rparenToken = loc(3); + sym(1).UiSignature = node; +} break; +./ + UiSignature: T_LPAREN UiFormalList T_RPAREN ; +/. +case $rule_number: { + AST::UiSignature *node = makeAstNode(driver->nodePool(), + sym(2).UiFormalList->finish()); + node->lparenToken = loc(1); + node->rparenToken = loc(3); + sym(1).UiSignature = node; +} break; +./ UiObjectMember: T_SIGNAL T_IDENTIFIER T_LPAREN UiParameterListOpt T_RPAREN T_AUTOMATIC_SEMICOLON ; UiObjectMember: T_SIGNAL T_IDENTIFIER T_LPAREN UiParameterListOpt T_RPAREN T_SEMICOLON ; diff --git a/src/declarative/qml/parser/qmljsast.cpp b/src/declarative/qml/parser/qmljsast.cpp index 52f19e2..1d7f09e 100644 --- a/src/declarative/qml/parser/qmljsast.cpp +++ b/src/declarative/qml/parser/qmljsast.cpp @@ -801,6 +801,31 @@ void UiProgram::accept0(Visitor *visitor) visitor->endVisit(this); } +void UiSignature::accept0(Visitor *visitor) +{ + if (visitor->visit(this)) { + acceptChild(formals, visitor); + } + visitor->endVisit(this); +} + +void UiFormalList::accept0(Visitor *visitor) +{ + if (visitor->visit(this)) { + for (UiFormalList *it = this; it; it = it->next) { + acceptChild(it->formal, visitor); + } + } + visitor->endVisit(this); +} + +void UiFormal::accept0(Visitor *visitor) +{ + if (visitor->visit(this)) { + } + visitor->endVisit(this); +} + void UiPublicMember::accept0(Visitor *visitor) { if (visitor->visit(this)) { diff --git a/src/declarative/qml/parser/qmljsast_p.h b/src/declarative/qml/parser/qmljsast_p.h index eba9202..9745153 100644 --- a/src/declarative/qml/parser/qmljsast_p.h +++ b/src/declarative/qml/parser/qmljsast_p.h @@ -213,7 +213,10 @@ public: Kind_UiPublicMember, Kind_UiQualifiedId, Kind_UiScriptBinding, - Kind_UiSourceElement + Kind_UiSourceElement, + Kind_UiFormal, + Kind_UiFormalList, + Kind_UiSignature }; inline Node() @@ -269,6 +272,89 @@ public: virtual SourceLocation lastSourceLocation() const = 0; }; +class UiFormal: public Node +{ +public: + QMLJS_DECLARE_AST_NODE(UiFormal) + + UiFormal(NameId *name, NameId *alias = 0) + : name(name), alias(alias) + { } + + virtual SourceLocation firstSourceLocation() const + { return SourceLocation(); } + + virtual SourceLocation lastSourceLocation() const + { return SourceLocation(); } + + virtual void accept0(Visitor *visitor); + +// attributes + NameId *name; + NameId *alias; + SourceLocation identifierToken; + SourceLocation asToken; + SourceLocation aliasToken; +}; + +class UiFormalList: public Node +{ +public: + QMLJS_DECLARE_AST_NODE(UiFormalList) + + UiFormalList(UiFormal *formal) + : formal(formal), next(this) {} + + UiFormalList(UiFormalList *previous, UiFormal *formal) + : formal(formal) + { + next = previous->next; + previous->next = this; + } + + UiFormalList *finish() + { + UiFormalList *head = next; + next = 0; + return head; + } + + virtual SourceLocation firstSourceLocation() const + { return SourceLocation(); } + + virtual SourceLocation lastSourceLocation() const + { return SourceLocation(); } + + virtual void accept0(Visitor *visitor); + +// attributes + UiFormal *formal; + UiFormalList *next; +}; + +class UiSignature: public Node +{ +public: + QMLJS_DECLARE_AST_NODE(UiSignature) + + UiSignature(UiFormalList *formals = 0) + : formals(formals) + { } + + virtual SourceLocation firstSourceLocation() const + { return SourceLocation(); } + + virtual SourceLocation lastSourceLocation() const + { return SourceLocation(); } + + virtual void accept0(Visitor *visitor); + +// attributes + SourceLocation lparenToken; + UiFormalList *formals; + SourceLocation rparenToken; +}; + class NestedExpression: public ExpressionNode { public: diff --git a/src/declarative/qml/parser/qmljsastfwd_p.h b/src/declarative/qml/parser/qmljsastfwd_p.h index 339bea4..f79cfc2 100644 --- a/src/declarative/qml/parser/qmljsastfwd_p.h +++ b/src/declarative/qml/parser/qmljsastfwd_p.h @@ -176,6 +176,9 @@ class UiObjectMember; class UiObjectMemberList; class UiArrayMemberList; class UiQualifiedId; +class UiFormalList; +class UiFormal; +class UiSignature; } } // namespace AST diff --git a/src/declarative/qml/parser/qmljsastvisitor_p.h b/src/declarative/qml/parser/qmljsastvisitor_p.h index 3677b1a..237640f 100644 --- a/src/declarative/qml/parser/qmljsastvisitor_p.h +++ b/src/declarative/qml/parser/qmljsastvisitor_p.h @@ -82,6 +82,9 @@ public: virtual bool visit(UiObjectMemberList *) { return true; } virtual bool visit(UiArrayMemberList *) { return true; } virtual bool visit(UiQualifiedId *) { return true; } + virtual bool visit(UiSignature *) { return true; } + virtual bool visit(UiFormalList *) { return true; } + virtual bool visit(UiFormal *) { return true; } virtual void endVisit(UiProgram *) {} virtual void endVisit(UiImportList *) {} @@ -96,6 +99,9 @@ public: virtual void endVisit(UiObjectMemberList *) {} virtual void endVisit(UiArrayMemberList *) {} virtual void endVisit(UiQualifiedId *) {} + virtual void endVisit(UiSignature *) {} + virtual void endVisit(UiFormalList *) {} + virtual void endVisit(UiFormal *) {} // QmlJS virtual bool visit(ThisExpression *) { return true; } diff --git a/src/declarative/qml/parser/qmljsparser.cpp b/src/declarative/qml/parser/qmljsparser.cpp index 22f3820..9bd6e6f 100644 --- a/src/declarative/qml/parser/qmljsparser.cpp +++ b/src/declarative/qml/parser/qmljsparser.cpp @@ -419,6 +419,46 @@ case 47: { sym(1).Node = node; } break; +case 48: { + AST::UiFormal *node = makeAstNode(driver->nodePool(), sym(1).sval); + node->identifierToken = loc(1); + sym(1).UiFormal = node; +} break; + +case 49: { + AST::UiFormal *node = makeAstNode(driver->nodePool(), + sym(1).sval, sym(3).sval); + node->identifierToken = loc(1); + node->asToken = loc(2); + node->aliasToken = loc(3); + sym(1).UiFormal = node; +} break; + +case 50: { + sym(1).UiFormalList = makeAstNode(driver->nodePool(), + sym(1).UiFormal); +} break; + +case 51: { + sym(1).UiFormalList = makeAstNode(driver->nodePool(), + sym(1).UiFormalList, sym(3).UiFormal); +} break; + +case 52: { + AST::UiSignature *node = makeAstNode(driver->nodePool()); + node->lparenToken = loc(1); + node->rparenToken = loc(3); + sym(1).UiSignature = node; +} break; + +case 53: { + AST::UiSignature *node = makeAstNode(driver->nodePool(), + sym(2).UiFormalList->finish()); + node->lparenToken = loc(1); + node->rparenToken = loc(3); + sym(1).UiSignature = node; +} break; + case 55: { AST::UiPublicMember *node = makeAstNode (driver->nodePool(), (NameId *)0, sym(2).sval); node->type = AST::UiPublicMember::Signal; diff --git a/src/declarative/qml/parser/qmljsparser_p.h b/src/declarative/qml/parser/qmljsparser_p.h index be5317b..e352f43 100644 --- a/src/declarative/qml/parser/qmljsparser_p.h +++ b/src/declarative/qml/parser/qmljsparser_p.h @@ -120,6 +120,9 @@ public: AST::UiObjectMemberList *UiObjectMemberList; AST::UiArrayMemberList *UiArrayMemberList; AST::UiQualifiedId *UiQualifiedId; + AST::UiSignature *UiSignature; + AST::UiFormalList *UiFormalList; + AST::UiFormal *UiFormal; }; public: -- cgit v0.12 From be7b6bcac093abfb1ca1afedcdc6c5d12da12c8e Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Mon, 27 Jul 2009 01:49:11 +0200 Subject: Fixed project dependencies --- src/declarative/qml/parser/parser.pri | 1 + src/declarative/qml/rewriter/rewriter.pri | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/declarative/qml/parser/parser.pri b/src/declarative/qml/parser/parser.pri index 610b2aa..1ea249a 100644 --- a/src/declarative/qml/parser/parser.pri +++ b/src/declarative/qml/parser/parser.pri @@ -1,5 +1,6 @@ INCLUDEPATH += $$PWD +DEPENDPATH += $$PWD HEADERS += $$PWD/qmljsast_p.h \ $$PWD/qmljsastfwd_p.h \ diff --git a/src/declarative/qml/rewriter/rewriter.pri b/src/declarative/qml/rewriter/rewriter.pri index de3c298..550741b 100644 --- a/src/declarative/qml/rewriter/rewriter.pri +++ b/src/declarative/qml/rewriter/rewriter.pri @@ -1,5 +1,7 @@ INCLUDEPATH += $$PWD +DEPENDPATH += $$PWD + HEADERS += $$PWD/textwriter_p.h SOURCES += $$PWD/textwriter.cpp -- cgit v0.12 From ca81810f92b6181c1854988860588d6ea84cf1b4 Mon Sep 17 00:00:00 2001 From: Henrik Hartz Date: Mon, 27 Jul 2009 10:24:49 +1000 Subject: compile fix --- src/declarative/qml/qmlmetatype.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/declarative/qml/qmlmetatype.cpp b/src/declarative/qml/qmlmetatype.cpp index 3552b44..a037702 100644 --- a/src/declarative/qml/qmlmetatype.cpp +++ b/src/declarative/qml/qmlmetatype.cpp @@ -56,7 +56,7 @@ #include #include #include -//#include +#include #include #include -- cgit v0.12 From ef1a5d6bad05b99765658b3ca916bd3c5f507db0 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Mon, 27 Jul 2009 13:34:13 +1000 Subject: Make private --- src/declarative/qml/qml.pri | 2 +- src/declarative/qml/qmlcomponentjs.cpp | 3 +- src/declarative/qml/qmlcomponentjs.h | 92 -------------------------------- src/declarative/qml/qmlcomponentjs_p.h | 47 +++++++++++----- src/declarative/qml/qmlcomponentjs_p_p.h | 77 ++++++++++++++++++++++++++ src/declarative/qml/qmlengine.cpp | 2 +- 6 files changed, 115 insertions(+), 108 deletions(-) delete mode 100644 src/declarative/qml/qmlcomponentjs.h create mode 100644 src/declarative/qml/qmlcomponentjs_p_p.h diff --git a/src/declarative/qml/qml.pri b/src/declarative/qml/qml.pri index 6ee670e..75e5692 100644 --- a/src/declarative/qml/qml.pri +++ b/src/declarative/qml/qml.pri @@ -38,8 +38,8 @@ HEADERS += qml/qmlparser_p.h \ qml/qmlbinding.h \ qml/qmlbinding_p.h \ qml/qmlmetaproperty.h \ - qml/qmlcomponentjs.h \ qml/qmlcomponentjs_p.h \ + qml/qmlcomponentjs_p_p.h \ qml/qmlcomponent.h \ qml/qmlcomponent_p.h \ qml/qmlcustomparser_p.h \ diff --git a/src/declarative/qml/qmlcomponentjs.cpp b/src/declarative/qml/qmlcomponentjs.cpp index 32c2249..89f3851 100644 --- a/src/declarative/qml/qmlcomponentjs.cpp +++ b/src/declarative/qml/qmlcomponentjs.cpp @@ -39,11 +39,12 @@ ** ****************************************************************************/ -#include "qmlcomponentjs.h" #include "qmlcomponentjs_p.h" +#include "qmlcomponentjs_p_p.h" #include "qmlcomponent.h" QT_BEGIN_NAMESPACE + QmlComponentJS::QmlComponentJS(QmlEngine *engine, QObject *parent) : QmlComponent(*(new QmlComponentJSPrivate), parent) { diff --git a/src/declarative/qml/qmlcomponentjs.h b/src/declarative/qml/qmlcomponentjs.h deleted file mode 100644 index 5ad1635..0000000 --- a/src/declarative/qml/qmlcomponentjs.h +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain -** additional rights. These rights are described in the Nokia Qt LGPL -** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QMLBINDABLECOMPONENT_H -#define QMLBINDABLECOMPONENT_H - -#include -#include -#include -#include -#include -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QmlComponentJSPrivate; -class QmlEngine; -class QmlContext; -class Q_DECLARATIVE_EXPORT QmlComponentJS : public QmlComponent -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QmlComponentJS) - friend class QmlEngine; -public: - QmlComponentJS(QmlEngine *, const QUrl &url, QObject *parent = 0); - QmlComponentJS(QmlEngine *, QObject *parent=0); - Q_PROPERTY(bool isNull READ isNull NOTIFY isNullChanged); - Q_PROPERTY(bool isReady READ isReady NOTIFY isReadyChanged); - Q_PROPERTY(bool isError READ isError NOTIFY isErrorChanged); - Q_PROPERTY(bool isLoading READ isLoading NOTIFY isLoadingChanged); - - Q_INVOKABLE QScriptValue createObject(); - Q_INVOKABLE QString errorsString() const; - - void setContext(QmlContext* c); -Q_SIGNALS: - void isNullChanged(); - void isErrorChanged(); - void isReadyChanged(); - void isLoadingChanged(); -private slots: - void statusChange(QmlComponent::Status newStatus); -}; - -QT_END_NAMESPACE - -QML_DECLARE_TYPE(QmlComponentJS) - -QT_END_HEADER -#endif diff --git a/src/declarative/qml/qmlcomponentjs_p.h b/src/declarative/qml/qmlcomponentjs_p.h index 75d5517..8c69b5f 100644 --- a/src/declarative/qml/qmlcomponentjs_p.h +++ b/src/declarative/qml/qmlcomponentjs_p.h @@ -39,8 +39,8 @@ ** ****************************************************************************/ -#ifndef QMLBINDABLECOMPONENT_P_H -#define QMLBINDABLECOMPONENT_P_H +#ifndef QMLCOMPONENTJS_P_H +#define QMLCOMPONENTJS_P_H // // W A R N I N G @@ -53,25 +53,46 @@ // We mean it. // -#include "qmlcomponent.h" -#include "qmlcomponentjs.h" -#include "qmlcomponent_p.h" +#include +#include +#include +#include +#include +#include QT_BEGIN_NAMESPACE +class QmlComponentJSPrivate; +class QmlEngine; class QmlContext; -class QmlComponentJSPrivate : public QmlComponentPrivate +class Q_DECLARATIVE_EXPORT QmlComponentJS : public QmlComponent { - Q_DECLARE_PUBLIC(QmlComponentJS) + Q_OBJECT + Q_DECLARE_PRIVATE(QmlComponentJS) + friend class QmlEngine; public: - QmlComponentJSPrivate() : QmlComponentPrivate(), - prevStatus(QmlComponentJS::Null), ctxt(0) - { } + QmlComponentJS(QmlEngine *, const QUrl &url, QObject *parent = 0); + QmlComponentJS(QmlEngine *, QObject *parent=0); + Q_PROPERTY(bool isNull READ isNull NOTIFY isNullChanged); + Q_PROPERTY(bool isReady READ isReady NOTIFY isReadyChanged); + Q_PROPERTY(bool isError READ isError NOTIFY isErrorChanged); + Q_PROPERTY(bool isLoading READ isLoading NOTIFY isLoadingChanged); - QmlComponent::Status prevStatus; - QmlContext* ctxt; + Q_INVOKABLE QScriptValue createObject(); + Q_INVOKABLE QString errorsString() const; + + void setContext(QmlContext* c); +Q_SIGNALS: + void isNullChanged(); + void isErrorChanged(); + void isReadyChanged(); + void isLoadingChanged(); +private slots: + void statusChange(QmlComponent::Status newStatus); }; QT_END_NAMESPACE -#endif +QML_DECLARE_TYPE(QmlComponentJS) + +#endif // QMLCOMPONENTJS_P_H diff --git a/src/declarative/qml/qmlcomponentjs_p_p.h b/src/declarative/qml/qmlcomponentjs_p_p.h new file mode 100644 index 0000000..47ce491 --- /dev/null +++ b/src/declarative/qml/qmlcomponentjs_p_p.h @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMLCOMPONENTJS_P_P_H +#define QMLCOMPONENTJS_P_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qmlcomponent.h" +#include "qmlcomponentjs_p.h" +#include "qmlcomponent_p.h" + +QT_BEGIN_NAMESPACE + +class QmlContext; +class QmlComponentJSPrivate : public QmlComponentPrivate +{ + Q_DECLARE_PUBLIC(QmlComponentJS) +public: + QmlComponentJSPrivate() : QmlComponentPrivate(), + prevStatus(QmlComponentJS::Null), ctxt(0) + { } + + QmlComponent::Status prevStatus; + QmlContext* ctxt; +}; + +QT_END_NAMESPACE + +#endif // QMLCOMPONENTJS_P_P_H diff --git a/src/declarative/qml/qmlengine.cpp b/src/declarative/qml/qmlengine.cpp index 69cc542..b478618 100644 --- a/src/declarative/qml/qmlengine.cpp +++ b/src/declarative/qml/qmlengine.cpp @@ -71,7 +71,7 @@ #include #include #include -#include +#include "private/qmlcomponentjs_p.h" #include "private/qmlmetaproperty_p.h" #include #include -- cgit v0.12 From 307fad7e813770c8f2a6236828b26cd14ddc57aa Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Mon, 27 Jul 2009 13:48:14 +1000 Subject: Make sure we pass through a line number for evaluating bindings. Also, don't convert URL to string each time we call evaluate. --- src/declarative/qml/qmlcompiler.cpp | 1 + src/declarative/qml/qmlexpression.cpp | 4 ++-- src/declarative/qml/qmlexpression_p.h | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/declarative/qml/qmlcompiler.cpp b/src/declarative/qml/qmlcompiler.cpp index f0473f5..9c9a7bd 100644 --- a/src/declarative/qml/qmlcompiler.cpp +++ b/src/declarative/qml/qmlcompiler.cpp @@ -2088,6 +2088,7 @@ void QmlCompiler::genBindingAssignment(QmlParser::Value *binding, store.assignBinding.value = dataRef; store.assignBinding.context = ref.bindingContext.stack; store.assignBinding.owner = ref.bindingContext.owner; + store.line = prop->location.end.line; output->bytecode << store; } diff --git a/src/declarative/qml/qmlexpression.cpp b/src/declarative/qml/qmlexpression.cpp index ea0e9aa..e88766c 100644 --- a/src/declarative/qml/qmlexpression.cpp +++ b/src/declarative/qml/qmlexpression.cpp @@ -257,7 +257,7 @@ QVariant QmlExpressionPrivate::evalQtScript() QmlRewrite::RewriteBinding rewriteBinding; const QString code = rewriteBinding(expression); - expressionFunction = scriptEngine->evaluate(code, fileName.toString(), line); + expressionFunction = scriptEngine->evaluate(code, fileName, line); expressionFunctionValid = true; } @@ -421,7 +421,7 @@ void QmlExpression::setTrackChange(bool trackChange) void QmlExpression::setSourceLocation(const QUrl &fileName, int line) { Q_D(QmlExpression); - d->fileName = fileName; + d->fileName = fileName.toString(); d->line = line; } diff --git a/src/declarative/qml/qmlexpression_p.h b/src/declarative/qml/qmlexpression_p.h index 41b7749..a20ead4 100644 --- a/src/declarative/qml/qmlexpression_p.h +++ b/src/declarative/qml/qmlexpression_p.h @@ -83,7 +83,7 @@ public: QObject *me; bool trackChange; - QUrl fileName; + QString fileName; int line; quint32 id; -- cgit v0.12 From 752a15ca59b1b209aa67c3fbee53868b3a22df80 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Mon, 27 Jul 2009 15:20:37 +1000 Subject: Make private stuff private --- src/declarative/fx/qfxitem.cpp | 5 +- src/declarative/qml/qmlbasicscript.cpp | 2 +- src/declarative/qml/qmlcomponent.cpp | 10 +-- src/declarative/qml/qmlcomponentjs.cpp | 3 +- src/declarative/qml/qmlcompositetypemanager.cpp | 4 +- src/declarative/qml/qmlcontext.cpp | 4 +- src/declarative/qml/qmlengine.cpp | 112 ++++++++++++------------ src/declarative/qml/qmlengine.h | 21 ----- src/declarative/qml/qmlengine_p.h | 16 +++- src/declarative/qml/qmlexpression.cpp | 19 +--- src/declarative/qml/qmlexpression.h | 2 - src/declarative/qml/qmlexpression_p.h | 2 - src/declarative/qml/qmlvme.cpp | 2 +- src/declarative/util/qmlscript.cpp | 4 +- 14 files changed, 90 insertions(+), 116 deletions(-) diff --git a/src/declarative/fx/qfxitem.cpp b/src/declarative/fx/qfxitem.cpp index 6c6fcd3..247ea53 100644 --- a/src/declarative/fx/qfxitem.cpp +++ b/src/declarative/fx/qfxitem.cpp @@ -49,7 +49,8 @@ #include #include -#include "qmlengine.h" +#include +#include #include "qmlstate.h" #include "qlistmodelinterface.h" #include "qfxanchors_p.h" @@ -819,7 +820,7 @@ void QFxItem::qmlLoaded() QFxItem* ret = qobject_cast(o); if (ret) { ret->setItemParent(this); - QScriptValue v = qmlEngine(this)->scriptEngine()->newQObject(ret); + QScriptValue v = QmlEnginePrivate::getScriptEngine(qmlEngine(this))->newQObject(ret); emit newChildCreated(d->_qmlnewloading.at(i).toString(),v); } diff --git a/src/declarative/qml/qmlbasicscript.cpp b/src/declarative/qml/qmlbasicscript.cpp index 8fcb0e1..b940d61 100644 --- a/src/declarative/qml/qmlbasicscript.cpp +++ b/src/declarative/qml/qmlbasicscript.cpp @@ -656,7 +656,7 @@ QVariant QmlBasicScript::run(QmlContext *context, void *voidCache, CacheState *c return QVariant(); QmlContextPrivate *contextPrivate = context->d_func(); - QmlEnginePrivate *enginePrivate = context->engine()->d_func(); + QmlEnginePrivate *enginePrivate = QmlEnginePrivate::get(context->engine()); QStack stack; diff --git a/src/declarative/qml/qmlcomponent.cpp b/src/declarative/qml/qmlcomponent.cpp index 7dcc373..8fb7736 100644 --- a/src/declarative/qml/qmlcomponent.cpp +++ b/src/declarative/qml/qmlcomponent.cpp @@ -330,7 +330,7 @@ void QmlComponent::setData(const QByteArray &data, const QUrl &url) d->url = url; QmlCompositeTypeData *typeData = - d->engine->d_func()->typeManager.getImmediate(data, url); + QmlEnginePrivate::get(d->engine)->typeManager.getImmediate(data, url); if (typeData->status == QmlCompositeTypeData::Waiting) { @@ -361,7 +361,7 @@ void QmlComponent::loadUrl(const QUrl &url) d->url = url; QmlCompositeTypeData *data = - d->engine->d_func()->typeManager.get(d->url); + QmlEnginePrivate::get(d->engine)->typeManager.get(d->url); if (data->status == QmlCompositeTypeData::Waiting) { @@ -481,8 +481,8 @@ QObject *QmlComponent::beginCreate(QmlContext *context) return 0; } - if (!d->engine->d_func()->rootComponent) - d->engine->d_func()->rootComponent = this; + if (!QmlEnginePrivate::get(d->engine)->rootComponent) + QmlEnginePrivate::get(d->engine)->rootComponent = this; QmlContextPrivate *contextPriv = static_cast(QObjectPrivate::get(context)); @@ -500,7 +500,7 @@ QObject *QmlComponent::beginCreate(QmlContext *context) if (vme.isError()) d->errors = vme.errors(); - QmlEnginePrivate *ep = d->engine->d_func(); + QmlEnginePrivate *ep = QmlEnginePrivate::get(d->engine); if (ep->rootComponent == this) { ep->rootComponent = 0; diff --git a/src/declarative/qml/qmlcomponentjs.cpp b/src/declarative/qml/qmlcomponentjs.cpp index 89f3851..df3e834 100644 --- a/src/declarative/qml/qmlcomponentjs.cpp +++ b/src/declarative/qml/qmlcomponentjs.cpp @@ -41,6 +41,7 @@ #include "qmlcomponentjs_p.h" #include "qmlcomponentjs_p_p.h" +#include "qmlengine_p.h" #include "qmlcomponent.h" QT_BEGIN_NAMESPACE @@ -83,7 +84,7 @@ QScriptValue QmlComponentJS::createObject() { Q_D(QmlComponentJS); QObject* ret = create(d->ctxt); - return QmlEngine::qmlScriptObject(ret, d->engine); + return QmlEnginePrivate::qmlScriptObject(ret, d->engine); } /*! diff --git a/src/declarative/qml/qmlcompositetypemanager.cpp b/src/declarative/qml/qmlcompositetypemanager.cpp index 6f17b70..b0a8642 100644 --- a/src/declarative/qml/qmlcompositetypemanager.cpp +++ b/src/declarative/qml/qmlcompositetypemanager.cpp @@ -247,7 +247,7 @@ void QmlCompositeTypeManager::setData(QmlCompositeTypeData *unit, unit->errors << unit->data.errors(); } else { foreach (QmlScriptParser::Import imp, unit->data.imports()) { - if (!engine->d_func()->addToImport(&unit->imports, imp.uri, imp.qualifier, imp.version, imp.type)) { + if (!QmlEnginePrivate::get(engine)->addToImport(&unit->imports, imp.uri, imp.qualifier, imp.version, imp.type)) { QmlError error; error.setUrl(url); error.setDescription(tr("Import %1 unavailable").arg(imp.uri)); @@ -323,7 +323,7 @@ void QmlCompositeTypeManager::compile(QmlCompositeTypeData *unit) } QUrl url; - if (!engine->d_func()->resolveType(unit->imports, type, &ref.type, &url)) { + if (!QmlEnginePrivate::get(engine)->resolveType(unit->imports, type, &ref.type, &url)) { // XXX could produce error message here. } diff --git a/src/declarative/qml/qmlcontext.cpp b/src/declarative/qml/qmlcontext.cpp index bc2e6bf..dabaa5e 100644 --- a/src/declarative/qml/qmlcontext.cpp +++ b/src/declarative/qml/qmlcontext.cpp @@ -106,9 +106,9 @@ void QmlContextPrivate::init() parent->d_func()->childContexts.insert(q); //set scope chain - QScriptEngine *scriptEngine = engine->scriptEngine(); + QScriptEngine *scriptEngine = QmlEnginePrivate::getScriptEngine(engine); QScriptValue scopeObj = - scriptEngine->newObject(engine->d_func()->contextClass, scriptEngine->newVariant(QVariant::fromValue((QObject*)q))); + scriptEngine->newObject(QmlEnginePrivate::get(engine)->contextClass, scriptEngine->newVariant(QVariant::fromValue((QObject*)q))); if (!parent) scopeChain.append(scriptEngine->globalObject()); else diff --git a/src/declarative/qml/qmlengine.cpp b/src/declarative/qml/qmlengine.cpp index b478618..321feb9 100644 --- a/src/declarative/qml/qmlengine.cpp +++ b/src/declarative/qml/qmlengine.cpp @@ -94,11 +94,13 @@ struct StaticQtMetaObject : public QObject }; QmlEnginePrivate::QmlEnginePrivate(QmlEngine *e) -: rootContext(0), currentBindContext(0), currentExpression(0), q(e), - isDebugging(false), rootComponent(0), networkAccessManager(0), typeManager(e), +: rootContext(0), currentBindContext(0), currentExpression(0), + isDebugging(false), contextClass(0), objectClass(0), valueTypeClass(0), + scriptEngine(this), rootComponent(0), networkAccessManager(0), typeManager(e), uniqueId(1) { - QScriptValue qtObject = scriptEngine.newQMetaObject(StaticQtMetaObject::get()); + QScriptValue qtObject = + scriptEngine.newQMetaObject(StaticQtMetaObject::get()); scriptEngine.globalObject().setProperty(QLatin1String("Qt"), qtObject); } @@ -146,6 +148,7 @@ Q_GLOBAL_STATIC(QmlEngineDebugServer, qmlEngineDebugServer); void QmlEnginePrivate::init() { + Q_Q(QmlEngine); scriptEngine.installTranslatorFunctions(); contextClass = new QmlContextScriptClass(q); objectClass = new QmlObjectScriptClass(q); @@ -157,13 +160,11 @@ void QmlEnginePrivate::init() debugger->attachTo(&scriptEngine); } #endif - //###needed for the other funcs, but should it be exposed? - scriptEngine.globalObject().setProperty(QLatin1String("qmlEngine"), - scriptEngine.newQObject(q)); + scriptEngine.globalObject().setProperty(QLatin1String("createQmlObject"), - scriptEngine.newFunction(QmlEngine::createQmlObject, 1)); + scriptEngine.newFunction(QmlEnginePrivate::createQmlObject, 1)); scriptEngine.globalObject().setProperty(QLatin1String("createComponent"), - scriptEngine.newFunction(QmlEngine::createComponent, 1)); + scriptEngine.newFunction(QmlEnginePrivate::createComponent, 1)); if (QCoreApplication::instance()->thread() == q->thread() && QmlEngineDebugServer::isDebuggingEnabled()) { @@ -520,11 +521,13 @@ void QmlInstanceDeclarativeData::destroyed(QObject *object) } /*! \internal */ +/* QScriptEngine *QmlEngine::scriptEngine() { Q_D(QmlEngine); return &d->scriptEngine; } +*/ /*! Creates a QScriptValue allowing you to use \a object in QML script. @@ -533,17 +536,12 @@ QScriptEngine *QmlEngine::scriptEngine() The QScriptValue returned is a QtScript Object, not a QtScript QObject, due to the special needs of QML requiring more functionality than a standard QtScript QObject. - - You'll want to use this function if you are writing C++ code which - dynamically creates and returns objects when called from QtScript, - and these objects are visual items in the QML tree. - - \sa QScriptEngine::newQObject() */ -QScriptValue QmlEngine::qmlScriptObject(QObject* object, QmlEngine* engine) +QScriptValue QmlEnginePrivate::qmlScriptObject(QObject* object, + QmlEngine* engine) { - return engine->scriptEngine()->newObject(new QmlObjectScriptClass(engine), - engine->scriptEngine()->newQObject(object)); + QScriptEngine *scriptEngine = QmlEnginePrivate::getScriptEngine(engine); + return scriptEngine->newObject(new QmlObjectScriptClass(engine), scriptEngine->newQObject(object)); } /*! @@ -598,21 +596,23 @@ QScriptValue QmlEngine::qmlScriptObject(QObject* object, QmlEngine* engine) If you want to just create an arbitrary string of QML, instead of loading a qml file, consider the createQmlObject() function. - \sa QmlComponent::createObject(), QmlEngine::createQmlObject() */ -QScriptValue QmlEngine::createComponent(QScriptContext *ctxt, QScriptEngine *engine) +QScriptValue QmlEnginePrivate::createComponent(QScriptContext *ctxt, + QScriptEngine *engine) { QmlComponentJS* c; - QmlEngine* activeEngine = qobject_cast( - engine->globalObject().property(QLatin1String("qmlEngine")).toQObject()); - QmlContext* context =activeEngine->d_func()->currentExpression->context(); - if(ctxt->argumentCount() != 1 || !activeEngine){ + + QmlEnginePrivate *activeEnginePriv = + static_cast(engine)->p; + QmlEngine* activeEngine = activeEnginePriv->q_func(); + + QmlContext* context = activeEnginePriv->currentExpression->context(); + if(ctxt->argumentCount() != 1) { c = new QmlComponentJS(activeEngine); }else{ QUrl url = QUrl(context->resolvedUrl(ctxt->argument(0).toString())); - if(!url.isValid()){ + if(!url.isValid()) url = QUrl(ctxt->argument(0).toString()); - } c = new QmlComponentJS(activeEngine, url, activeEngine); } c->setContext(context); @@ -643,21 +643,15 @@ QScriptValue QmlEngine::createComponent(QScriptContext *ctxt, QScriptEngine *eng instead. 'New components' refers to external QML files that have not yet been loaded, and so it is safe to use createQmlObject to load built-in components. - - \sa QmlEngine::createComponent() */ -QScriptValue QmlEngine::createQmlObject(QScriptContext *ctxt, QScriptEngine *engine) +QScriptValue QmlEnginePrivate::createQmlObject(QScriptContext *ctxt, QScriptEngine *engine) { - QmlEngine* activeEngine = qobject_cast( - engine->globalObject().property(QLatin1String("qmlEngine")).toQObject()); - if(ctxt->argumentCount() < 2 || !activeEngine){ - if(ctxt->argumentCount() < 2){ - qWarning() << "createQmlObject requires two arguments, A QML string followed by an existing QML item id."; - }else{ - qWarning() << "createQmlObject cannot find engine."; - } + QmlEnginePrivate *activeEnginePriv = + static_cast(engine)->p; + QmlEngine* activeEngine = activeEnginePriv->q_func(); + + if(ctxt->argumentCount() < 2) return engine->nullValue(); - } QString qml = ctxt->argument(0).toString(); QUrl url; @@ -669,24 +663,25 @@ QScriptValue QmlEngine::createQmlObject(QScriptContext *ctxt, QScriptEngine *eng QmlComponent component(activeEngine, qml.toUtf8(), url); if(component.isError()) { QList errors = component.errors(); - foreach (const QmlError &error, errors) { - qWarning() <<"Error in createQmlObject(): "<< error; - } + qWarning() <<"QmlEngine::createQmlObject():"; + foreach (const QmlError &error, errors) + qWarning() << " " << error; return engine->nullValue(); } QObject *obj = component.create(qmlCtxt); + if(component.isError()) { QList errors = component.errors(); - foreach (const QmlError &error, errors) { - qWarning() <<"Error in createQmlObject(): "<< error; - } + qWarning() <<"QmlEngine::createQmlObject():"; + foreach (const QmlError &error, errors) + qWarning() << " " << error; return engine->nullValue(); } - if(obj){ + if(obj) { obj->setParent(parentArg); obj->setProperty("parent", QVariant::fromValue(parentArg)); return qmlScriptObject(obj, activeEngine); @@ -695,7 +690,8 @@ QScriptValue QmlEngine::createQmlObject(QScriptContext *ctxt, QScriptEngine *eng } QmlScriptClass::QmlScriptClass(QmlEngine *bindengine) -: QScriptClass(bindengine->scriptEngine()), engine(bindengine) +: QScriptClass(QmlEnginePrivate::getScriptEngine(bindengine)), + engine(bindengine) { } @@ -762,8 +758,7 @@ QmlContextScriptClass::queryProperty(const QScriptValue &object, } for (int ii = 0; !rv && ii < bindContext->d_func()->defaultObjects.count(); ++ii) { - rv = engine->d_func()->queryObject(propName, id, - bindContext->d_func()->defaultObjects.at(ii)); + rv = QmlEnginePrivate::get(engine)->queryObject(propName, id, bindContext->d_func()->defaultObjects.at(ii)); if (rv) *id |= (ii << 24); } @@ -785,7 +780,8 @@ QScriptValue QmlContextScriptClass::property(const QScriptValue &object, uint basicId = id & QmlScriptClass::ClassIdMask; - QScriptEngine *scriptEngine = engine->scriptEngine(); + QScriptEngine *scriptEngine = QmlEnginePrivate::getScriptEngine(engine); + QmlEnginePrivate *ep = QmlEnginePrivate::get(engine); switch (basicId) { case VariantPropertyId: @@ -799,18 +795,18 @@ QScriptValue QmlContextScriptClass::property(const QScriptValue &object, #endif QScriptValue rv; if (QmlMetaType::isObject(value.userType())) { - rv = scriptEngine->newObject(engine->d_func()->objectClass, scriptEngine->newVariant(value)); + rv = scriptEngine->newObject(ep->objectClass, scriptEngine->newVariant(value)); } else { rv = scriptEngine->newVariant(value); } - engine->d_func()->capturedProperties << QmlEnginePrivate::CapturedProperty(bindContext, -1, index + bindContext->d_func()->notifyIndex); + ep->capturedProperties << QmlEnginePrivate::CapturedProperty(bindContext, -1, index + bindContext->d_func()->notifyIndex); return rv; } default: { int objId = (id & ClassIdSelectorMask) >> 24; QObject *obj = bindContext->d_func()->defaultObjects.at(objId); - QScriptValue rv = engine->d_func()->propertyObject(name, obj, + QScriptValue rv = ep->propertyObject(name, obj, id & ~QmlScriptClass::ClassIdSelectorMask); if (rv.isValid()) { #ifdef PROPERTY_DEBUG @@ -844,7 +840,7 @@ void QmlContextScriptClass::setProperty(QScriptValue &object, int objIdx = (id & QmlScriptClass::ClassIdSelectorMask) >> 24; QObject *obj = bindContext->d_func()->defaultObjects.at(objIdx); - QScriptEngine *scriptEngine = engine->scriptEngine(); + QScriptEngine *scriptEngine = QmlEnginePrivate::getScriptEngine(engine); QScriptValue oldact = scriptEngine->currentContext()->activationObject(); scriptEngine->currentContext()->setActivationObject(scriptEngine->globalObject()); @@ -952,9 +948,10 @@ QmlObjectScriptClass::QmlObjectScriptClass(QmlEngine *bindEngine) : QmlScriptClass(bindEngine) { engine = bindEngine; - prototypeObject = engine->scriptEngine()->newObject(); + QScriptEngine *scriptEngine = QmlEnginePrivate::getScriptEngine(bindEngine); + prototypeObject = scriptEngine->newObject(); prototypeObject.setProperty(QLatin1String("destroy"), - engine->scriptEngine()->newFunction(QmlObjectDestroy)); + scriptEngine->newFunction(QmlObjectDestroy)); } QmlObjectScriptClass::~QmlObjectScriptClass() @@ -980,7 +977,7 @@ QScriptClass::QueryFlags QmlObjectScriptClass::queryProperty(const QScriptValue #endif if (obj) - rv = engine->d_func()->queryObject(propName, id, obj); + rv = QmlEnginePrivate::get(engine)->queryObject(propName, id, obj); return rv; } @@ -996,7 +993,8 @@ QScriptValue QmlObjectScriptClass::property(const QScriptValue &object, qWarning() << "QmlObject Property:" << propName << obj; #endif - QScriptValue rv = engine->d_func()->propertyObject(name, obj, id); + QScriptValue rv = + QmlEnginePrivate::get(engine)->propertyObject(name, obj, id); if (rv.isValid()) { #ifdef PROPERTY_DEBUG qWarning() << "~Property: Resolved property" << propName @@ -1022,7 +1020,7 @@ void QmlObjectScriptClass::setProperty(QScriptValue &object, qWarning() << "Set QmlObject Property" << name.toString() << value.toVariant(); #endif - QScriptEngine *scriptEngine = engine->scriptEngine(); + QScriptEngine *scriptEngine = QmlEnginePrivate::getScriptEngine(engine); QScriptValue oldact = scriptEngine->currentContext()->activationObject(); scriptEngine->currentContext()->setActivationObject(scriptEngine->globalObject()); diff --git a/src/declarative/qml/qmlengine.h b/src/declarative/qml/qmlengine.h index 2faad66..6066059 100644 --- a/src/declarative/qml/qmlengine.h +++ b/src/declarative/qml/qmlengine.h @@ -86,28 +86,7 @@ public: static QmlContext *contextForObject(const QObject *); static void setContextForObject(QObject *, QmlContext *); - static QScriptValue qmlScriptObject(QObject*, QmlEngine*); - - static QScriptValue createComponent(QScriptContext*, QScriptEngine*); - static QScriptValue createQmlObject(QScriptContext*, QScriptEngine*); - private: - // LK: move to the private class - QScriptEngine *scriptEngine(); - friend class QFxItem; // XXX - friend class QmlScriptPrivate; - friend class QmlCompositeTypeManager; - friend class QmlCompiler; - friend class QmlScriptClass; - friend class QmlContext; - friend class QmlContextPrivate; - friend class QmlExpression; - friend class QmlExpressionPrivate; - friend class QmlBasicScript; - friend class QmlVME; - friend class QmlComponent; - friend class QmlContextScriptClass; //### - friend class QmlObjectScriptClass; //### Q_DECLARE_PRIVATE(QmlEngine) }; diff --git a/src/declarative/qml/qmlengine_p.h b/src/declarative/qml/qmlengine_p.h index b8d49aa..18cdd83 100644 --- a/src/declarative/qml/qmlengine_p.h +++ b/src/declarative/qml/qmlengine_p.h @@ -114,7 +114,6 @@ public: QmlContext *rootContext; QmlContext *currentBindContext; QmlExpression *currentExpression; - QmlEngine *q; bool isDebugging; #ifdef QT_SCRIPTTOOLS_LIB QScriptEngineDebugger *debugger; @@ -127,7 +126,13 @@ public: QmlContext *setCurrentBindContext(QmlContext *); QStack activeContexts; - QScriptEngine scriptEngine; + struct QmlScriptEngine : public QScriptEngine + { + QmlScriptEngine(QmlEnginePrivate *priv) + : p(priv) {} + QmlEnginePrivate *p; + }; + QmlScriptEngine scriptEngine; QUrl baseUrl; @@ -188,6 +193,13 @@ public: bool resolveType(const Imports&, const QByteArray& type, QmlType** type_return, QUrl* url_return, ImportedNamespace** ns_return=0) const; void resolveTypeInNamespace(ImportedNamespace*, const QByteArray& type, QmlType** type_return, QUrl* url_return ) const; + + static QScriptValue qmlScriptObject(QObject*, QmlEngine*); + static QScriptValue createComponent(QScriptContext*, QScriptEngine*); + static QScriptValue createQmlObject(QScriptContext*, QScriptEngine*); + + static QScriptEngine *getScriptEngine(QmlEngine *e) { return &e->d_func()->scriptEngine; } + static QmlEnginePrivate *get(QmlEngine *e) { return e->d_func(); } }; class QmlScriptClass : public QScriptClass diff --git a/src/declarative/qml/qmlexpression.cpp b/src/declarative/qml/qmlexpression.cpp index ea0e9aa..7394004 100644 --- a/src/declarative/qml/qmlexpression.cpp +++ b/src/declarative/qml/qmlexpression.cpp @@ -51,7 +51,7 @@ Q_DECLARE_METATYPE(QList); QT_BEGIN_NAMESPACE QmlExpressionPrivate::QmlExpressionPrivate() -: ctxt(0), expressionFunctionValid(false), sseData(0), me(0), trackChange(true), line(-1), id(0), guardList(0), guardListLength(0) +: ctxt(0), expressionFunctionValid(false), sseData(0), me(0), trackChange(true), line(-1), guardList(0), guardListLength(0) { } @@ -63,8 +63,6 @@ void QmlExpressionPrivate::init(QmlContext *ctxt, const QString &expr, expression = expr; this->ctxt = ctxt; - if (ctxt && ctxt->engine()) - id = ctxt->engine()->d_func()->getUniqueId(); if (ctxt) ctxt->d_func()->childExpressions.insert(q); this->me = me; @@ -78,8 +76,6 @@ void QmlExpressionPrivate::init(QmlContext *ctxt, void *expr, QmlRefCount *rc, sse.load((const char *)expr, rc); this->ctxt = ctxt; - if (ctxt && ctxt->engine()) - id = ctxt->engine()->d_func()->getUniqueId(); if (ctxt) ctxt->d_func()->childExpressions.insert(q); this->me = me; @@ -244,7 +240,7 @@ QVariant QmlExpressionPrivate::evalQtScript() if (me) ctxtPriv->defaultObjects.insert(ctxtPriv->highPriorityCount, me); - QScriptEngine *scriptEngine = engine->scriptEngine(); + QScriptEngine *scriptEngine = QmlEnginePrivate::getScriptEngine(engine); QScriptValueList oldScopeChain = scriptEngine->currentContext()->scopeChain(); @@ -346,7 +342,7 @@ QVariant QmlExpression::value() QmlBasicScript::CacheState cacheState = QmlBasicScript::Reset; - QmlEnginePrivate *ep = engine()->d_func(); + QmlEnginePrivate *ep = QmlEnginePrivate::get(engine()); QmlExpression *lastCurrentExpression = ep->currentExpression; QPODVector lastCapturedProperties; @@ -437,15 +433,6 @@ QObject *QmlExpression::scopeObject() const return d->me; } -/*! - \internal -*/ -quint32 QmlExpression::id() const -{ - Q_D(const QmlExpression); - return d->id; -} - /*! \internal */ void QmlExpression::__q_notify() { diff --git a/src/declarative/qml/qmlexpression.h b/src/declarative/qml/qmlexpression.h index 6db6ef9..d5f0cbb 100644 --- a/src/declarative/qml/qmlexpression.h +++ b/src/declarative/qml/qmlexpression.h @@ -80,8 +80,6 @@ public: QObject *scopeObject() const; - quint32 id() const; - public Q_SLOTS: QVariant value(); diff --git a/src/declarative/qml/qmlexpression_p.h b/src/declarative/qml/qmlexpression_p.h index 41b7749..7f086c2 100644 --- a/src/declarative/qml/qmlexpression_p.h +++ b/src/declarative/qml/qmlexpression_p.h @@ -86,8 +86,6 @@ public: QUrl fileName; int line; - quint32 id; - QVariant evalSSE(QmlBasicScript::CacheState &cacheState); QVariant evalQtScript(); diff --git a/src/declarative/qml/qmlvme.cpp b/src/declarative/qml/qmlvme.cpp index ebf0a73..1cfd5e9 100644 --- a/src/declarative/qml/qmlvme.cpp +++ b/src/declarative/qml/qmlvme.cpp @@ -143,7 +143,7 @@ QObject *QmlVME::run(QStack &stack, QmlContext *ctxt, QmlCompiledData QStack qliststack; vmeErrors.clear(); - QmlEnginePrivate *ep = ctxt->engine()->d_func(); + QmlEnginePrivate *ep = QmlEnginePrivate::get(ctxt->engine()); for (int ii = start; !isError() && ii < (start + count); ++ii) { QmlInstruction &instr = comp->bytecode[ii]; diff --git a/src/declarative/util/qmlscript.cpp b/src/declarative/util/qmlscript.cpp index cfe5a1e..ca9aad5 100644 --- a/src/declarative/util/qmlscript.cpp +++ b/src/declarative/util/qmlscript.cpp @@ -185,9 +185,9 @@ void QmlScriptPrivate::addScriptToEngine(const QString &script, const QString &s Q_Q(QmlScript); QmlEngine *engine = qmlEngine(q); QmlContext *context = qmlContext(q); - QScriptEngine *scriptEngine = engine->scriptEngine(); + QScriptEngine *scriptEngine = QmlEnginePrivate::getScriptEngine(engine); - QScriptContext *currentContext = engine->scriptEngine()->currentContext(); + QScriptContext *currentContext = scriptEngine->currentContext(); QScriptValueList oldScopeChain = currentContext->scopeChain(); QScriptValue oldact = currentContext->activationObject(); -- cgit v0.12