summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Brasser <michael.brasser@nokia.com>2009-05-01 05:50:35 (GMT)
committerMichael Brasser <michael.brasser@nokia.com>2009-05-01 05:50:35 (GMT)
commit59be06a01a3c26be4de57ce9f8b229cce7e26520 (patch)
treeb9bb17a1d2fc6c465807e938f27d9871e4f91fff
parent170f2857803344a198eaf71d8f15b07e3ff0e2ad (diff)
parentea0284d0f4a3408d7c1219702214c263118ef52f (diff)
downloadQt-59be06a01a3c26be4de57ce9f8b229cce7e26520.zip
Qt-59be06a01a3c26be4de57ce9f8b229cce7e26520.tar.gz
Qt-59be06a01a3c26be4de57ce9f8b229cce7e26520.tar.bz2
Merge branch 'kinetic-declarativeui' of git@scm.dev.nokia.troll.no:qt/kinetic into kinetic-declarativeui
-rw-r--r--src/declarative/fx/qfxanchors.cpp4
-rw-r--r--src/declarative/fx/qfxanimatedimageitem.cpp4
-rw-r--r--src/declarative/fx/qfxblurfilter.cpp35
-rw-r--r--src/declarative/fx/qfxcomponentinstance.cpp6
-rw-r--r--src/declarative/fx/qfxcontentwrapper.cpp41
-rw-r--r--src/declarative/fx/qfxevents.cpp33
-rw-r--r--src/declarative/fx/qfxflickable.cpp2
-rw-r--r--src/declarative/fx/qfxflipable.cpp58
-rw-r--r--src/declarative/fx/qfxfocuspanel.cpp4
-rw-r--r--src/declarative/fx/qfxfocusrealm.cpp2
-rw-r--r--src/declarative/fx/qfxgridview.cpp4
-rw-r--r--src/declarative/fx/qfxhighlightfilter.cpp32
-rw-r--r--src/declarative/fx/qfximage.cpp28
-rw-r--r--src/declarative/fx/qfxitem.cpp57
-rw-r--r--src/declarative/fx/qfxkeyactions.cpp34
-rw-r--r--src/declarative/fx/qfxkeyproxy.cpp4
-rw-r--r--src/declarative/fx/qfxwebview.cpp52
-rw-r--r--src/declarative/qml/parser/javascript.g119
-rw-r--r--src/declarative/qml/parser/javascriptast_p.h12
-rw-r--r--src/declarative/qml/parser/javascriptgrammar.cpp1301
-rw-r--r--src/declarative/qml/parser/javascriptgrammar_p.h68
-rw-r--r--src/declarative/qml/parser/javascriptlexer.cpp9
-rw-r--r--src/declarative/qml/parser/javascriptparser.cpp450
-rw-r--r--src/declarative/qml/parser/javascriptparser_p.h4
-rw-r--r--src/declarative/qml/qmlscriptparser.cpp76
25 files changed, 1328 insertions, 1111 deletions
diff --git a/src/declarative/fx/qfxanchors.cpp b/src/declarative/fx/qfxanchors.cpp
index f537da9..540e1cb 100644
--- a/src/declarative/fx/qfxanchors.cpp
+++ b/src/declarative/fx/qfxanchors.cpp
@@ -151,7 +151,7 @@ void QFxAnchors::fillChanged()
/*!
\property QFxAnchors::fill
- \brief what item the item should fill.
+ \brief which item the item should fill.
This is a convenience property. It is the same as anchoring the left, right, top, and bottom
to another item's left, right, top, and bottom.
@@ -200,7 +200,7 @@ void QFxAnchors::setFill(QFxItem *f)
/*!
\property QFxAnchors::centeredIn
- \brief what item the item should stay centered in the middle of.
+ \brief which item the item should stay centered in.
This is a convenience property. It is the same as anchoring the horizontalCenter
and verticalCenter to another item's horizontalCenter and verticalCenter.
diff --git a/src/declarative/fx/qfxanimatedimageitem.cpp b/src/declarative/fx/qfxanimatedimageitem.cpp
index 5a495e9..7a1cb7f 100644
--- a/src/declarative/fx/qfxanimatedimageitem.cpp
+++ b/src/declarative/fx/qfxanimatedimageitem.cpp
@@ -66,7 +66,7 @@ QT_BEGIN_NAMESPACE
\row
\o \image animatedimageitem.gif
\o
- \code
+ \qml
Item {
width: anim.width; height: anim.height+8
AnimatedImage { id: anim; source: "pics/games-anim.gif" }
@@ -74,7 +74,7 @@ Item {
x: (anim.width-width)*anim.currentFrame/(anim.frameCount-1)
}
}
- \endcode
+ \endqml
\endtable
*/
QML_DEFINE_TYPE(QFxAnimatedImageItem, AnimatedImage);
diff --git a/src/declarative/fx/qfxblurfilter.cpp b/src/declarative/fx/qfxblurfilter.cpp
index ad3eebc..2bad18c 100644
--- a/src/declarative/fx/qfxblurfilter.cpp
+++ b/src/declarative/fx/qfxblurfilter.cpp
@@ -64,25 +64,28 @@ public:
\brief The Blur filter blurs an item and its contents.
\inherits Filter
- Blurring reduces the clarity of a visual element. The following example
+ Blurring reduces the clarity of a visual item. The following example
shows an icon at a blur radius of 0, 5 and 10.
\table
\row
\o
- \code
- <HorizontalLayout>
- <Image src="icon.png">
- <filter><Blur radius="0" /></filter>
- </Image>
- <Image src="icon.png">
- <filter><Blur radius="5" /></filter>
- </Image>
- <Image src="icon.png">
- <filter><Blur radius="10" /></filter>
- </Image>
- </HorizontalLayout>
- \endcode
+ \qml
+HorizontalLayout {
+ Image {
+ src: "icon.png"
+ filter: Blur { radius: 0 }
+ }
+ Image {
+ src: "icon.png"
+ filter: Blur { radius: 5 }
+ }
+ Image {
+ src: "icon.png"
+ filter: Blur { radius: 10 }
+ }
+}
+ \endqml
\row
\o \image blur_example.png
\endtable
@@ -110,7 +113,9 @@ QFxBlurFilter::~QFxBlurFilter()
/*!
\qmlproperty real Blur::radius
- Sets the blur kernel radius. The larger the radius the more blurry the item will appear. A radius of 0 (or less) is equivalent to no blur.
+ Sets the blur kernel radius.
+ The larger the radius the more blurry the item will appear.
+ A radius of 0 (or less) is equivalent to no blur.
*/
/*!
diff --git a/src/declarative/fx/qfxcomponentinstance.cpp b/src/declarative/fx/qfxcomponentinstance.cpp
index 5fb5466..9645e77 100644
--- a/src/declarative/fx/qfxcomponentinstance.cpp
+++ b/src/declarative/fx/qfxcomponentinstance.cpp
@@ -58,9 +58,9 @@ QML_DEFINE_TYPE(QFxComponentInstance,ComponentInstance);
/*!
\qmlclass ComponentInstance QFxComponentInstance
- \brief The ComponentInstance element allows you to instantiate a \l{qml-component.html} {Component}.
+ \brief The ComponentInstance item allows you to instantiate a \l{qml-component.html} {Component}.
- \code
+ \qml
Item {
Component {
id: RedSquare
@@ -69,7 +69,7 @@ QML_DEFINE_TYPE(QFxComponentInstance,ComponentInstance);
ComponentInstance { component: RedSquare }
}
- \endcode
+ \endqml
*/
QFxComponentInstance::QFxComponentInstance(QFxItem *parent)
: QFxItem(*(new QFxComponentInstancePrivate), parent)
diff --git a/src/declarative/fx/qfxcontentwrapper.cpp b/src/declarative/fx/qfxcontentwrapper.cpp
index a155d2b..2b95ff6 100644
--- a/src/declarative/fx/qfxcontentwrapper.cpp
+++ b/src/declarative/fx/qfxcontentwrapper.cpp
@@ -108,22 +108,31 @@ QML_DEFINE_TYPE(QFxContent,Content);
specified by Content.
Example:
- \code
- <!--GroupBox component definition-->
- <Rect width="{parent.width}" color="white" pen.width="2" pen.color="#adaeb0" radius="10" clip="false" height="{contents.height}">
- <VerticalLayout id="layout" width="{parent.width}">
- <Content/>
- </VerticalLayout>
- </Rect>
-
- <!--component use-->
- <GroupBox>
- <content>
- <Text text="First Item"/>
- ...
- </content>
- </GroupBox>
- \endcode
+ \qml
+// GroupBox component definition
+Rect {
+ width: parent.width
+ color: "white"
+ pen.width: 2
+ pen.color: "#adaeb0"
+ radius: 10
+ clip: false
+ height: contents.height
+ VerticalLayout {
+ id: layout
+ width: parent.width
+ Content { } // content property will go here
+ }
+}
+
+// component use
+GroupBox {
+ content: Text {
+ text: "First Item"
+ ...
+ }
+}
+ \endqml
*/
QT_END_NAMESPACE
diff --git a/src/declarative/fx/qfxevents.cpp b/src/declarative/fx/qfxevents.cpp
index 7d04f5d..195d1e5 100644
--- a/src/declarative/fx/qfxevents.cpp
+++ b/src/declarative/fx/qfxevents.cpp
@@ -44,17 +44,18 @@
QT_BEGIN_NAMESPACE
/*!
\qmlclass KeyEvent QFxKeyEvent
- \brief The KeyEvent element provides information about a key event.
+ \brief The KeyEvent object provides information about a key event.
For example, the following changes the Item's state property when the Enter
key is pressed:
- \code
- <Item focus="true">
- <onKeyPress>if (event.key == Qt.Key_Enter) state = 'ShowDetails';</onKeyPress>
- </Item>
- \endcode
-
- The \l KeyActions element could also be used to achieve the above with
+ \qml
+Item {
+ focus: true
+ onKeyPress: { if (event.key == Qt.Key_Enter) state = 'ShowDetails'; }
+}
+ \endqml
+
+ The \l KeyActions object could also be used to achieve the above with
a clearer syntax.
\sa KeyActions
@@ -106,7 +107,7 @@ QT_BEGIN_NAMESPACE
/*!
\qmlclass MouseEvent QFxMouseEvent
- \brief The MouseEvent element provides information about a mouse event.
+ \brief The MouseEvent object provides information about a mouse event.
The position of the mouse can be found via the x and y properties.
The button that caused the event is available via the button property.
@@ -168,15 +169,11 @@ QT_BEGIN_NAMESPACE
\endlist
For example, to react to a Shift key + Left mouse button click:
- \code
- <MouseRegion>
- <onClick>
- <![CDATA[
- if (mouse.button == Qt.LeftButton && mouse.modifiers & Qt.ShiftModifier) doSomething();
- ]]>
- </onclick>
- </MouseRegion>
- \endcode
+ \qml
+MouseRegion {
+ onClick: { if (mouse.button == Qt.LeftButton && mouse.modifiers & Qt.ShiftModifier) doSomething(); }
+}
+ \endqml
*/
QML_DEFINE_NOCREATE_TYPE(QFxKeyEvent);
diff --git a/src/declarative/fx/qfxflickable.cpp b/src/declarative/fx/qfxflickable.cpp
index 17e44e1..52b142b 100644
--- a/src/declarative/fx/qfxflickable.cpp
+++ b/src/declarative/fx/qfxflickable.cpp
@@ -226,7 +226,7 @@ QML_DEFINE_TYPE(QFxFlickable,Flickable);
/*!
\qmlclass Flickable
- \brief The Flickable element provides a surface that can be "flicked".
+ \brief The Flickable item provides a surface that can be "flicked".
\inherits Item
Flickable places its children on a surface that can be dragged and flicked.
diff --git a/src/declarative/fx/qfxflipable.cpp b/src/declarative/fx/qfxflipable.cpp
index 81ed750..db390d2 100644
--- a/src/declarative/fx/qfxflipable.cpp
+++ b/src/declarative/fx/qfxflipable.cpp
@@ -64,34 +64,44 @@ public:
/*!
\qmlclass Flipable QFxFlipable
- \brief The Flipable element provides a surface that can be flipped.
+ \brief The Flipable item provides a surface that can be flipped.
\inherits Item
Flipable allows you to specify a front and a back and then flip between those sides.
- \code
- <Flipable id="flipable" width="40" height="40">
- <axis>
- <Axis startX="20" startY="0" endX="20" endY="40" />
- </axis>
- <front>
- <Image src="front.png"/>
- </front>
- <back>
- <Image src="back.png"/>
- </back>
- <states>
- <State name="back">
- <SetProperty target="{flipable}" property="rotation" value="180" />
- </State>
- </states>
- <transitions>
- <Transition>
- <NumericAnimation easing="easeInOutQuad" properties="rotation"/>
- </Transition>
- </transitions>
- </Flipable>
- \endcode
+ \qml
+Flipable {
+ id: flipable
+ width: 40
+ height: 40
+ axis: Axis {
+ startX: 20
+ startY: 0
+ endX: 20
+ endY: 40
+ }
+ front: Image { src: "front.png" }
+ back: Image { src: "back.png" }
+ states: [
+ State {
+ name: "back"
+ SetProperty {
+ target: flipable
+ property: "rotation"
+ value: 180
+ }
+ }
+ ]
+ transitions: [
+ Transition {
+ NumericAnimation {
+ easing: "easeInOutQuad"
+ properties: "rotation"
+ }
+ }
+ ]
+}
+ \endqml
\image flipable.gif
*/
diff --git a/src/declarative/fx/qfxfocuspanel.cpp b/src/declarative/fx/qfxfocuspanel.cpp
index 67c456e..5d62e66 100644
--- a/src/declarative/fx/qfxfocuspanel.cpp
+++ b/src/declarative/fx/qfxfocuspanel.cpp
@@ -47,7 +47,7 @@ QML_DEFINE_TYPE(QFxFocusPanel,FocusPanel);
/*!
\qmlclass FocusPanel
- \brief The FocusPanel element explicitly creates a focus panel.
+ \brief The FocusPanel object explicitly creates a focus panel.
\inherits Item
Focus panels assist in keyboard focus handling when building QML
@@ -73,7 +73,7 @@ QFxFocusPanel::~QFxFocusPanel()
/*!
\qmlproperty bool FocusPanel::active
- Sets whether the element is the active focus panel.
+ Sets whether the object is the active focus panel.
*/
bool QFxFocusPanel::isActive() const
diff --git a/src/declarative/fx/qfxfocusrealm.cpp b/src/declarative/fx/qfxfocusrealm.cpp
index da3f1b2..07849fa 100644
--- a/src/declarative/fx/qfxfocusrealm.cpp
+++ b/src/declarative/fx/qfxfocusrealm.cpp
@@ -47,7 +47,7 @@ QML_DEFINE_TYPE(QFxFocusRealm,FocusRealm);
/*!
\qmlclass FocusRealm
- \brief The FocusRealm element explicitly creates a focus realm.
+ \brief The FocusRealm object explicitly creates a focus realm.
\inherits Item
Focus realms assist in keyboard focus handling when building reusable QML
diff --git a/src/declarative/fx/qfxgridview.cpp b/src/declarative/fx/qfxgridview.cpp
index b8acea2..8416234 100644
--- a/src/declarative/fx/qfxgridview.cpp
+++ b/src/declarative/fx/qfxgridview.cpp
@@ -647,7 +647,7 @@ void QFxGridViewPrivate::updateCurrent(int modelIndex)
/*!
\qmlclass GridView
\inherits Flickable
- \brief The GridView element provides a grid view of items provided by a model.
+ \brief The GridView item provides a grid view of items provided by a model.
The model is typically provided by a QAbstractListModel "C++ model object",
but can also be created directly in QML.
@@ -706,7 +706,7 @@ QFxGridView::~QFxGridView()
The C++ model object must be a \l QListModelInterface subclass, a \l VisualModel,
or a simple list.
- Models can also be created directly in QML, using the \l ListModel element. For example:
+ Models can also be created directly in QML, using the \l ListModel object. For example:
\code
<ListModel id="contactModel">
<Contact>
diff --git a/src/declarative/fx/qfxhighlightfilter.cpp b/src/declarative/fx/qfxhighlightfilter.cpp
index 70b50cd..862a698 100644
--- a/src/declarative/fx/qfxhighlightfilter.cpp
+++ b/src/declarative/fx/qfxhighlightfilter.cpp
@@ -73,18 +73,24 @@ public:
\brief The Highlight filter adds a highlight to an item.
\inherits Filter
- \code
-<Text id="highlighttext" color="red" font.size="32" text="Highlight">
- <filter>
- <Highlight src="pics/highlight.png">
- <xOffset>
- <NumericAnimation running="true" repeat="true"
- from="320" to="-320" duration="2000"/>
- </xOffset>
- </Highlight>
- </filter>
-</Text>
- \endcode
+ \qml
+Text {
+ id: highlighttext
+ color: "red"
+ font.size: 32
+ text: "Highlight"
+ filter: Highlight {
+ source: "pics/highlight.png"
+ xOffset: NumericAnimation {
+ running: true
+ repeat: true
+ from: 320
+ to: -320
+ duration: 2000
+ }
+ }
+}
+ \endqml
\image highlight.gif
Highlighting is only supported when Qt Declarative is compiled for OpenGL ES 2.0.
@@ -114,7 +120,7 @@ QFxHighlightFilter::~QFxHighlightFilter()
}
/*!
- \qmlproperty string Highlight::src
+ \qmlproperty string Highlight::source
This property holds the URL of the image to be used as the highlight.
*/
diff --git a/src/declarative/fx/qfximage.cpp b/src/declarative/fx/qfximage.cpp
index 1361d68..53c6137 100644
--- a/src/declarative/fx/qfximage.cpp
+++ b/src/declarative/fx/qfximage.cpp
@@ -60,36 +60,38 @@ QML_DEFINE_TYPE(QFxImage,Image);
\brief The Image element allows you to add bitmaps to a scene.
\inherits Item
- The Image element supports untransformed, stretched, grid-scaled and tiled images. For an explanation of grid-scaling see the scaleGrid property description or the QFxScaleGrid class description.
+ The Image element supports untransformed, stretched, grid-scaled and tiled images.
+ For an explanation of grid-scaling see the scaleGrid property description
+ or the QFxScaleGrid class description.
Examples:
\table
\row
\o \image declarative-qtlogo1.png
\o Untransformed
- \code
+ \qml
Image { source: "pics/qtlogo.png" }
- \endcode
+ \endqml
\row
\o \image declarative-qtlogo2.png
\o Stretched
- \code
+ \qml
Image { width: 160; height: 160; source: "pics/qtlogo.png" }
- \endcode
+ \endqml
\row
\o \image declarative-qtlogo4.png
\o Grid-scaled
- \code
+ \qml
Image { scaleGrid.left: 20; scaleGrid.right: 10
scaleGrid.top: 14; scaleGrid.bottom: 14
width: 160; height: 160; source: "pics/qtlogo.png" }
- \endcode
+ \endqml
\row
\o \image declarative-qtlogo3.png
\o Tiled
- \code
+ \qml
Image { tile: true; width: 160; height: 160; source: "pics/qtlogo.png" }
- \endcode
+ \endqml
\endtable
*/
@@ -101,9 +103,9 @@ QML_DEFINE_TYPE(QFxImage,Image);
\ingroup group_coreitems
Example:
- \code
+ \qml
Image { source: "pics/star.png" }
- \endcode
+ \endqml
A QFxImage object can be instantiated in Qml using the tag \l Image.
*/
@@ -198,13 +200,13 @@ QFxScaleGrid *QFxImage::scaleGrid()
bitmap file to its size. If tiling is enabled, the bitmap is repeated as a set
of unscaled tiles, clipped to the size of the Image.
- \code
+ \qml
Item {
Image { source: "tile.png" }
Image { x: 80; width: 100; height: 100; src: "tile.png" }
Image { x: 190; width: 100; height: 100; tile: true; src: "tile.png" }
}
- \endcode
+ \endqml
\image declarative-image_tile.png
If both tiling and the scaleGrid are set, tiling takes precedence.
diff --git a/src/declarative/fx/qfxitem.cpp b/src/declarative/fx/qfxitem.cpp
index 38b5713..53e198f 100644
--- a/src/declarative/fx/qfxitem.cpp
+++ b/src/declarative/fx/qfxitem.cpp
@@ -206,7 +206,7 @@ void QFxContents::setItem(QFxItem *item)
/*!
\qmlclass Item QFxItem
- \brief The Item element is the most basic of all visual canvas members.
+ \brief The Item is the most basic of all visual items in QML.
*/
/*!
@@ -214,19 +214,32 @@ void QFxContents::setItem(QFxItem *item)
\brief The QFxItem class is a generic QFxView item. It is the base class for all other view items.
\qmltext
- All visual elements in Qt Declarative inherit from QFxItem. Although QFxItem
+ All visual items in Qt Declarative inherit from QFxItem. Although QFxItem
has no visual appearance, it defines all the properties that are
- common across visual elements - like the x and y position, and the
+ common across visual items - like the x and y position, and the
width and height.
- QFxItem is also useful for grouping elements together.
+ QFxItem is also useful for grouping items together.
\qml
- <Item>
- <Image file="tile.png" />
- <Image x="80" width="100" height="100" file="tile.png" />
- <Image x="190" width="100" height="100" tile="true" file="tile.png" />
- </Item>
+ Item {
+ Image {
+ file: "tile.png"
+ }
+ Image {
+ x: 80
+ width: 100
+ height: 100
+ file: "tile.png"
+ }
+ Image {
+ x: 190
+ width: 100
+ height: 100
+ tile: true
+ file: "tile.png"
+ }
+ }
\endqml
\endqmltext
@@ -260,7 +273,7 @@ void QFxContents::setItem(QFxItem *item)
via the baselineOffset property.
The baseline corresponds to the baseline of the text contained in
- the element. It is useful for aligning the text in items placed
+ the item. It is useful for aligning the text in items placed
beside each other. The default baseline is positioned at
2/3 of the height of the item.
*/
@@ -335,7 +348,9 @@ void QFxContents::setItem(QFxItem *item)
The key event is available via the KeyEvent \a event.
\qml
- <Item onKeyPress="if (event.key == Qt.Key_Enter) state='Enter'"/>
+ Item {
+ onKeyPress: { if (event.key == Qt.Key_Enter) state='Enter' }
+ }
\endqml
*/
@@ -347,7 +362,9 @@ void QFxContents::setItem(QFxItem *item)
The key event is available in via the KeyEvent \a event.
\qml
- <Item onKeyRelease="if (event.key == Qt.Key_Enter) state='Enter'"/>
+ Item {
+ onKeyRelease: { if (event.key == Qt.Key_Enter) state='Enter' }
+ }
\endqml
*/
@@ -429,9 +446,13 @@ QFxItem::~QFxItem()
\image declarative-transformorigin.png
This example scales an image about its center.
- \code
- <Image src="myimage.png" transformOrigin="Center" scale="4" />
- \endcode
+ \qml
+ Image {
+ src: "myimage.png"
+ transformOrigin: "Center"
+ scale: 4
+ }
+ \endqml
The default transform origin is \c TopLeft.
*/
@@ -522,7 +543,7 @@ QFxItem *QFxItem::itemParent() const
\qmlproperty list<Item> Item::children
\qmlproperty list<Object> Item::resources
- The children property contains the list of visual children of this element.
+ The children property contains the list of visual children of this item.
The resources property contains non-visual resources that you want to
reference by name.
@@ -702,7 +723,7 @@ void QFxItemPrivate::children_clear()
\default
The data property is allows you to freely mix visual children and resources
- of an element. If you assign a visual element to the data list it becomes
+ of an item. If you assign a visual item to the data list it becomes
a child and if you assign any other object type, it is added as a resource.
So you can write:
@@ -1926,7 +1947,7 @@ void QFxItem::classComplete()
}
/*!
- componentComplete() is called when all elements in the component
+ componentComplete() is called when all items in the component
have been constructed. It is often desireable to delay some
processing until the component is complete an all bindings in the
component have been resolved.
diff --git a/src/declarative/fx/qfxkeyactions.cpp b/src/declarative/fx/qfxkeyactions.cpp
index 52a013a..a07f047 100644
--- a/src/declarative/fx/qfxkeyactions.cpp
+++ b/src/declarative/fx/qfxkeyactions.cpp
@@ -169,22 +169,22 @@ void QFxKeyActionsPrivate::setBit(int b, bool v)
/*!
\qmlclass KeyActions
- \brief The KeyActions element enables simple key handling.
+ \brief The KeyActions item enables simple key handling.
\inherits Item
KeyActions is typically used in basic key handling scenarios where writing
JavaScript key handling routines would be unnecessarily complicated. The
- KeyActions element has a collection of properties that correspond to a
- selection of common keys. When a given key is pressed, the element executes
+ KeyActions item has a collection of properties that correspond to a
+ selection of common keys. When a given key is pressed, the item executes
the action script assigned to the matching property. If no action has
- been set the KeyActions element does nothing.
+ been set the KeyActions item does nothing.
To receive (and susequently respond to) key presses, the KeyActions class
- must be in the current focus chain, just like any other element.
+ must be in the current focus chain, just like any other item.
For basic mouse handling, see \l MouseRegion.
- KeyActions is an invisible element: it is never painted.
+ KeyActions is an invisible item: it is never painted.
*/
QFxKeyActions::QFxKeyActions(QFxItem *parent)
: QFxItem(parent), d(new QFxKeyActionsPrivate)
@@ -221,7 +221,7 @@ void QFxKeyActionsPrivate::setKeyExpr(Qt::Key k, const QString &expr)
\qmlproperty bool KeyActions::enabled
Enables or disables KeyActions' key handling. When not enabled, the
- KeyActions instance does not respond to any key presses. The element is
+ KeyActions instance does not respond to any key presses. The item is
enabled by default.
*/
bool QFxKeyActions::enabled() const
@@ -244,9 +244,9 @@ void QFxKeyActions::setEnabled(bool e)
The action to take for the given letter.
The following example sets actions for the 'c' and 'x' keys.
- \code
+ \qml
KeyActions { keyC: "print('c is for cookie')"; keyX: "print('I like cookies')" }
- \endcode
+ \endqml
*/
QString QFxKeyActions::key_A() const
{
@@ -518,9 +518,9 @@ void QFxKeyActions::setKey_Z(const QString &s)
The action to take for the given arrow key.
The following example sets actions for the left and right arrow keys.
- \code
+ \qml
KeyActions { leftArrow: "print('You pressed left')"; rightArrow: "print('You pressed right')" }
- \endcode
+ \endqml
*/
QString QFxKeyActions::key_Left() const
@@ -569,9 +569,9 @@ void QFxKeyActions::setKey_Down(const QString &s)
The action to take for the given number key.
The following example sets actions for the '5' and '6' keys.
- \code
+ \qml
KeyActions { digit5: "print('5 is a prime number')"; digit6: "print('6 is a composite number')"; focus: true }
- \endcode
+ \endqml
*/
QString QFxKeyActions::key_0() const
@@ -744,9 +744,9 @@ void QFxKeyActions::setKey_Space(const QString &s)
The action to take for the given utility key.
The following example sets an action for the space key.
- \code
+ \qml
KeyActions { space: "print('Space pressed')" }
- \endcode
+ \endqml
*/
/*!
@@ -765,9 +765,9 @@ void QFxKeyActions::setKey_Space(const QString &s)
The action to take for the given device key.
The following example sets an action for the hangup key.
- \code
+ \qml
KeyActions { hangup: "print('Go away now')" }
- \endcode
+ \endqml
*/
QString QFxKeyActions::key_Back() const
diff --git a/src/declarative/fx/qfxkeyproxy.cpp b/src/declarative/fx/qfxkeyproxy.cpp
index 6d92441..6d9c6ab 100644
--- a/src/declarative/fx/qfxkeyproxy.cpp
+++ b/src/declarative/fx/qfxkeyproxy.cpp
@@ -47,7 +47,7 @@ QML_DEFINE_TYPE(QFxKeyProxy,KeyProxy);
/*!
\qmlclass KeyProxy
- \brief The KeyProxy element proxies key presses to a number of other elements.
+ \brief The KeyProxy item proxies key presses to a number of other items.
\inherits Item
*/
@@ -55,7 +55,7 @@ QML_DEFINE_TYPE(QFxKeyProxy,KeyProxy);
/*!
\internal
\class QFxKeyProxy
- \brief The QFxKeyProxy class proxies key presses to a number of other elements.
+ \brief The QFxKeyProxy class proxies key presses to a number of other items.
\ingroup group_utility
*/
diff --git a/src/declarative/fx/qfxwebview.cpp b/src/declarative/fx/qfxwebview.cpp
index eb2f7d2..dac8ced 100644
--- a/src/declarative/fx/qfxwebview.cpp
+++ b/src/declarative/fx/qfxwebview.cpp
@@ -106,8 +106,6 @@ class QFxWebSettings : public QObject {
Q_PROPERTY(bool offlineWebApplicationCacheEnabled READ offlineWebApplicationCacheEnabled WRITE setOfflineWebApplicationCacheEnabled)
Q_PROPERTY(bool localStorageDatabaseEnabled READ localStorageDatabaseEnabled WRITE setLocalStorageDatabaseEnabled)
- Q_PROPERTY(QString userStyleSheetUrl READ userStyleSheetUrl WRITE setUserStyleSheetUrl)
-
public:
QFxWebSettings() {}
@@ -140,9 +138,6 @@ public:
bool localStorageDatabaseEnabled() const { return s->testAttribute(QWebSettings::LocalStorageDatabaseEnabled); }
void setLocalStorageDatabaseEnabled(bool on) { s->setAttribute(QWebSettings::LocalStorageDatabaseEnabled, on); }
- QString userStyleSheetUrl() const { return s->userStyleSheetUrl(); }
- void setUserStyleSheetUrl(const QString& url) { s->setUserStyleSheetUrl(url); }
-
QWebSettings *s;
};
@@ -209,12 +204,12 @@ public:
/*!
\qmlclass WebView
- \brief The WebView element allows you to add web content to a canvas.
+ \brief The WebView item allows you to add web content to a canvas.
\inherits Item
A WebView renders web content based on a URL.
- If the width and height of the element is not set, they will
+ If the width and height of the item is not set, they will
dynamically adjust to a size appropriate for the content.
This width may be large (eg. 980) for typical online web pages.
@@ -225,7 +220,7 @@ public:
Due to WebKit limitations, the height may be more than necessary
if the idealHeight is changed after the content is loaded.
- \code
+ \qml
WebView {
url: "http://www.nokia.com"
width: 490
@@ -233,11 +228,11 @@ public:
scale: 0.5
smooth: true
}
- \endcode
+ \endqml
\image webview.png
- The element includes no scrolling, scaling,
+ The item includes no scrolling, scaling,
toolbars, etc., those must be implemented around WebView. See the WebBrowser example
for a demonstration of this.
*/
@@ -251,7 +246,7 @@ public:
\image webview.png
- The element includes no scrolling, scaling,
+ The item includes no scrolling, scaling,
toolbars, etc., those must be implemented around WebView. See the WebBrowser example
for a demonstration of this.
@@ -939,7 +934,7 @@ QWebPage *QFxWebView::page() const
QFxWebView *self = const_cast<QFxWebView*>(this);
QWebPage *wp = new QFxWebPage(self);
- // QML elements don't default to having a background,
+ // QML items don't default to having a background,
// even though most we pages will set one anyway.
QPalette pal = QApplication::palette();
pal.setBrush(QPalette::Base, QColor::fromRgbF(0, 0, 0, 0));
@@ -955,21 +950,34 @@ QWebPage *QFxWebView::page() const
return d->page;
}
+
// The QObject interface to settings().
/*!
- \qmlproperty QWebSettings WebView::settings
-
- This property gives access to the settings controlling the web view.
+ \qmlproperty bool WebView::settings::autoLoadImages
+ \qmlproperty bool WebView::settings::javascriptEnabled
+ \qmlproperty bool WebView::settings::javaEnabled
+ \qmlproperty bool WebView::settings::pluginsEnabled
+ \qmlproperty bool WebView::settings::privateBrowsingEnabled
+ \qmlproperty bool WebView::settings::javascriptCanOpenWindows
+ \qmlproperty bool WebView::settings::javascriptCanAccessClipboard
+ \qmlproperty bool WebView::settings::developerExtrasEnabled
+ \qmlproperty bool WebView::settings::linksIncludedInFocusChain
+ \qmlproperty bool WebView::settings::zoomTextOnly
+ \qmlproperty bool WebView::settings::printElementBackgrounds
+ \qmlproperty bool WebView::settings::offlineStorageDatabaseEnabled
+ \qmlproperty bool WebView::settings::offlineWebApplicationCacheEnabled
+ \qmlproperty bool WebView::settings::localStorageDatabaseEnabled
+
+ These properties give access to the settings controlling the web view.
See QWebSettings for the list of sub-properties.
- \code
+ \qml
WebView {
settings.pluginsEnabled: true
- settings.userStyleSheetUrl: "mystyle.css"
...
}
- \endcode
+ \endqml
*/
QObject *QFxWebView::settingsObject() const
{
@@ -1026,11 +1034,11 @@ QString QFxWebView::html() const
The html property can be set as a string.
- \code
+ \qml
WebView {
html: "<p>This is <b>HTML</b>."
}
- \endcode
+ \endqml
*/
void QFxWebView::setHtml(const QString &html, const QUrl &baseUrl)
{
@@ -1039,7 +1047,7 @@ void QFxWebView::setHtml(const QString &html, const QUrl &baseUrl)
d->idealwidth>0 ? d->idealwidth : width(),
d->idealheight>0 ? d->idealheight : height()));
if (isComponentComplete())
- page()->mainFrame()->setHtml(html, baseUrl);
+ page()->mainFrame()->setHtml(html, qmlContext(this)->resolvedUrl(baseUrl));
else {
d->pending = d->PendingHtml;
d->pending_url = baseUrl;
@@ -1055,7 +1063,7 @@ void QFxWebView::setContent(const QByteArray &data, const QString &mimeType, con
d->idealheight>0 ? d->idealheight : height()));
if (isComponentComplete())
- page()->mainFrame()->setContent(data,mimeType,baseUrl);
+ page()->mainFrame()->setContent(data,mimeType,qmlContext(this)->resolvedUrl(baseUrl));
else {
d->pending = d->PendingContent;
d->pending_url = baseUrl;
diff --git a/src/declarative/qml/parser/javascript.g b/src/declarative/qml/parser/javascript.g
index 59ab529..a318ccb 100644
--- a/src/declarative/qml/parser/javascript.g
+++ b/src/declarative/qml/parser/javascript.g
@@ -45,7 +45,7 @@
%parser JavaScriptGrammar
%decl javascriptparser_p.h
%impl javascriptparser.cpp
-%expect 2
+%expect 8
%expect-rr 1
%token T_AND "&" T_AND_AND "&&" T_AND_EQ "&="
@@ -70,6 +70,7 @@
%token T_REMAINDER_EQ "%=" T_RETURN "return" T_RPAREN ")"
%token T_SEMICOLON ";" T_AUTOMATIC_SEMICOLON T_STAR "*"
%token T_STAR_EQ "*=" T_STRING_LITERAL "string literal"
+%token T_PROPERTY "property" T_SIGNAL "signal"
%token T_SWITCH "switch" T_THIS "this" T_THROW "throw"
%token T_TILDE "~" T_TRY "try" T_TYPEOF "typeof"
%token T_VAR "var" T_VOID "void" T_WHILE "while"
@@ -645,50 +646,64 @@ case $rule_number: {
} break;
./
-UiObjectMember: T_PUBLIC T_IDENTIFIER T_IDENTIFIER ;
+UiPropertyType: T_VAR ;
+/.
+case $rule_number:
+./
+UiPropertyType: T_RESERVED_WORD ;
+/.
+case $rule_number: {
+ sym(1).sval = driver->intern(lexer->characterBuffer(), lexer->characterCount());
+ break;
+}
+./
+
+UiPropertyType: T_IDENTIFIER ;
+
+UiObjectMember: T_PROPERTY UiPropertyType T_IDENTIFIER ;
/.
case $rule_number: {
AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(2).sval, sym(3).sval);
- node->publicToken = loc(1);
- node->attributeTypeToken = loc(2);
+ node->propertyToken = loc(1);
+ node->typeToken = loc(2);
node->identifierToken = loc(3);
sym(1).Node = node;
} break;
./
-UiObjectMember: T_PUBLIC T_DEFAULT T_IDENTIFIER T_IDENTIFIER ;
+UiObjectMember: T_DEFAULT T_PROPERTY UiPropertyType T_IDENTIFIER ;
/.
case $rule_number: {
AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(3).sval, sym(4).sval);
node->isDefaultMember = true;
- node->publicToken = loc(1);
- node->attributeTypeToken = loc(3);
+ node->propertyToken = loc(1);
+ node->typeToken = loc(3);
node->identifierToken = loc(4);
sym(1).Node = node;
} break;
./
-UiObjectMember: T_PUBLIC T_IDENTIFIER T_IDENTIFIER T_COLON Expression ;
+UiObjectMember: T_PROPERTY UiPropertyType T_IDENTIFIER T_COLON Expression ;
/.
case $rule_number: {
AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(2).sval, sym(3).sval,
sym(5).Expression);
- node->publicToken = loc(1);
- node->attributeTypeToken = loc(2);
+ node->propertyToken = loc(1);
+ node->typeToken = loc(2);
node->identifierToken = loc(3);
node->colonToken = loc(4);
sym(1).Node = node;
} break;
./
-UiObjectMember: T_PUBLIC T_DEFAULT T_IDENTIFIER T_IDENTIFIER T_COLON Expression ;
+UiObjectMember: T_DEFAULT T_PROPERTY UiPropertyType T_IDENTIFIER T_COLON Expression ;
/.
case $rule_number: {
AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(3).sval, sym(4).sval,
sym(6).Expression);
node->isDefaultMember = true;
- node->publicToken = loc(1);
- node->attributeTypeToken = loc(3);
+ node->propertyToken = loc(1);
+ node->typeToken = loc(3);
node->identifierToken = loc(4);
node->colonToken = loc(5);
sym(1).Node = node;
@@ -723,7 +738,20 @@ case $rule_number:
} break;
./
-UiQualifiedId: T_IDENTIFIER ;
+JsIdentifier: T_IDENTIFIER;
+JsIdentifier: T_PROPERTY ;
+/.
+case $rule_number:
+./
+JsIdentifier: T_SIGNAL ;
+/.
+case $rule_number: {
+ sym(1).sval = driver->intern(lexer->characterBuffer(), lexer->characterCount());
+ break;
+}
+./
+
+UiQualifiedId: JsIdentifier ;
/.
case $rule_number: {
AST::UiQualifiedId *node = makeAstNode<AST::UiQualifiedId> (driver->nodePool(), sym(1).sval);
@@ -732,7 +760,7 @@ case $rule_number: {
} break;
./
-UiQualifiedId: UiQualifiedId T_DOT T_IDENTIFIER ;
+UiQualifiedId: UiQualifiedId T_DOT JsIdentifier ;
/.
case $rule_number: {
AST::UiQualifiedId *node = makeAstNode<AST::UiQualifiedId> (driver->nodePool(), sym(1).UiQualifiedId, sym(3).sval);
@@ -745,6 +773,7 @@ case $rule_number: {
--------------------------------------------------------------------------------------------------------
-- Expressions
--------------------------------------------------------------------------------------------------------
+
PrimaryExpression: T_THIS ;
/.
case $rule_number: {
@@ -754,7 +783,7 @@ case $rule_number: {
} break;
./
-PrimaryExpression: T_IDENTIFIER ;
+PrimaryExpression: JsIdentifier ;
/.
case $rule_number: {
AST::IdentifierExpression *node = makeAstNode<AST::IdentifierExpression> (driver->nodePool(), sym(1).sval);
@@ -996,6 +1025,16 @@ case $rule_number: {
} break;
./
+PropertyName: T_SIGNAL ;
+PropertyName: T_PROPERTY ;
+/.
+case $rule_number: {
+ AST::IdentifierPropertyName *node = makeAstNode<AST::IdentifierPropertyName> (driver->nodePool(), driver->intern(lexer->characterBuffer(), lexer->characterCount()));
+ node->propertyNameToken = loc(1);
+ sym(1).Node = node;
+} break;
+./
+
PropertyName: T_STRING_LITERAL ;
/.
case $rule_number: {
@@ -1151,7 +1190,7 @@ case $rule_number:
} break;
./
-PropertyIdentifier: T_IDENTIFIER ;
+PropertyIdentifier: JsIdentifier ;
PropertyIdentifier: ReservedIdentifier ;
MemberExpression: PrimaryExpression ;
@@ -2064,7 +2103,7 @@ case $rule_number: {
} break;
./
-VariableDeclaration: T_IDENTIFIER InitialiserOpt ;
+VariableDeclaration: JsIdentifier InitialiserOpt ;
/.
case $rule_number: {
AST::VariableDeclaration *node = makeAstNode<AST::VariableDeclaration> (driver->nodePool(), sym(1).sval, sym(2).Expression);
@@ -2073,7 +2112,7 @@ case $rule_number: {
} break;
./
-VariableDeclarationNotIn: T_IDENTIFIER InitialiserNotInOpt ;
+VariableDeclarationNotIn: JsIdentifier InitialiserNotInOpt ;
/.
case $rule_number: {
AST::VariableDeclaration *node = makeAstNode<AST::VariableDeclaration> (driver->nodePool(), sym(1).sval, sym(2).Expression);
@@ -2252,8 +2291,8 @@ case $rule_number: {
} break;
./
-ContinueStatement: T_CONTINUE T_IDENTIFIER T_AUTOMATIC_SEMICOLON ; -- automatic semicolon
-ContinueStatement: T_CONTINUE T_IDENTIFIER T_SEMICOLON ;
+ContinueStatement: T_CONTINUE JsIdentifier T_AUTOMATIC_SEMICOLON ; -- automatic semicolon
+ContinueStatement: T_CONTINUE JsIdentifier T_SEMICOLON ;
/.
case $rule_number: {
AST::ContinueStatement *node = makeAstNode<AST::ContinueStatement> (driver->nodePool(), sym(2).sval);
@@ -2275,8 +2314,8 @@ case $rule_number: {
} break;
./
-BreakStatement: T_BREAK T_IDENTIFIER T_AUTOMATIC_SEMICOLON ; -- automatic semicolon
-BreakStatement: T_BREAK T_IDENTIFIER T_SEMICOLON ;
+BreakStatement: T_BREAK JsIdentifier T_AUTOMATIC_SEMICOLON ; -- automatic semicolon
+BreakStatement: T_BREAK JsIdentifier T_SEMICOLON ;
/.
case $rule_number: {
AST::BreakStatement *node = makeAstNode<AST::BreakStatement> (driver->nodePool(), sym(2).sval);
@@ -2388,6 +2427,17 @@ case $rule_number: {
} break;
./
+LabelledStatement: T_SIGNAL T_COLON Statement ;
+LabelledStatement: T_PROPERTY T_COLON Statement ;
+/.
+case $rule_number: {
+ AST::LabelledStatement *node = makeAstNode<AST::LabelledStatement> (driver->nodePool(), driver->intern(lexer->characterBuffer(), lexer->characterCount()), sym(3).Statement);
+ node->identifierToken = loc(1);
+ node->colonToken = loc(2);
+ sym(1).Node = node;
+} break;
+./
+
LabelledStatement: T_IDENTIFIER T_COLON Statement ;
/.
case $rule_number: {
@@ -2436,7 +2486,7 @@ case $rule_number: {
} break;
./
-Catch: T_CATCH T_LPAREN T_IDENTIFIER T_RPAREN Block ;
+Catch: T_CATCH T_LPAREN JsIdentifier T_RPAREN Block ;
/.
case $rule_number: {
AST::Catch *node = makeAstNode<AST::Catch> (driver->nodePool(), sym(3).sval, sym(5).Block);
@@ -2468,6 +2518,21 @@ case $rule_number: {
} break;
./
+FunctionDeclaration: T_FUNCTION T_SIGNAL T_LPAREN FormalParameterListOpt T_RPAREN T_LBRACE FunctionBodyOpt T_RBRACE ;
+FunctionDeclaration: T_FUNCTION T_PROPERTY T_LPAREN FormalParameterListOpt T_RPAREN T_LBRACE FunctionBodyOpt T_RBRACE ;
+/.
+case $rule_number: {
+ AST::FunctionDeclaration *node = makeAstNode<AST::FunctionDeclaration> (driver->nodePool(), driver->intern(lexer->characterBuffer(), lexer->characterCount()), sym(4).FormalParameterList, sym(7).FunctionBody);
+ node->functionToken = loc(1);
+ node->identifierToken = loc(2);
+ node->lparenToken = loc(3);
+ node->rparenToken = loc(5);
+ node->lbraceToken = loc(6);
+ node->rbraceToken = loc(8);
+ sym(1).Node = node;
+} break;
+./
+
FunctionDeclaration: T_FUNCTION T_IDENTIFIER T_LPAREN FormalParameterListOpt T_RPAREN T_LBRACE FunctionBodyOpt T_RBRACE ;
/.
case $rule_number: {
@@ -2497,7 +2562,7 @@ case $rule_number: {
} break;
./
-FormalParameterList: T_IDENTIFIER ;
+FormalParameterList: JsIdentifier ;
/.
case $rule_number: {
AST::FormalParameterList *node = makeAstNode<AST::FormalParameterList> (driver->nodePool(), sym(1).sval);
@@ -2506,7 +2571,7 @@ case $rule_number: {
} break;
./
-FormalParameterList: FormalParameterList T_COMMA T_IDENTIFIER ;
+FormalParameterList: FormalParameterList T_COMMA JsIdentifier ;
/.
case $rule_number: {
AST::FormalParameterList *node = makeAstNode<AST::FormalParameterList> (driver->nodePool(), sym(1).FormalParameterList, sym(3).sval);
@@ -2589,7 +2654,7 @@ case $rule_number: {
} break;
./
-IdentifierOpt: T_IDENTIFIER ;
+IdentifierOpt: JsIdentifier ;
PropertyNameAndValueListOpt: ;
/.
diff --git a/src/declarative/qml/parser/javascriptast_p.h b/src/declarative/qml/parser/javascriptast_p.h
index 4aa89c9..f32a48c 100644
--- a/src/declarative/qml/parser/javascriptast_p.h
+++ b/src/declarative/qml/parser/javascriptast_p.h
@@ -2336,7 +2336,7 @@ public:
{ kind = K; }
virtual SourceLocation firstSourceLocation() const
- { return publicToken; }
+ { return propertyToken; }
virtual SourceLocation lastSourceLocation() const
{
@@ -2346,9 +2346,9 @@ public:
return colonToken;
else if (identifierToken.isValid())
return identifierToken;
- else if (attributeTypeToken.isValid())
- return attributeTypeToken;
- return publicToken;
+ else if (typeToken.isValid())
+ return typeToken;
+ return propertyToken;
}
virtual void accept0(Visitor *visitor);
@@ -2358,8 +2358,8 @@ public:
JavaScriptNameIdImpl *name;
ExpressionNode *expression;
bool isDefaultMember;
- SourceLocation publicToken;
- SourceLocation attributeTypeToken;
+ SourceLocation propertyToken;
+ SourceLocation typeToken;
SourceLocation identifierToken;
SourceLocation colonToken;
};
diff --git a/src/declarative/qml/parser/javascriptgrammar.cpp b/src/declarative/qml/parser/javascriptgrammar.cpp
index 9fceeb8..3fac1ed 100644
--- a/src/declarative/qml/parser/javascriptgrammar.cpp
+++ b/src/declarative/qml/parser/javascriptgrammar.cpp
@@ -49,627 +49,645 @@ const char *const JavaScriptGrammar::spell [] = {
"if", "in", "instanceof", "{", "[", "<=", "(", "<", "<<", "<<=",
"-", "-=", "--", "new", "!", "!=", "!==", "numeric literal", "|", "|=",
"||", "+", "+=", "++", "?", "}", "]", "%", "%=", "return",
- ")", ";", 0, "*", "*=", "string literal", "switch", "this", "throw", "~",
- "try", "typeof", "var", "void", "while", "with", "^", "^=", "null", "true",
- "false", "const", "debugger", "reserved word", "multiline string literal", "public", "import", 0, 0};
+ ")", ";", 0, "*", "*=", "string literal", "property", "signal", "switch", "this",
+ "throw", "~", "try", "typeof", "var", "void", "while", "with", "^", "^=",
+ "null", "true", "false", "const", "debugger", "reserved word", "multiline string literal", "public", "import", 0,
+ 0};
const int JavaScriptGrammar::lhs [] = {
- 89, 90, 90, 93, 93, 94, 94, 92, 91, 91,
- 96, 96, 98, 98, 97, 95, 97, 95, 97, 95,
- 100, 101, 101, 95, 97, 95, 95, 95, 95, 95,
- 95, 95, 99, 99, 99, 99, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 108, 108, 112, 112, 107, 107, 110, 110, 113,
- 113, 113, 113, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 115, 115, 116, 116, 116, 116,
- 116, 119, 119, 120, 120, 120, 120, 118, 118, 121,
- 121, 122, 122, 123, 123, 123, 124, 124, 124, 124,
- 124, 124, 124, 124, 124, 124, 125, 125, 125, 125,
- 126, 126, 126, 127, 127, 127, 127, 128, 128, 128,
- 128, 128, 128, 128, 129, 129, 129, 129, 129, 129,
- 130, 130, 130, 130, 130, 131, 131, 131, 131, 131,
- 132, 132, 133, 133, 134, 134, 135, 135, 136, 136,
+ 91, 92, 92, 95, 95, 96, 96, 94, 93, 93,
+ 98, 98, 100, 100, 99, 97, 99, 97, 99, 97,
+ 102, 103, 103, 97, 99, 97, 105, 105, 105, 97,
+ 97, 97, 97, 97, 97, 101, 101, 109, 109, 109,
+ 101, 101, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 112, 112, 116,
+ 116, 111, 111, 114, 114, 117, 117, 117, 117, 117,
+ 117, 118, 118, 118, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
+ 118, 118, 119, 119, 120, 120, 120, 120, 120, 123,
+ 123, 124, 124, 124, 124, 122, 122, 125, 125, 126,
+ 126, 127, 127, 127, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 129, 129, 129, 129, 130, 130,
+ 130, 131, 131, 131, 131, 132, 132, 132, 132, 132,
+ 132, 132, 133, 133, 133, 133, 133, 133, 134, 134,
+ 134, 134, 134, 135, 135, 135, 135, 135, 136, 136,
137, 137, 138, 138, 139, 139, 140, 140, 141, 141,
- 142, 142, 143, 143, 111, 111, 144, 144, 145, 145,
- 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
- 103, 103, 146, 146, 147, 147, 148, 148, 102, 102,
- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
- 102, 102, 102, 149, 164, 164, 163, 163, 105, 105,
- 165, 165, 166, 166, 168, 168, 167, 169, 172, 170,
- 170, 173, 171, 171, 150, 151, 151, 152, 152, 153,
- 153, 153, 153, 153, 153, 153, 154, 154, 154, 154,
- 155, 155, 155, 155, 156, 156, 157, 159, 174, 174,
- 177, 177, 175, 175, 178, 176, 158, 160, 160, 161,
- 161, 161, 179, 180, 162, 162, 104, 117, 184, 184,
- 181, 181, 182, 182, 185, 186, 186, 187, 187, 183,
- 183, 109, 109, 188};
+ 142, 142, 143, 143, 144, 144, 145, 145, 146, 146,
+ 147, 147, 115, 115, 148, 148, 149, 149, 149, 149,
+ 149, 149, 149, 149, 149, 149, 149, 149, 106, 106,
+ 150, 150, 151, 151, 152, 152, 104, 104, 104, 104,
+ 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
+ 104, 153, 168, 168, 167, 167, 108, 108, 169, 169,
+ 170, 170, 172, 172, 171, 173, 176, 174, 174, 177,
+ 175, 175, 154, 155, 155, 156, 156, 157, 157, 157,
+ 157, 157, 157, 157, 158, 158, 158, 158, 159, 159,
+ 159, 159, 160, 160, 161, 163, 178, 178, 181, 181,
+ 179, 179, 182, 180, 162, 162, 162, 164, 164, 165,
+ 165, 165, 183, 184, 166, 166, 107, 107, 107, 121,
+ 188, 188, 185, 185, 186, 186, 189, 190, 190, 191,
+ 191, 187, 187, 113, 113, 192};
const int JavaScriptGrammar:: rhs[] = {
2, 1, 1, 1, 2, 3, 3, 0, 1, 2,
1, 3, 2, 3, 4, 4, 2, 2, 5, 5,
- 1, 2, 2, 3, 3, 3, 3, 4, 5, 6,
- 1, 1, 1, 1, 1, 3, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 3, 3, 5, 3, 4,
- 3, 2, 4, 1, 2, 0, 1, 3, 5, 1,
+ 1, 2, 2, 3, 3, 3, 1, 1, 1, 3,
+ 4, 5, 6, 1, 1, 1, 1, 1, 1, 1,
+ 1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 3, 3, 5, 3, 4, 3, 2, 4, 1,
+ 2, 0, 1, 3, 5, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 4, 3,
- 5, 1, 2, 4, 4, 4, 3, 0, 1, 1,
- 3, 1, 1, 1, 2, 2, 1, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 1, 3, 3, 3,
- 1, 3, 3, 1, 3, 3, 3, 1, 3, 3,
- 3, 3, 3, 3, 1, 3, 3, 3, 3, 3,
- 1, 3, 3, 3, 3, 1, 3, 3, 3, 3,
+ 1, 1, 1, 1, 1, 1, 4, 3, 5, 1,
+ 2, 4, 4, 4, 3, 0, 1, 1, 3, 1,
+ 1, 1, 2, 2, 1, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 1, 3, 3, 3, 1, 3,
+ 3, 1, 3, 3, 3, 1, 3, 3, 3, 3,
+ 3, 3, 1, 3, 3, 3, 3, 3, 1, 3,
+ 3, 3, 3, 1, 3, 3, 3, 3, 1, 3,
1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
- 1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
- 1, 5, 1, 5, 1, 3, 1, 3, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 3, 0, 1, 1, 3, 0, 1, 1, 1,
+ 1, 3, 1, 3, 1, 3, 1, 3, 1, 5,
+ 1, 5, 1, 3, 1, 3, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
+ 0, 1, 1, 3, 0, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 3, 1, 2, 0, 1, 3, 3,
- 1, 1, 1, 3, 1, 3, 2, 2, 2, 0,
- 1, 2, 0, 1, 1, 2, 2, 7, 5, 7,
- 7, 5, 9, 10, 7, 8, 2, 2, 3, 3,
- 2, 2, 3, 3, 3, 3, 5, 5, 3, 5,
- 1, 2, 0, 1, 4, 3, 3, 3, 3, 3,
- 3, 4, 5, 2, 2, 2, 8, 8, 1, 3,
- 0, 1, 0, 1, 1, 1, 2, 1, 1, 0,
- 1, 0, 1, 2};
+ 1, 3, 1, 2, 0, 1, 3, 3, 1, 1,
+ 1, 3, 1, 3, 2, 2, 2, 0, 1, 2,
+ 0, 1, 1, 2, 2, 7, 5, 7, 7, 5,
+ 9, 10, 7, 8, 2, 2, 3, 3, 2, 2,
+ 3, 3, 3, 3, 5, 5, 3, 5, 1, 2,
+ 0, 1, 4, 3, 3, 3, 3, 3, 3, 3,
+ 3, 4, 5, 2, 2, 2, 8, 8, 8, 8,
+ 1, 3, 0, 1, 0, 1, 1, 1, 2, 1,
+ 1, 0, 1, 0, 1, 2};
const int JavaScriptGrammar::action_default [] = {
8, 2, 0, 4, 3, 0, 0, 0, 6, 7,
- 5, 31, 231, 0, 35, 0, 33, 34, 232, 9,
- 1, 0, 0, 32, 0, 291, 292, 0, 289, 0,
- 290, 0, 293, 134, 201, 165, 173, 169, 209, 216,
- 113, 185, 215, 223, 211, 161, 0, 212, 294, 0,
- 299, 98, 213, 214, 219, 114, 177, 181, 102, 131,
- 112, 117, 97, 151, 217, 138, 296, 295, 298, 220,
- 0, 0, 0, 0, 44, 45, 0, 41, 0, 300,
- 38, 0, 302, 56, 0, 0, 0, 0, 0, 39,
- 42, 0, 0, 203, 245, 43, 0, 37, 0, 0,
- 40, 0, 0, 0, 0, 0, 221, 222, 127, 210,
- 218, 0, 0, 114, 133, 300, 38, 302, 116, 115,
- 0, 0, 0, 129, 130, 128, 0, 301, 291, 0,
- 0, 293, 0, 288, 0, 303, 0, 63, 64, 65,
- 66, 91, 67, 92, 68, 69, 70, 71, 72, 73,
- 74, 75, 60, 76, 77, 78, 79, 80, 62, 93,
- 81, 61, 82, 83, 84, 85, 86, 87, 88, 89,
- 90, 94, 0, 58, 0, 0, 50, 0, 59, 49,
- 132, 0, 162, 0, 0, 0, 0, 152, 0, 0,
- 0, 0, 0, 0, 142, 0, 0, 0, 136, 137,
- 135, 140, 144, 143, 141, 139, 154, 153, 155, 0,
- 170, 0, 166, 0, 0, 108, 107, 96, 95, 0,
- 0, 106, 202, 109, 0, 110, 0, 111, 105, 246,
- 247, 287, 0, 198, 191, 189, 196, 197, 195, 194,
- 200, 193, 192, 190, 199, 186, 0, 174, 0, 0,
- 178, 0, 0, 182, 0, 0, 108, 100, 0, 99,
- 0, 104, 297, 261, 0, 262, 263, 264, 257, 0,
- 258, 259, 260, 285, 286, 118, 0, 0, 0, 0,
- 0, 250, 251, 207, 205, 167, 175, 171, 187, 163,
- 208, 0, 114, 179, 183, 156, 145, 0, 0, 164,
- 0, 0, 0, 0, 157, 0, 0, 0, 0, 0,
- 149, 147, 150, 148, 146, 159, 158, 160, 0, 172,
- 0, 168, 0, 206, 114, 0, 188, 203, 204, 0,
- 203, 0, 0, 253, 0, 0, 0, 255, 0, 176,
- 0, 0, 180, 0, 0, 184, 243, 0, 235, 244,
- 238, 0, 242, 0, 203, 236, 0, 203, 0, 0,
- 254, 0, 0, 0, 256, 301, 0, 277, 0, 0,
- 0, 249, 0, 248, 225, 228, 0, 64, 91, 67,
- 92, 69, 70, 41, 74, 75, 38, 76, 79, 39,
- 42, 203, 43, 82, 37, 84, 40, 86, 87, 88,
- 89, 90, 94, 226, 224, 102, 103, 108, 0, 101,
- 0, 265, 266, 0, 0, 0, 268, 273, 271, 274,
- 0, 0, 272, 273, 0, 269, 0, 270, 227, 276,
- 0, 227, 275, 0, 278, 279, 0, 227, 280, 281,
- 0, 0, 282, 0, 0, 0, 283, 284, 120, 119,
- 0, 0, 0, 252, 0, 0, 0, 267, 0, 57,
- 0, 54, 56, 47, 0, 53, 48, 55, 52, 46,
- 0, 51, 124, 122, 126, 123, 121, 125, 0, 18,
- 13, 0, 14, 10, 0, 0, 0, 28, 0, 30,
- 27, 0, 29, 0, 0, 26, 38, 56, 21, 0,
- 24, 16, 35, 0, 11, 0, 17, 0, 20, 12,
- 0, 25, 38, 56, 15, 0, 19, 22, 23, 36,
- 240, 233, 0, 241, 237, 0, 239, 229, 0, 230,
- 234, 304};
+ 5, 34, 41, 239, 0, 0, 38, 39, 36, 37,
+ 40, 240, 9, 1, 0, 0, 35, 0, 29, 28,
+ 27, 0, 31, 0, 142, 209, 173, 181, 177, 121,
+ 193, 169, 33, 106, 44, 122, 185, 189, 110, 139,
+ 120, 125, 105, 159, 146, 0, 50, 51, 47, 312,
+ 38, 314, 62, 0, 0, 0, 0, 0, 45, 48,
+ 0, 0, 39, 49, 43, 0, 46, 0, 0, 135,
+ 0, 0, 122, 141, 124, 123, 0, 0, 0, 137,
+ 138, 136, 140, 0, 170, 0, 0, 0, 0, 160,
+ 0, 0, 0, 0, 0, 0, 150, 0, 0, 0,
+ 144, 145, 143, 148, 152, 151, 149, 147, 162, 161,
+ 163, 0, 178, 0, 174, 0, 0, 116, 103, 115,
+ 104, 72, 73, 74, 99, 75, 100, 76, 77, 78,
+ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
+ 101, 89, 90, 91, 92, 93, 94, 95, 96, 97,
+ 98, 102, 0, 0, 114, 210, 117, 0, 118, 0,
+ 119, 113, 0, 206, 199, 197, 204, 205, 203, 202,
+ 208, 201, 200, 198, 207, 194, 0, 182, 0, 0,
+ 186, 0, 0, 190, 0, 0, 116, 108, 0, 107,
+ 0, 112, 126, 0, 313, 303, 304, 0, 301, 0,
+ 302, 0, 305, 217, 224, 223, 231, 219, 0, 220,
+ 306, 0, 311, 221, 222, 227, 225, 308, 307, 310,
+ 228, 0, 0, 0, 0, 0, 312, 38, 0, 314,
+ 39, 211, 253, 40, 0, 0, 0, 0, 0, 229,
+ 230, 218, 226, 254, 255, 300, 309, 0, 269, 270,
+ 271, 272, 0, 265, 266, 267, 268, 295, 296, 0,
+ 0, 0, 0, 0, 258, 259, 215, 213, 175, 183,
+ 179, 195, 171, 216, 0, 122, 187, 191, 164, 153,
+ 0, 0, 172, 0, 0, 0, 0, 165, 0, 0,
+ 0, 0, 0, 157, 155, 158, 156, 154, 167, 166,
+ 168, 0, 180, 0, 176, 0, 214, 122, 0, 196,
+ 211, 212, 0, 211, 0, 0, 261, 0, 0, 0,
+ 263, 0, 184, 0, 0, 188, 0, 0, 192, 251,
+ 0, 243, 252, 246, 0, 250, 0, 211, 244, 0,
+ 211, 0, 0, 262, 0, 0, 0, 264, 38, 39,
+ 40, 303, 0, 0, 305, 0, 299, 303, 0, 0,
+ 305, 0, 298, 303, 0, 0, 305, 0, 297, 0,
+ 287, 0, 0, 0, 257, 0, 256, 0, 315, 0,
+ 71, 233, 236, 0, 72, 239, 75, 100, 77, 78,
+ 47, 82, 83, 38, 84, 87, 45, 48, 39, 211,
+ 40, 49, 90, 43, 92, 46, 94, 95, 240, 97,
+ 98, 102, 0, 64, 0, 0, 66, 70, 68, 56,
+ 67, 69, 0, 65, 55, 234, 232, 110, 111, 116,
+ 0, 109, 0, 286, 0, 273, 274, 0, 285, 0,
+ 0, 0, 276, 281, 279, 282, 0, 0, 280, 281,
+ 0, 277, 0, 278, 235, 284, 0, 235, 283, 0,
+ 288, 289, 0, 235, 290, 291, 0, 0, 292, 0,
+ 0, 0, 293, 294, 128, 127, 0, 0, 0, 260,
+ 0, 0, 0, 275, 0, 63, 0, 60, 62, 53,
+ 0, 59, 54, 61, 58, 52, 0, 57, 132, 130,
+ 134, 131, 129, 133, 0, 0, 0, 0, 18, 13,
+ 0, 14, 10, 0, 30, 0, 32, 0, 0, 26,
+ 38, 62, 21, 0, 24, 16, 38, 0, 11, 0,
+ 17, 0, 20, 12, 0, 25, 38, 62, 15, 0,
+ 19, 22, 23, 42, 248, 241, 0, 249, 245, 0,
+ 247, 237, 0, 238, 242, 316};
const int JavaScriptGrammar::goto_default [] = {
- 6, 5, 20, 1, 4, 3, 19, 503, 504, 479,
- 21, 499, 500, 374, 46, 11, 109, 62, 460, 458,
- 136, 135, 34, 459, 134, 137, 216, 58, 51, 224,
- 60, 40, 223, 55, 61, 108, 59, 33, 65, 63,
- 295, 45, 289, 35, 285, 37, 287, 36, 286, 56,
- 293, 57, 294, 41, 288, 284, 325, 410, 290, 291,
- 38, 44, 47, 52, 53, 42, 39, 64, 110, 54,
- 69, 106, 107, 43, 376, 375, 22, 522, 521, 347,
- 348, 524, 350, 523, 349, 416, 420, 423, 419, 418,
- 438, 439, 27, 49, 126, 26, 48, 67, 66, 0};
+ 6, 5, 23, 1, 4, 3, 22, 537, 538, 518,
+ 24, 533, 534, 229, 523, 218, 222, 251, 44, 52,
+ 496, 494, 389, 388, 35, 495, 387, 390, 129, 48,
+ 43, 167, 50, 39, 166, 45, 51, 79, 49, 34,
+ 54, 53, 288, 41, 282, 36, 278, 38, 280, 37,
+ 279, 46, 286, 47, 287, 40, 281, 277, 318, 444,
+ 283, 284, 213, 217, 219, 223, 224, 215, 214, 226,
+ 252, 225, 230, 249, 250, 216, 393, 392, 25, 556,
+ 555, 340, 341, 558, 343, 557, 342, 452, 456, 459,
+ 455, 454, 474, 475, 207, 221, 203, 206, 220, 228,
+ 227, 0};
const int JavaScriptGrammar::action_index [] = {
- 67, -89, 30, -89, 67, 346, 173, 79, -89, -89,
- -89, -89, -89, 32, 33, 90, -89, -89, -89, -89,
- 336, 106, 45, -89, 55, 65, 85, 66, -89, 70,
- -89, 59, 1539, 111, -89, 11, -34, -17, -89, -89,
- 188, -89, -89, -89, -89, 269, 150, -89, -89, -51,
- -89, -89, -89, -89, -89, 549, 41, 146, 247, 158,
- -89, -89, -89, 329, -89, 311, -89, 1539, -89, -89,
- 196, 191, 118, 713, -89, -89, 1454, -89, -23, 16,
- 83, 61, 1709, 78, 713, 713, 713, 452, 713, -89,
- -89, 713, 713, 713, -89, -89, 47, -89, 713, 713,
- -89, 37, 713, 713, 73, 53, -89, -89, -89, -89,
- -89, 713, 713, 76, 193, 46, -89, 1199, -89, -89,
- 713, 713, 713, -89, -89, -89, -25, -89, -13, -52,
- -9, 1539, 60, -89, 77, 80, 17, -89, -89, -89,
- -89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
- -89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
- -89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
- -89, -89, 713, -89, 1284, 21, -89, 713, -89, -89,
- 211, 713, 267, 713, 713, 713, 713, 319, 713, 713,
- 713, 713, 713, 713, 201, 713, 713, 713, 96, 91,
- 110, 189, 242, 246, 238, 234, 359, 339, 349, 713,
- 63, 713, 68, 1114, 713, 713, -89, -89, -89, 104,
- 713, -89, -89, 69, 18, -89, 713, -89, -89, -89,
- -89, -89, 713, -89, -89, -89, -89, -89, -89, -89,
- -89, -89, -89, -89, -89, -89, 713, 48, 713, 713,
- 74, 64, 713, -89, 1114, 713, 713, -89, 116, -89,
- 2, -89, -89, -89, 87, -89, -89, -89, -89, 113,
- -89, -89, -89, -89, -89, -89, 56, 62, 713, 103,
- 130, -89, -89, 791, -89, 84, -38, -67, -89, 260,
- 10, -41, 635, 20, 117, 302, 239, -10, 713, 271,
- 713, 713, 713, 713, 272, 713, 713, 713, 713, 713,
- 208, 222, 205, 213, 217, 287, 377, 377, 713, -73,
- 713, 84, 713, -89, 463, 713, -89, 713, 42, -15,
- 713, -16, 1454, -89, 713, 144, 1454, -89, 713, 6,
- 713, 713, 54, 51, 713, -89, 38, 95, 26, -89,
- -89, 713, -89, -2, 713, -89, -31, 713, -37, 1454,
- -89, 713, 99, 1454, -89, 4, 1454, -89, 713, 97,
- 1454, 22, 1454, -89, -89, 1454, 49, 140, 5, 147,
- 82, 713, 1454, 29, 1, 81, 34, 3, 538, 28,
- 25, 873, 19, -3, 24, 713, 35, 14, 713, 23,
- 713, 15, 27, -89, -89, 163, -89, 713, -7, -89,
- 128, -89, -89, 713, 138, -8, -89, 44, -89, 43,
- 127, 713, -89, 12, -1, -89, -50, -89, 1454, -89,
- 115, 1454, -89, 175, -89, -89, 108, 1454, -18, -89,
- -29, -4, -89, -28, -60, -4, -89, -89, -89, -89,
- 713, 124, 1454, -89, 713, 125, 1454, -89, 112, 13,
- 1029, -89, 7, -89, 951, -89, -89, -89, -89, -89,
- 126, -89, -89, -89, -89, -89, -89, -89, 356, -89,
- -89, 375, -89, -89, 39, 31, 36, 57, 713, 71,
- 75, 713, 72, 1624, 52, -89, 131, 274, -89, 133,
- -89, -89, 40, 137, -89, 101, -89, 148, -89, -89,
- 1369, -89, 94, 262, -89, 98, -89, -89, -89, -89,
- 50, -89, 157, -89, -89, 713, -89, -89, 58, -89,
- -89, -89,
+ -12, -91, 60, -91, 63, 378, 95, 113, -91, -91,
+ -91, -91, -91, -91, 73, 162, 72, 166, -91, -91,
+ -91, -91, -91, 420, 131, 160, -91, 161, -91, -91,
+ -91, 44, 75, 700, 129, -91, 87, 52, 49, 182,
+ -91, 300, 71, -91, -91, 541, 76, 91, 259, 227,
+ -91, -91, -91, 360, 317, 700, -91, -91, -91, 170,
+ -91, 1198, 66, 700, 700, 700, 620, 700, -91, -91,
+ 700, 700, -91, -91, -91, 700, -91, 700, 700, -91,
+ 700, 700, 106, 175, -91, -91, 700, 700, 700, -91,
+ -91, -91, 210, 700, 283, 700, 700, 700, 700, 453,
+ 700, 700, 700, 700, 700, 700, 222, 700, 700, 700,
+ 96, 83, 82, 244, 317, 176, 241, 238, 453, 453,
+ 379, 700, 74, 700, 93, 1111, 700, 700, -91, -91,
+ -91, -91, -91, -91, -91, -91, -91, -91, -91, -91,
+ -91, -91, -91, -91, -91, -91, -91, -91, -91, -91,
+ -91, -91, -91, -91, -91, -91, -91, -91, -91, -91,
+ -91, -91, 153, 700, -91, -91, 84, 69, -91, 700,
+ -91, -91, 700, -91, -91, -91, -91, -91, -91, -91,
+ -91, -91, -91, -91, -91, -91, 700, 67, 700, 700,
+ 64, 65, 700, -91, 1111, 700, 700, -91, 112, -91,
+ 42, -91, -91, 41, -91, 167, 62, 36, -91, 265,
+ -91, 57, 1546, -91, -91, -91, -91, -91, 216, -91,
+ -91, 43, -91, -91, -91, -91, -91, -91, 1546, -91,
+ -91, 286, 320, 92, 1459, 48, 256, 68, 33, 1720,
+ 80, 700, -91, 86, 77, 700, 50, 53, 61, -91,
+ -91, -91, -91, -91, -91, -91, -91, 105, -91, -91,
+ -91, -91, 121, -91, -91, -91, -91, -91, -91, 56,
+ 55, 700, 165, 124, -91, -91, 780, -91, 70, 32,
+ 3, -91, 292, 59, 45, 521, 168, 127, 385, 317,
+ 191, 700, 294, 700, 700, 700, 700, 385, 700, 700,
+ 700, 700, 700, 223, 183, 179, 237, 245, 385, 385,
+ 385, 700, -47, 700, 16, 700, -91, 541, 700, -91,
+ 700, 11, -43, 700, -44, 1459, -91, 700, 118, 1459,
+ -91, 700, -35, 700, 700, 19, 15, 700, -91, 10,
+ 123, -1, -91, -91, 700, -91, 225, 700, -91, -46,
+ 700, -59, 1459, -91, 700, 171, 1459, -91, -32, -26,
+ -27, 260, -37, 24, 1546, 30, -91, 267, 8, 31,
+ 1546, 0, -91, 214, -8, 18, 1546, -18, -91, 1459,
+ -91, 700, 103, 1459, 22, 1459, -91, 28, 25, -23,
+ -91, -91, 1459, -15, 312, 47, 301, 94, 700, 1459,
+ 38, 5, 269, 29, 27, 620, 51, 58, 54, 944,
+ 46, 1, -29, 4, 700, 79, -9, 700, 21, 700,
+ -10, -7, 700, -91, 1285, 7, -91, -91, -91, -91,
+ -91, -91, 700, -91, -91, -91, -91, 177, -91, 700,
+ -40, -91, 1459, -91, 88, -91, -91, 1459, -91, 700,
+ 102, -21, -91, 20, -91, -3, 89, 700, -91, -5,
+ -4, -91, -50, -91, 1459, -91, 109, 1459, -91, 194,
+ -91, -91, 101, 1459, 40, -91, 14, 23, -91, 186,
+ 2, 26, -91, -91, -91, -91, 700, 100, 1459, -91,
+ 700, 104, 1459, -91, 116, 35, 1024, -91, 34, -91,
+ 860, -91, -91, -91, -91, -91, 111, -91, -91, -91,
+ -91, -91, -91, -91, -2, 13, 12, 443, -91, -91,
+ 440, -91, -91, 17, 37, 700, 39, 1633, 258, -91,
+ 97, 369, -91, 81, -91, -91, 6, 251, -91, 150,
+ -91, 291, -91, -91, 1372, -91, 107, 346, -91, 120,
+ -91, -91, -91, -91, -11, -91, 180, -91, -91, 700,
+ -91, -91, 178, -91, -91, -91,
- -100, -100, -100, -100, 12, 4, -100, -100, -100, -100,
- -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
- 59, -100, -100, -100, -100, -100, -100, -100, -100, -100,
- -100, -100, 117, -100, -100, -100, -100, -100, -100, -100,
- -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
- -100, -100, -100, -100, -100, -54, -100, -100, -100, -100,
- -100, -100, -100, -100, -100, -100, -100, 184, -100, -100,
- -100, -100, -100, 116, -100, -100, 47, -100, -100, -100,
- -100, -100, -100, -100, 39, 141, 89, 65, 48, -100,
- -100, 51, 52, 38, -100, -100, -100, -100, 40, 83,
- -100, -16, 61, 66, -100, -100, -100, -100, -100, -100,
- -100, 44, 57, -100, -100, -100, -100, -100, -100, -100,
- 112, 109, 133, -100, -100, -100, -100, -100, -61, -100,
- -100, 193, -100, -100, -100, -100, -100, -100, -100, -100,
- -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
- -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
- -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
- -100, -100, -13, -100, -18, -100, -100, -7, -100, -100,
- -100, 121, -100, 113, 104, 90, 92, -100, 123, 103,
- 101, 102, 95, 137, -100, 145, 132, 126, -100, -100,
- -100, -100, -100, -100, -100, -100, -100, -100, -100, 58,
- -100, 84, -100, 11, 7, 3, -100, -100, -100, -100,
- 6, -100, -100, -100, -100, -100, 10, -100, -100, -100,
- -100, -100, 5, -100, -100, -100, -100, -100, -100, -100,
- -100, -100, -100, -100, -100, -100, 41, -100, 56, -3,
- -100, -100, 0, -100, 147, 64, 138, -100, -100, -100,
- -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
- -100, -100, -100, -100, -100, -100, -100, -100, 2, -100,
- -100, -100, -100, 115, -100, -100, -100, -100, -100, -100,
- -100, -100, -100, -100, -100, -100, -100, -100, 187, -100,
- 154, 195, 183, 198, -100, 33, 73, 82, 71, 75,
- -100, -100, -100, -100, -100, -100, -100, -100, 165, -100,
- 146, -100, 150, -100, -100, 177, -100, 50, -100, -100,
- 53, -100, 22, -100, 9, -100, 45, -100, 171, -100,
- 189, 169, -100, -100, 163, -100, -100, -100, -100, -100,
- -100, 162, -100, -68, 136, -100, -100, 124, -100, -2,
- -100, -4, -100, -5, -100, -100, 46, -100, 43, -100,
- 35, -100, 34, -100, -100, 42, -100, -100, -100, -100,
- -100, 122, 30, -100, -100, -100, -100, -100, 70, -100,
- -100, 49, -100, -100, -100, 36, -100, -15, 86, -100,
- 79, -100, -100, -100, -100, -100, -100, 142, -100, -100,
- -100, -100, -100, 37, -100, -100, -100, -100, -100, -40,
- -100, 32, -100, -44, -100, -100, -100, -100, -33, -100,
- -100, -12, -100, -100, -100, -100, -100, -100, -35, -100,
- -100, -36, -100, -100, -100, -53, -100, -100, -100, -100,
- -1, -100, 1, -100, -10, -100, -8, -100, -100, -100,
- -19, -100, -17, -100, -22, -100, -100, -100, -100, -100,
- -100, -100, -100, -100, -100, -100, -100, -100, 175, -100,
- -100, 236, -100, -100, -100, -100, -100, -100, 19, -100,
- -100, 15, -100, 21, -100, -100, 28, 29, -100, -100,
- -100, -100, 31, -100, -100, -100, -100, 60, -100, -100,
- 25, -100, 17, 62, -100, -100, -100, -100, -100, -100,
- -100, -100, -100, -100, -100, 8, -100, -100, -60, -100,
- -100, -100};
+ -102, -102, -102, -102, 93, 197, -102, -102, -102, -102,
+ -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+ -102, -102, -102, 340, -102, -1, -102, 0, -102, -102,
+ -102, -102, -102, -2, -102, -102, -102, -102, -102, -102,
+ -102, -102, -102, -102, -102, -40, -102, -102, -102, -102,
+ -102, -102, -102, -102, -102, 163, -102, -102, -102, 2,
+ -102, -102, -102, 15, 146, 149, 170, 155, -102, -102,
+ 101, 138, -102, -102, -102, 79, -102, 160, 104, -102,
+ 123, 131, -102, -102, -102, -102, 108, 118, 114, -102,
+ -102, -102, -102, 105, -102, 115, 119, 130, 129, -102,
+ 122, 107, 91, 83, 94, 97, -102, 82, 154, 152,
+ -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+ -102, 133, -102, 132, -102, 244, 44, 37, -102, -102,
+ -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+ -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+ -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+ -102, -102, -102, 16, -102, -102, -102, -102, -102, 22,
+ -102, -102, 17, -102, -102, -102, -102, -102, -102, -102,
+ -102, -102, -102, -102, -102, -102, 73, -102, 74, 46,
+ -102, -102, 48, -102, 214, 49, 80, -102, -102, -102,
+ -102, -102, -102, -102, -102, 50, -102, -102, -102, 55,
+ -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+ -102, -102, -102, -102, -102, -102, -102, -102, -43, -102,
+ -102, 58, 21, -102, 18, -102, 56, -102, -102, 54,
+ -102, 63, -102, -102, -102, 51, 7, -102, -102, -102,
+ -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+ -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+ -102, 60, -102, -102, -102, -102, 59, -102, -102, -102,
+ -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+ 61, 220, -102, 185, 203, 184, 195, -102, 72, 52,
+ 70, 62, 66, -102, -102, -102, -102, -102, -102, -102,
+ -102, 217, -102, 182, -102, 196, -102, -102, 199, -102,
+ 69, -102, -102, 71, -102, 31, -102, 28, -102, 29,
+ -102, 168, -102, 169, 176, -102, -102, 166, -102, -102,
+ -102, -102, -102, -102, 172, -102, 77, 68, -102, -102,
+ 65, -102, 43, -102, 45, -102, 38, -102, -102, -102,
+ -102, 78, -102, -102, -48, -102, -102, 85, -102, -102,
+ -60, -102, -102, 102, -102, -102, -59, -102, -102, 36,
+ -102, 33, -102, 40, -102, 42, -102, -102, -102, -102,
+ -102, -102, 41, -102, 34, -102, 32, -102, 139, 20,
+ -102, -102, 19, -102, -102, 153, -102, -102, -102, 23,
+ -102, -102, -102, -102, 30, -102, -28, 160, -102, 98,
+ -102, -102, 53, -102, 39, -102, -102, -102, -102, -102,
+ -102, -102, 47, -102, -102, -102, -102, -102, -102, 57,
+ -102, -102, -6, -102, -102, -102, -102, -3, -102, -10,
+ -102, -102, -102, -102, -102, -91, -102, -4, -102, -87,
+ -102, -102, -102, -102, 76, -102, -102, 87, -102, -102,
+ -102, -102, -102, 13, -66, -102, -102, -33, -102, 14,
+ -102, -47, -102, -102, -102, -102, 6, -102, 11, -102,
+ 1, -102, 9, -102, -102, -102, -15, -102, -12, -102,
+ 4, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+ -102, -102, -102, -102, -102, -102, -102, 257, -102, -102,
+ 340, -102, -102, -102, -102, -13, -102, 12, 5, -102,
+ 3, 75, -102, -102, -102, -102, 10, -102, -102, -102,
+ -102, 236, -102, -102, -7, -102, -5, 240, -102, -102,
+ -102, -102, -102, -102, -102, -102, -102, -102, -102, -21,
+ -102, -102, 64, -102, -102, -102};
const int JavaScriptGrammar::action_info [] = {
- 445, 444, 441, 320, 231, 427, 428, 443, 130, 320,
- 318, 128, 181, 283, 209, 461, 28, 421, 322, 346,
- 327, 467, 338, 359, 131, 417, -61, 346, 177, 437,
- 357, -83, -62, 413, -231, -80, -72, 283, 372, 368,
- 25, -60, -85, 246, 332, 365, 330, 437, 421, 421,
- 220, 450, -232, 409, 318, 351, 338, 361, 344, 211,
- 490, 24, 261, 454, 488, 487, 478, 525, 486, 181,
- 437, 252, 179, 478, 520, 127, 246, 226, 228, 220,
- 220, 519, 491, 413, 172, 298, 461, 520, 174, 454,
- 366, 25, 32, 29, 28, 7, 209, 368, 278, 30,
- 484, 366, 0, 353, 404, 220, 507, 220, 510, 450,
- 127, 220, 220, 493, 440, 133, 494, -300, 118, 485,
- 462, 494, 431, 220, 220, 0, 31, 478, 441, 119,
- 277, 111, 220, 220, 220, 0, 111, 424, 366, 211,
- 9, 8, 112, 274, 273, 507, 220, 112, 267, 266,
- 111, 111, 220, 2, 516, 0, 354, 370, 220, 363,
- 221, 112, 112, 280, 478, 528, 0, 340, 463, 264,
- 120, 341, 259, 531, 272, 271, 269, 502, 254, 274,
- 273, 0, 425, 220, 452, 456, 471, 0, 0, 412,
- 411, 282, 281, 508, 518, 517, 248, 255, 415, 407,
- 249, 265, 263, 213, 336, 120, 0, 17, 270, 268,
- 0, 230, 229, 0, 195, 121, 196, 0, 529, 527,
- 269, 122, 214, 120, 215, 264, 195, 197, 196, 0,
- 195, 16, 196, 195, 0, 196, 435, 434, 195, 197,
- 196, 0, 195, 197, 196, 0, 197, 195, 0, 196,
- 121, 197, 270, 268, 0, 197, 122, 265, 263, 195,
- 197, 196, 254, 195, 195, 196, 196, 195, 121, 196,
- 461, 195, 197, 196, 122, 0, 197, 197, 300, 301,
- 197, 255, 461, 256, 197, 183, 184, 183, 184, 300,
- 301, 502, 0, 0, 0, 305, 306, 0, 0, 0,
- 0, 0, 0, 502, 307, 302, 303, 308, 0, 309,
- 305, 306, 185, 186, 185, 186, 302, 303, 0, 307,
- 0, 17, 308, 0, 309, 305, 306, 0, 0, 0,
- 0, 0, 0, 17, 307, 0, 195, 308, 196, 309,
- 0, 0, 188, 189, 0, 16, 0, 0, 0, 197,
- 190, 191, 188, 189, 192, 0, 193, 16, 13, 0,
- 190, 191, 188, 189, 192, 14, 193, 0, 13, 0,
- 190, 191, 188, 189, 192, 14, 193, 0, 13, 0,
- 190, 191, 188, 189, 192, 14, 193, 0, 0, 0,
- 190, 191, 0, 0, 192, 17, 193, 13, 0, 0,
- 305, 306, 0, 0, 14, 17, 0, 0, 18, 307,
- 0, 480, 308, 0, 309, 17, 0, 12, 18, 16,
- 0, 15, 0, 0, 0, 0, 0, 12, 18, 16,
- 482, 15, 0, 0, 17, 0, 0, 12, 0, 16,
- 0, 15, 0, 0, 0, 0, 0, 18, 0, 0,
- 0, 0, 0, 0, 0, 0, 12, 0, 16, 0,
- 15, 0, 0, 0, 74, 75, 233, 0, 0, 0,
- 0, 0, 0, 0, 115, 0, 234, 0, 0, 0,
- 235, 116, 0, 0, 0, 117, 83, 0, 84, 236,
- 0, 237, 0, 0, 0, 87, 0, 0, 0, 90,
- 0, 0, 238, 0, 239, 118, 0, 0, 0, 0,
- 0, 0, 240, 0, 0, 241, 119, 95, 0, 97,
- 0, 242, 0, 0, 0, 0, 0, 243, 0, 0,
- 89, 100, 77, 0, 0, 0, 0, 0, 0, 0,
- 244, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 74, 75, 233, 0, 0, 0, 0, 0, 0, 0,
- 115, 0, 234, 0, 0, 0, 235, 116, 0, 0,
- 0, 117, 83, 0, 84, 236, 0, 237, 0, 0,
- 0, 87, 0, 0, 0, 90, 0, 0, 238, 0,
- 239, 118, 0, 0, 0, 0, 0, 0, 240, 0,
- 0, 241, 119, 95, 0, 97, 0, 242, 0, 0,
- 0, 0, 0, 243, 0, 0, 89, 100, 77, 0,
- 0, 0, 0, 0, 0, 0, 244, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 233, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 234, 0,
- 0, 0, 235, 0, 0, 0, 0, 0, 0, 0,
- 0, 236, 0, 237, 0, 0, 334, 0, 0, 0,
- 0, 0, 0, 0, 238, 0, 239, 118, 0, 0,
- 0, 0, 0, 0, 240, 0, 0, 241, 119, 0,
- 0, 0, 0, 242, 0, 0, 0, 0, 0, 243,
+ 457, 352, 457, 464, 361, 463, 559, 449, -69, 373,
+ 367, -91, 453, 311, 432, 350, 325, 291, 323, 163,
+ 441, 331, 337, 363, 473, 457, 486, 344, -96, 490,
+ 354, 313, 434, 424, 361, 422, -66, 378, 385, 517,
+ 436, 276, 497, 503, 525, -80, 524, 163, 373, 367,
+ 479, 376, 375, 447, -99, 372, 473, 364, -88, 473,
+ 477, 442, 481, 381, 370, -70, 186, 315, 369, 381,
+ 209, 291, 192, 32, 497, 379, 2, 205, 186, 163,
+ 311, 313, 33, 473, 276, 366, -93, 442, 93, 486,
+ 212, 271, 169, 447, 93, 565, 211, 490, 255, 460,
+ 121, 0, 201, 0, 379, 517, 320, 476, 163, 0,
+ 163, 163, 163, 449, 379, 121, 467, 163, 0, 163,
+ 163, 477, 80, 80, 498, 7, 163, 123, 541, 171,
+ 517, 346, 270, 81, 81, 0, 80, 0, 527, 27,
+ 517, 188, 552, 551, 461, 189, 528, 81, 84, 446,
+ 445, 2, 123, 268, 267, 268, 267, 544, 0, 85,
+ 488, 163, 451, 383, 492, 528, 261, 260, 199, 80,
+ 331, 507, 499, 163, 9, 8, 550, 333, 329, 163,
+ 81, 334, 266, 265, 347, 275, 274, 86, 562, 60,
+ 28, 514, 194, 0, 0, 28, 60, 125, 0, 60,
+ 0, 107, 163, 108, 107, 0, 108, 60, 107, 164,
+ 108, 195, 0, 439, 109, 60, 126, 109, 127, 0,
+ 60, 109, 86, 0, 163, 273, 72, 20, 515, 516,
+ 0, 356, 87, 72, 20, 30, 72, 20, 88, 86,
+ 30, 563, 561, 60, 72, 20, 29, 107, 107, 108,
+ 108, 29, 72, 20, 60, 471, 470, 72, 20, 541,
+ 109, 109, 107, 107, 108, 108, 107, 87, 108, 107,
+ 107, 108, 108, 88, 194, 109, 109, 254, 253, 109,
+ 72, 20, 109, 109, 87, 358, 0, 60, 0, 60,
+ 88, 72, 20, 195, 60, 196, 60, 0, 60, 0,
+ 0, 95, 96, 0, 0, -312, 0, 542, 0, 0,
+ 293, 294, 293, 294, 0, 60, 0, 0, 95, 96,
+ 536, 0, 359, 360, 72, 20, 72, 20, 97, 98,
+ 60, 72, 20, 72, 20, 72, 20, 295, 296, 295,
+ 296, 60, 107, 0, 108, 97, 98, 259, 258, 60,
+ 19, 0, 72, 20, 497, 109, 0, 72, 20, 0,
+ 0, 0, 264, 263, 0, 0, 0, 72, 20, 0,
+ 0, 0, 0, 259, 258, 536, 18, 497, 72, 20,
+ 0, 264, 263, 100, 101, 0, 72, 20, 14, 0,
+ 0, 102, 103, 0, 0, 104, 0, 105, 536, 0,
+ 15, 0, 100, 101, 0, 19, 0, 16, 298, 299,
+ 102, 103, 72, 20, 104, 0, 105, 300, 0, 0,
+ 301, 0, 302, 0, 0, 0, 0, 0, 19, 0,
+ 14, 18, 0, 0, 0, 72, 20, 19, 0, 0,
+ 0, 0, 15, 0, 17, 20, 0, 0, 0, 16,
+ 14, 0, 21, 14, 18, 0, 0, 0, 0, 0,
+ 0, 13, 15, 18, 0, 15, 0, 0, 0, 16,
+ 0, 0, 16, 0, 0, 0, 100, 101, 0, 19,
+ 0, 0, 0, 0, 102, 103, 17, 20, 104, 0,
+ 105, 0, 0, 0, 21, 521, 0, 0, 519, 19,
+ 0, 0, 19, 13, 0, 18, 17, 20, 0, 17,
+ 20, 0, 0, 0, 21, 0, 0, 21, 0, 0,
+ 0, 0, 0, 13, 173, 18, 13, 0, 18, 0,
+ 0, 0, 0, 0, 174, 0, 0, 0, 175, 0,
+ 0, 0, 0, 0, 173, 0, 0, 176, 0, 177,
+ 0, 0, 327, 0, 174, 0, 0, 0, 175, 0,
+ 178, 0, 179, 84, 0, 0, 0, 176, 0, 177,
+ 180, 0, 0, 181, 85, 0, 0, 0, 0, 182,
+ 178, 0, 179, 84, 0, 183, 0, 0, 0, 0,
+ 180, 0, 0, 181, 85, 0, 0, 0, 0, 182,
+ 184, 0, 0, 0, 0, 183, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 184, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 56, 57, 0, 0, 0, 0, 0, 0,
+ 0, 0, 59, 0, 0, 0, 0, 0, 0, 60,
+ 0, 0, 0, 61, 62, 0, 63, 0, 0, 0,
+ 0, 0, 0, 66, 0, 0, 0, 69, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 244, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 73, 74, 75, 0, 0, 0,
- 0, 0, 0, 0, 0, 115, 0, 0, 0, 0,
- 0, 0, 116, 0, 0, 0, 117, 83, 0, 84,
- 0, 0, 0, 85, 0, 86, 87, 88, 0, 0,
- 90, 0, 0, 0, 91, 0, 92, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 95, 0,
- 97, 0, 99, 0, 102, 0, 103, 0, 0, 0,
- 0, 89, 100, 77, 0, 0, 0, 0, 0, 0,
- 0, 0, 73, 74, 75, 0, 0, 0, 0, 0,
- 0, 0, 0, 115, 0, 0, 0, 0, 0, 0,
- 116, 0, 0, 0, 117, 83, 0, 84, 0, 0,
- 0, 85, 0, 86, 87, 88, 0, 0, 90, 0,
- 0, 0, 91, 0, 92, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 95, 0, 97, 0,
- 99, 0, 102, 297, 103, 0, 0, 0, 0, 89,
- 100, 77, 0, 0, 0, 0, 0, 0, 0, 0,
- -81, 0, 0, 0, 73, 74, 75, 0, 0, 0,
- 0, 0, 0, 0, 0, 115, 0, 0, 0, 0,
- 0, 0, 116, 0, 0, 0, 117, 83, 0, 84,
- 0, 0, 0, 85, 0, 86, 87, 88, 0, 0,
- 90, 0, 0, 0, 91, 0, 92, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 95, 0,
- 97, 0, 99, 0, 102, 0, 103, 0, 0, 0,
- 0, 89, 100, 77, 0, 0, 0, 0, 0, 0,
- 0, 0, 73, 74, 75, 0, 0, 0, 0, 0,
- 0, 0, 0, 115, 0, 0, 0, 0, 0, 0,
- 116, 0, 0, 0, 117, 83, 0, 84, 0, 0,
- 0, 85, 0, 86, 87, 88, 0, 0, 90, 0,
- 0, 0, 91, 0, 92, 0, 0, 466, 0, 0,
- 0, 0, 0, 0, 0, 0, 95, 0, 97, 0,
- 99, 0, 102, 0, 103, 0, 0, 0, 0, 89,
- 100, 77, 0, 0, 0, 0, 0, 0, 0, 0,
- 73, 74, 75, 0, 0, 0, 0, 0, 0, 0,
- 0, 115, 0, 0, 0, 0, 0, 0, 116, 0,
- 0, 0, 117, 83, 0, 84, 0, 0, 0, 85,
- 0, 86, 87, 88, 0, 0, 90, 0, 0, 0,
- 91, 0, 92, 0, 0, 469, 0, 0, 0, 0,
- 0, 0, 0, 0, 95, 0, 97, 0, 99, 0,
- 102, 0, 103, 0, 0, 0, 0, 89, 100, 77,
- 0, 0, 0, 0, 0, 0, 0, 0, 138, 139,
- 140, 0, 0, 142, 144, 145, 0, 0, 146, 0,
- 147, 0, 0, 0, 149, 150, 151, 0, 0, 0,
- 0, 0, 0, 218, 153, 154, 155, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 156, 0, 0,
+ 0, 0, 0, 0, 0, 73, 72, 20, 0, 74,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 160, 0, 0, 0, 0, 0, 0,
- 162, 163, 164, 0, 166, 167, 168, 169, 170, 171,
- 0, 0, 157, 165, 148, 141, 143, 159, 0, 0,
- 0, 0, 0, 138, 139, 140, 0, 0, 142, 144,
- 145, 0, 0, 146, 0, 147, 0, 0, 0, 149,
- 150, 151, 0, 0, 0, 0, 0, 0, 152, 153,
- 154, 155, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 156, 0, 0, 0, 158, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 160, 0,
- 0, 0, 0, 0, 161, 162, 163, 164, 0, 166,
- 167, 168, 169, 170, 171, 0, 0, 157, 165, 148,
- 141, 143, 159, 0, 0, 0, 0, 0, 138, 139,
- 140, 0, 0, 142, 144, 145, 0, 0, 146, 0,
- 147, 0, 0, 0, 149, 150, 151, 0, 0, 0,
- 0, 0, 0, 152, 153, 154, 155, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 156, 0, 0,
- 0, 158, 0, 0, 0, 0, 0, 0, 0, 176,
- 0, 0, 0, 160, 0, 0, 0, 0, 0, 161,
- 162, 163, 164, 0, 166, 167, 168, 169, 170, 171,
- 0, 0, 157, 165, 148, 141, 143, 159, 0, 0,
- 0, 0, 0, 70, 0, 0, 0, 0, 71, 0,
- 73, 74, 75, 76, 0, 0, 0, 0, 0, 0,
- 78, 115, 0, 0, 0, 0, 0, 0, 512, 81,
- 0, 0, 82, 513, 0, 84, 0, 0, 0, 85,
- 0, 86, 87, 88, 0, 0, 90, 0, 0, 0,
- 91, 0, 92, 0, 0, 0, 0, 0, 93, 0,
- 94, 0, 0, 0, 95, 96, 97, 98, 99, 101,
- 102, 18, 103, 104, 105, 0, 0, 89, 100, 77,
- 12, 72, 0, 0, 0, 0, 0, 0, 70, 0,
- 0, 0, 0, 71, 0, 73, 74, 75, 76, 0,
- 0, 0, 0, 0, 0, 78, 115, 0, 0, 0,
- 0, 0, 0, 80, 81, 0, 0, 82, 83, 0,
- 84, 0, 0, 0, 85, 0, 86, 87, 88, 0,
- 0, 90, 0, 0, 0, 91, 0, 92, 0, 0,
- 0, 0, 0, 93, 0, 94, 0, 0, 0, 95,
- 96, 97, 98, 99, 101, 102, 18, 103, 104, 105,
- 0, 0, 89, 100, 77, 12, 72, 0, 0, 0,
- 0, 0, 0, 70, 0, 0, 0, 0, 71, 0,
- 73, 74, 75, 76, 0, 0, 0, 0, 0, 0,
- 78, 79, 0, 0, 0, 0, 0, 0, 80, 81,
- 0, 0, 82, 83, 0, 84, 0, 0, 0, 85,
- 0, 86, 87, 88, 0, 0, 90, 0, 0, 0,
- 91, 0, 92, 0, 0, 0, 0, 0, 93, 0,
- 94, 0, 0, 0, 95, 96, 97, 98, 99, 101,
- 102, 18, 103, 104, 105, 0, 0, 89, 100, 77,
- 12, 72, 0, 0, 0, 0, 0, 0, 70, 0,
- 0, 0, 0, 71, 0, 73, 74, 75, 76, 0,
- 0, 0, 0, 0, 0, 78, 115, 0, 0, 0,
- 0, 0, 0, 496, 81, 0, 0, 82, 497, 0,
- 84, 0, 0, 0, 85, 0, 86, 87, 88, 0,
- 0, 90, 0, 0, 0, 91, 0, 92, 0, 0,
- 0, 0, 0, 93, 0, 94, 0, 0, 0, 95,
- 96, 97, 98, 99, 101, 102, 18, 103, 104, 105,
- 0, 0, 89, 100, 77, 12, 72, 0, 498, 0,
- 0, 0, 0, 377, 139, 140, 0, 0, 379, 144,
- 381, 74, 75, 382, 0, 147, 0, 0, 0, 149,
- 384, 385, 0, 0, 0, 0, 0, 0, 386, 387,
- 154, 155, 82, 83, 0, 84, 0, 0, 0, 85,
- 0, 86, 388, 88, 0, 0, 390, 0, 0, 0,
- 91, 0, 92, 0, -227, 0, 0, 0, 391, 0,
- 94, 0, 0, 0, 392, 393, 394, 395, 99, 397,
- 398, 399, 400, 401, 402, 0, 0, 389, 396, 383,
- 378, 380, 159, 0, 0, 0, 0, 0,
+ 68, 76, 58, 0, 0, 0, 0, 0, 0, 0,
+ 0, 55, 56, 57, 0, 0, 0, 0, 0, 0,
+ 0, 0, 59, 0, 0, 0, 0, 0, 0, 60,
+ 0, 0, 0, 61, 62, 0, 63, 0, 0, 0,
+ 64, 0, 65, 66, 67, 0, 0, 69, 0, 0,
+ 0, 70, 0, 71, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 73, 72, 20, 0, 74,
+ 0, 75, 0, 77, 0, 78, 0, 0, 0, 0,
+ 68, 76, 58, 0, 0, 0, 0, 0, 0, 0,
+ 0, 55, 56, 57, 0, 0, 0, 0, 0, 0,
+ 0, 0, 59, 0, 0, 0, 0, 0, 0, 60,
+ 0, 0, 0, 61, 62, 0, 63, 0, 0, 0,
+ 64, 0, 65, 66, 67, 0, 0, 69, 0, 0,
+ 0, 70, 0, 71, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 73, 72, 20, 0, 74,
+ 0, 75, 0, 77, 290, 78, 0, 0, 0, 0,
+ 68, 76, 58, 0, 0, 0, 0, 0, 0, 0,
+ 0, 55, 56, 57, 0, 0, 0, 0, 0, 0,
+ 0, 0, 59, 0, 0, 0, 0, 0, 0, 60,
+ 0, 0, 0, 61, 62, 0, 63, 0, 0, 0,
+ 64, 0, 65, 66, 67, 0, 0, 69, 0, 0,
+ 0, 70, 0, 71, 0, 0, 502, 0, 0, 0,
+ 0, 0, 0, 0, 0, 73, 72, 20, 0, 74,
+ 0, 75, 0, 77, 0, 78, 0, 0, 0, 0,
+ 68, 76, 58, 0, 0, 0, 0, 0, 0, 0,
+ 0, -89, 0, 0, 0, 55, 56, 57, 0, 0,
+ 0, 0, 0, 0, 0, 0, 59, 0, 0, 0,
+ 0, 0, 0, 60, 0, 0, 0, 61, 62, 0,
+ 63, 0, 0, 0, 64, 0, 65, 66, 67, 0,
+ 0, 69, 0, 0, 0, 70, 0, 71, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,
+ 72, 20, 0, 74, 0, 75, 0, 77, 0, 78,
+ 0, 0, 0, 0, 68, 76, 58, 0, 0, 0,
+ 0, 0, 0, 0, 0, 55, 56, 57, 0, 0,
+ 0, 0, 0, 0, 0, 0, 59, 0, 0, 0,
+ 0, 0, 0, 60, 0, 0, 0, 61, 62, 0,
+ 63, 0, 0, 0, 64, 0, 65, 66, 67, 0,
+ 0, 69, 0, 0, 0, 70, 0, 71, 0, 0,
+ 505, 0, 0, 0, 0, 0, 0, 0, 0, 73,
+ 72, 20, 0, 74, 0, 75, 0, 77, 0, 78,
+ 0, 0, 0, 0, 68, 76, 58, 0, 0, 0,
+ 0, 0, 0, 0, 0, 131, 132, 133, 0, 0,
+ 135, 137, 138, 0, 0, 139, 0, 140, 0, 0,
+ 0, 142, 143, 144, 0, 0, 0, 0, 0, 0,
+ 60, 145, 146, 147, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 148, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 151, 0, 0, 0, 0, 0, 0, 72, 20, 152,
+ 153, 154, 0, 156, 157, 158, 159, 160, 161, 0,
+ 0, 149, 155, 141, 134, 136, 150, 0, 0, 0,
+ 0, 0, 131, 132, 133, 0, 0, 135, 137, 138,
+ 0, 0, 139, 0, 140, 0, 0, 0, 142, 143,
+ 144, 0, 0, 0, 0, 0, 0, 426, 145, 146,
+ 147, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 148, 0, 0, 0, 427, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 151, 0, 0,
+ 0, 0, 0, 431, 428, 430, 152, 153, 154, 0,
+ 156, 157, 158, 159, 160, 161, 0, 0, 149, 155,
+ 141, 134, 136, 150, 0, 0, 0, 0, 0, 131,
+ 132, 133, 0, 0, 135, 137, 138, 0, 0, 139,
+ 0, 140, 0, 0, 0, 142, 143, 144, 0, 0,
+ 0, 0, 0, 0, 426, 145, 146, 147, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 148, 0,
+ 0, 0, 427, 0, 0, 0, 0, 0, 0, 0,
+ 429, 0, 0, 0, 151, 0, 0, 0, 0, 0,
+ 431, 428, 430, 152, 153, 154, 0, 156, 157, 158,
+ 159, 160, 161, 0, 0, 149, 155, 141, 134, 136,
+ 150, 0, 0, 0, 0, 0, 231, 0, 0, 0,
+ 0, 232, 0, 55, 56, 57, 234, 0, 0, 0,
+ 0, 0, 0, 235, 59, 0, 0, 0, 0, 0,
+ 0, 546, 238, 0, 0, 239, 547, 0, 63, 0,
+ 0, 0, 64, 0, 65, 66, 67, 0, 0, 69,
+ 0, 0, 0, 70, 0, 71, 0, 0, 0, 0,
+ 0, 241, 0, 242, 0, 0, 0, 73, 240, 243,
+ 244, 74, 245, 75, 246, 77, 21, 78, 247, 248,
+ 0, 0, 68, 76, 58, 13, 233, 0, 0, 0,
+ 0, 0, 0, 231, 0, 0, 0, 0, 232, 0,
+ 55, 56, 57, 234, 0, 0, 0, 0, 0, 0,
+ 235, 59, 0, 0, 0, 0, 0, 0, 237, 238,
+ 0, 0, 239, 62, 0, 63, 0, 0, 0, 64,
+ 0, 65, 66, 67, 0, 0, 69, 0, 0, 0,
+ 70, 0, 71, 0, 0, 0, 0, 0, 241, 0,
+ 242, 0, 0, 0, 73, 240, 243, 244, 74, 245,
+ 75, 246, 77, 21, 78, 247, 248, 0, 0, 68,
+ 76, 58, 13, 233, 0, 0, 0, 0, 0, 0,
+ 231, 0, 0, 0, 0, 232, 0, 55, 56, 57,
+ 234, 0, 0, 0, 0, 0, 0, 235, 236, 0,
+ 0, 0, 0, 0, 0, 237, 238, 0, 0, 239,
+ 62, 0, 63, 0, 0, 0, 64, 0, 65, 66,
+ 67, 0, 0, 69, 0, 0, 0, 70, 0, 71,
+ 0, 0, 0, 0, 0, 241, 0, 242, 0, 0,
+ 0, 73, 240, 243, 244, 74, 245, 75, 246, 77,
+ 21, 78, 247, 248, 0, 0, 68, 76, 58, 13,
+ 233, 0, 0, 0, 0, 0, 0, 231, 0, 0,
+ 0, 0, 232, 0, 55, 56, 57, 234, 0, 0,
+ 0, 0, 0, 0, 235, 59, 0, 0, 0, 0,
+ 0, 0, 530, 238, 0, 0, 239, 531, 0, 63,
+ 0, 0, 0, 64, 0, 65, 66, 67, 0, 0,
+ 69, 0, 0, 0, 70, 0, 71, 0, 0, 0,
+ 0, 0, 241, 0, 242, 0, 0, 0, 73, 240,
+ 243, 244, 74, 245, 75, 246, 77, 21, 78, 247,
+ 248, 0, 0, 68, 76, 58, 13, 233, 0, 532,
+ 0, 0, 0, 0, 394, 132, 133, 0, 0, 396,
+ 137, 398, 56, 57, 399, 0, 140, 0, 0, 0,
+ 142, 401, 402, 0, 0, 0, 0, 0, 0, 403,
+ 404, 146, 147, 239, 62, 0, 63, 0, 0, 0,
+ 64, 0, 65, 405, 67, 0, 0, 407, 0, 0,
+ 0, 70, 0, 71, 0, -235, 0, 0, 0, 409,
+ 0, 242, 0, 0, 0, 411, 408, 410, 412, 413,
+ 414, 75, 416, 417, 418, 419, 420, 421, 0, 0,
+ 406, 415, 400, 395, 397, 150, 0, 0, 0, 0,
+ 0,
- 465, 464, 232, 468, 455, 457, 175, 446, 364, 173,
- 362, 360, 355, 451, 453, 178, 279, 10, 530, 251,
- 23, 219, 253, 335, 447, 225, 514, 245, 222, 492,
- 526, 129, 227, 489, 495, 333, 217, 501, 511, 505,
- 506, 429, 426, 276, 436, 436, 430, 373, 371, 422,
- 433, 414, 328, 470, 433, 403, 442, 369, 337, 367,
- 276, 0, 432, 328, 328, 483, 113, 328, 509, 515,
- 505, 310, 505, 0, 113, 23, 0, 113, 258, 0,
- 114, 113, 0, 474, 113, 113, 475, 476, 247, 113,
- 113, 113, 405, 180, 113, 406, 448, 405, 0, 113,
- 406, 449, 0, 210, 113, 250, 113, 329, 113, 313,
- 331, 311, 113, 314, 449, 113, 113, 113, 477, 113,
- 312, 448, 113, 113, 473, 113, 0, 212, 113, 207,
- 68, 208, 50, 204, 113, 113, 113, 113, 328, 202,
- 203, 201, 113, 206, 124, 113, 113, 123, 292, 113,
- 328, 275, 187, 296, 113, 113, 113, 275, 0, 113,
- 225, 194, 182, 200, 225, 113, 113, 260, 125, 199,
- 113, 408, 217, 257, 113, 205, 472, 481, 113, 113,
- 0, 358, 198, 324, 296, 0, 0, 113, 296, 0,
- 321, 23, 296, 356, 304, 324, 324, 68, 113, 50,
- 296, 296, 324, 296, 113, 323, 68, 296, 50, 296,
- 324, 319, 0, 0, 0, 296, 113, 352, 345, 339,
- 113, 296, 113, 316, 343, 296, 0, 296, 113, 299,
- 0, 113, 326, 296, 0, 315, 296, 0, 317, 342,
- 0, 0, 483, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 23, 0, 0, 0, 0, 0, 0, 0,
+ 458, 462, 526, 560, 548, 450, 545, 443, 500, 504,
+ 448, 466, 535, 42, 31, 482, 491, 554, 172, 540,
+ 204, 487, 493, 553, 489, 529, 391, 478, 501, 483,
+ 506, 269, 480, 269, 472, 371, 377, 204, 321, 262,
+ 165, 185, 330, 328, 326, 469, 170, 365, 382, 380,
+ 262, 357, 257, 384, 435, 386, 353, 256, 0, 162,
+ 355, 168, 0, 0, 198, 425, 469, 391, 208, 472,
+ 191, 433, 193, 210, 204, 272, 257, 423, 321, 339,
+ 321, 168, 554, 321, 321, 539, 321, 82, 440, 391,
+ 0, 0, 304, 12, 285, 339, 208, 82, 10, 289,
+ 391, 82, 306, 208, 168, 82, 307, 82, 82, 82,
+ 305, 200, 303, 0, 82, 0, 513, 82, 82, 0,
+ 208, 110, 187, 115, 351, 190, 82, 349, 322, 82,
+ 324, 114, 82, 82, 116, 485, 82, 117, 511, 82,
+ 82, 485, 82, 82, 564, 89, 0, 113, 94, 82,
+ 82, 91, 465, 82, 82, 90, 99, 82, 82, 348,
+ 118, 83, 106, 468, 82, 82, 82, 82, 82, 92,
+ 120, 119, 362, 82, 82, 512, 202, 124, 0, 368,
+ 122, 82, 437, 508, 82, 438, 509, 82, 0, 82,
+ 82, 112, 510, 111, 0, 82, 374, 484, 82, 437,
+ 202, 317, 438, 82, 82, 0, 289, 317, 289, 289,
+ 0, 317, 289, 11, 26, 12, 289, 82, 332, 82,
+ 82, 335, 289, 338, 289, 289, 309, 297, 314, 345,
+ 82, 317, 128, 336, 317, 289, 289, 310, 82, 289,
+ 0, 130, 197, 289, 543, 308, 539, 549, 0, 0,
+ 539, 0, 82, 316, 12, 82, 319, 289, 12, 520,
+ 289, 0, 128, 0, 292, 312, 0, 0, 0, 0,
+ 0, 130, 0, 11, 26, 12, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 522, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 11, 26, 12, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 262, 0, 0, 0, 132, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0};
+ 0, 0};
const int JavaScriptGrammar::action_check [] = {
- 60, 29, 20, 76, 55, 55, 7, 36, 60, 76,
- 48, 36, 1, 36, 48, 8, 29, 5, 8, 29,
- 61, 8, 2, 60, 33, 33, 7, 29, 7, 33,
- 61, 7, 7, 36, 29, 7, 7, 36, 16, 36,
- 36, 7, 7, 2, 60, 29, 61, 33, 5, 5,
- 8, 36, 29, 60, 48, 17, 2, 31, 7, 76,
- 29, 29, 60, 36, 7, 29, 33, 17, 29, 1,
- 33, 7, 55, 33, 29, 29, 2, 8, 60, 8,
- 8, 29, 7, 36, 7, 1, 8, 29, 8, 36,
- 7, 36, 33, 8, 29, 65, 48, 36, 36, 29,
- 10, 7, -1, 8, 55, 8, 8, 8, 7, 36,
- 29, 8, 8, 7, 6, 55, 15, 36, 42, 29,
- 8, 15, 7, 8, 8, -1, 60, 33, 20, 53,
- 74, 40, 8, 8, 8, -1, 40, 10, 7, 76,
- 61, 62, 51, 61, 62, 8, 8, 51, 61, 62,
- 40, 40, 8, 86, 56, -1, 61, 60, 8, 60,
- 56, 51, 51, 60, 33, 8, -1, 50, 56, 29,
- 12, 54, 56, 0, 61, 62, 29, 29, 15, 61,
- 62, -1, 55, 8, 60, 60, 60, -1, -1, 61,
- 62, 61, 62, 56, 61, 62, 50, 34, 60, 36,
- 54, 61, 62, 15, 60, 12, -1, 59, 61, 62,
- -1, 61, 62, -1, 25, 57, 27, -1, 61, 62,
- 29, 63, 34, 12, 36, 29, 25, 38, 27, -1,
- 25, 83, 27, 25, -1, 27, 61, 62, 25, 38,
- 27, -1, 25, 38, 27, -1, 38, 25, -1, 27,
- 57, 38, 61, 62, -1, 38, 63, 61, 62, 25,
- 38, 27, 15, 25, 25, 27, 27, 25, 57, 27,
- 8, 25, 38, 27, 63, -1, 38, 38, 18, 19,
- 38, 34, 8, 36, 38, 18, 19, 18, 19, 18,
- 19, 29, -1, -1, -1, 23, 24, -1, -1, -1,
- -1, -1, -1, 29, 32, 45, 46, 35, -1, 37,
- 23, 24, 45, 46, 45, 46, 45, 46, -1, 32,
- -1, 59, 35, -1, 37, 23, 24, -1, -1, -1,
- -1, -1, -1, 59, 32, -1, 25, 35, 27, 37,
- -1, -1, 23, 24, -1, 83, -1, -1, -1, 38,
- 31, 32, 23, 24, 35, -1, 37, 83, 22, -1,
- 31, 32, 23, 24, 35, 29, 37, -1, 22, -1,
- 31, 32, 23, 24, 35, 29, 37, -1, 22, -1,
- 31, 32, 23, 24, 35, 29, 37, -1, -1, -1,
- 31, 32, -1, -1, 35, 59, 37, 22, -1, -1,
- 23, 24, -1, -1, 29, 59, -1, -1, 72, 32,
- -1, 55, 35, -1, 37, 59, -1, 81, 72, 83,
- -1, 85, -1, -1, -1, -1, -1, 81, 72, 83,
- 55, 85, -1, -1, 59, -1, -1, 81, -1, 83,
- -1, 85, -1, -1, -1, -1, -1, 72, -1, -1,
- -1, -1, -1, -1, -1, -1, 81, -1, 83, -1,
- 85, -1, -1, -1, 12, 13, 3, -1, -1, -1,
- -1, -1, -1, -1, 22, -1, 13, -1, -1, -1,
- 17, 29, -1, -1, -1, 33, 34, -1, 36, 26,
- -1, 28, -1, -1, -1, 43, -1, -1, -1, 47,
- -1, -1, 39, -1, 41, 42, -1, -1, -1, -1,
- -1, -1, 49, -1, -1, 52, 53, 65, -1, 67,
- -1, 58, -1, -1, -1, -1, -1, 64, -1, -1,
- 78, 79, 80, -1, -1, -1, -1, -1, -1, -1,
- 77, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 12, 13, 3, -1, -1, -1, -1, -1, -1, -1,
- 22, -1, 13, -1, -1, -1, 17, 29, -1, -1,
- -1, 33, 34, -1, 36, 26, -1, 28, -1, -1,
- -1, 43, -1, -1, -1, 47, -1, -1, 39, -1,
- 41, 42, -1, -1, -1, -1, -1, -1, 49, -1,
- -1, 52, 53, 65, -1, 67, -1, 58, -1, -1,
- -1, -1, -1, 64, -1, -1, 78, 79, 80, -1,
- -1, -1, -1, -1, -1, -1, 77, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 3, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 13, -1,
- -1, -1, 17, -1, -1, -1, -1, -1, -1, -1,
- -1, 26, -1, 28, -1, -1, 31, -1, -1, -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,
+ 5, 60, 5, 7, 36, 55, 17, 36, 7, 36,
+ 36, 7, 33, 48, 7, 61, 60, 1, 61, 8,
+ 60, 2, 7, 60, 33, 5, 36, 17, 7, 36,
+ 31, 78, 55, 8, 36, 7, 7, 55, 16, 33,
+ 55, 36, 8, 8, 7, 7, 29, 8, 36, 36,
+ 36, 33, 60, 7, 7, 55, 33, 33, 7, 33,
+ 20, 7, 60, 36, 33, 7, 2, 8, 60, 36,
+ 8, 1, 7, 29, 8, 7, 88, 36, 2, 8,
+ 48, 78, 7, 33, 36, 55, 7, 7, 1, 36,
+ 33, 36, 8, 7, 1, 0, 60, 36, 55, 10,
+ 48, -1, 60, -1, 7, 33, 61, 6, 8, -1,
+ 8, 8, 8, 36, 7, 48, 7, 8, -1, 8,
+ 8, 20, 40, 40, 8, 65, 8, 78, 8, 60,
+ 33, 8, 76, 51, 51, -1, 40, -1, 7, 66,
+ 33, 50, 61, 62, 55, 54, 15, 51, 42, 61,
+ 62, 88, 78, 61, 62, 61, 62, 7, -1, 53,
+ 60, 8, 60, 60, 60, 15, 61, 62, 56, 40,
+ 2, 60, 56, 8, 61, 62, 56, 50, 60, 8,
+ 51, 54, 61, 62, 61, 61, 62, 12, 8, 29,
+ 29, 29, 15, -1, -1, 29, 29, 15, -1, 29,
+ -1, 25, 8, 27, 25, -1, 27, 29, 25, 56,
+ 27, 34, -1, 36, 38, 29, 34, 38, 36, -1,
+ 29, 38, 12, -1, 8, 60, 66, 67, 66, 67,
+ -1, 60, 57, 66, 67, 74, 66, 67, 63, 12,
+ 74, 61, 62, 29, 66, 67, 85, 25, 25, 27,
+ 27, 85, 66, 67, 29, 61, 62, 66, 67, 8,
+ 38, 38, 25, 25, 27, 27, 25, 57, 27, 25,
+ 25, 27, 27, 63, 15, 38, 38, 61, 62, 38,
+ 66, 67, 38, 38, 57, 29, -1, 29, -1, 29,
+ 63, 66, 67, 34, 29, 36, 29, -1, 29, -1,
+ -1, 18, 19, -1, -1, 36, -1, 56, -1, -1,
+ 18, 19, 18, 19, -1, 29, -1, -1, 18, 19,
+ 29, -1, 66, 67, 66, 67, 66, 67, 45, 46,
+ 29, 66, 67, 66, 67, 66, 67, 45, 46, 45,
+ 46, 29, 25, -1, 27, 45, 46, 61, 62, 29,
+ 59, -1, 66, 67, 8, 38, -1, 66, 67, -1,
+ -1, -1, 61, 62, -1, -1, -1, 66, 67, -1,
+ -1, -1, -1, 61, 62, 29, 85, 8, 66, 67,
+ -1, 61, 62, 23, 24, -1, 66, 67, 10, -1,
+ -1, 31, 32, -1, -1, 35, -1, 37, 29, -1,
+ 22, -1, 23, 24, -1, 59, -1, 29, 23, 24,
+ 31, 32, 66, 67, 35, -1, 37, 32, -1, -1,
+ 35, -1, 37, -1, -1, -1, -1, -1, 59, -1,
+ 10, 85, -1, -1, -1, 66, 67, 59, -1, -1,
+ -1, -1, 22, -1, 66, 67, -1, -1, -1, 29,
+ 10, -1, 74, 10, 85, -1, -1, -1, -1, -1,
+ -1, 83, 22, 85, -1, 22, -1, -1, -1, 29,
+ -1, -1, 29, -1, -1, -1, 23, 24, -1, 59,
+ -1, -1, -1, -1, 31, 32, 66, 67, 35, -1,
+ 37, -1, -1, -1, 74, 55, -1, -1, 55, 59,
+ -1, -1, 59, 83, -1, 85, 66, 67, -1, 66,
+ 67, -1, -1, -1, 74, -1, -1, 74, -1, -1,
+ -1, -1, -1, 83, 3, 85, 83, -1, 85, -1,
+ -1, -1, -1, -1, 13, -1, -1, -1, 17, -1,
+ -1, -1, -1, -1, 3, -1, -1, 26, -1, 28,
+ -1, -1, 31, -1, 13, -1, -1, -1, 17, -1,
+ 39, -1, 41, 42, -1, -1, -1, 26, -1, 28,
+ 49, -1, -1, 52, 53, -1, -1, -1, -1, 58,
+ 39, -1, 41, 42, -1, 64, -1, -1, -1, -1,
+ 49, -1, -1, 52, 53, -1, -1, -1, -1, 58,
+ 79, -1, -1, -1, -1, 64, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 77, -1, -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, -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, -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, -1, 11, 12, 13, -1, -1, -1, -1, -1,
- -1, -1, -1, 22, -1, -1, -1, -1, -1, -1,
- 29, -1, -1, -1, 33, 34, -1, 36, -1, -1,
- -1, 40, -1, 42, 43, 44, -1, -1, 47, -1,
- -1, -1, 51, -1, 53, -1, -1, 56, -1, -1,
- -1, -1, -1, -1, -1, -1, 65, -1, 67, -1,
- 69, -1, 71, -1, 73, -1, -1, -1, -1, 78,
- 79, 80, -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, 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, -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,
+ 79, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 12, 13, -1, -1, -1, -1, -1, -1,
+ -1, -1, 22, -1, -1, -1, -1, -1, -1, 29,
+ -1, -1, -1, 33, 34, -1, 36, -1, -1, -1,
+ -1, -1, -1, 43, -1, -1, -1, 47, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 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, -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, -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, -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, -1, 4, -1,
- -1, -1, -1, 9, -1, 11, 12, 13, 14, -1,
- -1, -1, -1, -1, -1, 21, 22, -1, -1, -1,
- -1, -1, -1, 29, 30, -1, -1, 33, 34, -1,
+ -1, -1, -1, -1, -1, 65, 66, 67, -1, 69,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 80, 81, 82, -1, -1, -1, -1, -1, -1, -1,
+ -1, 11, 12, 13, -1, -1, -1, -1, -1, -1,
+ -1, -1, 22, -1, -1, -1, -1, -1, -1, 29,
+ -1, -1, -1, 33, 34, -1, 36, -1, -1, -1,
+ 40, -1, 42, 43, 44, -1, -1, 47, -1, -1,
+ -1, 51, -1, 53, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 65, 66, 67, -1, 69,
+ -1, 71, -1, 73, -1, 75, -1, -1, -1, -1,
+ 80, 81, 82, -1, -1, -1, -1, -1, -1, -1,
+ -1, 11, 12, 13, -1, -1, -1, -1, -1, -1,
+ -1, -1, 22, -1, -1, -1, -1, -1, -1, 29,
+ -1, -1, -1, 33, 34, -1, 36, -1, -1, -1,
+ 40, -1, 42, 43, 44, -1, -1, 47, -1, -1,
+ -1, 51, -1, 53, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 65, 66, 67, -1, 69,
+ -1, 71, -1, 73, 74, 75, -1, -1, -1, -1,
+ 80, 81, 82, -1, -1, -1, -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, 56, -1, -1, -1,
+ -1, -1, -1, -1, -1, 65, 66, 67, -1, 69,
+ -1, 71, -1, 73, -1, 75, -1, -1, -1, -1,
+ 80, 81, 82, -1, -1, -1, -1, -1, -1, -1,
+ -1, 7, -1, -1, -1, 11, 12, 13, -1, -1,
+ -1, -1, -1, -1, -1, -1, 22, -1, -1, -1,
+ -1, -1, -1, 29, -1, -1, -1, 33, 34, -1,
+ 36, -1, -1, -1, 40, -1, 42, 43, 44, -1,
+ -1, 47, -1, -1, -1, 51, -1, 53, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 65,
+ 66, 67, -1, 69, -1, 71, -1, 73, -1, 75,
+ -1, -1, -1, -1, 80, 81, 82, -1, -1, -1,
+ -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, 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,
+ 56, -1, -1, -1, -1, -1, -1, -1, -1, 65,
+ 66, 67, -1, 69, -1, 71, -1, 73, -1, 75,
+ -1, -1, -1, -1, 80, 81, 82, -1, -1, -1,
+ -1, -1, -1, -1, -1, 4, 5, 6, -1, -1,
+ 9, 10, 11, -1, -1, 14, -1, 16, -1, -1,
+ -1, 20, 21, 22, -1, -1, -1, -1, -1, -1,
+ 29, 30, 31, 32, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 43, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 59, -1, -1, -1, -1, -1, -1, 66, 67, 68,
+ 69, 70, -1, 72, 73, 74, 75, 76, 77, -1,
+ -1, 80, 81, 82, 83, 84, 85, -1, -1, -1,
+ -1, -1, 4, 5, 6, -1, -1, 9, 10, 11,
+ -1, -1, 14, -1, 16, -1, -1, -1, 20, 21,
+ 22, -1, -1, -1, -1, -1, -1, 29, 30, 31,
+ 32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 43, -1, -1, -1, 47, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 59, -1, -1,
+ -1, -1, -1, 65, 66, 67, 68, 69, 70, -1,
+ 72, 73, 74, 75, 76, 77, -1, -1, 80, 81,
+ 82, 83, 84, 85, -1, -1, -1, -1, -1, 4,
+ 5, 6, -1, -1, 9, 10, 11, -1, -1, 14,
+ -1, 16, -1, -1, -1, 20, 21, 22, -1, -1,
+ -1, -1, -1, -1, 29, 30, 31, 32, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 43, -1,
+ -1, -1, 47, -1, -1, -1, -1, -1, -1, -1,
+ 55, -1, -1, -1, 59, -1, -1, -1, -1, -1,
+ 65, 66, 67, 68, 69, 70, -1, 72, 73, 74,
+ 75, 76, 77, -1, -1, 80, 81, 82, 83, 84,
+ 85, -1, -1, -1, -1, -1, 4, -1, -1, -1,
+ -1, 9, -1, 11, 12, 13, 14, -1, -1, -1,
+ -1, -1, -1, 21, 22, -1, -1, -1, -1, -1,
+ -1, 29, 30, -1, -1, 33, 34, -1, 36, -1,
+ -1, -1, 40, -1, 42, 43, 44, -1, -1, 47,
+ -1, -1, -1, 51, -1, 53, -1, -1, -1, -1,
+ -1, 59, -1, 61, -1, -1, -1, 65, 66, 67,
+ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
+ -1, -1, 80, 81, 82, 83, 84, -1, -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,
@@ -677,58 +695,79 @@ const int JavaScriptGrammar::action_check [] = {
-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, -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, 84, -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,
+ 71, 72, 73, 74, 75, 76, 77, -1, -1, 80,
+ 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
+ 4, -1, -1, -1, -1, 9, -1, 11, 12, 13,
+ 14, -1, -1, -1, -1, -1, -1, 21, 22, -1,
+ -1, -1, -1, -1, -1, 29, 30, -1, -1, 33,
+ 34, -1, 36, -1, -1, -1, 40, -1, 42, 43,
+ 44, -1, -1, 47, -1, -1, -1, 51, -1, 53,
+ -1, -1, -1, -1, -1, 59, -1, 61, -1, -1,
+ -1, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, -1, -1, 80, 81, 82, 83,
+ 84, -1, -1, -1, -1, -1, -1, 4, -1, -1,
+ -1, -1, 9, -1, 11, 12, 13, 14, -1, -1,
+ -1, -1, -1, -1, 21, 22, -1, -1, -1, -1,
+ -1, -1, 29, 30, -1, -1, 33, 34, -1, 36,
+ -1, -1, -1, 40, -1, 42, 43, 44, -1, -1,
+ 47, -1, -1, -1, 51, -1, 53, -1, -1, -1,
+ -1, -1, 59, -1, 61, -1, -1, -1, 65, 66,
+ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, -1, -1, 80, 81, 82, 83, 84, -1, 86,
+ -1, -1, -1, -1, 4, 5, 6, -1, -1, 9,
+ 10, 11, 12, 13, 14, -1, 16, -1, -1, -1,
+ 20, 21, 22, -1, -1, -1, -1, -1, -1, 29,
+ 30, 31, 32, 33, 34, -1, 36, -1, -1, -1,
+ 40, -1, 42, 43, 44, -1, -1, 47, -1, -1,
+ -1, 51, -1, 53, -1, 55, -1, -1, -1, 59,
+ -1, 61, -1, -1, -1, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, -1, -1,
+ 80, 81, 82, 83, 84, 85, -1, -1, -1, -1,
+ -1,
- 22, 18, 56, 22, 14, 13, 24, 60, 13, 22,
- 14, 13, 80, 14, 13, 22, 14, 5, 78, 22,
- 16, 14, 22, 14, 60, 22, 9, 22, 22, 14,
- 22, 92, 22, 14, 13, 13, 25, 9, 13, 10,
- 9, 74, 86, 13, 60, 60, 14, 13, 13, 89,
- 14, 14, 14, 14, 14, 13, 91, 14, 13, 13,
- 13, -1, 74, 14, 14, 6, 33, 14, 8, 7,
- 10, 38, 10, -1, 33, 16, -1, 33, 14, -1,
- 36, 33, -1, 35, 33, 33, 35, 35, 47, 33,
- 33, 33, 27, 36, 33, 30, 35, 27, -1, 33,
- 30, 35, -1, 45, 33, 49, 33, 57, 33, 38,
- 57, 38, 33, 38, 35, 33, 33, 33, 35, 33,
- 38, 35, 33, 33, 35, 33, -1, 43, 33, 39,
- 13, 39, 15, 38, 33, 33, 33, 33, 14, 38,
- 38, 38, 33, 39, 35, 33, 33, 35, 33, 33,
- 14, 35, 39, 38, 33, 33, 33, 35, -1, 33,
- 22, 38, 41, 37, 22, 33, 33, 29, 35, 37,
- 33, 29, 25, 26, 33, 38, 35, 2, 33, 33,
- -1, 57, 37, 33, 38, -1, -1, 33, 38, -1,
- 44, 16, 38, 57, 40, 33, 33, 13, 33, 15,
- 38, 38, 33, 38, 33, 55, 13, 38, 15, 38,
- 33, 46, -1, -1, -1, 38, 33, 55, 55, 48,
- 33, 38, 33, 40, 55, 38, -1, 38, 33, 42,
- -1, 33, 55, 38, -1, 40, 38, -1, 40, 50,
- -1, -1, 6, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 16, -1, -1, -1, -1, -1, -1, -1,
+ 91, 88, 15, 24, 9, 15, 13, 13, 20, 24,
+ 13, 15, 9, 15, 14, 62, 15, 18, 58, 9,
+ 18, 15, 13, 18, 13, 13, 13, 93, 24, 62,
+ 15, 13, 18, 13, 62, 95, 95, 18, 15, 18,
+ 24, 24, 13, 15, 13, 15, 24, 95, 15, 13,
+ 18, 13, 18, 13, 13, 13, 13, 100, -1, 15,
+ 15, 24, -1, -1, 15, 26, 15, 13, 18, 62,
+ 24, 24, 24, 18, 18, 15, 18, 24, 15, 18,
+ 15, 24, 18, 15, 15, 10, 15, 35, 31, 13,
+ -1, -1, 40, 18, 35, 18, 18, 35, 5, 40,
+ 13, 35, 40, 18, 24, 35, 40, 35, 35, 35,
+ 40, 31, 40, -1, 35, -1, 37, 35, 35, -1,
+ 18, 39, 49, 40, 59, 51, 35, 59, 59, 35,
+ 59, 40, 35, 35, 40, 37, 35, 40, 37, 35,
+ 35, 37, 35, 35, 80, 37, -1, 40, 43, 35,
+ 35, 37, 76, 35, 35, 37, 41, 35, 35, 82,
+ 41, 38, 40, 76, 35, 35, 35, 35, 35, 38,
+ 41, 41, 94, 35, 35, 37, 37, 45, -1, 94,
+ 47, 35, 29, 37, 35, 32, 37, 35, -1, 35,
+ 35, 39, 37, 39, -1, 35, 94, 37, 35, 29,
+ 37, 35, 32, 35, 35, -1, 40, 35, 40, 40,
+ -1, 35, 40, 16, 17, 18, 40, 35, 50, 35,
+ 35, 52, 40, 57, 40, 40, 42, 42, 46, 57,
+ 35, 35, 18, 57, 35, 40, 40, 42, 35, 40,
+ -1, 27, 28, 40, 8, 42, 10, 7, -1, -1,
+ 10, -1, 35, 57, 18, 35, 57, 40, 18, 2,
+ 40, -1, 18, -1, 44, 48, -1, -1, -1, -1,
+ -1, 27, -1, 16, 17, 18, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 6, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 16, 17, 18, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 98, -1, -1, -1, 93, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1};
+ -1, -1};
diff --git a/src/declarative/qml/parser/javascriptgrammar_p.h b/src/declarative/qml/parser/javascriptgrammar_p.h
index 61a2eb0..5a882e8 100644
--- a/src/declarative/qml/parser/javascriptgrammar_p.h
+++ b/src/declarative/qml/parser/javascriptgrammar_p.h
@@ -59,8 +59,8 @@ class JavaScriptGrammar
public:
enum {
EOF_SYMBOL = 0,
- REDUCE_HERE = 88,
- SHIFT_THERE = 87,
+ REDUCE_HERE = 90,
+ SHIFT_THERE = 89,
T_AND = 1,
T_AND_AND = 2,
T_AND_EQ = 3,
@@ -70,9 +70,9 @@ public:
T_CATCH = 6,
T_COLON = 7,
T_COMMA = 8,
- T_CONST = 81,
+ T_CONST = 83,
T_CONTINUE = 9,
- T_DEBUGGER = 82,
+ T_DEBUGGER = 84,
T_DEFAULT = 10,
T_DELETE = 11,
T_DIVIDE_ = 12,
@@ -83,7 +83,7 @@ public:
T_EQ = 17,
T_EQ_EQ = 18,
T_EQ_EQ_EQ = 19,
- T_FALSE = 80,
+ T_FALSE = 82,
T_FINALLY = 20,
T_FOR = 21,
T_FUNCTION = 22,
@@ -95,7 +95,7 @@ public:
T_GT_GT_GT_EQ = 28,
T_IDENTIFIER = 29,
T_IF = 30,
- T_IMPORT = 86,
+ T_IMPORT = 88,
T_IN = 31,
T_INSTANCEOF = 32,
T_LBRACE = 33,
@@ -108,12 +108,12 @@ public:
T_MINUS = 40,
T_MINUS_EQ = 41,
T_MINUS_MINUS = 42,
- T_MULTILINE_STRING_LITERAL = 84,
+ T_MULTILINE_STRING_LITERAL = 86,
T_NEW = 43,
T_NOT = 44,
T_NOT_EQ = 45,
T_NOT_EQ_EQ = 46,
- T_NULL = 78,
+ T_NULL = 80,
T_NUMERIC_LITERAL = 47,
T_OR = 48,
T_OR_EQ = 49,
@@ -121,42 +121,44 @@ public:
T_PLUS = 51,
T_PLUS_EQ = 52,
T_PLUS_PLUS = 53,
- T_PUBLIC = 85,
+ T_PROPERTY = 66,
+ T_PUBLIC = 87,
T_QUESTION = 54,
T_RBRACE = 55,
T_RBRACKET = 56,
T_REMAINDER = 57,
T_REMAINDER_EQ = 58,
- T_RESERVED_WORD = 83,
+ T_RESERVED_WORD = 85,
T_RETURN = 59,
T_RPAREN = 60,
T_SEMICOLON = 61,
+ T_SIGNAL = 67,
T_STAR = 63,
T_STAR_EQ = 64,
T_STRING_LITERAL = 65,
- T_SWITCH = 66,
- T_THIS = 67,
- T_THROW = 68,
- T_TILDE = 69,
- T_TRUE = 79,
- T_TRY = 70,
- T_TYPEOF = 71,
- T_VAR = 72,
- T_VOID = 73,
- T_WHILE = 74,
- T_WITH = 75,
- T_XOR = 76,
- T_XOR_EQ = 77,
-
- ACCEPT_STATE = 531,
- RULE_COUNT = 304,
- STATE_COUNT = 532,
- TERMINAL_COUNT = 89,
- NON_TERMINAL_COUNT = 100,
-
- GOTO_INDEX_OFFSET = 532,
- GOTO_INFO_OFFSET = 1798,
- GOTO_CHECK_OFFSET = 1798
+ T_SWITCH = 68,
+ T_THIS = 69,
+ T_THROW = 70,
+ T_TILDE = 71,
+ T_TRUE = 81,
+ T_TRY = 72,
+ T_TYPEOF = 73,
+ T_VAR = 74,
+ T_VOID = 75,
+ T_WHILE = 76,
+ T_WITH = 77,
+ T_XOR = 78,
+ T_XOR_EQ = 79,
+
+ ACCEPT_STATE = 565,
+ RULE_COUNT = 316,
+ STATE_COUNT = 566,
+ TERMINAL_COUNT = 91,
+ NON_TERMINAL_COUNT = 102,
+
+ GOTO_INDEX_OFFSET = 566,
+ GOTO_INFO_OFFSET = 1811,
+ GOTO_CHECK_OFFSET = 1811
};
static const char *const spell [];
diff --git a/src/declarative/qml/parser/javascriptlexer.cpp b/src/declarative/qml/parser/javascriptlexer.cpp
index 90f8e44..7bbb4bf 100644
--- a/src/declarative/qml/parser/javascriptlexer.cpp
+++ b/src/declarative/qml/parser/javascriptlexer.cpp
@@ -291,6 +291,10 @@ int JavaScript::Lexer::findReservedWord(const QChar *c, int size) const
&& c[2] == QLatin1Char('p') && c[3] == QLatin1Char('o')
&& c[4] == QLatin1Char('r') && c[5] == QLatin1Char('t'))
return JavaScriptGrammar::T_IMPORT;
+ else if (c[0] == QLatin1Char('s') && c[1] == QLatin1Char('i')
+ && c[2] == QLatin1Char('g') && c[3] == QLatin1Char('n')
+ && c[4] == QLatin1Char('a') && c[5] == QLatin1Char('l'))
+ return JavaScriptGrammar::T_IMPORT;
else if (check_reserved) {
if (c[0] == QLatin1Char('e') && c[1] == QLatin1Char('x')
&& c[2] == QLatin1Char('p') && c[3] == QLatin1Char('o')
@@ -374,6 +378,11 @@ int JavaScript::Lexer::findReservedWord(const QChar *c, int size) const
&& c[4] == QLatin1Char('g') && c[5] == QLatin1Char('g')
&& c[6] == QLatin1Char('e') && c[7] == QLatin1Char('r'))
return JavaScriptGrammar::T_DEBUGGER;
+ else if (c[0] == QLatin1Char('p') && c[1] == QLatin1Char('r')
+ && c[2] == QLatin1Char('o') && c[3] == QLatin1Char('p')
+ && c[4] == QLatin1Char('e') && c[5] == QLatin1Char('r')
+ && c[6] == QLatin1Char('t') && c[7] == QLatin1Char('y'))
+ return JavaScriptGrammar::T_PROPERTY;
else if (check_reserved) {
if (c[0] == QLatin1Char('a') && c[1] == QLatin1Char('b')
&& c[2] == QLatin1Char('s') && c[3] == QLatin1Char('t')
diff --git a/src/declarative/qml/parser/javascriptparser.cpp b/src/declarative/qml/parser/javascriptparser.cpp
index 58b7a5b..21dcb0f 100644
--- a/src/declarative/qml/parser/javascriptparser.cpp
+++ b/src/declarative/qml/parser/javascriptparser.cpp
@@ -271,116 +271,130 @@ case 25: {
sym(1).Node = node;
} break;
-case 26: {
+case 26:
+
+case 27: {
+ sym(1).sval = driver->intern(lexer->characterBuffer(), lexer->characterCount());
+ break;
+}
+
+case 29: {
AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(2).sval, sym(3).sval);
- node->publicToken = loc(1);
- node->attributeTypeToken = loc(2);
+ node->propertyToken = loc(1);
+ node->typeToken = loc(2);
node->identifierToken = loc(3);
sym(1).Node = node;
} break;
-case 27: {
+case 30: {
AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(3).sval, sym(4).sval);
node->isDefaultMember = true;
- node->publicToken = loc(1);
- node->attributeTypeToken = loc(3);
+ node->propertyToken = loc(1);
+ node->typeToken = loc(3);
node->identifierToken = loc(4);
sym(1).Node = node;
} break;
-case 28: {
+case 31: {
AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(2).sval, sym(3).sval,
sym(5).Expression);
- node->publicToken = loc(1);
- node->attributeTypeToken = loc(2);
+ node->propertyToken = loc(1);
+ node->typeToken = loc(2);
node->identifierToken = loc(3);
node->colonToken = loc(4);
sym(1).Node = node;
} break;
-case 29: {
+case 32: {
AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(3).sval, sym(4).sval,
sym(6).Expression);
node->isDefaultMember = true;
- node->publicToken = loc(1);
- node->attributeTypeToken = loc(3);
+ node->propertyToken = loc(1);
+ node->typeToken = loc(3);
node->identifierToken = loc(4);
node->colonToken = loc(5);
sym(1).Node = node;
} break;
-case 30: {
+case 33: {
sym(1).Node = makeAstNode<AST::UiSourceElement>(driver->nodePool(), sym(1).Node);
} break;
-case 31: {
+case 34: {
sym(1).Node = makeAstNode<AST::UiSourceElement>(driver->nodePool(), sym(1).Node);
} break;
-case 32:
+case 35:
-case 33:
+case 36:
{
AST::UiQualifiedId *node = makeAstNode<AST::UiQualifiedId> (driver->nodePool(), driver->intern(lexer->characterBuffer(), lexer->characterCount()));
node->identifierToken = loc(1);
sym(1).Node = node;
} break;
-case 34: {
+case 38:
+
+case 39: {
+ sym(1).sval = driver->intern(lexer->characterBuffer(), lexer->characterCount());
+ break;
+}
+
+case 40: {
AST::UiQualifiedId *node = makeAstNode<AST::UiQualifiedId> (driver->nodePool(), sym(1).sval);
node->identifierToken = loc(1);
sym(1).Node = node;
} break;
-case 35: {
+case 41: {
AST::UiQualifiedId *node = makeAstNode<AST::UiQualifiedId> (driver->nodePool(), sym(1).UiQualifiedId, sym(3).sval);
node->identifierToken = loc(3);
sym(1).Node = node;
} break;
-case 36: {
+case 42: {
AST::ThisExpression *node = makeAstNode<AST::ThisExpression> (driver->nodePool());
node->thisToken = loc(1);
sym(1).Node = node;
} break;
-case 37: {
+case 43: {
AST::IdentifierExpression *node = makeAstNode<AST::IdentifierExpression> (driver->nodePool(), sym(1).sval);
node->identifierToken = loc(1);
sym(1).Node = node;
} break;
-case 38: {
+case 44: {
AST::NullExpression *node = makeAstNode<AST::NullExpression> (driver->nodePool());
node->nullToken = loc(1);
sym(1).Node = node;
} break;
-case 39: {
+case 45: {
AST::TrueLiteral *node = makeAstNode<AST::TrueLiteral> (driver->nodePool());
node->trueToken = loc(1);
sym(1).Node = node;
} break;
-case 40: {
+case 46: {
AST::FalseLiteral *node = makeAstNode<AST::FalseLiteral> (driver->nodePool());
node->falseToken = loc(1);
sym(1).Node = node;
} break;
-case 41: {
+case 47: {
AST::NumericLiteral *node = makeAstNode<AST::NumericLiteral> (driver->nodePool(), sym(1).dval);
node->literalToken = loc(1);
sym(1).Node = node;
} break;
-case 42: {
+case 48: {
AST::StringLiteral *node = makeAstNode<AST::StringLiteral> (driver->nodePool(), sym(1).sval);
node->literalToken = loc(1);
sym(1).Node = node;
} break;
-case 43: {
+case 49: {
bool rx = lexer->scanRegExp(Lexer::NoPrefix);
if (!rx) {
diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, lexer->startLineNo(),
@@ -392,7 +406,7 @@ case 43: {
sym(1).Node = node;
} break;
-case 44: {
+case 50: {
bool rx = lexer->scanRegExp(Lexer::EqualPrefix);
if (!rx) {
diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, lexer->startLineNo(),
@@ -404,21 +418,21 @@ case 44: {
sym(1).Node = node;
} break;
-case 45: {
+case 51: {
AST::ArrayLiteral *node = makeAstNode<AST::ArrayLiteral> (driver->nodePool(), sym(2).Elision);
node->lbracketToken = loc(1);
node->rbracketToken = loc(3);
sym(1).Node = node;
} break;
-case 46: {
+case 52: {
AST::ArrayLiteral *node = makeAstNode<AST::ArrayLiteral> (driver->nodePool(), sym(2).ElementList->finish ());
node->lbracketToken = loc(1);
node->rbracketToken = loc(3);
sym(1).Node = node;
} break;
-case 47: {
+case 53: {
AST::ArrayLiteral *node = makeAstNode<AST::ArrayLiteral> (driver->nodePool(), sym(2).ElementList->finish (), sym(4).Elision);
node->lbracketToken = loc(1);
node->commaToken = loc(3);
@@ -426,7 +440,7 @@ case 47: {
sym(1).Node = node;
} break;
-case 48: {
+case 54: {
AST::ObjectLiteral *node = 0;
if (sym(2).Node)
node = makeAstNode<AST::ObjectLiteral> (driver->nodePool(),
@@ -438,7 +452,7 @@ case 48: {
sym(1).Node = node;
} break;
-case 49: {
+case 55: {
AST::ObjectLiteral *node = makeAstNode<AST::ObjectLiteral> (driver->nodePool(),
sym(2).PropertyNameAndValueList->finish ());
node->lbraceToken = loc(1);
@@ -446,51 +460,51 @@ case 49: {
sym(1).Node = node;
} break;
-case 50: {
+case 56: {
AST::NestedExpression *node = makeAstNode<AST::NestedExpression>(driver->nodePool(), sym(2).Expression);
node->lparenToken = loc(1);
node->rparenToken = loc(3);
sym(1).Node = node;
} break;
-case 51: {
+case 57: {
sym(1).Node = makeAstNode<AST::ElementList> (driver->nodePool(), sym(1).Elision, sym(2).Expression);
} break;
-case 52: {
+case 58: {
AST::ElementList *node = makeAstNode<AST::ElementList> (driver->nodePool(), sym(1).ElementList, sym(3).Elision, sym(4).Expression);
node->commaToken = loc(2);
sym(1).Node = node;
} break;
-case 53: {
+case 59: {
AST::Elision *node = makeAstNode<AST::Elision> (driver->nodePool());
node->commaToken = loc(1);
sym(1).Node = node;
} break;
-case 54: {
+case 60: {
AST::Elision *node = makeAstNode<AST::Elision> (driver->nodePool(), sym(1).Elision);
node->commaToken = loc(2);
sym(1).Node = node;
} break;
-case 55: {
+case 61: {
sym(1).Node = 0;
} break;
-case 56: {
+case 62: {
sym(1).Elision = sym(1).Elision->finish ();
} break;
-case 57: {
+case 63: {
AST::PropertyNameAndValueList *node = makeAstNode<AST::PropertyNameAndValueList> (driver->nodePool(),
sym(1).PropertyName, sym(3).Expression);
node->colonToken = loc(2);
sym(1).Node = node;
} break;
-case 58: {
+case 64: {
AST::PropertyNameAndValueList *node = makeAstNode<AST::PropertyNameAndValueList> (driver->nodePool(),
sym(1).PropertyNameAndValueList, sym(3).PropertyName, sym(5).Expression);
node->commaToken = loc(2);
@@ -498,46 +512,36 @@ case 58: {
sym(1).Node = node;
} break;
-case 59: {
+case 65: {
AST::IdentifierPropertyName *node = makeAstNode<AST::IdentifierPropertyName> (driver->nodePool(), sym(1).sval);
node->propertyNameToken = loc(1);
sym(1).Node = node;
} break;
-case 60: {
+case 67: {
+ AST::IdentifierPropertyName *node = makeAstNode<AST::IdentifierPropertyName> (driver->nodePool(), driver->intern(lexer->characterBuffer(), lexer->characterCount()));
+ node->propertyNameToken = loc(1);
+ sym(1).Node = node;
+} break;
+
+case 68: {
AST::StringLiteralPropertyName *node = makeAstNode<AST::StringLiteralPropertyName> (driver->nodePool(), sym(1).sval);
node->propertyNameToken = loc(1);
sym(1).Node = node;
} break;
-case 61: {
+case 69: {
AST::NumericLiteralPropertyName *node = makeAstNode<AST::NumericLiteralPropertyName> (driver->nodePool(), sym(1).dval);
node->propertyNameToken = loc(1);
sym(1).Node = node;
} break;
-case 62: {
+case 70: {
AST::IdentifierPropertyName *node = makeAstNode<AST::IdentifierPropertyName> (driver->nodePool(), sym(1).sval);
node->propertyNameToken = loc(1);
sym(1).Node = node;
} break;
-case 63:
-
-case 64:
-
-case 65:
-
-case 66:
-
-case 67:
-
-case 68:
-
-case 69:
-
-case 70:
-
case 71:
case 72:
@@ -583,25 +587,41 @@ case 91:
case 92:
case 93:
+
+case 94:
+
+case 95:
+
+case 96:
+
+case 97:
+
+case 98:
+
+case 99:
+
+case 100:
+
+case 101:
{
sym(1).sval = driver->intern(lexer->characterBuffer(), lexer->characterCount());
} break;
-case 98: {
+case 106: {
AST::ArrayMemberExpression *node = makeAstNode<AST::ArrayMemberExpression> (driver->nodePool(), sym(1).Expression, sym(3).Expression);
node->lbracketToken = loc(2);
node->rbracketToken = loc(4);
sym(1).Node = node;
} break;
-case 99: {
+case 107: {
AST::FieldMemberExpression *node = makeAstNode<AST::FieldMemberExpression> (driver->nodePool(), sym(1).Expression, sym(3).sval);
node->dotToken = loc(2);
node->identifierToken = loc(3);
sym(1).Node = node;
} break;
-case 100: {
+case 108: {
AST::NewMemberExpression *node = makeAstNode<AST::NewMemberExpression> (driver->nodePool(), sym(2).Expression, sym(4).ArgumentList);
node->newToken = loc(1);
node->lparenToken = loc(3);
@@ -609,384 +629,384 @@ case 100: {
sym(1).Node = node;
} break;
-case 102: {
+case 110: {
AST::NewExpression *node = makeAstNode<AST::NewExpression> (driver->nodePool(), sym(2).Expression);
node->newToken = loc(1);
sym(1).Node = node;
} break;
-case 103: {
+case 111: {
AST::CallExpression *node = makeAstNode<AST::CallExpression> (driver->nodePool(), sym(1).Expression, sym(3).ArgumentList);
node->lparenToken = loc(2);
node->rparenToken = loc(4);
sym(1).Node = node;
} break;
-case 104: {
+case 112: {
AST::CallExpression *node = makeAstNode<AST::CallExpression> (driver->nodePool(), sym(1).Expression, sym(3).ArgumentList);
node->lparenToken = loc(2);
node->rparenToken = loc(4);
sym(1).Node = node;
} break;
-case 105: {
+case 113: {
AST::ArrayMemberExpression *node = makeAstNode<AST::ArrayMemberExpression> (driver->nodePool(), sym(1).Expression, sym(3).Expression);
node->lbracketToken = loc(2);
node->rbracketToken = loc(4);
sym(1).Node = node;
} break;
-case 106: {
+case 114: {
AST::FieldMemberExpression *node = makeAstNode<AST::FieldMemberExpression> (driver->nodePool(), sym(1).Expression, sym(3).sval);
node->dotToken = loc(2);
node->identifierToken = loc(3);
sym(1).Node = node;
} break;
-case 107: {
+case 115: {
sym(1).Node = 0;
} break;
-case 108: {
+case 116: {
sym(1).Node = sym(1).ArgumentList->finish();
} break;
-case 109: {
+case 117: {
sym(1).Node = makeAstNode<AST::ArgumentList> (driver->nodePool(), sym(1).Expression);
} break;
-case 110: {
+case 118: {
AST::ArgumentList *node = makeAstNode<AST::ArgumentList> (driver->nodePool(), sym(1).ArgumentList, sym(3).Expression);
node->commaToken = loc(2);
sym(1).Node = node;
} break;
-case 114: {
+case 122: {
AST::PostIncrementExpression *node = makeAstNode<AST::PostIncrementExpression> (driver->nodePool(), sym(1).Expression);
node->incrementToken = loc(2);
sym(1).Node = node;
} break;
-case 115: {
+case 123: {
AST::PostDecrementExpression *node = makeAstNode<AST::PostDecrementExpression> (driver->nodePool(), sym(1).Expression);
node->decrementToken = loc(2);
sym(1).Node = node;
} break;
-case 117: {
+case 125: {
AST::DeleteExpression *node = makeAstNode<AST::DeleteExpression> (driver->nodePool(), sym(2).Expression);
node->deleteToken = loc(1);
sym(1).Node = node;
} break;
-case 118: {
+case 126: {
AST::VoidExpression *node = makeAstNode<AST::VoidExpression> (driver->nodePool(), sym(2).Expression);
node->voidToken = loc(1);
sym(1).Node = node;
} break;
-case 119: {
+case 127: {
AST::TypeOfExpression *node = makeAstNode<AST::TypeOfExpression> (driver->nodePool(), sym(2).Expression);
node->typeofToken = loc(1);
sym(1).Node = node;
} break;
-case 120: {
+case 128: {
AST::PreIncrementExpression *node = makeAstNode<AST::PreIncrementExpression> (driver->nodePool(), sym(2).Expression);
node->incrementToken = loc(1);
sym(1).Node = node;
} break;
-case 121: {
+case 129: {
AST::PreDecrementExpression *node = makeAstNode<AST::PreDecrementExpression> (driver->nodePool(), sym(2).Expression);
node->decrementToken = loc(1);
sym(1).Node = node;
} break;
-case 122: {
+case 130: {
AST::UnaryPlusExpression *node = makeAstNode<AST::UnaryPlusExpression> (driver->nodePool(), sym(2).Expression);
node->plusToken = loc(1);
sym(1).Node = node;
} break;
-case 123: {
+case 131: {
AST::UnaryMinusExpression *node = makeAstNode<AST::UnaryMinusExpression> (driver->nodePool(), sym(2).Expression);
node->minusToken = loc(1);
sym(1).Node = node;
} break;
-case 124: {
+case 132: {
AST::TildeExpression *node = makeAstNode<AST::TildeExpression> (driver->nodePool(), sym(2).Expression);
node->tildeToken = loc(1);
sym(1).Node = node;
} break;
-case 125: {
+case 133: {
AST::NotExpression *node = makeAstNode<AST::NotExpression> (driver->nodePool(), sym(2).Expression);
node->notToken = loc(1);
sym(1).Node = node;
} break;
-case 127: {
+case 135: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::Mul, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 128: {
+case 136: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::Div, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 129: {
+case 137: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::Mod, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 131: {
+case 139: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::Add, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 132: {
+case 140: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::Sub, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 134: {
+case 142: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::LShift, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 135: {
+case 143: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::RShift, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 136: {
+case 144: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::URShift, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 138: {
+case 146: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::Lt, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 139: {
+case 147: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::Gt, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 140: {
+case 148: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::Le, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 141: {
+case 149: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::Ge, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 142: {
+case 150: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::InstanceOf, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 143: {
+case 151: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::In, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 145: {
+case 153: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::Lt, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 146: {
+case 154: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::Gt, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 147: {
+case 155: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::Le, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 148: {
+case 156: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::Ge, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 149: {
+case 157: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::InstanceOf, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 151: {
+case 159: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::Equal, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 152: {
+case 160: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::NotEqual, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 153: {
+case 161: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::StrictEqual, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 154: {
+case 162: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::StrictNotEqual, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 156: {
+case 164: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::Equal, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 157: {
+case 165: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::NotEqual, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 158: {
+case 166: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::StrictEqual, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 159: {
+case 167: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::StrictNotEqual, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 161: {
+case 169: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::BitAnd, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 163: {
+case 171: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::BitAnd, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 165: {
+case 173: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::BitXor, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 167: {
+case 175: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::BitXor, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 169: {
+case 177: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::BitOr, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 171: {
+case 179: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::BitOr, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 173: {
+case 181: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::And, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 175: {
+case 183: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::And, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 177: {
+case 185: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::Or, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 179: {
+case 187: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
QSOperator::Or, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 181: {
+case 189: {
AST::ConditionalExpression *node = makeAstNode<AST::ConditionalExpression> (driver->nodePool(), sym(1).Expression,
sym(3).Expression, sym(5).Expression);
node->questionToken = loc(2);
@@ -994,7 +1014,7 @@ case 181: {
sym(1).Node = node;
} break;
-case 183: {
+case 191: {
AST::ConditionalExpression *node = makeAstNode<AST::ConditionalExpression> (driver->nodePool(), sym(1).Expression,
sym(3).Expression, sym(5).Expression);
node->questionToken = loc(2);
@@ -1002,112 +1022,112 @@ case 183: {
sym(1).Node = node;
} break;
-case 185: {
+case 193: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
sym(2).ival, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 187: {
+case 195: {
AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression,
sym(2).ival, sym(3).Expression);
node->operatorToken = loc(2);
sym(1).Node = node;
} break;
-case 188: {
+case 196: {
sym(1).ival = QSOperator::Assign;
} break;
-case 189: {
+case 197: {
sym(1).ival = QSOperator::InplaceMul;
} break;
-case 190: {
+case 198: {
sym(1).ival = QSOperator::InplaceDiv;
} break;
-case 191: {
+case 199: {
sym(1).ival = QSOperator::InplaceMod;
} break;
-case 192: {
+case 200: {
sym(1).ival = QSOperator::InplaceAdd;
} break;
-case 193: {
+case 201: {
sym(1).ival = QSOperator::InplaceSub;
} break;
-case 194: {
+case 202: {
sym(1).ival = QSOperator::InplaceLeftShift;
} break;
-case 195: {
+case 203: {
sym(1).ival = QSOperator::InplaceRightShift;
} break;
-case 196: {
+case 204: {
sym(1).ival = QSOperator::InplaceURightShift;
} break;
-case 197: {
+case 205: {
sym(1).ival = QSOperator::InplaceAnd;
} break;
-case 198: {
+case 206: {
sym(1).ival = QSOperator::InplaceXor;
} break;
-case 199: {
+case 207: {
sym(1).ival = QSOperator::InplaceOr;
} break;
-case 201: {
+case 209: {
AST::Expression *node = makeAstNode<AST::Expression> (driver->nodePool(), sym(1).Expression, sym(3).Expression);
node->commaToken = loc(2);
sym(1).Node = node;
} break;
-case 202: {
+case 210: {
sym(1).Node = 0;
} break;
-case 205: {
+case 213: {
AST::Expression *node = makeAstNode<AST::Expression> (driver->nodePool(), sym(1).Expression, sym(3).Expression);
node->commaToken = loc(2);
sym(1).Node = node;
} break;
-case 206: {
+case 214: {
sym(1).Node = 0;
} break;
-case 223: {
+case 231: {
AST::Block *node = makeAstNode<AST::Block> (driver->nodePool(), sym(2).StatementList);
node->lbraceToken = loc(1);
node->rbraceToken = loc(3);
sym(1).Node = node;
} break;
-case 224: {
+case 232: {
sym(1).Node = makeAstNode<AST::StatementList> (driver->nodePool(), sym(1).Statement);
} break;
-case 225: {
+case 233: {
sym(1).Node = makeAstNode<AST::StatementList> (driver->nodePool(), sym(1).StatementList, sym(2).Statement);
} break;
-case 226: {
+case 234: {
sym(1).Node = 0;
} break;
-case 227: {
+case 235: {
sym(1).Node = sym(1).StatementList->finish ();
} break;
-case 229: {
+case 237: {
AST::VariableStatement *node = makeAstNode<AST::VariableStatement> (driver->nodePool(),
sym(2).VariableDeclarationList->finish (/*readOnly=*/sym(1).ival == T_CONST));
node->declarationKindToken = loc(1);
@@ -1115,76 +1135,76 @@ case 229: {
sym(1).Node = node;
} break;
-case 230: {
+case 238: {
sym(1).ival = T_CONST;
} break;
-case 231: {
+case 239: {
sym(1).ival = T_VAR;
} break;
-case 232: {
+case 240: {
sym(1).Node = makeAstNode<AST::VariableDeclarationList> (driver->nodePool(), sym(1).VariableDeclaration);
} break;
-case 233: {
+case 241: {
AST::VariableDeclarationList *node = makeAstNode<AST::VariableDeclarationList> (driver->nodePool(),
sym(1).VariableDeclarationList, sym(3).VariableDeclaration);
node->commaToken = loc(2);
sym(1).Node = node;
} break;
-case 234: {
+case 242: {
sym(1).Node = makeAstNode<AST::VariableDeclarationList> (driver->nodePool(), sym(1).VariableDeclaration);
} break;
-case 235: {
+case 243: {
sym(1).Node = makeAstNode<AST::VariableDeclarationList> (driver->nodePool(), sym(1).VariableDeclarationList, sym(3).VariableDeclaration);
} break;
-case 236: {
+case 244: {
AST::VariableDeclaration *node = makeAstNode<AST::VariableDeclaration> (driver->nodePool(), sym(1).sval, sym(2).Expression);
node->identifierToken = loc(1);
sym(1).Node = node;
} break;
-case 237: {
+case 245: {
AST::VariableDeclaration *node = makeAstNode<AST::VariableDeclaration> (driver->nodePool(), sym(1).sval, sym(2).Expression);
node->identifierToken = loc(1);
sym(1).Node = node;
} break;
-case 238: {
+case 246: {
// ### TODO: AST for initializer
sym(1) = sym(2);
} break;
-case 239: {
+case 247: {
sym(1).Node = 0;
} break;
-case 241: {
+case 249: {
// ### TODO: AST for initializer
sym(1) = sym(2);
} break;
-case 242: {
+case 250: {
sym(1).Node = 0;
} break;
-case 244: {
+case 252: {
AST::EmptyStatement *node = makeAstNode<AST::EmptyStatement> (driver->nodePool());
node->semicolonToken = loc(1);
sym(1).Node = node;
} break;
-case 246: {
+case 254: {
AST::ExpressionStatement *node = makeAstNode<AST::ExpressionStatement> (driver->nodePool(), sym(1).Expression);
node->semicolonToken = loc(2);
sym(1).Node = node;
} break;
-case 247: {
+case 255: {
AST::IfStatement *node = makeAstNode<AST::IfStatement> (driver->nodePool(), sym(3).Expression, sym(5).Statement, sym(7).Statement);
node->ifToken = loc(1);
node->lparenToken = loc(2);
@@ -1193,7 +1213,7 @@ case 247: {
sym(1).Node = node;
} break;
-case 248: {
+case 256: {
AST::IfStatement *node = makeAstNode<AST::IfStatement> (driver->nodePool(), sym(3).Expression, sym(5).Statement);
node->ifToken = loc(1);
node->lparenToken = loc(2);
@@ -1201,7 +1221,7 @@ case 248: {
sym(1).Node = node;
} break;
-case 250: {
+case 258: {
AST::DoWhileStatement *node = makeAstNode<AST::DoWhileStatement> (driver->nodePool(), sym(2).Statement, sym(5).Expression);
node->doToken = loc(1);
node->whileToken = loc(3);
@@ -1211,7 +1231,7 @@ case 250: {
sym(1).Node = node;
} break;
-case 251: {
+case 259: {
AST::WhileStatement *node = makeAstNode<AST::WhileStatement> (driver->nodePool(), sym(3).Expression, sym(5).Statement);
node->whileToken = loc(1);
node->lparenToken = loc(2);
@@ -1219,7 +1239,7 @@ case 251: {
sym(1).Node = node;
} break;
-case 252: {
+case 260: {
AST::ForStatement *node = makeAstNode<AST::ForStatement> (driver->nodePool(), sym(3).Expression,
sym(5).Expression, sym(7).Expression, sym(9).Statement);
node->forToken = loc(1);
@@ -1230,7 +1250,7 @@ case 252: {
sym(1).Node = node;
} break;
-case 253: {
+case 261: {
AST::LocalForStatement *node = makeAstNode<AST::LocalForStatement> (driver->nodePool(),
sym(4).VariableDeclarationList->finish (/*readOnly=*/false), sym(6).Expression,
sym(8).Expression, sym(10).Statement);
@@ -1243,7 +1263,7 @@ case 253: {
sym(1).Node = node;
} break;
-case 254: {
+case 262: {
AST:: ForEachStatement *node = makeAstNode<AST::ForEachStatement> (driver->nodePool(), sym(3).Expression,
sym(5).Expression, sym(7).Statement);
node->forToken = loc(1);
@@ -1253,7 +1273,7 @@ case 254: {
sym(1).Node = node;
} break;
-case 255: {
+case 263: {
AST::LocalForEachStatement *node = makeAstNode<AST::LocalForEachStatement> (driver->nodePool(),
sym(4).VariableDeclaration, sym(6).Expression, sym(8).Statement);
node->forToken = loc(1);
@@ -1264,14 +1284,14 @@ case 255: {
sym(1).Node = node;
} break;
-case 257: {
+case 265: {
AST::ContinueStatement *node = makeAstNode<AST::ContinueStatement> (driver->nodePool());
node->continueToken = loc(1);
node->semicolonToken = loc(2);
sym(1).Node = node;
} break;
-case 259: {
+case 267: {
AST::ContinueStatement *node = makeAstNode<AST::ContinueStatement> (driver->nodePool(), sym(2).sval);
node->continueToken = loc(1);
node->identifierToken = loc(2);
@@ -1279,14 +1299,14 @@ case 259: {
sym(1).Node = node;
} break;
-case 261: {
+case 269: {
AST::BreakStatement *node = makeAstNode<AST::BreakStatement> (driver->nodePool());
node->breakToken = loc(1);
node->semicolonToken = loc(2);
sym(1).Node = node;
} break;
-case 263: {
+case 271: {
AST::BreakStatement *node = makeAstNode<AST::BreakStatement> (driver->nodePool(), sym(2).sval);
node->breakToken = loc(1);
node->identifierToken = loc(2);
@@ -1294,14 +1314,14 @@ case 263: {
sym(1).Node = node;
} break;
-case 265: {
+case 273: {
AST::ReturnStatement *node = makeAstNode<AST::ReturnStatement> (driver->nodePool(), sym(2).Expression);
node->returnToken = loc(1);
node->semicolonToken = loc(3);
sym(1).Node = node;
} break;
-case 266: {
+case 274: {
AST::WithStatement *node = makeAstNode<AST::WithStatement> (driver->nodePool(), sym(3).Expression, sym(5).Statement);
node->withToken = loc(1);
node->lparenToken = loc(2);
@@ -1309,7 +1329,7 @@ case 266: {
sym(1).Node = node;
} break;
-case 267: {
+case 275: {
AST::SwitchStatement *node = makeAstNode<AST::SwitchStatement> (driver->nodePool(), sym(3).Expression, sym(5).CaseBlock);
node->switchToken = loc(1);
node->lparenToken = loc(2);
@@ -1317,83 +1337,90 @@ case 267: {
sym(1).Node = node;
} break;
-case 268: {
+case 276: {
AST::CaseBlock *node = makeAstNode<AST::CaseBlock> (driver->nodePool(), sym(2).CaseClauses);
node->lbraceToken = loc(1);
node->rbraceToken = loc(3);
sym(1).Node = node;
} break;
-case 269: {
+case 277: {
AST::CaseBlock *node = makeAstNode<AST::CaseBlock> (driver->nodePool(), sym(2).CaseClauses, sym(3).DefaultClause, sym(4).CaseClauses);
node->lbraceToken = loc(1);
node->rbraceToken = loc(5);
sym(1).Node = node;
} break;
-case 270: {
+case 278: {
sym(1).Node = makeAstNode<AST::CaseClauses> (driver->nodePool(), sym(1).CaseClause);
} break;
-case 271: {
+case 279: {
sym(1).Node = makeAstNode<AST::CaseClauses> (driver->nodePool(), sym(1).CaseClauses, sym(2).CaseClause);
} break;
-case 272: {
+case 280: {
sym(1).Node = 0;
} break;
-case 273: {
+case 281: {
sym(1).Node = sym(1).CaseClauses->finish ();
} break;
-case 274: {
+case 282: {
AST::CaseClause *node = makeAstNode<AST::CaseClause> (driver->nodePool(), sym(2).Expression, sym(4).StatementList);
node->caseToken = loc(1);
node->colonToken = loc(3);
sym(1).Node = node;
} break;
-case 275: {
+case 283: {
AST::DefaultClause *node = makeAstNode<AST::DefaultClause> (driver->nodePool(), sym(3).StatementList);
node->defaultToken = loc(1);
node->colonToken = loc(2);
sym(1).Node = node;
} break;
-case 276: {
+case 285: {
+ AST::LabelledStatement *node = makeAstNode<AST::LabelledStatement> (driver->nodePool(), driver->intern(lexer->characterBuffer(), lexer->characterCount()), sym(3).Statement);
+ node->identifierToken = loc(1);
+ node->colonToken = loc(2);
+ sym(1).Node = node;
+} break;
+
+case 286: {
AST::LabelledStatement *node = makeAstNode<AST::LabelledStatement> (driver->nodePool(), sym(1).sval, sym(3).Statement);
node->identifierToken = loc(1);
node->colonToken = loc(2);
sym(1).Node = node;
} break;
-case 278: {
+case 288: {
AST::ThrowStatement *node = makeAstNode<AST::ThrowStatement> (driver->nodePool(), sym(2).Expression);
node->throwToken = loc(1);
node->semicolonToken = loc(3);
sym(1).Node = node;
} break;
-case 279: {
+case 289: {
AST::TryStatement *node = makeAstNode<AST::TryStatement> (driver->nodePool(), sym(2).Statement, sym(3).Catch);
node->tryToken = loc(1);
sym(1).Node = node;
} break;
-case 280: {
+case 290: {
AST::TryStatement *node = makeAstNode<AST::TryStatement> (driver->nodePool(), sym(2).Statement, sym(3).Finally);
node->tryToken = loc(1);
sym(1).Node = node;
} break;
-case 281: {
+case 291: {
AST::TryStatement *node = makeAstNode<AST::TryStatement> (driver->nodePool(), sym(2).Statement, sym(3).Catch, sym(4).Finally);
node->tryToken = loc(1);
sym(1).Node = node;
} break;
-case 282: {
+case 292: {
AST::Catch *node = makeAstNode<AST::Catch> (driver->nodePool(), sym(3).sval, sym(5).Block);
node->catchToken = loc(1);
node->lparenToken = loc(2);
@@ -1402,20 +1429,31 @@ case 282: {
sym(1).Node = node;
} break;
-case 283: {
+case 293: {
AST::Finally *node = makeAstNode<AST::Finally> (driver->nodePool(), sym(2).Block);
node->finallyToken = loc(1);
sym(1).Node = node;
} break;
-case 285: {
+case 295: {
AST::DebuggerStatement *node = makeAstNode<AST::DebuggerStatement> (driver->nodePool());
node->debuggerToken = loc(1);
node->semicolonToken = loc(2);
sym(1).Node = node;
} break;
-case 286: {
+case 297: {
+ AST::FunctionDeclaration *node = makeAstNode<AST::FunctionDeclaration> (driver->nodePool(), driver->intern(lexer->characterBuffer(), lexer->characterCount()), sym(4).FormalParameterList, sym(7).FunctionBody);
+ node->functionToken = loc(1);
+ node->identifierToken = loc(2);
+ node->lparenToken = loc(3);
+ node->rparenToken = loc(5);
+ node->lbraceToken = loc(6);
+ node->rbraceToken = loc(8);
+ sym(1).Node = node;
+} break;
+
+case 298: {
AST::FunctionDeclaration *node = makeAstNode<AST::FunctionDeclaration> (driver->nodePool(), sym(2).sval, sym(4).FormalParameterList, sym(7).FunctionBody);
node->functionToken = loc(1);
node->identifierToken = loc(2);
@@ -1426,7 +1464,7 @@ case 286: {
sym(1).Node = node;
} break;
-case 287: {
+case 299: {
AST::FunctionExpression *node = makeAstNode<AST::FunctionExpression> (driver->nodePool(), sym(2).sval, sym(4).FormalParameterList, sym(7).FunctionBody);
node->functionToken = loc(1);
if (sym(2).sval)
@@ -1438,56 +1476,56 @@ case 287: {
sym(1).Node = node;
} break;
-case 288: {
+case 300: {
AST::FormalParameterList *node = makeAstNode<AST::FormalParameterList> (driver->nodePool(), sym(1).sval);
node->identifierToken = loc(1);
sym(1).Node = node;
} break;
-case 289: {
+case 301: {
AST::FormalParameterList *node = makeAstNode<AST::FormalParameterList> (driver->nodePool(), sym(1).FormalParameterList, sym(3).sval);
node->commaToken = loc(2);
node->identifierToken = loc(3);
sym(1).Node = node;
} break;
-case 290: {
+case 302: {
sym(1).Node = 0;
} break;
-case 291: {
+case 303: {
sym(1).Node = sym(1).FormalParameterList->finish ();
} break;
-case 292: {
+case 304: {
sym(1).Node = 0;
} break;
-case 294: {
+case 306: {
sym(1).Node = makeAstNode<AST::FunctionBody> (driver->nodePool(), sym(1).SourceElements->finish ());
} break;
-case 295: {
+case 307: {
sym(1).Node = makeAstNode<AST::SourceElements> (driver->nodePool(), sym(1).SourceElement);
} break;
-case 296: {
+case 308: {
sym(1).Node = makeAstNode<AST::SourceElements> (driver->nodePool(), sym(1).SourceElements, sym(2).SourceElement);
} break;
-case 297: {
+case 309: {
sym(1).Node = makeAstNode<AST::StatementSourceElement> (driver->nodePool(), sym(1).Statement);
} break;
-case 298: {
+case 310: {
sym(1).Node = makeAstNode<AST::FunctionSourceElement> (driver->nodePool(), sym(1).FunctionDeclaration);
} break;
-case 299: {
+case 311: {
sym(1).sval = 0;
} break;
-case 301: {
+case 313: {
sym(1).Node = 0;
} break;
diff --git a/src/declarative/qml/parser/javascriptparser_p.h b/src/declarative/qml/parser/javascriptparser_p.h
index 34f41a8..e1aff9c 100644
--- a/src/declarative/qml/parser/javascriptparser_p.h
+++ b/src/declarative/qml/parser/javascriptparser_p.h
@@ -206,9 +206,9 @@ protected:
};
-#define J_SCRIPT_REGEXPLITERAL_RULE1 43
+#define J_SCRIPT_REGEXPLITERAL_RULE1 49
-#define J_SCRIPT_REGEXPLITERAL_RULE2 44
+#define J_SCRIPT_REGEXPLITERAL_RULE2 50
QT_END_NAMESPACE
diff --git a/src/declarative/qml/qmlscriptparser.cpp b/src/declarative/qml/qmlscriptparser.cpp
index 61cb2ee..89cde7b 100644
--- a/src/declarative/qml/qmlscriptparser.cpp
+++ b/src/declarative/qml/qmlscriptparser.cpp
@@ -337,46 +337,52 @@ bool ProcessAST::visit(AST::UiPublicMember *node)
const QString memberType = node->memberType->asString();
const QString name = node->name->asString();
- if (node->isDefaultMember)
- qWarning() << "default-ness not implemented";
-
- if (memberType == QLatin1String("property")) {
- _stateStack.pushProperty(QLatin1String("properties"), node->publicToken.startLine);
-
- Object *obj = defineObjectBinding(node->identifierToken.startLine,
- 0,
- QLatin1String("Property"));
-
- _stateStack.pushObject(obj);
-
- defineProperty(QLatin1String("name"), node->identifierToken.startLine, name);
- if (node->expression) // default value
- defineProperty(QLatin1String("value"), node->identifierToken.startLine, getPrimitive("value", node->expression));
-
- _stateStack.pop(); // object
- _stateStack.pop(); // properties
-
- } else if (memberType == QLatin1String("signal")) {
- _stateStack.pushProperty(QLatin1String("signals"), node->publicToken.startLine);
-
- Object *obj = defineObjectBinding(node->identifierToken.startLine,
- 0,
- QLatin1String("Signal"));
-
- _stateStack.pushObject(obj);
+ const struct TypeNameToType {
+ const char *name;
+ Object::DynamicProperty::Type type;
+ } propTypeNameToTypes[] = {
+ { "int", Object::DynamicProperty::Int },
+ { "bool", Object::DynamicProperty::Bool },
+ { "double", Object::DynamicProperty::Real },
+ { "real", Object::DynamicProperty::Real },
+ { "string", Object::DynamicProperty::String },
+ { "color", Object::DynamicProperty::Color },
+ { "date", Object::DynamicProperty::Date },
+ { "var", Object::DynamicProperty::Variant },
+ { "variant", Object::DynamicProperty::Variant }
+ };
+ const int propTypeNameToTypesCount = sizeof(propTypeNameToTypes) /
+ sizeof(propTypeNameToTypes[0]);
+
+ bool typeFound = false;
+ Object::DynamicProperty::Type type;
+ for(int ii = 0; !typeFound && ii < propTypeNameToTypesCount; ++ii) {
+ if(QLatin1String(propTypeNameToTypes[ii].name) == memberType) {
+ type = propTypeNameToTypes[ii].type;
+ typeFound = true;
+ }
+ }
+
+ if(!typeFound) {
+ qWarning() << "Unknown property type" << memberType; // ### FIXME
+ return false;
+ }
- defineProperty(QLatin1String("name"), node->identifierToken.startLine, name);
+ Object::DynamicProperty property;
+ property.isDefaultProperty = node->isDefaultMember;
+ property.type = type;
+ property.name = name.toUtf8();
- _stateStack.pop(); // object
- _stateStack.pop(); // signals
- } else {
- qWarning() << "bad public identifier" << memberType; // ### FIXME
+ if (node->expression) { // default value
+ property.defaultValue = new Property;
+ Value *value = new Value;
+ value->primitive = getPrimitive("value", node->expression);
+ property.defaultValue->values << value;
}
+ _stateStack.top().object->dynamicProperties << property;
- // ### TODO drop initializer (unless some example needs differnet properties than name and type and value.
-
- return false;
+ return true;
}