From bfaf510408a95d95e1540be1a1f522a0ebfe0eff Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Wed, 29 Apr 2009 13:09:39 +1000 Subject: Fix plugin delayed loading. Allows settings from QML. --- src/declarative/fx/qfxwebview.cpp | 83 +++++++++++++++++++++++++++++++++++++-- src/declarative/fx/qfxwebview.h | 3 ++ 2 files changed, 82 insertions(+), 4 deletions(-) diff --git a/src/declarative/fx/qfxwebview.cpp b/src/declarative/fx/qfxwebview.cpp index 293c72b..8af4158 100644 --- a/src/declarative/fx/qfxwebview.cpp +++ b/src/declarative/fx/qfxwebview.cpp @@ -75,6 +75,73 @@ QML_DEFINE_TYPE(QFxWebView,WebView); static const int MAX_DOUBLECLICK_TIME=500; // XXX need better gesture system +class QFxWebSettings : public QObject { + Q_OBJECT + /* + StandardFont, + FixedFont, + SerifFont, + SansSerifFont, + CursiveFont, + FantasyFont + + MinimumFontSize, + MinimumLogicalFontSize, + DefaultFontSize, + DefaultFixedFontSize + */ + + Q_PROPERTY(bool autoLoadImages READ autoLoadImages WRITE setAutoLoadImages) + Q_PROPERTY(bool javascriptEnabled READ javascriptEnabled WRITE setJavascriptEnabled) + Q_PROPERTY(bool javaEnabled READ javaEnabled WRITE setJavaEnabled) + Q_PROPERTY(bool pluginsEnabled READ pluginsEnabled WRITE setPluginsEnabled) + Q_PROPERTY(bool privateBrowsingEnabled READ privateBrowsingEnabled WRITE setPrivateBrowsingEnabled) + Q_PROPERTY(bool javascriptCanOpenWindows READ javascriptCanOpenWindows WRITE setJavascriptCanOpenWindows) + Q_PROPERTY(bool javascriptCanAccessClipboard READ javascriptCanAccessClipboard WRITE setJavascriptCanAccessClipboard) + Q_PROPERTY(bool developerExtrasEnabled READ developerExtrasEnabled WRITE setDeveloperExtrasEnabled) + Q_PROPERTY(bool linksIncludedInFocusChain READ linksIncludedInFocusChain WRITE setLinksIncludedInFocusChain) + Q_PROPERTY(bool zoomTextOnly READ zoomTextOnly WRITE setZoomTextOnly) + Q_PROPERTY(bool printElementBackgrounds READ printElementBackgrounds WRITE setPrintElementBackgrounds) + Q_PROPERTY(bool offlineStorageDatabaseEnabled READ offlineStorageDatabaseEnabled WRITE setOfflineStorageDatabaseEnabled) + Q_PROPERTY(bool offlineWebApplicationCacheEnabled READ offlineWebApplicationCacheEnabled WRITE setOfflineWebApplicationCacheEnabled) + Q_PROPERTY(bool localStorageDatabaseEnabled READ localStorageDatabaseEnabled WRITE setLocalStorageDatabaseEnabled) + +public: + QFxWebSettings() {} + + bool autoLoadImages() const { return s->testAttribute(QWebSettings::AutoLoadImages); } + void setAutoLoadImages(bool on) { s->setAttribute(QWebSettings::AutoLoadImages, on); } + bool javascriptEnabled() const { return s->testAttribute(QWebSettings::JavascriptEnabled); } + void setJavascriptEnabled(bool on) { s->setAttribute(QWebSettings::JavascriptEnabled, on); } + bool javaEnabled() const { return s->testAttribute(QWebSettings::JavaEnabled); } + void setJavaEnabled(bool on) { s->setAttribute(QWebSettings::JavaEnabled, on); } + bool pluginsEnabled() const { return s->testAttribute(QWebSettings::PluginsEnabled); } + void setPluginsEnabled(bool on) { s->setAttribute(QWebSettings::PluginsEnabled, on); } + bool privateBrowsingEnabled() const { return s->testAttribute(QWebSettings::PrivateBrowsingEnabled); } + void setPrivateBrowsingEnabled(bool on) { s->setAttribute(QWebSettings::PrivateBrowsingEnabled, on); } + bool javascriptCanOpenWindows() const { return s->testAttribute(QWebSettings::JavascriptCanOpenWindows); } + void setJavascriptCanOpenWindows(bool on) { s->setAttribute(QWebSettings::JavascriptCanOpenWindows, on); } + bool javascriptCanAccessClipboard() const { return s->testAttribute(QWebSettings::JavascriptCanAccessClipboard); } + void setJavascriptCanAccessClipboard(bool on) { s->setAttribute(QWebSettings::JavascriptCanAccessClipboard, on); } + bool developerExtrasEnabled() const { return s->testAttribute(QWebSettings::DeveloperExtrasEnabled); } + void setDeveloperExtrasEnabled(bool on) { s->setAttribute(QWebSettings::DeveloperExtrasEnabled, on); } + bool linksIncludedInFocusChain() const { return s->testAttribute(QWebSettings::LinksIncludedInFocusChain); } + void setLinksIncludedInFocusChain(bool on) { s->setAttribute(QWebSettings::LinksIncludedInFocusChain, on); } + bool zoomTextOnly() const { return s->testAttribute(QWebSettings::ZoomTextOnly); } + void setZoomTextOnly(bool on) { s->setAttribute(QWebSettings::ZoomTextOnly, on); } + bool printElementBackgrounds() const { return s->testAttribute(QWebSettings::PrintElementBackgrounds); } + void setPrintElementBackgrounds(bool on) { s->setAttribute(QWebSettings::PrintElementBackgrounds, on); } + bool offlineStorageDatabaseEnabled() const { return s->testAttribute(QWebSettings::OfflineStorageDatabaseEnabled); } + void setOfflineStorageDatabaseEnabled(bool on) { s->setAttribute(QWebSettings::OfflineStorageDatabaseEnabled, on); } + bool offlineWebApplicationCacheEnabled() const { return s->testAttribute(QWebSettings::OfflineWebApplicationCacheEnabled); } + void setOfflineWebApplicationCacheEnabled(bool on) { s->setAttribute(QWebSettings::OfflineWebApplicationCacheEnabled, on); } + bool localStorageDatabaseEnabled() const { return s->testAttribute(QWebSettings::LocalStorageDatabaseEnabled); } + void setLocalStorageDatabaseEnabled(bool on) { s->setAttribute(QWebSettings::LocalStorageDatabaseEnabled, on); } + + QWebSettings *s; +}; + + class QFxWebViewPrivate : public QFxItemPrivate { Q_DECLARE_PUBLIC(QFxWebView) @@ -131,6 +198,7 @@ public: QUrl pending_url; QString pending_string; QByteArray pending_data; + mutable QFxWebSettings settings; }; @@ -866,9 +934,6 @@ QWebPage *QFxWebView::page() const wp->setNetworkAccessManager(qmlEngine(this)->networkAccessManager()); - // XXX settable from QML? - wp->settings()->setAttribute(QWebSettings::PluginsEnabled, true); - self->setPage(wp); return wp; @@ -877,6 +942,13 @@ QWebPage *QFxWebView::page() const return d->page; } +// The QObject interface to settings(). +QObject *QFxWebView::settingsObject() const +{ + Q_D(const QFxWebView); + d->settings.s = page()->settings(); + return &d->settings; +} void QFxWebView::setPage(QWebPage *page) { @@ -1031,7 +1103,10 @@ public: QmlEngine *engine = qmlEngine(webview); component = new QmlComponent(engine, url, this); item = 0; - connect(engine, SIGNAL(statusChanged(Status)), this, SLOT(qmlLoaded())); + if (component->isReady()) + qmlLoaded(); + else + connect(component, SIGNAL(statusChanged(QmlComponent::Status)), this, SLOT(qmlLoaded())); } public Q_SLOTS: diff --git a/src/declarative/fx/qfxwebview.h b/src/declarative/fx/qfxwebview.h index 1eede52..6ba4601 100644 --- a/src/declarative/fx/qfxwebview.h +++ b/src/declarative/fx/qfxwebview.h @@ -103,6 +103,8 @@ class Q_DECLARATIVE_EXPORT QFxWebView : public QFxItem Q_PROPERTY(QObject* forward READ forwardAction) Q_PROPERTY(QObject* stop READ stopAction) + Q_PROPERTY(QObject* settings READ settingsObject) + public: QFxWebView(QFxItem *parent=0); ~QFxWebView(); @@ -164,6 +166,7 @@ public: QWebHistory *history() const; QWebSettings *settings() const; + QObject *settingsObject() const; QString status() const; -- cgit v0.12 From e50b584c8ca90eb7bbee69b92f47827d3d56df3e Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Wed, 29 Apr 2009 13:52:12 +1000 Subject: Phones info media, not movie info media. --- .../mediabrowser/content/MovieInfoContainer.qml | 60 ---------------- .../mediabrowser/content/MoviesPathView.qml | 74 ------------------- .../mediabrowser/content/PhoneInfoContainer.qml | 66 +++++++++++++++++ .../mediabrowser/content/PhonesPathView.qml | 82 ++++++++++++++++++++++ .../mediabrowser/dummydata/MoviesModel.qml | 38 ---------- demos/declarative/mediabrowser/mediabrowser.qml | 10 +-- 6 files changed, 153 insertions(+), 177 deletions(-) delete mode 100644 demos/declarative/mediabrowser/content/MovieInfoContainer.qml delete mode 100644 demos/declarative/mediabrowser/content/MoviesPathView.qml create mode 100644 demos/declarative/mediabrowser/content/PhoneInfoContainer.qml create mode 100644 demos/declarative/mediabrowser/content/PhonesPathView.qml delete mode 100644 demos/declarative/mediabrowser/dummydata/MoviesModel.qml diff --git a/demos/declarative/mediabrowser/content/MovieInfoContainer.qml b/demos/declarative/mediabrowser/content/MovieInfoContainer.qml deleted file mode 100644 index c53fab6..0000000 --- a/demos/declarative/mediabrowser/content/MovieInfoContainer.qml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/demos/declarative/mediabrowser/content/MoviesPathView.qml b/demos/declarative/mediabrowser/content/MoviesPathView.qml deleted file mode 100644 index a13437a..0000000 --- a/demos/declarative/mediabrowser/content/MoviesPathView.qml +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/demos/declarative/mediabrowser/content/PhoneInfoContainer.qml b/demos/declarative/mediabrowser/content/PhoneInfoContainer.qml new file mode 100644 index 0000000..dbf25f5 --- /dev/null +++ b/demos/declarative/mediabrowser/content/PhoneInfoContainer.qml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demos/declarative/mediabrowser/content/PhonesPathView.qml b/demos/declarative/mediabrowser/content/PhonesPathView.qml new file mode 100644 index 0000000..e08e13f --- /dev/null +++ b/demos/declarative/mediabrowser/content/PhonesPathView.qml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demos/declarative/mediabrowser/dummydata/MoviesModel.qml b/demos/declarative/mediabrowser/dummydata/MoviesModel.qml deleted file mode 100644 index 87bca37..0000000 --- a/demos/declarative/mediabrowser/dummydata/MoviesModel.qml +++ /dev/null @@ -1,38 +0,0 @@ - - - Repoman - http://www.impawards.com/1984/posters/repo_man.jpg - Cult classic. Car repossession. Radiation. Plate O' Shrimp. - 2 - - - Monsters vs Aliens - http://www.impawards.com/2009/posters/monsters_vs_aliens_ver6.jpg - Love Monsters? Love Aliens? You're in luck. - 1 - - - Cruel Intentions - http://impawards.com/1999/posters/cruel_intentions_ver1.jpg - Modern-day update of Les Liaisons Dangereuses. Better because it has nothing to do with the French. - 3 - - - Lord of War - http://www.impawards.com/2005/posters/lord_of_war_ver2.jpg - There are over 500 million fire arms in worldwide circulation. That is one fire arm for every twelve people on the planet. The only question is how do we arm the other eleven? - 4 - - - The Devil's Advocate - http://impawards.com/1997/posters/devils_advocate_ver1.jpg - An ambitious your district attorney joins a powerful New York law firm headed by the devil. - 4 - - - Team America: World Police - http://impawards.com/2004/posters/team_america_world_police.jpg - Hey terrorist, terrorize this. - 1 - - diff --git a/demos/declarative/mediabrowser/mediabrowser.qml b/demos/declarative/mediabrowser/mediabrowser.qml index df7baa9..338aed2 100644 --- a/demos/declarative/mediabrowser/mediabrowser.qml +++ b/demos/declarative/mediabrowser/mediabrowser.qml @@ -8,12 +8,12 @@ - + - - + + @@ -29,8 +29,8 @@ - - + + -- cgit v0.12 From 9ba03ca32ae12f8b135f3b4f80c445edc3e6b55e Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Wed, 29 Apr 2009 14:02:48 +1000 Subject: Convert the calculator demo. --- demos/declarative/calculator/CalcButton.qml | 64 ++++++--- demos/declarative/calculator/calculator.qml | 208 +++++++++++++++++----------- 2 files changed, 169 insertions(+), 103 deletions(-) diff --git a/demos/declarative/calculator/CalcButton.qml b/demos/declarative/calculator/CalcButton.qml index c925314..f240000 100644 --- a/demos/declarative/calculator/CalcButton.qml +++ b/demos/declarative/calculator/CalcButton.qml @@ -1,12 +1,13 @@ - +Item { + id: Button; width: 50; height: 30 - - - - - + properties: [ + Property { name: "operation"; type: "string" }, + Property { name: "toggable"; value: false }, + Property { name: "toggled"; value: false } + ] - + } - - - - + Image { + id: Image + src: "pics/button.sci" + width: Button.width; height: Button.height + } - - - - - - - - + Image { + id: ImagePressed + src: "pics/button-pressed.sci" + width: Button.width; height: Button.height + opacity: 0 + } - + Text { + anchors.centeredIn: Image + text: Button.operation + color: "white" + font.bold: true + } + MouseRegion { + id: MouseRegion + anchors.fill: Button + onClicked: { buttonClicked(Button.operation) } + } + + states: [ + State { + name: "Pressed"; when: MouseRegion.pressed == true + SetProperties { target: ImagePressed; opacity: 1 } + }, + State { + name: "Toggled"; when: Button.toggled == true + SetProperties { target: ImagePressed; opacity: 1 } + } + ] +} diff --git a/demos/declarative/calculator/calculator.qml b/demos/declarative/calculator/calculator.qml index 4ada896..1e7c30a 100644 --- a/demos/declarative/calculator/calculator.qml +++ b/demos/declarative/calculator/calculator.qml @@ -1,83 +1,127 @@ - - - - - - - + + + + + diff --git a/demos/declarative/mediabrowser/content/Star.qml b/demos/declarative/mediabrowser/content/Star.qml index 1db29e8..37d314b 100644 --- a/demos/declarative/mediabrowser/content/Star.qml +++ b/demos/declarative/mediabrowser/content/Star.qml @@ -8,7 +8,7 @@ - + diff --git a/demos/declarative/mediabrowser/mediabrowser.qml b/demos/declarative/mediabrowser/mediabrowser.qml index df7baa9..3e22de4 100644 --- a/demos/declarative/mediabrowser/mediabrowser.qml +++ b/demos/declarative/mediabrowser/mediabrowser.qml @@ -5,11 +5,11 @@ - + - + diff --git a/demos/declarative/webbrowser/content/RectSoftShadow.qml b/demos/declarative/webbrowser/content/RectSoftShadow.qml index 0235842..2b39422 100644 --- a/demos/declarative/webbrowser/content/RectSoftShadow.qml +++ b/demos/declarative/webbrowser/content/RectSoftShadow.qml @@ -1,10 +1,10 @@ - - - - diff --git a/demos/declarative/webbrowser/webbrowser.qml b/demos/declarative/webbrowser/webbrowser.qml index 7618f4d..cf96b3f 100644 --- a/demos/declarative/webbrowser/webbrowser.qml +++ b/demos/declarative/webbrowser/webbrowser.qml @@ -18,8 +18,8 @@ - - + + @@ -30,7 +30,7 @@ ? -Flick.xPosition+Flick.viewportWidth-Flick.width : 0}" y="{Flick.yPosition < 0 ? -Flick.yPosition : progressOff*(Flick.yPosition>height?-height:-Flick.yPosition)}" - height="64" src="content/pics/header.png"> + height="64" source="content/pics/header.png"> - - + + + height="43" source="content/pics/footer.sci"> - - + + @@ -126,11 +126,11 @@ - + - - + + diff --git a/examples/declarative/contacts/contacts.qml b/examples/declarative/contacts/contacts.qml index fa50010..f9901ed 100644 --- a/examples/declarative/contacts/contacts.qml +++ b/examples/declarative/contacts/contacts.qml @@ -24,7 +24,7 @@ Rect { } Image { id: portraitPic - src: portrait + source: portrait x: 10 y: 10 } diff --git a/examples/declarative/dial/DialLibrary/Dial.qml b/examples/declarative/dial/DialLibrary/Dial.qml index 8336a70..fe8528d 100644 --- a/examples/declarative/dial/DialLibrary/Dial.qml +++ b/examples/declarative/dial/DialLibrary/Dial.qml @@ -8,14 +8,14 @@ Item { } Image { id: Background - src: "background.svg" + source: "background.svg" } Item { x: 104 y: 102 rotation: Needle.rotation Image { - src: "needle_shadow.svg" + source: "needle_shadow.svg" x: -104 y: -102 } @@ -31,12 +31,12 @@ Item { source: Math.min(Math.max(-130, value*2.2 - 130), 133) } Image { - src: "needle.svg" + source: "needle.svg" x: -102 y: -98 } } Image { - src: "overlay.svg" + source: "overlay.svg" } } diff --git a/examples/declarative/listview/content/MediaButton.qml b/examples/declarative/listview/content/MediaButton.qml index c92305a..6c672ea 100644 --- a/examples/declarative/listview/content/MediaButton.qml +++ b/examples/declarative/listview/content/MediaButton.qml @@ -7,8 +7,8 @@ - - + + {Image.width} diff --git a/examples/declarative/listview/recipes.qml b/examples/declarative/listview/recipes.qml index 0f6324f..db8604e 100644 --- a/examples/declarative/listview/recipes.qml +++ b/examples/declarative/listview/recipes.qml @@ -54,7 +54,7 @@ Rect { width: parent.width Image { id: recipePic - src: picture + source: picture width: 48 height: 48 } @@ -115,13 +115,13 @@ Rect { Image { anchors.right: flick.right anchors.top: flick.top - src: "content/pics/moreUp.png" + source: "content/pics/moreUp.png" opacity: flick.atYBeginning ? 0 : 1 } Image { anchors.right: flick.right anchors.bottom: flick.bottom - src: "content/pics/moreDown.png" + source: "content/pics/moreDown.png" opacity: flick.atYEnd ? 0 : 1 } } diff --git a/examples/declarative/minehunt/Explosion.qml b/examples/declarative/minehunt/Explosion.qml index 1e4f03d..8d868bc 100644 --- a/examples/declarative/minehunt/Explosion.qml +++ b/examples/declarative/minehunt/Explosion.qml @@ -9,7 +9,7 @@ Item { height: 21 lifeSpan: 3600000 lifeSpanDeviation: 0 - src: "pics/star.png" + source: "pics/star.png" count: 200 angle: 270 angleDeviation: 360 diff --git a/examples/declarative/minehunt/minehunt.qml b/examples/declarative/minehunt/minehunt.qml index 20c3874..0da29b4 100644 --- a/examples/declarative/minehunt/minehunt.qml +++ b/examples/declarative/minehunt/minehunt.qml @@ -10,10 +10,10 @@ - + + source="pics/flag.png" opacity="{modelData.hasFlag}"> @@ -23,12 +23,12 @@ - + + source="pics/bomb.png" opacity="{modelData.hasMine}"/> @@ -50,7 +50,7 @@ - + @@ -61,12 +61,12 @@ In play: - + - + - + diff --git a/examples/declarative/namespaces/lib/Chronos/Clock.qml b/examples/declarative/namespaces/lib/Chronos/Clock.qml index 088a45c..959d193 100644 --- a/examples/declarative/namespaces/lib/Chronos/Clock.qml +++ b/examples/declarative/namespaces/lib/Chronos/Clock.qml @@ -1,6 +1,6 @@ - + diff --git a/examples/declarative/scrollbar/display.qml b/examples/declarative/scrollbar/display.qml index 4412d7f..42e8f25 100644 --- a/examples/declarative/scrollbar/display.qml +++ b/examples/declarative/scrollbar/display.qml @@ -7,7 +7,7 @@ Rect { anchors.fill: parent Image { id: Picture - src: "pics/niagara_falls.jpg" + source: "pics/niagara_falls.jpg" } viewportWidth: Picture.width viewportHeight: Picture.height diff --git a/examples/declarative/slideswitch/Switch.qml b/examples/declarative/slideswitch/Switch.qml index f62e4b6..a3f75e8 100644 --- a/examples/declarative/slideswitch/Switch.qml +++ b/examples/declarative/slideswitch/Switch.qml @@ -31,7 +31,7 @@ Item { } Image { id: Groove - src: "background.svg" + source: "background.svg" } MouseRegion { anchors.fill: Groove @@ -39,7 +39,7 @@ Item { } Image { id: Knob - src: "knob.svg" + source: "knob.svg" x: 1 y: 2 } diff --git a/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/RemoveButton2.qml b/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/RemoveButton2.qml index 2ba488d..77ff616 100644 --- a/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/RemoveButton2.qml +++ b/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/RemoveButton2.qml @@ -6,5 +6,5 @@ width="22" height="22" anchors.right="{parent.right}" anchors.rightMargin="4" anchors.verticalCenter="{parent.verticalCenter}" - src="../shared/pics/trash.png"/> + source="../shared/pics/trash.png"/> diff --git a/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/RemoveButton3.qml b/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/RemoveButton3.qml index 9a364c5..0431f59 100644 --- a/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/RemoveButton3.qml +++ b/examples/declarative/tutorials/contacts/1_Drawing_and_Animation/RemoveButton3.qml @@ -6,12 +6,12 @@ width="22" height="22" anchors.right="{parent.right}" anchors.rightMargin="4" anchors.verticalCenter="{parent.verticalCenter}" - src="../shared/pics/cancel.png"/> + source="../shared/pics/cancel.png"/> + source="../shared/pics/ok.png"/> - diff --git a/examples/declarative/tutorials/contacts/2_Reuse/ContactField2.qml b/examples/declarative/tutorials/contacts/2_Reuse/ContactField2.qml index 7ec3e4d..dd3e85c 100644 --- a/examples/declarative/tutorials/contacts/2_Reuse/ContactField2.qml +++ b/examples/declarative/tutorials/contacts/2_Reuse/ContactField2.qml @@ -14,7 +14,7 @@ font.bold="true" color="black" text="123123"/> - diff --git a/examples/declarative/tutorials/contacts/2_Reuse/ContactField3.qml b/examples/declarative/tutorials/contacts/2_Reuse/ContactField3.qml index cef25ce..c9be130 100644 --- a/examples/declarative/tutorials/contacts/2_Reuse/ContactField3.qml +++ b/examples/declarative/tutorials/contacts/2_Reuse/ContactField3.qml @@ -21,7 +21,7 @@ + source="{contactField.icon}"/> diff --git a/examples/declarative/tutorials/contacts/2_Reuse/ContactField4.qml b/examples/declarative/tutorials/contacts/2_Reuse/ContactField4.qml index 13ccbc0..b1c22cd 100644 --- a/examples/declarative/tutorials/contacts/2_Reuse/ContactField4.qml +++ b/examples/declarative/tutorials/contacts/2_Reuse/ContactField4.qml @@ -20,7 +20,7 @@ + source="{contactField.icon}"/> diff --git a/examples/declarative/tutorials/contacts/2_Reuse/FieldText3.qml b/examples/declarative/tutorials/contacts/2_Reuse/FieldText3.qml index 97c0772..1fa99b1 100644 --- a/examples/declarative/tutorials/contacts/2_Reuse/FieldText3.qml +++ b/examples/declarative/tutorials/contacts/2_Reuse/FieldText3.qml @@ -34,13 +34,13 @@ width="22" height="22" anchors.right="{parent.right}" anchors.rightMargin="4" anchors.verticalCenter="{parent.verticalCenter}" - src="../shared/pics/cancel.png" + source="../shared/pics/cancel.png" opacity="0"/> + source="{contactField.icon}"/> diff --git a/examples/declarative/tutorials/contacts/3_Collections/FieldText.qml b/examples/declarative/tutorials/contacts/3_Collections/FieldText.qml index 583c73e..6573ce2 100644 --- a/examples/declarative/tutorials/contacts/3_Collections/FieldText.qml +++ b/examples/declarative/tutorials/contacts/3_Collections/FieldText.qml @@ -39,13 +39,13 @@ width="22" height="22" anchors.right="{parent.right}" anchors.rightMargin="4" anchors.verticalCenter="{parent.verticalCenter}" - src="../shared/pics/cancel.png" + source="../shared/pics/cancel.png" opacity="0"/> + source="{contactField.icon}"/> diff --git a/examples/declarative/tutorials/contacts/Final/FieldText.qml b/examples/declarative/tutorials/contacts/Final/FieldText.qml index a82cecd..38ad026 100644 --- a/examples/declarative/tutorials/contacts/Final/FieldText.qml +++ b/examples/declarative/tutorials/contacts/Final/FieldText.qml @@ -39,13 +39,13 @@ width="22" height="22" anchors.right="{parent.right}" anchors.rightMargin="4" anchors.verticalCenter="{parent.verticalCenter}" - src="../shared/pics/cancel.png" + source="../shared/pics/cancel.png" opacity="0"/> + source="../shared/pics/search.png"/> - + @@ -13,13 +13,13 @@ - + - + diff --git a/examples/declarative/xmldata/daringfireball.qml b/examples/declarative/xmldata/daringfireball.qml index cfd0a98..5e98d1b 100644 --- a/examples/declarative/xmldata/daringfireball.qml +++ b/examples/declarative/xmldata/daringfireball.qml @@ -1,6 +1,6 @@ - declare default element namespace 'http://www.w3.org/2005/Atom'; diff --git a/examples/declarative/xmldata/yahoonews.qml b/examples/declarative/xmldata/yahoonews.qml index 80ace18..32a706e 100644 --- a/examples/declarative/xmldata/yahoonews.qml +++ b/examples/declarative/xmldata/yahoonews.qml @@ -1,6 +1,6 @@ - + diff --git a/src/declarative/extra/qmlxmllistmodel.cpp b/src/declarative/extra/qmlxmllistmodel.cpp index 562a1c8..91c8139 100644 --- a/src/declarative/extra/qmlxmllistmodel.cpp +++ b/src/declarative/extra/qmlxmllistmodel.cpp @@ -192,13 +192,13 @@ QString QmlXmlListModel::toString(int role) const return d->roleNames.at(index); } -QString QmlXmlListModel::src() const +QString QmlXmlListModel::source() const { Q_D(const QmlXmlListModel); return d->src; } -void QmlXmlListModel::setSrc(const QString &src) +void QmlXmlListModel::setSource(const QString &src) { Q_D(QmlXmlListModel); d->src = src; diff --git a/src/declarative/extra/qmlxmllistmodel.h b/src/declarative/extra/qmlxmllistmodel.h index a8f3087..d06cabf 100644 --- a/src/declarative/extra/qmlxmllistmodel.h +++ b/src/declarative/extra/qmlxmllistmodel.h @@ -90,7 +90,7 @@ class Q_DECLARATIVE_EXPORT QmlXmlListModel : public QListModelInterface, public Q_OBJECT Q_INTERFACES(QmlParserStatus) - Q_PROPERTY(QString src READ src WRITE setSrc) + Q_PROPERTY(QString source READ source WRITE setSource) Q_PROPERTY(QString query READ query WRITE setQuery) Q_PROPERTY(QString namespaceDeclarations READ namespaceDeclarations WRITE setNamespaceDeclarations) Q_PROPERTY(QmlList *roles READ roleObjects) @@ -106,8 +106,8 @@ public: QmlList *roleObjects(); - QString src() const; - void setSrc(const QString&); + QString source() const; + void setSource(const QString&); QString query() const; void setQuery(const QString&); diff --git a/src/declarative/fx/qfxhighlightfilter.h b/src/declarative/fx/qfxhighlightfilter.h index 6204242..218f4e1 100644 --- a/src/declarative/fx/qfxhighlightfilter.h +++ b/src/declarative/fx/qfxhighlightfilter.h @@ -56,7 +56,7 @@ class Q_DECLARATIVE_EXPORT QFxHighlightFilter : public QSimpleCanvasFilter { Q_OBJECT - Q_PROPERTY(QString src READ source WRITE setSource NOTIFY sourceChanged) + Q_PROPERTY(QString source READ source WRITE setSource NOTIFY sourceChanged) Q_PROPERTY(bool tiled READ tiled WRITE setTiled NOTIFY tiledChanged) Q_PROPERTY(int xOffset READ xOffset WRITE setXOffset NOTIFY offsetChanged) Q_PROPERTY(int yOffset READ yOffset WRITE setYOffset NOTIFY offsetChanged) diff --git a/src/declarative/fx/qfximage.h b/src/declarative/fx/qfximage.h index 4eed0ef..37fe5be 100644 --- a/src/declarative/fx/qfximage.h +++ b/src/declarative/fx/qfximage.h @@ -57,7 +57,7 @@ class Q_DECLARATIVE_EXPORT QFxImage : public QFxItem Q_ENUMS(Status) Q_PROPERTY(Status status READ status NOTIFY statusChanged) - Q_PROPERTY(QString src READ source WRITE setSource NOTIFY sourceChanged) + Q_PROPERTY(QString source READ source WRITE setSource NOTIFY sourceChanged) Q_PROPERTY(QFxScaleGrid *scaleGrid READ scaleGrid) Q_PROPERTY(bool tile READ isTiled WRITE setTiled) diff --git a/src/declarative/fx/qfxparticles.cpp b/src/declarative/fx/qfxparticles.cpp index 309ebe8..b6b4c85 100644 --- a/src/declarative/fx/qfxparticles.cpp +++ b/src/declarative/fx/qfxparticles.cpp @@ -576,7 +576,7 @@ QFxParticles::~QFxParticles() \property QFxParticles::src \brief the URL of the particle image. */ -QString QFxParticles::url() const +QString QFxParticles::source() const { Q_D(const QFxParticles); return d->source; @@ -593,7 +593,7 @@ void QFxParticles::imageLoaded() update(); } -void QFxParticles::setUrl(const QString &name) +void QFxParticles::setSource(const QString &name) { Q_D(QFxParticles); diff --git a/src/declarative/fx/qfxparticles.h b/src/declarative/fx/qfxparticles.h index d9c810d..0696e60 100644 --- a/src/declarative/fx/qfxparticles.h +++ b/src/declarative/fx/qfxparticles.h @@ -153,7 +153,7 @@ class Q_DECLARATIVE_EXPORT QFxParticles : public QFxItem { Q_OBJECT - Q_PROPERTY(QString src READ url WRITE setUrl); + Q_PROPERTY(QString source READ source WRITE setSource); Q_PROPERTY(int count READ count WRITE setCount); Q_PROPERTY(int lifeSpan READ lifeSpan WRITE setLifeSpan); Q_PROPERTY(int lifeSpanDeviation READ lifeSpanDeviation WRITE setLifeSpanDeviation); @@ -172,8 +172,8 @@ public: QFxParticles(QFxItem *parent=0); ~QFxParticles(); - QString url() const; - void setUrl(const QString &); + QString source() const; + void setSource(const QString &); int count() const; void setCount(int cnt); diff --git a/src/declarative/util/qmlscript.h b/src/declarative/util/qmlscript.h index fc038b4..8047a88 100644 --- a/src/declarative/util/qmlscript.h +++ b/src/declarative/util/qmlscript.h @@ -58,7 +58,7 @@ class Q_DECLARATIVE_EXPORT QmlScript : public QObject Q_DECLARE_PRIVATE(QmlScript); Q_PROPERTY(QString script READ script WRITE setScript); - Q_PROPERTY(QString src READ source WRITE setSource); + Q_PROPERTY(QString source READ source WRITE setSource); Q_CLASSINFO("DefaultProperty", "script"); public: -- cgit v0.12 From 86aa54ba75101121a55d340620d2273b82e6143d Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Wed, 29 Apr 2009 15:57:58 +1000 Subject: Forgot this src attribute. --- demos/declarative/mediabrowser/content/PhonesPathView.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demos/declarative/mediabrowser/content/PhonesPathView.qml b/demos/declarative/mediabrowser/content/PhonesPathView.qml index 3fbb3ed..df7e742 100644 --- a/demos/declarative/mediabrowser/content/PhonesPathView.qml +++ b/demos/declarative/mediabrowser/content/PhonesPathView.qml @@ -39,7 +39,7 @@ - + -- cgit v0.12 From c01d432060dccca5bc22dc5fd86eae97e1df8231 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Wed, 29 Apr 2009 09:01:34 +0200 Subject: qdoc: Corrected some qdoc warnings. --- doc/src/declarative/elements.qdoc | 2 +- src/declarative/util/qmlstate.cpp | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/doc/src/declarative/elements.qdoc b/doc/src/declarative/elements.qdoc index 8fff472..8955587 100644 --- a/doc/src/declarative/elements.qdoc +++ b/doc/src/declarative/elements.qdoc @@ -16,7 +16,7 @@ The following table lists the Qml elements provided by the Qt Declarative module \o \list -\o \l StateGroup +\o \l State \o \l SetProperty \o \l SetProperties \o \l ParentChange diff --git a/src/declarative/util/qmlstate.cpp b/src/declarative/util/qmlstate.cpp index 9b1b695..6a9cc12 100644 --- a/src/declarative/util/qmlstate.cpp +++ b/src/declarative/util/qmlstate.cpp @@ -175,7 +175,6 @@ void QmlState::setWhen(QmlBindableValue *when) } /*! - \advanced \qmlproperty string State::extends This property holds the state that this state extends -- cgit v0.12 From 9b7fa7d3ae7a2c2e53ed591dd1f25d9c5edfda6a Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Wed, 29 Apr 2009 14:29:47 +0200 Subject: Added first/lastSourceLocations to AST::UiObjectMember and improved the generation of `fake' tokens. A `fake' token is a token generated while recovering from a syntax error. --- src/declarative/qml/parser/javascript.g | 16 +- src/declarative/qml/parser/javascriptast_p.h | 241 +++-- src/declarative/qml/parser/javascriptgrammar.cpp | 1048 +++++++++++----------- src/declarative/qml/parser/javascriptgrammar_p.h | 6 +- src/declarative/qml/parser/javascriptparser.cpp | 8 +- src/declarative/qml/parser/javascriptparser_p.h | 4 +- 6 files changed, 703 insertions(+), 620 deletions(-) diff --git a/src/declarative/qml/parser/javascript.g b/src/declarative/qml/parser/javascript.g index 961041e..52d076f 100644 --- a/src/declarative/qml/parser/javascript.g +++ b/src/declarative/qml/parser/javascript.g @@ -87,7 +87,7 @@ %nonassoc T_IDENTIFIER T_COLON %nonassoc REDUCE_HERE -%start Program +%start UiProgram /. /**************************************************************************** @@ -286,7 +286,7 @@ public: bool parse(JavaScriptEnginePrivate *driver); JavaScript::AST::UiProgram *ast() - { return sym(1).UiProgram; } + { return program; } QList diagnosticMessages() const { return diagnostic_messages; } @@ -326,6 +326,8 @@ protected: int *state_stack; JavaScript::AST::SourceLocation *location_stack; + JavaScript::AST::UiProgram *program; + // error recovery enum { TOKEN_BUFFER_SIZE = 3 }; @@ -422,6 +424,7 @@ bool JavaScriptParser::parse(JavaScriptEnginePrivate *driver) first_token = last_token = 0; tos = -1; + program = 0; do { if (++tos == stack_size) @@ -466,11 +469,12 @@ bool JavaScriptParser::parse(JavaScriptEnginePrivate *driver) -- Declarative UI -------------------------------------------------------------------------------------------------------- -Program: UiImportListOpt UiObjectMemberList ; +UiProgram: UiImportListOpt UiObjectMemberList ; /. case $rule_number: { - sym(1).Node = makeAstNode (driver->nodePool(), sym(1).UiImportList, + program = makeAstNode (driver->nodePool(), sym(1).UiImportList, sym(2).UiObjectMemberList->finish()); + sym(1).UiProgram = program; } break; ./ @@ -602,7 +606,7 @@ case $rule_number: { sym(4).UiObjectMemberList->finish()); node->colonToken = loc(2); node->lbracketToken = loc(3); - node->rbraceToken = loc(5); + node->rbracketToken = loc(5); sym(1).Node = node; } break; ./ @@ -2617,6 +2621,7 @@ PropertyNameAndValueListOpt: PropertyNameAndValueList ; yytoken = *tk; yylval = 0; yylloc = token_buffer[0].loc; + yylloc.length = 0; first_token = &token_buffer[0]; last_token = &token_buffer[2]; @@ -2639,6 +2644,7 @@ PropertyNameAndValueListOpt: PropertyNameAndValueList ; yytoken = tk; yylval = 0; yylloc = token_buffer[0].loc; + yylloc.length = 0; action = errorState; goto _Lcheck_token; diff --git a/src/declarative/qml/parser/javascriptast_p.h b/src/declarative/qml/parser/javascriptast_p.h index 69958e5..8515998 100644 --- a/src/declarative/qml/parser/javascriptast_p.h +++ b/src/declarative/qml/parser/javascriptast_p.h @@ -128,6 +128,11 @@ public: startLine(0), startColumn(0) { } + bool isValid() const { return length != 0; } + + quint32 begin() const { return offset; } + quint32 end() const { return offset + length; } + // attributes // ### encode quint32 offset; @@ -2175,6 +2180,40 @@ public: UiObjectMemberList *members; }; +class UiQualifiedId: public Node +{ +public: + JAVASCRIPT_DECLARE_AST_NODE(UiQualifiedId) + + UiQualifiedId(JavaScriptNameIdImpl *name) + : next(this), name(name) + { kind = K; } + + UiQualifiedId(UiQualifiedId *previous, JavaScriptNameIdImpl *name) + : name(name) + { + kind = K; + next = previous->next; + previous->next = this; + } + + virtual ~UiQualifiedId() {} + + UiQualifiedId *finish() + { + UiQualifiedId *head = next; + next = 0; + return head; + } + + virtual void accept0(Visitor *visitor); + +// attributes + UiQualifiedId *next; + JavaScriptNameIdImpl *name; + SourceLocation identifierToken; +}; + class UiImport: public Node { public: @@ -2227,6 +2266,57 @@ public: class UiObjectMember: public Node { +public: + virtual SourceLocation firstSourceLocation() const = 0; + virtual SourceLocation lastSourceLocation() const = 0; +}; + +class UiObjectMemberList: public Node +{ +public: + JAVASCRIPT_DECLARE_AST_NODE(UiObjectMemberList) + + UiObjectMemberList(UiObjectMember *member) + : next(this), member(member) + { kind = K; } + + UiObjectMemberList(UiObjectMemberList *previous, UiObjectMember *member) + : member(member) + { + kind = K; + next = previous->next; + previous->next = this; + } + + virtual void accept0(Visitor *visitor); + + UiObjectMemberList *finish() + { + UiObjectMemberList *head = next; + next = 0; + return head; + } + +// attributes + UiObjectMemberList *next; + UiObjectMember *member; +}; + +class UiObjectInitializer: public Node +{ +public: + JAVASCRIPT_DECLARE_AST_NODE(UiObjectInitializer) + + UiObjectInitializer(UiObjectMemberList *members) + : members(members) + { kind = K; } + + virtual void accept0(Visitor *visitor); + +// attributes + SourceLocation lbraceToken; + UiObjectMemberList *members; + SourceLocation rbraceToken; }; class UiPublicMember: public UiObjectMember @@ -2245,6 +2335,22 @@ public: : memberType(memberType), name(name), expression(expression) { kind = K; } + virtual SourceLocation firstSourceLocation() const + { return publicToken; } + + virtual SourceLocation lastSourceLocation() const + { + if (expression) + return expression->lastSourceLocation(); + else if (colonToken.isValid()) + return colonToken; + else if (identifierToken.isValid()) + return identifierToken; + else if (attributeTypeToken.isValid()) + return attributeTypeToken; + return publicToken; + } + virtual void accept0(Visitor *visitor); // attributes @@ -2267,29 +2373,23 @@ public: : name(name), initializer(initializer) { kind = K; } - virtual void accept0(Visitor *visitor); - -// attributes - JavaScriptNameIdImpl *name; - UiObjectInitializer *initializer; - SourceLocation identifierToken; -}; + virtual SourceLocation firstSourceLocation() const + { return identifierToken; } -class UiObjectInitializer: public Node -{ -public: - JAVASCRIPT_DECLARE_AST_NODE(UiObjectInitializer) + virtual SourceLocation lastSourceLocation() const + { + if (initializer) + return initializer->rbraceToken; - UiObjectInitializer(UiObjectMemberList *members) - : members(members) - { kind = K; } + return identifierToken; + } virtual void accept0(Visitor *visitor); // attributes - SourceLocation lbraceToken; - UiObjectMemberList *members; - SourceLocation rbraceToken; + JavaScriptNameIdImpl *name; + UiObjectInitializer *initializer; + SourceLocation identifierToken; }; class UiSourceElement: public UiObjectMember @@ -2301,6 +2401,27 @@ public: : sourceElement(sourceElement) { kind = K; } + virtual SourceLocation firstSourceLocation() const + { + if (FunctionDeclaration *funDecl = cast(sourceElement)) + return funDecl->firstSourceLocation(); + else if (VariableStatement *varStmt = cast(sourceElement)) + return varStmt->firstSourceLocation(); + + return SourceLocation(); + } + + virtual SourceLocation lastSourceLocation() const + { + if (FunctionDeclaration *funDecl = cast(sourceElement)) + return funDecl->lastSourceLocation(); + else if (VariableStatement *varStmt = cast(sourceElement)) + return varStmt->lastSourceLocation(); + + return SourceLocation(); + } + + virtual void accept0(Visitor *visitor); // attributes @@ -2320,6 +2441,12 @@ public: initializer(initializer) { kind = K; } + virtual SourceLocation firstSourceLocation() const + { return qualifiedId->identifierToken; } + + virtual SourceLocation lastSourceLocation() const + { return initializer->rbraceToken; } + virtual void accept0(Visitor *visitor); // attributes @@ -2341,6 +2468,12 @@ public: statement(statement) { kind = K; } + virtual SourceLocation firstSourceLocation() const + { return qualifiedId->identifierToken; } + + virtual SourceLocation lastSourceLocation() const + { return statement->lastSourceLocation(); } + virtual void accept0(Visitor *visitor); // attributes @@ -2360,6 +2493,12 @@ public: members(members) { kind = K; } + virtual SourceLocation firstSourceLocation() const + { return lbracketToken; } + + virtual SourceLocation lastSourceLocation() const + { return rbracketToken; } + virtual void accept0(Visitor *visitor); // attributes @@ -2367,75 +2506,9 @@ public: UiObjectMemberList *members; SourceLocation colonToken; SourceLocation lbracketToken; - SourceLocation rbraceToken; -}; - -class UiObjectMemberList: public Node -{ -public: - JAVASCRIPT_DECLARE_AST_NODE(UiObjectMemberList) - - UiObjectMemberList(UiObjectMember *member) - : next(this), member(member) - { kind = K; } - - UiObjectMemberList(UiObjectMemberList *previous, UiObjectMember *member) - : member(member) - { - kind = K; - next = previous->next; - previous->next = this; - } - - virtual void accept0(Visitor *visitor); - - UiObjectMemberList *finish() - { - UiObjectMemberList *head = next; - next = 0; - return head; - } - -// attributes - UiObjectMemberList *next; - UiObjectMember *member; -}; - -class UiQualifiedId: public Node -{ -public: - JAVASCRIPT_DECLARE_AST_NODE(UiQualifiedId) - - UiQualifiedId(JavaScriptNameIdImpl *name) - : next(this), name(name) - { kind = K; } - - UiQualifiedId(UiQualifiedId *previous, JavaScriptNameIdImpl *name) - : name(name) - { - kind = K; - next = previous->next; - previous->next = this; - } - - virtual ~UiQualifiedId() {} - - UiQualifiedId *finish() - { - UiQualifiedId *head = next; - next = 0; - return head; - } - - virtual void accept0(Visitor *visitor); - -// attributes - UiQualifiedId *next; - JavaScriptNameIdImpl *name; - SourceLocation identifierToken; + SourceLocation rbracketToken; }; - } } // namespace AST diff --git a/src/declarative/qml/parser/javascriptgrammar.cpp b/src/declarative/qml/parser/javascriptgrammar.cpp index b06fd32..b344366 100644 --- a/src/declarative/qml/parser/javascriptgrammar.cpp +++ b/src/declarative/qml/parser/javascriptgrammar.cpp @@ -118,458 +118,466 @@ const int JavaScriptGrammar:: rhs[] = { 1, 0, 1, 0, 1, 2}; const int JavaScriptGrammar::action_default [] = { - 8, 2, 0, 0, 4, 3, 0, 296, 0, 6, - 7, 5, 25, 223, 0, 27, 0, 224, 9, 1, - 0, 0, 26, 0, 283, 284, 0, 281, 0, 282, - 0, 285, 126, 193, 157, 165, 161, 201, 208, 105, - 177, 207, 215, 203, 153, 0, 204, 286, 0, 291, - 90, 205, 206, 211, 106, 169, 173, 94, 123, 104, - 109, 89, 143, 209, 130, 288, 287, 290, 212, 0, - 0, 0, 0, 36, 37, 0, 33, 0, 292, 30, - 0, 294, 48, 0, 0, 0, 0, 0, 31, 34, - 0, 0, 195, 237, 35, 0, 29, 0, 0, 32, - 0, 0, 0, 0, 0, 213, 214, 119, 202, 210, - 0, 0, 106, 125, 292, 30, 294, 108, 107, 0, - 0, 0, 121, 122, 120, 0, 293, 283, 0, 0, - 285, 0, 280, 0, 295, 0, 55, 56, 57, 58, - 83, 59, 84, 60, 61, 62, 63, 64, 65, 66, - 67, 52, 68, 69, 70, 71, 72, 54, 85, 73, - 53, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 86, 0, 50, 0, 0, 42, 0, 51, 41, 124, - 0, 154, 0, 0, 0, 0, 144, 0, 0, 0, - 0, 0, 0, 134, 0, 0, 0, 128, 129, 127, - 132, 136, 135, 133, 131, 146, 145, 147, 0, 162, - 0, 158, 0, 0, 100, 99, 88, 87, 0, 0, - 98, 194, 101, 0, 102, 0, 103, 97, 238, 239, - 279, 0, 190, 183, 181, 188, 189, 187, 186, 192, - 185, 184, 182, 191, 178, 0, 166, 0, 0, 170, - 0, 0, 174, 0, 0, 100, 92, 0, 91, 0, - 96, 289, 253, 0, 254, 255, 256, 249, 0, 250, - 251, 252, 277, 278, 110, 0, 0, 0, 0, 0, - 242, 243, 199, 197, 159, 167, 163, 179, 155, 200, - 0, 106, 171, 175, 148, 137, 0, 0, 156, 0, - 0, 0, 0, 149, 0, 0, 0, 0, 0, 141, - 139, 142, 140, 138, 151, 150, 152, 0, 164, 0, - 160, 0, 198, 106, 0, 180, 195, 196, 0, 195, - 0, 0, 245, 0, 0, 0, 247, 0, 168, 0, - 0, 172, 0, 0, 176, 235, 0, 227, 236, 230, - 0, 234, 0, 195, 228, 0, 195, 0, 0, 246, - 0, 0, 0, 248, 293, 0, 269, 0, 0, 0, - 241, 0, 240, 217, 220, 0, 56, 83, 59, 84, - 61, 62, 33, 66, 67, 30, 68, 71, 31, 34, - 195, 35, 74, 29, 76, 32, 78, 79, 80, 81, - 82, 86, 218, 216, 94, 95, 100, 0, 93, 0, - 257, 258, 0, 0, 0, 260, 265, 263, 266, 0, - 0, 264, 265, 0, 261, 0, 262, 219, 268, 0, - 219, 267, 0, 270, 271, 0, 219, 272, 273, 0, - 0, 274, 0, 0, 0, 275, 276, 112, 111, 0, - 0, 0, 244, 0, 0, 0, 259, 0, 49, 0, - 46, 48, 39, 0, 45, 40, 47, 44, 38, 0, - 43, 116, 114, 118, 115, 113, 117, 0, 18, 13, - 0, 14, 10, 0, 23, 0, 24, 0, 0, 22, - 30, 48, 16, 27, 0, 11, 0, 17, 0, 20, - 12, 0, 21, 30, 48, 15, 0, 19, 28, 232, - 225, 0, 233, 229, 0, 231, 221, 0, 222, 226}; + 8, 2, 0, 4, 3, 0, 0, 0, 6, 7, + 5, 25, 223, 0, 27, 0, 224, 9, 1, 0, + 0, 26, 0, 283, 284, 0, 281, 0, 282, 0, + 285, 126, 193, 157, 165, 161, 201, 208, 105, 177, + 207, 215, 203, 153, 0, 204, 286, 0, 291, 90, + 205, 206, 211, 106, 169, 173, 94, 123, 104, 109, + 89, 143, 209, 130, 288, 287, 290, 212, 0, 0, + 0, 0, 36, 37, 0, 33, 0, 292, 30, 0, + 294, 48, 0, 0, 0, 0, 0, 31, 34, 0, + 0, 195, 237, 35, 0, 29, 0, 0, 32, 0, + 0, 0, 0, 0, 213, 214, 119, 202, 210, 0, + 0, 106, 125, 292, 30, 294, 108, 107, 0, 0, + 0, 121, 122, 120, 0, 293, 283, 0, 0, 285, + 0, 280, 0, 295, 0, 55, 56, 57, 58, 83, + 59, 84, 60, 61, 62, 63, 64, 65, 66, 67, + 52, 68, 69, 70, 71, 72, 54, 85, 73, 53, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 86, + 0, 50, 0, 0, 42, 0, 51, 41, 124, 0, + 154, 0, 0, 0, 0, 144, 0, 0, 0, 0, + 0, 0, 134, 0, 0, 0, 128, 129, 127, 132, + 136, 135, 133, 131, 146, 145, 147, 0, 162, 0, + 158, 0, 0, 100, 99, 88, 87, 0, 0, 98, + 194, 101, 0, 102, 0, 103, 97, 238, 239, 279, + 0, 190, 183, 181, 188, 189, 187, 186, 192, 185, + 184, 182, 191, 178, 0, 166, 0, 0, 170, 0, + 0, 174, 0, 0, 100, 92, 0, 91, 0, 96, + 289, 253, 0, 254, 255, 256, 249, 0, 250, 251, + 252, 277, 278, 110, 0, 0, 0, 0, 0, 242, + 243, 199, 197, 159, 167, 163, 179, 155, 200, 0, + 106, 171, 175, 148, 137, 0, 0, 156, 0, 0, + 0, 0, 149, 0, 0, 0, 0, 0, 141, 139, + 142, 140, 138, 151, 150, 152, 0, 164, 0, 160, + 0, 198, 106, 0, 180, 195, 196, 0, 195, 0, + 0, 245, 0, 0, 0, 247, 0, 168, 0, 0, + 172, 0, 0, 176, 235, 0, 227, 236, 230, 0, + 234, 0, 195, 228, 0, 195, 0, 0, 246, 0, + 0, 0, 248, 293, 0, 269, 0, 0, 0, 241, + 0, 240, 217, 220, 0, 56, 83, 59, 84, 61, + 62, 33, 66, 67, 30, 68, 71, 31, 34, 195, + 35, 74, 29, 76, 32, 78, 79, 80, 81, 82, + 86, 218, 216, 94, 95, 100, 0, 93, 0, 257, + 258, 0, 0, 0, 260, 265, 263, 266, 0, 0, + 264, 265, 0, 261, 0, 262, 219, 268, 0, 219, + 267, 0, 270, 271, 0, 219, 272, 273, 0, 0, + 274, 0, 0, 0, 275, 276, 112, 111, 0, 0, + 0, 244, 0, 0, 0, 259, 0, 49, 0, 46, + 48, 39, 0, 45, 40, 47, 44, 38, 0, 43, + 116, 114, 118, 115, 113, 117, 0, 18, 13, 0, + 14, 10, 0, 23, 0, 24, 0, 0, 22, 30, + 48, 16, 27, 0, 11, 0, 17, 0, 20, 12, + 0, 21, 30, 48, 15, 0, 19, 28, 232, 225, + 0, 233, 229, 0, 231, 221, 0, 222, 226, 296}; const int JavaScriptGrammar::goto_default [] = { - 2, 6, 19, 1, 5, 4, 18, 494, 495, 478, - 20, 373, 45, 12, 108, 61, 459, 457, 135, 134, - 33, 458, 133, 136, 215, 57, 50, 223, 59, 39, - 222, 54, 60, 107, 58, 32, 64, 62, 294, 44, - 288, 34, 284, 36, 286, 35, 285, 55, 292, 56, - 293, 40, 287, 283, 324, 409, 289, 290, 37, 43, - 46, 51, 52, 41, 38, 63, 109, 53, 68, 105, - 106, 42, 375, 374, 21, 511, 510, 346, 347, 513, - 349, 512, 348, 415, 419, 422, 418, 417, 437, 438, - 26, 48, 125, 25, 47, 66, 65, 0}; + 6, 5, 18, 1, 4, 3, 17, 493, 494, 477, + 19, 372, 44, 11, 107, 60, 458, 456, 134, 133, + 32, 457, 132, 135, 214, 56, 49, 222, 58, 38, + 221, 53, 59, 106, 57, 31, 63, 61, 293, 43, + 287, 33, 283, 35, 285, 34, 284, 54, 291, 55, + 292, 39, 286, 282, 323, 408, 288, 289, 36, 42, + 45, 50, 51, 40, 37, 62, 108, 52, 67, 104, + 105, 41, 374, 373, 20, 510, 509, 345, 346, 512, + 348, 511, 347, 414, 418, 421, 417, 416, 436, 437, + 25, 47, 124, 24, 46, 65, 64, 0}; const int JavaScriptGrammar::action_index [] = { - -25, -88, 89, 70, -88, -15, 251, -88, 85, -88, - -88, -88, -88, -88, 56, 48, 46, -88, -88, 262, - 127, 72, -88, -17, -9, 20, -29, -88, -3, -88, - -6, 1289, 112, -88, 13, -44, -76, -88, -88, 212, - -88, -88, -88, -88, 253, 228, -88, -88, -10, -88, - -88, -88, -88, -88, 347, 53, 87, 154, 274, -88, - -88, -88, 287, -88, 191, -88, 1289, -88, -88, 199, - 194, 115, 557, -88, -88, 1205, -88, 66, 71, 77, - 63, 1541, 79, 557, 557, 557, 480, 557, -88, -88, - 557, 557, 557, -88, -88, 60, -88, 557, 557, -88, - 41, 557, 557, 42, 44, -88, -88, -88, -88, -88, - 557, 557, 83, 177, -24, -88, 1037, -88, -88, 557, - 557, 557, -88, -88, -88, 25, -88, -18, -58, -8, - 1289, -26, -88, 58, 64, 67, -88, -88, -88, -88, + -21, -88, 43, -88, -11, 246, 80, 75, -88, -88, + -88, -88, -88, 56, 66, 50, -88, -88, 238, 173, + 71, -88, 51, 27, 9, -30, -88, -2, -88, -7, + 1298, 132, -88, 23, -34, -73, -88, -88, 205, -88, + -88, -88, -88, 239, 203, -88, -88, -18, -88, -88, + -88, -88, -88, 489, 133, 111, 197, 177, -88, -88, + -88, 404, -88, 274, -88, 1298, -88, -88, 186, 181, + 89, 566, -88, -88, 1214, -88, 74, 68, 83, 69, + 1550, 87, 566, 566, 566, 379, 566, -88, -88, 566, + 566, 566, -88, -88, 52, -88, 566, 566, -88, 65, + 566, 566, 53, 58, -88, -88, -88, -88, -88, 566, + 566, 90, 172, 63, -88, 1046, -88, -88, 566, 566, + 566, -88, -88, -88, 40, -88, -17, -52, -28, 1298, + -26, -88, 24, 88, -12, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, - -88, 557, -88, 1121, 55, -88, 557, -88, -88, 175, - 557, 250, 557, 557, 557, 557, 404, 557, 557, 557, - 557, 557, 557, 158, 557, 557, 557, 80, 73, 81, - 197, 238, 220, 159, 167, 277, 404, 317, 557, 14, - 557, 90, 953, 557, 557, -88, -88, -88, 108, 557, - -88, -88, 65, 49, -88, 557, -88, -88, -88, -88, - -88, 557, -88, -88, -88, -88, -88, -88, -88, -88, - -88, -88, -88, -88, -88, 557, 45, 557, 557, 75, - 69, 557, -88, 953, 557, 557, -88, 153, -88, 6, - -88, -88, -88, 105, -88, -88, -88, -88, 111, -88, - -88, -88, -88, -88, -88, 21, 62, 557, 122, 95, - -88, -88, 634, -88, 39, -30, -59, -88, 259, 8, - -46, 417, 19, 125, 339, 188, -7, 557, 248, 557, - 557, 557, 557, 339, 557, 557, 557, 557, 557, 187, - 166, 192, 206, 232, 339, 339, 339, 557, -59, 557, - 39, 557, -88, 380, 557, -88, 557, -5, -60, 557, - -48, 1205, -88, 557, 142, 1205, -88, 557, -38, 557, - 557, 7, 0, 557, -88, 17, 84, 22, -88, -88, - 557, -88, 27, 557, -88, -13, 557, 52, 1205, -88, - 557, 102, 1205, -88, 28, 1205, -88, 557, 100, 1205, - 34, 1205, -88, -88, 1205, -19, 139, 9, 149, 82, - 557, 1205, 23, 1, 119, 36, 10, 480, 40, 120, - 869, 35, 5, 26, 557, 37, -1, 557, 29, 557, - 31, 33, -88, -88, 205, -88, 557, -11, -88, 78, - -88, -88, 557, 98, 38, -88, 47, -88, 54, 198, - 557, -88, 30, 32, -88, -4, -88, 1205, -88, 107, - 1205, -88, 213, -88, -88, 113, 1205, 43, -88, 18, - 24, -88, -21, -54, -20, -88, -88, -88, -88, 557, - 143, 1205, -88, 557, 110, 1205, -88, 118, 16, 788, - -88, 15, -88, 711, -88, -88, -88, -88, -88, 121, - -88, -88, -88, -88, -88, -88, -88, 298, -88, -88, - 284, -88, -88, 59, 76, 557, 74, 1373, 57, -88, - 147, 130, -88, 61, 97, -88, 96, -88, 50, -88, - -88, 1457, -88, 116, 99, -88, 109, -88, -88, 51, - -88, 190, -88, -88, 557, -88, -88, 68, -88, -88, + 566, -88, 1130, 32, -88, 566, -88, -88, 187, 566, + 233, 566, 566, 566, 566, 312, 566, 566, 566, 566, + 566, 566, 274, 566, 566, 566, 118, 131, 128, 160, + 180, 168, 200, 165, 322, 302, 404, 566, -8, 566, + 72, 962, 566, 566, -88, -88, -88, 106, 566, -88, + -88, 73, 59, -88, 566, -88, -88, -88, -88, -88, + 566, -88, -88, -88, -88, -88, -88, -88, -88, -88, + -88, -88, -88, -88, 566, 13, 566, 566, 133, 60, + 566, -88, 962, 566, 566, -88, 117, -88, 17, -88, + -88, -88, 92, -88, -88, -88, -88, 85, -88, -88, + -88, -88, -88, -88, 67, 70, 566, 104, 115, -88, + -88, 643, -88, 19, -29, -55, -88, 237, 8, -46, + 421, 20, 79, 339, 274, -4, 566, 227, 566, 566, + 566, 566, 257, 566, 566, 566, 566, 566, 274, 274, + 274, 274, 274, 263, 339, 339, 566, -75, 566, 3, + 566, -88, 489, 566, -88, 566, 47, -33, 566, -60, + 1214, -88, 566, 136, 1214, -88, 566, -35, 566, 566, + 7, 0, 566, -88, 1, 99, 2, -88, -88, 566, + -88, 28, 566, -88, 4, 566, 12, 1214, -88, 566, + 114, 1214, -88, 34, 1214, -88, 566, 110, 1214, 22, + 1214, -88, -88, 1214, -20, 152, 5, 162, 77, 566, + 1214, 41, 14, 84, 42, 11, 353, 38, 35, 801, + 25, 10, 33, 566, 44, 21, 566, 31, 566, 26, + 39, -88, -88, 194, -88, 566, -1, -88, 105, -88, + -88, 566, 95, 45, -88, 6, -88, 48, 211, 566, + -88, 36, 37, -88, -19, -88, 1214, -88, 109, 1214, + -88, 192, -88, -88, 120, 1214, 46, -88, 16, 30, + -88, 29, -54, -23, -88, -88, -88, -88, 566, 137, + 1214, -88, 566, 126, 1214, -88, 119, -6, 720, -88, + 15, -88, 878, -88, -88, -88, -88, -88, 96, -88, + -88, -88, -88, -88, -88, -88, 286, -88, -88, 248, + -88, -88, 54, 64, 566, 61, 1382, 55, -88, 171, + 123, -88, 49, 103, -88, 94, -88, 57, -88, -88, + 1466, -88, 116, 113, -88, 107, -88, -88, 76, -88, + 140, -88, -88, 566, -88, -88, 62, -88, -88, -88, - -98, -98, -98, -98, -98, 30, 13, -98, -98, -98, - -98, -98, -98, -98, -98, -98, -98, -98, -98, 87, + -98, -98, -98, -98, 13, 6, -98, -98, -98, -98, + -98, -98, -98, -98, -98, -98, -98, -98, 60, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, - -98, 83, -98, -98, -98, -98, -98, -98, -98, -98, + 62, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, - -98, -98, -98, -98, -43, -98, -98, -98, -98, -98, - -98, -98, -98, -98, -98, -98, 184, -98, -98, -98, - -98, -98, 113, -98, -98, -9, -98, -98, -98, -98, - -98, -98, -98, 42, 116, 112, 127, 146, -98, -98, - 151, 147, 40, -98, -98, -98, -98, 37, 89, -98, - -10, 90, 86, -98, -98, -98, -98, -98, -98, -98, - 77, 94, -98, -98, -98, -98, -98, -98, -98, 106, - 103, 98, -98, -98, -98, -98, -98, -47, -98, -98, - 253, -98, -98, -98, -98, -98, -98, -98, -98, -98, + -98, -98, -98, -32, -98, -98, -98, -98, -98, -98, + -98, -98, -98, -98, -98, 174, -98, -98, -98, -98, + -98, 63, -98, -98, -2, -98, -98, -98, -98, -98, + -98, -98, 51, 80, 83, 56, 99, -98, -98, 87, + 59, 48, -98, -98, -98, -98, 40, 113, -98, -17, + 139, 123, -98, -98, -98, -98, -98, -98, -98, 130, + 131, -98, -98, -98, -98, -98, -98, -98, 120, 117, + 112, -98, -98, -98, -98, -98, -60, -98, -98, 175, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, - -98, -7, -98, 0, -98, -98, -3, -98, -98, -98, - 136, -98, 117, 119, 132, 134, -98, 130, 49, 36, - 35, 61, 64, -98, 47, 46, 38, -98, -98, -98, - -98, -98, -98, -98, -98, -98, -98, -98, 59, -98, - 58, -98, 24, 32, 17, -98, -98, -98, -98, 21, - -98, -98, -98, -98, -98, 8, -98, -98, -98, -98, - -98, 4, -98, -98, -98, -98, -98, -98, -98, -98, - -98, -98, -98, -98, -98, 60, -98, 57, -19, -98, - -98, -17, -98, 118, 44, 133, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, - -98, -98, -98, -98, -98, -98, -98, 3, -98, -98, - -98, -98, 67, -98, -98, -98, -98, -98, -98, -98, - -98, -98, -98, -98, -98, -98, -98, 186, -98, 196, - 183, 177, 187, -98, 82, 76, 79, 96, 99, -98, - -98, -98, -98, -98, -98, -98, -98, 168, -98, 158, - -98, 156, -98, -98, 175, -98, 102, -98, -98, 104, - -98, 25, -98, 27, -98, 29, -98, 155, -98, 154, - 157, -98, -98, 167, -98, -98, -98, -98, -98, -98, - 193, -98, -48, 126, -98, -98, 128, -98, 15, -98, - 19, -98, 22, -98, -98, 23, -98, 20, -98, 18, - -98, 34, -98, -98, 53, -98, -98, -98, -98, -98, - 93, 52, -98, -98, -98, -98, -98, 81, -98, -98, - 45, -98, -98, -98, 43, -98, -35, 137, -98, 141, - -98, -98, -98, -98, -98, -98, 131, -98, -98, -98, - -98, -98, -8, -98, -98, -98, -98, -98, -77, -98, - 6, -98, -76, -98, -98, -98, -98, -52, -98, -98, - -51, -98, -98, -98, -98, -98, -98, -75, -98, -98, - -46, -98, -98, -98, -49, -98, -98, -98, -98, 7, - -98, 5, -98, -12, -98, 75, -98, -98, -98, -14, - -98, -11, -98, -13, -98, -98, -98, -98, -98, -98, - -98, -98, -98, -98, -98, -98, -98, 73, -98, -98, - 56, -98, -98, -98, -98, 41, -98, 39, -98, -98, - 50, 48, -98, 51, -98, -98, -98, -98, 66, -98, - -98, 31, -98, 16, 166, -98, -98, -98, -98, -98, - -98, -98, -98, -98, 26, -98, -98, -38, -98, -98}; + 33, -98, 35, -98, -98, 39, -98, -98, -98, 54, + -98, 64, 66, 67, 68, -98, 55, 52, 41, 71, + 93, 95, -98, 92, 86, 75, -98, -98, -98, -98, + -98, -98, -98, -98, -98, -98, -98, 69, -98, 78, + -98, 20, 32, 26, -98, -98, -98, -98, 8, -98, + -98, -98, -98, -98, 15, -98, -98, -98, -98, -98, + 31, -98, -98, -98, -98, -98, -98, -98, -98, -98, + -98, -98, -98, -98, 97, -98, 102, 34, -98, -98, + 38, -98, 47, 36, 42, -98, -98, -98, -98, -98, + -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, + -98, -98, -98, -98, -98, -98, 30, -98, -98, -98, + -98, 144, -98, -98, -98, -98, -98, -98, -98, -98, + -98, -98, -98, -98, -98, -98, 187, -98, 173, 170, + 176, 162, -98, 140, 137, 127, 103, 121, -98, -98, + -98, -98, -98, -98, -98, -98, 158, -98, 161, -98, + 185, -98, -98, 188, -98, 129, -98, -98, 135, -98, + 29, -98, 19, -98, 21, -98, 189, -98, 186, 179, + -98, -98, 160, -98, -98, -98, -98, -98, -98, 146, + -98, -52, 128, -98, -98, 124, -98, 22, -98, 24, + -98, 27, -98, -98, 28, -98, 25, -98, 23, -98, + 18, -98, -98, 53, -98, -98, -98, -98, -98, 136, + 50, -98, -98, -98, -98, -98, 110, -98, -98, 44, + -98, -98, -98, 43, -98, -11, 49, -98, 45, -98, + -98, -98, -98, -98, -98, 88, -98, -98, -98, -98, + -98, 37, -98, -98, -98, -98, -98, -84, -98, -6, + -98, -83, -98, -98, -98, -98, -62, -98, -98, -47, + -98, -98, -98, -98, -98, -98, -77, -98, -98, -42, + -98, -98, -98, -37, -98, -98, -98, -98, -10, -98, + -7, -98, 77, -98, 0, -98, -98, -98, 7, -98, + 1, -98, -1, -98, -98, -98, -98, -98, -98, -98, + -98, -98, -98, -98, -98, -98, 240, -98, -98, 73, + -98, -98, -98, -98, 12, -98, -3, -98, -98, -9, + 3, -98, 14, -98, -98, -98, -98, 57, -98, -98, + 4, -98, 5, 115, -98, -98, -98, -98, -98, -98, + -98, -98, -98, -13, -98, -98, -71, -98, -98, -98}; const int JavaScriptGrammar::action_info [] = { - 210, 329, 129, 219, 208, 126, 444, 343, 443, 337, - 317, 27, 331, 436, 180, 326, 321, 319, 317, 24, - 27, 337, 345, 460, 466, 130, 29, 31, 28, 132, - -64, 30, 436, -75, 350, 420, 403, 282, -223, 427, - 297, 412, -53, -52, -77, 230, 367, -72, 356, 408, - 371, 426, 420, 360, 442, 245, 345, 436, -224, 420, - 3, 127, 176, 440, 24, 171, 260, 449, 514, 453, - 3, 416, 173, 225, 436, 483, 251, 245, 449, 493, - 453, 477, 219, 485, 365, 23, 508, 460, 484, 7, - 210, 180, 352, 208, 477, 276, 412, 509, 277, 367, - 364, 509, 282, 501, 0, 498, 219, 460, 219, 227, - 219, 488, 358, 110, 430, 219, 219, 498, 219, 439, - 110, 110, 178, 365, 111, 117, 461, -54, 493, 219, - 219, 111, 111, 440, 487, 8, 118, 247, 460, 411, - 410, 248, 488, 273, 272, 353, 10, 9, 126, 477, - 219, 219, 110, 499, 365, -292, 281, 280, 414, 493, - 369, 219, 362, 111, 220, 507, 266, 265, 263, 253, - 455, 0, 271, 270, 462, 339, 273, 272, 268, 340, - 477, 470, 279, 194, 194, 195, 195, 119, 254, 119, - 255, 194, 194, 195, 195, 0, 196, 196, 517, 0, - 264, 262, 335, 451, 196, 196, 0, 0, 423, 258, - 269, 267, 194, 194, 195, 195, 194, 194, 195, 195, - 253, 219, 194, 268, 195, 196, 196, 212, 263, 196, - 196, 194, 120, 195, 120, 196, 219, 0, 121, 254, - 121, 406, 0, 0, 196, 194, 213, 195, 214, 0, - 0, 518, 516, 424, 0, 269, 267, 194, 196, 195, - 264, 262, 0, 194, 0, 195, 299, 300, 182, 183, - 196, 182, 183, 14, 434, 433, 196, 299, 300, 0, - 15, 0, 0, 0, 14, 0, 119, 0, 0, 229, - 228, 15, 0, 301, 302, 184, 185, 0, 184, 185, - 187, 188, 0, 0, 301, 302, 14, 0, 189, 190, - 187, 188, 191, 15, 192, 0, 0, 0, 189, 190, - 14, 0, 191, 17, 192, 0, 0, 15, 0, 0, - 0, 120, 13, 0, 17, 16, 0, 121, 0, 481, - 187, 188, 0, 13, 0, 0, 16, 0, 189, 190, - 232, 0, 191, 479, 192, 0, 17, 0, 0, 0, - 233, 0, 304, 305, 234, 13, 0, 0, 16, 0, - 17, 306, 0, 235, 307, 236, 308, 0, 0, 13, - 0, 0, 16, 232, 0, 0, 237, 0, 238, 117, - 0, 0, 0, 233, 0, 0, 239, 234, 0, 240, - 118, 0, 0, 0, 0, 241, 235, 0, 236, 0, - 0, 242, 0, 0, 0, 0, 0, 0, 0, 237, - 232, 238, 117, 0, 243, 0, 0, 187, 188, 239, - 233, 0, 240, 118, 234, 189, 190, 0, 241, 191, - 0, 192, 0, 235, 242, 236, 0, 0, 333, 0, - 0, 0, 0, 0, 0, 0, 237, 243, 238, 117, - 0, 0, 0, 0, 0, 0, 239, 0, 0, 240, - 118, 0, 0, 0, 0, 241, 0, 0, 0, 0, - 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 73, 74, 243, 0, 0, 0, 0, 0, - 0, 0, 114, 0, 0, 0, 0, 0, 0, 115, - 0, 0, 0, 116, 82, 0, 83, 0, 0, 0, - 0, 0, 0, 86, 0, 0, 0, 89, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 94, 0, 96, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 88, 99, - 76, 0, 0, 0, 0, 0, 0, 0, 72, 73, - 74, 0, 0, 0, 0, 0, 0, 0, 0, 114, - 0, 0, 0, 0, 0, 0, 115, 0, 0, 0, - 116, 82, 0, 83, 0, 0, 0, 84, 0, 85, - 86, 87, 0, 0, 89, 0, 0, 0, 90, 0, - 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 94, 0, 96, 0, 98, 0, 101, 0, - 102, 0, 0, 0, 0, 88, 99, 76, 0, 0, - 0, 0, 0, 0, 0, 72, 73, 74, 0, 0, - 0, 0, 0, 0, 0, 0, 114, 0, 0, 0, - 0, 0, 0, 115, 0, 0, 0, 116, 82, 0, - 83, 0, 0, 0, 84, 0, 85, 86, 87, 0, - 0, 89, 0, 0, 0, 90, 0, 91, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, - 0, 96, 0, 98, 0, 101, 296, 102, 0, 0, - 0, 0, 88, 99, 76, 0, 0, 0, 0, 0, - 0, 0, 72, 73, 74, 0, 0, 0, 0, 0, - 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, - 115, 0, 0, 0, 116, 82, 0, 83, 0, 0, - 0, 84, 0, 85, 86, 87, 0, 0, 89, 0, - 0, 0, 90, 0, 91, 0, 0, 465, 0, 0, - 0, 0, 0, 0, 0, 0, 94, 0, 96, 0, - 98, 0, 101, 0, 102, 0, 0, 0, 0, 88, - 99, 76, 0, 0, 0, 0, 0, 0, 0, 72, - 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, - 114, 0, 0, 0, 0, 0, 0, 115, 0, 0, - 0, 116, 82, 0, 83, 0, 0, 0, 84, 0, - 85, 86, 87, 0, 0, 89, 0, 0, 0, 90, - 0, 91, 0, 0, 468, 0, 0, 0, 0, 0, - 0, 0, 0, 94, 0, 96, 0, 98, 0, 101, - 0, 102, 0, 0, 0, 0, 88, 99, 76, 0, - 0, 0, 0, 0, 0, 0, -73, 0, 0, 0, - 72, 73, 74, 0, 0, 0, 0, 0, 0, 0, - 0, 114, 0, 0, 0, 0, 0, 0, 115, 0, - 0, 0, 116, 82, 0, 83, 0, 0, 0, 84, - 0, 85, 86, 87, 0, 0, 89, 0, 0, 0, - 90, 0, 91, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 94, 0, 96, 0, 98, 0, - 101, 0, 102, 0, 0, 0, 0, 88, 99, 76, - 0, 0, 0, 0, 0, 0, 0, 137, 138, 139, - 0, 0, 141, 143, 144, 0, 0, 145, 0, 146, - 0, 0, 0, 148, 149, 150, 0, 0, 0, 0, - 0, 0, 217, 152, 153, 154, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, + 330, 318, 465, 209, 296, 129, 443, 342, 128, 336, + 435, 419, 26, 316, 207, 325, 320, 27, 349, 316, + 296, 318, 336, 459, 179, 344, 30, 28, 328, 131, + 29, 170, -53, 359, -223, 402, 425, 229, 370, 175, + -75, 419, -54, 177, 426, -72, 411, 366, -64, -52, + 281, -77, 441, 419, 435, 218, 26, 344, 442, 407, + -224, 207, 448, 435, 2, 355, 439, 250, 209, 218, + 23, 484, 357, 179, 2, 452, 126, 259, 415, 482, + 519, 224, 476, 483, 507, 22, 492, 23, 411, 448, + 364, 508, 125, 513, 452, 459, 172, 363, 435, 476, + 508, 500, 0, 218, 218, 366, 276, 351, 7, 487, + 281, 497, 218, 125, 218, 497, 429, 218, 218, 226, + -292, 459, 218, 364, 0, 218, 438, 460, 0, 338, + 0, 459, 116, 339, 218, 244, 9, 8, 272, 271, + 439, 275, 492, 117, 218, 218, 270, 269, 516, 476, + 272, 271, 492, 265, 264, 413, 469, 0, 109, 498, + 352, 246, 219, 506, 278, 247, 410, 409, 109, 110, + 368, 109, 109, 257, 361, 461, 280, 279, 364, 110, + 486, 262, 110, 110, 118, 193, 454, 194, 487, 118, + 193, 267, 194, 193, 0, 194, 334, 450, 195, 118, + 218, 517, 515, 195, 476, 193, 195, 194, 0, 252, + 267, 218, 252, 263, 261, 262, 0, 0, 195, 0, + 211, 422, 0, 268, 266, 193, 0, 194, 253, 119, + 405, 253, 0, 254, 119, 120, 0, 0, 195, 212, + 120, 213, 268, 266, 119, 298, 299, 263, 261, 0, + 120, 181, 182, 433, 432, 298, 299, 181, 182, 0, + 13, 0, 0, 0, 228, 227, 423, 14, 13, 0, + 13, 0, 300, 301, 0, 14, 0, 14, 183, 184, + 303, 304, 300, 301, 183, 184, 303, 304, 0, 305, + 0, 0, 306, 0, 307, 305, 0, 0, 306, 193, + 307, 194, 0, 480, 0, 0, 0, 0, 13, 0, + 16, 0, 195, 0, 0, 14, 0, 0, 16, 12, + 16, 0, 15, 0, 0, 186, 187, 12, 0, 12, + 15, 0, 15, 188, 189, 186, 187, 190, 0, 191, + 0, 478, 0, 188, 189, 186, 187, 190, 0, 191, + 0, 0, 0, 188, 189, 0, 0, 190, 16, 191, + 0, 0, 303, 304, 0, 72, 73, 12, 0, 0, + 15, 305, 0, 0, 306, 113, 307, 0, 0, 0, + 0, 0, 114, 0, 0, 0, 115, 81, 0, 82, + 0, 72, 73, 0, 0, 0, 85, 0, 0, 0, + 88, 113, 0, 0, 0, 0, 0, 0, 114, 0, + 0, 0, 115, 81, 0, 82, 0, 0, 93, 0, + 95, 0, 85, 0, 231, 0, 88, 186, 187, 0, + 0, 87, 98, 75, 232, 188, 189, 0, 233, 190, + 0, 191, 0, 0, 93, 0, 95, 234, 0, 235, + 0, 0, 332, 0, 0, 0, 0, 87, 98, 75, + 236, 0, 237, 116, 0, 0, 0, 0, 0, 0, + 238, 0, 0, 239, 117, 0, 0, 0, 0, 240, + 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, + 0, 0, 231, 0, 0, 0, 0, 0, 242, 0, + 0, 0, 232, 0, 0, 0, 233, 0, 0, 0, + 0, 0, 0, 0, 0, 234, 0, 235, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, + 237, 116, 0, 0, 0, 0, 0, 0, 238, 0, + 0, 239, 117, 0, 0, 0, 0, 240, 0, 0, + 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 242, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 71, 72, 73, + 0, 0, 0, 0, 0, 0, 0, 0, 113, 0, + 0, 0, 0, 0, 0, 114, 0, 0, 0, 115, + 81, 0, 82, 0, 0, 0, 83, 0, 84, 85, + 86, 0, 0, 88, 0, 0, 0, 89, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 159, 0, 0, 0, 0, 0, 0, 161, - 162, 163, 0, 165, 166, 167, 168, 169, 170, 0, - 0, 156, 164, 147, 140, 142, 158, 0, 0, 0, - 0, 137, 138, 139, 0, 0, 141, 143, 144, 0, - 0, 145, 0, 146, 0, 0, 0, 148, 149, 150, - 0, 0, 0, 0, 0, 0, 151, 152, 153, 154, + 0, 93, 0, 95, 0, 97, 0, 100, 0, 101, + 0, 0, 0, 0, 87, 98, 75, 0, 0, 0, + 0, 0, 0, 0, 71, 72, 73, 0, 0, 0, + 0, 0, 0, 0, 0, 113, 0, 0, 0, 0, + 0, 0, 114, 0, 0, 0, 115, 81, 0, 82, + 0, 0, 0, 83, 0, 84, 85, 86, 0, 0, + 88, 0, 0, 0, 89, 0, 90, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, + 95, 0, 97, 0, 100, 295, 101, 0, 0, 0, + 0, 87, 98, 75, 0, 0, 0, 0, 0, 0, + 0, 71, 72, 73, 0, 0, 0, 0, 0, 0, + 0, 0, 113, 0, 0, 0, 0, 0, 0, 114, + 0, 0, 0, 115, 81, 0, 82, 0, 0, 0, + 83, 0, 84, 85, 86, 0, 0, 88, 0, 0, + 0, 89, 0, 90, 0, 0, 467, 0, 0, 0, + 0, 0, 0, 0, 0, 93, 0, 95, 0, 97, + 0, 100, 0, 101, 0, 0, 0, 0, 87, 98, + 75, 0, 0, 0, 0, 0, 0, 0, -73, 0, + 0, 0, 71, 72, 73, 0, 0, 0, 0, 0, + 0, 0, 0, 113, 0, 0, 0, 0, 0, 0, + 114, 0, 0, 0, 115, 81, 0, 82, 0, 0, + 0, 83, 0, 84, 85, 86, 0, 0, 88, 0, + 0, 0, 89, 0, 90, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 93, 0, 95, 0, + 97, 0, 100, 0, 101, 0, 0, 0, 0, 87, + 98, 75, 0, 0, 0, 0, 0, 0, 0, 71, + 72, 73, 0, 0, 0, 0, 0, 0, 0, 0, + 113, 0, 0, 0, 0, 0, 0, 114, 0, 0, + 0, 115, 81, 0, 82, 0, 0, 0, 83, 0, + 84, 85, 86, 0, 0, 88, 0, 0, 0, 89, + 0, 90, 0, 0, 464, 0, 0, 0, 0, 0, + 0, 0, 0, 93, 0, 95, 0, 97, 0, 100, + 0, 101, 0, 0, 0, 0, 87, 98, 75, 0, + 0, 0, 0, 0, 0, 0, 136, 137, 138, 0, + 0, 140, 142, 143, 0, 0, 144, 0, 145, 0, + 0, 0, 147, 148, 149, 0, 0, 0, 0, 0, + 0, 216, 151, 152, 153, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 155, 0, 0, 0, 157, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 159, 0, 0, 0, - 0, 0, 160, 161, 162, 163, 0, 165, 166, 167, - 168, 169, 170, 0, 0, 156, 164, 147, 140, 142, - 158, 0, 0, 0, 0, 137, 138, 139, 0, 0, - 141, 143, 144, 0, 0, 145, 0, 146, 0, 0, - 0, 148, 149, 150, 0, 0, 0, 0, 0, 0, - 151, 152, 153, 154, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 155, 0, 0, 0, 157, 0, - 0, 0, 0, 0, 0, 0, 175, 0, 0, 0, - 159, 0, 0, 0, 0, 0, 160, 161, 162, 163, - 0, 165, 166, 167, 168, 169, 170, 0, 0, 156, - 164, 147, 140, 142, 158, 0, 0, 0, 0, 69, - 0, 0, 0, 0, 70, 0, 72, 73, 74, 75, - 0, 0, 0, 0, 0, 0, 77, 114, 0, 0, - 0, 0, 0, 0, 79, 80, 0, 0, 81, 82, - 0, 83, 0, 0, 0, 84, 0, 85, 86, 87, - 0, 0, 89, 0, 0, 0, 90, 0, 91, 0, - 0, 0, 0, 0, 92, 0, 93, 0, 0, 0, - 94, 95, 96, 97, 98, 100, 101, 17, 102, 103, - 104, 0, 0, 88, 99, 76, 13, 71, 0, 0, - 0, 0, 0, 69, 0, 0, 0, 0, 70, 0, - 72, 73, 74, 75, 0, 0, 0, 0, 0, 0, - 77, 78, 0, 0, 0, 0, 0, 0, 79, 80, - 0, 0, 81, 82, 0, 83, 0, 0, 0, 84, - 0, 85, 86, 87, 0, 0, 89, 0, 0, 0, - 90, 0, 91, 0, 0, 0, 0, 0, 92, 0, - 93, 0, 0, 0, 94, 95, 96, 97, 98, 100, - 101, 17, 102, 103, 104, 0, 0, 88, 99, 76, - 13, 71, 0, 0, 0, 0, 0, 69, 0, 0, - 0, 0, 70, 0, 72, 73, 74, 75, 0, 0, - 0, 0, 0, 0, 77, 114, 0, 0, 0, 0, - 0, 0, 490, 80, 0, 0, 81, 491, 0, 83, - 0, 0, 0, 84, 0, 85, 86, 87, 0, 0, - 89, 0, 0, 0, 90, 0, 91, 0, 0, 0, - 0, 0, 92, 0, 93, 0, 0, 0, 94, 95, - 96, 97, 98, 100, 101, 17, 102, 103, 104, 0, - 0, 88, 99, 76, 13, 71, 0, 0, 0, 0, - 0, 69, 0, 0, 0, 0, 70, 0, 72, 73, - 74, 75, 0, 0, 0, 0, 0, 0, 77, 114, - 0, 0, 0, 0, 0, 0, 503, 80, 0, 0, - 81, 504, 0, 83, 0, 0, 0, 84, 0, 85, - 86, 87, 0, 0, 89, 0, 0, 0, 90, 0, - 91, 0, 0, 0, 0, 0, 92, 0, 93, 0, - 0, 0, 94, 95, 96, 97, 98, 100, 101, 17, - 102, 103, 104, 0, 0, 88, 99, 76, 13, 71, - 0, 0, 0, 0, 0, 376, 138, 139, 0, 0, - 378, 143, 380, 73, 74, 381, 0, 146, 0, 0, - 0, 148, 383, 384, 0, 0, 0, 0, 0, 0, - 385, 386, 153, 154, 81, 82, 0, 83, 0, 0, - 0, 84, 0, 85, 387, 87, 0, 0, 389, 0, - 0, 0, 90, 0, 91, 0, -219, 0, 0, 0, - 390, 0, 93, 0, 0, 0, 391, 392, 393, 394, - 98, 396, 397, 398, 399, 400, 401, 0, 0, 388, - 395, 382, 377, 379, 158, 0, 0, 0, 0, + 0, 158, 0, 0, 0, 0, 0, 0, 160, 161, + 162, 0, 164, 165, 166, 167, 168, 169, 0, 0, + 155, 163, 146, 139, 141, 157, 0, 0, 0, 0, + 136, 137, 138, 0, 0, 140, 142, 143, 0, 0, + 144, 0, 145, 0, 0, 0, 147, 148, 149, 0, + 0, 0, 0, 0, 0, 150, 151, 152, 153, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 154, + 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 158, 0, 0, 0, 0, + 0, 159, 160, 161, 162, 0, 164, 165, 166, 167, + 168, 169, 0, 0, 155, 163, 146, 139, 141, 157, + 0, 0, 0, 0, 136, 137, 138, 0, 0, 140, + 142, 143, 0, 0, 144, 0, 145, 0, 0, 0, + 147, 148, 149, 0, 0, 0, 0, 0, 0, 150, + 151, 152, 153, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 154, 0, 0, 0, 156, 0, 0, + 0, 0, 0, 0, 0, 174, 0, 0, 0, 158, + 0, 0, 0, 0, 0, 159, 160, 161, 162, 0, + 164, 165, 166, 167, 168, 169, 0, 0, 155, 163, + 146, 139, 141, 157, 0, 0, 0, 0, 68, 0, + 0, 0, 0, 69, 0, 71, 72, 73, 74, 0, + 0, 0, 0, 0, 0, 76, 113, 0, 0, 0, + 0, 0, 0, 78, 79, 0, 0, 80, 81, 0, + 82, 0, 0, 0, 83, 0, 84, 85, 86, 0, + 0, 88, 0, 0, 0, 89, 0, 90, 0, 0, + 0, 0, 0, 91, 0, 92, 0, 0, 0, 93, + 94, 95, 96, 97, 99, 100, 16, 101, 102, 103, + 0, 0, 87, 98, 75, 12, 70, 0, 0, 0, + 0, 0, 68, 0, 0, 0, 0, 69, 0, 71, + 72, 73, 74, 0, 0, 0, 0, 0, 0, 76, + 77, 0, 0, 0, 0, 0, 0, 78, 79, 0, + 0, 80, 81, 0, 82, 0, 0, 0, 83, 0, + 84, 85, 86, 0, 0, 88, 0, 0, 0, 89, + 0, 90, 0, 0, 0, 0, 0, 91, 0, 92, + 0, 0, 0, 93, 94, 95, 96, 97, 99, 100, + 16, 101, 102, 103, 0, 0, 87, 98, 75, 12, + 70, 0, 0, 0, 0, 0, 68, 0, 0, 0, + 0, 69, 0, 71, 72, 73, 74, 0, 0, 0, + 0, 0, 0, 76, 113, 0, 0, 0, 0, 0, + 0, 489, 79, 0, 0, 80, 490, 0, 82, 0, + 0, 0, 83, 0, 84, 85, 86, 0, 0, 88, + 0, 0, 0, 89, 0, 90, 0, 0, 0, 0, + 0, 91, 0, 92, 0, 0, 0, 93, 94, 95, + 96, 97, 99, 100, 16, 101, 102, 103, 0, 0, + 87, 98, 75, 12, 70, 0, 0, 0, 0, 0, + 68, 0, 0, 0, 0, 69, 0, 71, 72, 73, + 74, 0, 0, 0, 0, 0, 0, 76, 113, 0, + 0, 0, 0, 0, 0, 502, 79, 0, 0, 80, + 503, 0, 82, 0, 0, 0, 83, 0, 84, 85, + 86, 0, 0, 88, 0, 0, 0, 89, 0, 90, + 0, 0, 0, 0, 0, 91, 0, 92, 0, 0, + 0, 93, 94, 95, 96, 97, 99, 100, 16, 101, + 102, 103, 0, 0, 87, 98, 75, 12, 70, 0, + 0, 0, 0, 0, 375, 137, 138, 0, 0, 377, + 142, 379, 72, 73, 380, 0, 145, 0, 0, 0, + 147, 382, 383, 0, 0, 0, 0, 0, 0, 384, + 385, 152, 153, 80, 81, 0, 82, 0, 0, 0, + 83, 0, 84, 386, 86, 0, 0, 388, 0, 0, + 0, 89, 0, 90, 0, -219, 0, 0, 0, 389, + 0, 92, 0, 0, 0, 390, 391, 392, 393, 97, + 395, 396, 397, 398, 399, 400, 0, 0, 387, 394, + 381, 376, 378, 157, 0, 0, 0, 0, - 454, 250, 275, 252, 413, 463, 467, 464, 425, 445, - 421, 231, 446, 172, 441, 278, 452, 177, 429, 450, - 428, 431, 174, 435, 244, 505, 359, 22, 226, 370, - 354, 361, 368, 363, 366, 11, 332, 224, 519, 334, - 336, 221, 502, 128, 218, 372, 515, 216, 435, 432, - 489, 0, 327, 486, 469, 432, 257, 327, 496, 492, - 497, 0, 482, 275, 402, 0, 112, 112, 0, 112, - 22, 202, 201, 199, 500, 480, 496, 112, 112, 0, - 112, 198, 197, 0, 0, 200, 456, 22, 112, 112, - 112, 112, 112, 482, 67, 112, 49, 203, 291, 211, - 204, 22, 209, 295, 249, 246, 404, 112, 112, 405, - 112, 113, 310, 112, 327, 311, 327, 112, 309, 448, - 112, 112, 476, 447, 112, 112, 274, 112, 179, 112, - 112, 124, 312, 0, 112, 313, 123, 112, 327, 122, - 327, 216, 256, 112, 112, 472, 274, 112, 112, 471, - 112, 224, 404, 224, 186, 405, 205, 328, 407, 330, - 259, 112, 0, 112, 0, 112, 193, 112, 112, 206, - 447, 207, 112, 506, 448, 181, 496, 112, 112, 473, - 475, 355, 112, 357, 474, 112, 112, 323, 323, 112, - 295, 295, 295, 295, 295, 67, 0, 49, 323, 112, - 320, 338, 341, 295, 295, 0, 323, 0, 112, 322, - 342, 295, 318, 295, 112, 315, 0, 112, 112, 295, - 344, 314, 295, 295, 323, 316, 298, 112, 325, 295, - 0, 0, 295, 0, 303, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 351, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 0, 49, 0, 0, 0, + 491, 424, 449, 420, 451, 518, 428, 514, 488, 274, + 427, 455, 440, 495, 504, 501, 445, 462, 10, 463, + 21, 444, 230, 496, 485, 430, 353, 466, 220, 371, + 127, 333, 335, 358, 369, 225, 360, 367, 362, 365, + 331, 434, 277, 215, 217, 0, 223, 434, 256, 412, + 0, 243, 431, 171, 249, 431, 326, 173, 251, 176, + 326, 274, 223, 468, 401, 499, 481, 495, 0, 258, + 215, 255, 111, 66, 21, 48, 111, 200, 447, 481, + 111, 403, 446, 111, 404, 111, 111, 21, 199, 453, + 111, 192, 474, 180, 111, 111, 273, 111, 111, 111, + 111, 185, 111, 204, 205, 206, 111, 201, 223, 111, + 198, 111, 208, 470, 111, 406, 471, 111, 111, 210, + 473, 197, 505, 111, 111, 495, 111, 196, 111, 202, + 111, 203, 472, 111, 111, 403, 326, 0, 404, 311, + 326, 326, 245, 111, 111, 123, 475, 326, 111, 248, + 122, 111, 111, 121, 111, 0, 447, 312, 111, 0, + 0, 111, 111, 310, 112, 178, 0, 111, 111, 273, + 111, 111, 446, 309, 0, 290, 308, 322, 0, 356, + 294, 0, 294, 354, 327, 66, 66, 48, 48, 111, + 329, 322, 111, 111, 294, 0, 294, 294, 294, 350, + 315, 111, 317, 319, 111, 0, 294, 111, 313, 294, + 322, 302, 294, 343, 314, 294, 322, 111, 111, 322, + 111, 294, 294, 294, 294, 294, 0, 297, 0, 0, + 0, 0, 341, 0, 340, 337, 0, 0, 321, 0, + 0, 324, 479, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 130, 0, 0, 0, + 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 131, 0, 0, 0, 0, 0, - 0}; + 0, 0, 0, 0, 0, 0, 0, 0}; const int JavaScriptGrammar::action_check [] = { - 76, 61, 60, 8, 48, 29, 60, 7, 29, 2, - 48, 29, 60, 33, 1, 61, 8, 76, 48, 36, - 29, 2, 29, 8, 8, 33, 29, 33, 8, 55, - 7, 60, 33, 7, 17, 5, 55, 36, 29, 7, - 1, 36, 7, 7, 7, 55, 36, 7, 61, 60, - 16, 55, 5, 31, 36, 2, 29, 33, 29, 5, - 85, 36, 7, 20, 36, 7, 60, 36, 17, 36, - 85, 33, 8, 8, 33, 29, 7, 2, 36, 29, - 36, 33, 8, 7, 7, 29, 29, 8, 29, 0, - 76, 1, 8, 48, 33, 74, 36, 29, 36, 36, - 29, 29, 36, 7, -1, 8, 8, 8, 8, 60, - 8, 15, 60, 40, 7, 8, 8, 8, 8, 6, - 40, 40, 55, 7, 51, 42, 8, 7, 29, 8, - 8, 51, 51, 20, 7, 65, 53, 50, 8, 61, - 62, 54, 15, 61, 62, 61, 61, 62, 29, 33, - 8, 8, 40, 56, 7, 36, 61, 62, 60, 29, - 60, 8, 60, 51, 56, 56, 61, 62, 29, 15, - 60, -1, 61, 62, 56, 50, 61, 62, 29, 54, - 33, 60, 60, 25, 25, 27, 27, 12, 34, 12, - 36, 25, 25, 27, 27, -1, 38, 38, 8, -1, - 61, 62, 60, 60, 38, 38, -1, -1, 10, 56, - 61, 62, 25, 25, 27, 27, 25, 25, 27, 27, - 15, 8, 25, 29, 27, 38, 38, 15, 29, 38, - 38, 25, 57, 27, 57, 38, 8, -1, 63, 34, - 63, 36, -1, -1, 38, 25, 34, 27, 36, -1, - -1, 61, 62, 55, -1, 61, 62, 25, 38, 27, - 61, 62, -1, 25, -1, 27, 18, 19, 18, 19, - 38, 18, 19, 22, 61, 62, 38, 18, 19, -1, - 29, -1, -1, -1, 22, -1, 12, -1, -1, 61, - 62, 29, -1, 45, 46, 45, 46, -1, 45, 46, - 23, 24, -1, -1, 45, 46, 22, -1, 31, 32, - 23, 24, 35, 29, 37, -1, -1, -1, 31, 32, - 22, -1, 35, 72, 37, -1, -1, 29, -1, -1, - -1, 57, 81, -1, 72, 84, -1, 63, -1, 55, - 23, 24, -1, 81, -1, -1, 84, -1, 31, 32, - 3, -1, 35, 55, 37, -1, 72, -1, -1, -1, - 13, -1, 23, 24, 17, 81, -1, -1, 84, -1, - 72, 32, -1, 26, 35, 28, 37, -1, -1, 81, - -1, -1, 84, 3, -1, -1, 39, -1, 41, 42, - -1, -1, -1, 13, -1, -1, 49, 17, -1, 52, - 53, -1, -1, -1, -1, 58, 26, -1, 28, -1, - -1, 64, -1, -1, -1, -1, -1, -1, -1, 39, - 3, 41, 42, -1, 77, -1, -1, 23, 24, 49, - 13, -1, 52, 53, 17, 31, 32, -1, 58, 35, - -1, 37, -1, 26, 64, 28, -1, -1, 31, -1, - -1, -1, -1, -1, -1, -1, 39, 77, 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, 12, 13, 77, -1, -1, -1, -1, -1, + 60, 76, 8, 76, 1, 33, 60, 7, 60, 2, + 33, 5, 29, 48, 48, 61, 8, 8, 17, 48, + 1, 76, 2, 8, 1, 29, 33, 29, 61, 55, + 60, 7, 7, 31, 29, 55, 55, 55, 16, 7, + 7, 5, 7, 55, 7, 7, 36, 36, 7, 7, + 36, 7, 36, 5, 33, 8, 29, 29, 29, 60, + 29, 48, 36, 33, 85, 61, 20, 7, 76, 8, + 36, 7, 60, 1, 85, 36, 36, 60, 33, 29, + 0, 8, 33, 29, 29, 29, 29, 36, 36, 36, + 7, 29, 29, 17, 36, 8, 8, 29, 33, 33, + 29, 7, -1, 8, 8, 36, 36, 8, 65, 15, + 36, 8, 8, 29, 8, 8, 7, 8, 8, 60, + 36, 8, 8, 7, -1, 8, 6, 8, -1, 50, + -1, 8, 42, 54, 8, 2, 61, 62, 61, 62, + 20, 74, 29, 53, 8, 8, 61, 62, 8, 33, + 61, 62, 29, 61, 62, 60, 60, -1, 40, 56, + 61, 50, 56, 56, 60, 54, 61, 62, 40, 51, + 60, 40, 40, 56, 60, 56, 61, 62, 7, 51, + 7, 29, 51, 51, 12, 25, 60, 27, 15, 12, + 25, 29, 27, 25, -1, 27, 60, 60, 38, 12, + 8, 61, 62, 38, 33, 25, 38, 27, -1, 15, + 29, 8, 15, 61, 62, 29, -1, -1, 38, -1, + 15, 10, -1, 61, 62, 25, -1, 27, 34, 57, + 36, 34, -1, 36, 57, 63, -1, -1, 38, 34, + 63, 36, 61, 62, 57, 18, 19, 61, 62, -1, + 63, 18, 19, 61, 62, 18, 19, 18, 19, -1, + 22, -1, -1, -1, 61, 62, 55, 29, 22, -1, + 22, -1, 45, 46, -1, 29, -1, 29, 45, 46, + 23, 24, 45, 46, 45, 46, 23, 24, -1, 32, + -1, -1, 35, -1, 37, 32, -1, -1, 35, 25, + 37, 27, -1, 55, -1, -1, -1, -1, 22, -1, + 72, -1, 38, -1, -1, 29, -1, -1, 72, 81, + 72, -1, 84, -1, -1, 23, 24, 81, -1, 81, + 84, -1, 84, 31, 32, 23, 24, 35, -1, 37, + -1, 55, -1, 31, 32, 23, 24, 35, -1, 37, + -1, -1, -1, 31, 32, -1, -1, 35, 72, 37, + -1, -1, 23, 24, -1, 12, 13, 81, -1, -1, + 84, 32, -1, -1, 35, 22, 37, -1, -1, -1, + -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, + -1, 12, 13, -1, -1, -1, 43, -1, -1, -1, + 47, 22, -1, -1, -1, -1, -1, -1, 29, -1, + -1, -1, 33, 34, -1, 36, -1, -1, 65, -1, + 67, -1, 43, -1, 3, -1, 47, 23, 24, -1, + -1, 78, 79, 80, 13, 31, 32, -1, 17, 35, + -1, 37, -1, -1, 65, -1, 67, 26, -1, 28, + -1, -1, 31, -1, -1, -1, -1, 78, 79, 80, + 39, -1, 41, 42, -1, -1, -1, -1, -1, -1, + 49, -1, -1, 52, 53, -1, -1, -1, -1, 58, + -1, -1, -1, -1, -1, 64, -1, -1, -1, -1, + -1, -1, 3, -1, -1, -1, -1, -1, 77, -1, + -1, -1, 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, 77, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 11, 12, 13, + -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, + -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, + 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, + 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 65, -1, 67, -1, 69, -1, 71, -1, 73, + -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, + -1, -1, -1, -1, 11, 12, 13, -1, -1, -1, + -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, + -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, + -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, + 47, -1, -1, -1, 51, -1, 53, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, + 67, -1, 69, -1, 71, 72, 73, -1, -1, -1, + -1, 78, 79, 80, -1, -1, -1, -1, -1, -1, + -1, 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, - -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, -1, 67, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 78, 79, - 80, -1, -1, -1, -1, -1, -1, -1, 11, 12, - 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, - -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, - 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, - 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, - 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 65, -1, 67, -1, 69, -1, 71, -1, - 73, -1, -1, -1, -1, 78, 79, 80, -1, -1, - -1, -1, -1, -1, -1, 11, 12, 13, -1, -1, - -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, - -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, - 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, - -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, - -1, 67, -1, 69, -1, 71, 72, 73, -1, -1, - -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, + 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, + -1, 51, -1, 53, -1, -1, 56, -1, -1, -1, + -1, -1, -1, -1, -1, 65, -1, 67, -1, 69, + -1, 71, -1, 73, -1, -1, -1, -1, 78, 79, + 80, -1, -1, -1, -1, -1, -1, -1, 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, 51, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, 67, -1, 69, -1, 71, -1, 73, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, -1, -1, 11, @@ -580,117 +588,107 @@ const int JavaScriptGrammar::action_check [] = { -1, 53, -1, -1, 56, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, 67, -1, 69, -1, 71, -1, 73, -1, -1, -1, -1, 78, 79, 80, -1, - -1, -1, -1, -1, -1, -1, 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, -1, 67, -1, 69, -1, - 71, -1, 73, -1, -1, -1, -1, 78, 79, 80, - -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, - -1, -1, 9, 10, 11, -1, -1, 14, -1, 16, - -1, -1, -1, 20, 21, 22, -1, -1, -1, -1, - -1, -1, 29, 30, 31, 32, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, + -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, -1, 59, -1, -1, -1, -1, -1, -1, 66, - 67, 68, -1, 70, 71, 72, 73, 74, 75, -1, - -1, 78, 79, 80, 81, 82, 83, -1, -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, -1, 70, 71, 72, - 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, - 83, -1, -1, -1, -1, 4, 5, 6, -1, -1, - 9, 10, 11, -1, -1, 14, -1, 16, -1, -1, - -1, 20, 21, 22, -1, -1, -1, -1, -1, -1, - 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 43, -1, -1, -1, 47, -1, - -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, - 59, -1, -1, -1, -1, -1, 65, 66, 67, 68, - -1, 70, 71, 72, 73, 74, 75, -1, -1, 78, - 79, 80, 81, 82, 83, -1, -1, -1, -1, 4, - -1, -1, -1, -1, 9, -1, 11, 12, 13, 14, - -1, -1, -1, -1, -1, -1, 21, 22, -1, -1, - -1, -1, -1, -1, 29, 30, -1, -1, 33, 34, - -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, - -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, - -1, -1, -1, -1, 59, -1, 61, -1, -1, -1, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, -1, -1, 78, 79, 80, 81, 82, -1, -1, - -1, -1, -1, 4, -1, -1, -1, -1, 9, -1, - 11, 12, 13, 14, -1, -1, -1, -1, -1, -1, - 21, 22, -1, -1, -1, -1, -1, -1, 29, 30, - -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, - -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, - 51, -1, 53, -1, -1, -1, -1, -1, 59, -1, - 61, -1, -1, -1, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, - 81, 82, -1, -1, -1, -1, -1, 4, -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, -1, - -1, 78, 79, 80, 81, 82, -1, -1, -1, -1, - -1, 4, -1, -1, -1, -1, 9, -1, 11, 12, - 13, 14, -1, -1, -1, -1, -1, -1, 21, 22, - -1, -1, -1, -1, -1, -1, 29, 30, -1, -1, - 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, - 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, - 53, -1, -1, -1, -1, -1, 59, -1, 61, -1, - -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, -1, -1, 78, 79, 80, 81, 82, - -1, -1, -1, -1, -1, 4, 5, 6, -1, -1, - 9, 10, 11, 12, 13, 14, -1, 16, -1, -1, - -1, 20, 21, 22, -1, -1, -1, -1, -1, -1, - 29, 30, 31, 32, 33, 34, -1, 36, -1, -1, - -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, - -1, -1, 51, -1, 53, -1, 55, -1, -1, -1, - 59, -1, 61, -1, -1, -1, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, -1, -1, 78, - 79, 80, 81, 82, 83, -1, -1, -1, -1, + -1, 59, -1, -1, -1, -1, -1, -1, 66, 67, + 68, -1, 70, 71, 72, 73, 74, 75, -1, -1, + 78, 79, 80, 81, 82, 83, -1, -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, -1, 70, 71, 72, 73, + 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, + -1, -1, -1, -1, 4, 5, 6, -1, -1, 9, + 10, 11, -1, -1, 14, -1, 16, -1, -1, -1, + 20, 21, 22, -1, -1, -1, -1, -1, -1, 29, + 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 43, -1, -1, -1, 47, -1, -1, + -1, -1, -1, -1, -1, 55, -1, -1, -1, 59, + -1, -1, -1, -1, -1, 65, 66, 67, 68, -1, + 70, 71, 72, 73, 74, 75, -1, -1, 78, 79, + 80, 81, 82, 83, -1, -1, -1, -1, 4, -1, + -1, -1, -1, 9, -1, 11, 12, 13, 14, -1, + -1, -1, -1, -1, -1, 21, 22, -1, -1, -1, + -1, -1, -1, 29, 30, -1, -1, 33, 34, -1, + 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, + -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, + -1, -1, -1, 59, -1, 61, -1, -1, -1, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + -1, -1, 78, 79, 80, 81, 82, -1, -1, -1, + -1, -1, 4, -1, -1, -1, -1, 9, -1, 11, + 12, 13, 14, -1, -1, -1, -1, -1, -1, 21, + 22, -1, -1, -1, -1, -1, -1, 29, 30, -1, + -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, + 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, + -1, 53, -1, -1, -1, -1, -1, 59, -1, 61, + -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, -1, -1, 78, 79, 80, 81, + 82, -1, -1, -1, -1, -1, 4, -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, -1, -1, + 78, 79, 80, 81, 82, -1, -1, -1, -1, -1, + 4, -1, -1, -1, -1, 9, -1, 11, 12, 13, + 14, -1, -1, -1, -1, -1, -1, 21, 22, -1, + -1, -1, -1, -1, -1, 29, 30, -1, -1, 33, + 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, + 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, + -1, -1, -1, -1, -1, 59, -1, 61, -1, -1, + -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, -1, -1, 78, 79, 80, 81, 82, -1, + -1, -1, -1, -1, 4, 5, 6, -1, -1, 9, + 10, 11, 12, 13, 14, -1, 16, -1, -1, -1, + 20, 21, 22, -1, -1, -1, -1, -1, -1, 29, + 30, 31, 32, 33, 34, -1, 36, -1, -1, -1, + 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, + -1, 51, -1, 53, -1, 55, -1, -1, -1, 59, + -1, 61, -1, -1, -1, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, -1, -1, 78, 79, + 80, 81, 82, 83, -1, -1, -1, -1, - 12, 20, 11, 20, 12, 16, 20, 20, 84, 58, - 87, 54, 58, 20, 89, 12, 11, 20, 12, 12, - 72, 72, 22, 58, 20, 9, 11, 14, 20, 11, - 78, 12, 12, 11, 11, 5, 11, 20, 76, 12, - 11, 20, 11, 90, 12, 11, 20, 23, 58, 12, - 11, -1, 12, 12, 12, 12, 12, 12, 10, 9, - 9, -1, 6, 11, 11, -1, 31, 31, -1, 31, - 14, 36, 36, 35, 8, 2, 10, 31, 31, -1, - 31, 35, 35, -1, -1, 36, 11, 14, 31, 31, - 31, 31, 31, 6, 11, 31, 13, 36, 31, 41, - 36, 14, 43, 36, 47, 45, 25, 31, 31, 28, - 31, 34, 36, 31, 12, 36, 12, 31, 36, 33, - 31, 31, 33, 33, 31, 31, 33, 31, 34, 31, - 31, 33, 36, -1, 31, 36, 33, 31, 12, 33, - 12, 23, 24, 31, 31, 33, 33, 31, 31, 33, - 31, 20, 25, 20, 37, 28, 37, 55, 27, 55, - 27, 31, -1, 31, -1, 31, 36, 31, 31, 37, - 33, 37, 31, 7, 33, 39, 10, 31, 31, 33, - 33, 55, 31, 55, 33, 31, 31, 31, 31, 31, - 36, 36, 36, 36, 36, 11, -1, 13, 31, 31, - 42, 46, 48, 36, 36, -1, 31, -1, 31, 53, - 53, 36, 44, 36, 31, 38, -1, 31, 31, 36, - 53, 38, 36, 36, 31, 38, 40, 31, 53, 36, - -1, -1, 36, -1, 38, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 53, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 11, -1, 13, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 9, 84, 12, 87, 11, 76, 12, 20, 11, 11, + 72, 11, 89, 10, 9, 11, 58, 16, 5, 20, + 14, 58, 54, 9, 12, 72, 78, 20, 20, 11, + 90, 12, 11, 11, 11, 20, 12, 12, 11, 11, + 11, 58, 12, 23, 12, -1, 20, 58, 12, 12, + -1, 20, 12, 20, 20, 12, 12, 22, 20, 20, + 12, 11, 20, 12, 11, 8, 6, 10, -1, 27, + 23, 24, 31, 11, 14, 13, 31, 36, 33, 6, + 31, 25, 33, 31, 28, 31, 31, 14, 36, 12, + 31, 36, 33, 39, 31, 31, 33, 31, 31, 31, + 31, 37, 31, 37, 37, 37, 31, 36, 20, 31, + 35, 31, 43, 33, 31, 27, 33, 31, 31, 41, + 33, 35, 7, 31, 31, 10, 31, 35, 31, 36, + 31, 36, 33, 31, 31, 25, 12, -1, 28, 36, + 12, 12, 45, 31, 31, 33, 33, 12, 31, 47, + 33, 31, 31, 33, 31, -1, 33, 36, 31, -1, + -1, 31, 31, 36, 34, 34, -1, 31, 31, 33, + 31, 31, 33, 36, -1, 31, 36, 31, -1, 55, + 36, -1, 36, 55, 55, 11, 11, 13, 13, 31, + 55, 31, 31, 31, 36, -1, 36, 36, 36, 53, + 38, 31, 44, 42, 31, -1, 36, 31, 38, 36, + 31, 38, 36, 53, 38, 36, 31, 31, 31, 31, + 31, 36, 36, 36, 36, 36, -1, 40, -1, -1, + -1, -1, 53, -1, 48, 46, -1, -1, 53, -1, + -1, 53, 2, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 91, -1, -1, -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, - -1}; + -1, -1, -1, -1, -1, -1, -1, -1}; diff --git a/src/declarative/qml/parser/javascriptgrammar_p.h b/src/declarative/qml/parser/javascriptgrammar_p.h index 490acb2..c35c56e 100644 --- a/src/declarative/qml/parser/javascriptgrammar_p.h +++ b/src/declarative/qml/parser/javascriptgrammar_p.h @@ -147,15 +147,15 @@ public: T_XOR = 76, T_XOR_EQ = 77, - ACCEPT_STATE = 7, + ACCEPT_STATE = 519, RULE_COUNT = 296, STATE_COUNT = 520, TERMINAL_COUNT = 88, NON_TERMINAL_COUNT = 98, GOTO_INDEX_OFFSET = 520, - GOTO_INFO_OFFSET = 1629, - GOTO_CHECK_OFFSET = 1629 + GOTO_INFO_OFFSET = 1638, + GOTO_CHECK_OFFSET = 1638 }; static const char *const spell []; diff --git a/src/declarative/qml/parser/javascriptparser.cpp b/src/declarative/qml/parser/javascriptparser.cpp index 6221386..03bbc13 100644 --- a/src/declarative/qml/parser/javascriptparser.cpp +++ b/src/declarative/qml/parser/javascriptparser.cpp @@ -123,6 +123,7 @@ bool JavaScriptParser::parse(JavaScriptEnginePrivate *driver) first_token = last_token = 0; tos = -1; + program = 0; do { if (++tos == stack_size) @@ -163,8 +164,9 @@ bool JavaScriptParser::parse(JavaScriptEnginePrivate *driver) switch (r) { case 0: { - sym(1).Node = makeAstNode (driver->nodePool(), sym(1).UiImportList, + program = makeAstNode (driver->nodePool(), sym(1).UiImportList, sym(2).UiObjectMemberList->finish()); + sym(1).UiProgram = program; } break; case 2: { @@ -246,7 +248,7 @@ case 19: { sym(4).UiObjectMemberList->finish()); node->colonToken = loc(2); node->lbracketToken = loc(3); - node->rbraceToken = loc(5); + node->rbracketToken = loc(5); sym(1).Node = node; } break; case 20: @@ -1530,6 +1532,7 @@ case 293: { yytoken = *tk; yylval = 0; yylloc = token_buffer[0].loc; + yylloc.length = 0; first_token = &token_buffer[0]; last_token = &token_buffer[2]; @@ -1552,6 +1555,7 @@ case 293: { yytoken = tk; yylval = 0; yylloc = token_buffer[0].loc; + yylloc.length = 0; action = errorState; goto _Lcheck_token; diff --git a/src/declarative/qml/parser/javascriptparser_p.h b/src/declarative/qml/parser/javascriptparser_p.h index c08a14a..e97abeb 100644 --- a/src/declarative/qml/parser/javascriptparser_p.h +++ b/src/declarative/qml/parser/javascriptparser_p.h @@ -143,7 +143,7 @@ public: bool parse(JavaScriptEnginePrivate *driver); JavaScript::AST::UiProgram *ast() - { return sym(1).UiProgram; } + { return program; } QList diagnosticMessages() const { return diagnostic_messages; } @@ -183,6 +183,8 @@ protected: int *state_stack; JavaScript::AST::SourceLocation *location_stack; + JavaScript::AST::UiProgram *program; + // error recovery enum { TOKEN_BUFFER_SIZE = 3 }; -- cgit v0.12 From 33f770b892b2bf46d59c4841e252c85b09b9c4bf Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Wed, 29 Apr 2009 15:33:26 +0200 Subject: qdoc: Corrected some qdoc warnings. --- src/declarative/fx/qfxcomponentinstance.cpp | 5 ++-- src/declarative/fx/qfxhighlightfilter.cpp | 2 +- src/declarative/fx/qfxparticles.cpp | 2 +- src/declarative/qml/qmlinfo.cpp | 24 +++++++++--------- src/declarative/util/qfxview.cpp | 38 ++++++++++++++++++++++++++--- tools/qdoc3/test/qt-inc.qdocconf | 3 ++- 6 files changed, 54 insertions(+), 20 deletions(-) diff --git a/src/declarative/fx/qfxcomponentinstance.cpp b/src/declarative/fx/qfxcomponentinstance.cpp index 951c25d..5343f7d 100644 --- a/src/declarative/fx/qfxcomponentinstance.cpp +++ b/src/declarative/fx/qfxcomponentinstance.cpp @@ -51,15 +51,14 @@ QML_DEFINE_TYPE(QFxComponentInstance,ComponentInstance); /*! \internal - \class QFxComponentInstance - \qmlclass ComponentInstance + \class QFxComponentInstance ComponentInstance \brief The QFxComponentInstance class provides a way to instantiate an item from a component. */ /*! \qmlclass ComponentInstance QFxComponentInstance - \brief The ComponentInstance element allows you to instantiate an arbitrary component. + \brief The ComponentInstance element allows you to instantiate a \l{qml-component.html} {Component}. \code diff --git a/src/declarative/fx/qfxhighlightfilter.cpp b/src/declarative/fx/qfxhighlightfilter.cpp index ab0512c..70b50cd 100644 --- a/src/declarative/fx/qfxhighlightfilter.cpp +++ b/src/declarative/fx/qfxhighlightfilter.cpp @@ -119,7 +119,7 @@ QFxHighlightFilter::~QFxHighlightFilter() */ /*! - \property QFxHighlightFilter::src + \property QFxHighlightFilter::source \brief the URL of the image to be used as the highlight. */ QString QFxHighlightFilter::source() const diff --git a/src/declarative/fx/qfxparticles.cpp b/src/declarative/fx/qfxparticles.cpp index b6b4c85..16b3570 100644 --- a/src/declarative/fx/qfxparticles.cpp +++ b/src/declarative/fx/qfxparticles.cpp @@ -573,7 +573,7 @@ QFxParticles::~QFxParticles() */ /*! - \property QFxParticles::src + \property QFxParticles::source \brief the URL of the particle image. */ QString QFxParticles::source() const diff --git a/src/declarative/qml/qmlinfo.cpp b/src/declarative/qml/qmlinfo.cpp index a2b304f..65a4298 100644 --- a/src/declarative/qml/qmlinfo.cpp +++ b/src/declarative/qml/qmlinfo.cpp @@ -47,12 +47,14 @@ QT_BEGIN_NAMESPACE \class QmlInfo \brief The QmlInfo class prints warnings messages that include the file and line number for QML types. - When QML types display warning messages, it improves tracibility if they include the - QML file and line number on which the particular instance was instantiated. + When QML types display warning messages, it improves tracibility + if they include the QML file and line number on which the + particular instance was instantiated. - QmlInfo statements work just like regular Qt qDebug() statements. To include the file - and line number, an object must be passed. If the file and line number is not available - for that instance (either it was not instantiated by the QML engine or location + QmlInfo statements work just like regular Qt qDebug() statements. + To include the file and line number, an object must be passed. If + the file and line number is not available for that instance + (either it was not instantiated by the QML engine or location information is disabled), "unknown location" will be used instead. For example, @@ -69,7 +71,8 @@ QT_BEGIN_NAMESPACE */ /*! - Construct a QmlInfo, using \a object for file and line number information. + Construct a QmlInfo, using \a object for file and line number + information. */ QmlInfo::QmlInfo(QObject *object) : QDebug(QtWarningMsg) @@ -81,17 +84,16 @@ QmlInfo::QmlInfo(QObject *object) } /*! - \internal + The destructor does nothing special. */ QmlInfo::~QmlInfo() { } /*! - \fn QmlInfo qmlInfo(QObject *me) - \internal - - XXX - how do we document these? + \relates QmlInfo + \fn QmlInfo qmlInfo(QObject *me) + Constructs an instance of QmlInfo from \a me and returns it. */ QT_END_NAMESPACE diff --git a/src/declarative/util/qfxview.cpp b/src/declarative/util/qfxview.cpp index 1e9d5a4..e285890 100644 --- a/src/declarative/util/qfxview.cpp +++ b/src/declarative/util/qfxview.cpp @@ -107,10 +107,10 @@ public: \class QFxView \brief The QFxView class provides a widget for displaying a Qt Declarative user interface. - QFxView currently provides a minimal interface for displaying Qml files, and - connecting between QML and C++ Qt objects. + QFxView currently provides a minimal interface for displaying QML + files, and connecting between QML and C++ Qt objects. - Typcial usage looks something like this: + Typcial usage: \code ... QFxView *view = new QFxView(this); @@ -129,12 +129,24 @@ public: \endcode */ +/*! + \fn QFxView::QFxView(QWidget *parent) + + Constructs a QFxView with the given \a parent. +*/ QFxView::QFxView(QWidget *parent) : QSimpleCanvas(parent), d(new QFxViewPrivate(this)) { d->init(); } +/*! + \fn QFxView::QFxView(QSimpleCanvas::CanvasMode mode, QWidget *parent) + + Constructs a QFxView with the given \a parent. The canvas + \a mode can be QSimpleCanvas::GraphicsView or + QSimpleCanvas::SimpleCanvas. +*/ QFxView::QFxView(QSimpleCanvas::CanvasMode mode, QWidget *parent) : QSimpleCanvas(mode, parent), d(new QFxViewPrivate(this)) { @@ -157,29 +169,49 @@ void QFxViewPrivate::init() QFontDatabase database; } +/*! + The destructor clears the instance and deletes the internal + representation. + + \sa clearItems() + */ QFxView::~QFxView() { clearItems(); delete d; d = 0; } +/*! + Sets the source to the \a url. The XML string is set to + empty. + */ void QFxView::setUrl(const QUrl& url) { d->source = url; d->xml = QString(); } +/*! + Sets the source to the URL from the \a filename, and sets + the XML string to \a xml. + */ void QFxView::setXml(const QString &xml, const QString &filename) { d->source = QUrl::fromLocalFile(filename); d->xml = xml; } +/*! + Returns the XML string. + */ QString QFxView::xml() const { return d->xml; } +/*! + Returns a pointer to the QmlEngine. + */ QmlEngine* QFxView::engine() { return &d->engine; diff --git a/tools/qdoc3/test/qt-inc.qdocconf b/tools/qdoc3/test/qt-inc.qdocconf index d6cb0e6..decdc15 100644 --- a/tools/qdoc3/test/qt-inc.qdocconf +++ b/tools/qdoc3/test/qt-inc.qdocconf @@ -99,7 +99,8 @@ Cpp.ignoretokens = QAXFACTORY_EXPORT \ Q_TESTLIB_EXPORT \ Q_TYPENAME \ Q_XML_EXPORT \ - QDBUS_EXPORT + QDBUS_EXPORT \ + Q_DECLARATIVE_EXPORT Cpp.ignoredirectives = Q_DECLARE_HANDLE \ Q_DECLARE_INTERFACE \ Q_DECLARE_METATYPE \ -- cgit v0.12