From dd9ed1109a72fe81d32ebaba1cba796089c13dcb Mon Sep 17 00:00:00 2001 From: rdb Date: Mon, 11 May 2020 09:08:11 +0200 Subject: [PATCH 01/15] downloader: Fix dead link in API documentation --- panda/src/downloader/httpClient.I | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/panda/src/downloader/httpClient.I b/panda/src/downloader/httpClient.I index 419083309c..b22edde696 100644 --- a/panda/src/downloader/httpClient.I +++ b/panda/src/downloader/httpClient.I @@ -111,9 +111,9 @@ get_verify_ssl() const { * Specifies the set of ciphers that are to be made available for SSL * connections. This is a string as described in the ciphers(1) man page of * the OpenSSL documentation (or see - * https://www.openssl.org/docs/apps/ciphers.html ). If this isn't specified, - * the default is provided by the Config file. You may also specify "DEFAULT" - * to use the built-in OpenSSL default value. + * https://www.openssl.org/docs/man1.1.1/man1/ciphers.html ). If this isn't + * specified, the default is provided by the Config file. You may also specify + * "DEFAULT" to use the built-in OpenSSL default value. */ INLINE void HTTPClient:: set_cipher_list(const std::string &cipher_list) { From 26ba2b15cd820829ba787626480b279d8f6b9f07 Mon Sep 17 00:00:00 2001 From: rdb Date: Mon, 11 May 2020 09:09:00 +0200 Subject: [PATCH 02/15] collide: unexpose verify_points overload taking LPoint3 array Similar as in #908 --- panda/src/collide/collisionPolygon.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/panda/src/collide/collisionPolygon.h b/panda/src/collide/collisionPolygon.h index 2ef47c97de..2711f98fa0 100644 --- a/panda/src/collide/collisionPolygon.h +++ b/panda/src/collide/collisionPolygon.h @@ -42,6 +42,8 @@ public: virtual CollisionSolid *make_copy(); + static bool verify_points(const LPoint3 *begin, const LPoint3 *end); + PUBLISHED: virtual LPoint3 get_collision_origin() const; @@ -54,7 +56,6 @@ PUBLISHED: const LPoint3 &c); INLINE static bool verify_points(const LPoint3 &a, const LPoint3 &b, const LPoint3 &c, const LPoint3 &d); - static bool verify_points(const LPoint3 *begin, const LPoint3 *end); bool is_valid() const; bool is_concave() const; From d64944c108ece85e15e455e2350d6cf980d6aed9 Mon Sep 17 00:00:00 2001 From: rdb Date: Mon, 11 May 2020 09:37:29 +0200 Subject: [PATCH 03/15] pgraph: minor optimizations to GeomNode::add_for_draw() --- panda/src/pgraph/geomNode.cxx | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/panda/src/pgraph/geomNode.cxx b/panda/src/pgraph/geomNode.cxx index 17d5555e5d..eb1148b126 100644 --- a/panda/src/pgraph/geomNode.cxx +++ b/panda/src/pgraph/geomNode.cxx @@ -507,8 +507,10 @@ add_for_draw(CullTraverser *trav, CullTraverserData &data) { << " draw_mask = " << data._draw_mask << "\n"; } + Thread *current_thread = trav->get_current_thread(); + // Get all the Geoms, with no decalling. - Geoms geoms = get_geoms(trav->get_current_thread()); + Geoms geoms = get_geoms(current_thread); int num_geoms = geoms.get_num_geoms(); trav->_geoms_pcollector.add_level(num_geoms); CPT(TransformState) internal_transform = data.get_internal_transform(trav); @@ -532,9 +534,9 @@ add_for_draw(CullTraverser *trav, CullTraverserData &data) { if (num_geoms > 1) { if (data._view_frustum != nullptr) { // Cull the individual Geom against the view frustum. - CPT(BoundingVolume) geom_volume = geom->get_bounds(); + CPT(BoundingVolume) geom_volume = geom->get_bounds(current_thread); const GeometricBoundingVolume *geom_gbv = - DCAST(GeometricBoundingVolume, geom_volume); + geom_volume->as_geometric_bounding_volume(); int result = data._view_frustum->contains(geom_gbv); if (result == BoundingVolume::IF_no_intersection) { @@ -544,9 +546,9 @@ add_for_draw(CullTraverser *trav, CullTraverserData &data) { } if (!data._cull_planes->is_empty()) { // Also cull the Geom against the cull planes. - CPT(BoundingVolume) geom_volume = geom->get_bounds(); + CPT(BoundingVolume) geom_volume = geom->get_bounds(current_thread); const GeometricBoundingVolume *geom_gbv = - DCAST(GeometricBoundingVolume, geom_volume); + geom_volume->as_geometric_bounding_volume(); int result; data._cull_planes->do_cull(result, state, geom_gbv); if (result == BoundingVolume::IF_no_intersection) { From 08339d3b80cda2279f3e813f1ec6872adfafffc0 Mon Sep 17 00:00:00 2001 From: rdb Date: Tue, 2 Jun 2020 20:22:04 +0200 Subject: [PATCH 04/15] samples: Remove unused fragment shader input from Fireflies shader --- samples/fireflies/light.sha | 1 - 1 file changed, 1 deletion(-) diff --git a/samples/fireflies/light.sha b/samples/fireflies/light.sha index e074b15abd..4a877dc298 100644 --- a/samples/fireflies/light.sha +++ b/samples/fireflies/light.sha @@ -14,7 +14,6 @@ void vshader(float4 vtx_position : POSITION, } void fshader(float4 l_pos: TEXCOORD0, - float4 l_scale: TEXCOORD1, uniform sampler2D k_texnormal : TEXUNIT0, uniform sampler2D k_texalbedo : TEXUNIT1, uniform sampler2D k_texdepth : TEXUNIT2, From 55951c3025cf088487fdd91af800b4e92ae8f892 Mon Sep 17 00:00:00 2001 From: rdb Date: Tue, 2 Jun 2020 20:23:38 +0200 Subject: [PATCH 05/15] pgraph: fix has_tags() after clearing Python tags Fixes #936 --- panda/src/pgraph/pandaNode_ext.cxx | 6 ++++++ tests/pgraph/test_nodepath.py | 29 +++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/panda/src/pgraph/pandaNode_ext.cxx b/panda/src/pgraph/pandaNode_ext.cxx index bc6427b1d0..d4071ff4c6 100644 --- a/panda/src/pgraph/pandaNode_ext.cxx +++ b/panda/src/pgraph/pandaNode_ext.cxx @@ -165,6 +165,12 @@ clear_python_tag(PyObject *key) { if (PyDict_GetItem(dict, key) != nullptr) { PyDict_DelItem(dict, key); } + + if (PyDict_Size(dict) == 0 && Py_REFCNT(dict) == 1) { + // This was the last tag, and do_get_python_tags() made sure we have a + // unique reference to the tags, so clear the tag object. + _this->_python_tag_data.clear(); + } } /** diff --git a/tests/pgraph/test_nodepath.py b/tests/pgraph/test_nodepath.py index 7dcbd2662b..43e43313e1 100644 --- a/tests/pgraph/test_nodepath.py +++ b/tests/pgraph/test_nodepath.py @@ -151,6 +151,35 @@ def test_nodepath_python_tags(): assert rc1 == rc2 +def test_nodepath_clear_python_tag(): + from panda3d.core import NodePath + + path = NodePath("node") + assert not path.has_python_tag("a") + assert not path.has_python_tag("b") + assert not path.node().has_tags() + + path.set_python_tag("a", "value") + assert path.has_python_tag("a") + assert not path.has_python_tag("b") + assert path.node().has_tags() + + path.set_python_tag("b", "value") + assert path.has_python_tag("a") + assert path.has_python_tag("b") + assert path.node().has_tags() + + path.clear_python_tag("a") + assert not path.has_python_tag("a") + assert path.has_python_tag("b") + assert path.node().has_tags() + + path.clear_python_tag("b") + assert not path.has_python_tag("a") + assert not path.has_python_tag("b") + assert not path.node().has_tags() + + def test_nodepath_replace_texture(): from panda3d.core import NodePath, Texture From ffef5968fe3985b956333489184b6fac5e6f7529 Mon Sep 17 00:00:00 2001 From: Nathan S <55564547+NathanX-S@users.noreply.github.com> Date: Fri, 22 May 2020 17:45:54 -0400 Subject: [PATCH 06/15] docs: some grammar fixes for meshDrawer2D Fixes #941 --- panda/src/grutil/meshDrawer2D.I | 8 ++++---- panda/src/grutil/meshDrawer2D.h | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/panda/src/grutil/meshDrawer2D.I b/panda/src/grutil/meshDrawer2D.I index 4ff460c567..cb976f5956 100644 --- a/panda/src/grutil/meshDrawer2D.I +++ b/panda/src/grutil/meshDrawer2D.I @@ -60,7 +60,7 @@ set_budget(int total_budget) { } /** - * Gets the total triangle budget of the drawer + * Gets the total triangle budget of the drawer. */ INLINE int MeshDrawer2D:: get_budget() { @@ -68,7 +68,7 @@ get_budget() { } /** - * Sets clipping rectangle + * Sets the clipping rectangle. */ INLINE void MeshDrawer2D:: set_clip(PN_stdfloat x, PN_stdfloat y, PN_stdfloat w, PN_stdfloat h) { @@ -79,7 +79,7 @@ set_clip(PN_stdfloat x, PN_stdfloat y, PN_stdfloat w, PN_stdfloat h) { } /** - * Draws a 2d rectangle. Ignores the cliping rectangle + * Draws a 2D rectangle. Ignores the clipping rectangle. */ INLINE void MeshDrawer2D:: quad_raw(const LVector3 &v1, const LVector4 &c1, const LVector2 &uv1, @@ -125,7 +125,7 @@ rectangle_raw(PN_stdfloat x, PN_stdfloat y, PN_stdfloat w, PN_stdfloat h, } /** - * Draws a 2d rectangle, that can be cliped + * Draws a 2D rectangle which can be clipped. */ INLINE void MeshDrawer2D:: rectangle(PN_stdfloat x, PN_stdfloat y, PN_stdfloat w, PN_stdfloat h, diff --git a/panda/src/grutil/meshDrawer2D.h b/panda/src/grutil/meshDrawer2D.h index 6b686b8b10..44d5cbb7d5 100644 --- a/panda/src/grutil/meshDrawer2D.h +++ b/panda/src/grutil/meshDrawer2D.h @@ -39,8 +39,8 @@ #include "nodePath.h" /** - * This class allows the drawing of 2d objects - mainly based on quads and - * rectangles. Allows clipping and serverl high level UI theme functions. + * This class allows the drawing of 2D objects - mainly based on quads and + * rectangles. It allows clipping and several high level UI theme functions. */ class EXPCL_PANDA_GRUTIL MeshDrawer2D : public TypedObject { PUBLISHED: From eef55f19d866ad9e87698cb209dd49c19869da3c Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Tue, 26 May 2020 22:31:36 -0700 Subject: [PATCH 07/15] makepanda: Add pyenv support Only tested on Linux with Clang Closes #943 --- makepanda/makepanda.py | 4 ++++ makepanda/makepandacore.py | 24 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/makepanda/makepanda.py b/makepanda/makepanda.py index 8f04251970..2931353895 100755 --- a/makepanda/makepanda.py +++ b/makepanda/makepanda.py @@ -1972,6 +1972,10 @@ def CompileLink(dll, obj, opts): if GetOrigExt(x) != ".dat": cmd += ' ' + x + pyenv_prefix = GetPyenvPrefix() + if pyenv_prefix is not None: + cmd += ' -L' + os.path.join(pyenv_prefix, 'lib') + if (GetOrigExt(dll) == ".exe" and GetTarget() == 'windows' and "NOICON" not in opts): cmd += " " + GetOutputDir() + "/tmp/pandaIcon.res" diff --git a/makepanda/makepandacore.py b/makepanda/makepandacore.py index d26bbeed9d..589c69af5b 100644 --- a/makepanda/makepandacore.py +++ b/makepanda/makepandacore.py @@ -548,6 +548,24 @@ def GetFlex(): return FLEX +def GetPyenvPrefix(): + pyenv_prefix = None + try: + pyenv_prefix = subprocess.check_output(['pyenv', 'virtualenv-prefix']) + except subprocess.CalledProcessError: + pass + + try: + if pyenv_prefix is None: + pyenv_prefix = subprocess.check_output(['pyenv', 'prefix']) + except subprocess.CalledProcessError: + pass + + if pyenv_prefix is not None: + pyenv_prefix = pyenv_prefix.decode('utf8').strip() + return pyenv_prefix + + ######################################################################## ## ## LocateBinary @@ -3065,6 +3083,12 @@ def SetupBuildEnvironment(compiler): for dir in SYS_INC_DIRS: print(" " + dir) + # Check to see if pyenv is being used and update SYS dirs accordingly + pyenv_prefix = GetPyenvPrefix() + if pyenv_prefix is not None: + SYS_LIB_DIRS.insert(0, os.path.join(pyenv_prefix, 'lib')) + SYS_INC_DIRS.insert(0, os.path.join(pyenv_prefix, 'include')) + # If we're cross-compiling, no point in putting our output dirs on the path. if CrossCompiling(): return From cada6c2c7b9e102abea01f811ca26f6fecfb0278 Mon Sep 17 00:00:00 2001 From: rdb Date: Sun, 14 Jun 2020 11:07:24 +0200 Subject: [PATCH 08/15] Revert "makepanda: Add pyenv support" This reverts commit eef55f19d866ad9e87698cb209dd49c19869da3c. --- makepanda/makepanda.py | 4 ---- makepanda/makepandacore.py | 24 ------------------------ 2 files changed, 28 deletions(-) diff --git a/makepanda/makepanda.py b/makepanda/makepanda.py index 2931353895..8f04251970 100755 --- a/makepanda/makepanda.py +++ b/makepanda/makepanda.py @@ -1972,10 +1972,6 @@ def CompileLink(dll, obj, opts): if GetOrigExt(x) != ".dat": cmd += ' ' + x - pyenv_prefix = GetPyenvPrefix() - if pyenv_prefix is not None: - cmd += ' -L' + os.path.join(pyenv_prefix, 'lib') - if (GetOrigExt(dll) == ".exe" and GetTarget() == 'windows' and "NOICON" not in opts): cmd += " " + GetOutputDir() + "/tmp/pandaIcon.res" diff --git a/makepanda/makepandacore.py b/makepanda/makepandacore.py index 589c69af5b..d26bbeed9d 100644 --- a/makepanda/makepandacore.py +++ b/makepanda/makepandacore.py @@ -548,24 +548,6 @@ def GetFlex(): return FLEX -def GetPyenvPrefix(): - pyenv_prefix = None - try: - pyenv_prefix = subprocess.check_output(['pyenv', 'virtualenv-prefix']) - except subprocess.CalledProcessError: - pass - - try: - if pyenv_prefix is None: - pyenv_prefix = subprocess.check_output(['pyenv', 'prefix']) - except subprocess.CalledProcessError: - pass - - if pyenv_prefix is not None: - pyenv_prefix = pyenv_prefix.decode('utf8').strip() - return pyenv_prefix - - ######################################################################## ## ## LocateBinary @@ -3083,12 +3065,6 @@ def SetupBuildEnvironment(compiler): for dir in SYS_INC_DIRS: print(" " + dir) - # Check to see if pyenv is being used and update SYS dirs accordingly - pyenv_prefix = GetPyenvPrefix() - if pyenv_prefix is not None: - SYS_LIB_DIRS.insert(0, os.path.join(pyenv_prefix, 'lib')) - SYS_INC_DIRS.insert(0, os.path.join(pyenv_prefix, 'include')) - # If we're cross-compiling, no point in putting our output dirs on the path. if CrossCompiling(): return From 2880525c1e419fc7dddc1d3ad6195abd340268c4 Mon Sep 17 00:00:00 2001 From: rdb Date: Sun, 14 Jun 2020 11:07:31 +0200 Subject: [PATCH 09/15] deploy-stub: flush output streams before exit Intended to address #946 --- pandatool/src/deploy-stub/deploy-stub.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pandatool/src/deploy-stub/deploy-stub.c b/pandatool/src/deploy-stub/deploy-stub.c index 7255b911b8..d986d4638a 100644 --- a/pandatool/src/deploy-stub/deploy-stub.c +++ b/pandatool/src/deploy-stub/deploy-stub.c @@ -724,6 +724,9 @@ int main(int argc, char *argv[]) { PyImport_FrozenModules = blobinfo.pointers[0]; retval = Py_FrozenMain(argc, argv); + fflush(stdout); + fflush(stderr); + unmap_blob(blob); return retval; } From 97e6a314b1dd8175d6a871502d31045e629395ac Mon Sep 17 00:00:00 2001 From: rdb Date: Sun, 14 Jun 2020 11:31:58 +0200 Subject: [PATCH 10/15] cppparser: support arbitrary constant expression in bitfields --- dtool/src/cppparser/cppBison.yxx | 2 +- dtool/src/cppparser/cppInstance.cxx | 12 +++++++++++- dtool/src/cppparser/cppInstanceIdentifier.cxx | 2 +- dtool/src/cppparser/cppInstanceIdentifier.h | 4 ++-- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/dtool/src/cppparser/cppBison.yxx b/dtool/src/cppparser/cppBison.yxx index a9ac210d46..7a9797148e 100644 --- a/dtool/src/cppparser/cppBison.yxx +++ b/dtool/src/cppparser/cppBison.yxx @@ -1891,7 +1891,7 @@ instance_identifier_and_maybe_trailing_return_type: } $$ = $1; } - | instance_identifier ':' INTEGER + | instance_identifier ':' const_expr { // Bitfield definition. $1->_bit_width = $3; diff --git a/dtool/src/cppparser/cppInstance.cxx b/dtool/src/cppparser/cppInstance.cxx index cb59e9a048..3bb3bb725a 100644 --- a/dtool/src/cppparser/cppInstance.cxx +++ b/dtool/src/cppparser/cppInstance.cxx @@ -74,7 +74,17 @@ CPPInstance(CPPType *type, CPPInstanceIdentifier *ii, int storage_class, ii->_ident = nullptr; _storage_class = storage_class; _initializer = nullptr; - _bit_width = ii->_bit_width; + + if (ii->_bit_width != nullptr) { + CPPExpression::Result result = ii->_bit_width->evaluate(); + if (result._type != CPPExpression::RT_error) { + _bit_width = ii->_bit_width->evaluate().as_integer(); + } else { + _bit_width = -1; + } + } else { + _bit_width = -1; + } CPPParameterList *params = ii->get_initializer(); if (params != nullptr) { diff --git a/dtool/src/cppparser/cppInstanceIdentifier.cxx b/dtool/src/cppparser/cppInstanceIdentifier.cxx index 878d751285..891383cacc 100644 --- a/dtool/src/cppparser/cppInstanceIdentifier.cxx +++ b/dtool/src/cppparser/cppInstanceIdentifier.cxx @@ -82,7 +82,7 @@ initializer_type(CPPParameterList *params) { CPPInstanceIdentifier:: CPPInstanceIdentifier(CPPIdentifier *ident) : _ident(ident), - _bit_width(-1), + _bit_width(nullptr), _packed(false) { } diff --git a/dtool/src/cppparser/cppInstanceIdentifier.h b/dtool/src/cppparser/cppInstanceIdentifier.h index 6a2951d9cb..9cf7a3edbe 100644 --- a/dtool/src/cppparser/cppInstanceIdentifier.h +++ b/dtool/src/cppparser/cppInstanceIdentifier.h @@ -86,8 +86,8 @@ public: typedef std::vector Modifiers; Modifiers _modifiers; - // If not -1, indicates a bitfield - int _bit_width; + // If not null, indicates a bitfield + CPPExpression *_bit_width; // Indicates a parameter pack bool _packed; From 43961718fa9777cc76721bdb9edcf494ca269cd7 Mon Sep 17 00:00:00 2001 From: rdb Date: Sun, 14 Jun 2020 12:11:42 +0200 Subject: [PATCH 11/15] parser-inc: add missing template args to std containers --- dtool/src/parser-inc/map | 24 ++++++++++++++---------- dtool/src/parser-inc/ostream | 2 ++ dtool/src/parser-inc/string | 17 +++++++++-------- dtool/src/parser-inc/vector | 16 ++++++++++------ 4 files changed, 35 insertions(+), 24 deletions(-) diff --git a/dtool/src/parser-inc/map b/dtool/src/parser-inc/map index 19611a8696..cabeb219bc 100644 --- a/dtool/src/parser-inc/map +++ b/dtool/src/parser-inc/map @@ -24,19 +24,23 @@ #include #include -template > +namespace std { + template class allocator; +} + +template, class Allocator = std::allocator > > class map { public: - typedef key key_type; - typedef element data_type; - typedef element mapped_type; - typedef pair value_type; - typedef compare key_compare; + typedef Key key_type; + typedef Element data_type; + typedef Element mapped_type; + typedef pair value_type; + typedef Compare key_compare; - typedef element *pointer; - typedef const element *const_pointer; - typedef element &reference; - typedef const element &const_reference; + typedef Element *pointer; + typedef const Element *const_pointer; + typedef Element &reference; + typedef const Element &const_reference; class iterator; class const_iterator; diff --git a/dtool/src/parser-inc/ostream b/dtool/src/parser-inc/ostream index fb7f7ea51e..58de77c0cc 100644 --- a/dtool/src/parser-inc/ostream +++ b/dtool/src/parser-inc/ostream @@ -1,5 +1,7 @@ #pragma once +#include + namespace std { template std::basic_ostream &ends(std::basic_ostream &os); diff --git a/dtool/src/parser-inc/string b/dtool/src/parser-inc/string index 841e6fd7c6..85e18a82ce 100644 --- a/dtool/src/parser-inc/string +++ b/dtool/src/parser-inc/string @@ -26,6 +26,7 @@ namespace std { template struct char_traits; + template class allocator; template<> struct char_traits { using char_type = char; @@ -51,7 +52,7 @@ namespace std { using state_type = mbstate_t; }; - template + template, class Allocator = std::allocator > class basic_string { public: struct iterator; @@ -63,17 +64,17 @@ namespace std { static const size_t npos = -1; basic_string(); - basic_string(const basic_string ©); - void operator = (const basic_string ©); - basic_string(const ctype *string); + basic_string(const basic_string ©); + void operator = (const basic_string ©); + basic_string(const CharT *string); ~basic_string(); - const ctype *c_str() const; + const CharT *c_str() const; size_t length() const; - ctype at(size_t pos) const; - ctype operator[](size_t pos) const; - ctype &operator[](size_t pos); + CharT at(size_t pos) const; + CharT operator[](size_t pos) const; + CharT &operator[](size_t pos); }; typedef basic_string string; diff --git a/dtool/src/parser-inc/vector b/dtool/src/parser-inc/vector index e83a5ff911..b643498999 100644 --- a/dtool/src/parser-inc/vector +++ b/dtool/src/parser-inc/vector @@ -22,17 +22,21 @@ #include +namespace std { + template class allocator; +} + inline namespace std { -template +template > class vector { public: - typedef element value_type; + typedef T value_type; - typedef element *pointer; - typedef const element *const_pointer; - typedef element &reference; - typedef const element &const_reference; + typedef T *pointer; + typedef const T *const_pointer; + typedef T &reference; + typedef const T &const_reference; typedef pointer iterator; typedef const_pointer const_iterator; From 16f2958adb013578d8efb1c9dcc19511258b1749 Mon Sep 17 00:00:00 2001 From: rdb Date: Sun, 14 Jun 2020 12:12:27 +0200 Subject: [PATCH 12/15] cppparser: support sizeof operator with constexpr --- dtool/src/cppparser/cppBison.yxx | 48 ++++++----------------- dtool/src/cppparser/cppExpression.cxx | 56 ++++++++++++++++++++++----- dtool/src/cppparser/cppExpression.h | 4 +- 3 files changed, 62 insertions(+), 46 deletions(-) diff --git a/dtool/src/cppparser/cppBison.yxx b/dtool/src/cppparser/cppBison.yxx index 7a9797148e..f9a2c2ab9b 100644 --- a/dtool/src/cppparser/cppBison.yxx +++ b/dtool/src/cppparser/cppBison.yxx @@ -3278,17 +3278,9 @@ no_angle_bracket_const_expr: { $$ = new CPPExpression(CPPExpression::sizeof_func($3)); } - | KW_SIZEOF '(' IDENTIFIER ')' %prec UNARY + | KW_SIZEOF no_angle_bracket_const_expr %prec UNARY { - CPPDeclaration *arg = $3->find_symbol(current_scope, global_scope, current_lexer); - if (arg == nullptr) { - yyerror("undefined sizeof argument: " + $3->get_fully_scoped_name(), @3); - } else if (arg->get_subtype() == CPPDeclaration::ST_instance) { - CPPInstance *inst = arg->as_instance(); - $$ = new CPPExpression(CPPExpression::sizeof_func(inst->_type)); - } else { - $$ = new CPPExpression(CPPExpression::sizeof_func(arg->as_type())); - } + $$ = new CPPExpression(CPPExpression::sizeof_func($2)); } | KW_SIZEOF ELLIPSIS '(' name ')' %prec UNARY { @@ -3402,9 +3394,9 @@ no_angle_bracket_const_expr: { $$ = new CPPExpression('f', $1); } - | no_angle_bracket_const_expr '.' no_angle_bracket_const_expr + | no_angle_bracket_const_expr '.' name { - $$ = new CPPExpression('.', $1, $3); + $$ = new CPPExpression('.', $1, new CPPExpression($3, current_scope, global_scope, current_lexer)); } | no_angle_bracket_const_expr POINTSAT no_angle_bracket_const_expr { @@ -3542,17 +3534,9 @@ const_expr: { $$ = new CPPExpression(CPPExpression::sizeof_func($3)); } - | KW_SIZEOF '(' IDENTIFIER ')' %prec UNARY + | KW_SIZEOF const_expr %prec UNARY { - CPPDeclaration *arg = $3->find_symbol(current_scope, global_scope, current_lexer); - if (arg == nullptr) { - yyerror("undefined sizeof argument: " + $3->get_fully_scoped_name(), @3); - } else if (arg->get_subtype() == CPPDeclaration::ST_instance) { - CPPInstance *inst = arg->as_instance(); - $$ = new CPPExpression(CPPExpression::sizeof_func(inst->_type)); - } else { - $$ = new CPPExpression(CPPExpression::sizeof_func(arg->as_type())); - } + $$ = new CPPExpression(CPPExpression::sizeof_func($2)); } | KW_SIZEOF ELLIPSIS '(' name ')' %prec UNARY { @@ -3704,9 +3688,9 @@ const_expr: { $$ = new CPPExpression('f', $1); } - | const_expr '.' const_expr + | const_expr '.' name { - $$ = new CPPExpression('.', $1, $3); + $$ = new CPPExpression('.', $1, new CPPExpression($3, current_scope, global_scope, current_lexer)); } | const_expr POINTSAT const_expr { @@ -3886,17 +3870,9 @@ formal_const_expr: { $$ = new CPPExpression(CPPExpression::sizeof_func($3)); } - | KW_SIZEOF '(' IDENTIFIER ')' %prec UNARY + | KW_SIZEOF formal_const_expr %prec UNARY { - CPPDeclaration *arg = $3->find_symbol(current_scope, global_scope, current_lexer); - if (arg == nullptr) { - yyerror("undefined sizeof argument: " + $3->get_fully_scoped_name(), @3); - } else if (arg->get_subtype() == CPPDeclaration::ST_instance) { - CPPInstance *inst = arg->as_instance(); - $$ = new CPPExpression(CPPExpression::sizeof_func(inst->_type)); - } else { - $$ = new CPPExpression(CPPExpression::sizeof_func(arg->as_type())); - } + $$ = new CPPExpression(CPPExpression::sizeof_func($2)); } | KW_SIZEOF ELLIPSIS '(' name ')' %prec UNARY { @@ -4044,9 +4020,9 @@ formal_const_expr: { $$ = new CPPExpression('f', $1); } - | formal_const_expr '.' const_expr + | formal_const_expr '.' name { - $$ = new CPPExpression('.', $1, $3); + $$ = new CPPExpression('.', $1, new CPPExpression($3, current_scope, global_scope, current_lexer)); } | formal_const_expr POINTSAT const_expr { diff --git a/dtool/src/cppparser/cppExpression.cxx b/dtool/src/cppparser/cppExpression.cxx index 78da68b5a7..2ded01f836 100644 --- a/dtool/src/cppparser/cppExpression.cxx +++ b/dtool/src/cppparser/cppExpression.cxx @@ -429,12 +429,24 @@ type_trait(int trait, CPPType *type, CPPType *arg) { CPPExpression CPPExpression:: sizeof_func(CPPType *type) { CPPExpression expr(0); - expr._type = T_sizeof; + expr._type = T_sizeof_type; expr._u._typecast._to = type; expr._u._typecast._op1 = nullptr; return expr; } +/** + * + */ +CPPExpression CPPExpression:: +sizeof_func(CPPExpression *op1) { + CPPExpression expr(0); + expr._type = T_sizeof_expr; + expr._u._typecast._to = nullptr; + expr._u._typecast._op1 = op1; + return expr; +} + /** * */ @@ -629,7 +641,8 @@ evaluate() const { case T_empty_aggregate_init: case T_new: case T_default_new: - case T_sizeof: + case T_sizeof_type: + case T_sizeof_expr: case T_sizeof_ellipsis: return Result(); @@ -1058,7 +1071,8 @@ determine_type() const { case T_default_new: return CPPType::new_type(new CPPPointerType(_u._typecast._to)); - case T_sizeof: + case T_sizeof_type: + case T_sizeof_expr: case T_sizeof_ellipsis: case T_alignof: // Note: this should actually be size_t, but that is defined as a typedef @@ -1334,10 +1348,13 @@ is_fully_specified() const { case T_default_construct: case T_empty_aggregate_init: case T_default_new: - case T_sizeof: + case T_sizeof_type: case T_alignof: return _u._typecast._to->is_fully_specified(); + case T_sizeof_expr: + return _u._typecast._op1->is_fully_specified(); + case T_sizeof_ellipsis: return _u._ident->is_fully_specified(); @@ -1469,7 +1486,7 @@ substitute_decl(CPPDeclaration::SubstDecl &subst, case T_default_construct: case T_empty_aggregate_init: case T_default_new: - case T_sizeof: + case T_sizeof_type: case T_alignof: rep->_u._typecast._to = _u._typecast._to->substitute_decl(subst, current_scope, global_scope) @@ -1477,6 +1494,13 @@ substitute_decl(CPPDeclaration::SubstDecl &subst, any_changed = any_changed || (rep->_u._typecast._to != _u._typecast._to); break; + case T_sizeof_expr: + rep->_u._typecast._op1 = + _u._typecast._op1->substitute_decl(subst, current_scope, global_scope) + ->as_expression(); + any_changed = any_changed || (rep->_u._typecast._op1 != _u._typecast._op1); + break; + case T_trinary_operation: rep->_u._op._op3 = _u._op._op3->substitute_decl(subst, current_scope, global_scope) @@ -1567,10 +1591,13 @@ is_tbd() const { case T_new: case T_default_construct: case T_default_new: - case T_sizeof: + case T_sizeof_type: case T_alignof: return _u._typecast._to->is_tbd(); + case T_sizeof_expr: + return _u._typecast._op1->is_tbd(); + case T_trinary_operation: if (_u._op._op3->is_tbd()) { return true; @@ -1807,12 +1834,17 @@ output(std::ostream &out, int indent_level, CPPScope *scope, bool) const { out << "())"; break; - case T_sizeof: + case T_sizeof_type: out << "sizeof("; _u._typecast._to->output(out, indent_level, scope, false); out << ")"; break; + case T_sizeof_expr: + out << "sizeof "; + _u._typecast._op1->output(out, indent_level, scope, false); + break; + case T_sizeof_ellipsis: out << "sizeof...("; _u._ident->output(out, scope); @@ -2222,10 +2254,13 @@ is_equal(const CPPDeclaration *other) const { case T_default_construct: case T_empty_aggregate_init: case T_default_new: - case T_sizeof: + case T_sizeof_type: case T_alignof: return _u._typecast._to == ot->_u._typecast._to; + case T_sizeof_expr: + return _u._typecast._op1 == ot->_u._typecast._op1; + case T_unary_operation: return *_u._op._op1 == *ot->_u._op._op1; @@ -2324,10 +2359,13 @@ is_less(const CPPDeclaration *other) const { case T_default_construct: case T_empty_aggregate_init: case T_default_new: - case T_sizeof: + case T_sizeof_type: case T_alignof: return _u._typecast._to < ot->_u._typecast._to; + case T_sizeof_expr: + return _u._typecast._op1 < ot->_u._typecast._op1; + case T_trinary_operation: if (*_u._op._op3 != *ot->_u._op._op3) { return *_u._op._op3 < *ot->_u._op._op3; diff --git a/dtool/src/cppparser/cppExpression.h b/dtool/src/cppparser/cppExpression.h index 3cea871679..cd6030f73d 100644 --- a/dtool/src/cppparser/cppExpression.h +++ b/dtool/src/cppparser/cppExpression.h @@ -52,7 +52,8 @@ public: T_empty_aggregate_init, T_new, T_default_new, - T_sizeof, + T_sizeof_type, + T_sizeof_expr, T_sizeof_ellipsis, T_alignof, T_unary_operation, @@ -89,6 +90,7 @@ public: static CPPExpression typeid_op(CPPExpression *op1, CPPType *std_type_info); static CPPExpression type_trait(int trait, CPPType *type, CPPType *arg = nullptr); static CPPExpression sizeof_func(CPPType *type); + static CPPExpression sizeof_func(CPPExpression *op1); static CPPExpression sizeof_ellipsis_func(CPPIdentifier *ident); static CPPExpression alignof_func(CPPType *type); static CPPExpression lambda(CPPClosureType *type); From f295b283691c0a5102e885ccf99ba680f2b6a87d Mon Sep 17 00:00:00 2001 From: rdb Date: Sun, 14 Jun 2020 12:20:40 +0200 Subject: [PATCH 13/15] cppparser: update prebuilt cppBison files --- dtool/src/cppparser/cppBison.cxx.prebuilt | 8308 +++++++++++---------- dtool/src/cppparser/cppBison.h.prebuilt | 8 +- 2 files changed, 4221 insertions(+), 4095 deletions(-) diff --git a/dtool/src/cppparser/cppBison.cxx.prebuilt b/dtool/src/cppparser/cppBison.cxx.prebuilt index eebe706eeb..a2d99d690b 100644 --- a/dtool/src/cppparser/cppBison.cxx.prebuilt +++ b/dtool/src/cppparser/cppBison.cxx.prebuilt @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.4. */ +/* A Bison parser, made by GNU Bison 3.5.3. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -48,7 +48,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "3.4" +#define YYBISON_VERSION "3.5.3" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -70,7 +70,6 @@ #define yydebug cppyydebug #define yynerrs cppyynerrs - /* First part of user prologue. */ #line 7 "dtool/src/cppparser/cppBison.yxx" @@ -270,8 +269,17 @@ pop_struct() { } -#line 274 "built/tmp/cppBison.yxx.c" +#line 273 "built/tmp/cppBison.yxx.c" +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus @@ -629,36 +637,83 @@ int cppyyparse (void); # undef short #endif -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; +/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure + and (if available) are included + so that the code can choose integer types of a good width. */ + +#ifndef __PTRDIFF_MAX__ +# include /* INFRINGES ON USER NAME SPACE */ +# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_STDINT_H +# endif #endif -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; +/* Narrow types that promote to a signed type and that can represent a + signed or unsigned integer of at least N bits. In tables they can + save space and decrease cache pressure. Promoting to a signed type + helps avoid bugs in integer arithmetic. */ + +#ifdef __INT_LEAST8_MAX__ +typedef __INT_LEAST8_TYPE__ yytype_int8; +#elif defined YY_STDINT_H +typedef int_least8_t yytype_int8; #else typedef signed char yytype_int8; #endif -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; -#else -typedef unsigned short yytype_uint16; -#endif - -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; +#ifdef __INT_LEAST16_MAX__ +typedef __INT_LEAST16_TYPE__ yytype_int16; +#elif defined YY_STDINT_H +typedef int_least16_t yytype_int16; #else typedef short yytype_int16; #endif +#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST8_TYPE__ yytype_uint8; +#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST8_MAX <= INT_MAX) +typedef uint_least8_t yytype_uint8; +#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX +typedef unsigned char yytype_uint8; +#else +typedef short yytype_uint8; +#endif + +#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST16_TYPE__ yytype_uint16; +#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST16_MAX <= INT_MAX) +typedef uint_least16_t yytype_uint16; +#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX +typedef unsigned short yytype_uint16; +#else +typedef int yytype_uint16; +#endif + +#ifndef YYPTRDIFF_T +# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ +# define YYPTRDIFF_T __PTRDIFF_TYPE__ +# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ +# elif defined PTRDIFF_MAX +# ifndef ptrdiff_t +# include /* INFRINGES ON USER NAME SPACE */ +# endif +# define YYPTRDIFF_T ptrdiff_t +# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX +# else +# define YYPTRDIFF_T long +# define YYPTRDIFF_MAXIMUM LONG_MAX +# endif +#endif + #ifndef YYSIZE_T # ifdef __SIZE_TYPE__ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T +# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -666,7 +721,19 @@ typedef short yytype_int16; # endif #endif -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) +#define YYSIZE_MAXIMUM \ + YY_CAST (YYPTRDIFF_T, \ + (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ + ? YYPTRDIFF_MAXIMUM \ + : YY_CAST (YYSIZE_T, -1))) + +#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + +/* Stored state numbers (used for stacks). */ +typedef yytype_int16 yy_state_t; + +/* State numbers in computations. */ +typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS @@ -680,22 +747,20 @@ typedef short yytype_int16; # endif #endif -#ifndef YY_ATTRIBUTE -# if (defined __GNUC__ \ - && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ - || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C -# define YY_ATTRIBUTE(Spec) __attribute__(Spec) +#ifndef YY_ATTRIBUTE_PURE +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else -# define YY_ATTRIBUTE(Spec) /* empty */ +# define YY_ATTRIBUTE_PURE # endif #endif -#ifndef YY_ATTRIBUTE_PURE -# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) -#endif - #ifndef YY_ATTRIBUTE_UNUSED -# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED +# endif #endif /* Suppress unused-variable warnings by "using" E. */ @@ -707,11 +772,11 @@ typedef short yytype_int16; #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value @@ -724,6 +789,18 @@ typedef short yytype_int16; # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif + #define YY_ASSERT(E) ((void) (0 && (E))) @@ -803,18 +880,19 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss_alloc; + yy_state_t yyss_alloc; YYSTYPE yyvs_alloc; YYLTYPE yyls_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ + ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \ + + YYSIZEOF (YYLTYPE)) \ + 2 * YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 @@ -827,11 +905,11 @@ union yyalloc # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ - YYSIZE_T yynewbytes; \ + YYPTRDIFF_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ + yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / YYSIZEOF (*yyptr); \ } \ while (0) @@ -843,12 +921,12 @@ union yyalloc # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ - __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) + __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ - YYSIZE_T yyi; \ + YYPTRDIFF_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ @@ -860,7 +938,7 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 104 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 7174 +#define YYLAST 7455 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 171 @@ -869,15 +947,16 @@ union yyalloc /* YYNRULES -- Number of rules. */ #define YYNRULES 765 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 1577 +#define YYNSTATES 1574 #define YYUNDEFTOK 2 #define YYMAXUTOK 401 + /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ #define YYTRANSLATE(YYX) \ - ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ @@ -928,7 +1007,7 @@ static const yytype_uint8 yytranslate[] = #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ -static const yytype_uint16 yyrline[] = +static const yytype_int16 yyrline[] = { 0, 452, 452, 453, 457, 464, 465, 466, 470, 471, 475, 479, 483, 496, 495, 507, 508, 509, 510, 511, @@ -985,28 +1064,28 @@ static const yytype_uint16 yyrline[] = 3211, 3211, 3214, 3214, 3214, 3214, 3214, 3214, 3214, 3214, 3214, 3214, 3214, 3215, 3215, 3215, 3215, 3215, 3215, 3215, 3215, 3215, 3215, 3216, 3216, 3220, 3224, 3231, 3235, 3242, - 3246, 3253, 3257, 3261, 3265, 3269, 3273, 3277, 3281, 3293, - 3297, 3301, 3305, 3309, 3313, 3317, 3321, 3325, 3329, 3333, - 3337, 3341, 3345, 3349, 3353, 3357, 3361, 3365, 3369, 3373, - 3377, 3381, 3385, 3389, 3393, 3397, 3401, 3405, 3409, 3413, - 3421, 3425, 3429, 3433, 3437, 3441, 3445, 3455, 3465, 3471, - 3477, 3483, 3489, 3495, 3501, 3508, 3515, 3522, 3529, 3535, - 3541, 3545, 3557, 3561, 3565, 3569, 3573, 3584, 3595, 3599, - 3603, 3607, 3611, 3615, 3619, 3623, 3627, 3631, 3635, 3639, - 3643, 3647, 3651, 3655, 3659, 3663, 3667, 3671, 3675, 3679, - 3683, 3687, 3691, 3695, 3699, 3703, 3707, 3711, 3715, 3722, - 3726, 3730, 3734, 3738, 3742, 3746, 3750, 3754, 3760, 3766, - 3770, 3776, 3783, 3787, 3791, 3795, 3799, 3803, 3807, 3811, - 3815, 3819, 3823, 3827, 3831, 3835, 3839, 3843, 3847, 3861, - 3865, 3869, 3873, 3877, 3881, 3885, 3889, 3901, 3905, 3909, - 3913, 3917, 3928, 3939, 3943, 3947, 3951, 3955, 3959, 3963, - 3967, 3971, 3975, 3979, 3983, 3987, 3991, 3995, 3999, 4003, - 4007, 4011, 4015, 4019, 4023, 4027, 4031, 4035, 4039, 4043, - 4047, 4051, 4055, 4062, 4066, 4070, 4074, 4078, 4082, 4086, - 4090, 4094, 4100, 4106, 4114, 4118, 4122, 4126, 4133, 4143, - 4149, 4155, 4165, 4177, 4185, 4189, 4219, 4223, 4227, 4231, - 4235, 4239, 4245, 4249, 4253, 4257, 4261, 4272, 4276, 4280, - 4284, 4292, 4296, 4300, 4306, 4317 + 3246, 3253, 3257, 3261, 3265, 3269, 3273, 3277, 3281, 3285, + 3289, 3293, 3297, 3301, 3305, 3309, 3313, 3317, 3321, 3325, + 3329, 3333, 3337, 3341, 3345, 3349, 3353, 3357, 3361, 3365, + 3369, 3373, 3377, 3381, 3385, 3389, 3393, 3397, 3401, 3405, + 3413, 3417, 3421, 3425, 3429, 3433, 3437, 3447, 3457, 3463, + 3469, 3475, 3481, 3487, 3493, 3500, 3507, 3514, 3521, 3527, + 3533, 3537, 3541, 3545, 3549, 3553, 3557, 3568, 3579, 3583, + 3587, 3591, 3595, 3599, 3603, 3607, 3611, 3615, 3619, 3623, + 3627, 3631, 3635, 3639, 3643, 3647, 3651, 3655, 3659, 3663, + 3667, 3671, 3675, 3679, 3683, 3687, 3691, 3695, 3699, 3706, + 3710, 3714, 3718, 3722, 3726, 3730, 3734, 3738, 3744, 3750, + 3754, 3760, 3767, 3771, 3775, 3779, 3783, 3787, 3791, 3795, + 3799, 3803, 3807, 3811, 3815, 3819, 3823, 3827, 3831, 3845, + 3849, 3853, 3857, 3861, 3865, 3869, 3873, 3877, 3881, 3885, + 3889, 3893, 3904, 3915, 3919, 3923, 3927, 3931, 3935, 3939, + 3943, 3947, 3951, 3955, 3959, 3963, 3967, 3971, 3975, 3979, + 3983, 3987, 3991, 3995, 3999, 4003, 4007, 4011, 4015, 4019, + 4023, 4027, 4031, 4038, 4042, 4046, 4050, 4054, 4058, 4062, + 4066, 4070, 4076, 4082, 4090, 4094, 4098, 4102, 4109, 4119, + 4125, 4131, 4141, 4153, 4161, 4165, 4195, 4199, 4203, 4207, + 4211, 4215, 4221, 4225, 4229, 4233, 4237, 4248, 4252, 4256, + 4260, 4268, 4272, 4276, 4282, 4293 }; #endif @@ -1090,7 +1169,7 @@ static const char *const yytname[] = # ifdef YYPRINT /* YYTOKNUM[NUM] -- (External) token number corresponding to the (internal) symbol number NUM (which must be that of a token). */ -static const yytype_uint16 yytoknum[] = +static const yytype_int16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, @@ -1113,184 +1192,184 @@ static const yytype_uint16 yytoknum[] = }; # endif -#define YYPACT_NINF -915 +#define YYPACT_NINF (-930) -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-915))) +#define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF -761 +#define YYTABLE_NINF (-761) -#define yytable_value_is_error(Yytable_value) \ +#define yytable_value_is_error(Yyn) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int16 yypact[] = { - 345, -915, 3933, 5735, 55, 4767, -915, -915, -915, -915, - -915, -915, -915, -915, -46, -80, -47, -21, 9, 17, - -76, 30, 47, -915, -915, 43, 52, 59, 66, 70, - 77, 98, 102, 107, 135, 149, 156, 171, 177, 194, - 207, 216, 257, 278, 6049, -915, -915, 183, 280, 282, - 36, 300, -915, 293, 299, 307, 3933, 3933, 3933, 3933, - 3933, 2032, 1182, 3933, 4564, -915, 318, -915, -915, -915, - -915, -915, -915, -915, -915, 5846, 312, -915, -16, -915, - -915, 4228, 1440, 1440, -915, 4566, 330, -915, 1440, -915, - -915, 163, 163, -915, -915, -915, -915, 336, 114, -915, - -915, -915, -915, -915, -915, 6170, 332, -915, 7033, 7033, - 7033, -915, 7033, 5174, 7033, 349, -915, 7018, 337, 341, - 356, 363, 378, 391, 7033, 1957, 358, 360, 380, 7033, - 7033, 395, 6825, 7033, 7033, 1536, 7033, 7033, -915, -915, - -915, -915, 2169, -915, -915, -915, -915, -915, 3933, 3933, - 5735, 3933, 3933, 3933, 3933, 5735, 3933, 5735, 3933, 5735, - 3933, 5735, 5735, 5735, 5735, 5735, 5735, 5735, 5735, 5735, - 5735, 5735, 5735, 5735, 5735, 5735, 3933, -915, -915, 402, - 4566, 404, 406, 4566, -915, -915, 5735, 3933, 3933, 407, - 5332, 5735, 2032, 3933, 3933, 74, 74, 74, 74, 74, - -46, -47, -21, 9, 17, 30, 43, 59, 6717, 1330, - 5687, 6769, 307, 390, -86, 4564, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, 4566, 4566, - -104, 429, -915, -915, 74, 3933, 3933, 3933, 3933, 3933, - 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, - 3933, 3933, 3933, 3933, 3933, 3933, 2988, 3933, -915, -915, - 163, 163, 3123, -915, -915, -915, 1440, -915, -915, -915, - -915, 5735, -915, 421, 428, 343, 163, 163, 343, 343, - 4881, 416, -915, 417, -915, -915, -915, -915, -915, -915, - 1173, 436, 4037, -915, 4566, 539, 443, 427, 2713, 5246, - 7033, -915, -915, -915, -915, 7033, -915, -915, -915, -915, - 6918, 4562, -915, 4566, 4566, 4566, 4566, 4566, 4566, -915, - -915, 446, -915, -915, -915, -915, -915, 3933, -915, 1273, - -915, 439, -915, 4155, -915, 4566, 233, -915, -915, 308, - 431, -915, 432, 5933, 4566, 433, -915, 4566, -915, -55, - 450, -915, -915, -915, -915, 1176, -915, -915, 434, 453, - -915, 437, 438, 441, 442, 447, 452, 456, 461, 460, - 462, 463, 465, 467, 455, 469, -85, 458, 472, 473, - 475, 476, 477, 478, 481, 482, 490, 491, 492, 3933, - -915, 5735, 3933, -915, 5921, 505, 496, 497, 4566, 498, - 499, 516, 507, 4282, 508, 509, 3933, 3933, -915, 623, - -915, 1121, 512, 3933, -915, -915, 3006, 4934, 5047, 5047, - 691, 691, 187, 187, -915, 3280, 4950, 1753, 4991, 691, - 691, 259, 259, 74, 74, 74, -915, -915, -83, 1707, - -915, -915, 511, 4303, 513, 343, 515, 519, 4566, 343, - 343, 343, 343, 343, 517, -915, 416, -915, 416, -915, - 517, 517, -915, 343, 6170, 5822, 5706, 343, 343, 518, - 22, -915, 1107, 320, -915, 3933, 4566, 525, -915, -915, - -915, -915, 1173, -5, -4, 21, 6170, 522, 136, -915, - -915, -915, 534, 7033, 6170, 2201, -46, 527, 4321, -915, - -915, -915, 549, 550, 551, 552, 553, 556, 557, 6245, - -915, 4224, 5482, 7, 532, -55, -915, -915, 558, -915, - 5735, -915, 25, 3258, 6073, 352, -915, 5735, -915, 541, - 384, -915, -915, 2853, -915, -915, 873, -915, 559, 4037, - -915, -915, -915, -915, -915, -915, -915, 546, -915, 554, - -915, -915, -915, -915, 5735, -915, 5735, -915, 5735, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - 4340, 555, 563, -915, 566, -915, -915, 567, -915, -915, - 568, -915, -915, -915, -915, 74, 4564, -915, 4566, 429, - 5585, 1402, -915, 4564, 3933, -915, -915, -915, -915, -915, - 517, 343, -915, 517, 517, 517, 517, 517, 3933, -98, - 669, 5846, 1107, 320, -915, 123, 250, -915, -915, 5614, - 561, 1107, 1107, 1107, 1107, 1107, 1107, -87, -915, -915, - 575, 4566, 320, 320, 320, 320, 320, 320, 90, 548, - 4564, -915, -17, -915, 589, 693, 2713, -915, 663, 6170, - -915, -915, -915, -915, -915, -915, -915, -915, 579, 590, - 598, -915, -915, 6049, -915, -915, 599, 37, 603, -915, - 595, 3933, 3933, 3933, 3933, 2032, 3933, 594, 31, -915, - -915, 4582, -915, 318, -915, 7033, 7033, 6318, -915, 752, - 754, 759, 760, 761, 764, -915, -915, 382, 630, -915, - -915, -915, -915, 5293, -915, 627, 632, 6752, -915, 1068, - -915, -915, 34, -915, 873, -915, 636, 5585, 619, 628, - 873, 5585, 620, 4376, 352, 629, 352, 352, 352, 352, - 352, 261, -915, -915, 624, 6391, -915, -915, -915, 4566, - 372, -915, 626, -915, 643, 649, 3393, 3550, 640, 873, - 873, 1553, 873, 873, 873, 873, -915, 144, 178, -915, - 1173, -915, 3933, 3933, 639, 644, 645, -915, -915, -915, - 3933, -915, 3933, -915, 650, -915, 5962, 6170, -915, -915, - -915, -915, -915, -915, 638, -915, -915, 660, -915, 4564, - 517, 648, 655, 5706, 1107, 320, -87, 90, 656, 657, - 1402, -915, -915, 1107, 658, 658, 658, 658, 658, 302, - 3933, -915, 320, -915, 662, 662, 662, 662, 662, 359, - 3933, -915, 664, -915, 3933, -915, 666, 4394, 6464, -915, - 681, -915, -915, 5735, 5735, 5735, 670, 5735, 671, 5361, - 5735, 2032, 74, 74, 74, 74, 667, -59, 74, -915, - -915, 4068, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, - 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, - 3933, 3933, 3933, 3528, 3933, -915, -915, -915, -915, 689, - -39, 690, 694, 695, 697, 6537, 42, -915, 1068, 6991, - 5482, 4566, 688, 686, 1068, 1068, 1068, 1068, 1068, 1068, - 145, 662, -915, 178, -915, 674, 682, 873, 348, 692, - -915, -915, 371, 352, 698, 698, 698, 698, 698, -915, - 3933, -915, -915, 5585, 680, 392, -915, -24, 709, 711, - -915, 2545, -915, -915, -915, 3393, 705, 713, 4564, -915, - -915, 873, 381, 381, 853, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, 699, 704, -915, -915, 381, 381, 381, 353, 861, - -915, 3933, -915, 2853, 728, -915, 589, -18, 14, -915, - -915, -915, 51, 62, -915, 6049, 163, 830, 365, -915, - -915, 5585, -915, -87, 90, -915, -915, 5585, 5585, -915, - 658, 714, 712, 662, 716, 719, 3820, -915, -915, -915, - 5573, 744, 762, -915, 733, 750, 756, 3933, 763, 4566, - 742, 749, 766, 765, 4492, 3933, -915, -915, -915, 3006, - 4934, 5047, 5047, 691, 691, 187, 187, -915, 4546, 4950, - 1753, 4991, 691, 691, 259, 259, 74, 74, 74, -915, - -915, 85, 1771, 6610, 901, 911, 780, 921, 768, -915, - 927, 929, 935, -915, 800, 145, 662, -915, -915, -915, - -915, -915, -915, 5735, 1068, 1897, -915, -915, 803, -915, - -915, -915, 387, 787, -915, -915, 698, 5585, 783, 788, - -915, -915, 4566, 3933, 3933, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, -915, -915, -915, - -915, -915, -915, -915, -915, -915, -915, 786, -915, 3663, - 381, -915, -915, -915, -915, -915, 2201, 789, 3550, 873, - -915, -915, -915, -915, 1402, 163, -915, -915, -915, 24, - 790, 793, -915, -915, 794, 795, 5585, -915, 5585, -915, - -915, 6082, 6142, 6156, 4566, 449, -915, -915, 948, -915, - 5573, -915, 801, 802, 798, 805, 806, -915, -915, 809, - -915, -915, 74, 3933, -915, -915, -915, 808, 120, -915, - 833, 829, 132, 817, 140, -915, -915, -915, 823, 837, - 841, 842, 41, 843, 1897, 1897, 1897, 1897, 1897, 2032, - 1897, 4644, -915, 873, 5179, 5585, 835, -915, 5179, 5585, - 834, -915, -915, 839, -915, 847, 844, 2377, -915, 3393, - 4564, 851, -915, -915, 855, -915, 852, -915, -915, -915, - -915, -915, 856, 857, 5444, -915, 5444, -915, 5444, -915, - -915, 5444, 5444, 5444, -915, 6683, -915, 3933, 3933, -915, - 3933, -915, 3933, 4564, 860, 1010, 876, 1012, -915, 1016, - 878, 880, 1020, 882, 5735, 5735, 5735, 5735, 867, 5453, - 5735, 89, 89, 89, 89, 89, 868, 150, 89, 1897, - 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, - 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 3798, 3933, - -915, 870, -915, 5585, 872, -915, 5179, -915, -915, 1019, - -915, 874, -915, -915, -915, 1402, 1402, 1402, -915, -915, - -915, -915, -915, -915, -915, -915, -915, 164, 165, 174, - 190, -915, 893, -915, 877, 895, -915, -915, 206, -915, - 903, 888, 914, 916, 4566, 908, 909, 920, 1897, -915, - 4759, 4966, 5113, 5113, 782, 782, 236, 236, -915, 4600, - 5007, 5024, 5033, 413, 413, 89, 89, 89, -915, -915, - 218, 2735, -915, 5585, 915, -915, 5179, -915, -915, 5179, - 900, -915, -915, -915, 5179, 5179, -915, -915, -915, -915, - 1076, 922, 938, 1078, 1080, 942, -915, 930, 931, 932, - 925, -915, -915, 933, 89, 1897, -915, -915, 5179, 934, - -915, 5179, -915, -915, 945, -915, 937, 220, -915, 3933, - 3933, 3933, -915, 3933, 4644, -915, 1402, -915, 951, 1092, - 956, 222, 226, 265, 266, 1402, -915, -915, 940, -915, - -915, -915, -915, -915, -915, 959, -915 + 199, -930, 3781, 6132, 47, 5432, -930, -930, -930, -930, + -930, -930, -930, -930, -102, -97, -86, -79, -73, -57, + -7, -47, 2, -930, -930, -2, 7, 25, 36, 74, + 100, 103, 109, 118, 131, 140, 156, 176, 189, 197, + 206, 216, 222, 226, 6383, -930, -930, 28, 235, 239, + 2701, 250, -930, 247, 270, 272, 3781, 3781, 3781, 3781, + 3781, 2372, 1705, 3781, 5269, -930, 224, -930, -930, -930, + -930, -930, -930, -930, -930, 6243, 275, -930, -19, -930, + -930, 4712, 1168, 1168, -930, 7033, 292, -930, 1168, -930, + -930, 187, 187, -930, -930, -930, -930, 314, 48, -930, + -930, -930, -930, -930, -930, 6083, 300, -930, 7314, 7314, + 7314, -930, 7314, 5779, 7314, 320, -930, 7299, 307, 328, + 330, 332, 334, 341, 7314, 4160, 365, 371, 382, 7314, + 7314, 379, 7106, 7314, 7314, 5386, 7314, 7314, -930, -930, + -930, -930, 4851, -930, -930, -930, -930, -930, 3781, 3781, + 6132, 3781, 3781, 3781, 3781, 6132, 3781, 6132, 3781, 6132, + 3781, 6132, 6132, 6132, 6132, 6132, 6132, 6132, 6132, 6132, + 6132, 6132, 6132, 6132, 6132, 6132, 3781, -930, -930, 380, + 7033, 402, 405, 7033, -930, -930, 6132, 3781, 3781, 406, + 2372, 56, 6132, 2372, 3781, 3781, 56, 56, 56, 56, + 56, -102, -86, -79, -73, -57, -47, -2, 25, 1462, + 5571, 6995, 7050, 272, 249, -98, 5269, -930, -930, -930, + -930, -930, -930, -930, -930, -930, -930, -930, -930, 7033, + 7033, -114, 421, -930, -930, 56, 3781, 3781, 3781, 3781, + 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, + 3781, 3781, 3781, 3781, 3781, 3781, 7033, 2836, 3781, -930, + -930, 187, 187, 2971, -930, -930, -930, 1168, -930, -930, + -930, -930, 6132, -930, 414, 938, 298, 187, 187, 298, + 298, 5546, 319, -930, 409, -930, -930, -930, -930, -930, + -930, 1401, 426, 3885, -930, 7033, 529, 430, 415, 2560, + 5806, 7314, -930, -930, -930, -930, 7314, -930, -930, -930, + -930, 7199, 5722, -930, 7033, 7033, 7033, 7033, 7033, 7033, + -930, -930, 432, -930, -930, -930, -930, -930, 3781, -930, + 4943, -930, 425, -930, 5030, -930, 7033, 214, -930, -930, + 256, 419, -930, 420, 6272, 7033, 433, -930, 7033, -930, + 208, 437, -930, -930, -930, -930, 2895, -930, -930, 422, + 434, -930, 435, 436, 440, 441, 444, 446, 443, 449, + 461, 459, 460, 464, 472, 453, 474, -96, 480, 476, + 477, 481, 482, 483, 484, 485, 486, 488, 489, 491, + 3781, -930, 6132, 3781, -930, 6231, 490, 494, 495, 7033, + 497, 508, 499, 4555, 501, 509, 3781, 3781, -930, 582, + -930, 313, 510, 3781, -930, -930, 1767, 5599, 2015, 2015, + 905, 905, 705, 705, -930, 3128, 1547, 2133, 5631, 905, + 905, 281, 281, 56, 56, 56, -930, -930, -83, 2391, + -930, -930, 511, 4711, 512, 298, 514, 517, 7033, 298, + 298, 298, 298, 298, 515, -930, 319, -930, 319, -930, + 515, 515, -930, 298, 6083, 6156, 6045, 298, 298, 518, + 8, -930, 934, 273, -930, 3781, 7033, 522, -930, -930, + -930, -930, 1401, -6, -4, 17, 6083, 526, 18, -930, + -930, -930, 549, 7314, 6083, 3916, -102, 536, 5099, -930, + -930, -930, 557, 558, 560, 562, 565, 572, 573, 6515, + -930, 4210, 5882, 237, 540, 208, -930, -930, 585, -930, + 6132, -930, 31, 3106, 6470, 1096, -930, 6132, -930, 574, + 229, -930, -930, 1748, -930, -930, 760, -930, 590, 3885, + -930, -930, -930, -930, -930, -930, -930, 578, -930, 581, + -930, -930, -930, -930, 6132, -930, 6132, -930, 6132, -930, + -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, + 5157, 586, 587, -930, 583, -930, -930, 591, 4056, 584, + -930, -930, -930, -930, 56, 5269, -930, 7033, 421, 5913, + 4642, -930, 5269, 3781, -930, -930, -930, -930, -930, 515, + 298, -930, 515, 515, 515, 515, 515, 3781, -71, 709, + 6243, 934, 273, -930, 253, 293, -930, -930, 6014, 600, + 934, 934, 934, 934, 934, 934, 19, -930, -930, 606, + 7033, 273, 273, 273, 273, 273, 273, 107, 598, 5269, + -930, 30, -930, 622, 727, 2560, -930, 704, 6083, -930, + -930, -930, -930, -930, -930, -930, -930, 616, 626, 628, + -930, -930, 6383, -930, -930, 630, 4629, 631, -930, 623, + 3781, 3781, 3781, 3781, 2372, 3781, 624, 12, -930, -930, + 5366, -930, 224, -930, 7314, 7314, 6588, -930, 779, 780, + 783, 786, 787, 790, -930, -930, 342, 653, -930, -930, + -930, -930, 4912, -930, 648, 659, 7022, -930, 1178, -930, + -930, 9, -930, 760, -930, 660, 5913, 643, 651, 760, + 5913, 647, 5178, 1096, 655, 1096, 1096, 1096, 1096, 1096, + 209, -930, -930, 649, 6661, -930, -930, -930, 7033, 417, + -930, 654, -930, 670, 672, 3241, 3398, 663, 760, 760, + 4783, 760, 760, 760, 760, -930, 91, 266, -930, 1401, + -930, 3781, 3781, 657, 658, 662, -930, -930, -930, 3781, + -930, 3781, -930, 667, -930, 6359, 6083, -930, -930, -930, + -930, -930, -930, 661, -930, -930, 683, -930, 5269, 515, + 668, 675, 6045, 934, 273, 19, 107, 676, 677, 4642, + -930, -930, 934, 671, 671, 671, 671, 671, 325, 3781, + -930, 273, -930, 678, 678, 678, 678, 678, 335, 3781, + -930, 679, -930, 3781, -930, 680, 5196, 6734, -930, 698, + -930, -930, 6132, 6132, 6132, 684, 6132, 685, 2372, 98, + 6132, 2372, 56, 56, 56, 56, 687, -63, 56, -930, + -930, 4191, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, + 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, + 3781, 3781, 7033, 3376, 3781, -930, -930, -930, -930, 707, + -42, 708, 710, 712, 713, 6807, 43, -930, 1178, 7272, + 5882, 7033, 723, 715, 1178, 1178, 1178, 1178, 1178, 1178, + 116, 678, -930, 266, -930, 711, 714, 760, 77, 716, + -930, -930, 353, 1096, 718, 718, 718, 718, 718, -930, + 3781, -930, -930, 5913, 721, 378, -930, -90, 732, 733, + -930, 2203, -930, -930, -930, 3241, 722, 728, 5269, -930, + -930, 760, 377, 377, 876, -930, -930, -930, -930, -930, + -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, + -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, + -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, + -930, 724, 730, -930, -930, 377, 377, 377, 265, 3781, + -930, 3781, -930, 1748, 756, -930, 622, -38, -29, -930, + -930, -930, -22, 6, -930, 6383, 187, 859, 519, -930, + -930, 5913, -930, 19, 107, -930, -930, 5913, 5913, -930, + 671, 744, 741, 678, 748, 751, 3668, -930, -930, -930, + 4275, 771, 775, -930, 759, 772, 773, 3781, 778, 7033, + 765, 782, 769, 5214, 3781, -930, -930, -930, 1767, 5599, + 2015, 2015, 905, 905, 705, 705, -930, 5251, 1547, 2133, + 5631, 905, 905, 281, 281, 56, 56, 56, -930, -930, + 44, 2719, 6880, 930, 931, 794, 942, 804, -930, 943, + 944, 951, -930, 816, 116, 678, -930, -930, -930, -930, + -930, -930, 6132, 1178, 4432, -930, -930, 825, -930, -930, + -930, 289, 809, -930, -930, 718, 5913, 805, 811, -930, + -930, 7033, 3781, 3781, -930, -930, -930, -930, -930, -930, + -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, + -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, + -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, + -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, + -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, + -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, + -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, + -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, + -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, + -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, + -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, + -930, -930, -930, -930, -930, -930, -930, -930, -930, -930, + -930, -930, -930, -930, -930, -930, 819, -930, 3511, 377, + -930, -930, -930, -930, 5269, 3916, 814, 3398, 760, -930, + -930, -930, -930, 4642, 187, -930, -930, -930, 4, 827, + 812, -930, -930, 826, 829, 5913, -930, 5913, -930, -930, + 5796, 5873, 6458, 7033, 362, -930, -930, 983, -930, 4275, + -930, 836, 839, 840, 841, 844, 4056, 843, -930, -930, + 56, 3781, -930, -930, -930, 851, 51, -930, 871, 872, + 66, 853, 81, -930, -930, -930, 857, 874, 884, 885, + 4332, 886, 4432, 4432, 4432, 4432, 4432, 2372, 4432, 4864, + -930, 760, 4998, 5913, 863, -930, 4998, 5913, 862, -930, + -930, 875, -930, 878, 877, 1946, -930, 3241, 5269, 881, + -930, -930, 902, -930, 883, -930, -930, -930, -930, -930, + 889, 890, 4659, -930, 4659, -930, 4659, -930, -930, 4659, + 4659, 4659, -930, 6953, -930, 3781, 3781, -930, 3781, -930, + 3781, 5269, 909, 1050, 913, 1062, -930, 1063, 925, 927, + 1067, 929, 6132, 6132, 6132, 6132, 914, 2372, 129, 6132, + 129, 129, 129, 129, 129, 915, 86, 129, 4432, 4432, + 4432, 4432, 4432, 4432, 4432, 4432, 4432, 4432, 4432, 4432, + 4432, 4432, 4432, 4432, 4432, 4432, 7033, 3646, 3781, -930, + 917, -930, 5913, 918, -930, 4998, -930, -930, 1065, -930, + 919, -930, -930, -930, 4642, 4642, 4642, -930, -930, -930, + -930, -930, -930, -930, -930, -930, 87, 92, 141, 150, + -930, 933, -930, 921, 945, -930, -930, 162, -930, 923, + 939, 940, 946, 7033, 924, 953, 4432, -930, 5424, 5615, + 571, 571, 966, 966, 873, 873, -930, 1261, 5656, 1613, + 375, 798, 798, 129, 129, 129, -930, -930, 168, 3935, + -930, 5913, 928, -930, 4998, -930, -930, 4998, 932, -930, + -930, -930, 4998, 4998, -930, -930, -930, -930, 1076, 947, + 952, 1105, 1106, 969, -930, 955, 956, 957, 967, 4532, + 958, 129, 4432, -930, -930, 4998, 968, -930, 4998, -930, + -930, 987, -930, 970, 170, -930, 3781, 3781, 3781, -930, + 3781, 4864, -930, 4642, -930, 990, 1131, 993, 171, 179, + 182, 184, 4642, -930, -930, 976, -930, -930, -930, -930, + -930, -930, 995, -930 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ -static const yytype_uint16 yydefact[] = +static const yytype_int16 yydefact[] = { 0, 765, 0, 0, 0, 765, 5, 653, 649, 652, 761, 762, 655, 656, 0, 0, 0, 0, 0, 0, @@ -1311,27 +1390,27 @@ static const yytype_uint16 yydefact[] = 765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 765, 326, 332, 0, 0, 0, 614, 0, 765, 325, 0, 765, 765, 0, - 0, 0, 0, 765, 765, 623, 621, 620, 622, 619, - 300, 394, 395, 397, 398, 409, 408, 403, 400, 399, - 402, 401, 396, 0, 0, 549, 746, 747, 748, 756, - 749, 752, 750, 754, 753, 751, 755, 735, 736, 0, - 0, 765, 741, 734, 618, 0, 0, 0, 0, 0, + 0, 611, 0, 0, 765, 765, 623, 621, 620, 622, + 619, 300, 394, 395, 397, 398, 409, 408, 403, 400, + 399, 402, 401, 396, 0, 0, 549, 746, 747, 748, + 756, 749, 752, 750, 754, 753, 751, 755, 735, 736, + 0, 0, 765, 741, 734, 618, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 763, 764, - 765, 765, 0, 377, 378, 410, 400, 405, 404, 407, - 301, 0, 406, 0, 286, 765, 765, 765, 765, 765, - 765, 0, 335, 285, 337, 765, 757, 758, 759, 760, - 0, 367, 0, 339, 0, 0, 62, 64, 0, 765, - 765, 56, 45, 55, 57, 765, 46, 154, 51, 23, - 765, 0, 49, 0, 0, 0, 0, 0, 0, 54, - 765, 0, 26, 25, 24, 52, 48, 0, 158, 0, - 157, 0, 58, 0, 20, 0, 0, 50, 53, 334, - 313, 324, 0, 0, 0, 0, 13, 0, 70, 0, - 333, 67, 315, 316, 317, 365, 765, 312, 0, 548, - 547, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 763, + 764, 765, 765, 0, 377, 378, 410, 400, 405, 404, + 407, 301, 0, 406, 0, 286, 765, 765, 765, 765, + 765, 765, 0, 335, 285, 337, 765, 757, 758, 759, + 760, 0, 367, 0, 339, 0, 0, 62, 64, 0, + 765, 765, 56, 45, 55, 57, 765, 46, 154, 51, + 23, 765, 0, 49, 0, 0, 0, 0, 0, 0, + 54, 765, 0, 26, 25, 24, 52, 48, 0, 158, + 0, 157, 0, 58, 0, 20, 0, 0, 50, 53, + 334, 313, 324, 0, 0, 0, 0, 13, 0, 70, + 0, 333, 67, 315, 316, 317, 365, 765, 312, 0, + 548, 547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 327, 0, 765, 329, 0, 0, 0, 0, 0, 0, + 0, 327, 0, 765, 329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 648, 739, 742, 0, 765, 0, 737, 214, 632, 633, 634, 635, 636, 637, 640, 641, 647, 0, 629, 630, 631, 638, @@ -1349,33 +1428,33 @@ static const yytype_uint16 yydefact[] = 597, 596, 613, 603, 599, 601, 602, 0, 609, 0, 608, 662, 598, 663, 0, 665, 0, 666, 0, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 605, - 0, 0, 0, 328, 0, 604, 607, 0, 611, 610, - 0, 616, 617, 606, 600, 591, 550, 740, 0, 765, - 765, 765, 98, 215, 0, 644, 643, 308, 307, 309, - 293, 765, 277, 282, 278, 279, 281, 280, 765, 0, - 0, 0, 765, 0, 240, 0, 0, 765, 202, 0, - 0, 765, 765, 765, 765, 765, 765, 765, 254, 253, - 0, 264, 0, 0, 0, 0, 0, 0, 765, 0, - 546, 545, 374, 363, 306, 0, 0, 765, 765, 0, - 59, 63, 727, 723, 726, 729, 730, 206, 0, 0, - 0, 725, 731, 0, 733, 732, 0, 0, 0, 724, - 0, 0, 0, 0, 0, 0, 0, 0, 207, 242, - 210, 243, 679, 728, 205, 765, 765, 765, 384, 0, - 0, 0, 0, 0, 0, 386, 765, 0, 0, 175, - 176, 177, 163, 0, 164, 0, 160, 165, 161, 765, - 174, 159, 0, 78, 0, 390, 0, 765, 0, 0, - 0, 765, 0, 0, 765, 0, 765, 765, 765, 765, - 765, 0, 245, 244, 0, 765, 87, 412, 216, 0, - 0, 71, 0, 765, 0, 0, 765, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 68, 765, 765, 178, - 0, 318, 0, 0, 0, 0, 0, 330, 331, 615, - 0, 612, 0, 738, 0, 105, 0, 0, 99, 107, - 102, 106, 101, 103, 0, 100, 104, 0, 193, 642, - 283, 0, 0, 0, 765, 0, 765, 765, 0, 0, - 765, 201, 204, 765, 259, 255, 256, 258, 257, 0, - 765, 234, 0, 265, 270, 266, 267, 269, 268, 0, - 765, 237, 294, 371, 0, 340, 0, 0, 765, 348, - 765, 347, 66, 0, 0, 0, 689, 0, 0, 0, + 0, 0, 0, 328, 0, 604, 607, 0, 610, 0, + 616, 617, 606, 600, 591, 550, 740, 0, 765, 765, + 765, 98, 215, 0, 644, 643, 308, 307, 309, 293, + 765, 277, 282, 278, 279, 281, 280, 765, 0, 0, + 0, 765, 0, 240, 0, 0, 765, 202, 0, 0, + 765, 765, 765, 765, 765, 765, 765, 254, 253, 0, + 264, 0, 0, 0, 0, 0, 0, 765, 0, 546, + 545, 374, 363, 306, 0, 0, 765, 765, 0, 59, + 63, 727, 723, 726, 729, 730, 206, 0, 0, 0, + 725, 731, 0, 733, 732, 0, 0, 0, 724, 0, + 0, 0, 0, 0, 0, 0, 0, 207, 242, 210, + 243, 679, 728, 205, 765, 765, 765, 384, 0, 0, + 0, 0, 0, 0, 386, 765, 0, 0, 175, 176, + 177, 163, 0, 164, 0, 160, 165, 161, 765, 174, + 159, 0, 78, 0, 390, 0, 765, 0, 0, 0, + 765, 0, 0, 765, 0, 765, 765, 765, 765, 765, + 0, 245, 244, 0, 765, 87, 412, 216, 0, 0, + 71, 0, 765, 0, 0, 765, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 68, 765, 765, 178, 0, + 318, 0, 0, 0, 0, 0, 330, 331, 615, 0, + 612, 0, 738, 0, 105, 0, 0, 99, 107, 102, + 106, 101, 103, 0, 100, 104, 0, 193, 642, 283, + 0, 0, 0, 765, 0, 765, 765, 0, 0, 765, + 201, 204, 765, 259, 255, 256, 258, 257, 0, 765, + 234, 0, 265, 270, 266, 267, 269, 268, 0, 765, + 237, 294, 371, 0, 340, 0, 0, 765, 348, 765, + 347, 66, 0, 0, 0, 689, 0, 0, 0, 686, 0, 0, 697, 696, 695, 694, 0, 0, 693, 65, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1396,93 +1475,93 @@ static const yytype_uint16 yydefact[] = 284, 765, 241, 765, 765, 235, 238, 765, 765, 295, 260, 263, 0, 271, 274, 0, 375, 342, 341, 344, 0, 0, 350, 349, 0, 0, 0, 765, 0, 0, - 0, 0, 0, 0, 0, 0, 722, 208, 211, 706, - 707, 708, 709, 710, 711, 714, 715, 721, 0, 703, - 704, 705, 712, 713, 701, 702, 698, 699, 700, 720, - 719, 0, 0, 765, 0, 0, 0, 0, 0, 196, - 0, 0, 0, 383, 0, 765, 173, 153, 151, 156, - 152, 162, 169, 0, 765, 0, 170, 212, 0, 79, - 765, 83, 0, 0, 765, 95, 251, 765, 0, 0, - 217, 412, 0, 765, 765, 219, 220, 416, 417, 421, - 418, 426, 419, 420, 422, 423, 424, 425, 427, 428, - 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 494, 475, 476, 477, - 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 495, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 765, 538, 539, 540, 531, 543, 527, - 528, 526, 533, 534, 522, 523, 524, 525, 532, 530, - 537, 535, 541, 536, 529, 542, 415, 0, 226, 229, - 186, 180, 148, 147, 188, 192, 765, 0, 215, 0, - 594, 593, 595, 592, 765, 765, 194, 111, 108, 0, - 0, 0, 236, 239, 0, 0, 765, 261, 765, 272, - 372, 754, 0, 753, 0, 0, 351, 353, 743, 765, - 0, 688, 0, 0, 0, 0, 0, 686, 685, 0, - 691, 692, 680, 0, 718, 717, 385, 0, 0, 33, - 197, 0, 0, 0, 0, 40, 171, 167, 0, 0, + 0, 0, 0, 0, 0, 722, 208, 211, 706, 707, + 708, 709, 710, 711, 714, 715, 721, 0, 703, 704, + 705, 712, 713, 701, 702, 698, 699, 700, 720, 719, + 0, 0, 765, 0, 0, 0, 0, 0, 196, 0, + 0, 0, 383, 0, 765, 173, 153, 151, 156, 152, + 162, 169, 0, 765, 0, 170, 212, 0, 79, 765, + 83, 0, 0, 765, 95, 251, 765, 0, 0, 217, + 412, 0, 765, 765, 219, 220, 416, 417, 421, 418, + 426, 419, 420, 422, 423, 424, 425, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 494, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 765, 538, 539, 540, 531, 543, 527, 528, + 526, 533, 534, 522, 523, 524, 525, 532, 530, 537, + 535, 541, 536, 529, 542, 415, 0, 226, 229, 186, + 180, 148, 147, 188, 192, 765, 0, 215, 0, 594, + 593, 595, 592, 765, 765, 194, 111, 108, 0, 0, + 0, 236, 239, 0, 0, 765, 261, 765, 272, 372, + 754, 0, 753, 0, 0, 351, 353, 743, 765, 0, + 688, 0, 0, 0, 0, 0, 685, 0, 691, 692, + 680, 0, 718, 717, 385, 0, 0, 33, 197, 0, + 0, 0, 0, 40, 171, 167, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, + 551, 0, 82, 765, 0, 89, 86, 765, 0, 252, + 765, 0, 9, 0, 0, 0, 231, 765, 232, 0, + 187, 75, 0, 195, 0, 109, 660, 765, 765, 765, + 0, 0, 0, 356, 0, 355, 0, 354, 744, 0, + 0, 0, 745, 765, 352, 0, 0, 690, 0, 687, + 0, 716, 0, 0, 0, 0, 27, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 558, 0, + 566, 564, 563, 565, 562, 0, 0, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 213, 551, 0, 82, 765, 0, 89, 86, 765, - 0, 252, 765, 0, 9, 0, 0, 0, 231, 765, - 232, 0, 187, 75, 0, 195, 0, 109, 660, 765, - 765, 765, 0, 0, 0, 356, 0, 355, 0, 354, - 744, 0, 0, 0, 745, 765, 352, 0, 0, 690, - 0, 687, 0, 716, 0, 0, 0, 0, 27, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 566, 564, 563, 565, 562, 0, 0, 561, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 80, 0, 91, 765, 0, 765, 88, 218, 12, 10, - 544, 0, 765, 412, 110, 765, 765, 765, 765, 765, - 362, 361, 360, 359, 358, 357, 346, 0, 0, 0, - 0, 36, 765, 34, 0, 0, 37, 39, 0, 29, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 589, - 575, 576, 577, 578, 579, 580, 581, 582, 588, 0, - 572, 573, 574, 570, 571, 567, 568, 569, 587, 586, - 0, 0, 765, 765, 0, 765, 94, 11, 233, 190, - 0, 298, 297, 296, 262, 273, 683, 682, 684, 681, - 0, 0, 0, 0, 0, 0, 560, 0, 0, 0, - 0, 558, 557, 0, 552, 0, 585, 584, 84, 0, - 765, 96, 661, 197, 0, 28, 0, 0, 30, 0, - 0, 0, 559, 0, 583, 765, 765, 35, 0, 0, - 0, 0, 0, 0, 0, 765, 90, 38, 0, 31, - 555, 554, 556, 553, 92, 0, 32 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, + 0, 91, 765, 0, 765, 88, 218, 12, 10, 544, + 0, 765, 412, 110, 765, 765, 765, 765, 765, 362, + 361, 360, 359, 358, 357, 346, 0, 0, 0, 0, + 36, 765, 34, 0, 0, 37, 39, 0, 29, 0, + 0, 0, 0, 0, 0, 0, 0, 589, 575, 576, + 577, 578, 579, 580, 581, 582, 588, 0, 572, 573, + 574, 570, 571, 567, 568, 569, 587, 586, 0, 0, + 765, 765, 0, 765, 94, 11, 233, 190, 0, 298, + 297, 296, 262, 273, 683, 682, 684, 681, 0, 0, + 0, 0, 0, 0, 560, 0, 0, 0, 0, 557, + 0, 552, 0, 585, 584, 84, 0, 765, 96, 661, + 197, 0, 28, 0, 0, 30, 0, 0, 0, 559, + 0, 583, 765, 765, 35, 0, 0, 0, 0, 0, + 0, 0, 765, 90, 38, 0, 31, 555, 554, 556, + 553, 92, 0, 32 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -915, -915, -317, -915, -3, -915, -915, 804, -122, -915, - 3, -437, 466, -121, -915, -915, -148, -915, -915, -217, - -915, -915, -915, -915, 792, -915, -915, -915, -915, -915, - -534, -915, -915, -107, -915, -915, -915, -915, 231, 419, - -650, -915, -702, -755, -336, -495, -915, -126, -915, 50, - -560, -915, -485, -914, -915, -459, 276, -563, 29, -227, - -202, -88, -61, -35, -275, -638, 822, 979, -151, -129, - -915, -108, -915, -915, -915, -915, -153, -101, -915, -454, - -915, -915, -28, -13, -915, -915, -915, -915, -36, 5, - -915, -915, -728, -915, -67, -915, -576, -134, -60, 471, - 812, 426, -915, -915, -915, 746, -377, 1291, 23, -490, + -930, -930, -312, -930, 34, -930, -930, 835, -130, -930, + 3, -440, 500, -128, -930, -930, -109, -930, -930, -181, + -930, -930, -930, -930, 818, -930, -930, -930, -930, -930, + -595, -930, -930, -110, -930, -930, -930, -930, 263, 452, + -671, -930, -701, -694, -306, -501, -930, -95, -930, 73, + -550, -930, -502, -929, -930, -452, 308, -626, 345, -409, + 747, -82, 194, 217, -281, -633, 824, 1209, -169, -125, + -930, -122, -930, -930, -930, -930, -106, -117, -930, -475, + -930, -930, -33, -8, -930, -930, -930, -930, -28, 40, + -930, -930, -728, -930, -61, -930, -581, -121, -60, 269, + 310, 251, 520, -930, -930, 774, -857, 1161, -56, -490, -1 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 4, 5, 925, 926, 139, 528, 140, 141, 310, - 142, 295, 296, 143, 536, 530, 756, 334, 714, 902, - 348, 717, 1335, 721, 349, 923, 1433, 1503, 1107, 1339, - 591, 984, 1089, 144, 331, 705, 706, 707, 708, 709, - 757, 1256, 758, 787, 1078, 469, 470, 677, 678, 1096, - 414, 741, 534, 936, 937, 471, 680, 731, 804, 814, - 281, 282, 91, 92, 350, 182, 351, 93, 292, 94, - 647, 95, 648, 830, 1031, 1032, 1286, 96, 97, 480, - 476, 477, 98, 99, 145, 696, 878, 146, 100, 101, - 102, 103, 742, 743, 931, 1246, 639, 358, 359, 1331, - 215, 65, 681, 682, 230, 231, 1287, 1288, 628, 66, + -1, 4, 5, 925, 926, 139, 528, 140, 141, 311, + 142, 296, 297, 143, 536, 530, 755, 335, 713, 902, + 349, 716, 1333, 720, 350, 923, 1432, 1501, 1106, 1337, + 590, 984, 1088, 144, 332, 704, 705, 706, 707, 708, + 756, 1255, 757, 786, 1077, 469, 470, 676, 677, 1095, + 414, 740, 534, 936, 937, 471, 679, 730, 803, 813, + 282, 283, 91, 92, 351, 182, 352, 93, 293, 94, + 646, 95, 647, 829, 1031, 1032, 1285, 96, 97, 480, + 476, 477, 98, 99, 145, 695, 878, 146, 100, 101, + 102, 103, 741, 742, 931, 1245, 638, 359, 360, 1531, + 216, 65, 680, 681, 231, 232, 1286, 1287, 627, 66, 147 }; @@ -1491,648 +1570,675 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 6, 214, 992, 509, 284, 683, 307, 614, 185, 924, - 328, 330, 903, 352, 260, 361, 183, 363, 364, 365, - 366, 1247, 368, 497, 370, 836, 372, 610, 644, 773, - 713, 184, 791, 394, 353, 718, 679, 618, 719, 1356, - 261, 354, 388, 263, 411, 1019, 850, 719, 258, 645, - 259, 189, 838, 396, 397, 104, 1398, 651, 516, 404, - 405, 233, 407, 556, 413, 407, 412, 811, 608, 792, - 908, -757, -758, 454, 456, 458, 460, 461, 821, 810, - 155, 408, 557, 800, 595, 150, 267, 268, 269, 407, - 283, 283, 531, 272, 532, 774, 533, -759, 293, 942, - 943, 148, 985, 986, 987, 988, 357, 243, 1046, 1075, - 264, 301, 302, 303, 355, 304, 306, 308, 151, 149, - 312, 291, 1417, 1113, 286, 287, 288, 319, 1076, 356, - 407, 823, 325, 326, 824, 329, 332, 333, 1006, 337, - 338, 1114, -757, -758, 152, -757, -758, 360, 360, 1260, - 360, 360, 360, 360, -97, 360, -97, 360, -97, 360, - 802, 912, 407, 914, 915, 916, 917, 918, -759, 352, - 619, -759, 440, 441, 153, 360, 273, 776, 274, 851, - 275, 1261, 154, 293, 687, 720, 360, 360, 457, 459, - 353, 1357, 360, 360, 720, 156, 438, 354, 994, 407, - 352, 190, 839, 157, 352, 539, 1399, 886, 158, 1084, - 407, 735, -760, 267, 268, 269, 272, 159, 1262, 472, - 243, 353, 905, 276, 160, 353, 909, 289, 354, 1263, - 415, 161, 354, 407, 1022, 162, 1015, 1016, 255, 256, - 257, 413, 163, 600, 1025, 473, 638, 603, 604, 605, - 606, 607, 1304, 1427, 1428, 1429, 820, 1102, 572, 283, - 283, 609, 357, 164, 290, 615, 616, 165, 1385, 1417, - 355, 267, 166, 995, 455, 283, 283, 455, 455, 474, - 1389, 1270, 525, -760, 478, 356, -760, 1386, 1392, 608, - 798, 1250, 243, 357, 989, 481, 1095, 357, 407, 1390, - 167, 355, 306, 312, 277, 355, 996, 1393, 499, 990, - 991, 810, 407, 407, 168, 491, 356, 1479, 278, 6, - 356, 169, 407, 279, 258, 531, 259, 532, 280, 993, - 828, 1516, 1517, 630, 1012, 631, 170, 632, 407, 186, - 1007, 1518, 171, 1098, 1108, 250, 251, 252, 253, 254, - 1106, 255, 256, 257, 1524, 293, 447, 1519, 448, 172, - 449, 683, 286, 287, 288, 725, 407, 1265, 1559, 726, - 407, 826, 173, 1525, 407, 216, 217, 218, 538, 885, - 633, 174, 519, 1343, 520, 1536, 797, 1560, 10, 1570, - 11, 360, 679, 1571, 1422, 1423, 1424, 1425, 1426, 790, - 1427, 1428, 1429, 450, 612, 472, 815, 816, 817, 818, - 819, 592, 727, 407, 407, 1257, 608, 799, 1099, 252, - 253, 254, 175, 255, 256, 257, 919, 920, 1109, 219, - 613, 473, 1572, 1573, 472, 1441, 928, 929, 216, 217, - 218, 220, 221, 176, 455, 187, 1417, 188, 455, 455, - 455, 455, 455, 1272, 1273, -97, 191, -97, 192, -97, - 473, 634, 455, 724, 193, 289, 455, 455, 810, 1021, - 1264, 629, 194, 521, 641, 635, 710, 262, 222, 223, - 636, 224, 901, 285, 451, 637, 225, 481, 226, 1, - 2, 3, 219, 728, 684, 271, 650, 298, 452, 309, - 6, 627, 313, 453, 220, 221, 314, 729, 322, 1354, - 323, 711, 730, 990, 991, 1103, 1271, 352, 990, 991, - 1254, 315, 1274, 1275, 733, 820, 1024, 6, 316, 472, - 324, 737, 1268, 738, 739, 740, 1105, 920, 353, 1111, - 1112, 222, 223, 317, 224, 354, 990, 991, 732, 225, - 794, 226, 990, 991, 1336, 473, 318, 406, 472, 759, - 327, 1073, 491, 1371, 1372, 1373, 1334, 389, 1014, 391, - 1338, 392, 398, 1424, 1425, 1426, 795, 1427, 1428, 1429, - 413, 445, 475, -275, 473, 1023, 482, 493, 415, 474, - 788, 494, 495, 510, -276, 512, 522, 523, 527, 535, - 455, 407, 540, 554, 541, 542, 558, 641, 543, 544, - 357, 629, 1340, 547, 545, 847, 592, 549, 355, 546, - 629, 629, 629, 629, 629, 629, 415, 185, 548, 550, - 551, 903, 552, 356, 553, 183, 555, 415, 587, 559, - 560, 796, 561, 562, 563, 564, 6, 831, 565, 566, - 184, 805, 806, 807, 808, 809, 472, 567, 568, 569, - 472, 1086, 574, 575, 576, 578, 579, 710, 815, 816, - 817, 818, 819, 580, 581, 583, 584, 590, 597, 601, - 599, -277, 473, 608, 649, 617, 473, 646, 875, 876, - 1511, 1512, 1513, 643, 685, 6, 688, 712, 689, 690, - 691, 692, 997, 998, 693, 694, 736, 715, 629, 760, - 1002, 762, 1003, 241, 242, 1510, 474, 793, 822, 763, - 474, 803, 768, 733, 243, 733, 733, 733, 733, 733, - 769, 770, 472, 772, 771, 812, -366, 759, 900, 829, - 185, 825, 932, 759, 833, 939, 834, 732, 183, 732, - 732, 732, 732, 732, 835, 837, 788, 415, 473, 840, - 841, 849, 879, 184, 880, 481, 683, 1087, 1088, 881, - 882, 883, 759, 759, 884, 759, 759, 759, 759, 887, - 890, 1362, 1090, 1363, 889, 904, 906, 910, 907, 913, - 472, 921, 933, 629, 930, 415, 415, 679, 934, 788, - 941, 1566, 629, 1008, 1415, 1416, 999, 1009, 1436, 641, - 1574, 1000, 1001, 1071, 64, 1417, 473, 1004, 1010, 641, - 1011, 1017, 1018, 1013, 810, 1445, 1446, 1447, 820, 1033, - -284, 1030, 1020, 1027, 1045, 1037, 1039, 1074, 1077, 1093, - 1431, 1100, 1080, 1081, 1434, 1082, 1094, 1101, 1110, 250, - 251, 252, 253, 254, 710, 255, 256, 257, 1115, 1104, - 1116, 1249, 472, 1251, 920, 1255, 1252, 1023, 195, 196, - 197, 198, 199, 1248, 1253, 234, 1259, 6, 1267, 1276, - 1079, 1278, 1277, 286, 287, 288, 748, 629, 473, 1279, - 749, 1289, 329, 629, 629, 629, 629, 629, 629, 1097, - 1291, 1506, 415, 1294, 1365, 1367, 1369, 1292, 1509, 1297, - 1290, 1307, 733, 1293, 1514, 1515, 1298, 1085, 1266, 641, - 1295, 1308, 474, 1299, 805, 806, 807, 808, 809, 1309, - 759, 1310, 1300, 750, 939, 1311, 732, 1312, 1504, 1313, - 1422, 1423, 1424, 1425, 1426, 1314, 1427, 1428, 1429, 1315, - 472, 1333, 1337, 1341, 1348, 1342, 472, 472, 1358, 1352, - 1359, 1360, 1361, 1374, 759, 1379, 1377, 1378, 1538, 185, - 1380, 1541, 1375, 1381, 1382, 1384, 473, 183, 1388, 1345, - 1346, 1387, 473, 473, 1391, 751, 289, 1450, 1394, 1451, - 641, 1452, 184, 1395, 1453, 1454, 1455, 1396, 1397, 1400, - 1432, 1435, 1443, 592, 403, 283, 1556, 1437, 1539, 1461, - 474, 1439, 415, 415, 752, 1438, 474, 474, 1442, 1444, - 1462, 1565, 1464, 1448, 1449, 1463, 1465, 1466, 753, 1467, - 1468, 1469, 1474, 754, 1507, 1478, 360, 1502, 755, 1505, - 213, 1520, 1508, 1523, 1522, 1527, 472, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 433, 434, 435, 436, 1542, 439, - 1526, 1528, 473, 1529, 443, 1531, 1532, 1533, 286, 287, - 288, 893, 1540, 631, 1097, 894, 1543, 1545, 1546, 1544, - 1547, 1548, 1552, 629, 1557, 1549, 1550, 1551, 1553, 592, - 1567, 1555, 1568, 592, 1558, 1569, 474, 1575, 1576, 1344, - 498, 1353, 360, 360, 500, 832, 1430, 286, 287, 288, - 620, 1091, 888, 1020, 621, 515, 1521, 1048, 895, 362, - 1351, 216, 217, 218, 367, 1316, 369, 1376, 371, 511, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 517, 1347, 589, 0, 0, - 0, 0, 0, 0, 0, 395, 0, 622, 0, 400, - 401, 402, 0, 0, 0, 0, 0, 1355, 0, 0, - 0, 289, 0, 0, 479, 219, 483, 484, 485, 0, - 0, 0, 216, 217, 218, 472, 0, 220, 221, 0, - 0, 570, 0, 0, 0, 0, 0, 0, 0, 896, - 0, 0, 0, 0, 0, 472, 0, 472, 585, 586, - 289, 473, 932, 897, 0, 593, 0, 70, 898, 71, - 72, 73, 0, 899, 222, 223, 0, 224, 0, 0, - 219, 473, 225, 473, 226, 0, 219, 0, 623, 0, - 444, 0, 220, 221, 0, 684, 0, 80, 220, 221, - 0, 0, 624, 788, 283, 0, 0, 625, 0, 1407, - 0, 0, 626, 266, 472, 474, 588, 474, 472, 0, - 0, 229, 759, 339, 340, 0, 0, 640, 6, 488, - 223, 0, 224, 82, 83, 222, 223, 225, 224, 226, - 473, 0, 0, 225, 473, 226, 0, 0, 0, 0, - 88, 0, 0, 0, 0, 90, 0, 1457, 1458, 0, - 1459, 0, 1460, 0, 341, 0, 290, 70, 0, 71, - 72, 73, 74, 227, 474, 723, 342, 228, 474, 77, - 0, 592, 229, 78, 0, 747, 0, 0, 939, 0, - 79, 0, 0, 232, 0, 0, 759, 80, 592, 592, - 592, 0, 0, 0, 0, 0, 0, 0, 1500, 0, - 571, 0, 472, 81, 0, 0, 270, 0, 0, 0, - 0, 0, 0, 0, 70, 343, 71, 72, 73, 0, - 0, 0, 0, 82, 83, 0, 297, 0, 473, 84, - 0, 0, 0, 0, 0, 0, 789, 344, 345, 87, - 88, 0, 0, 89, 80, 90, 321, 0, 0, 775, - 640, 0, 0, 0, 0, 0, 336, 0, 0, 0, - 266, 0, 474, 0, 592, 776, 347, 0, 0, 0, - 0, 592, 472, 0, 788, 788, 788, 592, 592, 777, - 82, 83, 0, 0, 0, 0, 0, 0, 827, 0, - 0, 1079, 778, 779, 0, 0, 0, 88, 473, 0, - 0, 390, 90, 0, 393, 0, 0, 0, 780, 0, - 0, 0, 0, 842, 843, 844, 845, 0, 848, 1561, - 1562, 1563, 0, 1564, 70, 187, 71, 72, 73, 716, - 0, 592, 474, 0, 592, 0, 734, 0, 0, 781, - 0, 0, 782, 0, 0, 783, 0, 0, 0, 409, - 410, 1332, 0, 0, 80, 0, 0, 0, 0, 0, - 0, 784, 0, 764, 0, 765, 0, 766, 0, 592, - 266, 0, 0, 785, 0, 0, 216, 217, 218, 0, - 0, 0, 0, 0, 592, 788, 0, 786, 938, 944, - 82, 83, 0, 0, 788, 446, 0, 0, 0, 945, - 946, 947, 948, 949, 950, 951, 952, 88, 0, 0, - 0, 0, 90, 490, 0, 492, 953, 0, 954, 955, - 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, - 219, 0, 502, 0, 503, 504, 505, 506, 507, 508, - 0, 0, 220, 221, 0, 0, 0, 0, 966, 0, - 0, 0, 640, 0, 0, 0, 518, 0, 0, 0, - 0, 0, 640, 0, 0, 526, 1026, 0, 529, 0, - 0, 0, 0, 0, 335, 0, 537, 0, 0, 222, - 223, 0, 224, 1044, 846, 0, 0, 225, 0, 226, - 0, 0, 967, 0, 1049, 1050, 1051, 1052, 1053, 1054, - 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, - 1065, 1066, 1067, 1068, 1069, 573, 1072, 0, 0, 577, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 968, 232, 0, 969, 0, 970, 971, 972, 973, - 974, 975, 976, 977, 978, 979, 980, 0, 981, 982, - 0, 0, 983, 235, 236, 237, 238, 239, 240, 241, - 242, 0, 640, 0, 0, 0, 0, 0, 0, 602, - 243, 0, 0, 0, 0, 0, 0, 938, 0, 0, - 1332, 1332, 1332, 1332, 1332, 297, 1332, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 642, 0, 0, - 0, 237, 238, 239, 240, 241, 242, 297, 0, 0, - 0, 0, 0, 0, 0, 297, 243, 235, 236, 237, - 238, 239, 240, 241, 242, 1401, 1402, 1403, 1404, 1405, - 0, 1408, 0, 640, 243, 1258, 0, 0, 0, 0, - 0, 0, 1034, 1035, 1036, 0, 1038, 0, 1041, 1042, - 1043, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 761, 0, 0, 0, 0, 1332, 1332, 1332, 1332, 1332, - 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, - 1332, 1332, 1332, 1332, 0, 0, 0, 1302, 0, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 0, 255, 256, 257, 0, 0, 0, 596, 0, 409, - 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, - 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 0, - 7, 8, 9, 10, 1332, 11, 12, 13, 247, 248, - 249, 250, 251, 252, 253, 254, 0, 255, 256, 257, - 0, 0, 813, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 0, 255, 256, 257, 0, 0, - 297, 1305, 0, 0, 0, 0, 0, 1318, 0, 1534, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1319, - 0, 1332, 0, 0, 1320, 0, 0, 216, 217, 218, - 0, 0, 23, 24, 0, 0, 0, 0, 26, 0, - 0, 0, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 0, 892, 0, - 0, 0, 0, 0, 0, 0, 1554, 0, 45, 0, - 46, 0, 0, 0, 0, 1321, 0, 0, 0, 1322, - 0, 219, 1323, 0, 0, 0, 0, 52, 0, 0, - 927, 0, 0, 220, 221, 7, 8, 9, 10, 0, - 11, 12, 13, 200, 68, 0, 0, 0, 0, 0, - 0, 0, 1324, 0, 0, 1325, 1326, 1327, 0, 0, - 1328, 1350, 1329, 62, 0, 0, 1330, 0, 297, 0, - 222, 223, 1317, 224, 0, 0, 0, 0, 225, 0, - 226, 0, 15, 69, 0, 0, 201, 0, 202, 203, - 204, 74, 75, 0, 20, 76, 0, 0, 205, 22, - 0, 0, 78, 0, 320, 0, 0, 23, 24, 206, - 0, 0, 0, 26, 0, 1383, 207, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 208, 0, 0, 0, 0, 0, 0, 0, - 0, 44, 0, 45, 0, 46, 0, 0, 0, 0, - 47, 0, 209, 210, 50, 0, 0, 51, 84, 0, - 0, 938, 52, 0, 0, 53, 85, 86, 87, 211, - 0, 0, 89, 0, 212, 0, 0, 0, 0, 339, - 340, 0, 1092, 0, 0, 0, 0, 56, 0, 0, - 57, 58, 59, 0, 0, 60, 0, 61, 62, 0, - 0, 63, 0, 0, 652, 653, 654, 10, 0, 11, - 655, 656, 67, 68, 0, 0, 657, 0, 0, 0, - 341, 0, 0, 70, 0, 71, 72, 73, 74, 0, - 0, 0, 342, 0, 0, 77, 0, 0, 0, 78, - 0, 1501, 0, 0, 0, 0, 79, 0, 464, 0, - 0, 658, 69, 80, 0, 70, 0, 71, 72, 73, - 74, 465, 0, 659, 76, 0, 0, 77, 660, 81, - 0, 78, 0, 0, 0, 0, 661, 662, 79, 0, - 0, 343, 0, 0, 0, 80, 0, 0, 0, 82, - 83, 0, 0, 0, 0, 84, 0, 0, 0, 1269, - 0, 81, 0, 344, 345, 87, 88, 0, 1406, 89, - 663, 90, 664, 0, 665, 0, 346, 0, 466, 666, - 0, 82, 83, 667, 0, 0, 668, 84, 0, 0, - 1296, 669, 347, 0, 670, 85, 86, 87, 88, 0, - 0, 89, 0, 90, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 671, 0, 0, 672, - 673, 0, 0, 0, 674, 0, 675, 0, 0, 0, - 676, 0, 0, 1470, 1471, 1472, 1473, 0, 1476, 1477, + 6, 215, 329, 308, 331, 682, 1246, 643, 924, 509, + 285, 183, 903, 712, 613, 395, 185, 353, 497, 1354, + 354, 799, 718, 617, 609, 355, 790, 850, 362, 835, + 364, 365, 366, 367, 411, 369, 184, 371, 772, 373, + 264, 717, 292, 678, 718, 148, 644, 104, 908, 259, + 407, 260, 556, 516, 650, 389, 412, 1112, 287, 288, + 289, 234, 992, 149, 637, 407, 397, 398, 150, 408, + -757, 557, -758, 404, 405, 1113, 810, 942, 943, 151, + 985, 986, 987, 988, 594, 407, 152, 820, 773, 244, + 284, 284, 153, -759, -760, 607, 791, 912, 294, 914, + 915, 916, 917, 918, 1045, 1019, 1074, 265, 154, 356, + 407, 302, 303, 304, 358, 305, 307, 309, 156, 407, + 313, 268, 269, 270, 775, 1075, 407, 320, 273, 1259, + 215, 860, 326, 327, 357, 330, 333, 334, 1260, 338, + 339, -757, 1006, -758, -757, 1261, -758, 361, 361, 155, + 361, 361, 361, 361, 407, 361, 618, 361, 157, 361, + 851, 290, 1416, 158, -759, -760, 801, -759, -760, 719, + 413, 1355, 159, 1262, 353, 361, 682, 354, 822, 440, + 441, 823, 355, 294, 186, 809, 361, 361, 539, 686, + 160, 719, 407, 361, 361, 457, 459, 438, 291, 1383, + 274, 161, 275, 796, 276, 353, 886, 994, 354, 353, + 1083, 1302, 354, 355, 1387, 905, 734, 355, 1384, 909, + 256, 257, 258, 814, 815, 816, 817, 818, 1022, 1390, + 259, 415, 260, 1388, 407, 407, 1101, 491, 1025, 162, + 407, 989, 990, 991, 1102, 1015, 1016, 277, 1391, 268, + 269, 270, 273, 1477, 1514, 995, 990, 991, 413, 1515, + 284, 284, 872, 873, 874, 163, 356, 1094, 164, 261, + 1249, 358, 572, 819, 165, 455, 284, 284, 455, 455, + 474, 1269, 809, 166, 996, 478, 629, 1105, 630, 407, + 631, 357, 262, 1426, 1427, 1428, 167, 356, 407, 901, + 538, 356, 358, 307, 313, 168, 358, 268, 1516, 499, + 1522, 447, 64, 448, 244, 449, 407, 1517, 1556, 407, + 6, 169, 357, 217, 218, 219, 357, 407, 278, 1523, + 407, 481, 407, 632, 827, 1533, 1007, 1557, 1567, 1107, + 1012, 170, 279, 1, 2, 3, 1568, 280, 10, 1569, + 11, 1570, 281, 1097, 171, 531, 294, 532, 450, 533, + 191, 682, 172, 519, 825, 520, 196, 197, 198, 199, + 200, 173, 1264, 235, 919, 920, 736, 220, 737, 738, + 739, 174, 1341, 885, -97, 1014, -97, 175, -97, 221, + 222, 176, 361, 1410, 1411, 1412, 1413, 1414, 1415, 678, + 187, 1098, 1023, -97, 188, -97, 192, -97, 1416, 1263, + 1256, 591, 193, 531, 633, 532, 406, 993, 1440, 607, + 797, 521, 1108, 1363, 1365, 1367, 223, 224, 634, 225, + 990, 991, 1253, 635, 226, 194, 227, 195, 636, 451, + 263, 253, 254, 255, 455, 256, 257, 258, 455, 455, + 455, 455, 455, 452, 990, 991, 1334, 272, 453, 607, + 798, 286, 455, 1271, 1272, 299, 455, 455, 587, 731, + 310, 628, 314, 230, 640, 472, 1369, 1370, 1371, 1085, + 758, 928, 929, 491, 709, 475, 814, 815, 816, 817, + 818, 809, 1021, 315, 683, 316, 649, 317, 473, 318, + 6, 819, 1024, 403, 1332, 1449, 319, 1450, 1336, 1451, + 1270, 710, 1452, 1453, 1454, 323, 1273, 1274, 1104, 920, + 353, 324, 481, 354, 732, 1110, 1111, 6, 355, 217, + 218, 219, 325, 1421, 1422, 1423, 1424, 1425, 525, 1426, + 1427, 1428, 990, 991, 328, 390, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 1072, 392, 439, 1352, + 393, 399, 413, 443, 445, -275, 482, 493, 494, 510, + 495, 512, 407, 220, 522, 523, 535, 415, 474, 787, + 540, 1412, 1413, 1414, 1415, 221, 222, 586, 527, 455, + 547, 554, 541, 542, 1416, 1338, 640, 543, 544, 498, + 628, 545, 356, 546, 847, 591, 548, 358, 549, 628, + 628, 628, 628, 628, 628, 415, 550, 551, 558, 183, + 903, 552, 223, 224, 185, 225, 415, 357, 511, 553, + 226, 555, 227, 559, 560, 6, 830, 574, 561, 562, + 563, 564, 565, 566, 184, 567, 568, 758, 569, 611, + 472, 575, 576, 758, 578, 579, 580, 731, 582, 731, + 731, 731, 731, 731, 709, 589, 583, 600, 596, 598, + -277, 607, 612, 473, 1023, 616, 1267, 875, 876, 472, + 642, 645, 758, 758, 6, 758, 758, 758, 758, 648, + 570, 997, 998, 684, 687, 711, 688, 628, 689, 1002, + 690, 1003, 473, 691, 1508, 474, 584, 585, 723, 474, + 692, 693, 732, 592, 732, 732, 732, 732, 732, 1421, + 1422, 1423, 1424, 1425, 714, 1426, 1427, 1428, 244, 735, + 759, 932, 183, 761, 939, 1435, 762, 185, 769, 771, + 1509, 1510, 1511, 767, 768, 787, 415, 792, 770, 1086, + 802, 1087, 1444, 1445, 1446, 682, 811, 184, 821, -366, + 287, 288, 289, 747, 1360, 824, 1361, 748, 847, 1089, + 828, 832, 833, 472, 834, 639, 836, 840, 841, 879, + 880, 849, 628, 881, 415, 415, 882, 883, 787, 481, + 884, 628, 887, 678, 793, 889, 473, 890, 640, 904, + 906, 907, 472, 1070, 910, 913, 921, 626, 640, 933, + 749, 934, 930, 941, 999, 1000, 1008, 794, 1033, 1001, + 1009, 1416, 1430, 722, 1004, 473, 1433, 809, 1010, 1504, + 1011, 1017, 1018, 746, 819, -284, 1507, 1027, 1030, 1037, + 1039, 758, 1512, 1513, 1044, 1073, 1076, 731, 1079, 1563, + 1080, 1081, 709, 251, 252, 253, 254, 255, 1571, 256, + 257, 258, 750, 290, 1092, 1093, 1248, 6, 1099, 1100, + 1078, 1114, 1115, 1103, 920, 758, 1250, 628, 584, 1109, + 1247, 1251, 330, 628, 628, 628, 628, 628, 628, 1096, + 1252, 751, 415, 788, 1258, 1535, 1416, 1266, 1538, 1275, + 472, 1276, 732, 1277, 472, 752, 1293, 639, 1288, 640, + 753, 1278, 474, 1289, 1265, 754, 1290, 242, 243, 1291, + 1292, 1502, 1296, 473, 939, 1294, 1298, 473, 244, 1297, + 1305, 1306, 1553, 1307, 287, 288, 289, 619, 217, 218, + 219, 620, 1308, 1310, 1311, 826, 795, 1562, 1423, 1424, + 1425, 1312, 1426, 1427, 1428, 1313, 804, 805, 806, 807, + 808, 1309, 183, 1331, 1335, 1339, 1373, 185, 1340, 1357, + 842, 843, 844, 845, 1350, 848, 472, 1346, 1414, 1415, + 640, 1343, 1344, 1358, 621, 1356, 1359, 184, 1372, 1416, + 1536, 1375, 220, 591, 1376, 284, 1378, 1377, 1380, 473, + 474, 1379, 415, 415, 221, 222, 474, 474, 1382, 1385, + 1389, 1386, 1392, 454, 456, 458, 460, 461, 1431, 1434, + 1393, 1421, 1422, 1423, 1424, 1425, 361, 1426, 1427, 1428, + 1394, 1395, 1399, 1436, 1438, 472, 1437, 290, 1441, 1442, + 1443, 223, 224, 900, 225, 938, 1447, 1448, 1460, 226, + 1461, 227, 1462, 251, 252, 253, 254, 255, 473, 256, + 257, 258, 1463, 1464, 1465, 622, 1466, 1467, 1468, 1473, + 1505, 1518, 1476, 1096, 1500, 1503, 1540, 1506, 1520, 623, + 1524, 1529, 628, 1521, 624, 1537, 1525, 1526, 591, 625, + 1539, 1542, 591, 1527, -276, 474, 287, 288, 289, 724, + 1530, 361, 361, 725, 1541, 1543, 1544, 472, 1545, 639, + 1546, 1547, 1548, 1550, 1421, 1422, 1423, 1424, 1425, 639, + 1426, 1427, 1428, 1026, 1549, 1552, 1554, 1555, 1013, 1564, + 473, 1565, 1566, 1572, 1573, 1342, 500, 1020, 831, 1351, + 1429, 1043, 515, 1090, 888, 1519, 726, 1314, 517, 1047, + 1349, 1345, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, + 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, + 1066, 1067, 1353, 1374, 1071, 588, 839, 0, 287, 288, + 289, 893, 599, 630, 0, 894, 602, 603, 604, 605, + 606, 0, 758, 0, 0, 472, 0, 0, 0, 290, + 608, 472, 472, 0, 614, 615, 0, 0, 0, 0, + 0, 932, 70, 233, 71, 72, 73, 0, 473, 0, + 639, 0, 0, 1084, 473, 473, 0, 727, 895, 0, + 804, 805, 806, 807, 808, 938, 271, 0, 0, 0, + 0, 728, 80, 0, 683, 0, 729, 0, 0, 0, + 0, 0, 787, 284, 0, 0, 298, 1406, 267, 0, + 214, 0, 0, 0, 474, 758, 474, 1408, 1409, 1410, + 1411, 1412, 1413, 1414, 1415, 0, 322, 6, 82, 83, + 0, 290, 0, 0, 1416, 0, 337, 0, 0, 1254, + 472, 639, 0, 1257, 0, 88, 0, 0, 0, 0, + 90, 0, 0, 0, 0, 1456, 1457, 0, 1458, 896, + 1459, 0, 0, 473, 0, 0, 0, 0, 0, 0, + 0, 0, 474, 897, 0, 0, 474, 1406, 898, 591, + 0, 391, 0, 899, 394, 1330, 939, 789, 0, 0, + 0, 0, 0, 0, 1300, 0, 591, 591, 591, 363, + 0, 0, 0, 1329, 368, 0, 370, 1498, 372, 0, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 0, 0, 0, 0, 0, + 409, 410, 0, 0, 0, 396, 0, 0, 0, 400, + 0, 401, 402, 0, 0, 0, 0, 0, 0, 0, + 0, 1532, 479, 1417, 1418, 1419, 1420, 436, 0, 1421, + 1422, 1423, 1424, 1425, 0, 1426, 1427, 1428, 0, 0, + 0, 474, 0, 591, 0, 0, 446, 0, 1020, 0, + 591, 0, 0, 787, 787, 787, 591, 591, 0, 472, + 0, 0, 0, 0, 490, 70, 492, 71, 72, 73, + 1078, 0, 0, 0, 0, 0, 0, 0, 0, 472, + 0, 472, 473, 502, 0, 503, 504, 505, 506, 507, + 508, 444, 0, 0, 0, 80, 1558, 1559, 1560, 0, + 1561, 0, 473, 0, 473, 0, 0, 518, 0, 591, + 474, 267, 591, 0, 0, 0, 526, 0, 0, 529, + 0, 0, 0, 0, 0, 0, 70, 537, 71, 72, + 73, 82, 83, 0, 0, 0, 0, 472, 266, 0, + 0, 472, 0, 0, 0, 0, 591, 0, 88, 0, + 0, 0, 0, 90, 0, 0, 80, 0, 0, 0, + 473, 591, 787, 0, 473, 0, 573, 0, 1348, 0, + 577, 787, 267, 0, 0, 238, 239, 240, 241, 242, + 243, 1330, 233, 1330, 1330, 1330, 1330, 1330, 0, 1330, + 244, 0, 82, 83, 0, 0, 0, 0, 0, 1398, + 0, 1400, 1401, 1402, 1403, 1404, 0, 1407, 0, 88, + 0, 571, 0, 0, 90, 0, 1300, 0, 0, 601, + 0, 1381, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 298, 472, 176, 0, 0, + 0, 1410, 1411, 1412, 1413, 1414, 1415, 641, 0, 0, + 0, 0, 0, 0, 0, 0, 1416, 298, 0, 473, + 0, 0, 0, 0, 0, 298, 0, 938, 0, 1330, + 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330, + 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1478, 1479, 1480, + 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, + 1491, 1492, 1493, 1494, 1495, 472, 0, 0, 0, 0, + 760, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 0, 256, 257, 258, 0, 217, 218, 219, 473, 0, + 0, 0, 0, 0, 0, 0, 0, 1330, 0, 715, + 0, 0, 0, 0, 0, 0, 733, 0, 1499, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 409, 0, + 0, 7, 8, 9, 10, 0, 11, 12, 13, 14, + 0, 0, 0, 763, 0, 764, 0, 765, 1420, 220, + 0, 1421, 1422, 1423, 1424, 1425, 0, 1426, 1427, 1428, + 1330, 221, 222, 1330, 237, 238, 239, 240, 241, 242, + 243, 812, 0, 0, 0, 0, 0, 0, 15, 0, + 244, 1551, 16, 0, 17, 18, 19, 0, 0, 298, + 20, 0, 743, 744, 21, 22, 0, 0, 223, 224, + 0, 225, 0, 23, 24, 25, 226, 0, 227, 26, + 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 0, + 0, 0, 0, 0, 0, 0, 228, 44, 0, 45, + 229, 46, 0, 0, 0, 230, 47, 892, 48, 49, + 50, 0, 0, 51, 0, 0, 0, 0, 52, 0, + 0, 53, 0, 846, 0, 54, 0, 0, 0, 0, + 55, 0, 0, 0, 0, 745, 0, 0, 0, 927, + 0, 0, 0, 56, 0, 0, 57, 58, 59, 0, + 0, 60, 0, 61, 62, 0, 0, 63, 0, 0, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 0, 256, 257, 258, 0, 0, 0, 298, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, - 1127, 0, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, - 1136, 1137, 1138, 927, 0, 0, 0, 0, 0, 0, + 0, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, + 1136, 1137, 0, 0, 0, 0, 0, 0, 0, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, - 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 0, - 0, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, - 1167, 1168, 1169, 1170, 1171, 1172, 0, 1173, 0, 1174, - 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 0, 1183, - 1184, 1185, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1186, 0, 0, - 0, 0, 0, 0, 1187, 1188, 1189, 0, 1190, 1191, + 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 0, 0, + 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, + 1167, 1168, 1169, 1170, 1171, 0, 1172, 0, 1173, 1174, + 1175, 1176, 1177, 1178, 1179, 1180, 1181, 0, 1182, 1183, + 1184, 0, 0, 1068, 0, 240, 241, 242, 243, 0, + 0, 1034, 1035, 1036, 0, 1038, 1185, 1040, 244, 1041, + 1042, 0, 1091, 1186, 1187, 1188, 0, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, - 1222, 0, 0, 0, 1223, 1224, 1225, 1226, 1227, 1228, + 0, 0, 0, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, - 1239, 1240, 1241, 1242, 1243, 1440, 1244, 1245, 1117, 1118, - 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 0, - 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, - 1138, 0, 0, 0, 0, 1370, 0, 0, 1139, 1140, - 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, - 1151, 1152, 1153, 1154, 1155, 1156, 1157, 0, 0, 1158, - 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, - 1169, 1170, 1171, 1172, 0, 1173, 0, 1174, 1175, 1176, - 1177, 1178, 1179, 1180, 1181, 1182, 0, 1183, 1184, 1185, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1186, 0, 0, 0, 0, - 0, 0, 1187, 1188, 1189, 0, 1190, 1191, 1192, 1193, - 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, - 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, - 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 0, - 0, 0, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, - 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, - 1241, 1242, 1243, 0, 1244, 1245, 7, 8, 9, 10, - 0, 11, 12, 13, 496, 0, 0, 0, 0, 0, + 1239, 1240, 1241, 1242, 1439, 1243, 1244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 235, 236, 237, 238, 239, 240, 241, 242, 0, - 0, 0, 0, 15, 341, 1530, 0, 201, 243, 202, - 203, 204, 74, 0, 0, 20, 342, 0, 0, 205, - 22, 0, 0, 78, 0, 0, 0, 0, 23, 24, - 206, 0, 0, 0, 26, 0, 0, 207, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 208, 0, 0, 0, 0, 0, 0, - 0, 0, 44, 0, 45, 0, 46, 0, 0, 0, - 0, 47, 0, 209, 210, 50, 0, 0, 51, 84, - 0, 0, 0, 52, 0, 0, 53, 344, 345, 87, - 211, 0, 0, 89, 0, 212, 7, 8, 9, 10, - 0, 11, 12, 13, 14, 0, 0, 0, 56, 0, - 0, 57, 58, 59, 0, 0, 60, 0, 61, 62, - 0, 0, 63, 0, 0, 0, 0, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 0, 255, - 256, 257, 0, 15, 0, 1537, 0, 16, 0, 17, - 18, 19, 0, 0, 0, 20, 0, 744, 745, 21, - 22, 0, 0, 0, 0, 0, 0, 0, 23, 24, - 25, 0, 0, 0, 26, 0, 0, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, - 0, 0, 44, 0, 45, 0, 46, 0, 0, 0, - 0, 47, 0, 48, 49, 50, 0, 0, 51, 0, - 0, 0, 0, 52, 0, 0, 53, 0, 0, 0, - 54, 7, 8, 9, 10, 55, 11, 12, 13, 14, - 746, 0, 0, 0, 0, 0, 0, 0, 56, 0, - 0, 57, 58, 59, 0, 0, 60, 0, 61, 62, - 0, 0, 63, 236, 237, 238, 239, 240, 241, 242, - 0, 0, 0, 0, 0, 0, 0, 0, 15, 243, - 0, 0, 16, 0, 17, 18, 19, 0, 0, 0, - 20, 0, 0, 0, 21, 22, 0, 0, 0, 0, - 0, 0, 0, 23, 24, 25, 0, 0, 0, 26, - 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 0, - 0, 0, 0, 0, 0, 0, 0, 44, 0, 45, - 0, 46, 0, 0, 0, 0, 47, 0, 48, 49, - 50, 0, 0, 51, 0, 0, 0, 0, 52, 0, - 0, 53, 0, 0, 0, 54, 7, 8, 9, 10, - 55, 11, 12, 13, 14, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 0, 0, 57, 58, 59, 0, - 0, 60, 0, 61, 62, 437, 0, 63, 0, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 0, - 255, 256, 257, 15, 442, 0, 0, 16, 0, 17, - 18, 19, 0, 0, 0, 20, 0, 0, 0, 21, - 22, 0, 0, 0, 0, 0, 0, 0, 23, 24, - 25, 0, 0, 0, 26, 0, 0, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, - 0, 0, 44, 0, 45, 0, 46, 0, 0, 0, - 0, 47, 0, 48, 49, 50, 0, 0, 51, 0, - 0, 0, 0, 52, 0, 0, 53, 0, 0, 0, - 54, 7, 8, 9, 10, 55, 11, 12, 13, 14, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, - 0, 57, 58, 59, 0, 0, 60, 0, 61, 62, - 0, 0, 63, 0, 0, 0, 235, 236, 237, 238, - 239, 240, 241, 242, 0, 0, 0, 0, 15, 722, - 0, 0, 16, 243, 17, 18, 19, 0, 0, 0, - 20, 0, 0, 0, 21, 22, 0, 0, 0, 0, - 0, 0, 0, 23, 24, 25, 0, 0, 0, 26, - 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 0, - 0, 0, 0, 0, 0, 0, 0, 44, 0, 45, - 0, 46, 0, 0, 0, 0, 47, 0, 48, 49, - 50, 0, 0, 51, 0, 0, 0, 0, 52, 0, - 0, 53, 0, 0, 0, 54, 7, 8, 9, 10, - 55, 11, 12, 13, 14, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 0, 0, 57, 58, 59, 0, - 0, 60, 0, 61, 62, 0, 0, 63, 0, 0, - 594, 0, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 15, 255, 256, 257, 16, 0, 17, - 18, 19, 0, 0, 0, 20, 0, 0, 0, 21, - 22, 0, 0, 0, 0, 0, 0, 0, 23, 24, - 25, 0, 0, 0, 26, 0, 0, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, - 0, 0, 44, 0, 45, 0, 46, 0, 0, 0, - 0, 47, 0, 48, 49, 50, 0, 0, 51, 0, - 0, 0, 0, 52, 0, 0, 53, 0, 0, 0, - 54, 7, 8, 9, 10, 55, 11, 12, 13, 14, - 935, 0, 0, 0, 0, 0, 0, 0, 56, 0, - 0, 57, 58, 59, 0, 0, 60, 0, 61, 62, - 0, 0, 63, 0, 0, 0, 235, 236, 237, 238, - 239, 240, 241, 242, 0, 0, 0, 0, 15, 0, - 0, 0, 16, 243, 17, 18, 19, 0, 0, 0, - 20, 0, 0, 0, 21, 22, 0, 0, 0, 0, - 0, 0, 0, 23, 24, 25, 0, 0, 0, 26, - 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 0, - 0, 0, 0, 0, 0, 0, 0, 44, 0, 45, - 0, 46, 0, 0, 0, 0, 47, 0, 48, 49, - 50, 0, 0, 51, 0, 0, 0, 0, 52, 0, - 0, 53, 0, 0, 0, 54, 7, 8, 9, 10, - 55, 11, 12, 13, 14, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 0, 0, 57, 58, 59, 0, - 0, 60, 0, 61, 62, 1070, 0, 63, 0, 940, - 0, 0, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 15, 255, 256, 257, 16, 0, 17, - 18, 19, 0, 0, 0, 20, 0, 0, 0, 21, - 22, 0, 0, 0, 0, 0, 0, 0, 23, 24, - 25, 0, 0, 0, 26, 0, 0, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, - 0, 0, 44, 0, 45, 0, 46, 0, 0, 0, - 0, 47, 0, 48, 49, 50, 0, 0, 51, 0, - 0, 0, 0, 52, 0, 0, 53, 0, 0, 0, - 54, 7, 8, 9, 10, 55, 11, 12, 13, 14, - 1349, 0, 0, 0, 0, 0, 0, 0, 56, 0, - 0, 57, 58, 59, 0, 0, 60, 0, 61, 62, - 0, 0, 63, 0, 0, 0, 235, 236, 237, 238, - 239, 240, 241, 242, 0, 0, 0, 0, 15, 0, - 0, 0, 16, 243, 17, 18, 19, 0, 0, 0, - 20, 0, 0, 0, 21, 22, 0, 0, 0, 0, - 0, 0, 0, 23, 24, 25, 0, 0, 0, 26, - 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 0, - 0, 0, 0, 0, 0, 0, 0, 44, 0, 45, - 0, 46, 0, 0, 0, 0, 47, 0, 48, 49, - 50, 0, 0, 51, 0, 0, 0, 0, 52, 0, - 0, 53, 0, 0, 0, 54, 7, 8, 9, 10, - 55, 11, 12, 13, 14, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 0, 0, 57, 58, 59, 0, - 0, 60, 0, 61, 62, 1499, 0, 63, 1280, 0, - 0, 0, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 15, 255, 256, 257, 16, 0, 17, - 18, 19, 0, 0, 0, 20, 0, 0, 0, 21, - 22, 0, 0, 0, 0, 0, 0, 0, 23, 24, - 25, 0, 0, 0, 26, 0, 0, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, - 0, 0, 44, 0, 45, 0, 46, 483, 484, 485, - 0, 47, 0, 48, 49, 50, 0, 0, 51, 0, - 0, 0, 0, 52, 0, 0, 53, 0, 0, 0, - 54, 652, 653, 654, 10, 55, 11, 655, 656, 67, - 68, 0, 0, 1047, 486, 0, 487, 0, 56, 0, - 0, 57, 58, 59, 0, 0, 60, 0, 61, 62, - 0, 219, 63, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 220, 221, 464, 0, 0, 658, 69, - 0, 0, 70, 0, 71, 72, 73, 74, 465, 0, - 659, 76, 0, 0, 77, 660, 0, 0, 78, 0, - 0, 0, 0, 661, 662, 79, 0, 0, 0, 0, - 488, 223, 80, 224, 0, 0, 0, 0, 225, 0, - 226, 0, 0, 0, 0, 513, 514, 0, 81, 0, - 0, 0, 0, 0, 0, 0, 0, 663, 0, 664, - 0, 665, 0, 0, 489, 466, 666, 0, 82, 83, - 667, 0, 0, 668, 84, 0, 0, 0, 669, 0, - 0, 670, 85, 86, 87, 88, 341, 0, 89, 70, - 90, 71, 72, 73, 74, 0, 0, 0, 342, 0, - 0, 77, 0, 671, 0, 78, 672, 673, 0, 0, - 0, 674, 79, 675, 0, 0, 0, 676, 0, 80, - 235, 236, 237, 238, 239, 240, 241, 242, 0, 0, - 0, 0, 0, 0, 0, 81, 0, 243, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 343, 0, 0, - 0, 0, 0, 0, 0, 82, 83, 0, 0, 0, - 0, 84, 70, 0, 71, 72, 73, 0, 0, 344, - 345, 87, 88, 0, 265, 89, 0, 90, 235, 236, - 237, 238, 239, 240, 241, 242, 0, 0, 0, 0, - 0, 0, 80, 0, 0, 243, 0, 0, 347, 235, - 236, 237, 238, 239, 240, 241, 242, 0, 266, 0, - 0, 0, 0, 0, 0, 0, 243, 235, 236, 237, - 238, 239, 240, 241, 242, 0, 0, 0, 82, 83, - 0, 0, 0, 0, 243, 0, 235, 236, 237, 238, - 239, 240, 241, 242, 0, 88, 0, 0, 0, 0, - 90, 0, 697, 243, 0, 0, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 0, 255, 256, - 257, 698, 235, 236, 237, 238, 239, 240, 241, 242, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, - 235, 236, 237, 238, 239, 240, 241, 242, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 243, 0, 0, - 0, 0, 0, 0, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 0, 255, 256, 257, 582, - 0, 0, 0, 0, 0, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 0, 255, 256, 257, - 598, 0, 0, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 0, 255, 256, 257, 686, 0, - 0, 0, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 0, 255, 256, 257, 767, 235, 236, - 237, 238, 239, 240, 241, 242, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 243, 0, 0, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 0, - 255, 256, 257, 911, 0, 0, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 0, 255, 256, - 257, 1028, 235, 236, 237, 238, 239, 240, 241, 242, - 0, 0, 216, 217, 218, 0, 216, 217, 218, 243, - 235, 236, 237, 238, 239, 240, 241, 242, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 243, 852, 853, - 854, 855, 856, 857, 858, 859, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 860, 1409, 1410, 1411, 1412, - 1413, 1414, 1415, 1416, 0, 0, 219, 0, 0, 0, - 219, 0, 0, 1417, 0, 0, 0, 0, 220, 221, - 0, 0, 220, 221, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 0, 255, 256, 257, 1301, - 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 0, 0, - 0, 0, 0, 0, 0, 222, 223, 1417, 224, 222, - 223, 0, 224, 225, 0, 226, 0, 225, 0, 226, - 0, 0, 0, 0, 0, 0, 1303, 0, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 501, - 255, 256, 257, 0, 0, 0, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 0, 255, 256, - 257, 0, 0, 0, 861, 862, 863, 864, 865, 866, - 867, 868, 869, 870, 871, 0, 872, 873, 874, 0, - 1535, 0, 1418, 1419, 1420, 1421, 0, 0, 1422, 1423, - 1424, 1425, 1426, 0, 1427, 1428, 1429, -2, 0, 0, - 0, 0, 0, 0, 0, 0, 1410, 1411, 1412, 1413, - 1414, 1415, 1416, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1417, 0, 0, 0, 1418, 1419, 1420, 1421, - 0, 0, 1422, 1423, 1424, 1425, 1426, 0, 1427, 1428, - 1429, 0, 0, 0, 105, 0, 106, 0, 0, 107, - 108, 0, 0, 0, 0, 0, 0, 109, 110, 0, - 0, 0, 0, 0, 0, 0, 111, 0, 112, 113, - 114, 115, 0, 0, 0, 116, 0, 0, 0, 0, - 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, - 120, 121, 122, 123, 124, 125, 0, 0, 0, 0, - 0, 126, 127, 128, 129, 0, 0, 0, 0, 0, - 130, 131, 67, 68, 132, 133, 462, 0, 463, 134, - 0, 0, 0, 0, 0, 135, 136, 0, 137, 0, - 0, 0, 1419, 1420, 1421, 0, 138, 1422, 1423, 1424, - 1425, 1426, 0, 1427, 1428, 1429, 0, 0, 464, 0, - 0, 0, 69, 0, 0, 70, 0, 71, 72, 73, - 74, 465, 0, 0, 76, 0, 0, 77, 0, 0, - 0, 78, 237, 238, 239, 240, 241, 242, 79, 0, - 0, 0, 0, 0, 0, 80, 0, 243, 237, 238, - 239, 240, 241, 242, 0, 0, 0, 0, 0, 0, - 0, 81, 0, 243, 1411, 1412, 1413, 1414, 1415, 1416, - 0, 0, 0, 0, 0, 0, 0, 0, 466, 1417, - 0, 82, 83, 0, 0, 0, 0, 84, 0, 237, - 238, 239, 240, 241, 242, 85, 86, 87, 88, 0, - 0, 89, 0, 90, 243, 1411, 1412, 1413, 1414, 1415, - 1416, 0, 0, 0, 0, 0, 467, 0, 0, 0, - 1417, 468, 1411, 1412, 1413, 1414, 1415, 1416, 0, 0, - 0, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 0, 0, - 0, 0, 0, 0, 0, 0, 1417, 239, 240, 241, - 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 243, 0, 0, 0, 0, 0, 0, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 0, 255, 256, - 257, 0, 0, 0, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 0, 255, 256, 257, 0, 0, 1419, - 1420, 1421, 0, 0, 1422, 1423, 1424, 1425, 1426, 0, - 1427, 1428, 1429, 1413, 1414, 1415, 1416, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1417, 248, 249, 250, - 251, 252, 253, 254, 0, 255, 256, 257, 0, 0, - 0, 1420, 1421, 0, 0, 1422, 1423, 1424, 1425, 1426, - 0, 1427, 1428, 1429, 0, 0, 0, 0, 0, 1421, - 305, 0, 1422, 1423, 1424, 1425, 1426, 0, 1427, 1428, - 1429, 1422, 1423, 1424, 1425, 1426, 775, 1427, 1428, 1429, - 0, 0, 0, 248, 249, 250, 251, 252, 253, 254, - 0, 255, 256, 257, 0, 0, 0, 0, 0, 0, - 0, 105, 0, 106, 0, 0, 777, 108, 0, 0, - 0, 0, 0, 0, 109, 110, 0, 0, 0, 778, - 779, 0, 0, 0, 0, 112, 113, 114, 0, 0, - 0, 0, 305, 0, 0, 780, 0, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1422, 1423, 1424, 1425, 1426, 0, 1427, 1428, 1429, - 0, 124, 0, 0, 0, 0, 781, 0, 0, 782, - 0, 129, 783, 105, 0, 106, 0, 130, 0, 108, - 0, 132, 133, 699, 700, 701, 109, 110, 784, 0, - 0, 0, 0, 136, 0, 137, 0, 112, 299, 114, - 785, 0, 0, 0, 0, 0, 0, 0, 0, 300, - 0, 0, 0, 0, 786, 0, 0, 0, 0, 0, - 0, 0, 399, 67, 68, 0, 0, 70, 0, 71, - 72, 73, 0, 124, 0, 0, 0, 0, 0, 77, - 0, 0, 0, 129, 0, 0, 0, 0, 0, 130, - 79, 1040, 67, 68, 133, 0, 0, 80, 0, 0, - 0, 0, 0, 69, 0, 136, 70, 137, 71, 72, - 73, 74, 75, 81, 0, 76, 0, 0, 77, 0, - 0, 0, 78, 0, 0, 0, 0, 0, 0, 79, - 0, 0, 69, 82, 83, 70, 80, 71, 72, 73, - 74, 75, 0, 0, 76, 0, 0, 77, 0, 0, - 88, 78, 81, 89, 0, 90, 0, 0, 79, 0, - 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, - 0, 0, 82, 83, 216, 217, 218, 0, 84, 0, - 0, 81, 0, 1475, 67, 68, 85, 86, 87, 88, - 0, 0, 89, 0, 90, 0, 0, 0, 0, 0, - 0, 82, 83, 0, 0, 0, 0, 84, 0, 0, - 0, 0, 699, 700, 701, 85, 86, 87, 88, 0, - 0, 89, 0, 90, 69, 0, 0, 70, 219, 71, - 72, 73, 74, 75, 0, 0, 76, 0, 0, 77, - 220, 221, 0, 78, 0, 0, 0, 0, 0, 0, - 79, 0, 0, 0, 0, 0, 70, 80, 71, 72, - 73, 702, 703, 0, 0, 0, 0, 0, 77, 0, - 0, 0, 0, 81, 0, 0, 0, 222, 223, 79, - 224, 0, 0, 0, 0, 225, 80, 226, 0, 0, - 0, 0, 0, 82, 83, 0, 0, 0, 1284, 84, - 0, 0, 81, 216, 217, 218, 0, 85, 86, 87, - 88, 0, 0, 89, 0, 90, 67, 68, 0, 0, - 462, 0, 82, 83, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 704, 0, 0, 88, - 0, 0, 89, 0, 90, 67, 68, 0, 0, 801, - 0, 0, 464, 0, 0, 0, 69, 219, 0, 70, - 0, 71, 72, 73, 74, 465, 0, 0, 76, 220, - 221, 77, 0, 0, 0, 78, 0, 0, 0, 0, - 0, 464, 79, 0, 0, 69, 0, 0, 70, 80, - 71, 72, 73, 74, 465, 0, 0, 76, 0, 0, - 77, 0, 0, 0, 78, 81, 222, 1281, 1282, 1283, - 0, 79, 0, 0, 225, 0, 226, 0, 80, 0, - 0, 0, 466, 0, 0, 82, 83, 1284, 0, 0, - 0, 84, 1285, 0, 81, 0, 0, 67, 68, 85, - 86, 87, 88, 0, 0, 89, 0, 90, 0, 0, - 0, 466, 0, 0, 82, 83, 0, 0, 0, 0, - 84, 70, 0, 71, 72, 73, 67, 68, 85, 86, - 87, 88, 0, 464, 89, 0, 90, 69, 0, 0, + 0, 238, 239, 240, 241, 242, 243, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 244, 0, 0, 1268, + 0, 249, 250, 251, 252, 253, 254, 255, 0, 256, + 257, 258, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1295, 0, 0, 0, 0, 0, 1116, 1117, 1118, 1119, + 1120, 1121, 1122, 1123, 1124, 1125, 1126, 0, 1127, 1128, + 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 0, + 0, 0, 0, 0, 0, 0, 1138, 1139, 1140, 1141, + 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, + 1152, 1153, 1154, 1155, 1156, 0, 0, 1157, 1158, 1159, + 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, + 1170, 1171, 927, 1172, 0, 1173, 1174, 1175, 1176, 1177, + 1178, 1179, 1180, 1181, 0, 1182, 1183, 1184, 248, 249, + 250, 251, 252, 253, 254, 255, 0, 256, 257, 258, + 0, 1315, 0, 1185, 0, 0, 0, 0, 0, 0, + 1186, 1187, 1188, 0, 1189, 1190, 1191, 1192, 1193, 1194, + 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, + 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, + 1215, 1216, 1217, 1218, 1219, 1220, 1221, 0, 0, 0, + 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, + 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, + 1242, 0, 1243, 1244, 0, 7, 8, 9, 10, 0, + 11, 12, 13, 201, 68, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 236, 237, 238, + 239, 240, 241, 242, 243, 0, 0, 0, 0, 0, + 0, 0, 15, 69, 244, 0, 202, 0, 203, 204, + 205, 74, 75, 0, 20, 76, 0, 0, 206, 22, + 0, 0, 78, 0, 1368, 0, 0, 23, 24, 207, + 0, 0, 0, 26, 0, 0, 208, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 209, 0, 0, 0, 0, 0, 0, 0, + 0, 44, 0, 45, 0, 46, 0, 0, 0, 0, + 47, 0, 210, 211, 50, 0, 0, 51, 84, 0, + 0, 0, 52, 0, 0, 53, 85, 86, 87, 212, + 0, 0, 89, 0, 213, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, + 57, 58, 59, 0, 0, 60, 1405, 61, 62, 0, + 0, 63, 0, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 0, 256, 257, 258, 0, 0, + 0, 595, 0, 7, 8, 9, 10, 0, 11, 12, + 13, 496, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1496, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1469, 1470, 1471, 1472, 0, 1474, 0, 1475, 0, + 15, 342, 0, 0, 202, 0, 203, 204, 205, 74, + 0, 0, 20, 343, 0, 0, 206, 22, 0, 0, + 78, 0, 0, 0, 1528, 23, 24, 207, 0, 0, + 0, 26, 0, 0, 208, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 209, 0, 0, 0, 0, 0, 0, 0, 0, 44, + 0, 45, 0, 46, 0, 0, 0, 0, 47, 0, + 210, 211, 50, 0, 0, 51, 84, 0, 0, 0, + 52, 0, 0, 53, 345, 346, 87, 212, 0, 0, + 89, 0, 213, 0, 7, 8, 9, 10, 0, 11, + 12, 13, 14, 0, 0, 56, 189, 0, 57, 58, + 59, 0, 0, 60, 0, 61, 62, 0, 0, 63, + 0, 0, 0, 0, 0, 236, 237, 238, 239, 240, + 241, 242, 243, 0, 0, 0, 0, 0, 0, 0, + 0, 15, 244, 0, 0, 16, 0, 17, 18, 19, + 0, 0, 0, 20, 0, 0, 0, 21, 22, 0, + 0, 0, 0, 0, 0, 0, 23, 24, 25, 0, + 0, 0, 26, 0, 0, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, + 44, 0, 45, 0, 46, 0, 0, 0, 0, 47, + 0, 48, 49, 50, 0, 0, 51, 0, 0, 0, + 0, 52, 0, 0, 53, 0, 0, 0, 54, 7, + 8, 9, 10, 55, 11, 12, 13, 14, 0, 0, + 0, 0, 0, 0, 0, 0, 56, 0, 0, 57, + 58, 59, 0, 0, 60, 0, 190, 62, 0, 0, + 63, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 0, 256, 257, 258, 15, 0, 0, 1303, + 16, 0, 17, 18, 19, 0, 0, 0, 20, 0, + 0, 0, 21, 22, 0, 483, 484, 485, 0, 0, + 0, 23, 24, 25, 0, 0, 0, 26, 0, 0, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 0, 0, 0, + 0, 0, 0, 0, 0, 44, 0, 45, 0, 46, + 0, 0, 0, 0, 47, 0, 48, 49, 50, 220, + 0, 51, 0, 0, 0, 0, 52, 0, 0, 53, + 0, 221, 222, 54, 7, 8, 9, 10, 55, 11, + 12, 13, 14, 0, 0, 0, 0, 0, 0, 0, + 0, 56, 0, 0, 57, 58, 59, 0, 0, 60, + 0, 61, 62, 437, 0, 63, 0, 0, 488, 224, + 0, 225, 0, 0, 0, 0, 226, 0, 227, 0, + 0, 15, 442, 0, 0, 16, 0, 17, 18, 19, + 0, 0, 0, 20, 0, 0, 0, 21, 22, 0, + 0, 0, 0, 0, 0, 291, 23, 24, 25, 0, + 0, 0, 26, 0, 0, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, + 44, 0, 45, 0, 46, 0, 0, 0, 0, 47, + 0, 48, 49, 50, 0, 0, 51, 0, 0, 0, + 0, 52, 0, 0, 53, 0, 0, 0, 54, 7, + 8, 9, 10, 55, 11, 12, 13, 14, 0, 0, + 0, 0, 0, 0, 0, 0, 56, 0, 0, 57, + 58, 59, 0, 0, 60, 0, 61, 62, 0, 0, + 63, 0, 0, 0, 236, 237, 238, 239, 240, 241, + 242, 243, 0, 0, 0, 0, 15, 721, 0, 0, + 16, 244, 17, 18, 19, 0, 0, 0, 20, 0, + 0, 0, 21, 22, 0, 0, 0, 0, 0, 0, + 0, 23, 24, 25, 0, 0, 0, 26, 0, 0, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 0, 0, 0, + 0, 0, 0, 0, 0, 44, 0, 45, 0, 46, + 0, 0, 0, 0, 47, 0, 48, 49, 50, 0, + 0, 51, 0, 0, 0, 0, 52, 0, 0, 53, + 0, 0, 0, 54, 7, 8, 9, 10, 55, 11, + 12, 13, 14, 0, 0, 0, 0, 0, 0, 0, + 0, 56, 0, 0, 57, 58, 59, 0, 0, 60, + 0, 61, 62, 0, 0, 63, 0, 0, 593, 0, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 15, 256, 257, 258, 16, 0, 17, 18, 19, + 0, 0, 0, 20, 0, 0, 0, 21, 22, 0, + 0, 0, 0, 0, 0, 0, 23, 24, 25, 0, + 0, 0, 26, 0, 0, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, + 44, 0, 45, 0, 46, 0, 0, 0, 0, 47, + 0, 48, 49, 50, 0, 0, 51, 0, 0, 0, + 0, 52, 0, 0, 53, 0, 0, 0, 54, 7, + 8, 9, 10, 55, 11, 12, 13, 14, 935, 0, + 0, 0, 0, 0, 0, 0, 56, 0, 0, 57, + 58, 59, 0, 0, 60, 0, 61, 62, 0, 0, + 63, 0, 0, 0, 236, 237, 238, 239, 240, 241, + 242, 243, 0, 0, 0, 0, 15, 0, 0, 0, + 16, 244, 17, 18, 19, 0, 0, 0, 20, 0, + 0, 0, 21, 22, 0, 0, 0, 0, 0, 0, + 0, 23, 24, 25, 0, 0, 0, 26, 0, 0, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 0, 0, 0, + 0, 0, 0, 0, 0, 44, 0, 45, 0, 46, + 0, 0, 0, 0, 47, 0, 48, 49, 50, 0, + 0, 51, 0, 0, 0, 0, 52, 0, 0, 53, + 0, 0, 0, 54, 7, 8, 9, 10, 55, 11, + 12, 13, 14, 0, 0, 0, 0, 0, 0, 0, + 0, 56, 0, 0, 57, 58, 59, 0, 0, 60, + 0, 61, 62, 1069, 0, 63, 0, 940, 0, 0, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 15, 256, 257, 258, 16, 0, 17, 18, 19, + 0, 0, 0, 20, 0, 0, 0, 21, 22, 0, + 0, 0, 0, 0, 0, 0, 23, 24, 25, 0, + 0, 0, 26, 0, 0, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, + 44, 0, 45, 0, 46, 0, 0, 0, 0, 47, + 0, 48, 49, 50, 0, 0, 51, 0, 0, 0, + 0, 52, 0, 0, 53, 0, 0, 0, 54, 7, + 8, 9, 10, 55, 11, 12, 13, 14, 1347, 0, + 0, 0, 0, 0, 0, 0, 56, 0, 0, 57, + 58, 59, 0, 0, 60, 0, 61, 62, 0, 0, + 63, 0, 0, 0, 236, 237, 238, 239, 240, 241, + 242, 243, 0, 0, 0, 0, 15, 0, 0, 0, + 16, 244, 17, 18, 19, 0, 0, 0, 20, 0, + 0, 0, 21, 22, 0, 0, 0, 0, 0, 0, + 0, 23, 24, 25, 0, 0, 0, 26, 0, 0, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 0, 0, 0, + 0, 0, 0, 0, 0, 44, 0, 45, 0, 46, + 0, 0, 0, 0, 47, 0, 48, 49, 50, 0, + 0, 51, 0, 0, 0, 0, 52, 0, 0, 53, + 0, 0, 0, 54, 7, 8, 9, 10, 55, 11, + 12, 13, 14, 0, 0, 0, 0, 0, 0, 0, + 0, 56, 0, 0, 57, 58, 59, 0, 0, 60, + 0, 61, 62, 1497, 0, 63, 1279, 0, 0, 0, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 15, 256, 257, 258, 16, 0, 17, 18, 19, + 0, 0, 0, 20, 0, 0, 0, 21, 22, 0, + 0, 0, 0, 0, 0, 0, 23, 24, 25, 0, + 0, 0, 26, 0, 0, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, + 44, 0, 45, 0, 46, 483, 484, 485, 0, 47, + 0, 48, 49, 50, 0, 0, 51, 0, 0, 0, + 0, 52, 0, 0, 53, 0, 0, 0, 54, 651, + 652, 653, 10, 55, 11, 654, 655, 67, 68, 0, + 0, 656, 486, 0, 487, 0, 56, 0, 0, 57, + 58, 59, 0, 0, 60, 0, 61, 62, 0, 220, + 63, 236, 237, 238, 239, 240, 241, 242, 243, 0, + 0, 221, 222, 464, 0, 0, 657, 69, 244, 0, + 70, 0, 71, 72, 73, 74, 465, 0, 658, 76, + 0, 0, 77, 659, 0, 0, 78, 0, 0, 0, + 0, 660, 661, 79, 0, 0, 0, 0, 488, 224, + 80, 225, 0, 0, 0, 0, 226, 0, 227, 0, + 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, + 0, 0, 0, 0, 0, 662, 0, 663, 0, 664, + 0, 0, 489, 466, 665, 0, 82, 83, 666, 0, + 0, 667, 84, 0, 0, 0, 668, 0, 0, 669, + 85, 86, 87, 88, 0, 0, 89, 0, 90, 7, + 8, 9, 10, 0, 11, 12, 13, 14, 0, 0, + 0, 670, 0, 0, 671, 672, 0, 0, 0, 673, + 0, 674, 0, 0, 0, 675, 0, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 0, 256, + 257, 258, 0, 0, 0, 1534, 15, 0, 0, 0, + 16, 0, 17, 18, 19, 0, 0, 0, 20, 0, + 0, 0, 21, 22, 0, 0, 0, 0, 0, 0, + 0, 23, 24, 25, 0, 0, 0, 26, 0, 0, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 0, 0, 0, + 0, 0, 0, 0, 0, 44, 0, 45, 0, 46, + 217, 218, 219, 0, 47, 0, 48, 49, 50, 0, + 0, 51, 0, 0, 0, 0, 52, 0, 0, 53, + 0, 0, 0, 54, 651, 652, 653, 10, 55, 11, + 654, 655, 67, 68, 0, 0, 1046, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, + 0, 61, 62, 0, 220, 63, 236, 237, 238, 239, + 240, 241, 242, 243, 0, 0, 221, 222, 464, 0, + 0, 657, 69, 244, 0, 70, 0, 71, 72, 73, + 74, 465, 0, 658, 76, 0, 0, 77, 659, 0, + 0, 78, 0, 0, 0, 0, 660, 661, 79, 0, + 0, 0, 0, 223, 224, 80, 225, 0, 0, 0, + 0, 226, 0, 227, 0, 217, 218, 219, 0, 0, + 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, + 662, 0, 663, 0, 664, 0, 0, 321, 466, 665, + 0, 82, 83, 666, 0, 0, 667, 84, 0, 0, + 0, 668, 0, 0, 669, 85, 86, 87, 88, 0, + 0, 89, 0, 90, 0, 7, 8, 9, 10, 220, + 11, 12, 13, 0, 0, 0, 670, 1396, 0, 671, + 672, 221, 222, 0, 673, 0, 674, 0, 696, 0, + 675, 0, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 0, 256, 257, 258, 697, 0, 0, + 0, 0, 1316, 0, 0, 0, 0, 0, 223, 1280, + 1281, 1282, 0, 0, 1317, 0, 226, 0, 227, 1318, + 0, 0, 0, 0, 0, 0, 0, 23, 24, 1283, + 0, 0, 0, 26, 1284, 0, 0, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 0, 0, 0, 7, 8, 9, 10, 0, + 11, 12, 13, 45, 0, 46, 0, 0, 0, 0, + 1319, 0, 0, 0, 1320, 0, 0, 1321, 0, 0, + 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1316, 0, 0, 0, 0, 1322, 0, 0, + 1323, 1324, 1325, 0, 1317, 1326, 0, 1397, 62, 1318, + 0, 1328, 0, 0, 0, 0, 0, 23, 24, 0, + 0, 0, 0, 26, 0, 0, 0, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 0, 0, 0, 7, 8, 9, 10, 0, + 11, 12, 13, 45, 0, 46, 0, 0, 0, 0, + 1319, 0, 0, 0, 1320, 0, 0, 1321, 0, 0, + 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, + 0, 236, 237, 238, 239, 240, 241, 242, 243, 0, + 0, 0, 1316, 0, 0, 0, 0, 1322, 244, 0, + 1323, 1324, 1325, 0, 1317, 1326, 0, 1327, 62, 1318, + 0, 1328, 0, 0, 0, 0, 0, 23, 24, 0, + 0, 0, 0, 26, 0, 0, 0, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 651, 652, 653, 10, 0, 11, 654, 655, + 0, 0, 0, 45, 837, 46, 0, 0, 0, 0, + 1319, 0, 0, 0, 1320, 0, 0, 1321, 0, 774, + 0, 0, 52, 0, 0, 0, 0, 0, 0, 217, + 218, 219, 0, 0, 0, 775, 0, 0, 0, 657, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 776, + 0, 658, 0, 0, 0, 1326, 659, 1327, 62, 0, + 0, 1328, 777, 778, 660, 661, 0, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 779, 256, + 257, 258, 581, 220, 0, 0, 0, 236, 237, 238, + 239, 240, 241, 242, 243, 221, 222, 0, 662, 0, + 663, 0, 664, 0, 244, 0, 0, 665, 0, 780, + 0, 666, 781, 0, 667, 782, 0, 0, 0, 668, + 0, 0, 669, 0, 0, 0, 70, 0, 71, 72, + 73, 783, 223, 224, 0, 225, 0, 0, 266, 0, + 226, 0, 227, 784, 670, 0, 0, 671, 672, 944, + 0, 0, 673, 1283, 838, 0, 80, 785, 675, 945, + 946, 947, 948, 949, 950, 951, 952, 0, 0, 0, + 0, 0, 267, 0, 0, 0, 953, 0, 954, 955, + 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, + 0, 0, 82, 83, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 966, 88, + 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, + 0, 340, 341, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 0, 256, 257, 258, 597, 0, + 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 0, 0, + 0, 0, 967, 0, 0, 0, 0, 1416, 0, 0, + 0, 0, 342, 0, 0, 70, 0, 71, 72, 73, + 74, 0, 0, 0, 343, 0, 0, 77, 0, 0, + 0, 78, 698, 699, 700, 0, 0, 0, 79, 0, + 0, 968, 0, 0, 969, 80, 970, 971, 972, 973, + 974, 975, 976, 977, 978, 979, 980, 0, 981, 982, + 0, 81, 983, 340, 341, 0, 0, 0, 0, 0, + 0, 0, 0, 344, 0, 0, 70, 0, 71, 72, + 73, 82, 83, 0, 0, 0, 0, 84, 77, 0, + 0, 0, 0, 0, 0, 345, 346, 87, 88, 79, + 0, 89, 0, 90, 342, 0, 80, 70, 347, 71, + 72, 73, 74, 0, 0, 0, 343, 0, 0, 77, + 0, 0, 81, 78, 348, 774, 1417, 1418, 1419, 1420, + 79, 0, 1421, 1422, 1423, 1424, 1425, 80, 1426, 1427, + 1428, 0, 82, 83, 0, 0, 0, 0, 0, 0, + 513, 514, 0, 81, 0, 776, 0, 0, 0, 88, + 0, 0, 89, 0, 90, 344, 0, 0, 777, 778, + 0, 0, 0, 82, 83, 0, 0, 0, 0, 84, + 0, 0, 0, 0, 779, 0, 0, 345, 346, 87, + 88, 342, 0, 89, 70, 90, 71, 72, 73, 74, + 0, 0, 0, 343, 0, 0, 77, 0, 0, 0, + 78, 0, 0, 0, 0, 780, 348, 79, 781, 0, + 0, 782, 0, 0, 80, 236, 237, 238, 239, 240, + 241, 242, 243, 0, 0, 0, 0, 783, 0, 0, + 81, 0, 244, 0, 0, 0, 0, 0, 0, 784, + 0, 0, 344, 0, 0, 0, 0, 0, 0, 0, + 82, 83, 0, 785, 0, 0, 84, 0, 0, 0, + 0, 0, 0, 0, 345, 346, 87, 88, 0, 0, + 89, 0, 90, 236, 237, 238, 239, 240, 241, 242, + 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 244, 0, 0, 348, 236, 237, 238, 239, 240, 241, + 242, 243, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 244, 236, 237, 238, 239, 240, 241, 242, 243, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, + 236, 237, 238, 239, 240, 241, 242, 243, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 244, 0, 0, + 0, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 0, 256, 257, 258, 685, 236, 237, 238, + 239, 240, 241, 242, 243, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 244, 236, 237, 238, 239, 240, + 241, 242, 243, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 244, 0, 0, 0, 0, 0, 0, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 0, 256, 257, 258, 766, 0, 0, 0, 0, 0, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 0, 256, 257, 258, 911, 0, 0, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, + 256, 257, 258, 1028, 0, 0, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 0, 256, 257, + 258, 1299, 852, 853, 854, 855, 856, 857, 858, 859, + 0, 0, 0, 0, 0, 0, 217, 218, 219, 860, + 0, 1301, 0, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 0, 256, 257, 258, 0, 0, + 0, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, -2, 256, 257, 258, 0, 0, 0, 0, + 0, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 0, 0, + 220, 0, 0, 0, 0, 0, 0, 1416, 0, 0, + 0, 0, 221, 222, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, + 0, 106, 0, 0, 107, 108, 0, 0, 0, 0, + 0, 0, 109, 110, 336, 0, 0, 0, 0, 223, + 224, 111, 225, 112, 113, 114, 115, 226, 0, 227, + 116, 0, 0, 0, 0, 117, 0, 0, 861, 862, + 863, 864, 865, 866, 867, 868, 869, 870, 871, 0, + 872, 873, 874, 118, 119, 120, 121, 122, 123, 124, + 125, 0, 0, 0, 0, 0, 126, 127, 128, 129, + 0, 0, 0, 0, 0, 130, 131, 67, 68, 132, + 133, 462, 0, 463, 134, 0, 0, 0, 0, 0, + 135, 136, 0, 137, 0, 0, 0, 1418, 1419, 1420, + 0, 138, 1421, 1422, 1423, 1424, 1425, 0, 1426, 1427, + 1428, 0, 0, 464, 0, 0, 0, 69, 0, 0, 70, 0, 71, 72, 73, 74, 465, 0, 0, 76, - 0, 80, 77, 0, 0, 0, 78, 0, 0, 0, - 0, 0, 0, 79, 0, 0, 69, 266, 0, 70, - 80, 71, 72, 73, 74, 75, 0, 0, 76, 0, - 0, 77, 0, 0, 0, 78, 81, 82, 83, 0, + 0, 0, 77, 0, 0, 0, 78, 238, 239, 240, + 241, 242, 243, 79, 0, 70, 0, 71, 72, 73, + 80, 0, 244, 1410, 1411, 1412, 1413, 1414, 1415, 0, + 0, 0, 0, 0, 0, 0, 81, 0, 1416, 238, + 239, 240, 241, 242, 243, 80, 0, 0, 0, 0, + 0, 0, 0, 466, 244, 0, 82, 83, 0, 0, + 0, 267, 84, 0, 1410, 1411, 1412, 1413, 1414, 1415, + 85, 86, 87, 88, 0, 0, 89, 0, 90, 1416, + 0, 82, 83, 0, 0, 0, 0, 0, 0, 0, + 0, 467, 0, 0, 0, 0, 468, 0, 88, 0, + 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 217, 218, 219, 0, 187, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 0, 256, 257, 258, 0, 0, 1418, 1419, + 1420, 0, 0, 1421, 1422, 1423, 1424, 1425, 0, 1426, + 1427, 1428, 0, 0, 0, 306, 220, 249, 250, 251, + 252, 253, 254, 255, 0, 256, 257, 258, 221, 222, + 0, 0, 0, 0, 0, 0, 217, 218, 219, 0, + 1419, 1420, 306, 0, 1421, 1422, 1423, 1424, 1425, 0, + 1426, 1427, 1428, 0, 0, 0, 105, 0, 106, 0, + 0, 0, 108, 0, 0, 223, 224, 0, 225, 109, + 110, 0, 0, 226, 0, 227, 0, 0, 0, 0, + 112, 113, 114, 105, 0, 106, 0, 0, 0, 108, + 220, 0, 301, 0, 0, 0, 109, 110, 0, 501, + 0, 0, 221, 222, 0, 0, 0, 112, 300, 114, + 0, 0, 0, 217, 218, 219, 124, 0, 0, 301, + 0, 0, 698, 699, 700, 0, 129, 0, 0, 0, + 0, 0, 130, 0, 0, 0, 132, 133, 0, 223, + 224, 0, 225, 124, 0, 0, 0, 226, 136, 227, + 137, 0, 0, 129, 67, 68, 0, 0, 462, 130, + 1283, 0, 0, 0, 133, 1362, 70, 220, 71, 72, + 73, 701, 702, 0, 0, 136, 0, 137, 77, 221, + 222, 0, 0, 0, 0, 0, 0, 0, 0, 79, + 464, 0, 0, 0, 69, 0, 80, 70, 0, 71, + 72, 73, 74, 465, 0, 0, 76, 0, 0, 77, + 0, 0, 81, 78, 0, 0, 223, 224, 0, 225, + 79, 0, 0, 0, 226, 0, 227, 80, 0, 0, + 0, 0, 82, 83, 0, 0, 0, 1283, 0, 0, + 0, 0, 1364, 81, 0, 0, 703, 0, 0, 88, + 0, 0, 89, 0, 90, 67, 68, 0, 0, 800, + 466, 0, 0, 82, 83, 0, 0, 0, 0, 84, + 0, 0, 0, 0, 0, 0, 0, 85, 86, 87, + 88, 0, 0, 89, 0, 90, 67, 68, 0, 0, + 0, 464, 0, 0, 0, 69, 0, 0, 70, 0, + 71, 72, 73, 74, 465, 0, 0, 76, 0, 0, + 77, 0, 0, 0, 78, 0, 0, 0, 0, 0, + 0, 79, 464, 217, 218, 219, 69, 0, 80, 70, + 0, 71, 72, 73, 74, 465, 0, 0, 76, 0, + 0, 77, 0, 0, 81, 78, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 80, - 0, 0, 0, 466, 88, 0, 82, 83, 0, 90, - 0, 0, 84, 67, 68, 81, 0, 0, 0, 0, - 85, 86, 87, 88, 0, 0, 89, 0, 90, 0, - 0, 0, 188, 0, 0, 82, 83, 67, 68, 0, + 0, 466, 0, 0, 82, 83, 0, 0, 0, 0, + 84, 0, 0, 67, 68, 81, 0, 220, 85, 86, + 87, 88, 0, 0, 89, 0, 90, 0, 0, 221, + 222, 0, 466, 0, 0, 82, 83, 67, 68, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 85, 86, 87, 88, 69, 0, 89, 70, 90, 71, 72, - 73, 74, 0, 0, 0, 76, 0, 0, 77, 0, - 0, 0, 78, 0, 0, 0, 0, 69, 0, 79, + 73, 74, 75, 0, 0, 76, 223, 224, 77, 225, + 0, 0, 78, 0, 226, 0, 227, 69, 0, 79, 70, 0, 71, 72, 73, 74, 80, 0, 0, 76, - 0, 0, 77, 0, 0, 0, 78, 0, 0, 0, + 0, 295, 77, 0, 0, 0, 78, 0, 0, 0, 0, 0, 81, 79, 0, 0, 0, 0, 0, 0, - 80, 216, 217, 218, 0, 0, 0, 0, 0, 611, - 0, 0, 82, 83, 67, 0, 81, 0, 84, 0, + 80, 217, 218, 219, 0, 0, 0, 0, 0, 0, + 0, 0, 82, 83, 67, 68, 81, 0, 84, 0, 0, 0, 0, 0, 0, 0, 85, 86, 87, 88, - 0, 0, 89, 0, 90, 0, 82, 83, 486, 0, - 487, 0, 84, 177, 0, 0, 0, 0, 0, 0, - 85, 86, 87, 88, 69, 219, 89, 70, 90, 71, - 72, 73, 74, 524, 0, 0, 76, 220, 221, 77, + 0, 0, 89, 610, 90, 0, 82, 83, 486, 0, + 487, 0, 84, 67, 0, 0, 0, 0, 0, 0, + 85, 86, 87, 88, 69, 220, 89, 70, 90, 71, + 72, 73, 74, 0, 0, 0, 76, 221, 222, 77, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, - 79, 0, 0, 178, 0, 0, 70, 80, 71, 72, - 73, 74, 1005, 0, 0, 179, 0, 0, 77, 0, - 0, 0, 78, 81, 222, 223, 0, 224, 0, 79, - 0, 0, 225, 0, 226, 0, 80, 0, 0, 0, + 79, 0, 0, 69, 0, 0, 70, 80, 71, 72, + 73, 74, 524, 0, 0, 76, 0, 0, 77, 0, + 0, 0, 78, 81, 223, 224, 0, 225, 0, 79, + 0, 0, 226, 0, 227, 0, 80, 0, 0, 0, 0, 0, 0, 82, 83, 0, 0, 0, 0, 84, 177, 0, 81, 0, 0, 0, 0, 85, 86, 87, 88, 0, 0, 89, 0, 90, 0, 0, 0, 0, - 0, 0, 82, 83, 67, 0, 0, 0, 84, 0, - 0, 0, 216, 217, 218, 0, 180, 181, 87, 88, - 178, 0, 89, 70, 90, 71, 72, 73, 74, 0, + 0, 0, 82, 83, 177, 0, 0, 0, 84, 0, + 0, 0, 0, 0, 0, 0, 85, 86, 87, 88, + 178, 0, 89, 70, 90, 71, 72, 73, 74, 1005, 0, 0, 179, 0, 0, 77, 0, 0, 0, 78, - 0, 0, 0, 0, 69, 0, 79, 70, 0, 71, - 72, 73, 74, 80, 0, 0, 76, 0, 0, 77, - 0, 0, 0, 78, 0, 0, 219, 0, 0, 81, - 79, 0, 216, 217, 218, 0, 0, 80, 220, 221, - 0, 0, 0, 0, 0, 0, 216, 217, 218, 82, - 83, 0, 0, 81, 0, 84, 0, 0, 0, 0, - 216, 217, 218, 180, 181, 87, 88, 0, 0, 89, - 0, 90, 0, 82, 83, 222, 223, 0, 224, 84, - 0, 0, 0, 225, 0, 226, 219, 85, 86, 87, - 88, 0, 0, 89, 0, 90, 1284, 0, 220, 221, - 219, 1364, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 220, 221, 219, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 220, 221, 0, 0, - 0, 0, 0, 0, 0, 222, 223, 0, 224, 0, - 0, 0, 0, 225, 0, 226, 0, 0, 0, 222, - 223, 0, 224, 0, 0, 0, 1284, 225, 0, 226, - 0, 1366, 0, 222, 223, 0, 224, 0, 0, 0, - 1284, 225, 105, 226, 106, 1368, 0, 107, 108, 0, - 0, 0, 0, 0, 0, 109, 110, 0, 294, 0, - 0, 0, 0, 0, 111, 0, 112, 113, 114, 115, - 0, 0, 0, 116, 0, 0, 0, 0, 117, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, + 0, 0, 0, 0, 178, 0, 79, 70, 0, 71, + 72, 73, 74, 80, 0, 0, 179, 0, 0, 77, + 0, 0, 0, 78, 0, 0, 0, 0, 0, 81, + 79, 0, 0, 0, 0, 0, 0, 80, 217, 218, + 219, 0, 0, 0, 0, 0, 0, 0, 0, 82, + 83, 67, 0, 81, 0, 84, 0, 0, 0, 0, + 0, 0, 0, 180, 181, 87, 88, 0, 0, 89, + 0, 90, 0, 82, 83, 0, 0, 0, 0, 84, + 0, 0, 0, 0, 0, 0, 0, 180, 181, 87, + 88, 69, 220, 89, 70, 90, 71, 72, 73, 74, + 0, 0, 0, 76, 221, 222, 77, 0, 0, 0, + 78, 0, 0, 0, 0, 0, 0, 79, 0, 0, + 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, + 0, 0, 105, 0, 106, 0, 0, 107, 108, 0, + 81, 223, 224, 0, 225, 109, 110, 0, 0, 226, + 0, 227, 0, 0, 111, 0, 112, 113, 114, 115, + 82, 83, 1283, 116, 0, 0, 84, 1366, 117, 0, + 0, 0, 0, 0, 85, 86, 87, 88, 0, 0, + 89, 0, 90, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, 0, 0, 126, 127, 128, 129, 0, 0, 105, 0, 106, 130, 131, 107, 108, 132, 133, 0, 0, 0, 134, 109, 110, 0, 0, 0, 135, 136, 0, 137, 111, 0, 112, 113, 114, 115, 0, 138, 0, 116, 0, 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 695, 0, 0, 0, 0, 0, 118, + 0, 0, 0, 694, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, 0, 0, 126, 127, 128, 129, 0, 0, 105, 0, 106, 130, 131, 107, 108, 132, 133, 0, 0, 0, @@ -2161,658 +2267,690 @@ static const yytype_int16 yytable[] = 109, 110, 0, 0, 0, 135, 136, 0, 137, 111, 0, 112, 113, 114, 115, 0, 138, 0, 116, 0, 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1083, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1082, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, 0, 0, 126, 127, 128, 129, 0, 0, 105, 0, 106, 130, 131, 107, 108, 132, 133, 0, 0, 0, 134, 109, 110, 0, 0, 0, 135, 136, 0, 137, 111, 0, 112, 113, 114, 115, 0, 138, - 0, 116, 216, 217, 218, 0, 117, 891, 0, 0, - 0, 70, 0, 71, 72, 73, 0, 0, 1306, 0, - 0, 0, 0, 265, 118, 119, 120, 121, 122, 123, + 0, 116, 217, 218, 219, 0, 117, 891, 0, 0, + 0, 0, 0, 217, 218, 219, 0, 0, 1304, 70, + 0, 71, 72, 73, 118, 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 80, 0, 0, 0, 0, 130, 131, 0, 0, - 132, 133, 0, 0, 0, 134, 219, 266, 0, 0, - 0, 135, 136, 70, 137, 71, 72, 73, 220, 221, - 0, 0, 138, 0, 0, 0, 0, 82, 83, 0, + 129, 0, 0, 0, 0, 0, 130, 131, 0, 80, + 132, 133, 0, 0, 0, 134, 220, 0, 0, 0, + 0, 135, 136, 0, 137, 267, 0, 220, 221, 222, + 0, 0, 138, 0, 70, 0, 71, 72, 73, 221, + 222, 0, 0, 0, 0, 82, 83, 0, 0, 0, + 0, 1455, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 88, 0, 80, 223, 224, 90, 225, 0, + 0, 0, 0, 226, 0, 227, 223, 224, 0, 225, + 267, 0, 0, 105, 226, 106, 227, 0, 0, 108, + 188, 0, 0, 0, 0, 0, 109, 110, 0, 0, + 82, 83, 0, 0, 0, 0, 0, 112, 300, 114, + 0, 0, 0, 0, 116, 0, 0, 88, 0, 301, + 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1456, 0, 80, 88, 0, 0, 0, 0, 90, - 0, 0, 0, 0, 0, 222, 223, 0, 224, 266, - 0, 0, 105, 225, 106, 226, 0, 0, 108, 0, - 0, 0, 176, 0, 0, 109, 110, 0, 0, 82, - 83, 0, 0, 0, 0, 0, 112, 299, 114, 0, - 0, 0, 0, 116, 0, 0, 88, 0, 300, 0, - 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 124, 0, 194, 0, 0, 0, 0, + 0, 0, 0, 129, 0, 0, 0, 0, 0, 130, + 0, 0, 0, 0, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 135, 136, 105, 137, 106, 0, + 0, 107, 108, 0, 0, 0, 0, 0, 0, 109, + 110, 0, -155, 0, 0, 0, 0, 0, 111, 0, + 112, 113, 114, 115, 0, 0, 0, 116, 0, 0, + 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 124, 0, 193, 0, 0, 0, 0, 0, - 0, 0, 129, 0, 0, 0, 0, 0, 130, 0, - 0, 0, 0, 133, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 135, 136, 105, 137, 106, 0, 0, - 107, 108, 0, 0, 0, 0, 0, 0, 109, 110, - 0, -155, 0, 0, 0, 0, 0, 111, 0, 112, - 113, 114, 115, 0, 0, 0, 116, 0, 0, 0, - 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, - 0, 0, 126, 127, 128, 129, 0, 0, 105, 0, - 106, 130, 131, 0, 108, 132, 133, 0, 0, 0, - 134, 109, 110, 0, 0, 0, 135, 136, 0, 137, - 0, 0, 112, 113, 114, 105, 0, 106, 0, 116, - 0, 108, 0, 0, 300, 0, 0, 0, 109, 110, - 105, 0, 106, 0, 0, 0, 108, 0, 0, 112, - 299, 114, 0, 109, 110, 0, 0, 0, 124, 0, - 0, 300, 0, 0, 112, 299, 114, 0, 129, 0, - 0, 0, 0, 0, 130, 0, 300, 0, 132, 133, - 0, 0, 0, 0, 0, 124, 311, 0, 0, 135, - 136, 0, 137, 0, 0, 129, 0, 0, 0, 0, - 124, 130, 0, 0, 0, 0, 133, 0, 0, 0, - 129, 0, 0, 0, 0, 0, 130, 136, 0, 137, - 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 136, 0, 137 + 118, 119, 120, 121, 122, 123, 124, 125, 0, 0, + 0, 0, 0, 126, 127, 128, 129, 0, 0, 105, + 0, 106, 130, 131, 0, 108, 132, 133, 0, 0, + 0, 134, 109, 110, 0, 0, 0, 135, 136, 0, + 137, 0, 0, 112, 113, 114, 105, 0, 106, 0, + 116, 0, 108, 0, 0, 301, 0, 0, 0, 109, + 110, 105, 0, 106, 0, 0, 0, 108, 0, 0, + 112, 300, 114, 0, 109, 110, 0, 0, 0, 124, + 0, 0, 301, 0, 0, 112, 300, 114, 0, 129, + 0, 0, 0, 0, 0, 130, 0, 301, 0, 132, + 133, 0, 0, 0, 0, 0, 124, 312, 0, 0, + 135, 136, 0, 137, 0, 0, 129, 0, 0, 0, + 0, 124, 130, 0, 0, 0, 0, 133, 0, 0, + 0, 129, 0, 0, 0, 0, 0, 130, 136, 0, + 137, 0, 133, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 136, 0, 137 }; static const yytype_int16 yycheck[] = { - 1, 61, 757, 320, 92, 495, 113, 466, 44, 737, - 132, 132, 714, 142, 75, 149, 44, 151, 152, 153, - 154, 935, 156, 298, 158, 663, 160, 464, 482, 589, - 515, 44, 608, 184, 142, 10, 495, 15, 13, 15, - 75, 142, 176, 59, 148, 800, 15, 13, 6, 486, - 8, 15, 15, 187, 188, 0, 15, 494, 333, 193, - 194, 62, 148, 148, 151, 148, 170, 627, 166, 167, - 720, 76, 76, 275, 276, 277, 278, 279, 638, 166, - 156, 167, 167, 617, 167, 165, 81, 82, 83, 148, - 91, 92, 147, 88, 149, 590, 151, 76, 99, 749, - 750, 147, 752, 753, 754, 755, 142, 33, 167, 148, - 126, 108, 109, 110, 142, 112, 113, 114, 165, 165, - 117, 98, 33, 147, 10, 11, 12, 124, 167, 142, - 148, 148, 129, 130, 151, 132, 133, 134, 776, 136, - 137, 165, 147, 147, 165, 150, 150, 148, 149, 167, - 151, 152, 153, 154, 147, 156, 149, 158, 151, 160, - 619, 724, 148, 726, 727, 728, 729, 730, 147, 298, - 148, 150, 260, 261, 165, 176, 13, 33, 15, 148, - 17, 167, 165, 184, 501, 160, 187, 188, 276, 277, - 298, 167, 193, 194, 160, 165, 256, 298, 758, 148, - 329, 165, 165, 156, 333, 356, 165, 697, 165, 167, - 148, 528, 76, 208, 209, 210, 211, 165, 167, 280, - 33, 329, 717, 60, 165, 333, 721, 113, 329, 167, - 231, 165, 333, 148, 810, 165, 796, 797, 164, 165, - 166, 151, 165, 445, 820, 280, 473, 449, 450, 451, - 452, 453, 167, 164, 165, 166, 166, 907, 392, 260, - 261, 463, 298, 165, 150, 467, 468, 165, 148, 33, - 298, 266, 165, 758, 275, 276, 277, 278, 279, 280, - 148, 1009, 343, 147, 285, 298, 150, 167, 148, 166, - 167, 941, 33, 329, 150, 290, 151, 333, 148, 167, - 165, 329, 299, 300, 141, 333, 760, 167, 305, 165, - 166, 166, 148, 148, 165, 292, 329, 167, 155, 320, - 333, 165, 148, 160, 6, 147, 8, 149, 165, 151, - 647, 167, 167, 13, 793, 15, 165, 17, 148, 156, - 777, 167, 165, 903, 920, 158, 159, 160, 161, 162, - 913, 164, 165, 166, 148, 356, 13, 167, 15, 165, - 17, 851, 10, 11, 12, 13, 148, 1005, 148, 17, - 148, 646, 165, 167, 148, 10, 11, 12, 355, 696, - 60, 165, 149, 1111, 151, 167, 613, 167, 6, 167, - 8, 392, 851, 167, 158, 159, 160, 161, 162, 601, - 164, 165, 166, 60, 465, 466, 633, 634, 635, 636, - 637, 412, 60, 148, 148, 991, 166, 167, 903, 160, - 161, 162, 165, 164, 165, 166, 165, 166, 923, 64, - 465, 466, 167, 167, 495, 1349, 64, 65, 10, 11, - 12, 76, 77, 165, 445, 165, 33, 165, 449, 450, - 451, 452, 453, 1013, 1014, 147, 156, 149, 165, 151, - 495, 141, 463, 524, 165, 113, 467, 468, 166, 167, - 1004, 472, 165, 165, 475, 155, 512, 165, 113, 114, - 160, 116, 709, 147, 141, 165, 121, 482, 123, 144, - 145, 146, 64, 141, 495, 165, 493, 165, 155, 150, - 501, 472, 165, 160, 76, 77, 165, 155, 150, 1264, - 150, 512, 160, 165, 166, 167, 1011, 646, 165, 166, - 167, 165, 1017, 1018, 525, 166, 167, 528, 165, 590, - 150, 147, 167, 149, 150, 151, 165, 166, 646, 147, - 148, 113, 114, 165, 116, 646, 165, 166, 525, 121, - 611, 123, 165, 166, 167, 590, 165, 167, 619, 536, - 165, 878, 539, 114, 115, 116, 1100, 165, 795, 165, - 1104, 165, 165, 160, 161, 162, 611, 164, 165, 166, - 151, 160, 166, 166, 619, 812, 150, 48, 589, 590, - 591, 148, 165, 147, 166, 156, 165, 165, 165, 149, - 601, 148, 168, 148, 167, 167, 148, 608, 167, 167, - 646, 612, 1107, 157, 167, 675, 617, 157, 646, 167, - 621, 622, 623, 624, 625, 626, 627, 663, 167, 167, - 167, 1333, 167, 646, 167, 663, 167, 638, 15, 167, - 167, 612, 167, 167, 167, 167, 647, 648, 167, 167, - 663, 622, 623, 624, 625, 626, 717, 167, 167, 167, - 721, 888, 157, 167, 167, 167, 167, 703, 895, 896, - 897, 898, 899, 157, 167, 167, 167, 165, 167, 160, - 167, 166, 717, 166, 150, 167, 721, 165, 685, 686, - 1445, 1446, 1447, 168, 167, 696, 147, 165, 148, 148, - 148, 148, 762, 763, 148, 148, 165, 149, 709, 150, - 770, 165, 772, 22, 23, 1443, 717, 48, 170, 165, - 721, 160, 167, 724, 33, 726, 727, 728, 729, 730, - 167, 165, 793, 165, 167, 160, 147, 714, 709, 76, - 776, 48, 743, 720, 165, 746, 156, 724, 776, 726, - 727, 728, 729, 730, 156, 156, 757, 758, 793, 156, - 165, 167, 10, 776, 10, 760, 1256, 889, 889, 10, - 10, 10, 749, 750, 10, 752, 753, 754, 755, 149, - 148, 1276, 889, 1278, 157, 149, 167, 167, 160, 160, - 851, 167, 149, 794, 168, 796, 797, 1256, 149, 800, - 160, 1556, 803, 165, 22, 23, 167, 147, 1342, 810, - 1565, 167, 167, 873, 2, 33, 851, 167, 170, 820, - 165, 165, 165, 794, 166, 1359, 1360, 1361, 166, 830, - 166, 150, 803, 167, 167, 165, 165, 148, 148, 151, - 1335, 167, 148, 148, 1339, 148, 160, 165, 168, 158, - 159, 160, 161, 162, 890, 164, 165, 166, 149, 167, - 149, 148, 923, 10, 166, 4, 167, 1094, 56, 57, - 58, 59, 60, 168, 170, 63, 148, 878, 48, 165, - 881, 165, 170, 10, 11, 12, 13, 888, 923, 170, - 17, 147, 889, 894, 895, 896, 897, 898, 899, 900, - 167, 1435, 903, 1037, 1281, 1282, 1283, 157, 1442, 167, - 148, 10, 913, 157, 1448, 1449, 167, 888, 1006, 920, - 157, 10, 923, 157, 895, 896, 897, 898, 899, 149, - 907, 10, 167, 60, 935, 167, 913, 10, 1433, 10, - 158, 159, 160, 161, 162, 10, 164, 165, 166, 149, - 1011, 148, 165, 170, 168, 167, 1017, 1018, 168, 170, - 167, 167, 167, 15, 941, 167, 165, 165, 1502, 1005, - 165, 1505, 1289, 167, 165, 167, 1011, 1005, 149, 1113, - 1114, 148, 1017, 1018, 167, 112, 113, 1364, 165, 1366, - 991, 1368, 1005, 156, 1371, 1372, 1373, 156, 156, 156, - 165, 167, 147, 1004, 192, 1006, 1540, 168, 1503, 149, - 1011, 167, 1013, 1014, 141, 168, 1017, 1018, 167, 167, - 10, 1555, 10, 167, 167, 149, 10, 149, 155, 149, - 10, 149, 165, 160, 15, 167, 1037, 167, 165, 167, - 61, 148, 168, 148, 167, 157, 1107, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 168, 257, - 167, 157, 1107, 157, 262, 167, 167, 157, 10, 11, - 12, 13, 167, 15, 1085, 17, 10, 149, 10, 167, - 10, 149, 167, 1094, 149, 165, 165, 165, 165, 1100, - 149, 167, 10, 1104, 167, 149, 1107, 167, 149, 1112, - 298, 1259, 1113, 1114, 310, 649, 1333, 10, 11, 12, - 13, 890, 703, 1094, 17, 333, 1462, 851, 60, 150, - 1256, 10, 11, 12, 155, 1085, 157, 1290, 159, 327, + 1, 61, 132, 113, 132, 495, 935, 482, 736, 321, + 92, 44, 713, 515, 466, 184, 44, 142, 299, 15, + 142, 616, 13, 15, 464, 142, 607, 15, 149, 662, + 151, 152, 153, 154, 148, 156, 44, 158, 588, 160, + 59, 10, 98, 495, 13, 147, 486, 0, 719, 6, + 148, 8, 148, 334, 494, 176, 170, 147, 10, 11, + 12, 62, 756, 165, 473, 148, 187, 188, 165, 167, + 76, 167, 76, 194, 195, 165, 626, 748, 749, 165, + 751, 752, 753, 754, 167, 148, 165, 637, 589, 33, + 91, 92, 165, 76, 76, 166, 167, 723, 99, 725, + 726, 727, 728, 729, 167, 799, 148, 126, 165, 142, + 148, 108, 109, 110, 142, 112, 113, 114, 165, 148, + 117, 81, 82, 83, 33, 167, 148, 124, 88, 167, + 190, 33, 129, 130, 142, 132, 133, 134, 167, 136, + 137, 147, 775, 147, 150, 167, 150, 148, 149, 156, + 151, 152, 153, 154, 148, 156, 148, 158, 156, 160, + 148, 113, 33, 165, 147, 147, 618, 150, 150, 160, + 151, 167, 165, 167, 299, 176, 666, 299, 148, 261, + 262, 151, 299, 184, 156, 166, 187, 188, 357, 501, + 165, 160, 148, 194, 195, 277, 278, 257, 150, 148, + 13, 165, 15, 612, 17, 330, 696, 757, 330, 334, + 167, 167, 334, 330, 148, 716, 528, 334, 167, 720, + 164, 165, 166, 632, 633, 634, 635, 636, 809, 148, + 6, 232, 8, 167, 148, 148, 907, 293, 819, 165, + 148, 150, 165, 166, 167, 795, 796, 60, 167, 209, + 210, 211, 212, 167, 167, 757, 165, 166, 151, 167, + 261, 262, 164, 165, 166, 165, 299, 151, 165, 75, + 941, 299, 393, 166, 165, 276, 277, 278, 279, 280, + 281, 1009, 166, 165, 759, 286, 13, 913, 15, 148, + 17, 299, 75, 164, 165, 166, 165, 330, 148, 708, + 356, 334, 330, 300, 301, 165, 334, 267, 167, 306, + 148, 13, 2, 15, 33, 17, 148, 167, 148, 148, + 321, 165, 330, 10, 11, 12, 334, 148, 141, 167, + 148, 291, 148, 60, 646, 167, 776, 167, 167, 920, + 792, 165, 155, 144, 145, 146, 167, 160, 6, 167, + 8, 167, 165, 903, 165, 147, 357, 149, 60, 151, + 50, 851, 165, 149, 645, 151, 56, 57, 58, 59, + 60, 165, 1005, 63, 165, 166, 147, 64, 149, 150, + 151, 165, 1110, 695, 147, 794, 149, 165, 151, 76, + 77, 165, 393, 18, 19, 20, 21, 22, 23, 851, + 165, 903, 811, 147, 165, 149, 156, 151, 33, 1004, + 991, 412, 165, 147, 141, 149, 167, 151, 1347, 166, + 167, 165, 923, 1280, 1281, 1282, 113, 114, 155, 116, + 165, 166, 167, 160, 121, 165, 123, 165, 165, 141, + 165, 160, 161, 162, 445, 164, 165, 166, 449, 450, + 451, 452, 453, 155, 165, 166, 167, 165, 160, 166, + 167, 147, 463, 1013, 1014, 165, 467, 468, 155, 525, + 150, 472, 165, 160, 475, 281, 114, 115, 116, 888, + 536, 64, 65, 539, 512, 166, 895, 896, 897, 898, + 899, 166, 167, 165, 495, 165, 493, 165, 281, 165, + 501, 166, 167, 193, 1099, 1362, 165, 1364, 1103, 1366, + 1011, 512, 1369, 1370, 1371, 150, 1017, 1018, 165, 166, + 645, 150, 482, 645, 525, 147, 148, 528, 645, 10, + 11, 12, 150, 158, 159, 160, 161, 162, 344, 164, + 165, 166, 165, 166, 165, 165, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 878, 165, 258, 1263, + 165, 165, 151, 263, 160, 166, 150, 48, 148, 147, + 165, 156, 148, 64, 165, 165, 149, 588, 589, 590, + 168, 20, 21, 22, 23, 76, 77, 15, 165, 600, + 157, 148, 167, 167, 33, 1106, 607, 167, 167, 299, + 611, 167, 645, 167, 674, 616, 167, 645, 157, 620, + 621, 622, 623, 624, 625, 626, 167, 167, 148, 662, + 1331, 167, 113, 114, 662, 116, 637, 645, 328, 167, + 121, 167, 123, 167, 167, 646, 647, 157, 167, 167, + 167, 167, 167, 167, 662, 167, 167, 713, 167, 465, + 466, 167, 167, 719, 167, 157, 167, 723, 167, 725, + 726, 727, 728, 729, 702, 165, 167, 160, 167, 167, + 166, 166, 465, 466, 1093, 167, 167, 684, 685, 495, + 168, 165, 748, 749, 695, 751, 752, 753, 754, 150, + 390, 761, 762, 167, 147, 165, 148, 708, 148, 769, + 148, 771, 495, 148, 1442, 716, 406, 407, 524, 720, + 148, 148, 723, 413, 725, 726, 727, 728, 729, 158, + 159, 160, 161, 162, 149, 164, 165, 166, 33, 165, + 150, 742, 775, 165, 745, 1340, 165, 775, 165, 165, + 1444, 1445, 1446, 167, 167, 756, 757, 48, 167, 889, + 160, 889, 1357, 1358, 1359, 1255, 160, 775, 170, 147, + 10, 11, 12, 13, 1275, 48, 1277, 17, 838, 889, + 76, 165, 156, 589, 156, 475, 156, 156, 165, 10, + 10, 167, 793, 10, 795, 796, 10, 10, 799, 759, + 10, 802, 149, 1255, 610, 157, 589, 148, 809, 149, + 167, 160, 618, 873, 167, 160, 167, 472, 819, 149, + 60, 149, 168, 160, 167, 167, 165, 610, 829, 167, + 147, 33, 1333, 523, 167, 618, 1337, 166, 170, 1434, + 165, 165, 165, 533, 166, 166, 1441, 167, 150, 165, + 165, 907, 1447, 1448, 167, 148, 148, 913, 148, 1553, + 148, 148, 890, 158, 159, 160, 161, 162, 1562, 164, + 165, 166, 112, 113, 151, 160, 148, 878, 167, 165, + 881, 149, 149, 167, 166, 941, 10, 888, 578, 168, + 168, 167, 889, 894, 895, 896, 897, 898, 899, 900, + 170, 141, 903, 593, 148, 1500, 33, 48, 1503, 165, + 716, 170, 913, 165, 720, 155, 1037, 607, 147, 920, + 160, 170, 923, 148, 1006, 165, 167, 22, 23, 157, + 157, 1432, 167, 716, 935, 157, 167, 720, 33, 157, + 10, 10, 1537, 149, 10, 11, 12, 13, 10, 11, + 12, 17, 10, 10, 10, 645, 611, 1552, 160, 161, + 162, 10, 164, 165, 166, 149, 621, 622, 623, 624, + 625, 167, 1005, 148, 165, 170, 1288, 1005, 167, 167, + 670, 671, 672, 673, 170, 675, 792, 168, 22, 23, + 991, 1112, 1113, 167, 60, 168, 167, 1005, 15, 33, + 1501, 165, 64, 1004, 165, 1006, 165, 167, 165, 792, + 1011, 167, 1013, 1014, 76, 77, 1017, 1018, 167, 148, + 167, 149, 165, 276, 277, 278, 279, 280, 165, 167, + 156, 158, 159, 160, 161, 162, 1037, 164, 165, 166, + 156, 156, 156, 168, 167, 851, 168, 113, 167, 147, + 167, 113, 114, 708, 116, 745, 167, 167, 149, 121, + 10, 123, 149, 158, 159, 160, 161, 162, 851, 164, + 165, 166, 10, 10, 149, 141, 149, 10, 149, 165, + 15, 148, 167, 1084, 167, 167, 10, 168, 167, 155, + 167, 167, 1093, 148, 160, 167, 157, 157, 1099, 165, + 168, 149, 1103, 157, 166, 1106, 10, 11, 12, 13, + 157, 1112, 1113, 17, 167, 10, 10, 923, 149, 809, + 165, 165, 165, 165, 158, 159, 160, 161, 162, 819, + 164, 165, 166, 823, 167, 167, 149, 167, 793, 149, + 923, 10, 149, 167, 149, 1111, 311, 802, 648, 1258, + 1331, 841, 334, 890, 702, 1461, 60, 1084, 334, 851, + 1255, 1222, 852, 853, 854, 855, 856, 857, 858, 859, + 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, + 870, 871, 1264, 1289, 874, 411, 666, -1, 10, 11, + 12, 13, 445, 15, -1, 17, 449, 450, 451, 452, + 453, -1, 1258, -1, -1, 1011, -1, -1, -1, 113, + 463, 1017, 1018, -1, 467, 468, -1, -1, -1, -1, + -1, 1222, 54, 62, 56, 57, 58, -1, 1011, -1, + 920, -1, -1, 888, 1017, 1018, -1, 141, 60, -1, + 895, 896, 897, 898, 899, 935, 85, -1, -1, -1, + -1, 155, 84, -1, 1255, -1, 160, -1, -1, -1, + -1, -1, 1263, 1264, -1, -1, 105, 1327, 100, -1, + 61, -1, -1, -1, 1275, 1331, 1277, 16, 17, 18, + 19, 20, 21, 22, 23, -1, 125, 1288, 120, 121, + -1, 113, -1, -1, 33, -1, 135, -1, -1, 989, + 1106, 991, -1, 993, -1, 137, -1, -1, -1, -1, + 142, -1, -1, -1, -1, 1375, 1376, -1, 1378, 141, + 1380, -1, -1, 1106, -1, -1, -1, -1, -1, -1, + -1, -1, 1333, 155, -1, -1, 1337, 1397, 160, 1340, + -1, 180, -1, 165, 183, 1094, 1347, 600, -1, -1, + -1, -1, -1, -1, 1044, -1, 1357, 1358, 1359, 150, + -1, -1, -1, 1094, 155, -1, 157, 1427, 159, -1, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 333, 1223, 411, -1, -1, - -1, -1, -1, -1, -1, 186, -1, 60, -1, 190, - 191, 192, -1, -1, -1, -1, -1, 1265, -1, -1, - -1, 113, -1, -1, 11, 64, 10, 11, 12, -1, - -1, -1, 10, 11, 12, 1256, -1, 76, 77, -1, - -1, 389, -1, -1, -1, -1, -1, -1, -1, 141, - -1, -1, -1, -1, -1, 1276, -1, 1278, 406, 407, - 113, 1256, 1223, 155, -1, 413, -1, 54, 160, 56, - 57, 58, -1, 165, 113, 114, -1, 116, -1, -1, - 64, 1276, 121, 1278, 123, -1, 64, -1, 141, -1, - 271, -1, 76, 77, -1, 1256, -1, 84, 76, 77, - -1, -1, 155, 1264, 1265, -1, -1, 160, -1, 1329, - -1, -1, 165, 100, 1335, 1276, 155, 1278, 1339, -1, - -1, 160, 1259, 10, 11, -1, -1, 475, 1289, 113, - 114, -1, 116, 120, 121, 113, 114, 121, 116, 123, - 1335, -1, -1, 121, 1339, 123, -1, -1, -1, -1, - 137, -1, -1, -1, -1, 142, -1, 1377, 1378, -1, - 1380, -1, 1382, -1, 51, -1, 150, 54, -1, 56, - 57, 58, 59, 151, 1335, 523, 63, 155, 1339, 66, - -1, 1342, 160, 70, -1, 533, -1, -1, 1349, -1, - 77, -1, -1, 62, -1, -1, 1333, 84, 1359, 1360, - 1361, -1, -1, -1, -1, -1, -1, -1, 1428, -1, - 391, -1, 1433, 100, -1, -1, 85, -1, -1, -1, - -1, -1, -1, -1, 54, 112, 56, 57, 58, -1, - -1, -1, -1, 120, 121, -1, 105, -1, 1433, 126, - -1, -1, -1, -1, -1, -1, 594, 134, 135, 136, - 137, -1, -1, 140, 84, 142, 125, -1, -1, 17, - 608, -1, -1, -1, -1, -1, 135, -1, -1, -1, - 100, -1, 1433, -1, 1435, 33, 163, -1, -1, -1, - -1, 1442, 1503, -1, 1445, 1446, 1447, 1448, 1449, 47, - 120, 121, -1, -1, -1, -1, -1, -1, 646, -1, - -1, 1462, 60, 61, -1, -1, -1, 137, 1503, -1, - -1, 180, 142, -1, 183, -1, -1, -1, 76, -1, - -1, -1, -1, 671, 672, 673, 674, -1, 676, 1549, - 1550, 1551, -1, 1553, 54, 165, 56, 57, 58, 520, - -1, 1502, 1503, -1, 1505, -1, 527, -1, -1, 107, - -1, -1, 110, -1, -1, 113, -1, -1, -1, 228, - 229, 1095, -1, -1, 84, -1, -1, -1, -1, -1, - -1, 129, -1, 554, -1, 556, -1, 558, -1, 1540, - 100, -1, -1, 141, -1, -1, 10, 11, 12, -1, - -1, -1, -1, -1, 1555, 1556, -1, 155, 746, 6, - 120, 121, -1, -1, 1565, 274, -1, -1, -1, 16, - 17, 18, 19, 20, 21, 22, 23, 137, -1, -1, - -1, -1, 142, 292, -1, 294, 33, -1, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 64, -1, 311, -1, 313, 314, 315, 316, 317, 318, - -1, -1, 76, 77, -1, -1, -1, -1, 65, -1, - -1, -1, 810, -1, -1, -1, 335, -1, -1, -1, - -1, -1, 820, -1, -1, 344, 824, -1, 347, -1, - -1, -1, -1, -1, 108, -1, 355, -1, -1, 113, - 114, -1, 116, 841, 675, -1, -1, 121, -1, 123, - -1, -1, 109, -1, 852, 853, 854, 855, 856, 857, - 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, - 868, 869, 870, 871, 872, 394, 874, -1, -1, 398, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 148, 411, -1, 151, -1, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, - -1, -1, 169, 16, 17, 18, 19, 20, 21, 22, - 23, -1, 920, -1, -1, -1, -1, -1, -1, 448, - 33, -1, -1, -1, -1, -1, -1, 935, -1, -1, - 1324, 1325, 1326, 1327, 1328, 464, 1330, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 476, -1, -1, - -1, 18, 19, 20, 21, 22, 23, 486, -1, -1, - -1, -1, -1, -1, -1, 494, 33, 16, 17, 18, - 19, 20, 21, 22, 23, 1324, 1325, 1326, 1327, 1328, - -1, 1330, -1, 991, 33, 993, -1, -1, -1, -1, - -1, -1, 833, 834, 835, -1, 837, -1, 839, 840, - 841, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 539, -1, -1, -1, -1, 1409, 1410, 1411, 1412, 1413, - 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, - 1424, 1425, 1426, 1427, -1, -1, -1, 1045, -1, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - -1, 164, 165, 166, -1, -1, -1, 170, -1, 588, - 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, - 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, -1, - 3, 4, 5, 6, 1478, 8, 9, 10, 155, 156, - 157, 158, 159, 160, 161, 162, -1, 164, 165, 166, - -1, -1, 631, 152, 153, 154, 155, 156, 157, 158, + 171, 172, 173, 174, 175, -1, -1, -1, -1, -1, + 229, 230, -1, -1, -1, 186, -1, -1, -1, 190, + -1, 192, 193, -1, -1, -1, -1, -1, -1, -1, + -1, 150, 11, 152, 153, 154, 155, 256, -1, 158, 159, 160, 161, 162, -1, 164, 165, 166, -1, -1, - 649, 170, -1, -1, -1, -1, -1, 50, -1, 1478, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, - -1, 1535, -1, -1, 67, -1, -1, 10, 11, 12, - -1, -1, 75, 76, -1, -1, -1, -1, 81, -1, - -1, -1, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, -1, 707, -1, - -1, -1, -1, -1, -1, -1, 1535, -1, 111, -1, - 113, -1, -1, -1, -1, 118, -1, -1, -1, 122, - -1, 64, 125, -1, -1, -1, -1, 130, -1, -1, - 739, -1, -1, 76, 77, 3, 4, 5, 6, -1, + -1, 1432, -1, 1434, -1, -1, 275, -1, 1093, -1, + 1441, -1, -1, 1444, 1445, 1446, 1447, 1448, -1, 1255, + -1, -1, -1, -1, 293, 54, 295, 56, 57, 58, + 1461, -1, -1, -1, -1, -1, -1, -1, -1, 1275, + -1, 1277, 1255, 312, -1, 314, 315, 316, 317, 318, + 319, 272, -1, -1, -1, 84, 1546, 1547, 1548, -1, + 1550, -1, 1275, -1, 1277, -1, -1, 336, -1, 1500, + 1501, 100, 1503, -1, -1, -1, 345, -1, -1, 348, + -1, -1, -1, -1, -1, -1, 54, 356, 56, 57, + 58, 120, 121, -1, -1, -1, -1, 1333, 66, -1, + -1, 1337, -1, -1, -1, -1, 1537, -1, 137, -1, + -1, -1, -1, 142, -1, -1, 84, -1, -1, -1, + 1333, 1552, 1553, -1, 1337, -1, 395, -1, 1248, -1, + 399, 1562, 100, -1, -1, 18, 19, 20, 21, 22, + 23, 1320, 411, 1322, 1323, 1324, 1325, 1326, -1, 1328, + 33, -1, 120, 121, -1, -1, -1, -1, -1, 1320, + -1, 1322, 1323, 1324, 1325, 1326, -1, 1328, -1, 137, + -1, 392, -1, -1, 142, -1, 1296, -1, -1, 448, + -1, 1301, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 464, 1432, 165, -1, -1, + -1, 18, 19, 20, 21, 22, 23, 476, -1, -1, + -1, -1, -1, -1, -1, -1, 33, 486, -1, 1432, + -1, -1, -1, -1, -1, 494, -1, 1347, -1, 1408, + 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, + 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1408, 1409, 1410, + 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, + 1421, 1422, 1423, 1424, 1425, 1501, -1, -1, -1, -1, + 539, 154, 155, 156, 157, 158, 159, 160, 161, 162, + -1, 164, 165, 166, -1, 10, 11, 12, 1501, -1, + -1, -1, -1, -1, -1, -1, -1, 1476, -1, 520, + -1, -1, -1, -1, -1, -1, 527, -1, 1428, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 587, -1, + -1, 3, 4, 5, 6, -1, 8, 9, 10, 11, + -1, -1, -1, 554, -1, 556, -1, 558, 155, 64, + -1, 158, 159, 160, 161, 162, -1, 164, 165, 166, + 1529, 76, 77, 1532, 17, 18, 19, 20, 21, 22, + 23, 630, -1, -1, -1, -1, -1, -1, 50, -1, + 33, 1532, 54, -1, 56, 57, 58, -1, -1, 648, + 62, -1, 64, 65, 66, 67, -1, -1, 113, 114, + -1, 116, -1, 75, 76, 77, 121, -1, 123, 81, + -1, -1, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, -1, + -1, -1, -1, -1, -1, -1, 151, 109, -1, 111, + 155, 113, -1, -1, -1, 160, 118, 706, 120, 121, + 122, -1, -1, 125, -1, -1, -1, -1, 130, -1, + -1, 133, -1, 674, -1, 137, -1, -1, -1, -1, + 142, -1, -1, -1, -1, 147, -1, -1, -1, 738, + -1, -1, -1, 155, -1, -1, 158, 159, 160, -1, + -1, 163, -1, 165, 166, -1, -1, 169, -1, -1, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + -1, 164, 165, 166, -1, -1, -1, 776, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + -1, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, -1, -1, -1, -1, -1, -1, -1, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, -1, 70, -1, 72, 73, + 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, + 84, -1, -1, 872, -1, 20, 21, 22, 23, -1, + -1, 832, 833, 834, -1, 836, 100, 838, 33, 840, + 841, -1, 891, 107, 108, 109, -1, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + -1, -1, -1, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 18, 19, 20, 21, 22, 23, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 33, -1, -1, 1008, + -1, 156, 157, 158, 159, 160, 161, 162, -1, 164, + 165, 166, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1039, -1, -1, -1, -1, -1, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, -1, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, + -1, -1, -1, -1, -1, -1, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, -1, -1, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 1111, 70, -1, 72, 73, 74, 75, 76, + 77, 78, 79, 80, -1, 82, 83, 84, 155, 156, + 157, 158, 159, 160, 161, 162, -1, 164, 165, 166, + -1, 1092, -1, 100, -1, -1, -1, -1, -1, -1, + 107, 108, 109, -1, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, -1, -1, -1, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, -1, 169, 170, -1, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, - -1, -1, 155, -1, -1, 158, 159, 160, -1, -1, - 163, 1249, 165, 166, -1, -1, 169, -1, 777, -1, - 113, 114, 1093, 116, -1, -1, -1, -1, 121, -1, - 123, -1, 50, 51, -1, -1, 54, -1, 56, 57, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 16, 17, 18, + 19, 20, 21, 22, 23, -1, -1, -1, -1, -1, + -1, -1, 50, 51, 33, -1, 54, -1, 56, 57, 58, 59, 60, -1, 62, 63, -1, -1, 66, 67, - -1, -1, 70, -1, 147, -1, -1, 75, 76, 77, - -1, -1, -1, 81, -1, 1303, 84, 85, 86, 87, + -1, -1, 70, -1, 1283, -1, -1, 75, 76, 77, + -1, -1, -1, 81, -1, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, -1, 113, -1, -1, -1, -1, 118, -1, 120, 121, 122, -1, -1, 125, 126, -1, - -1, 1349, 130, -1, -1, 133, 134, 135, 136, 137, - -1, -1, 140, -1, 142, -1, -1, -1, -1, 10, - 11, -1, 891, -1, -1, -1, -1, 155, -1, -1, - 158, 159, 160, -1, -1, 163, -1, 165, 166, -1, - -1, 169, -1, -1, 3, 4, 5, 6, -1, 8, - 9, 10, 11, 12, -1, -1, 15, -1, -1, -1, - 51, -1, -1, 54, -1, 56, 57, 58, 59, -1, - -1, -1, 63, -1, -1, 66, -1, -1, -1, 70, - -1, 1429, -1, -1, -1, -1, 77, -1, 47, -1, - -1, 50, 51, 84, -1, 54, -1, 56, 57, 58, - 59, 60, -1, 62, 63, -1, -1, 66, 67, 100, - -1, 70, -1, -1, -1, -1, 75, 76, 77, -1, - -1, 112, -1, -1, -1, 84, -1, -1, -1, 120, - 121, -1, -1, -1, -1, 126, -1, -1, -1, 1008, - -1, 100, -1, 134, 135, 136, 137, -1, 1329, 140, - 109, 142, 111, -1, 113, -1, 147, -1, 117, 118, - -1, 120, 121, 122, -1, -1, 125, 126, -1, -1, - 1039, 130, 163, -1, 133, 134, 135, 136, 137, -1, - -1, 140, -1, 142, -1, -1, -1, -1, -1, -1, + -1, -1, 130, -1, -1, 133, 134, 135, 136, 137, + -1, -1, 140, -1, 142, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 155, -1, -1, + 158, 159, 160, -1, -1, 163, 1327, 165, 166, -1, + -1, 169, -1, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, -1, 164, 165, 166, -1, -1, + -1, 170, -1, 3, 4, 5, 6, -1, 8, 9, + 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1426, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1392, 1393, 1394, 1395, -1, 1397, -1, 1399, -1, + 50, 51, -1, -1, 54, -1, 56, 57, 58, 59, + -1, -1, 62, 63, -1, -1, 66, 67, -1, -1, + 70, -1, -1, -1, 1473, 75, 76, 77, -1, -1, + -1, 81, -1, -1, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, -1, -1, -1, -1, -1, -1, -1, -1, 109, + -1, 111, -1, 113, -1, -1, -1, -1, 118, -1, + 120, 121, 122, -1, -1, 125, 126, -1, -1, -1, + 130, -1, -1, 133, 134, 135, 136, 137, -1, -1, + 140, -1, 142, -1, 3, 4, 5, 6, -1, 8, + 9, 10, 11, -1, -1, 155, 15, -1, 158, 159, + 160, -1, -1, 163, -1, 165, 166, -1, -1, 169, + -1, -1, -1, -1, -1, 16, 17, 18, 19, 20, + 21, 22, 23, -1, -1, -1, -1, -1, -1, -1, + -1, 50, 33, -1, -1, 54, -1, 56, 57, 58, + -1, -1, -1, 62, -1, -1, -1, 66, 67, -1, + -1, -1, -1, -1, -1, -1, 75, 76, 77, -1, + -1, -1, 81, -1, -1, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, + 109, -1, 111, -1, 113, -1, -1, -1, -1, 118, + -1, 120, 121, 122, -1, -1, 125, -1, -1, -1, + -1, 130, -1, -1, 133, -1, -1, -1, 137, 3, + 4, 5, 6, 142, 8, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, 155, -1, -1, 158, - 159, -1, -1, -1, 163, -1, 165, -1, -1, -1, - 169, -1, -1, 1394, 1395, 1396, 1397, -1, 1399, 1400, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, -1, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 1112, -1, -1, -1, -1, -1, -1, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, - -1, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, -1, 70, -1, 72, - 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, - 83, 84, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, - -1, -1, -1, -1, 107, 108, 109, -1, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, -1, -1, -1, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, -1, -1, -1, -1, 1284, -1, -1, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, -1, -1, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, -1, 70, -1, 72, 73, 74, - 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, - -1, -1, 107, 108, 109, -1, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, -1, - -1, -1, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, 169, 170, 3, 4, 5, 6, - -1, 8, 9, 10, 11, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 16, 17, 18, 19, 20, 21, 22, 23, -1, - -1, -1, -1, 50, 51, 1474, -1, 54, 33, 56, - 57, 58, 59, -1, -1, 62, 63, -1, -1, 66, - 67, -1, -1, 70, -1, -1, -1, -1, 75, 76, - 77, -1, -1, -1, 81, -1, -1, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, -1, -1, -1, -1, -1, -1, - -1, -1, 109, -1, 111, -1, 113, -1, -1, -1, - -1, 118, -1, 120, 121, 122, -1, -1, 125, 126, - -1, -1, -1, 130, -1, -1, 133, 134, 135, 136, - 137, -1, -1, 140, -1, 142, 3, 4, 5, 6, - -1, 8, 9, 10, 11, -1, -1, -1, 155, -1, - -1, 158, 159, 160, -1, -1, 163, -1, 165, 166, - -1, -1, 169, -1, -1, -1, -1, 152, 153, 154, + 159, 160, -1, -1, 163, -1, 165, 166, -1, -1, + 169, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, -1, 164, 165, 166, 50, -1, -1, 170, + 54, -1, 56, 57, 58, -1, -1, -1, 62, -1, + -1, -1, 66, 67, -1, 10, 11, 12, -1, -1, + -1, 75, 76, 77, -1, -1, -1, 81, -1, -1, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, -1, -1, -1, + -1, -1, -1, -1, -1, 109, -1, 111, -1, 113, + -1, -1, -1, -1, 118, -1, 120, 121, 122, 64, + -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, + -1, 76, 77, 137, 3, 4, 5, 6, 142, 8, + 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, + -1, 155, -1, -1, 158, 159, 160, -1, -1, 163, + -1, 165, 166, 167, -1, 169, -1, -1, 113, 114, + -1, 116, -1, -1, -1, -1, 121, -1, 123, -1, + -1, 50, 51, -1, -1, 54, -1, 56, 57, 58, + -1, -1, -1, 62, -1, -1, -1, 66, 67, -1, + -1, -1, -1, -1, -1, 150, 75, 76, 77, -1, + -1, -1, 81, -1, -1, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, + 109, -1, 111, -1, 113, -1, -1, -1, -1, 118, + -1, 120, 121, 122, -1, -1, 125, -1, -1, -1, + -1, 130, -1, -1, 133, -1, -1, -1, 137, 3, + 4, 5, 6, 142, 8, 9, 10, 11, -1, -1, + -1, -1, -1, -1, -1, -1, 155, -1, -1, 158, + 159, 160, -1, -1, 163, -1, 165, 166, -1, -1, + 169, -1, -1, -1, 16, 17, 18, 19, 20, 21, + 22, 23, -1, -1, -1, -1, 50, 51, -1, -1, + 54, 33, 56, 57, 58, -1, -1, -1, 62, -1, + -1, -1, 66, 67, -1, -1, -1, -1, -1, -1, + -1, 75, 76, 77, -1, -1, -1, 81, -1, -1, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, -1, -1, -1, + -1, -1, -1, -1, -1, 109, -1, 111, -1, 113, + -1, -1, -1, -1, 118, -1, 120, 121, 122, -1, + -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, + -1, -1, -1, 137, 3, 4, 5, 6, 142, 8, + 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, + -1, 155, -1, -1, 158, 159, 160, -1, -1, 163, + -1, 165, 166, -1, -1, 169, -1, -1, 150, -1, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 50, 164, 165, 166, 54, -1, 56, 57, 58, + -1, -1, -1, 62, -1, -1, -1, 66, 67, -1, + -1, -1, -1, -1, -1, -1, 75, 76, 77, -1, + -1, -1, 81, -1, -1, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, + 109, -1, 111, -1, 113, -1, -1, -1, -1, 118, + -1, 120, 121, 122, -1, -1, 125, -1, -1, -1, + -1, 130, -1, -1, 133, -1, -1, -1, 137, 3, + 4, 5, 6, 142, 8, 9, 10, 11, 147, -1, + -1, -1, -1, -1, -1, -1, 155, -1, -1, 158, + 159, 160, -1, -1, 163, -1, 165, 166, -1, -1, + 169, -1, -1, -1, 16, 17, 18, 19, 20, 21, + 22, 23, -1, -1, -1, -1, 50, -1, -1, -1, + 54, 33, 56, 57, 58, -1, -1, -1, 62, -1, + -1, -1, 66, 67, -1, -1, -1, -1, -1, -1, + -1, 75, 76, 77, -1, -1, -1, 81, -1, -1, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, -1, -1, -1, + -1, -1, -1, -1, -1, 109, -1, 111, -1, 113, + -1, -1, -1, -1, 118, -1, 120, 121, 122, -1, + -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, + -1, -1, -1, 137, 3, 4, 5, 6, 142, 8, + 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, + -1, 155, -1, -1, 158, 159, 160, -1, -1, 163, + -1, 165, 166, 167, -1, 169, -1, 149, -1, -1, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 50, 164, 165, 166, 54, -1, 56, 57, 58, + -1, -1, -1, 62, -1, -1, -1, 66, 67, -1, + -1, -1, -1, -1, -1, -1, 75, 76, 77, -1, + -1, -1, 81, -1, -1, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, + 109, -1, 111, -1, 113, -1, -1, -1, -1, 118, + -1, 120, 121, 122, -1, -1, 125, -1, -1, -1, + -1, 130, -1, -1, 133, -1, -1, -1, 137, 3, + 4, 5, 6, 142, 8, 9, 10, 11, 147, -1, + -1, -1, -1, -1, -1, -1, 155, -1, -1, 158, + 159, 160, -1, -1, 163, -1, 165, 166, -1, -1, + 169, -1, -1, -1, 16, 17, 18, 19, 20, 21, + 22, 23, -1, -1, -1, -1, 50, -1, -1, -1, + 54, 33, 56, 57, 58, -1, -1, -1, 62, -1, + -1, -1, 66, 67, -1, -1, -1, -1, -1, -1, + -1, 75, 76, 77, -1, -1, -1, 81, -1, -1, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, -1, -1, -1, + -1, -1, -1, -1, -1, 109, -1, 111, -1, 113, + -1, -1, -1, -1, 118, -1, 120, 121, 122, -1, + -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, + -1, -1, -1, 137, 3, 4, 5, 6, 142, 8, + 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, + -1, 155, -1, -1, 158, 159, 160, -1, -1, 163, + -1, 165, 166, 167, -1, 169, 148, -1, -1, -1, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 50, 164, 165, 166, 54, -1, 56, 57, 58, + -1, -1, -1, 62, -1, -1, -1, 66, 67, -1, + -1, -1, -1, -1, -1, -1, 75, 76, 77, -1, + -1, -1, 81, -1, -1, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, + 109, -1, 111, -1, 113, 10, 11, 12, -1, 118, + -1, 120, 121, 122, -1, -1, 125, -1, -1, -1, + -1, 130, -1, -1, 133, -1, -1, -1, 137, 3, + 4, 5, 6, 142, 8, 9, 10, 11, 12, -1, + -1, 15, 47, -1, 49, -1, 155, -1, -1, 158, + 159, 160, -1, -1, 163, -1, 165, 166, -1, 64, + 169, 16, 17, 18, 19, 20, 21, 22, 23, -1, + -1, 76, 77, 47, -1, -1, 50, 51, 33, -1, + 54, -1, 56, 57, 58, 59, 60, -1, 62, 63, + -1, -1, 66, 67, -1, -1, 70, -1, -1, -1, + -1, 75, 76, 77, -1, -1, -1, -1, 113, 114, + 84, 116, -1, -1, -1, -1, 121, -1, 123, -1, + -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, + -1, -1, -1, -1, -1, 109, -1, 111, -1, 113, + -1, -1, 147, 117, 118, -1, 120, 121, 122, -1, + -1, 125, 126, -1, -1, -1, 130, -1, -1, 133, + 134, 135, 136, 137, -1, -1, 140, -1, 142, 3, + 4, 5, 6, -1, 8, 9, 10, 11, -1, -1, + -1, 155, -1, -1, 158, 159, -1, -1, -1, 163, + -1, 165, -1, -1, -1, 169, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, -1, 164, - 165, 166, -1, 50, -1, 170, -1, 54, -1, 56, - 57, 58, -1, -1, -1, 62, -1, 64, 65, 66, - 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, - 77, -1, -1, -1, 81, -1, -1, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, -1, -1, -1, -1, -1, -1, - -1, -1, 109, -1, 111, -1, 113, -1, -1, -1, - -1, 118, -1, 120, 121, 122, -1, -1, 125, -1, - -1, -1, -1, 130, -1, -1, 133, -1, -1, -1, - 137, 3, 4, 5, 6, 142, 8, 9, 10, 11, - 147, -1, -1, -1, -1, -1, -1, -1, 155, -1, - -1, 158, 159, 160, -1, -1, 163, -1, 165, 166, - -1, -1, 169, 17, 18, 19, 20, 21, 22, 23, - -1, -1, -1, -1, -1, -1, -1, -1, 50, 33, - -1, -1, 54, -1, 56, 57, 58, -1, -1, -1, - 62, -1, -1, -1, 66, 67, -1, -1, -1, -1, - -1, -1, -1, 75, 76, 77, -1, -1, -1, 81, - -1, -1, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, -1, - -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, - -1, 113, -1, -1, -1, -1, 118, -1, 120, 121, - 122, -1, -1, 125, -1, -1, -1, -1, 130, -1, - -1, 133, -1, -1, -1, 137, 3, 4, 5, 6, - 142, 8, 9, 10, 11, -1, -1, -1, -1, -1, - -1, -1, -1, 155, -1, -1, 158, 159, 160, -1, - -1, 163, -1, 165, 166, 167, -1, 169, -1, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, -1, - 164, 165, 166, 50, 51, -1, -1, 54, -1, 56, - 57, 58, -1, -1, -1, 62, -1, -1, -1, 66, - 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, - 77, -1, -1, -1, 81, -1, -1, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, -1, -1, -1, -1, -1, -1, - -1, -1, 109, -1, 111, -1, 113, -1, -1, -1, - -1, 118, -1, 120, 121, 122, -1, -1, 125, -1, - -1, -1, -1, 130, -1, -1, 133, -1, -1, -1, - 137, 3, 4, 5, 6, 142, 8, 9, 10, 11, - -1, -1, -1, -1, -1, -1, -1, -1, 155, -1, - -1, 158, 159, 160, -1, -1, 163, -1, 165, 166, - -1, -1, 169, -1, -1, -1, 16, 17, 18, 19, - 20, 21, 22, 23, -1, -1, -1, -1, 50, 51, - -1, -1, 54, 33, 56, 57, 58, -1, -1, -1, - 62, -1, -1, -1, 66, 67, -1, -1, -1, -1, - -1, -1, -1, 75, 76, 77, -1, -1, -1, 81, - -1, -1, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, -1, - -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, - -1, 113, -1, -1, -1, -1, 118, -1, 120, 121, - 122, -1, -1, 125, -1, -1, -1, -1, 130, -1, - -1, 133, -1, -1, -1, 137, 3, 4, 5, 6, - 142, 8, 9, 10, 11, -1, -1, -1, -1, -1, - -1, -1, -1, 155, -1, -1, 158, 159, 160, -1, - -1, 163, -1, 165, 166, -1, -1, 169, -1, -1, - 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 50, 164, 165, 166, 54, -1, 56, - 57, 58, -1, -1, -1, 62, -1, -1, -1, 66, - 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, - 77, -1, -1, -1, 81, -1, -1, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, -1, -1, -1, -1, -1, -1, - -1, -1, 109, -1, 111, -1, 113, -1, -1, -1, - -1, 118, -1, 120, 121, 122, -1, -1, 125, -1, - -1, -1, -1, 130, -1, -1, 133, -1, -1, -1, - 137, 3, 4, 5, 6, 142, 8, 9, 10, 11, - 147, -1, -1, -1, -1, -1, -1, -1, 155, -1, - -1, 158, 159, 160, -1, -1, 163, -1, 165, 166, - -1, -1, 169, -1, -1, -1, 16, 17, 18, 19, - 20, 21, 22, 23, -1, -1, -1, -1, 50, -1, - -1, -1, 54, 33, 56, 57, 58, -1, -1, -1, - 62, -1, -1, -1, 66, 67, -1, -1, -1, -1, - -1, -1, -1, 75, 76, 77, -1, -1, -1, 81, - -1, -1, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, -1, - -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, - -1, 113, -1, -1, -1, -1, 118, -1, 120, 121, - 122, -1, -1, 125, -1, -1, -1, -1, 130, -1, - -1, 133, -1, -1, -1, 137, 3, 4, 5, 6, - 142, 8, 9, 10, 11, -1, -1, -1, -1, -1, - -1, -1, -1, 155, -1, -1, 158, 159, 160, -1, - -1, 163, -1, 165, 166, 167, -1, 169, -1, 149, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 50, 164, 165, 166, 54, -1, 56, - 57, 58, -1, -1, -1, 62, -1, -1, -1, 66, - 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, - 77, -1, -1, -1, 81, -1, -1, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, -1, -1, -1, -1, -1, -1, - -1, -1, 109, -1, 111, -1, 113, -1, -1, -1, - -1, 118, -1, 120, 121, 122, -1, -1, 125, -1, - -1, -1, -1, 130, -1, -1, 133, -1, -1, -1, - 137, 3, 4, 5, 6, 142, 8, 9, 10, 11, - 147, -1, -1, -1, -1, -1, -1, -1, 155, -1, - -1, 158, 159, 160, -1, -1, 163, -1, 165, 166, - -1, -1, 169, -1, -1, -1, 16, 17, 18, 19, - 20, 21, 22, 23, -1, -1, -1, -1, 50, -1, - -1, -1, 54, 33, 56, 57, 58, -1, -1, -1, - 62, -1, -1, -1, 66, 67, -1, -1, -1, -1, - -1, -1, -1, 75, 76, 77, -1, -1, -1, 81, - -1, -1, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, -1, - -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, - -1, 113, -1, -1, -1, -1, 118, -1, 120, 121, - 122, -1, -1, 125, -1, -1, -1, -1, 130, -1, - -1, 133, -1, -1, -1, 137, 3, 4, 5, 6, - 142, 8, 9, 10, 11, -1, -1, -1, -1, -1, - -1, -1, -1, 155, -1, -1, 158, 159, 160, -1, - -1, 163, -1, 165, 166, 167, -1, 169, 148, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 50, 164, 165, 166, 54, -1, 56, - 57, 58, -1, -1, -1, 62, -1, -1, -1, 66, - 67, -1, -1, -1, -1, -1, -1, -1, 75, 76, - 77, -1, -1, -1, 81, -1, -1, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, -1, -1, -1, -1, -1, -1, - -1, -1, 109, -1, 111, -1, 113, 10, 11, 12, - -1, 118, -1, 120, 121, 122, -1, -1, 125, -1, - -1, -1, -1, 130, -1, -1, 133, -1, -1, -1, - 137, 3, 4, 5, 6, 142, 8, 9, 10, 11, - 12, -1, -1, 15, 47, -1, 49, -1, 155, -1, - -1, 158, 159, 160, -1, -1, 163, -1, 165, 166, - -1, 64, 169, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 76, 77, 47, -1, -1, 50, 51, - -1, -1, 54, -1, 56, 57, 58, 59, 60, -1, - 62, 63, -1, -1, 66, 67, -1, -1, 70, -1, - -1, -1, -1, 75, 76, 77, -1, -1, -1, -1, - 113, 114, 84, 116, -1, -1, -1, -1, 121, -1, - 123, -1, -1, -1, -1, 10, 11, -1, 100, -1, - -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, - -1, 113, -1, -1, 147, 117, 118, -1, 120, 121, - 122, -1, -1, 125, 126, -1, -1, -1, 130, -1, - -1, 133, 134, 135, 136, 137, 51, -1, 140, 54, - 142, 56, 57, 58, 59, -1, -1, -1, 63, -1, - -1, 66, -1, 155, -1, 70, 158, 159, -1, -1, - -1, 163, 77, 165, -1, -1, -1, 169, -1, 84, + 165, 166, -1, -1, -1, 170, 50, -1, -1, -1, + 54, -1, 56, 57, 58, -1, -1, -1, 62, -1, + -1, -1, 66, 67, -1, -1, -1, -1, -1, -1, + -1, 75, 76, 77, -1, -1, -1, 81, -1, -1, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, -1, -1, -1, + -1, -1, -1, -1, -1, 109, -1, 111, -1, 113, + 10, 11, 12, -1, 118, -1, 120, 121, 122, -1, + -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, + -1, -1, -1, 137, 3, 4, 5, 6, 142, 8, + 9, 10, 11, 12, -1, -1, 15, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 163, + -1, 165, 166, -1, 64, 169, 16, 17, 18, 19, + 20, 21, 22, 23, -1, -1, 76, 77, 47, -1, + -1, 50, 51, 33, -1, 54, -1, 56, 57, 58, + 59, 60, -1, 62, 63, -1, -1, 66, 67, -1, + -1, 70, -1, -1, -1, -1, 75, 76, 77, -1, + -1, -1, -1, 113, 114, 84, 116, -1, -1, -1, + -1, 121, -1, 123, -1, 10, 11, 12, -1, -1, + -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, + 109, -1, 111, -1, 113, -1, -1, 147, 117, 118, + -1, 120, 121, 122, -1, -1, 125, 126, -1, -1, + -1, 130, -1, -1, 133, 134, 135, 136, 137, -1, + -1, 140, -1, 142, -1, 3, 4, 5, 6, 64, + 8, 9, 10, -1, -1, -1, 155, 15, -1, 158, + 159, 76, 77, -1, 163, -1, 165, -1, 148, -1, + 169, -1, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, -1, 164, 165, 166, 167, -1, -1, + -1, -1, 50, -1, -1, -1, -1, -1, 113, 114, + 115, 116, -1, -1, 62, -1, 121, -1, 123, 67, + -1, -1, -1, -1, -1, -1, -1, 75, 76, 134, + -1, -1, -1, 81, 139, -1, -1, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, -1, -1, -1, 3, 4, 5, 6, -1, + 8, 9, 10, 111, -1, 113, -1, -1, -1, -1, + 118, -1, -1, -1, 122, -1, -1, 125, -1, -1, + -1, -1, 130, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 50, -1, -1, -1, -1, 155, -1, -1, + 158, 159, 160, -1, 62, 163, -1, 165, 166, 67, + -1, 169, -1, -1, -1, -1, -1, 75, 76, -1, + -1, -1, -1, 81, -1, -1, -1, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, -1, -1, -1, 3, 4, 5, 6, -1, + 8, 9, 10, 111, -1, 113, -1, -1, -1, -1, + 118, -1, -1, -1, 122, -1, -1, 125, -1, -1, + -1, -1, 130, -1, -1, -1, -1, -1, -1, -1, + -1, 16, 17, 18, 19, 20, 21, 22, 23, -1, + -1, -1, 50, -1, -1, -1, -1, 155, 33, -1, + 158, 159, 160, -1, 62, 163, -1, 165, 166, 67, + -1, 169, -1, -1, -1, -1, -1, 75, 76, -1, + -1, -1, -1, 81, -1, -1, -1, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 3, 4, 5, 6, -1, 8, 9, 10, + -1, -1, -1, 111, 15, 113, -1, -1, -1, -1, + 118, -1, -1, -1, 122, -1, -1, 125, -1, 17, + -1, -1, 130, -1, -1, -1, -1, -1, -1, 10, + 11, 12, -1, -1, -1, 33, -1, -1, -1, 50, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, + -1, 62, -1, -1, -1, 163, 67, 165, 166, -1, + -1, 169, 60, 61, 75, 76, -1, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 76, 164, + 165, 166, 167, 64, -1, -1, -1, 16, 17, 18, + 19, 20, 21, 22, 23, 76, 77, -1, 109, -1, + 111, -1, 113, -1, 33, -1, -1, 118, -1, 107, + -1, 122, 110, -1, 125, 113, -1, -1, -1, 130, + -1, -1, 133, -1, -1, -1, 54, -1, 56, 57, + 58, 129, 113, 114, -1, 116, -1, -1, 66, -1, + 121, -1, 123, 141, 155, -1, -1, 158, 159, 6, + -1, -1, 163, 134, 165, -1, 84, 155, 169, 16, + 17, 18, 19, 20, 21, 22, 23, -1, -1, -1, + -1, -1, 100, -1, -1, -1, 33, -1, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + -1, -1, 120, 121, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 65, 137, + -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, + -1, 10, 11, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, -1, 164, 165, 166, 167, -1, 16, 17, 18, 19, 20, 21, 22, 23, -1, -1, - -1, -1, -1, -1, -1, 100, -1, 33, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 112, -1, -1, - -1, -1, -1, -1, -1, 120, 121, -1, -1, -1, - -1, 126, 54, -1, 56, 57, 58, -1, -1, 134, - 135, 136, 137, -1, 66, 140, -1, 142, 16, 17, - 18, 19, 20, 21, 22, 23, -1, -1, -1, -1, - -1, -1, 84, -1, -1, 33, -1, -1, 163, 16, - 17, 18, 19, 20, 21, 22, 23, -1, 100, -1, - -1, -1, -1, -1, -1, -1, 33, 16, 17, 18, - 19, 20, 21, 22, 23, -1, -1, -1, 120, 121, - -1, -1, -1, -1, 33, -1, 16, 17, 18, 19, - 20, 21, 22, 23, -1, 137, -1, -1, -1, -1, - 142, -1, 148, 33, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, -1, 164, 165, - 166, 167, 16, 17, 18, 19, 20, 21, 22, 23, + -1, -1, 109, -1, -1, -1, -1, 33, -1, -1, + -1, -1, 51, -1, -1, 54, -1, 56, 57, 58, + 59, -1, -1, -1, 63, -1, -1, 66, -1, -1, + -1, 70, 10, 11, 12, -1, -1, -1, 77, -1, + -1, 148, -1, -1, 151, 84, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, + -1, 100, 169, 10, 11, -1, -1, -1, -1, -1, + -1, -1, -1, 112, -1, -1, 54, -1, 56, 57, + 58, 120, 121, -1, -1, -1, -1, 126, 66, -1, + -1, -1, -1, -1, -1, 134, 135, 136, 137, 77, + -1, 140, -1, 142, 51, -1, 84, 54, 147, 56, + 57, 58, 59, -1, -1, -1, 63, -1, -1, 66, + -1, -1, 100, 70, 163, 17, 152, 153, 154, 155, + 77, -1, 158, 159, 160, 161, 162, 84, 164, 165, + 166, -1, 120, 121, -1, -1, -1, -1, -1, -1, + 10, 11, -1, 100, -1, 47, -1, -1, -1, 137, + -1, -1, 140, -1, 142, 112, -1, -1, 60, 61, + -1, -1, -1, 120, 121, -1, -1, -1, -1, 126, + -1, -1, -1, -1, 76, -1, -1, 134, 135, 136, + 137, 51, -1, 140, 54, 142, 56, 57, 58, 59, + -1, -1, -1, 63, -1, -1, 66, -1, -1, -1, + 70, -1, -1, -1, -1, 107, 163, 77, 110, -1, + -1, 113, -1, -1, 84, 16, 17, 18, 19, 20, + 21, 22, 23, -1, -1, -1, -1, 129, -1, -1, + 100, -1, 33, -1, -1, -1, -1, -1, -1, 141, + -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, + 120, 121, -1, 155, -1, -1, 126, -1, -1, -1, + -1, -1, -1, -1, 134, 135, 136, 137, -1, -1, + 140, -1, 142, 16, 17, 18, 19, 20, 21, 22, + 23, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, 163, 16, 17, 18, 19, 20, 21, + 22, 23, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 33, 16, 17, 18, 19, 20, 21, 22, 23, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, 16, 17, 18, 19, 20, 21, 22, 23, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, -1, 164, 165, 166, 167, - -1, -1, -1, -1, -1, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, -1, 164, 165, 166, - 167, -1, -1, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, -1, 164, 165, 166, 167, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, -1, 164, 165, 166, 167, 16, 17, - 18, 19, 20, 21, 22, 23, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 33, -1, -1, 152, 153, + -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, -1, 164, 165, 166, 167, 16, 17, 18, + 19, 20, 21, 22, 23, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 33, 16, 17, 18, 19, 20, + 21, 22, 23, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, -1, -1, -1, -1, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + -1, 164, 165, 166, 167, -1, -1, -1, -1, -1, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, -1, 164, 165, 166, 167, -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, -1, 164, 165, 166, 167, -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, -1, 164, 165, 166, 167, 16, 17, 18, 19, 20, 21, 22, 23, - -1, -1, 10, 11, 12, -1, 10, 11, 12, 33, - 16, 17, 18, 19, 20, 21, 22, 23, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33, 16, 17, - 18, 19, 20, 21, 22, 23, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 33, 16, 17, 18, 19, - 20, 21, 22, 23, -1, -1, 64, -1, -1, -1, - 64, -1, -1, 33, -1, -1, -1, -1, 76, 77, - -1, -1, 76, 77, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, -1, 164, 165, 166, 167, - 16, 17, 18, 19, 20, 21, 22, 23, -1, -1, - -1, -1, -1, -1, -1, 113, 114, 33, 116, 113, - 114, -1, 116, 121, -1, 123, -1, 121, -1, 123, - -1, -1, -1, -1, -1, -1, 150, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 147, - 164, 165, 166, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, -1, 164, 165, - 166, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, -1, 164, 165, 166, -1, - 150, -1, 152, 153, 154, 155, -1, -1, 158, 159, - 160, 161, 162, -1, 164, 165, 166, 0, -1, -1, - -1, -1, -1, -1, -1, -1, 17, 18, 19, 20, - 21, 22, 23, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 33, -1, -1, -1, 152, 153, 154, 155, - -1, -1, 158, 159, 160, 161, 162, -1, 164, 165, - 166, -1, -1, -1, 47, -1, 49, -1, -1, 52, - 53, -1, -1, -1, -1, -1, -1, 60, 61, -1, - -1, -1, -1, -1, -1, -1, 69, -1, 71, 72, - 73, 74, -1, -1, -1, 78, -1, -1, -1, -1, - 83, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 101, 102, - 103, 104, 105, 106, 107, 108, -1, -1, -1, -1, - -1, 114, 115, 116, 117, -1, -1, -1, -1, -1, - 123, 124, 11, 12, 127, 128, 15, -1, 17, 132, - -1, -1, -1, -1, -1, 138, 139, -1, 141, -1, - -1, -1, 153, 154, 155, -1, 149, 158, 159, 160, - 161, 162, -1, 164, 165, 166, -1, -1, 47, -1, - -1, -1, 51, -1, -1, 54, -1, 56, 57, 58, - 59, 60, -1, -1, 63, -1, -1, 66, -1, -1, - -1, 70, 18, 19, 20, 21, 22, 23, 77, -1, - -1, -1, -1, -1, -1, 84, -1, 33, 18, 19, - 20, 21, 22, 23, -1, -1, -1, -1, -1, -1, - -1, 100, -1, 33, 18, 19, 20, 21, 22, 23, - -1, -1, -1, -1, -1, -1, -1, -1, 117, 33, - -1, 120, 121, -1, -1, -1, -1, 126, -1, 18, - 19, 20, 21, 22, 23, 134, 135, 136, 137, -1, - -1, 140, -1, 142, 33, 18, 19, 20, 21, 22, - 23, -1, -1, -1, -1, -1, 155, -1, -1, -1, - 33, 160, 18, 19, 20, 21, 22, 23, -1, -1, - -1, 18, 19, 20, 21, 22, 23, 33, -1, -1, - -1, -1, -1, -1, -1, -1, 33, 20, 21, 22, - 23, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 33, -1, -1, -1, -1, -1, -1, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, -1, 164, 165, - 166, -1, -1, -1, 154, 155, 156, 157, 158, 159, - 160, 161, 162, -1, 164, 165, 166, -1, -1, 153, - 154, 155, -1, -1, 158, 159, 160, 161, 162, -1, - 164, 165, 166, 20, 21, 22, 23, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 33, 156, 157, 158, + -1, -1, -1, -1, -1, -1, 10, 11, 12, 33, + -1, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, -1, 164, 165, 166, -1, -1, - -1, 154, 155, -1, -1, 158, 159, 160, 161, 162, - -1, 164, 165, 166, -1, -1, -1, -1, -1, 155, - 6, -1, 158, 159, 160, 161, 162, -1, 164, 165, - 166, 158, 159, 160, 161, 162, 17, 164, 165, 166, - -1, -1, -1, 156, 157, 158, 159, 160, 161, 162, - -1, 164, 165, 166, -1, -1, -1, -1, -1, -1, - -1, 47, -1, 49, -1, -1, 47, 53, -1, -1, - -1, -1, -1, -1, 60, 61, -1, -1, -1, 60, - 61, -1, -1, -1, -1, 71, 72, 73, -1, -1, - -1, -1, 6, -1, -1, 76, -1, 83, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 158, 159, 160, 161, 162, -1, 164, 165, 166, - -1, 107, -1, -1, -1, -1, 107, -1, -1, 110, - -1, 117, 113, 47, -1, 49, -1, 123, -1, 53, - -1, 127, 128, 10, 11, 12, 60, 61, 129, -1, - -1, -1, -1, 139, -1, 141, -1, 71, 72, 73, - 141, -1, -1, -1, -1, -1, -1, -1, -1, 83, - -1, -1, -1, -1, 155, -1, -1, -1, -1, -1, - -1, -1, 10, 11, 12, -1, -1, 54, -1, 56, - 57, 58, -1, 107, -1, -1, -1, -1, -1, 66, - -1, -1, -1, 117, -1, -1, -1, -1, -1, 123, - 77, 10, 11, 12, 128, -1, -1, 84, -1, -1, - -1, -1, -1, 51, -1, 139, 54, 141, 56, 57, - 58, 59, 60, 100, -1, 63, -1, -1, 66, -1, - -1, -1, 70, -1, -1, -1, -1, -1, -1, 77, - -1, -1, 51, 120, 121, 54, 84, 56, 57, 58, - 59, 60, -1, -1, 63, -1, -1, 66, -1, -1, - 137, 70, 100, 140, -1, 142, -1, -1, 77, -1, - -1, -1, -1, -1, -1, 84, -1, -1, -1, -1, - -1, -1, 120, 121, 10, 11, 12, -1, 126, -1, - -1, 100, -1, 10, 11, 12, 134, 135, 136, 137, - -1, -1, 140, -1, 142, -1, -1, -1, -1, -1, - -1, 120, 121, -1, -1, -1, -1, 126, -1, -1, - -1, -1, 10, 11, 12, 134, 135, 136, 137, -1, - -1, 140, -1, 142, 51, -1, -1, 54, 64, 56, - 57, 58, 59, 60, -1, -1, 63, -1, -1, 66, - 76, 77, -1, 70, -1, -1, -1, -1, -1, -1, - 77, -1, -1, -1, -1, -1, 54, 84, 56, 57, - 58, 59, 60, -1, -1, -1, -1, -1, 66, -1, - -1, -1, -1, 100, -1, -1, -1, 113, 114, 77, - 116, -1, -1, -1, -1, 121, 84, 123, -1, -1, - -1, -1, -1, 120, 121, -1, -1, -1, 134, 126, - -1, -1, 100, 10, 11, 12, -1, 134, 135, 136, - 137, -1, -1, 140, -1, 142, 11, 12, -1, -1, - 15, -1, 120, 121, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 134, -1, -1, 137, - -1, -1, 140, -1, 142, 11, 12, -1, -1, 15, - -1, -1, 47, -1, -1, -1, 51, 64, -1, 54, - -1, 56, 57, 58, 59, 60, -1, -1, 63, 76, - 77, 66, -1, -1, -1, 70, -1, -1, -1, -1, - -1, 47, 77, -1, -1, 51, -1, -1, 54, 84, - 56, 57, 58, 59, 60, -1, -1, 63, -1, -1, - 66, -1, -1, -1, 70, 100, 113, 114, 115, 116, - -1, 77, -1, -1, 121, -1, 123, -1, 84, -1, - -1, -1, 117, -1, -1, 120, 121, 134, -1, -1, - -1, 126, 139, -1, 100, -1, -1, 11, 12, 134, - 135, 136, 137, -1, -1, 140, -1, 142, -1, -1, - -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, - 126, 54, -1, 56, 57, 58, 11, 12, 134, 135, - 136, 137, -1, 47, 140, -1, 142, 51, -1, -1, + -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 0, 164, 165, 166, -1, -1, -1, -1, + -1, 17, 18, 19, 20, 21, 22, 23, -1, -1, + 64, -1, -1, -1, -1, -1, -1, 33, -1, -1, + -1, -1, 76, 77, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, + -1, 49, -1, -1, 52, 53, -1, -1, -1, -1, + -1, -1, 60, 61, 108, -1, -1, -1, -1, 113, + 114, 69, 116, 71, 72, 73, 74, 121, -1, 123, + 78, -1, -1, -1, -1, 83, -1, -1, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, -1, + 164, 165, 166, 101, 102, 103, 104, 105, 106, 107, + 108, -1, -1, -1, -1, -1, 114, 115, 116, 117, + -1, -1, -1, -1, -1, 123, 124, 11, 12, 127, + 128, 15, -1, 17, 132, -1, -1, -1, -1, -1, + 138, 139, -1, 141, -1, -1, -1, 153, 154, 155, + -1, 149, 158, 159, 160, 161, 162, -1, 164, 165, + 166, -1, -1, 47, -1, -1, -1, 51, -1, -1, 54, -1, 56, 57, 58, 59, 60, -1, -1, 63, - -1, 84, 66, -1, -1, -1, 70, -1, -1, -1, - -1, -1, -1, 77, -1, -1, 51, 100, -1, 54, - 84, 56, 57, 58, 59, 60, -1, -1, 63, -1, - -1, 66, -1, -1, -1, 70, 100, 120, 121, -1, + -1, -1, 66, -1, -1, -1, 70, 18, 19, 20, + 21, 22, 23, 77, -1, 54, -1, 56, 57, 58, + 84, -1, 33, 18, 19, 20, 21, 22, 23, -1, + -1, -1, -1, -1, -1, -1, 100, -1, 33, 18, + 19, 20, 21, 22, 23, 84, -1, -1, -1, -1, + -1, -1, -1, 117, 33, -1, 120, 121, -1, -1, + -1, 100, 126, -1, 18, 19, 20, 21, 22, 23, + 134, 135, 136, 137, -1, -1, 140, -1, 142, 33, + -1, 120, 121, -1, -1, -1, -1, -1, -1, -1, + -1, 155, -1, -1, -1, -1, 160, -1, 137, -1, + -1, -1, -1, 142, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 10, 11, 12, -1, 165, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, -1, 164, 165, 166, -1, -1, 153, 154, + 155, -1, -1, 158, 159, 160, 161, 162, -1, 164, + 165, 166, -1, -1, -1, 6, 64, 156, 157, 158, + 159, 160, 161, 162, -1, 164, 165, 166, 76, 77, + -1, -1, -1, -1, -1, -1, 10, 11, 12, -1, + 154, 155, 6, -1, 158, 159, 160, 161, 162, -1, + 164, 165, 166, -1, -1, -1, 47, -1, 49, -1, + -1, -1, 53, -1, -1, 113, 114, -1, 116, 60, + 61, -1, -1, 121, -1, 123, -1, -1, -1, -1, + 71, 72, 73, 47, -1, 49, -1, -1, -1, 53, + 64, -1, 83, -1, -1, -1, 60, 61, -1, 147, + -1, -1, 76, 77, -1, -1, -1, 71, 72, 73, + -1, -1, -1, 10, 11, 12, 107, -1, -1, 83, + -1, -1, 10, 11, 12, -1, 117, -1, -1, -1, + -1, -1, 123, -1, -1, -1, 127, 128, -1, 113, + 114, -1, 116, 107, -1, -1, -1, 121, 139, 123, + 141, -1, -1, 117, 11, 12, -1, -1, 15, 123, + 134, -1, -1, -1, 128, 139, 54, 64, 56, 57, + 58, 59, 60, -1, -1, 139, -1, 141, 66, 76, + 77, -1, -1, -1, -1, -1, -1, -1, -1, 77, + 47, -1, -1, -1, 51, -1, 84, 54, -1, 56, + 57, 58, 59, 60, -1, -1, 63, -1, -1, 66, + -1, -1, 100, 70, -1, -1, 113, 114, -1, 116, + 77, -1, -1, -1, 121, -1, 123, 84, -1, -1, + -1, -1, 120, 121, -1, -1, -1, 134, -1, -1, + -1, -1, 139, 100, -1, -1, 134, -1, -1, 137, + -1, -1, 140, -1, 142, 11, 12, -1, -1, 15, + 117, -1, -1, 120, 121, -1, -1, -1, -1, 126, + -1, -1, -1, -1, -1, -1, -1, 134, 135, 136, + 137, -1, -1, 140, -1, 142, 11, 12, -1, -1, + -1, 47, -1, -1, -1, 51, -1, -1, 54, -1, + 56, 57, 58, 59, 60, -1, -1, 63, -1, -1, + 66, -1, -1, -1, 70, -1, -1, -1, -1, -1, + -1, 77, 47, 10, 11, 12, 51, -1, 84, 54, + -1, 56, 57, 58, 59, 60, -1, -1, 63, -1, + -1, 66, -1, -1, 100, 70, -1, -1, -1, -1, -1, -1, 77, -1, -1, -1, -1, -1, -1, 84, - -1, -1, -1, 117, 137, -1, 120, 121, -1, 142, - -1, -1, 126, 11, 12, 100, -1, -1, -1, -1, - 134, 135, 136, 137, -1, -1, 140, -1, 142, -1, - -1, -1, 165, -1, -1, 120, 121, 11, 12, -1, + -1, 117, -1, -1, 120, 121, -1, -1, -1, -1, + 126, -1, -1, 11, 12, 100, -1, 64, 134, 135, + 136, 137, -1, -1, 140, -1, 142, -1, -1, 76, + 77, -1, 117, -1, -1, 120, 121, 11, 12, -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, 134, 135, 136, 137, 51, -1, 140, 54, 142, 56, 57, - 58, 59, -1, -1, -1, 63, -1, -1, 66, -1, - -1, -1, 70, -1, -1, -1, -1, 51, -1, 77, + 58, 59, 60, -1, -1, 63, 113, 114, 66, 116, + -1, -1, 70, -1, 121, -1, 123, 51, -1, 77, 54, -1, 56, 57, 58, 59, 84, -1, -1, 63, - -1, -1, 66, -1, -1, -1, 70, -1, -1, -1, + -1, 138, 66, -1, -1, -1, 70, -1, -1, -1, -1, -1, 100, 77, -1, -1, -1, -1, -1, -1, - 84, 10, 11, 12, -1, -1, -1, -1, -1, 117, - -1, -1, 120, 121, 11, -1, 100, -1, 126, -1, + 84, 10, 11, 12, -1, -1, -1, -1, -1, -1, + -1, -1, 120, 121, 11, 12, 100, -1, 126, -1, -1, -1, -1, -1, -1, -1, 134, 135, 136, 137, - -1, -1, 140, -1, 142, -1, 120, 121, 47, -1, + -1, -1, 140, 117, 142, -1, 120, 121, 47, -1, 49, -1, 126, 11, -1, -1, -1, -1, -1, -1, 134, 135, 136, 137, 51, 64, 140, 54, 142, 56, - 57, 58, 59, 60, -1, -1, 63, 76, 77, 66, + 57, 58, 59, -1, -1, -1, 63, 76, 77, 66, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, 77, -1, -1, 51, -1, -1, 54, 84, 56, 57, 58, 59, 60, -1, -1, 63, -1, -1, 66, -1, @@ -2822,32 +2960,28 @@ static const yytype_int16 yycheck[] = 11, -1, 100, -1, -1, -1, -1, 134, 135, 136, 137, -1, -1, 140, -1, 142, -1, -1, -1, -1, -1, -1, 120, 121, 11, -1, -1, -1, 126, -1, - -1, -1, 10, 11, 12, -1, 134, 135, 136, 137, - 51, -1, 140, 54, 142, 56, 57, 58, 59, -1, + -1, -1, -1, -1, -1, -1, 134, 135, 136, 137, + 51, -1, 140, 54, 142, 56, 57, 58, 59, 60, -1, -1, 63, -1, -1, 66, -1, -1, -1, 70, -1, -1, -1, -1, 51, -1, 77, 54, -1, 56, 57, 58, 59, 84, -1, -1, 63, -1, -1, 66, - -1, -1, -1, 70, -1, -1, 64, -1, -1, 100, - 77, -1, 10, 11, 12, -1, -1, 84, 76, 77, - -1, -1, -1, -1, -1, -1, 10, 11, 12, 120, - 121, -1, -1, 100, -1, 126, -1, -1, -1, -1, - 10, 11, 12, 134, 135, 136, 137, -1, -1, 140, - -1, 142, -1, 120, 121, 113, 114, -1, 116, 126, - -1, -1, -1, 121, -1, 123, 64, 134, 135, 136, - 137, -1, -1, 140, -1, 142, 134, -1, 76, 77, - 64, 139, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 76, 77, 64, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 76, 77, -1, -1, - -1, -1, -1, -1, -1, 113, 114, -1, 116, -1, - -1, -1, -1, 121, -1, 123, -1, -1, -1, 113, - 114, -1, 116, -1, -1, -1, 134, 121, -1, 123, - -1, 139, -1, 113, 114, -1, 116, -1, -1, -1, - 134, 121, 47, 123, 49, 139, -1, 52, 53, -1, - -1, -1, -1, -1, -1, 60, 61, -1, 138, -1, - -1, -1, -1, -1, 69, -1, 71, 72, 73, 74, - -1, -1, -1, 78, -1, -1, -1, -1, 83, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 101, 102, 103, 104, + -1, -1, -1, 70, -1, -1, -1, -1, -1, 100, + 77, -1, -1, -1, -1, -1, -1, 84, 10, 11, + 12, -1, -1, -1, -1, -1, -1, -1, -1, 120, + 121, 11, -1, 100, -1, 126, -1, -1, -1, -1, + -1, -1, -1, 134, 135, 136, 137, -1, -1, 140, + -1, 142, -1, 120, 121, -1, -1, -1, -1, 126, + -1, -1, -1, -1, -1, -1, -1, 134, 135, 136, + 137, 51, 64, 140, 54, 142, 56, 57, 58, 59, + -1, -1, -1, 63, 76, 77, 66, -1, -1, -1, + 70, -1, -1, -1, -1, -1, -1, 77, -1, -1, + -1, -1, -1, -1, 84, -1, -1, -1, -1, -1, + -1, -1, 47, -1, 49, -1, -1, 52, 53, -1, + 100, 113, 114, -1, 116, 60, 61, -1, -1, 121, + -1, 123, -1, -1, 69, -1, 71, 72, 73, 74, + 120, 121, 134, 78, -1, -1, 126, 139, 83, -1, + -1, -1, -1, -1, 134, 135, 136, 137, -1, -1, + 140, -1, 142, -1, -1, -1, 101, 102, 103, 104, 105, 106, 107, 108, -1, -1, -1, -1, -1, 114, 115, 116, 117, -1, -1, 47, -1, 49, 123, 124, 52, 53, 127, 128, -1, -1, -1, 132, 60, 61, @@ -2890,52 +3024,53 @@ static const yytype_int16 yycheck[] = -1, -1, 132, 60, 61, -1, -1, -1, 138, 139, -1, 141, 69, -1, 71, 72, 73, 74, -1, 149, -1, 78, 10, 11, 12, -1, 83, 15, -1, -1, - -1, 54, -1, 56, 57, 58, -1, -1, 168, -1, - -1, -1, -1, 66, 101, 102, 103, 104, 105, 106, + -1, -1, -1, 10, 11, 12, -1, -1, 168, 54, + -1, 56, 57, 58, 101, 102, 103, 104, 105, 106, 107, 108, -1, -1, -1, -1, -1, 114, 115, 116, - 117, 84, -1, -1, -1, -1, 123, 124, -1, -1, - 127, 128, -1, -1, -1, 132, 64, 100, -1, -1, - -1, 138, 139, 54, 141, 56, 57, 58, 76, 77, - -1, -1, 149, -1, -1, -1, -1, 120, 121, -1, + 117, -1, -1, -1, -1, -1, 123, 124, -1, 84, + 127, 128, -1, -1, -1, 132, 64, -1, -1, -1, + -1, 138, 139, -1, 141, 100, -1, 64, 76, 77, + -1, -1, 149, -1, 54, -1, 56, 57, 58, 76, + 77, -1, -1, -1, -1, 120, 121, -1, -1, -1, + -1, 168, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 137, -1, 84, 113, 114, 142, 116, -1, + -1, -1, -1, 121, -1, 123, 113, 114, -1, 116, + 100, -1, -1, 47, 121, 49, 123, -1, -1, 53, + 165, -1, -1, -1, -1, -1, 60, 61, -1, -1, + 120, 121, -1, -1, -1, -1, -1, 71, 72, 73, + -1, -1, -1, -1, 78, -1, -1, 137, -1, 83, + -1, -1, 142, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 168, -1, 84, 137, -1, -1, -1, -1, 142, - -1, -1, -1, -1, -1, 113, 114, -1, 116, 100, - -1, -1, 47, 121, 49, 123, -1, -1, 53, -1, - -1, -1, 165, -1, -1, 60, 61, -1, -1, 120, - 121, -1, -1, -1, -1, -1, 71, 72, 73, -1, - -1, -1, -1, 78, -1, -1, 137, -1, 83, -1, - -1, 142, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 107, -1, 165, -1, -1, -1, -1, + -1, -1, -1, 117, -1, -1, -1, -1, -1, 123, + -1, -1, -1, -1, 128, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 138, 139, 47, 141, 49, -1, + -1, 52, 53, -1, -1, -1, -1, -1, -1, 60, + 61, -1, 156, -1, -1, -1, -1, -1, 69, -1, + 71, 72, 73, 74, -1, -1, -1, 78, -1, -1, + -1, -1, 83, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 107, -1, 165, -1, -1, -1, -1, -1, - -1, -1, 117, -1, -1, -1, -1, -1, 123, -1, - -1, -1, -1, 128, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 138, 139, 47, 141, 49, -1, -1, - 52, 53, -1, -1, -1, -1, -1, -1, 60, 61, - -1, 156, -1, -1, -1, -1, -1, 69, -1, 71, - 72, 73, 74, -1, -1, -1, 78, -1, -1, -1, - -1, 83, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, - 102, 103, 104, 105, 106, 107, 108, -1, -1, -1, - -1, -1, 114, 115, 116, 117, -1, -1, 47, -1, - 49, 123, 124, -1, 53, 127, 128, -1, -1, -1, - 132, 60, 61, -1, -1, -1, 138, 139, -1, 141, - -1, -1, 71, 72, 73, 47, -1, 49, -1, 78, - -1, 53, -1, -1, 83, -1, -1, -1, 60, 61, - 47, -1, 49, -1, -1, -1, 53, -1, -1, 71, - 72, 73, -1, 60, 61, -1, -1, -1, 107, -1, - -1, 83, -1, -1, 71, 72, 73, -1, 117, -1, - -1, -1, -1, -1, 123, -1, 83, -1, 127, 128, - -1, -1, -1, -1, -1, 107, 108, -1, -1, 138, - 139, -1, 141, -1, -1, 117, -1, -1, -1, -1, - 107, 123, -1, -1, -1, -1, 128, -1, -1, -1, - 117, -1, -1, -1, -1, -1, 123, 139, -1, 141, - -1, 128, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 139, -1, 141 + 101, 102, 103, 104, 105, 106, 107, 108, -1, -1, + -1, -1, -1, 114, 115, 116, 117, -1, -1, 47, + -1, 49, 123, 124, -1, 53, 127, 128, -1, -1, + -1, 132, 60, 61, -1, -1, -1, 138, 139, -1, + 141, -1, -1, 71, 72, 73, 47, -1, 49, -1, + 78, -1, 53, -1, -1, 83, -1, -1, -1, 60, + 61, 47, -1, 49, -1, -1, -1, 53, -1, -1, + 71, 72, 73, -1, 60, 61, -1, -1, -1, 107, + -1, -1, 83, -1, -1, 71, 72, 73, -1, 117, + -1, -1, -1, -1, -1, 123, -1, 83, -1, 127, + 128, -1, -1, -1, -1, -1, 107, 108, -1, -1, + 138, 139, -1, 141, -1, -1, 117, -1, -1, -1, + -1, 107, 123, -1, -1, -1, -1, 128, -1, -1, + -1, 117, -1, -1, -1, -1, -1, 123, 139, -1, + 141, -1, 128, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 139, -1, 141 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ -static const yytype_uint16 yystos[] = +static const yytype_int16 yystos[] = { 0, 144, 145, 146, 172, 173, 281, 3, 4, 5, 6, 8, 9, 10, 11, 50, 54, 56, 57, 58, @@ -2956,31 +3091,31 @@ static const yytype_uint16 yystos[] = 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 11, 51, 63, 134, 135, 236, 253, 254, 259, 156, 165, 165, 15, - 165, 156, 165, 165, 165, 271, 271, 271, 271, 271, - 11, 54, 56, 57, 58, 66, 77, 84, 100, 120, - 121, 137, 142, 238, 269, 271, 10, 11, 12, 64, - 76, 77, 113, 114, 116, 121, 123, 151, 155, 160, - 275, 276, 278, 281, 271, 16, 17, 18, 19, 20, - 21, 22, 23, 33, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 164, 165, 166, 6, 8, - 233, 234, 165, 59, 126, 66, 100, 260, 260, 260, - 278, 165, 260, 13, 15, 17, 60, 141, 155, 160, - 165, 231, 232, 281, 232, 147, 10, 11, 12, 113, - 150, 279, 239, 281, 138, 182, 183, 278, 165, 72, - 83, 181, 181, 181, 181, 6, 181, 204, 181, 150, - 180, 108, 181, 165, 165, 165, 165, 165, 165, 181, - 147, 278, 150, 150, 150, 181, 181, 165, 179, 181, - 184, 205, 181, 181, 188, 108, 278, 181, 181, 10, - 11, 51, 63, 112, 134, 135, 147, 163, 191, 195, - 235, 237, 240, 242, 248, 253, 254, 259, 268, 269, - 281, 268, 238, 268, 268, 268, 268, 238, 268, 238, - 268, 238, 268, 238, 238, 238, 238, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 238, 268, 165, - 278, 165, 165, 278, 239, 238, 268, 268, 165, 10, + 165, 271, 156, 165, 165, 165, 271, 271, 271, 271, + 271, 11, 54, 56, 57, 58, 66, 77, 84, 100, + 120, 121, 137, 142, 238, 269, 271, 10, 11, 12, + 64, 76, 77, 113, 114, 116, 121, 123, 151, 155, + 160, 275, 276, 278, 281, 271, 16, 17, 18, 19, + 20, 21, 22, 23, 33, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 164, 165, 166, 6, + 8, 233, 234, 165, 59, 126, 66, 100, 260, 260, + 260, 278, 165, 260, 13, 15, 17, 60, 141, 155, + 160, 165, 231, 232, 281, 232, 147, 10, 11, 12, + 113, 150, 279, 239, 281, 138, 182, 183, 278, 165, + 72, 83, 181, 181, 181, 181, 6, 181, 204, 181, + 150, 180, 108, 181, 165, 165, 165, 165, 165, 165, + 181, 147, 278, 150, 150, 150, 181, 181, 165, 179, + 181, 184, 205, 181, 181, 188, 108, 278, 181, 181, + 10, 11, 51, 63, 112, 134, 135, 147, 163, 191, + 195, 235, 237, 240, 242, 248, 253, 254, 259, 268, + 269, 281, 268, 238, 268, 268, 268, 268, 238, 268, + 238, 268, 238, 268, 238, 238, 238, 238, 238, 238, + 238, 238, 238, 238, 238, 238, 238, 238, 238, 268, + 165, 278, 165, 165, 278, 239, 238, 268, 268, 165, 238, 238, 238, 271, 268, 268, 167, 148, 167, 278, 278, 148, 170, 151, 221, 281, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - 271, 271, 271, 271, 271, 271, 271, 167, 269, 271, + 271, 271, 271, 271, 271, 271, 278, 167, 269, 271, 232, 232, 51, 271, 238, 160, 278, 13, 15, 17, 60, 141, 155, 160, 231, 281, 231, 232, 231, 232, 231, 231, 15, 17, 47, 60, 117, 155, 160, 216, @@ -2994,33 +3129,33 @@ static const yytype_uint16 yystos[] = 168, 167, 167, 167, 167, 167, 167, 157, 167, 157, 167, 167, 167, 167, 148, 167, 148, 167, 148, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 271, 238, 268, 278, 157, 167, 167, 278, 167, 167, - 157, 167, 167, 167, 167, 271, 271, 15, 155, 276, - 165, 201, 281, 271, 150, 167, 170, 167, 167, 167, - 231, 160, 278, 231, 231, 231, 231, 231, 166, 231, - 182, 117, 233, 234, 226, 231, 231, 167, 15, 148, - 13, 17, 60, 141, 155, 160, 165, 229, 279, 281, - 13, 15, 17, 60, 141, 155, 160, 165, 230, 267, - 271, 281, 278, 168, 250, 182, 165, 241, 243, 150, - 181, 182, 3, 4, 5, 9, 10, 15, 50, 62, - 67, 75, 76, 109, 111, 113, 118, 122, 125, 130, - 133, 155, 158, 159, 163, 165, 169, 218, 219, 226, - 227, 273, 274, 280, 281, 167, 167, 173, 147, 148, - 148, 148, 148, 148, 148, 168, 256, 148, 167, 10, - 11, 12, 59, 60, 134, 206, 207, 208, 209, 210, - 259, 281, 165, 223, 189, 149, 238, 192, 10, 13, - 160, 194, 51, 271, 233, 13, 17, 60, 141, 155, - 160, 228, 279, 281, 238, 173, 165, 147, 149, 150, - 151, 222, 263, 264, 64, 65, 147, 271, 13, 17, - 60, 112, 141, 155, 160, 165, 187, 211, 213, 279, - 150, 278, 165, 165, 238, 238, 238, 167, 167, 167, - 165, 167, 165, 221, 216, 17, 33, 47, 60, 61, - 76, 107, 110, 113, 129, 141, 155, 214, 281, 271, - 231, 267, 167, 48, 233, 234, 229, 230, 167, 167, - 201, 15, 226, 160, 229, 229, 229, 229, 229, 229, - 166, 221, 160, 278, 230, 230, 230, 230, 230, 230, - 166, 221, 170, 148, 151, 48, 235, 271, 173, 76, - 244, 281, 183, 165, 156, 156, 236, 156, 15, 165, + 271, 238, 268, 278, 157, 167, 167, 278, 167, 157, + 167, 167, 167, 167, 271, 271, 15, 155, 276, 165, + 201, 281, 271, 150, 167, 170, 167, 167, 167, 231, + 160, 278, 231, 231, 231, 231, 231, 166, 231, 182, + 117, 233, 234, 226, 231, 231, 167, 15, 148, 13, + 17, 60, 141, 155, 160, 165, 229, 279, 281, 13, + 15, 17, 60, 141, 155, 160, 165, 230, 267, 271, + 281, 278, 168, 250, 182, 165, 241, 243, 150, 181, + 182, 3, 4, 5, 9, 10, 15, 50, 62, 67, + 75, 76, 109, 111, 113, 118, 122, 125, 130, 133, + 155, 158, 159, 163, 165, 169, 218, 219, 226, 227, + 273, 274, 280, 281, 167, 167, 173, 147, 148, 148, + 148, 148, 148, 148, 168, 256, 148, 167, 10, 11, + 12, 59, 60, 134, 206, 207, 208, 209, 210, 259, + 281, 165, 223, 189, 149, 238, 192, 10, 13, 160, + 194, 51, 271, 233, 13, 17, 60, 141, 155, 160, + 228, 279, 281, 238, 173, 165, 147, 149, 150, 151, + 222, 263, 264, 64, 65, 147, 271, 13, 17, 60, + 112, 141, 155, 160, 165, 187, 211, 213, 279, 150, + 278, 165, 165, 238, 238, 238, 167, 167, 167, 165, + 167, 165, 221, 216, 17, 33, 47, 60, 61, 76, + 107, 110, 113, 129, 141, 155, 214, 281, 271, 231, + 267, 167, 48, 233, 234, 229, 230, 167, 167, 201, + 15, 226, 160, 229, 229, 229, 229, 229, 229, 166, + 221, 160, 278, 230, 230, 230, 230, 230, 230, 166, + 221, 170, 148, 151, 48, 235, 271, 173, 76, 244, + 281, 183, 165, 156, 156, 236, 156, 15, 165, 273, 156, 165, 271, 271, 271, 271, 238, 269, 271, 167, 15, 148, 16, 17, 18, 19, 20, 21, 22, 23, 33, 152, 153, 154, 155, 156, 157, 158, 159, 160, @@ -3041,64 +3176,64 @@ static const yytype_uint16 yystos[] = 170, 165, 226, 229, 230, 221, 221, 165, 165, 214, 229, 167, 267, 230, 167, 267, 271, 167, 167, 168, 150, 245, 246, 281, 238, 238, 238, 165, 238, 165, - 10, 238, 238, 238, 271, 167, 167, 15, 227, 271, + 238, 238, 238, 271, 167, 167, 15, 227, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - 167, 269, 271, 173, 148, 148, 167, 148, 215, 281, - 148, 148, 148, 168, 167, 229, 230, 179, 184, 203, - 204, 209, 278, 151, 160, 151, 220, 281, 221, 223, - 167, 165, 211, 167, 167, 165, 228, 199, 267, 216, - 168, 147, 148, 147, 165, 149, 149, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 70, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 82, 83, 84, 100, 107, 108, 109, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 169, 170, 266, 224, 168, 148, - 211, 10, 167, 170, 167, 4, 212, 267, 271, 148, - 167, 167, 167, 167, 201, 236, 232, 48, 167, 278, - 263, 216, 221, 221, 216, 216, 165, 170, 165, 170, - 148, 114, 115, 116, 134, 139, 247, 277, 278, 147, - 148, 167, 157, 157, 268, 157, 278, 167, 167, 157, - 167, 167, 271, 150, 167, 170, 168, 10, 10, 149, - 10, 167, 10, 10, 10, 149, 220, 238, 50, 62, - 67, 118, 122, 125, 155, 158, 159, 160, 163, 165, - 169, 270, 272, 148, 201, 193, 167, 165, 201, 200, - 216, 170, 167, 263, 175, 268, 268, 265, 168, 147, - 271, 218, 170, 187, 214, 232, 15, 167, 168, 167, - 167, 167, 216, 216, 139, 277, 139, 277, 139, 277, - 278, 114, 115, 116, 15, 173, 247, 165, 165, 167, - 165, 167, 165, 271, 167, 148, 167, 148, 149, 148, - 167, 167, 148, 167, 165, 156, 156, 156, 15, 165, - 156, 270, 270, 270, 270, 270, 238, 269, 270, 16, - 17, 18, 19, 20, 21, 22, 23, 33, 152, 153, - 154, 155, 158, 159, 160, 161, 162, 164, 165, 166, - 190, 216, 165, 197, 216, 167, 201, 168, 168, 167, - 168, 224, 167, 147, 167, 201, 201, 201, 167, 167, - 277, 277, 277, 277, 277, 277, 168, 269, 269, 269, - 269, 149, 10, 149, 10, 10, 149, 149, 10, 149, - 238, 238, 238, 238, 165, 10, 238, 238, 167, 167, + 271, 271, 271, 271, 271, 271, 271, 271, 278, 167, + 269, 271, 173, 148, 148, 167, 148, 215, 281, 148, + 148, 148, 168, 167, 229, 230, 179, 184, 203, 204, + 209, 278, 151, 160, 151, 220, 281, 221, 223, 167, + 165, 211, 167, 167, 165, 228, 199, 267, 216, 168, + 147, 148, 147, 165, 149, 149, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 70, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 82, 83, 84, 100, 107, 108, 109, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 169, 170, 266, 224, 168, 148, 211, + 10, 167, 170, 167, 271, 212, 267, 271, 148, 167, + 167, 167, 167, 201, 236, 232, 48, 167, 278, 263, + 216, 221, 221, 216, 216, 165, 170, 165, 170, 148, + 114, 115, 116, 134, 139, 247, 277, 278, 147, 148, + 167, 157, 157, 268, 157, 278, 167, 157, 167, 167, + 271, 150, 167, 170, 168, 10, 10, 149, 10, 167, + 10, 10, 10, 149, 220, 238, 50, 62, 67, 118, + 122, 125, 155, 158, 159, 160, 163, 165, 169, 270, + 272, 148, 201, 193, 167, 165, 201, 200, 216, 170, + 167, 263, 175, 268, 268, 265, 168, 147, 271, 218, + 170, 187, 214, 232, 15, 167, 168, 167, 167, 167, + 216, 216, 139, 277, 139, 277, 139, 277, 278, 114, + 115, 116, 15, 173, 247, 165, 165, 167, 165, 167, + 165, 271, 167, 148, 167, 148, 149, 148, 167, 167, + 148, 167, 165, 156, 156, 156, 15, 165, 270, 156, + 270, 270, 270, 270, 270, 238, 269, 270, 16, 17, + 18, 19, 20, 21, 22, 23, 33, 152, 153, 154, + 155, 158, 159, 160, 161, 162, 164, 165, 166, 190, + 216, 165, 197, 216, 167, 201, 168, 168, 167, 168, + 224, 167, 147, 167, 201, 201, 201, 167, 167, 277, + 277, 277, 277, 277, 277, 168, 269, 269, 269, 269, + 149, 10, 149, 10, 10, 149, 149, 10, 149, 238, + 238, 238, 238, 165, 238, 238, 167, 167, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, - 270, 270, 270, 270, 270, 270, 270, 270, 270, 167, - 269, 271, 167, 198, 216, 167, 201, 15, 168, 201, - 263, 214, 214, 214, 201, 201, 167, 167, 167, 167, - 148, 215, 167, 148, 148, 167, 167, 157, 157, 157, - 278, 167, 167, 157, 270, 150, 167, 170, 201, 216, - 167, 201, 168, 10, 167, 149, 10, 10, 149, 165, - 165, 165, 167, 165, 270, 167, 201, 149, 167, 148, - 167, 269, 269, 269, 269, 201, 214, 149, 10, 149, - 167, 167, 167, 167, 214, 167, 149 + 270, 270, 270, 270, 270, 270, 278, 167, 269, 271, + 167, 198, 216, 167, 201, 15, 168, 201, 263, 214, + 214, 214, 201, 201, 167, 167, 167, 167, 148, 215, + 167, 148, 148, 167, 167, 157, 157, 157, 278, 167, + 157, 270, 150, 167, 170, 201, 216, 167, 201, 168, + 10, 167, 149, 10, 10, 149, 165, 165, 165, 167, + 165, 270, 167, 201, 149, 167, 148, 167, 269, 269, + 269, 269, 201, 214, 149, 10, 149, 167, 167, 167, + 167, 214, 167, 149 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint16 yyr1[] = +static const yytype_int16 yyr1[] = { 0, 171, 172, 172, 172, 173, 173, 173, 174, 174, 175, 175, 175, 177, 176, 178, 178, 178, 178, 178, @@ -3180,7 +3315,7 @@ static const yytype_uint16 yyr1[] = }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = +static const yytype_int8 yyr2[] = { 0, 2, 2, 2, 2, 1, 2, 2, 1, 3, 4, 5, 4, 0, 5, 1, 1, 1, 1, 1, @@ -3237,20 +3372,20 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, - 3, 1, 4, 7, 7, 7, 7, 4, 4, 5, + 3, 1, 4, 7, 7, 7, 7, 4, 2, 5, 4, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, 4, 3, 3, 3, 3, 1, 4, 7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 5, 4, 2, 5, 4, 4, 2, 2, + 4, 2, 5, 4, 2, 5, 4, 4, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, 4, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8, 11, 4, 4, 6, 4, 4, 6, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 7, 7, 7, 7, 4, 4, 5, 4, 2, + 4, 7, 7, 7, 7, 4, 2, 5, 4, 2, 5, 4, 4, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, 4, 3, @@ -3410,7 +3545,9 @@ yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YY if (yytype < YYNTOKENS) YYPRINT (yyo, yytoknum[yytype], *yyvaluep); # endif + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -3436,7 +3573,7 @@ yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE `------------------------------------------------------------------*/ static void -yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -3459,19 +3596,19 @@ do { \ `------------------------------------------------*/ static void -yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule) +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule) { - unsigned long yylno = yyrline[yyrule]; + int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, - yystos[yyssp[yyi + 1 - yynrhs]], + yystos[+yyssp[yyi + 1 - yynrhs]], &yyvsp[(yyi + 1) - (yynrhs)] , &(yylsp[(yyi + 1) - (yynrhs)]) ); YYFPRINTF (stderr, "\n"); @@ -3516,13 +3653,13 @@ int yydebug; # ifndef yystrlen # if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen +# define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S))) # else /* Return the length of YYSTR. */ -static YYSIZE_T +static YYPTRDIFF_T yystrlen (const char *yystr) { - YYSIZE_T yylen; + YYPTRDIFF_T yylen; for (yylen = 0; yystr[yylen]; yylen++) continue; return yylen; @@ -3558,12 +3695,12 @@ yystpcpy (char *yydest, const char *yysrc) backslash-backslash). YYSTR is taken from yytname. If YYRES is null, do not copy; instead, return the length of what the result would have been. */ -static YYSIZE_T +static YYPTRDIFF_T yytnamerr (char *yyres, const char *yystr) { if (*yystr == '"') { - YYSIZE_T yyn = 0; + YYPTRDIFF_T yyn = 0; char const *yyp = yystr; for (;;) @@ -3594,10 +3731,10 @@ yytnamerr (char *yyres, const char *yystr) do_not_strip_quotes: ; } - if (! yyres) + if (yyres) + return yystpcpy (yyres, yystr) - yyres; + else return yystrlen (yystr); - - return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres); } # endif @@ -3610,19 +3747,19 @@ yytnamerr (char *yyres, const char *yystr) *YYMSG_ALLOC to the required number of bytes. Return 2 if the required number of bytes is too large to store. */ static int -yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, - yytype_int16 *yyssp, int yytoken) +yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, + yy_state_t *yyssp, int yytoken) { - YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); - YYSIZE_T yysize = yysize0; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; /* Internationalized format string. */ const char *yyformat = YY_NULLPTR; - /* Arguments of yyformat. */ + /* Arguments of yyformat: reported tokens (one for the "unexpected", + one per "expected"). */ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - /* Number of reported tokens (one for the "unexpected", one per - "expected"). */ + /* Actual size of YYARG. */ int yycount = 0; + /* Cumulated lengths of YYARG. */ + YYPTRDIFF_T yysize = 0; /* There are many possibilities here to consider: - If this state is a consistent state with a default action, then @@ -3649,7 +3786,9 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, */ if (yytoken != YYEMPTY) { - int yyn = yypact[*yyssp]; + int yyn = yypact[+*yyssp]; + YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); + yysize = yysize0; yyarg[yycount++] = yytname[yytoken]; if (!yypact_value_is_default (yyn)) { @@ -3674,7 +3813,8 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, } yyarg[yycount++] = yytname[yyx]; { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); + YYPTRDIFF_T yysize1 + = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) yysize = yysize1; else @@ -3701,7 +3841,9 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, } { - YYSIZE_T yysize1 = yysize + yystrlen (yyformat); + /* Don't count the "%s"s in the final size, but reserve room for + the terminator. */ + YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1; if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) yysize = yysize1; else @@ -3731,8 +3873,8 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, } else { - yyp++; - yyformat++; + ++yyp; + ++yyformat; } } return 0; @@ -3788,7 +3930,7 @@ YYLTYPE yylloc = yyloc_default; /* Number of syntax errors so far. */ int yynerrs; - int yystate; + yy_state_fast_t yystate; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; @@ -3801,9 +3943,9 @@ YYLTYPE yylloc = yyloc_default; to reallocate them elsewhere. */ /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss; - yytype_int16 *yyssp; + yy_state_t yyssa[YYINITDEPTH]; + yy_state_t *yyss; + yy_state_t *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; @@ -3818,7 +3960,7 @@ YYLTYPE yylloc = yyloc_default; /* The locations where the error started and ended. */ YYLTYPE yyerror_range[3]; - YYSIZE_T yystacksize; + YYPTRDIFF_T yystacksize; int yyn; int yyresult; @@ -3833,7 +3975,7 @@ YYLTYPE yylloc = yyloc_default; /* Buffer for error messages, and its allocated size. */ char yymsgbuf[128]; char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; + YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf; #endif #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) @@ -3867,12 +4009,14 @@ yynewstate: /*--------------------------------------------------------------------. -| yynewstate -- set current state (the top of the stack) to yystate. | +| yysetstate -- set current state (the top of the stack) to yystate. | `--------------------------------------------------------------------*/ yysetstate: YYDPRINTF ((stderr, "Entering state %d\n", yystate)); YY_ASSERT (0 <= yystate && yystate < YYNSTATES); - *yyssp = (yytype_int16) yystate; + YY_IGNORE_USELESS_CAST_BEGIN + *yyssp = YY_CAST (yy_state_t, yystate); + YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE @@ -3880,15 +4024,15 @@ yysetstate: #else { /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1); + YYPTRDIFF_T yysize = yyssp - yyss + 1; # if defined yyoverflow { /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ + yy_state_t *yyss1 = yyss; YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; YYLTYPE *yyls1 = yyls; /* Each stack pointer address is followed by the size of the @@ -3896,9 +4040,9 @@ yysetstate: conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yyls1, yysize * sizeof (*yylsp), + &yyss1, yysize * YYSIZEOF (*yyssp), + &yyvs1, yysize * YYSIZEOF (*yyvsp), + &yyls1, yysize * YYSIZEOF (*yylsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; @@ -3913,9 +4057,10 @@ yysetstate: yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; + yy_state_t *yyss1 = yyss; union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + YY_CAST (union yyalloc *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); @@ -3931,8 +4076,10 @@ yysetstate: yyvsp = yyvs + yysize - 1; yylsp = yyls + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long) yystacksize)); + YY_IGNORE_USELESS_CAST_BEGIN + YYDPRINTF ((stderr, "Stack size increased to %ld\n", + YY_CAST (long, yystacksize))); + YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) YYABORT; @@ -3998,15 +4145,14 @@ yybackup: /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token. */ - yychar = YYEMPTY; - yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END *++yylsp = yylloc; + + /* Discard the shifted token. */ + yychar = YYEMPTY; goto yynewstate; @@ -4045,64 +4191,64 @@ yyreduce: { case 3: #line 454 "dtool/src/cppparser/cppBison.yxx" - { +{ current_expr = (yyvsp[0].u.expr); } -#line 4052 "built/tmp/cppBison.yxx.c" +#line 4198 "built/tmp/cppBison.yxx.c" break; case 4: #line 458 "dtool/src/cppparser/cppBison.yxx" - { +{ current_type = (yyvsp[0].u.type); } -#line 4060 "built/tmp/cppBison.yxx.c" +#line 4206 "built/tmp/cppBison.yxx.c" break; case 10: #line 476 "dtool/src/cppparser/cppBison.yxx" - { +{ delete (yyvsp[-1].u.expr); } -#line 4068 "built/tmp/cppBison.yxx.c" +#line 4214 "built/tmp/cppBison.yxx.c" break; case 11: #line 480 "dtool/src/cppparser/cppBison.yxx" - { +{ delete (yyvsp[-2].u.expr); } -#line 4076 "built/tmp/cppBison.yxx.c" +#line 4222 "built/tmp/cppBison.yxx.c" break; case 12: #line 484 "dtool/src/cppparser/cppBison.yxx" - { +{ delete (yyvsp[-1].u.expr); } -#line 4084 "built/tmp/cppBison.yxx.c" +#line 4230 "built/tmp/cppBison.yxx.c" break; case 13: #line 496 "dtool/src/cppparser/cppBison.yxx" - { +{ push_storage_class((current_storage_class & ~CPPInstance::SC_c_binding) | ((yyvsp[-1].u.integer) & CPPInstance::SC_c_binding)); } -#line 4093 "built/tmp/cppBison.yxx.c" +#line 4239 "built/tmp/cppBison.yxx.c" break; case 14: #line 501 "dtool/src/cppparser/cppBison.yxx" - { +{ pop_storage_class(); } -#line 4101 "built/tmp/cppBison.yxx.c" +#line 4247 "built/tmp/cppBison.yxx.c" break; case 21: #line 514 "dtool/src/cppparser/cppBison.yxx" - { +{ if (publish_nest_level != 0) { yyerror("Unclosed __begin_publish", publish_loc); publish_nest_level = 0; @@ -4114,12 +4260,12 @@ yyreduce: publish_nest_level++; current_scope->set_current_vis(V_published); } -#line 4118 "built/tmp/cppBison.yxx.c" +#line 4264 "built/tmp/cppBison.yxx.c" break; case 22: #line 527 "dtool/src/cppparser/cppBison.yxx" - { +{ if (publish_nest_level != 1) { yyerror("Unmatched __end_publish", (yylsp[0])); } else { @@ -4127,48 +4273,48 @@ yyreduce: } publish_nest_level = 0; } -#line 4131 "built/tmp/cppBison.yxx.c" +#line 4277 "built/tmp/cppBison.yxx.c" break; case 23: #line 536 "dtool/src/cppparser/cppBison.yxx" - { +{ current_scope->set_current_vis(V_published); } -#line 4139 "built/tmp/cppBison.yxx.c" +#line 4285 "built/tmp/cppBison.yxx.c" break; case 24: #line 540 "dtool/src/cppparser/cppBison.yxx" - { +{ if (publish_nest_level > 0) { current_scope->set_current_vis(V_published); } else { current_scope->set_current_vis(V_public); } } -#line 4151 "built/tmp/cppBison.yxx.c" +#line 4297 "built/tmp/cppBison.yxx.c" break; case 25: #line 548 "dtool/src/cppparser/cppBison.yxx" - { +{ current_scope->set_current_vis(V_protected); } -#line 4159 "built/tmp/cppBison.yxx.c" +#line 4305 "built/tmp/cppBison.yxx.c" break; case 26: #line 552 "dtool/src/cppparser/cppBison.yxx" - { +{ current_scope->set_current_vis(V_private); } -#line 4167 "built/tmp/cppBison.yxx.c" +#line 4313 "built/tmp/cppBison.yxx.c" break; case 27: #line 556 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPDeclaration *getter = (yyvsp[-3].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (getter == nullptr || getter->get_subtype() != CPPDeclaration::ST_function_group) { yyerror("Reference to non-existent or invalid getter: " + (yyvsp[-3].u.identifier)->get_fully_scoped_name(), (yylsp[-3])); @@ -4188,12 +4334,12 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-7])); } } -#line 4192 "built/tmp/cppBison.yxx.c" +#line 4338 "built/tmp/cppBison.yxx.c" break; case 28: #line 577 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPDeclaration *getter = (yyvsp[-6].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (getter == nullptr || getter->get_subtype() != CPPDeclaration::ST_function_group) { yyerror("Reference to non-existent or invalid getter: " + (yyvsp[-6].u.identifier)->get_fully_scoped_name(), (yylsp[-6])); @@ -4219,12 +4365,12 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-10])); } } -#line 4223 "built/tmp/cppBison.yxx.c" +#line 4369 "built/tmp/cppBison.yxx.c" break; case 29: #line 604 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPDeclaration *length_getter = (yyvsp[-4].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (length_getter == nullptr || length_getter->get_subtype() != CPPDeclaration::ST_function_group) { yyerror("reference to non-existent or invalid length method: " + (yyvsp[-4].u.identifier)->get_fully_scoped_name(), (yylsp[-4])); @@ -4244,12 +4390,12 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-8])); } } -#line 4248 "built/tmp/cppBison.yxx.c" +#line 4394 "built/tmp/cppBison.yxx.c" break; case 30: #line 625 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPDeclaration *length_getter = (yyvsp[-6].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (length_getter == nullptr || length_getter->get_subtype() != CPPDeclaration::ST_function_group) { yyerror("reference to non-existent or invalid length method: " + (yyvsp[-6].u.identifier)->get_fully_scoped_name(), (yylsp[-6])); @@ -4277,12 +4423,12 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-10])); } } -#line 4281 "built/tmp/cppBison.yxx.c" +#line 4427 "built/tmp/cppBison.yxx.c" break; case 31: #line 654 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPDeclaration *length_getter = (yyvsp[-8].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (length_getter == nullptr || length_getter->get_subtype() != CPPDeclaration::ST_function_group) { yyerror("reference to non-existent or invalid length method: " + (yyvsp[-8].u.identifier)->get_fully_scoped_name(), (yylsp[-8])); @@ -4317,12 +4463,12 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-12])); } } -#line 4321 "built/tmp/cppBison.yxx.c" +#line 4467 "built/tmp/cppBison.yxx.c" break; case 32: #line 690 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPDeclaration *length_getter = (yyvsp[-10].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (length_getter == nullptr || length_getter->get_subtype() != CPPDeclaration::ST_function_group) { yyerror("reference to non-existent or invalid length method: " + (yyvsp[-10].u.identifier)->get_fully_scoped_name(), (yylsp[-10])); @@ -4364,12 +4510,12 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-14])); } } -#line 4368 "built/tmp/cppBison.yxx.c" +#line 4514 "built/tmp/cppBison.yxx.c" break; case 33: #line 733 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPDeclaration *getter = (yyvsp[-2].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (getter == nullptr || getter->get_subtype() != CPPDeclaration::ST_function_group) { yyerror("reference to non-existent or invalid item getter method: " + (yyvsp[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-2])); @@ -4380,12 +4526,12 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-6])); } } -#line 4384 "built/tmp/cppBison.yxx.c" +#line 4530 "built/tmp/cppBison.yxx.c" break; case 34: #line 745 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPDeclaration *getter = (yyvsp[-2].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (getter == nullptr || getter->get_subtype() != CPPDeclaration::ST_function_group) { yyerror("Reference to non-existent or invalid getter: " + (yyvsp[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-2])); @@ -4405,12 +4551,12 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-8])); } } -#line 4409 "built/tmp/cppBison.yxx.c" +#line 4555 "built/tmp/cppBison.yxx.c" break; case 35: #line 766 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPDeclaration *getter = (yyvsp[-5].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (getter == nullptr || getter->get_subtype() != CPPDeclaration::ST_function_group) { yyerror("Reference to non-existent or invalid getter: " + (yyvsp[-5].u.identifier)->get_fully_scoped_name(), (yylsp[-5])); @@ -4445,12 +4591,12 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-11])); } } -#line 4449 "built/tmp/cppBison.yxx.c" +#line 4595 "built/tmp/cppBison.yxx.c" break; case 36: #line 802 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPDeclaration *length_getter = (yyvsp[-4].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (length_getter == nullptr || length_getter->get_subtype() != CPPDeclaration::ST_function_group) { yyerror("reference to non-existent or invalid length method: " + (yyvsp[-4].u.identifier)->get_fully_scoped_name(), (yylsp[-4])); @@ -4483,12 +4629,12 @@ yyreduce: } } } -#line 4487 "built/tmp/cppBison.yxx.c" +#line 4633 "built/tmp/cppBison.yxx.c" break; case 37: #line 836 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPDeclaration *getter = (yyvsp[-2].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (getter == nullptr || getter->get_subtype() != CPPDeclaration::ST_function_group) { yyerror("Reference to non-existent or invalid getter: " + (yyvsp[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-2])); @@ -4509,12 +4655,12 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-8])); } } -#line 4513 "built/tmp/cppBison.yxx.c" +#line 4659 "built/tmp/cppBison.yxx.c" break; case 38: #line 858 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPDeclaration *getter = (yyvsp[-6].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (getter == nullptr || getter->get_subtype() != CPPDeclaration::ST_function_group) { yyerror("Reference to non-existent or invalid getter: " + (yyvsp[-6].u.identifier)->get_fully_scoped_name(), (yylsp[-6])); @@ -4549,12 +4695,12 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-12])); } } -#line 4553 "built/tmp/cppBison.yxx.c" +#line 4699 "built/tmp/cppBison.yxx.c" break; case 39: #line 894 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPDeclaration *length_getter = (yyvsp[-4].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (length_getter == nullptr || length_getter->get_subtype() != CPPDeclaration::ST_function_group) { yyerror("reference to non-existent or invalid length method: " + (yyvsp[-4].u.identifier)->get_fully_scoped_name(), (yylsp[-4])); @@ -4575,12 +4721,12 @@ yyreduce: current_scope->add_declaration(make_seq, global_scope, current_lexer, (yylsp[-8])); } } -#line 4579 "built/tmp/cppBison.yxx.c" +#line 4725 "built/tmp/cppBison.yxx.c" break; case 40: #line 916 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPExpression::Result result = (yyvsp[-4].u.expr)->evaluate(); if (result._type == CPPExpression::RT_error) { yywarning("static_assert requires a constant expression", (yylsp[-4])); @@ -4590,12 +4736,12 @@ yyreduce: yywarning("static_assert failed: " + str.str(), (yylsp[-4])); } } -#line 4594 "built/tmp/cppBison.yxx.c" +#line 4740 "built/tmp/cppBison.yxx.c" break; case 41: #line 927 "dtool/src/cppparser/cppBison.yxx" - { +{ // This alternative version of static_assert was introduced in C++17. CPPExpression::Result result = (yyvsp[-2].u.expr)->evaluate(); if (result._type == CPPExpression::RT_error) { @@ -4604,56 +4750,56 @@ yyreduce: yywarning("static_assert failed", (yylsp[-2])); } } -#line 4608 "built/tmp/cppBison.yxx.c" +#line 4754 "built/tmp/cppBison.yxx.c" break; case 42: #line 940 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPScope *new_scope = new CPPScope(current_scope, CPPNameComponent("temp"), V_public); push_scope(new_scope); } -#line 4618 "built/tmp/cppBison.yxx.c" +#line 4764 "built/tmp/cppBison.yxx.c" break; case 43: #line 946 "dtool/src/cppparser/cppBison.yxx" - { +{ delete current_scope; pop_scope(); } -#line 4627 "built/tmp/cppBison.yxx.c" +#line 4773 "built/tmp/cppBison.yxx.c" break; case 44: #line 955 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.integer) = 0; } -#line 4635 "built/tmp/cppBison.yxx.c" +#line 4781 "built/tmp/cppBison.yxx.c" break; case 45: #line 959 "dtool/src/cppparser/cppBison.yxx" - { +{ // This isn't really a storage class, but it helps with parsing. (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_const; } -#line 4644 "built/tmp/cppBison.yxx.c" +#line 4790 "built/tmp/cppBison.yxx.c" break; case 46: #line 964 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_extern; } -#line 4652 "built/tmp/cppBison.yxx.c" +#line 4798 "built/tmp/cppBison.yxx.c" break; case 47: #line 968 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_extern; if ((yyvsp[-1].str) == "C") { (yyval.u.integer) |= (int)CPPInstance::SC_c_binding; @@ -4663,125 +4809,125 @@ yyreduce: yywarning("Ignoring unknown linkage type \"" + (yyvsp[-1].str) + "\"", (yylsp[-1])); } } -#line 4667 "built/tmp/cppBison.yxx.c" +#line 4813 "built/tmp/cppBison.yxx.c" break; case 48: #line 979 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_static; } -#line 4675 "built/tmp/cppBison.yxx.c" +#line 4821 "built/tmp/cppBison.yxx.c" break; case 49: #line 983 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_inline; } -#line 4683 "built/tmp/cppBison.yxx.c" +#line 4829 "built/tmp/cppBison.yxx.c" break; case 50: #line 987 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_virtual; } -#line 4691 "built/tmp/cppBison.yxx.c" +#line 4837 "built/tmp/cppBison.yxx.c" break; case 51: #line 991 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_explicit; } -#line 4699 "built/tmp/cppBison.yxx.c" +#line 4845 "built/tmp/cppBison.yxx.c" break; case 52: #line 995 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_register; } -#line 4707 "built/tmp/cppBison.yxx.c" +#line 4853 "built/tmp/cppBison.yxx.c" break; case 53: #line 999 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_volatile; } -#line 4715 "built/tmp/cppBison.yxx.c" +#line 4861 "built/tmp/cppBison.yxx.c" break; case 54: #line 1003 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_mutable; } -#line 4723 "built/tmp/cppBison.yxx.c" +#line 4869 "built/tmp/cppBison.yxx.c" break; case 55: #line 1007 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_constexpr; } -#line 4731 "built/tmp/cppBison.yxx.c" +#line 4877 "built/tmp/cppBison.yxx.c" break; case 56: #line 1011 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_blocking; } -#line 4739 "built/tmp/cppBison.yxx.c" +#line 4885 "built/tmp/cppBison.yxx.c" break; case 57: #line 1015 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_extension; } -#line 4747 "built/tmp/cppBison.yxx.c" +#line 4893 "built/tmp/cppBison.yxx.c" break; case 58: #line 1019 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_thread_local; } -#line 4755 "built/tmp/cppBison.yxx.c" +#line 4901 "built/tmp/cppBison.yxx.c" break; case 59: #line 1023 "dtool/src/cppparser/cppBison.yxx" - { +{ // Ignore attribute specifiers for now. (yyval.u.integer) = (yyvsp[0].u.integer); } -#line 4764 "built/tmp/cppBison.yxx.c" +#line 4910 "built/tmp/cppBison.yxx.c" break; case 60: #line 1028 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.integer) = (yyvsp[0].u.integer); } -#line 4772 "built/tmp/cppBison.yxx.c" +#line 4918 "built/tmp/cppBison.yxx.c" break; case 61: #line 1032 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.integer) = (yyvsp[0].u.integer); } -#line 4780 "built/tmp/cppBison.yxx.c" +#line 4926 "built/tmp/cppBison.yxx.c" break; case 67: #line 1050 "dtool/src/cppparser/cppBison.yxx" - { +{ // We don't need to push/pop type, because we can't nest // type_like_declaration. if ((yyvsp[0].u.decl)->as_type_declaration()) { @@ -4791,20 +4937,20 @@ yyreduce: } push_storage_class((yyvsp[-1].u.integer)); } -#line 4795 "built/tmp/cppBison.yxx.c" +#line 4941 "built/tmp/cppBison.yxx.c" break; case 68: #line 1061 "dtool/src/cppparser/cppBison.yxx" - { +{ pop_storage_class(); } -#line 4803 "built/tmp/cppBison.yxx.c" +#line 4949 "built/tmp/cppBison.yxx.c" break; case 69: #line 1066 "dtool/src/cppparser/cppBison.yxx" - { +{ // We don't really care about the storage class here. In fact, it's // not actually legal to define a class or struct using a particular // storage class, but we require it just to help yacc out in its @@ -4812,12 +4958,12 @@ yyreduce: current_scope->add_declaration((yyvsp[-1].u.decl), global_scope, current_lexer, (yylsp[-1])); } -#line 4816 "built/tmp/cppBison.yxx.c" +#line 4962 "built/tmp/cppBison.yxx.c" break; case 70: #line 1075 "dtool/src/cppparser/cppBison.yxx" - { +{ if ((yyvsp[0].u.instance) != nullptr) { // Push the scope so that the initializers can make use of things defined // in the class body. @@ -4825,36 +4971,36 @@ yyreduce: (yyvsp[0].u.instance)->_storage_class |= (current_storage_class | (yyvsp[-1].u.integer)); } } -#line 4829 "built/tmp/cppBison.yxx.c" +#line 4975 "built/tmp/cppBison.yxx.c" break; case 71: #line 1084 "dtool/src/cppparser/cppBison.yxx" - { +{ if ((yyvsp[-2].u.instance) != nullptr) { pop_scope(); current_scope->add_declaration((yyvsp[-2].u.instance), global_scope, current_lexer, (yylsp[-2])); (yyvsp[-2].u.instance)->set_initializer((yyvsp[0].u.expr)); } } -#line 4841 "built/tmp/cppBison.yxx.c" +#line 4987 "built/tmp/cppBison.yxx.c" break; case 72: #line 1092 "dtool/src/cppparser/cppBison.yxx" - { +{ if ((yyvsp[-1].u.instance) != nullptr) { (yyvsp[-1].u.instance)->_storage_class |= (current_storage_class | (yyvsp[-2].u.integer)); current_scope->add_declaration((yyvsp[-1].u.instance), global_scope, current_lexer, (yylsp[-1])); (yyvsp[-1].u.instance)->set_initializer((yyvsp[0].u.expr)); } } -#line 4853 "built/tmp/cppBison.yxx.c" +#line 4999 "built/tmp/cppBison.yxx.c" break; case 74: #line 1108 "dtool/src/cppparser/cppBison.yxx" - { +{ if (current_storage_class & CPPInstance::SC_const) { (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); } @@ -4864,12 +5010,12 @@ yyreduce: inst->set_initializer((yyvsp[0].u.expr)); current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-1])); } -#line 4868 "built/tmp/cppBison.yxx.c" +#line 5014 "built/tmp/cppBison.yxx.c" break; case 75: #line 1119 "dtool/src/cppparser/cppBison.yxx" - { +{ if (current_storage_class & CPPInstance::SC_const) { (yyvsp[-3].u.inst_ident)->add_modifier(IIT_const); } @@ -4879,12 +5025,12 @@ yyreduce: inst->set_initializer((yyvsp[-2].u.expr)); current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-3])); } -#line 4883 "built/tmp/cppBison.yxx.c" +#line 5029 "built/tmp/cppBison.yxx.c" break; case 76: #line 1134 "dtool/src/cppparser/cppBison.yxx" - { +{ // We don't need to push/pop type, because we can't nest // multiple_var_declarations. if ((yyvsp[0].u.decl)->as_type_declaration()) { @@ -4894,20 +5040,20 @@ yyreduce: } push_storage_class((yyvsp[-1].u.integer)); } -#line 4898 "built/tmp/cppBison.yxx.c" +#line 5044 "built/tmp/cppBison.yxx.c" break; case 77: #line 1145 "dtool/src/cppparser/cppBison.yxx" - { +{ pop_storage_class(); } -#line 4906 "built/tmp/cppBison.yxx.c" +#line 5052 "built/tmp/cppBison.yxx.c" break; case 78: #line 1149 "dtool/src/cppparser/cppBison.yxx" - { +{ if ((yyvsp[-1].u.instance) != nullptr) { CPPInstance *inst = (yyvsp[-1].u.instance)->as_instance(); if (inst != nullptr) { @@ -4918,12 +5064,12 @@ yyreduce: } } } -#line 4922 "built/tmp/cppBison.yxx.c" +#line 5068 "built/tmp/cppBison.yxx.c" break; case 79: #line 1164 "dtool/src/cppparser/cppBison.yxx" - { +{ if (current_storage_class & CPPInstance::SC_const) { (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); } @@ -4931,12 +5077,12 @@ yyreduce: CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[-1].u.inst_ident), current_scope, (yylsp[-1]).file); current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[-1])); } -#line 4935 "built/tmp/cppBison.yxx.c" +#line 5081 "built/tmp/cppBison.yxx.c" break; case 80: #line 1173 "dtool/src/cppparser/cppBison.yxx" - { +{ if (current_storage_class & CPPInstance::SC_const) { (yyvsp[-3].u.inst_ident)->add_modifier(IIT_const); } @@ -4944,12 +5090,12 @@ yyreduce: CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[-3].u.inst_ident), current_scope, (yylsp[-3]).file); current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[-3])); } -#line 4948 "built/tmp/cppBison.yxx.c" +#line 5094 "built/tmp/cppBison.yxx.c" break; case 81: #line 1187 "dtool/src/cppparser/cppBison.yxx" - { +{ // Create a scope for this function. CPPScope *scope = new CPPScope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope), (yyvsp[-1].u.identifier)->_names.back(), V_private); @@ -4961,12 +5107,12 @@ yyreduce: push_scope(scope); } -#line 4965 "built/tmp/cppBison.yxx.c" +#line 5111 "built/tmp/cppBison.yxx.c" break; case 82: #line 1200 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPScope *scope = (yyvsp[-5].u.identifier)->get_scope(current_scope, global_scope); CPPType *type; std::string simple_name = (yyvsp[-5].u.identifier)->get_simple_name(); @@ -4989,12 +5135,12 @@ yyreduce: (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); } -#line 4993 "built/tmp/cppBison.yxx.c" +#line 5139 "built/tmp/cppBison.yxx.c" break; case 83: #line 1226 "dtool/src/cppparser/cppBison.yxx" - { +{ // Create a scope for this function. CPPScope *scope = new CPPScope((yyvsp[-2].u.identifier)->get_scope(current_scope, global_scope), (yyvsp[-2].u.identifier)->_names.back(), V_private); @@ -5006,12 +5152,12 @@ yyreduce: push_scope(scope); } -#line 5010 "built/tmp/cppBison.yxx.c" +#line 5156 "built/tmp/cppBison.yxx.c" break; case 84: #line 1239 "dtool/src/cppparser/cppBison.yxx" - { +{ pop_scope(); CPPType *type = (yyvsp[-8].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type == nullptr) { @@ -5024,12 +5170,12 @@ yyreduce: (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-8]).file); } -#line 5028 "built/tmp/cppBison.yxx.c" +#line 5174 "built/tmp/cppBison.yxx.c" break; case 85: #line 1253 "dtool/src/cppparser/cppBison.yxx" - { +{ // Create a scope for this function. CPPScope *scope = new CPPScope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope), (yyvsp[-1].u.identifier)->_names.back(), V_private); @@ -5041,12 +5187,12 @@ yyreduce: push_scope(scope); } -#line 5045 "built/tmp/cppBison.yxx.c" +#line 5191 "built/tmp/cppBison.yxx.c" break; case 86: #line 1266 "dtool/src/cppparser/cppBison.yxx" - { +{ pop_scope(); CPPType *type; if ((yyvsp[-5].u.identifier)->get_simple_name() == current_scope->get_simple_name()) { @@ -5063,20 +5209,20 @@ yyreduce: (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); } -#line 5067 "built/tmp/cppBison.yxx.c" +#line 5213 "built/tmp/cppBison.yxx.c" break; case 87: #line 1289 "dtool/src/cppparser/cppBison.yxx" - { +{ push_scope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope)); } -#line 5075 "built/tmp/cppBison.yxx.c" +#line 5221 "built/tmp/cppBison.yxx.c" break; case 88: #line 1293 "dtool/src/cppparser/cppBison.yxx" - { +{ pop_scope(); if ((yyvsp[-5].u.identifier)->is_scoped()) { yyerror("Invalid destructor name: ~" + (yyvsp[-5].u.identifier)->get_fully_scoped_name(), (yylsp[-5])); @@ -5094,20 +5240,20 @@ yyreduce: (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); } } -#line 5098 "built/tmp/cppBison.yxx.c" +#line 5244 "built/tmp/cppBison.yxx.c" break; case 89: #line 1319 "dtool/src/cppparser/cppBison.yxx" - { +{ push_scope((yyvsp[-2].u.inst_ident)->get_scope(current_scope, global_scope)); } -#line 5106 "built/tmp/cppBison.yxx.c" +#line 5252 "built/tmp/cppBison.yxx.c" break; case 90: #line 1323 "dtool/src/cppparser/cppBison.yxx" - { +{ pop_scope(); CPPType *type = (yyvsp[-10].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type == nullptr) { @@ -5120,20 +5266,20 @@ yyreduce: ii->add_func_modifier((yyvsp[-3].u.param_list), (yyvsp[-1].u.integer)); (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-10]).file); } -#line 5124 "built/tmp/cppBison.yxx.c" +#line 5270 "built/tmp/cppBison.yxx.c" break; case 91: #line 1337 "dtool/src/cppparser/cppBison.yxx" - { +{ push_scope((yyvsp[-2].u.inst_ident)->get_scope(current_scope, global_scope)); } -#line 5132 "built/tmp/cppBison.yxx.c" +#line 5278 "built/tmp/cppBison.yxx.c" break; case 92: #line 1341 "dtool/src/cppparser/cppBison.yxx" - { +{ pop_scope(); CPPType *type = (yyvsp[-11].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type == nullptr) { @@ -5146,22 +5292,22 @@ yyreduce: ii->add_func_modifier((yyvsp[-3].u.param_list), (yyvsp[-1].u.integer)); (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-11]).file); } -#line 5150 "built/tmp/cppBison.yxx.c" +#line 5296 "built/tmp/cppBison.yxx.c" break; case 93: #line 1357 "dtool/src/cppparser/cppBison.yxx" - { +{ if ((yyvsp[-3].u.identifier) != nullptr) { push_scope((yyvsp[-3].u.identifier)->get_scope(current_scope, global_scope)); } } -#line 5160 "built/tmp/cppBison.yxx.c" +#line 5306 "built/tmp/cppBison.yxx.c" break; case 94: #line 1363 "dtool/src/cppparser/cppBison.yxx" - { +{ if ((yyvsp[-7].u.identifier) != nullptr) { pop_scope(); } @@ -5185,22 +5331,22 @@ yyreduce: (yyval.u.instance) = CPPInstance::make_typecast_function (new CPPInstance((yyvsp[-6].u.type), (yyvsp[-5].u.inst_ident), 0, (yylsp[-5]).file), ident, (yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); } -#line 5189 "built/tmp/cppBison.yxx.c" +#line 5335 "built/tmp/cppBison.yxx.c" break; case 95: #line 1388 "dtool/src/cppparser/cppBison.yxx" - { +{ if ((yyvsp[-4].u.identifier) != nullptr) { push_scope((yyvsp[-4].u.identifier)->get_scope(current_scope, global_scope)); } } -#line 5199 "built/tmp/cppBison.yxx.c" +#line 5345 "built/tmp/cppBison.yxx.c" break; case 96: #line 1394 "dtool/src/cppparser/cppBison.yxx" - { +{ if ((yyvsp[-8].u.identifier) != nullptr) { pop_scope(); } @@ -5215,12 +5361,12 @@ yyreduce: (yyval.u.instance) = CPPInstance::make_typecast_function (new CPPInstance((yyvsp[-6].u.type), (yyvsp[-5].u.inst_ident), 0, (yylsp[-5]).file), ident, (yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); } -#line 5219 "built/tmp/cppBison.yxx.c" +#line 5365 "built/tmp/cppBison.yxx.c" break; case 97: #line 1414 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPDeclaration *decl = (yyvsp[0].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (decl != nullptr) { @@ -5229,607 +5375,607 @@ yyreduce: (yyval.u.instance) = nullptr; } } -#line 5233 "built/tmp/cppBison.yxx.c" +#line 5379 "built/tmp/cppBison.yxx.c" break; case 98: #line 1427 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.integer) = 0; } -#line 5241 "built/tmp/cppBison.yxx.c" - break; - - case 99: -#line 1431 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_const_method; -} -#line 5249 "built/tmp/cppBison.yxx.c" - break; - - case 100: -#line 1435 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_volatile_method; -} -#line 5257 "built/tmp/cppBison.yxx.c" - break; - - case 101: -#line 1439 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_noexcept; -} -#line 5265 "built/tmp/cppBison.yxx.c" - break; - - case 102: -#line 1452 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_final; -} -#line 5273 "built/tmp/cppBison.yxx.c" - break; - - case 103: -#line 1456 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_override; -} -#line 5281 "built/tmp/cppBison.yxx.c" - break; - - case 104: -#line 1460 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_lvalue_method; -} -#line 5289 "built/tmp/cppBison.yxx.c" - break; - - case 105: -#line 1464 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_rvalue_method; -} -#line 5297 "built/tmp/cppBison.yxx.c" - break; - - case 106: -#line 1468 "dtool/src/cppparser/cppBison.yxx" - { - // Used for lambdas, currently ignored. - (yyval.u.integer) = (yyvsp[-1].u.integer); -} -#line 5306 "built/tmp/cppBison.yxx.c" - break; - - case 107: -#line 1473 "dtool/src/cppparser/cppBison.yxx" - { - // Used for lambdas in C++17, currently ignored. - (yyval.u.integer) = (yyvsp[-1].u.integer); -} -#line 5315 "built/tmp/cppBison.yxx.c" - break; - - case 108: -#line 1478 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.integer) = (yyvsp[-3].u.integer); -} -#line 5323 "built/tmp/cppBison.yxx.c" - break; - - case 109: -#line 1482 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.integer) = (yyvsp[-4].u.integer); -} -#line 5331 "built/tmp/cppBison.yxx.c" - break; - - case 110: -#line 1486 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.integer) = (yyvsp[-5].u.integer); -} -#line 5339 "built/tmp/cppBison.yxx.c" - break; - - case 111: -#line 1490 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.integer) = (yyvsp[-3].u.integer); -} -#line 5347 "built/tmp/cppBison.yxx.c" - break; - - case 112: -#line 1497 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "!"; -} -#line 5355 "built/tmp/cppBison.yxx.c" - break; - - case 113: -#line 1501 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "~"; -} -#line 5363 "built/tmp/cppBison.yxx.c" - break; - - case 114: -#line 1505 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "*"; -} -#line 5371 "built/tmp/cppBison.yxx.c" - break; - - case 115: -#line 1509 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "/"; -} -#line 5379 "built/tmp/cppBison.yxx.c" - break; - - case 116: -#line 1513 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "%"; -} #line 5387 "built/tmp/cppBison.yxx.c" break; - case 117: -#line 1517 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "+"; + case 99: +#line 1431 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_const_method; } #line 5395 "built/tmp/cppBison.yxx.c" break; - case 118: -#line 1521 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "-"; + case 100: +#line 1435 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_volatile_method; } #line 5403 "built/tmp/cppBison.yxx.c" break; - case 119: -#line 1525 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "|"; + case 101: +#line 1439 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_noexcept; } #line 5411 "built/tmp/cppBison.yxx.c" break; - case 120: -#line 1529 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "&"; + case 102: +#line 1452 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_final; } #line 5419 "built/tmp/cppBison.yxx.c" break; - case 121: -#line 1533 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "^"; + case 103: +#line 1456 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_override; } #line 5427 "built/tmp/cppBison.yxx.c" break; - case 122: -#line 1537 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "||"; + case 104: +#line 1460 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_lvalue_method; } #line 5435 "built/tmp/cppBison.yxx.c" break; - case 123: -#line 1541 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "&&"; + case 105: +#line 1464 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPFunctionType::F_rvalue_method; } #line 5443 "built/tmp/cppBison.yxx.c" break; + case 106: +#line 1468 "dtool/src/cppparser/cppBison.yxx" +{ + // Used for lambdas, currently ignored. + (yyval.u.integer) = (yyvsp[-1].u.integer); +} +#line 5452 "built/tmp/cppBison.yxx.c" + break; + + case 107: +#line 1473 "dtool/src/cppparser/cppBison.yxx" +{ + // Used for lambdas in C++17, currently ignored. + (yyval.u.integer) = (yyvsp[-1].u.integer); +} +#line 5461 "built/tmp/cppBison.yxx.c" + break; + + case 108: +#line 1478 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.integer) = (yyvsp[-3].u.integer); +} +#line 5469 "built/tmp/cppBison.yxx.c" + break; + + case 109: +#line 1482 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.integer) = (yyvsp[-4].u.integer); +} +#line 5477 "built/tmp/cppBison.yxx.c" + break; + + case 110: +#line 1486 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.integer) = (yyvsp[-5].u.integer); +} +#line 5485 "built/tmp/cppBison.yxx.c" + break; + + case 111: +#line 1490 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.integer) = (yyvsp[-3].u.integer); +} +#line 5493 "built/tmp/cppBison.yxx.c" + break; + + case 112: +#line 1497 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "!"; +} +#line 5501 "built/tmp/cppBison.yxx.c" + break; + + case 113: +#line 1501 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "~"; +} +#line 5509 "built/tmp/cppBison.yxx.c" + break; + + case 114: +#line 1505 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "*"; +} +#line 5517 "built/tmp/cppBison.yxx.c" + break; + + case 115: +#line 1509 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "/"; +} +#line 5525 "built/tmp/cppBison.yxx.c" + break; + + case 116: +#line 1513 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "%"; +} +#line 5533 "built/tmp/cppBison.yxx.c" + break; + + case 117: +#line 1517 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "+"; +} +#line 5541 "built/tmp/cppBison.yxx.c" + break; + + case 118: +#line 1521 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "-"; +} +#line 5549 "built/tmp/cppBison.yxx.c" + break; + + case 119: +#line 1525 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "|"; +} +#line 5557 "built/tmp/cppBison.yxx.c" + break; + + case 120: +#line 1529 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "&"; +} +#line 5565 "built/tmp/cppBison.yxx.c" + break; + + case 121: +#line 1533 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "^"; +} +#line 5573 "built/tmp/cppBison.yxx.c" + break; + + case 122: +#line 1537 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "||"; +} +#line 5581 "built/tmp/cppBison.yxx.c" + break; + + case 123: +#line 1541 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "&&"; +} +#line 5589 "built/tmp/cppBison.yxx.c" + break; + case 124: #line 1545 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.str) = "=="; } -#line 5451 "built/tmp/cppBison.yxx.c" +#line 5597 "built/tmp/cppBison.yxx.c" break; case 125: #line 1549 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.str) = "!="; } -#line 5459 "built/tmp/cppBison.yxx.c" +#line 5605 "built/tmp/cppBison.yxx.c" break; case 126: #line 1553 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.str) = "<="; } -#line 5467 "built/tmp/cppBison.yxx.c" +#line 5613 "built/tmp/cppBison.yxx.c" break; case 127: #line 1557 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.str) = ">="; } -#line 5475 "built/tmp/cppBison.yxx.c" +#line 5621 "built/tmp/cppBison.yxx.c" break; case 128: #line 1561 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.str) = "<"; } -#line 5483 "built/tmp/cppBison.yxx.c" +#line 5629 "built/tmp/cppBison.yxx.c" break; case 129: #line 1565 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.str) = ">"; } -#line 5491 "built/tmp/cppBison.yxx.c" +#line 5637 "built/tmp/cppBison.yxx.c" break; case 130: #line 1569 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.str) = "<<"; } -#line 5499 "built/tmp/cppBison.yxx.c" +#line 5645 "built/tmp/cppBison.yxx.c" break; case 131: #line 1573 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.str) = ">>"; } -#line 5507 "built/tmp/cppBison.yxx.c" +#line 5653 "built/tmp/cppBison.yxx.c" break; case 132: #line 1577 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.str) = "="; } -#line 5515 "built/tmp/cppBison.yxx.c" +#line 5661 "built/tmp/cppBison.yxx.c" break; case 133: #line 1581 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.str) = ","; } -#line 5523 "built/tmp/cppBison.yxx.c" +#line 5669 "built/tmp/cppBison.yxx.c" break; case 134: #line 1585 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.str) = "++"; } -#line 5531 "built/tmp/cppBison.yxx.c" +#line 5677 "built/tmp/cppBison.yxx.c" break; case 135: #line 1589 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.str) = "--"; } -#line 5539 "built/tmp/cppBison.yxx.c" - break; - - case 136: -#line 1593 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "*="; -} -#line 5547 "built/tmp/cppBison.yxx.c" - break; - - case 137: -#line 1597 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "/="; -} -#line 5555 "built/tmp/cppBison.yxx.c" - break; - - case 138: -#line 1601 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "%="; -} -#line 5563 "built/tmp/cppBison.yxx.c" - break; - - case 139: -#line 1605 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "+="; -} -#line 5571 "built/tmp/cppBison.yxx.c" - break; - - case 140: -#line 1609 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "-="; -} -#line 5579 "built/tmp/cppBison.yxx.c" - break; - - case 141: -#line 1613 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "|="; -} -#line 5587 "built/tmp/cppBison.yxx.c" - break; - - case 142: -#line 1617 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "&="; -} -#line 5595 "built/tmp/cppBison.yxx.c" - break; - - case 143: -#line 1621 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "^="; -} -#line 5603 "built/tmp/cppBison.yxx.c" - break; - - case 144: -#line 1625 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "<<="; -} -#line 5611 "built/tmp/cppBison.yxx.c" - break; - - case 145: -#line 1629 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = ">>="; -} -#line 5619 "built/tmp/cppBison.yxx.c" - break; - - case 146: -#line 1633 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "->"; -} -#line 5627 "built/tmp/cppBison.yxx.c" - break; - - case 147: -#line 1637 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "[]"; -} -#line 5635 "built/tmp/cppBison.yxx.c" - break; - - case 148: -#line 1641 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "()"; -} -#line 5643 "built/tmp/cppBison.yxx.c" - break; - - case 149: -#line 1645 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "new"; -} -#line 5651 "built/tmp/cppBison.yxx.c" - break; - - case 150: -#line 1649 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.str) = "delete"; -} -#line 5659 "built/tmp/cppBison.yxx.c" - break; - - case 155: -#line 1663 "dtool/src/cppparser/cppBison.yxx" - { - push_scope(new CPPTemplateScope(current_scope)); -} -#line 5667 "built/tmp/cppBison.yxx.c" - break; - - case 156: -#line 1667 "dtool/src/cppparser/cppBison.yxx" - { - pop_scope(); -} -#line 5675 "built/tmp/cppBison.yxx.c" - break; - - case 161: -#line 1681 "dtool/src/cppparser/cppBison.yxx" - { - CPPTemplateScope *ts = current_scope->as_template_scope(); - assert(ts != nullptr); - ts->add_template_parameter((yyvsp[0].u.decl)); -} #line 5685 "built/tmp/cppBison.yxx.c" break; - case 162: -#line 1687 "dtool/src/cppparser/cppBison.yxx" - { - CPPTemplateScope *ts = current_scope->as_template_scope(); - assert(ts != nullptr); - ts->add_template_parameter((yyvsp[0].u.decl)); + case 136: +#line 1593 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "*="; } -#line 5695 "built/tmp/cppBison.yxx.c" +#line 5693 "built/tmp/cppBison.yxx.c" break; - case 165: -#line 1701 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter(nullptr)); + case 137: +#line 1597 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "/="; } -#line 5703 "built/tmp/cppBison.yxx.c" +#line 5701 "built/tmp/cppBison.yxx.c" break; - case 166: -#line 1705 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[0].u.identifier))); + case 138: +#line 1601 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "%="; } -#line 5711 "built/tmp/cppBison.yxx.c" +#line 5709 "built/tmp/cppBison.yxx.c" break; - case 167: -#line 1709 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[-2].u.identifier), (yyvsp[0].u.type))); + case 139: +#line 1605 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "+="; } -#line 5719 "built/tmp/cppBison.yxx.c" +#line 5717 "built/tmp/cppBison.yxx.c" break; - case 168: -#line 1713 "dtool/src/cppparser/cppBison.yxx" - { - CPPClassTemplateParameter *ctp = new CPPClassTemplateParameter(nullptr); - ctp->_packed = true; - (yyval.u.decl) = CPPType::new_type(ctp); + case 140: +#line 1609 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "-="; } -#line 5729 "built/tmp/cppBison.yxx.c" +#line 5725 "built/tmp/cppBison.yxx.c" break; - case 169: -#line 1719 "dtool/src/cppparser/cppBison.yxx" - { - CPPClassTemplateParameter *ctp = new CPPClassTemplateParameter((yyvsp[0].u.identifier)); - ctp->_packed = true; - (yyval.u.decl) = CPPType::new_type(ctp); + case 141: +#line 1613 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "|="; } -#line 5739 "built/tmp/cppBison.yxx.c" +#line 5733 "built/tmp/cppBison.yxx.c" break; - case 170: -#line 1725 "dtool/src/cppparser/cppBison.yxx" - { - CPPInstance *inst = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file); - inst->set_initializer((yyvsp[0].u.expr)); - (yyval.u.decl) = inst; + case 142: +#line 1617 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "&="; +} +#line 5741 "built/tmp/cppBison.yxx.c" + break; + + case 143: +#line 1621 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "^="; } #line 5749 "built/tmp/cppBison.yxx.c" break; + case 144: +#line 1625 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "<<="; +} +#line 5757 "built/tmp/cppBison.yxx.c" + break; + + case 145: +#line 1629 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = ">>="; +} +#line 5765 "built/tmp/cppBison.yxx.c" + break; + + case 146: +#line 1633 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "->"; +} +#line 5773 "built/tmp/cppBison.yxx.c" + break; + + case 147: +#line 1637 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "[]"; +} +#line 5781 "built/tmp/cppBison.yxx.c" + break; + + case 148: +#line 1641 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "()"; +} +#line 5789 "built/tmp/cppBison.yxx.c" + break; + + case 149: +#line 1645 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "new"; +} +#line 5797 "built/tmp/cppBison.yxx.c" + break; + + case 150: +#line 1649 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.str) = "delete"; +} +#line 5805 "built/tmp/cppBison.yxx.c" + break; + + case 155: +#line 1663 "dtool/src/cppparser/cppBison.yxx" +{ + push_scope(new CPPTemplateScope(current_scope)); +} +#line 5813 "built/tmp/cppBison.yxx.c" + break; + + case 156: +#line 1667 "dtool/src/cppparser/cppBison.yxx" +{ + pop_scope(); +} +#line 5821 "built/tmp/cppBison.yxx.c" + break; + + case 161: +#line 1681 "dtool/src/cppparser/cppBison.yxx" +{ + CPPTemplateScope *ts = current_scope->as_template_scope(); + assert(ts != nullptr); + ts->add_template_parameter((yyvsp[0].u.decl)); +} +#line 5831 "built/tmp/cppBison.yxx.c" + break; + + case 162: +#line 1687 "dtool/src/cppparser/cppBison.yxx" +{ + CPPTemplateScope *ts = current_scope->as_template_scope(); + assert(ts != nullptr); + ts->add_template_parameter((yyvsp[0].u.decl)); +} +#line 5841 "built/tmp/cppBison.yxx.c" + break; + + case 165: +#line 1701 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter(nullptr)); +} +#line 5849 "built/tmp/cppBison.yxx.c" + break; + + case 166: +#line 1705 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[0].u.identifier))); +} +#line 5857 "built/tmp/cppBison.yxx.c" + break; + + case 167: +#line 1709 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[-2].u.identifier), (yyvsp[0].u.type))); +} +#line 5865 "built/tmp/cppBison.yxx.c" + break; + + case 168: +#line 1713 "dtool/src/cppparser/cppBison.yxx" +{ + CPPClassTemplateParameter *ctp = new CPPClassTemplateParameter(nullptr); + ctp->_packed = true; + (yyval.u.decl) = CPPType::new_type(ctp); +} +#line 5875 "built/tmp/cppBison.yxx.c" + break; + + case 169: +#line 1719 "dtool/src/cppparser/cppBison.yxx" +{ + CPPClassTemplateParameter *ctp = new CPPClassTemplateParameter((yyvsp[0].u.identifier)); + ctp->_packed = true; + (yyval.u.decl) = CPPType::new_type(ctp); +} +#line 5885 "built/tmp/cppBison.yxx.c" + break; + + case 170: +#line 1725 "dtool/src/cppparser/cppBison.yxx" +{ + CPPInstance *inst = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file); + inst->set_initializer((yyvsp[0].u.expr)); + (yyval.u.decl) = inst; +} +#line 5895 "built/tmp/cppBison.yxx.c" + break; + case 171: #line 1731 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); CPPInstance *inst = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file); inst->set_initializer((yyvsp[0].u.expr)); (yyval.u.decl) = inst; } -#line 5760 "built/tmp/cppBison.yxx.c" +#line 5906 "built/tmp/cppBison.yxx.c" break; case 172: #line 1738 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPInstance *inst = new CPPInstance((yyvsp[-1].u.type), (yyvsp[0].u.inst_ident), 0, (yylsp[0]).file); (yyval.u.decl) = inst; } -#line 5769 "built/tmp/cppBison.yxx.c" +#line 5915 "built/tmp/cppBison.yxx.c" break; case 173: #line 1743 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyvsp[0].u.inst_ident)->add_modifier(IIT_const); CPPInstance *inst = new CPPInstance((yyvsp[-1].u.type), (yyvsp[0].u.inst_ident), 0, (yylsp[0]).file); (yyval.u.decl) = inst; } -#line 5779 "built/tmp/cppBison.yxx.c" +#line 5925 "built/tmp/cppBison.yxx.c" break; case 174: #line 1752 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 5787 "built/tmp/cppBison.yxx.c" +#line 5933 "built/tmp/cppBison.yxx.c" break; case 175: #line 1756 "dtool/src/cppparser/cppBison.yxx" - { +{ yywarning("Not a type: " + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[0])); (yyval.u.type) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_unknown)); } -#line 5796 "built/tmp/cppBison.yxx.c" +#line 5942 "built/tmp/cppBison.yxx.c" break; case 176: #line 1761 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == nullptr) { yyerror(string("internal error resolving type ") + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[0])); } assert((yyval.u.type) != nullptr); } -#line 5808 "built/tmp/cppBison.yxx.c" +#line 5954 "built/tmp/cppBison.yxx.c" break; case 177: #line 1769 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == nullptr) { yyerror(string("internal error resolving type ") + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[0])); } assert((yyval.u.type) != nullptr); } -#line 5820 "built/tmp/cppBison.yxx.c" +#line 5966 "built/tmp/cppBison.yxx.c" break; case 178: #line 1781 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); } -#line 5828 "built/tmp/cppBison.yxx.c" +#line 5974 "built/tmp/cppBison.yxx.c" break; case 179: #line 1785 "dtool/src/cppparser/cppBison.yxx" - { +{ // For an operator function. We implement this simply by building a // ficticious name for the function; in other respects it's just // like a regular function. @@ -5842,12 +5988,12 @@ yyreduce: (yyval.u.inst_ident) = new CPPInstanceIdentifier(ident); } -#line 5846 "built/tmp/cppBison.yxx.c" +#line 5992 "built/tmp/cppBison.yxx.c" break; case 180: #line 1799 "dtool/src/cppparser/cppBison.yxx" - { +{ // A C++11 literal operator. if (!(yyvsp[-1].str).empty()) { yyerror("expected empty string", (yylsp[-1])); @@ -5861,84 +6007,84 @@ yyreduce: (yyval.u.inst_ident) = new CPPInstanceIdentifier(ident); } -#line 5865 "built/tmp/cppBison.yxx.c" +#line 6011 "built/tmp/cppBison.yxx.c" break; case 181: #line 1814 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } -#line 5874 "built/tmp/cppBison.yxx.c" +#line 6020 "built/tmp/cppBison.yxx.c" break; case 182: #line 1819 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } -#line 5883 "built/tmp/cppBison.yxx.c" +#line 6029 "built/tmp/cppBison.yxx.c" break; case 183: #line 1824 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } -#line 5892 "built/tmp/cppBison.yxx.c" +#line 6038 "built/tmp/cppBison.yxx.c" break; case 184: #line 1829 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } -#line 5901 "built/tmp/cppBison.yxx.c" +#line 6047 "built/tmp/cppBison.yxx.c" break; case 185: #line 1834 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } -#line 5910 "built/tmp/cppBison.yxx.c" +#line 6056 "built/tmp/cppBison.yxx.c" break; case 186: #line 1839 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); } -#line 5919 "built/tmp/cppBison.yxx.c" +#line 6065 "built/tmp/cppBison.yxx.c" break; case 187: #line 1844 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); } -#line 5928 "built/tmp/cppBison.yxx.c" +#line 6074 "built/tmp/cppBison.yxx.c" break; case 188: #line 1849 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_paren); } -#line 5937 "built/tmp/cppBison.yxx.c" +#line 6083 "built/tmp/cppBison.yxx.c" break; case 189: #line 1854 "dtool/src/cppparser/cppBison.yxx" - { +{ // Create a scope for this function (in case it is a function) CPPScope *scope = new CPPScope((yyvsp[-1].u.inst_ident)->get_scope(current_scope, global_scope), CPPNameComponent(""), V_private); @@ -5950,12 +6096,12 @@ yyreduce: push_scope(scope); } -#line 5954 "built/tmp/cppBison.yxx.c" +#line 6100 "built/tmp/cppBison.yxx.c" break; case 190: #line 1867 "dtool/src/cppparser/cppBison.yxx" - { +{ pop_scope(); (yyval.u.inst_ident) = (yyvsp[-5].u.inst_ident); if ((yyvsp[-2].u.param_list)->is_parameter_expr() && (yyvsp[0].u.integer) == 0) { @@ -5968,12 +6114,12 @@ yyreduce: (yyval.u.inst_ident)->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); } } -#line 5972 "built/tmp/cppBison.yxx.c" +#line 6118 "built/tmp/cppBison.yxx.c" break; case 191: #line 1885 "dtool/src/cppparser/cppBison.yxx" - { +{ // This is handled a bit awkwardly right now. Ideally it'd be wrapped // up in the instance_identifier rule, but then more needs to happen in // order to avoid shift/reduce conflicts. @@ -5982,955 +6128,955 @@ yyreduce: } (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); } -#line 5986 "built/tmp/cppBison.yxx.c" +#line 6132 "built/tmp/cppBison.yxx.c" break; case 192: #line 1895 "dtool/src/cppparser/cppBison.yxx" - { +{ // Bitfield definition. - (yyvsp[-2].u.inst_ident)->_bit_width = (yyvsp[0].u.integer); + (yyvsp[-2].u.inst_ident)->_bit_width = (yyvsp[0].u.expr); (yyval.u.inst_ident) = (yyvsp[-2].u.inst_ident); } -#line 5996 "built/tmp/cppBison.yxx.c" +#line 6142 "built/tmp/cppBison.yxx.c" break; case 193: #line 1905 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.type) = nullptr; } -#line 6004 "built/tmp/cppBison.yxx.c" - break; - - case 194: -#line 1909 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); -} -#line 6012 "built/tmp/cppBison.yxx.c" - break; - - case 195: -#line 1913 "dtool/src/cppparser/cppBison.yxx" - { - (yyvsp[0].u.inst_ident)->add_modifier(IIT_const); - (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); -} -#line 6021 "built/tmp/cppBison.yxx.c" - break; - - case 196: -#line 1922 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.identifier) = nullptr; -} -#line 6029 "built/tmp/cppBison.yxx.c" - break; - - case 197: -#line 1926 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.identifier) = (yyvsp[0].u.identifier); -} -#line 6037 "built/tmp/cppBison.yxx.c" - break; - - case 198: -#line 1934 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.param_list) = new CPPParameterList; -} -#line 6045 "built/tmp/cppBison.yxx.c" - break; - - case 199: -#line 1938 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.param_list) = new CPPParameterList; - (yyval.u.param_list)->_includes_ellipsis = true; -} -#line 6054 "built/tmp/cppBison.yxx.c" - break; - - case 200: -#line 1943 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.param_list) = (yyvsp[0].u.param_list); -} -#line 6062 "built/tmp/cppBison.yxx.c" - break; - - case 201: -#line 1947 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.param_list) = (yyvsp[-2].u.param_list); - (yyval.u.param_list)->_includes_ellipsis = true; -} -#line 6071 "built/tmp/cppBison.yxx.c" - break; - - case 202: -#line 1952 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.param_list) = (yyvsp[-1].u.param_list); - (yyval.u.param_list)->_includes_ellipsis = true; -} -#line 6080 "built/tmp/cppBison.yxx.c" - break; - - case 203: -#line 1960 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.param_list) = new CPPParameterList; - (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); -} -#line 6089 "built/tmp/cppBison.yxx.c" - break; - - case 204: -#line 1965 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.param_list) = (yyvsp[-2].u.param_list); - (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); -} -#line 6098 "built/tmp/cppBison.yxx.c" - break; - - case 205: -#line 1973 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.param_list) = new CPPParameterList; -} -#line 6106 "built/tmp/cppBison.yxx.c" - break; - - case 206: -#line 1977 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.param_list) = new CPPParameterList; - (yyval.u.param_list)->_includes_ellipsis = true; -} -#line 6115 "built/tmp/cppBison.yxx.c" - break; - - case 207: -#line 1982 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.param_list) = (yyvsp[0].u.param_list); -} -#line 6123 "built/tmp/cppBison.yxx.c" - break; - - case 208: -#line 1986 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.param_list) = (yyvsp[-2].u.param_list); - (yyval.u.param_list)->_includes_ellipsis = true; -} -#line 6132 "built/tmp/cppBison.yxx.c" - break; - - case 209: -#line 1991 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.param_list) = (yyvsp[-1].u.param_list); - (yyval.u.param_list)->_includes_ellipsis = true; -} -#line 6141 "built/tmp/cppBison.yxx.c" - break; - - case 210: -#line 1999 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.param_list) = new CPPParameterList; - (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); -} #line 6150 "built/tmp/cppBison.yxx.c" break; - case 211: -#line 2004 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.param_list) = (yyvsp[-2].u.param_list); - (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); + case 194: +#line 1909 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } -#line 6159 "built/tmp/cppBison.yxx.c" +#line 6158 "built/tmp/cppBison.yxx.c" break; - case 212: -#line 2012 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = nullptr; + case 195: +#line 1913 "dtool/src/cppparser/cppBison.yxx" +{ + (yyvsp[0].u.inst_ident)->add_modifier(IIT_const); + (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } #line 6167 "built/tmp/cppBison.yxx.c" break; - case 213: -#line 2016 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[0].u.expr); + case 196: +#line 1922 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = nullptr; } #line 6175 "built/tmp/cppBison.yxx.c" break; - case 214: -#line 2023 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = nullptr; + case 197: +#line 1926 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = (yyvsp[0].u.identifier); } #line 6183 "built/tmp/cppBison.yxx.c" break; - case 215: -#line 2027 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[0].u.expr); + case 198: +#line 1934 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.param_list) = new CPPParameterList; } #line 6191 "built/tmp/cppBison.yxx.c" break; - case 216: -#line 2034 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = nullptr; + case 199: +#line 1938 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.param_list) = new CPPParameterList; + (yyval.u.param_list)->_includes_ellipsis = true; } -#line 6199 "built/tmp/cppBison.yxx.c" +#line 6200 "built/tmp/cppBison.yxx.c" break; - case 217: -#line 2038 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = nullptr; + case 200: +#line 1943 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.param_list) = (yyvsp[0].u.param_list); } -#line 6207 "built/tmp/cppBison.yxx.c" +#line 6208 "built/tmp/cppBison.yxx.c" break; - case 218: -#line 2042 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = nullptr; + case 201: +#line 1947 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.param_list) = (yyvsp[-2].u.param_list); + (yyval.u.param_list)->_includes_ellipsis = true; } -#line 6215 "built/tmp/cppBison.yxx.c" +#line 6217 "built/tmp/cppBison.yxx.c" break; - case 219: -#line 2046 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::get_default()); + case 202: +#line 1952 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.param_list) = (yyvsp[-1].u.param_list); + (yyval.u.param_list)->_includes_ellipsis = true; } -#line 6223 "built/tmp/cppBison.yxx.c" +#line 6226 "built/tmp/cppBison.yxx.c" break; - case 220: -#line 2050 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::get_delete()); + case 203: +#line 1960 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.param_list) = new CPPParameterList; + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); } -#line 6231 "built/tmp/cppBison.yxx.c" +#line 6235 "built/tmp/cppBison.yxx.c" break; - case 221: -#line 2057 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = nullptr; + case 204: +#line 1965 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.param_list) = (yyvsp[-2].u.param_list); + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); } -#line 6239 "built/tmp/cppBison.yxx.c" +#line 6244 "built/tmp/cppBison.yxx.c" break; - case 222: -#line 2061 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = nullptr; + case 205: +#line 1973 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.param_list) = new CPPParameterList; } -#line 6247 "built/tmp/cppBison.yxx.c" +#line 6252 "built/tmp/cppBison.yxx.c" break; - case 223: -#line 2065 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[-1].u.expr); + case 206: +#line 1977 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.param_list) = new CPPParameterList; + (yyval.u.param_list)->_includes_ellipsis = true; } -#line 6255 "built/tmp/cppBison.yxx.c" +#line 6261 "built/tmp/cppBison.yxx.c" break; - case 224: -#line 2069 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::get_default()); + case 207: +#line 1982 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.param_list) = (yyvsp[0].u.param_list); } -#line 6263 "built/tmp/cppBison.yxx.c" +#line 6269 "built/tmp/cppBison.yxx.c" break; - case 225: -#line 2073 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::get_delete()); + case 208: +#line 1986 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.param_list) = (yyvsp[-2].u.param_list); + (yyval.u.param_list)->_includes_ellipsis = true; } -#line 6271 "built/tmp/cppBison.yxx.c" +#line 6278 "built/tmp/cppBison.yxx.c" break; - case 226: -#line 2077 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = nullptr; + case 209: +#line 1991 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.param_list) = (yyvsp[-1].u.param_list); + (yyval.u.param_list)->_includes_ellipsis = true; } -#line 6279 "built/tmp/cppBison.yxx.c" +#line 6287 "built/tmp/cppBison.yxx.c" break; - case 230: -#line 2090 "dtool/src/cppparser/cppBison.yxx" - { + case 210: +#line 1999 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.param_list) = new CPPParameterList; + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); } -#line 6286 "built/tmp/cppBison.yxx.c" +#line 6296 "built/tmp/cppBison.yxx.c" break; - case 234: -#line 2099 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.instance) = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file); - (yyval.u.instance)->set_initializer((yyvsp[0].u.expr)); -} -#line 6295 "built/tmp/cppBison.yxx.c" - break; - - case 235: -#line 2104 "dtool/src/cppparser/cppBison.yxx" - { - (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); - (yyval.u.instance) = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file); - (yyval.u.instance)->set_initializer((yyvsp[0].u.expr)); + case 211: +#line 2004 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.param_list) = (yyvsp[-2].u.param_list); + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); } #line 6305 "built/tmp/cppBison.yxx.c" break; + case 212: +#line 2012 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = nullptr; +} +#line 6313 "built/tmp/cppBison.yxx.c" + break; + + case 213: +#line 2016 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 6321 "built/tmp/cppBison.yxx.c" + break; + + case 214: +#line 2023 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = nullptr; +} +#line 6329 "built/tmp/cppBison.yxx.c" + break; + + case 215: +#line 2027 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 6337 "built/tmp/cppBison.yxx.c" + break; + + case 216: +#line 2034 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = nullptr; +} +#line 6345 "built/tmp/cppBison.yxx.c" + break; + + case 217: +#line 2038 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = nullptr; +} +#line 6353 "built/tmp/cppBison.yxx.c" + break; + + case 218: +#line 2042 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = nullptr; +} +#line 6361 "built/tmp/cppBison.yxx.c" + break; + + case 219: +#line 2046 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression(CPPExpression::get_default()); +} +#line 6369 "built/tmp/cppBison.yxx.c" + break; + + case 220: +#line 2050 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression(CPPExpression::get_delete()); +} +#line 6377 "built/tmp/cppBison.yxx.c" + break; + + case 221: +#line 2057 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = nullptr; +} +#line 6385 "built/tmp/cppBison.yxx.c" + break; + + case 222: +#line 2061 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = nullptr; +} +#line 6393 "built/tmp/cppBison.yxx.c" + break; + + case 223: +#line 2065 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = (yyvsp[-1].u.expr); +} +#line 6401 "built/tmp/cppBison.yxx.c" + break; + + case 224: +#line 2069 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression(CPPExpression::get_default()); +} +#line 6409 "built/tmp/cppBison.yxx.c" + break; + + case 225: +#line 2073 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression(CPPExpression::get_delete()); +} +#line 6417 "built/tmp/cppBison.yxx.c" + break; + + case 226: +#line 2077 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = nullptr; +} +#line 6425 "built/tmp/cppBison.yxx.c" + break; + + case 230: +#line 2090 "dtool/src/cppparser/cppBison.yxx" +{ +} +#line 6432 "built/tmp/cppBison.yxx.c" + break; + + case 234: +#line 2099 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.instance) = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file); + (yyval.u.instance)->set_initializer((yyvsp[0].u.expr)); +} +#line 6441 "built/tmp/cppBison.yxx.c" + break; + + case 235: +#line 2104 "dtool/src/cppparser/cppBison.yxx" +{ + (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); + (yyval.u.instance) = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file); + (yyval.u.instance)->set_initializer((yyvsp[0].u.expr)); +} +#line 6451 "built/tmp/cppBison.yxx.c" + break; + case 236: #line 2110 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); (yyval.u.instance) = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-2]).file); (yyval.u.instance)->set_initializer((yyvsp[0].u.expr)); } -#line 6315 "built/tmp/cppBison.yxx.c" +#line 6461 "built/tmp/cppBison.yxx.c" break; case 237: #line 2116 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.instance) = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file); (yyval.u.instance)->set_initializer((yyvsp[0].u.expr)); } -#line 6324 "built/tmp/cppBison.yxx.c" +#line 6470 "built/tmp/cppBison.yxx.c" break; case 238: #line 2121 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); (yyval.u.instance) = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file); (yyval.u.instance)->set_initializer((yyvsp[0].u.expr)); } -#line 6334 "built/tmp/cppBison.yxx.c" +#line 6480 "built/tmp/cppBison.yxx.c" break; case 239: #line 2127 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); (yyval.u.instance) = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-2]).file); (yyval.u.instance)->set_initializer((yyvsp[0].u.expr)); } -#line 6344 "built/tmp/cppBison.yxx.c" +#line 6490 "built/tmp/cppBison.yxx.c" break; case 240: #line 2133 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.instance) = (yyvsp[0].u.instance); } -#line 6352 "built/tmp/cppBison.yxx.c" +#line 6498 "built/tmp/cppBison.yxx.c" break; case 241: #line 2137 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.instance) = (yyvsp[0].u.instance); } -#line 6360 "built/tmp/cppBison.yxx.c" +#line 6506 "built/tmp/cppBison.yxx.c" break; case 242: #line 2148 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.instance) = (yyvsp[0].u.instance); } -#line 6368 "built/tmp/cppBison.yxx.c" +#line 6514 "built/tmp/cppBison.yxx.c" break; case 243: #line 2152 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_parameter)); (yyval.u.instance) = new CPPInstance(type, "expr"); (yyval.u.instance)->set_initializer((yyvsp[0].u.expr)); } -#line 6379 "built/tmp/cppBison.yxx.c" +#line 6525 "built/tmp/cppBison.yxx.c" break; case 244: #line 2162 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); } -#line 6387 "built/tmp/cppBison.yxx.c" +#line 6533 "built/tmp/cppBison.yxx.c" break; case 245: #line 2166 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); } -#line 6395 "built/tmp/cppBison.yxx.c" +#line 6541 "built/tmp/cppBison.yxx.c" break; case 246: #line 2170 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } -#line 6404 "built/tmp/cppBison.yxx.c" +#line 6550 "built/tmp/cppBison.yxx.c" break; case 247: #line 2175 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } -#line 6413 "built/tmp/cppBison.yxx.c" +#line 6559 "built/tmp/cppBison.yxx.c" break; case 248: #line 2180 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } -#line 6422 "built/tmp/cppBison.yxx.c" +#line 6568 "built/tmp/cppBison.yxx.c" break; case 249: #line 2185 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } -#line 6431 "built/tmp/cppBison.yxx.c" +#line 6577 "built/tmp/cppBison.yxx.c" break; case 250: #line 2190 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } -#line 6440 "built/tmp/cppBison.yxx.c" +#line 6586 "built/tmp/cppBison.yxx.c" break; case 251: #line 2195 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); } -#line 6449 "built/tmp/cppBison.yxx.c" +#line 6595 "built/tmp/cppBison.yxx.c" break; case 252: #line 2200 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); } -#line 6458 "built/tmp/cppBison.yxx.c" +#line 6604 "built/tmp/cppBison.yxx.c" break; case 253: #line 2208 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); } -#line 6466 "built/tmp/cppBison.yxx.c" +#line 6612 "built/tmp/cppBison.yxx.c" break; case 254: #line 2212 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); } -#line 6474 "built/tmp/cppBison.yxx.c" +#line 6620 "built/tmp/cppBison.yxx.c" break; case 255: #line 2216 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } -#line 6483 "built/tmp/cppBison.yxx.c" +#line 6629 "built/tmp/cppBison.yxx.c" break; case 256: #line 2221 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } -#line 6492 "built/tmp/cppBison.yxx.c" +#line 6638 "built/tmp/cppBison.yxx.c" break; case 257: #line 2226 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } -#line 6501 "built/tmp/cppBison.yxx.c" - break; - - case 258: -#line 2231 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_reference); -} -#line 6510 "built/tmp/cppBison.yxx.c" - break; - - case 259: -#line 2236 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); -} -#line 6519 "built/tmp/cppBison.yxx.c" - break; - - case 260: -#line 2241 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); -} -#line 6528 "built/tmp/cppBison.yxx.c" - break; - - case 261: -#line 2246 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); - (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); -} -#line 6537 "built/tmp/cppBison.yxx.c" - break; - - case 262: -#line 2251 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[-5].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_paren); - (yyval.u.inst_ident)->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); -} -#line 6547 "built/tmp/cppBison.yxx.c" - break; - - case 263: -#line 2257 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_paren); -} -#line 6556 "built/tmp/cppBison.yxx.c" - break; - - case 264: -#line 2265 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); - (yyval.u.inst_ident)->_packed = true; -} -#line 6565 "built/tmp/cppBison.yxx.c" - break; - - case 265: -#line 2270 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); - (yyval.u.inst_ident)->_packed = true; -} -#line 6574 "built/tmp/cppBison.yxx.c" - break; - - case 266: -#line 2275 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_const); -} -#line 6583 "built/tmp/cppBison.yxx.c" - break; - - case 267: -#line 2280 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_volatile); -} -#line 6592 "built/tmp/cppBison.yxx.c" - break; - - case 268: -#line 2285 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_pointer); -} -#line 6601 "built/tmp/cppBison.yxx.c" - break; - - case 269: -#line 2290 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_reference); -} -#line 6610 "built/tmp/cppBison.yxx.c" - break; - - case 270: -#line 2295 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); -} -#line 6619 "built/tmp/cppBison.yxx.c" - break; - - case 271: -#line 2300 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); -} -#line 6628 "built/tmp/cppBison.yxx.c" - break; - - case 272: -#line 2305 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); - (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); -} -#line 6637 "built/tmp/cppBison.yxx.c" - break; - - case 273: -#line 2310 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[-5].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_paren); - (yyval.u.inst_ident)->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); -} #line 6647 "built/tmp/cppBison.yxx.c" break; - case 274: -#line 2316 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_paren); + case 258: +#line 2231 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_reference); } #line 6656 "built/tmp/cppBison.yxx.c" break; + case 259: +#line 2236 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); +} +#line 6665 "built/tmp/cppBison.yxx.c" + break; + + case 260: +#line 2241 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); +} +#line 6674 "built/tmp/cppBison.yxx.c" + break; + + case 261: +#line 2246 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); +} +#line 6683 "built/tmp/cppBison.yxx.c" + break; + + case 262: +#line 2251 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[-5].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_paren); + (yyval.u.inst_ident)->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); +} +#line 6693 "built/tmp/cppBison.yxx.c" + break; + + case 263: +#line 2257 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_paren); +} +#line 6702 "built/tmp/cppBison.yxx.c" + break; + + case 264: +#line 2265 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); + (yyval.u.inst_ident)->_packed = true; +} +#line 6711 "built/tmp/cppBison.yxx.c" + break; + + case 265: +#line 2270 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); + (yyval.u.inst_ident)->_packed = true; +} +#line 6720 "built/tmp/cppBison.yxx.c" + break; + + case 266: +#line 2275 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_const); +} +#line 6729 "built/tmp/cppBison.yxx.c" + break; + + case 267: +#line 2280 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_volatile); +} +#line 6738 "built/tmp/cppBison.yxx.c" + break; + + case 268: +#line 2285 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_pointer); +} +#line 6747 "built/tmp/cppBison.yxx.c" + break; + + case 269: +#line 2290 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_reference); +} +#line 6756 "built/tmp/cppBison.yxx.c" + break; + + case 270: +#line 2295 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); +} +#line 6765 "built/tmp/cppBison.yxx.c" + break; + + case 271: +#line 2300 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); +} +#line 6774 "built/tmp/cppBison.yxx.c" + break; + + case 272: +#line 2305 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); +} +#line 6783 "built/tmp/cppBison.yxx.c" + break; + + case 273: +#line 2310 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[-5].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_paren); + (yyval.u.inst_ident)->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); +} +#line 6793 "built/tmp/cppBison.yxx.c" + break; + + case 274: +#line 2316 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_paren); +} +#line 6802 "built/tmp/cppBison.yxx.c" + break; + case 275: #line 2324 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); } -#line 6664 "built/tmp/cppBison.yxx.c" +#line 6810 "built/tmp/cppBison.yxx.c" break; case 276: #line 2328 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); (yyval.u.inst_ident)->_packed = true; } -#line 6673 "built/tmp/cppBison.yxx.c" +#line 6819 "built/tmp/cppBison.yxx.c" break; case 277: #line 2333 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); (yyval.u.inst_ident)->_packed = true; } -#line 6682 "built/tmp/cppBison.yxx.c" +#line 6828 "built/tmp/cppBison.yxx.c" break; case 278: #line 2338 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } -#line 6691 "built/tmp/cppBison.yxx.c" +#line 6837 "built/tmp/cppBison.yxx.c" break; case 279: #line 2343 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } -#line 6700 "built/tmp/cppBison.yxx.c" +#line 6846 "built/tmp/cppBison.yxx.c" break; case 280: #line 2348 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } -#line 6709 "built/tmp/cppBison.yxx.c" - break; - - case 281: -#line 2353 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_reference); -} -#line 6718 "built/tmp/cppBison.yxx.c" - break; - - case 282: -#line 2358 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); -} -#line 6727 "built/tmp/cppBison.yxx.c" - break; - - case 283: -#line 2363 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); -} -#line 6736 "built/tmp/cppBison.yxx.c" - break; - - case 284: -#line 2368 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); - (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); -} -#line 6745 "built/tmp/cppBison.yxx.c" - break; - - case 285: -#line 2376 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); -} -#line 6753 "built/tmp/cppBison.yxx.c" - break; - - case 286: -#line 2380 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); - (yyval.u.inst_ident)->_packed = true; -} -#line 6762 "built/tmp/cppBison.yxx.c" - break; - - case 287: -#line 2385 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); - (yyval.u.inst_ident)->_packed = true; -} -#line 6771 "built/tmp/cppBison.yxx.c" - break; - - case 288: -#line 2390 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_const); -} -#line 6780 "built/tmp/cppBison.yxx.c" - break; - - case 289: -#line 2395 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_volatile); -} -#line 6789 "built/tmp/cppBison.yxx.c" - break; - - case 290: -#line 2400 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_pointer); -} -#line 6798 "built/tmp/cppBison.yxx.c" - break; - - case 291: -#line 2405 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_reference); -} -#line 6807 "built/tmp/cppBison.yxx.c" - break; - - case 292: -#line 2410 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); -} -#line 6816 "built/tmp/cppBison.yxx.c" - break; - - case 293: -#line 2415 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); -} -#line 6825 "built/tmp/cppBison.yxx.c" - break; - - case 294: -#line 2420 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); - (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); -} -#line 6834 "built/tmp/cppBison.yxx.c" - break; - - case 295: -#line 2425 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); - (yyval.u.inst_ident)->add_modifier(IIT_paren); - (yyval.u.inst_ident)->add_func_modifier((yyvsp[-3].u.param_list), (yyvsp[-1].u.integer), (yyvsp[0].u.type)); -} -#line 6844 "built/tmp/cppBison.yxx.c" - break; - - case 296: -#line 2431 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[-6].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_pointer); - (yyval.u.inst_ident)->add_modifier(IIT_paren); - (yyval.u.inst_ident)->add_func_modifier((yyvsp[-3].u.param_list), (yyvsp[-1].u.integer), (yyvsp[0].u.type)); -} #line 6855 "built/tmp/cppBison.yxx.c" break; + case 281: +#line 2353 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_reference); +} +#line 6864 "built/tmp/cppBison.yxx.c" + break; + + case 282: +#line 2358 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); +} +#line 6873 "built/tmp/cppBison.yxx.c" + break; + + case 283: +#line 2363 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); +} +#line 6882 "built/tmp/cppBison.yxx.c" + break; + + case 284: +#line 2368 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); +} +#line 6891 "built/tmp/cppBison.yxx.c" + break; + + case 285: +#line 2376 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); +} +#line 6899 "built/tmp/cppBison.yxx.c" + break; + + case 286: +#line 2380 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); + (yyval.u.inst_ident)->_packed = true; +} +#line 6908 "built/tmp/cppBison.yxx.c" + break; + + case 287: +#line 2385 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); + (yyval.u.inst_ident)->_packed = true; +} +#line 6917 "built/tmp/cppBison.yxx.c" + break; + + case 288: +#line 2390 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_const); +} +#line 6926 "built/tmp/cppBison.yxx.c" + break; + + case 289: +#line 2395 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_volatile); +} +#line 6935 "built/tmp/cppBison.yxx.c" + break; + + case 290: +#line 2400 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_pointer); +} +#line 6944 "built/tmp/cppBison.yxx.c" + break; + + case 291: +#line 2405 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_reference); +} +#line 6953 "built/tmp/cppBison.yxx.c" + break; + + case 292: +#line 2410 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); +} +#line 6962 "built/tmp/cppBison.yxx.c" + break; + + case 293: +#line 2415 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); +} +#line 6971 "built/tmp/cppBison.yxx.c" + break; + + case 294: +#line 2420 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); +} +#line 6980 "built/tmp/cppBison.yxx.c" + break; + + case 295: +#line 2425 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = new CPPInstanceIdentifier(nullptr); + (yyval.u.inst_ident)->add_modifier(IIT_paren); + (yyval.u.inst_ident)->add_func_modifier((yyvsp[-3].u.param_list), (yyvsp[-1].u.integer), (yyvsp[0].u.type)); +} +#line 6990 "built/tmp/cppBison.yxx.c" + break; + + case 296: +#line 2431 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.inst_ident) = (yyvsp[-6].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_pointer); + (yyval.u.inst_ident)->add_modifier(IIT_paren); + (yyval.u.inst_ident)->add_func_modifier((yyvsp[-3].u.param_list), (yyvsp[-1].u.integer), (yyvsp[0].u.type)); +} +#line 7001 "built/tmp/cppBison.yxx.c" + break; + case 297: #line 2438 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = (yyvsp[-6].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); (yyval.u.inst_ident)->add_modifier(IIT_paren); (yyval.u.inst_ident)->add_func_modifier((yyvsp[-3].u.param_list), (yyvsp[-1].u.integer), (yyvsp[0].u.type)); } -#line 6866 "built/tmp/cppBison.yxx.c" +#line 7012 "built/tmp/cppBison.yxx.c" break; case 298: #line 2445 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.inst_ident) = (yyvsp[-6].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); (yyval.u.inst_ident)->add_modifier(IIT_paren); (yyval.u.inst_ident)->add_func_modifier((yyvsp[-3].u.param_list), (yyvsp[-1].u.integer), (yyvsp[0].u.type)); } -#line 6877 "built/tmp/cppBison.yxx.c" +#line 7023 "built/tmp/cppBison.yxx.c" break; case 299: #line 2455 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 6885 "built/tmp/cppBison.yxx.c" +#line 7031 "built/tmp/cppBison.yxx.c" break; case 300: #line 2459 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == nullptr) { yyerror(string("internal error resolving type ") + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[0])); } assert((yyval.u.type) != nullptr); } -#line 6897 "built/tmp/cppBison.yxx.c" +#line 7043 "built/tmp/cppBison.yxx.c" break; case 301: #line 2467 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } -#line 6905 "built/tmp/cppBison.yxx.c" +#line 7051 "built/tmp/cppBison.yxx.c" break; case 302: #line 2471 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.type) = CPPType::new_type((yyvsp[0].u.struct_type)); } -#line 6913 "built/tmp/cppBison.yxx.c" +#line 7059 "built/tmp/cppBison.yxx.c" break; case 303: #line 2475 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.type) = CPPType::new_type((yyvsp[0].u.struct_type)); } -#line 6921 "built/tmp/cppBison.yxx.c" +#line 7067 "built/tmp/cppBison.yxx.c" break; case 304: #line 2479 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.type) = CPPType::new_type((yyvsp[0].u.enum_type)); } -#line 6929 "built/tmp/cppBison.yxx.c" +#line 7075 "built/tmp/cppBison.yxx.c" break; case 305: #line 2483 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != nullptr) { (yyval.u.type) = type; @@ -6945,12 +7091,12 @@ yyreduce: (yyval.u.type) = et; } } -#line 6949 "built/tmp/cppBison.yxx.c" +#line 7095 "built/tmp/cppBison.yxx.c" break; case 306: #line 2499 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPType *type = (yyvsp[-2].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != nullptr) { (yyval.u.type) = type; @@ -6965,12 +7111,12 @@ yyreduce: (yyval.u.type) = et; } } -#line 6969 "built/tmp/cppBison.yxx.c" +#line 7115 "built/tmp/cppBison.yxx.c" break; case 307: #line 2515 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.type) = (yyvsp[-1].u.expr)->determine_type(); if ((yyval.u.type) == nullptr) { stringstream str; @@ -6978,20 +7124,20 @@ yyreduce: yyerror("could not determine type of " + str.str(), (yylsp[-1])); } } -#line 6982 "built/tmp/cppBison.yxx.c" +#line 7128 "built/tmp/cppBison.yxx.c" break; case 308: #line 2524 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.type) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_auto)); } -#line 6990 "built/tmp/cppBison.yxx.c" +#line 7136 "built/tmp/cppBison.yxx.c" break; case 309: #line 2528 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPEnumType *enum_type = (yyvsp[-1].u.type)->as_enum_type(); if (enum_type == nullptr) { yyerror("an enumeration type is required", (yylsp[-1])); @@ -7000,84 +7146,84 @@ yyreduce: (yyval.u.type) = enum_type->get_underlying_type(); } } -#line 7004 "built/tmp/cppBison.yxx.c" +#line 7150 "built/tmp/cppBison.yxx.c" break; case 310: #line 2538 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.type) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_auto)); } -#line 7012 "built/tmp/cppBison.yxx.c" +#line 7158 "built/tmp/cppBison.yxx.c" break; case 311: #line 2545 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == nullptr) { yyerror(string("internal error resolving type ") + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[0])); } assert((yyval.u.type) != nullptr); } -#line 7024 "built/tmp/cppBison.yxx.c" +#line 7170 "built/tmp/cppBison.yxx.c" break; case 312: #line 2556 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.decl) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 7032 "built/tmp/cppBison.yxx.c" +#line 7178 "built/tmp/cppBison.yxx.c" break; case 313: #line 2560 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.decl) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.decl) == nullptr) { yyerror(string("internal error resolving type ") + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[0])); } assert((yyval.u.decl) != nullptr); } -#line 7044 "built/tmp/cppBison.yxx.c" +#line 7190 "built/tmp/cppBison.yxx.c" break; case 314: #line 2568 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.decl) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } -#line 7052 "built/tmp/cppBison.yxx.c" +#line 7198 "built/tmp/cppBison.yxx.c" break; case 315: #line 2572 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.decl) = CPPType::new_type((yyvsp[0].u.struct_type)); } -#line 7060 "built/tmp/cppBison.yxx.c" +#line 7206 "built/tmp/cppBison.yxx.c" break; case 316: #line 2576 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[0].u.struct_type))); } -#line 7068 "built/tmp/cppBison.yxx.c" +#line 7214 "built/tmp/cppBison.yxx.c" break; case 317: #line 2580 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[0].u.enum_type))); } -#line 7076 "built/tmp/cppBison.yxx.c" +#line 7222 "built/tmp/cppBison.yxx.c" break; case 318: #line 2584 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != nullptr) { (yyval.u.decl) = type; @@ -7092,12 +7238,12 @@ yyreduce: (yyval.u.decl) = et; } } -#line 7096 "built/tmp/cppBison.yxx.c" +#line 7242 "built/tmp/cppBison.yxx.c" break; case 319: #line 2600 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPType *type = (yyvsp[-2].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != nullptr) { (yyval.u.decl) = type; @@ -7112,12 +7258,12 @@ yyreduce: (yyval.u.decl) = et; } } -#line 7116 "built/tmp/cppBison.yxx.c" +#line 7262 "built/tmp/cppBison.yxx.c" break; case 320: #line 2616 "dtool/src/cppparser/cppBison.yxx" - { +{ yywarning(string("C++ does not permit forward declaration of untyped enum ") + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[-1])); CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -7134,12 +7280,12 @@ yyreduce: (yyval.u.decl) = et; } } -#line 7138 "built/tmp/cppBison.yxx.c" +#line 7284 "built/tmp/cppBison.yxx.c" break; case 321: #line 2634 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.decl) = (yyvsp[-1].u.expr)->determine_type(); if ((yyval.u.decl) == nullptr) { stringstream str; @@ -7147,20 +7293,20 @@ yyreduce: yyerror("could not determine type of " + str.str(), (yylsp[-1])); } } -#line 7151 "built/tmp/cppBison.yxx.c" +#line 7297 "built/tmp/cppBison.yxx.c" break; case 322: #line 2643 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.decl) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_auto)); } -#line 7159 "built/tmp/cppBison.yxx.c" +#line 7305 "built/tmp/cppBison.yxx.c" break; case 323: #line 2647 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPEnumType *enum_type = (yyvsp[-1].u.type)->as_enum_type(); if (enum_type == nullptr) { yyerror("an enumeration type is required", (yylsp[-1])); @@ -7169,48 +7315,48 @@ yyreduce: (yyval.u.decl) = enum_type->get_underlying_type(); } } -#line 7173 "built/tmp/cppBison.yxx.c" +#line 7319 "built/tmp/cppBison.yxx.c" break; case 324: #line 2657 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.decl) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_auto)); } -#line 7181 "built/tmp/cppBison.yxx.c" +#line 7327 "built/tmp/cppBison.yxx.c" break; case 325: #line 2664 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 7189 "built/tmp/cppBison.yxx.c" +#line 7335 "built/tmp/cppBison.yxx.c" break; case 326: #line 2668 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == nullptr) { yyerror(string("internal error resolving type ") + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[0])); } assert((yyval.u.type) != nullptr); } -#line 7201 "built/tmp/cppBison.yxx.c" +#line 7347 "built/tmp/cppBison.yxx.c" break; case 327: #line 2676 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } -#line 7209 "built/tmp/cppBison.yxx.c" +#line 7355 "built/tmp/cppBison.yxx.c" break; case 328: #line 2680 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != nullptr) { (yyval.u.type) = type; @@ -7225,12 +7371,12 @@ yyreduce: (yyval.u.type) = et; } } -#line 7229 "built/tmp/cppBison.yxx.c" +#line 7375 "built/tmp/cppBison.yxx.c" break; case 329: #line 2696 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != nullptr) { (yyval.u.type) = type; @@ -7245,12 +7391,12 @@ yyreduce: (yyval.u.type) = et; } } -#line 7249 "built/tmp/cppBison.yxx.c" +#line 7395 "built/tmp/cppBison.yxx.c" break; case 330: #line 2712 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.type) = (yyvsp[-1].u.expr)->determine_type(); if ((yyval.u.type) == nullptr) { stringstream str; @@ -7258,12 +7404,12 @@ yyreduce: yyerror("could not determine type of " + str.str(), (yylsp[-1])); } } -#line 7262 "built/tmp/cppBison.yxx.c" +#line 7408 "built/tmp/cppBison.yxx.c" break; case 331: #line 2721 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPEnumType *enum_type = (yyvsp[-1].u.type)->as_enum_type(); if (enum_type == nullptr) { yyerror("an enumeration type is required", (yylsp[-1])); @@ -7272,72 +7418,72 @@ yyreduce: (yyval.u.type) = enum_type->get_underlying_type(); } } -#line 7276 "built/tmp/cppBison.yxx.c" +#line 7422 "built/tmp/cppBison.yxx.c" break; case 332: #line 2731 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.type) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_auto)); } -#line 7284 "built/tmp/cppBison.yxx.c" +#line 7430 "built/tmp/cppBison.yxx.c" break; case 333: #line 2738 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.decl) = (yyvsp[0].u.decl); } -#line 7292 "built/tmp/cppBison.yxx.c" +#line 7438 "built/tmp/cppBison.yxx.c" break; case 334: #line 2742 "dtool/src/cppparser/cppBison.yxx" - { +{ yyerror(string("unknown type '") + (yyvsp[0].u.identifier)->get_fully_scoped_name() + "'", (yylsp[0])); (yyval.u.decl) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_unknown)); } -#line 7302 "built/tmp/cppBison.yxx.c" +#line 7448 "built/tmp/cppBison.yxx.c" break; case 335: #line 2750 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } -#line 7310 "built/tmp/cppBison.yxx.c" +#line 7456 "built/tmp/cppBison.yxx.c" break; case 336: #line 2754 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyvsp[0].u.inst_ident)->add_modifier(IIT_const); (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } -#line 7319 "built/tmp/cppBison.yxx.c" +#line 7465 "built/tmp/cppBison.yxx.c" break; case 337: #line 2759 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } -#line 7327 "built/tmp/cppBison.yxx.c" +#line 7473 "built/tmp/cppBison.yxx.c" break; case 338: #line 2763 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyvsp[0].u.inst_ident)->add_modifier(IIT_const); (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } -#line 7336 "built/tmp/cppBison.yxx.c" +#line 7482 "built/tmp/cppBison.yxx.c" break; case 343: #line 2778 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPVisibility starting_vis = ((yyvsp[-2].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; @@ -7350,23 +7496,23 @@ yyreduce: push_scope(new_scope); push_struct(st); } -#line 7354 "built/tmp/cppBison.yxx.c" +#line 7500 "built/tmp/cppBison.yxx.c" break; case 344: #line 2792 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.struct_type) = current_struct; current_struct->_incomplete = false; pop_struct(); pop_scope(); } -#line 7365 "built/tmp/cppBison.yxx.c" +#line 7511 "built/tmp/cppBison.yxx.c" break; case 345: #line 2802 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPVisibility starting_vis = ((yyvsp[-2].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; @@ -7385,254 +7531,254 @@ yyreduce: push_scope(new_scope); push_struct(st); } -#line 7389 "built/tmp/cppBison.yxx.c" +#line 7535 "built/tmp/cppBison.yxx.c" break; case 346: #line 2822 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.struct_type) = current_struct; current_struct->_incomplete = false; pop_struct(); pop_scope(); } -#line 7400 "built/tmp/cppBison.yxx.c" +#line 7546 "built/tmp/cppBison.yxx.c" break; case 348: #line 2833 "dtool/src/cppparser/cppBison.yxx" - { +{ current_struct->_final = true; } -#line 7408 "built/tmp/cppBison.yxx.c" +#line 7554 "built/tmp/cppBison.yxx.c" break; case 353: #line 2850 "dtool/src/cppparser/cppBison.yxx" - { +{ current_struct->append_derivation((yyvsp[0].u.type), V_unknown, false); } -#line 7416 "built/tmp/cppBison.yxx.c" +#line 7562 "built/tmp/cppBison.yxx.c" break; case 354: #line 2854 "dtool/src/cppparser/cppBison.yxx" - { +{ current_struct->append_derivation((yyvsp[0].u.type), V_public, false); } -#line 7424 "built/tmp/cppBison.yxx.c" +#line 7570 "built/tmp/cppBison.yxx.c" break; case 355: #line 2858 "dtool/src/cppparser/cppBison.yxx" - { +{ current_struct->append_derivation((yyvsp[0].u.type), V_protected, false); } -#line 7432 "built/tmp/cppBison.yxx.c" +#line 7578 "built/tmp/cppBison.yxx.c" break; case 356: #line 2862 "dtool/src/cppparser/cppBison.yxx" - { +{ current_struct->append_derivation((yyvsp[0].u.type), V_private, false); } -#line 7440 "built/tmp/cppBison.yxx.c" +#line 7586 "built/tmp/cppBison.yxx.c" break; case 357: #line 2866 "dtool/src/cppparser/cppBison.yxx" - { +{ current_struct->append_derivation((yyvsp[0].u.type), V_public, true); } -#line 7448 "built/tmp/cppBison.yxx.c" +#line 7594 "built/tmp/cppBison.yxx.c" break; case 358: #line 2870 "dtool/src/cppparser/cppBison.yxx" - { +{ current_struct->append_derivation((yyvsp[0].u.type), V_protected, true); } -#line 7456 "built/tmp/cppBison.yxx.c" +#line 7602 "built/tmp/cppBison.yxx.c" break; case 359: #line 2874 "dtool/src/cppparser/cppBison.yxx" - { +{ current_struct->append_derivation((yyvsp[0].u.type), V_private, true); } -#line 7464 "built/tmp/cppBison.yxx.c" +#line 7610 "built/tmp/cppBison.yxx.c" break; case 360: #line 2878 "dtool/src/cppparser/cppBison.yxx" - { +{ current_struct->append_derivation((yyvsp[0].u.type), V_public, true); } -#line 7472 "built/tmp/cppBison.yxx.c" +#line 7618 "built/tmp/cppBison.yxx.c" break; case 361: #line 2882 "dtool/src/cppparser/cppBison.yxx" - { +{ current_struct->append_derivation((yyvsp[0].u.type), V_protected, true); } -#line 7480 "built/tmp/cppBison.yxx.c" +#line 7626 "built/tmp/cppBison.yxx.c" break; case 362: #line 2886 "dtool/src/cppparser/cppBison.yxx" - { +{ current_struct->append_derivation((yyvsp[0].u.type), V_private, true); } -#line 7488 "built/tmp/cppBison.yxx.c" +#line 7634 "built/tmp/cppBison.yxx.c" break; case 363: #line 2893 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.enum_type) = current_enum; current_enum = nullptr; } -#line 7497 "built/tmp/cppBison.yxx.c" +#line 7643 "built/tmp/cppBison.yxx.c" break; case 364: #line 2901 "dtool/src/cppparser/cppBison.yxx" - { +{ current_enum = new CPPEnumType((yyvsp[-2].u.extension_enum), nullptr, (yyvsp[0].u.type), current_scope, nullptr, (yylsp[-2]).file); } -#line 7505 "built/tmp/cppBison.yxx.c" +#line 7651 "built/tmp/cppBison.yxx.c" break; case 365: #line 2905 "dtool/src/cppparser/cppBison.yxx" - { +{ current_enum = new CPPEnumType((yyvsp[0].u.extension_enum), nullptr, current_scope, nullptr, (yylsp[0]).file); } -#line 7513 "built/tmp/cppBison.yxx.c" +#line 7659 "built/tmp/cppBison.yxx.c" break; case 366: #line 2909 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPScope *new_scope = new CPPScope(current_scope, (yyvsp[-2].u.identifier)->_names.back(), V_public); current_enum = new CPPEnumType((yyvsp[-3].u.extension_enum), (yyvsp[-2].u.identifier), (yyvsp[0].u.type), current_scope, new_scope, (yylsp[-3]).file); } -#line 7522 "built/tmp/cppBison.yxx.c" +#line 7668 "built/tmp/cppBison.yxx.c" break; case 367: #line 2914 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPScope *new_scope = new CPPScope(current_scope, (yyvsp[0].u.identifier)->_names.back(), V_public); current_enum = new CPPEnumType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, new_scope, (yylsp[-1]).file); } -#line 7531 "built/tmp/cppBison.yxx.c" +#line 7677 "built/tmp/cppBison.yxx.c" break; case 368: #line 2922 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 7539 "built/tmp/cppBison.yxx.c" +#line 7685 "built/tmp/cppBison.yxx.c" break; case 369: #line 2926 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); } -#line 7547 "built/tmp/cppBison.yxx.c" +#line 7693 "built/tmp/cppBison.yxx.c" break; case 371: #line 2934 "dtool/src/cppparser/cppBison.yxx" - { +{ assert(current_enum != nullptr); current_enum->add_element((yyvsp[-1].u.identifier)->get_simple_name(), nullptr, current_lexer, (yylsp[-1])); } -#line 7556 "built/tmp/cppBison.yxx.c" +#line 7702 "built/tmp/cppBison.yxx.c" break; case 372: #line 2939 "dtool/src/cppparser/cppBison.yxx" - { +{ assert(current_enum != nullptr); current_enum->add_element((yyvsp[-3].u.identifier)->get_simple_name(), (yyvsp[-1].u.expr), current_lexer, (yylsp[-3])); } -#line 7565 "built/tmp/cppBison.yxx.c" +#line 7711 "built/tmp/cppBison.yxx.c" break; case 374: #line 2947 "dtool/src/cppparser/cppBison.yxx" - { +{ assert(current_enum != nullptr); current_enum->add_element((yyvsp[0].u.identifier)->get_simple_name(), nullptr, current_lexer, (yylsp[0])); } -#line 7574 "built/tmp/cppBison.yxx.c" +#line 7720 "built/tmp/cppBison.yxx.c" break; case 375: #line 2952 "dtool/src/cppparser/cppBison.yxx" - { +{ assert(current_enum != nullptr); current_enum->add_element((yyvsp[-2].u.identifier)->get_simple_name(), (yyvsp[0].u.expr), current_lexer, (yylsp[-2])); } -#line 7583 "built/tmp/cppBison.yxx.c" +#line 7729 "built/tmp/cppBison.yxx.c" break; case 376: #line 2960 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.extension_enum) = CPPExtensionType::T_enum; } -#line 7591 "built/tmp/cppBison.yxx.c" +#line 7737 "built/tmp/cppBison.yxx.c" break; case 377: #line 2964 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.extension_enum) = CPPExtensionType::T_enum_class; } -#line 7599 "built/tmp/cppBison.yxx.c" +#line 7745 "built/tmp/cppBison.yxx.c" break; case 378: #line 2968 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.extension_enum) = CPPExtensionType::T_enum_struct; } -#line 7607 "built/tmp/cppBison.yxx.c" +#line 7753 "built/tmp/cppBison.yxx.c" break; case 379: #line 2975 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.extension_enum) = CPPExtensionType::T_class; } -#line 7615 "built/tmp/cppBison.yxx.c" +#line 7761 "built/tmp/cppBison.yxx.c" break; case 380: #line 2979 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.extension_enum) = CPPExtensionType::T_struct; } -#line 7623 "built/tmp/cppBison.yxx.c" +#line 7769 "built/tmp/cppBison.yxx.c" break; case 381: #line 2983 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.extension_enum) = CPPExtensionType::T_union; } -#line 7631 "built/tmp/cppBison.yxx.c" +#line 7777 "built/tmp/cppBison.yxx.c" break; case 382: #line 2990 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPScope *scope = (yyvsp[-1].u.identifier)->find_scope(current_scope, global_scope, current_lexer); if (scope == nullptr) { // This must be a new namespace declaration. @@ -7649,20 +7795,20 @@ yyreduce: current_scope->define_namespace(nspace); push_scope(scope); } -#line 7653 "built/tmp/cppBison.yxx.c" +#line 7799 "built/tmp/cppBison.yxx.c" break; case 383: #line 3008 "dtool/src/cppparser/cppBison.yxx" - { +{ pop_scope(); } -#line 7661 "built/tmp/cppBison.yxx.c" +#line 7807 "built/tmp/cppBison.yxx.c" break; case 384: #line 3012 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPScope *scope = (yyvsp[-1].u.identifier)->find_scope(current_scope, global_scope, current_lexer); if (scope == nullptr) { // This must be a new namespace declaration. @@ -7680,144 +7826,144 @@ yyreduce: current_scope->define_namespace(nspace); push_scope(scope); } -#line 7684 "built/tmp/cppBison.yxx.c" +#line 7830 "built/tmp/cppBison.yxx.c" break; case 385: #line 3031 "dtool/src/cppparser/cppBison.yxx" - { +{ pop_scope(); } -#line 7692 "built/tmp/cppBison.yxx.c" +#line 7838 "built/tmp/cppBison.yxx.c" break; case 388: #line 3040 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPUsing *using_decl = new CPPUsing((yyvsp[-1].u.identifier), false, (yylsp[-2]).file); current_scope->add_declaration(using_decl, global_scope, current_lexer, (yylsp[-2])); current_scope->add_using(using_decl, global_scope, current_lexer); } -#line 7702 "built/tmp/cppBison.yxx.c" +#line 7848 "built/tmp/cppBison.yxx.c" break; case 389: #line 3046 "dtool/src/cppparser/cppBison.yxx" - { +{ // This is really just an alternative way to declare a typedef. CPPTypedefType *typedef_type = new CPPTypedefType((yyvsp[-1].u.type), (yyvsp[-3].u.identifier), current_scope); typedef_type->_using = true; current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[-4])); } -#line 7713 "built/tmp/cppBison.yxx.c" +#line 7859 "built/tmp/cppBison.yxx.c" break; case 390: #line 3053 "dtool/src/cppparser/cppBison.yxx" - { +{ CPPUsing *using_decl = new CPPUsing((yyvsp[-1].u.identifier), true, (yylsp[-3]).file); current_scope->add_declaration(using_decl, global_scope, current_lexer, (yylsp[-3])); current_scope->add_using(using_decl, global_scope, current_lexer); } -#line 7723 "built/tmp/cppBison.yxx.c" +#line 7869 "built/tmp/cppBison.yxx.c" break; case 394: #line 3068 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_bool); } -#line 7731 "built/tmp/cppBison.yxx.c" +#line 7877 "built/tmp/cppBison.yxx.c" break; case 395: #line 3072 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char); } -#line 7739 "built/tmp/cppBison.yxx.c" +#line 7885 "built/tmp/cppBison.yxx.c" break; case 396: #line 3076 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_wchar_t); } -#line 7747 "built/tmp/cppBison.yxx.c" +#line 7893 "built/tmp/cppBison.yxx.c" break; case 397: #line 3080 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char16_t); } -#line 7755 "built/tmp/cppBison.yxx.c" +#line 7901 "built/tmp/cppBison.yxx.c" break; case 398: #line 3084 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char32_t); } -#line 7763 "built/tmp/cppBison.yxx.c" +#line 7909 "built/tmp/cppBison.yxx.c" break; case 399: #line 3088 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_short); } -#line 7772 "built/tmp/cppBison.yxx.c" +#line 7918 "built/tmp/cppBison.yxx.c" break; case 400: #line 3093 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_long); } -#line 7781 "built/tmp/cppBison.yxx.c" +#line 7927 "built/tmp/cppBison.yxx.c" break; case 401: #line 3098 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_unsigned); } -#line 7790 "built/tmp/cppBison.yxx.c" +#line 7936 "built/tmp/cppBison.yxx.c" break; case 402: #line 3103 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_signed); } -#line 7799 "built/tmp/cppBison.yxx.c" +#line 7945 "built/tmp/cppBison.yxx.c" break; case 403: #line 3108 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int); } -#line 7807 "built/tmp/cppBison.yxx.c" +#line 7953 "built/tmp/cppBison.yxx.c" break; case 404: #line 3112 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.simple_type) = (yyvsp[0].u.simple_type); (yyval.u.simple_type)->_flags |= CPPSimpleType::F_short; } -#line 7816 "built/tmp/cppBison.yxx.c" +#line 7962 "built/tmp/cppBison.yxx.c" break; case 405: #line 3117 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.simple_type) = (yyvsp[0].u.simple_type); if ((yyval.u.simple_type)->_flags & CPPSimpleType::F_long) { (yyval.u.simple_type)->_flags |= CPPSimpleType::F_longlong; @@ -7825,502 +7971,494 @@ yyreduce: (yyval.u.simple_type)->_flags |= CPPSimpleType::F_long; } } -#line 7829 "built/tmp/cppBison.yxx.c" +#line 7975 "built/tmp/cppBison.yxx.c" break; case 406: #line 3126 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.simple_type) = (yyvsp[0].u.simple_type); (yyval.u.simple_type)->_flags |= CPPSimpleType::F_unsigned; } -#line 7838 "built/tmp/cppBison.yxx.c" +#line 7984 "built/tmp/cppBison.yxx.c" break; case 407: #line 3131 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.simple_type) = (yyvsp[0].u.simple_type); (yyval.u.simple_type)->_flags |= CPPSimpleType::F_signed; } -#line 7847 "built/tmp/cppBison.yxx.c" +#line 7993 "built/tmp/cppBison.yxx.c" break; case 408: #line 3139 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float); } -#line 7855 "built/tmp/cppBison.yxx.c" +#line 8001 "built/tmp/cppBison.yxx.c" break; case 409: #line 3143 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double); } -#line 7863 "built/tmp/cppBison.yxx.c" +#line 8009 "built/tmp/cppBison.yxx.c" break; case 410: #line 3147 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double, CPPSimpleType::F_long); } -#line 7872 "built/tmp/cppBison.yxx.c" +#line 8018 "built/tmp/cppBison.yxx.c" break; case 411: #line 3155 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_void); } -#line 7880 "built/tmp/cppBison.yxx.c" +#line 8026 "built/tmp/cppBison.yxx.c" break; case 412: #line 3164 "dtool/src/cppparser/cppBison.yxx" - { +{ current_lexer->_resolve_identifiers = false; } -#line 7888 "built/tmp/cppBison.yxx.c" +#line 8034 "built/tmp/cppBison.yxx.c" break; case 413: #line 3168 "dtool/src/cppparser/cppBison.yxx" - { +{ current_lexer->_resolve_identifiers = true; } -#line 7896 "built/tmp/cppBison.yxx.c" +#line 8042 "built/tmp/cppBison.yxx.c" break; case 521: #line 3212 "dtool/src/cppparser/cppBison.yxx" - { +{ } -#line 7903 "built/tmp/cppBison.yxx.c" +#line 8049 "built/tmp/cppBison.yxx.c" break; case 545: #line 3221 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.expr) = nullptr; } -#line 7911 "built/tmp/cppBison.yxx.c" +#line 8057 "built/tmp/cppBison.yxx.c" break; case 546: #line 3225 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 7919 "built/tmp/cppBison.yxx.c" +#line 8065 "built/tmp/cppBison.yxx.c" break; case 547: #line 3232 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.expr) = nullptr; } -#line 7927 "built/tmp/cppBison.yxx.c" +#line 8073 "built/tmp/cppBison.yxx.c" break; case 548: #line 3236 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 7935 "built/tmp/cppBison.yxx.c" +#line 8081 "built/tmp/cppBison.yxx.c" break; case 549: #line 3243 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 7943 "built/tmp/cppBison.yxx.c" +#line 8089 "built/tmp/cppBison.yxx.c" break; case 550: #line 3247 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.expr) = new CPPExpression(',', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7951 "built/tmp/cppBison.yxx.c" +#line 8097 "built/tmp/cppBison.yxx.c" break; case 551: #line 3254 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 7959 "built/tmp/cppBison.yxx.c" +#line 8105 "built/tmp/cppBison.yxx.c" break; case 552: #line 3258 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); } -#line 7967 "built/tmp/cppBison.yxx.c" +#line 8113 "built/tmp/cppBison.yxx.c" break; case 553: #line 3262 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_static_cast)); } -#line 7975 "built/tmp/cppBison.yxx.c" +#line 8121 "built/tmp/cppBison.yxx.c" break; case 554: #line 3266 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_dynamic_cast)); } -#line 7983 "built/tmp/cppBison.yxx.c" +#line 8129 "built/tmp/cppBison.yxx.c" break; case 555: #line 3270 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_const_cast)); } -#line 7991 "built/tmp/cppBison.yxx.c" +#line 8137 "built/tmp/cppBison.yxx.c" break; case 556: #line 3274 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_reinterpret_cast)); } -#line 7999 "built/tmp/cppBison.yxx.c" +#line 8145 "built/tmp/cppBison.yxx.c" break; case 557: #line 3278 "dtool/src/cppparser/cppBison.yxx" - { +{ (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); } -#line 8007 "built/tmp/cppBison.yxx.c" +#line 8153 "built/tmp/cppBison.yxx.c" break; case 558: #line 3282 "dtool/src/cppparser/cppBison.yxx" - { - CPPDeclaration *arg = (yyvsp[-1].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); - if (arg == nullptr) { - yyerror("undefined sizeof argument: " + (yyvsp[-1].u.identifier)->get_fully_scoped_name(), (yylsp[-1])); - } else if (arg->get_subtype() == CPPDeclaration::ST_instance) { - CPPInstance *inst = arg->as_instance(); - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func(inst->_type)); - } else { - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func(arg->as_type())); - } +{ + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[0].u.expr))); } -#line 8023 "built/tmp/cppBison.yxx.c" +#line 8161 "built/tmp/cppBison.yxx.c" break; case 559: -#line 3294 "dtool/src/cppparser/cppBison.yxx" - { +#line 3286 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_ellipsis_func((yyvsp[-1].u.identifier))); } -#line 8031 "built/tmp/cppBison.yxx.c" +#line 8169 "built/tmp/cppBison.yxx.c" break; case 560: -#line 3298 "dtool/src/cppparser/cppBison.yxx" - { +#line 3290 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[-1].u.type))); } -#line 8039 "built/tmp/cppBison.yxx.c" +#line 8177 "built/tmp/cppBison.yxx.c" break; case 561: -#line 3302 "dtool/src/cppparser/cppBison.yxx" - { +#line 3294 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); } -#line 8047 "built/tmp/cppBison.yxx.c" +#line 8185 "built/tmp/cppBison.yxx.c" break; case 562: -#line 3306 "dtool/src/cppparser/cppBison.yxx" - { +#line 3298 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); } -#line 8055 "built/tmp/cppBison.yxx.c" +#line 8193 "built/tmp/cppBison.yxx.c" break; case 563: -#line 3310 "dtool/src/cppparser/cppBison.yxx" - { +#line 3302 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); } -#line 8063 "built/tmp/cppBison.yxx.c" +#line 8201 "built/tmp/cppBison.yxx.c" break; case 564: -#line 3314 "dtool/src/cppparser/cppBison.yxx" - { +#line 3306 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[0].u.expr)); } -#line 8071 "built/tmp/cppBison.yxx.c" +#line 8209 "built/tmp/cppBison.yxx.c" break; case 565: -#line 3318 "dtool/src/cppparser/cppBison.yxx" - { +#line 3310 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[0].u.expr)); } -#line 8079 "built/tmp/cppBison.yxx.c" +#line 8217 "built/tmp/cppBison.yxx.c" break; case 566: -#line 3322 "dtool/src/cppparser/cppBison.yxx" - { +#line 3314 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); } -#line 8087 "built/tmp/cppBison.yxx.c" +#line 8225 "built/tmp/cppBison.yxx.c" break; case 567: -#line 3326 "dtool/src/cppparser/cppBison.yxx" - { +#line 3318 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8095 "built/tmp/cppBison.yxx.c" +#line 8233 "built/tmp/cppBison.yxx.c" break; case 568: -#line 3330 "dtool/src/cppparser/cppBison.yxx" - { +#line 3322 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8103 "built/tmp/cppBison.yxx.c" +#line 8241 "built/tmp/cppBison.yxx.c" break; case 569: -#line 3334 "dtool/src/cppparser/cppBison.yxx" - { +#line 3326 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8111 "built/tmp/cppBison.yxx.c" +#line 8249 "built/tmp/cppBison.yxx.c" break; case 570: -#line 3338 "dtool/src/cppparser/cppBison.yxx" - { +#line 3330 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8119 "built/tmp/cppBison.yxx.c" +#line 8257 "built/tmp/cppBison.yxx.c" break; case 571: -#line 3342 "dtool/src/cppparser/cppBison.yxx" - { +#line 3334 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8127 "built/tmp/cppBison.yxx.c" +#line 8265 "built/tmp/cppBison.yxx.c" break; case 572: -#line 3346 "dtool/src/cppparser/cppBison.yxx" - { +#line 3338 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8135 "built/tmp/cppBison.yxx.c" +#line 8273 "built/tmp/cppBison.yxx.c" break; case 573: -#line 3350 "dtool/src/cppparser/cppBison.yxx" - { +#line 3342 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8143 "built/tmp/cppBison.yxx.c" +#line 8281 "built/tmp/cppBison.yxx.c" break; case 574: -#line 3354 "dtool/src/cppparser/cppBison.yxx" - { +#line 3346 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8151 "built/tmp/cppBison.yxx.c" +#line 8289 "built/tmp/cppBison.yxx.c" break; case 575: -#line 3358 "dtool/src/cppparser/cppBison.yxx" - { +#line 3350 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8159 "built/tmp/cppBison.yxx.c" +#line 8297 "built/tmp/cppBison.yxx.c" break; case 576: -#line 3362 "dtool/src/cppparser/cppBison.yxx" - { +#line 3354 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8167 "built/tmp/cppBison.yxx.c" +#line 8305 "built/tmp/cppBison.yxx.c" break; case 577: -#line 3366 "dtool/src/cppparser/cppBison.yxx" - { +#line 3358 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8175 "built/tmp/cppBison.yxx.c" +#line 8313 "built/tmp/cppBison.yxx.c" break; case 578: -#line 3370 "dtool/src/cppparser/cppBison.yxx" - { +#line 3362 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8183 "built/tmp/cppBison.yxx.c" +#line 8321 "built/tmp/cppBison.yxx.c" break; case 579: -#line 3374 "dtool/src/cppparser/cppBison.yxx" - { +#line 3366 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8191 "built/tmp/cppBison.yxx.c" +#line 8329 "built/tmp/cppBison.yxx.c" break; case 580: -#line 3378 "dtool/src/cppparser/cppBison.yxx" - { +#line 3370 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8199 "built/tmp/cppBison.yxx.c" +#line 8337 "built/tmp/cppBison.yxx.c" break; case 581: -#line 3382 "dtool/src/cppparser/cppBison.yxx" - { +#line 3374 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8207 "built/tmp/cppBison.yxx.c" +#line 8345 "built/tmp/cppBison.yxx.c" break; case 582: -#line 3386 "dtool/src/cppparser/cppBison.yxx" - { +#line 3378 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8215 "built/tmp/cppBison.yxx.c" +#line 8353 "built/tmp/cppBison.yxx.c" break; case 583: -#line 3390 "dtool/src/cppparser/cppBison.yxx" - { +#line 3382 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8223 "built/tmp/cppBison.yxx.c" +#line 8361 "built/tmp/cppBison.yxx.c" break; case 584: -#line 3394 "dtool/src/cppparser/cppBison.yxx" - { +#line 3386 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } -#line 8231 "built/tmp/cppBison.yxx.c" +#line 8369 "built/tmp/cppBison.yxx.c" break; case 585: -#line 3398 "dtool/src/cppparser/cppBison.yxx" - { +#line 3390 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } -#line 8239 "built/tmp/cppBison.yxx.c" +#line 8377 "built/tmp/cppBison.yxx.c" break; case 586: -#line 3402 "dtool/src/cppparser/cppBison.yxx" - { +#line 3394 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); } -#line 8247 "built/tmp/cppBison.yxx.c" +#line 8385 "built/tmp/cppBison.yxx.c" break; case 587: -#line 3406 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +#line 3398 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer)); } -#line 8255 "built/tmp/cppBison.yxx.c" +#line 8393 "built/tmp/cppBison.yxx.c" break; case 588: -#line 3410 "dtool/src/cppparser/cppBison.yxx" - { +#line 3402 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8263 "built/tmp/cppBison.yxx.c" +#line 8401 "built/tmp/cppBison.yxx.c" break; case 589: -#line 3414 "dtool/src/cppparser/cppBison.yxx" - { +#line 3406 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = (yyvsp[-1].u.expr); } -#line 8271 "built/tmp/cppBison.yxx.c" +#line 8409 "built/tmp/cppBison.yxx.c" break; case 590: -#line 3422 "dtool/src/cppparser/cppBison.yxx" - { +#line 3414 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 8279 "built/tmp/cppBison.yxx.c" +#line 8417 "built/tmp/cppBison.yxx.c" break; case 591: -#line 3426 "dtool/src/cppparser/cppBison.yxx" - { +#line 3418 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); } -#line 8287 "built/tmp/cppBison.yxx.c" +#line 8425 "built/tmp/cppBison.yxx.c" break; case 592: -#line 3430 "dtool/src/cppparser/cppBison.yxx" - { +#line 3422 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_static_cast)); } -#line 8295 "built/tmp/cppBison.yxx.c" +#line 8433 "built/tmp/cppBison.yxx.c" break; case 593: -#line 3434 "dtool/src/cppparser/cppBison.yxx" - { +#line 3426 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_dynamic_cast)); } -#line 8303 "built/tmp/cppBison.yxx.c" +#line 8441 "built/tmp/cppBison.yxx.c" break; case 594: -#line 3438 "dtool/src/cppparser/cppBison.yxx" - { +#line 3430 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_const_cast)); } -#line 8311 "built/tmp/cppBison.yxx.c" +#line 8449 "built/tmp/cppBison.yxx.c" break; case 595: -#line 3442 "dtool/src/cppparser/cppBison.yxx" - { +#line 3434 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_reinterpret_cast)); } -#line 8319 "built/tmp/cppBison.yxx.c" +#line 8457 "built/tmp/cppBison.yxx.c" break; case 596: -#line 3446 "dtool/src/cppparser/cppBison.yxx" - { +#line 3438 "dtool/src/cppparser/cppBison.yxx" +{ // A constructor call. CPPType *type = (yyvsp[-3].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type == nullptr) { @@ -8329,12 +8467,12 @@ yyreduce: assert(type != nullptr); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 8333 "built/tmp/cppBison.yxx.c" +#line 8471 "built/tmp/cppBison.yxx.c" break; case 597: -#line 3456 "dtool/src/cppparser/cppBison.yxx" - { +#line 3448 "dtool/src/cppparser/cppBison.yxx" +{ // Aggregate initialization. CPPType *type = (yyvsp[-3].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type == nullptr) { @@ -8343,192 +8481,184 @@ yyreduce: assert(type != nullptr); (yyval.u.expr) = new CPPExpression(CPPExpression::aggregate_init_op(type, (yyvsp[-1].u.expr))); } -#line 8347 "built/tmp/cppBison.yxx.c" +#line 8485 "built/tmp/cppBison.yxx.c" break; case 598: -#line 3466 "dtool/src/cppparser/cppBison.yxx" - { +#line 3458 "dtool/src/cppparser/cppBison.yxx" +{ CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int)); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 8357 "built/tmp/cppBison.yxx.c" +#line 8495 "built/tmp/cppBison.yxx.c" break; case 599: -#line 3472 "dtool/src/cppparser/cppBison.yxx" - { +#line 3464 "dtool/src/cppparser/cppBison.yxx" +{ CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char)); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 8367 "built/tmp/cppBison.yxx.c" +#line 8505 "built/tmp/cppBison.yxx.c" break; case 600: -#line 3478 "dtool/src/cppparser/cppBison.yxx" - { +#line 3470 "dtool/src/cppparser/cppBison.yxx" +{ CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_wchar_t)); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 8377 "built/tmp/cppBison.yxx.c" +#line 8515 "built/tmp/cppBison.yxx.c" break; case 601: -#line 3484 "dtool/src/cppparser/cppBison.yxx" - { +#line 3476 "dtool/src/cppparser/cppBison.yxx" +{ CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char16_t)); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 8387 "built/tmp/cppBison.yxx.c" +#line 8525 "built/tmp/cppBison.yxx.c" break; case 602: -#line 3490 "dtool/src/cppparser/cppBison.yxx" - { +#line 3482 "dtool/src/cppparser/cppBison.yxx" +{ CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char32_t)); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 8397 "built/tmp/cppBison.yxx.c" +#line 8535 "built/tmp/cppBison.yxx.c" break; case 603: -#line 3496 "dtool/src/cppparser/cppBison.yxx" - { +#line 3488 "dtool/src/cppparser/cppBison.yxx" +{ CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_bool)); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 8407 "built/tmp/cppBison.yxx.c" +#line 8545 "built/tmp/cppBison.yxx.c" break; case 604: -#line 3502 "dtool/src/cppparser/cppBison.yxx" - { +#line 3494 "dtool/src/cppparser/cppBison.yxx" +{ CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_short)); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 8418 "built/tmp/cppBison.yxx.c" +#line 8556 "built/tmp/cppBison.yxx.c" break; case 605: -#line 3509 "dtool/src/cppparser/cppBison.yxx" - { +#line 3501 "dtool/src/cppparser/cppBison.yxx" +{ CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_long)); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 8429 "built/tmp/cppBison.yxx.c" +#line 8567 "built/tmp/cppBison.yxx.c" break; case 606: -#line 3516 "dtool/src/cppparser/cppBison.yxx" - { +#line 3508 "dtool/src/cppparser/cppBison.yxx" +{ CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_unsigned)); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 8440 "built/tmp/cppBison.yxx.c" +#line 8578 "built/tmp/cppBison.yxx.c" break; case 607: -#line 3523 "dtool/src/cppparser/cppBison.yxx" - { +#line 3515 "dtool/src/cppparser/cppBison.yxx" +{ CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_signed)); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 8451 "built/tmp/cppBison.yxx.c" +#line 8589 "built/tmp/cppBison.yxx.c" break; case 608: -#line 3530 "dtool/src/cppparser/cppBison.yxx" - { +#line 3522 "dtool/src/cppparser/cppBison.yxx" +{ CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_float)); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 8461 "built/tmp/cppBison.yxx.c" +#line 8599 "built/tmp/cppBison.yxx.c" break; case 609: -#line 3536 "dtool/src/cppparser/cppBison.yxx" - { +#line 3528 "dtool/src/cppparser/cppBison.yxx" +{ CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_double)); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 8471 "built/tmp/cppBison.yxx.c" +#line 8609 "built/tmp/cppBison.yxx.c" break; case 610: -#line 3542 "dtool/src/cppparser/cppBison.yxx" - { +#line 3534 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); } -#line 8479 "built/tmp/cppBison.yxx.c" +#line 8617 "built/tmp/cppBison.yxx.c" break; case 611: -#line 3546 "dtool/src/cppparser/cppBison.yxx" - { - CPPDeclaration *arg = (yyvsp[-1].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); - if (arg == nullptr) { - yyerror("undefined sizeof argument: " + (yyvsp[-1].u.identifier)->get_fully_scoped_name(), (yylsp[-1])); - } else if (arg->get_subtype() == CPPDeclaration::ST_instance) { - CPPInstance *inst = arg->as_instance(); - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func(inst->_type)); - } else { - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func(arg->as_type())); - } +#line 3538 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[0].u.expr))); } -#line 8495 "built/tmp/cppBison.yxx.c" +#line 8625 "built/tmp/cppBison.yxx.c" break; case 612: -#line 3558 "dtool/src/cppparser/cppBison.yxx" - { +#line 3542 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_ellipsis_func((yyvsp[-1].u.identifier))); } -#line 8503 "built/tmp/cppBison.yxx.c" +#line 8633 "built/tmp/cppBison.yxx.c" break; case 613: -#line 3562 "dtool/src/cppparser/cppBison.yxx" - { +#line 3546 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[-1].u.type))); } -#line 8511 "built/tmp/cppBison.yxx.c" +#line 8641 "built/tmp/cppBison.yxx.c" break; case 614: -#line 3566 "dtool/src/cppparser/cppBison.yxx" - { +#line 3550 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[0].u.type))); } -#line 8519 "built/tmp/cppBison.yxx.c" +#line 8649 "built/tmp/cppBison.yxx.c" break; case 615: -#line 3570 "dtool/src/cppparser/cppBison.yxx" - { +#line 3554 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[-3].u.type), (yyvsp[-1].u.expr))); } -#line 8527 "built/tmp/cppBison.yxx.c" +#line 8657 "built/tmp/cppBison.yxx.c" break; case 616: -#line 3574 "dtool/src/cppparser/cppBison.yxx" - { +#line 3558 "dtool/src/cppparser/cppBison.yxx" +{ CPPIdentifier ident(""); ident.add_name("std"); ident.add_name("type_info"); @@ -8538,12 +8668,12 @@ yyreduce: } (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.type), std_type_info)); } -#line 8542 "built/tmp/cppBison.yxx.c" +#line 8672 "built/tmp/cppBison.yxx.c" break; case 617: -#line 3585 "dtool/src/cppparser/cppBison.yxx" - { +#line 3569 "dtool/src/cppparser/cppBison.yxx" +{ CPPIdentifier ident(""); ident.add_name("std"); ident.add_name("type_info"); @@ -8553,613 +8683,605 @@ yyreduce: } (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.expr), std_type_info)); } -#line 8557 "built/tmp/cppBison.yxx.c" +#line 8687 "built/tmp/cppBison.yxx.c" break; case 618: -#line 3596 "dtool/src/cppparser/cppBison.yxx" - { +#line 3580 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); } -#line 8565 "built/tmp/cppBison.yxx.c" +#line 8695 "built/tmp/cppBison.yxx.c" break; case 619: -#line 3600 "dtool/src/cppparser/cppBison.yxx" - { +#line 3584 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); } -#line 8573 "built/tmp/cppBison.yxx.c" +#line 8703 "built/tmp/cppBison.yxx.c" break; case 620: -#line 3604 "dtool/src/cppparser/cppBison.yxx" - { +#line 3588 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); } -#line 8581 "built/tmp/cppBison.yxx.c" +#line 8711 "built/tmp/cppBison.yxx.c" break; case 621: -#line 3608 "dtool/src/cppparser/cppBison.yxx" - { +#line 3592 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[0].u.expr)); } -#line 8589 "built/tmp/cppBison.yxx.c" +#line 8719 "built/tmp/cppBison.yxx.c" break; case 622: -#line 3612 "dtool/src/cppparser/cppBison.yxx" - { +#line 3596 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[0].u.expr)); } -#line 8597 "built/tmp/cppBison.yxx.c" +#line 8727 "built/tmp/cppBison.yxx.c" break; case 623: -#line 3616 "dtool/src/cppparser/cppBison.yxx" - { +#line 3600 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); } -#line 8605 "built/tmp/cppBison.yxx.c" +#line 8735 "built/tmp/cppBison.yxx.c" break; case 624: -#line 3620 "dtool/src/cppparser/cppBison.yxx" - { +#line 3604 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8613 "built/tmp/cppBison.yxx.c" +#line 8743 "built/tmp/cppBison.yxx.c" break; case 625: -#line 3624 "dtool/src/cppparser/cppBison.yxx" - { +#line 3608 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8621 "built/tmp/cppBison.yxx.c" +#line 8751 "built/tmp/cppBison.yxx.c" break; case 626: -#line 3628 "dtool/src/cppparser/cppBison.yxx" - { +#line 3612 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8629 "built/tmp/cppBison.yxx.c" +#line 8759 "built/tmp/cppBison.yxx.c" break; case 627: -#line 3632 "dtool/src/cppparser/cppBison.yxx" - { +#line 3616 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8637 "built/tmp/cppBison.yxx.c" +#line 8767 "built/tmp/cppBison.yxx.c" break; case 628: -#line 3636 "dtool/src/cppparser/cppBison.yxx" - { +#line 3620 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8645 "built/tmp/cppBison.yxx.c" +#line 8775 "built/tmp/cppBison.yxx.c" break; case 629: -#line 3640 "dtool/src/cppparser/cppBison.yxx" - { +#line 3624 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8653 "built/tmp/cppBison.yxx.c" +#line 8783 "built/tmp/cppBison.yxx.c" break; case 630: -#line 3644 "dtool/src/cppparser/cppBison.yxx" - { +#line 3628 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8661 "built/tmp/cppBison.yxx.c" +#line 8791 "built/tmp/cppBison.yxx.c" break; case 631: -#line 3648 "dtool/src/cppparser/cppBison.yxx" - { +#line 3632 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8669 "built/tmp/cppBison.yxx.c" +#line 8799 "built/tmp/cppBison.yxx.c" break; case 632: -#line 3652 "dtool/src/cppparser/cppBison.yxx" - { +#line 3636 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8677 "built/tmp/cppBison.yxx.c" +#line 8807 "built/tmp/cppBison.yxx.c" break; case 633: -#line 3656 "dtool/src/cppparser/cppBison.yxx" - { +#line 3640 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8685 "built/tmp/cppBison.yxx.c" +#line 8815 "built/tmp/cppBison.yxx.c" break; case 634: -#line 3660 "dtool/src/cppparser/cppBison.yxx" - { +#line 3644 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8693 "built/tmp/cppBison.yxx.c" +#line 8823 "built/tmp/cppBison.yxx.c" break; case 635: -#line 3664 "dtool/src/cppparser/cppBison.yxx" - { +#line 3648 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8701 "built/tmp/cppBison.yxx.c" +#line 8831 "built/tmp/cppBison.yxx.c" break; case 636: -#line 3668 "dtool/src/cppparser/cppBison.yxx" - { +#line 3652 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8709 "built/tmp/cppBison.yxx.c" +#line 8839 "built/tmp/cppBison.yxx.c" break; case 637: -#line 3672 "dtool/src/cppparser/cppBison.yxx" - { +#line 3656 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8717 "built/tmp/cppBison.yxx.c" +#line 8847 "built/tmp/cppBison.yxx.c" break; case 638: -#line 3676 "dtool/src/cppparser/cppBison.yxx" - { +#line 3660 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('<', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8725 "built/tmp/cppBison.yxx.c" +#line 8855 "built/tmp/cppBison.yxx.c" break; case 639: -#line 3680 "dtool/src/cppparser/cppBison.yxx" - { +#line 3664 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('>', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8733 "built/tmp/cppBison.yxx.c" +#line 8863 "built/tmp/cppBison.yxx.c" break; case 640: -#line 3684 "dtool/src/cppparser/cppBison.yxx" - { +#line 3668 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8741 "built/tmp/cppBison.yxx.c" +#line 8871 "built/tmp/cppBison.yxx.c" break; case 641: -#line 3688 "dtool/src/cppparser/cppBison.yxx" - { +#line 3672 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 8749 "built/tmp/cppBison.yxx.c" - break; - - case 642: -#line 3692 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); -} -#line 8757 "built/tmp/cppBison.yxx.c" - break; - - case 643: -#line 3696 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); -} -#line 8765 "built/tmp/cppBison.yxx.c" - break; - - case 644: -#line 3700 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); -} -#line 8773 "built/tmp/cppBison.yxx.c" - break; - - case 645: -#line 3704 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); -} -#line 8781 "built/tmp/cppBison.yxx.c" - break; - - case 646: -#line 3708 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); -} -#line 8789 "built/tmp/cppBison.yxx.c" - break; - - case 647: -#line 3712 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); -} -#line 8797 "built/tmp/cppBison.yxx.c" - break; - - case 648: -#line 3716 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[-1].u.expr); -} -#line 8805 "built/tmp/cppBison.yxx.c" - break; - - case 649: -#line 3723 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); -} -#line 8813 "built/tmp/cppBison.yxx.c" - break; - - case 650: -#line 3727 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(true); -} -#line 8821 "built/tmp/cppBison.yxx.c" - break; - - case 651: -#line 3731 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(false); -} -#line 8829 "built/tmp/cppBison.yxx.c" - break; - - case 652: -#line 3735 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); -} -#line 8837 "built/tmp/cppBison.yxx.c" - break; - - case 653: -#line 3739 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[0].u.real)); -} -#line 8845 "built/tmp/cppBison.yxx.c" - break; - - case 654: -#line 3743 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[0].u.expr); -} -#line 8853 "built/tmp/cppBison.yxx.c" - break; - - case 655: -#line 3747 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[0].u.expr); -} -#line 8861 "built/tmp/cppBison.yxx.c" - break; - - case 656: -#line 3751 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer); -} -#line 8869 "built/tmp/cppBison.yxx.c" - break; - - case 657: -#line 3755 "dtool/src/cppparser/cppBison.yxx" - { - // A variable named "final". C++11 explicitly permits this. - CPPIdentifier *ident = new CPPIdentifier("final", (yylsp[0])); - (yyval.u.expr) = new CPPExpression(ident, current_scope, global_scope, current_lexer); -} #line 8879 "built/tmp/cppBison.yxx.c" break; + case 642: +#line 3676 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 8887 "built/tmp/cppBison.yxx.c" + break; + + case 643: +#line 3680 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); +} +#line 8895 "built/tmp/cppBison.yxx.c" + break; + + case 644: +#line 3684 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); +} +#line 8903 "built/tmp/cppBison.yxx.c" + break; + + case 645: +#line 3688 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); +} +#line 8911 "built/tmp/cppBison.yxx.c" + break; + + case 646: +#line 3692 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer)); +} +#line 8919 "built/tmp/cppBison.yxx.c" + break; + + case 647: +#line 3696 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 8927 "built/tmp/cppBison.yxx.c" + break; + + case 648: +#line 3700 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = (yyvsp[-1].u.expr); +} +#line 8935 "built/tmp/cppBison.yxx.c" + break; + + case 649: +#line 3707 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); +} +#line 8943 "built/tmp/cppBison.yxx.c" + break; + + case 650: +#line 3711 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression(true); +} +#line 8951 "built/tmp/cppBison.yxx.c" + break; + + case 651: +#line 3715 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression(false); +} +#line 8959 "built/tmp/cppBison.yxx.c" + break; + + case 652: +#line 3719 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); +} +#line 8967 "built/tmp/cppBison.yxx.c" + break; + + case 653: +#line 3723 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.real)); +} +#line 8975 "built/tmp/cppBison.yxx.c" + break; + + case 654: +#line 3727 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 8983 "built/tmp/cppBison.yxx.c" + break; + + case 655: +#line 3731 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 8991 "built/tmp/cppBison.yxx.c" + break; + + case 656: +#line 3735 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer); +} +#line 8999 "built/tmp/cppBison.yxx.c" + break; + + case 657: +#line 3739 "dtool/src/cppparser/cppBison.yxx" +{ + // A variable named "final". C++11 explicitly permits this. + CPPIdentifier *ident = new CPPIdentifier("final", (yylsp[0])); + (yyval.u.expr) = new CPPExpression(ident, current_scope, global_scope, current_lexer); +} +#line 9009 "built/tmp/cppBison.yxx.c" + break; + case 658: -#line 3761 "dtool/src/cppparser/cppBison.yxx" - { +#line 3745 "dtool/src/cppparser/cppBison.yxx" +{ // A variable named "override". C++11 explicitly permits this. CPPIdentifier *ident = new CPPIdentifier("override", (yylsp[0])); (yyval.u.expr) = new CPPExpression(ident, current_scope, global_scope, current_lexer); } -#line 8889 "built/tmp/cppBison.yxx.c" +#line 9019 "built/tmp/cppBison.yxx.c" break; case 659: -#line 3767 "dtool/src/cppparser/cppBison.yxx" - { +#line 3751 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::get_nullptr()); } -#line 8897 "built/tmp/cppBison.yxx.c" +#line 9027 "built/tmp/cppBison.yxx.c" break; case 660: -#line 3771 "dtool/src/cppparser/cppBison.yxx" - { +#line 3755 "dtool/src/cppparser/cppBison.yxx" +{ (yyvsp[-6].u.closure_type)->_flags = (yyvsp[-4].u.integer); (yyvsp[-6].u.closure_type)->_return_type = (yyvsp[-3].u.type); (yyval.u.expr) = new CPPExpression(CPPExpression::lambda((yyvsp[-6].u.closure_type))); } -#line 8907 "built/tmp/cppBison.yxx.c" +#line 9037 "built/tmp/cppBison.yxx.c" break; case 661: -#line 3777 "dtool/src/cppparser/cppBison.yxx" - { +#line 3761 "dtool/src/cppparser/cppBison.yxx" +{ (yyvsp[-9].u.closure_type)->_parameters = (yyvsp[-6].u.param_list); (yyvsp[-9].u.closure_type)->_flags = (yyvsp[-4].u.integer); (yyvsp[-9].u.closure_type)->_return_type = (yyvsp[-3].u.type); (yyval.u.expr) = new CPPExpression(CPPExpression::lambda((yyvsp[-9].u.closure_type))); } -#line 8918 "built/tmp/cppBison.yxx.c" +#line 9048 "built/tmp/cppBison.yxx.c" break; case 662: -#line 3784 "dtool/src/cppparser/cppBison.yxx" - { +#line 3768 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_HAS_VIRTUAL_DESTRUCTOR, (yyvsp[-1].u.type))); } -#line 8926 "built/tmp/cppBison.yxx.c" +#line 9056 "built/tmp/cppBison.yxx.c" break; case 663: -#line 3788 "dtool/src/cppparser/cppBison.yxx" - { +#line 3772 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_ABSTRACT, (yyvsp[-1].u.type))); } -#line 8934 "built/tmp/cppBison.yxx.c" +#line 9064 "built/tmp/cppBison.yxx.c" break; case 664: -#line 3792 "dtool/src/cppparser/cppBison.yxx" - { +#line 3776 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_CLASS, (yyvsp[-3].u.type), (yyvsp[-1].u.type))); } -#line 8942 "built/tmp/cppBison.yxx.c" +#line 9072 "built/tmp/cppBison.yxx.c" break; case 665: -#line 3796 "dtool/src/cppparser/cppBison.yxx" - { +#line 3780 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_CLASS, (yyvsp[-1].u.type))); } -#line 8950 "built/tmp/cppBison.yxx.c" +#line 9080 "built/tmp/cppBison.yxx.c" break; case 666: -#line 3800 "dtool/src/cppparser/cppBison.yxx" - { +#line 3784 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_CONSTRUCTIBLE, (yyvsp[-1].u.type))); } -#line 8958 "built/tmp/cppBison.yxx.c" +#line 9088 "built/tmp/cppBison.yxx.c" break; case 667: -#line 3804 "dtool/src/cppparser/cppBison.yxx" - { +#line 3788 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_CONSTRUCTIBLE, (yyvsp[-3].u.type), (yyvsp[-1].u.type))); } -#line 8966 "built/tmp/cppBison.yxx.c" +#line 9096 "built/tmp/cppBison.yxx.c" break; case 668: -#line 3808 "dtool/src/cppparser/cppBison.yxx" - { +#line 3792 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_CONVERTIBLE_TO, (yyvsp[-3].u.type), (yyvsp[-1].u.type))); } -#line 8974 "built/tmp/cppBison.yxx.c" +#line 9104 "built/tmp/cppBison.yxx.c" break; case 669: -#line 3812 "dtool/src/cppparser/cppBison.yxx" - { +#line 3796 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_DESTRUCTIBLE, (yyvsp[-1].u.type))); } -#line 8982 "built/tmp/cppBison.yxx.c" +#line 9112 "built/tmp/cppBison.yxx.c" break; case 670: -#line 3816 "dtool/src/cppparser/cppBison.yxx" - { +#line 3800 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_EMPTY, (yyvsp[-1].u.type))); } -#line 8990 "built/tmp/cppBison.yxx.c" +#line 9120 "built/tmp/cppBison.yxx.c" break; case 671: -#line 3820 "dtool/src/cppparser/cppBison.yxx" - { +#line 3804 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_ENUM, (yyvsp[-1].u.type))); } -#line 8998 "built/tmp/cppBison.yxx.c" +#line 9128 "built/tmp/cppBison.yxx.c" break; case 672: -#line 3824 "dtool/src/cppparser/cppBison.yxx" - { +#line 3808 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_FINAL, (yyvsp[-1].u.type))); } -#line 9006 "built/tmp/cppBison.yxx.c" +#line 9136 "built/tmp/cppBison.yxx.c" break; case 673: -#line 3828 "dtool/src/cppparser/cppBison.yxx" - { +#line 3812 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_FUNDAMENTAL, (yyvsp[-1].u.type))); } -#line 9014 "built/tmp/cppBison.yxx.c" +#line 9144 "built/tmp/cppBison.yxx.c" break; case 674: -#line 3832 "dtool/src/cppparser/cppBison.yxx" - { +#line 3816 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_POD, (yyvsp[-1].u.type))); } -#line 9022 "built/tmp/cppBison.yxx.c" +#line 9152 "built/tmp/cppBison.yxx.c" break; case 675: -#line 3836 "dtool/src/cppparser/cppBison.yxx" - { +#line 3820 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_POLYMORPHIC, (yyvsp[-1].u.type))); } -#line 9030 "built/tmp/cppBison.yxx.c" +#line 9160 "built/tmp/cppBison.yxx.c" break; case 676: -#line 3840 "dtool/src/cppparser/cppBison.yxx" - { +#line 3824 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_STANDARD_LAYOUT, (yyvsp[-1].u.type))); } -#line 9038 "built/tmp/cppBison.yxx.c" +#line 9168 "built/tmp/cppBison.yxx.c" break; case 677: -#line 3844 "dtool/src/cppparser/cppBison.yxx" - { +#line 3828 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_TRIVIAL, (yyvsp[-1].u.type))); } -#line 9046 "built/tmp/cppBison.yxx.c" +#line 9176 "built/tmp/cppBison.yxx.c" break; case 678: -#line 3848 "dtool/src/cppparser/cppBison.yxx" - { +#line 3832 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::type_trait(KW_IS_UNION, (yyvsp[-1].u.type))); } -#line 9054 "built/tmp/cppBison.yxx.c" +#line 9184 "built/tmp/cppBison.yxx.c" break; case 679: -#line 3862 "dtool/src/cppparser/cppBison.yxx" - { +#line 3846 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 9062 "built/tmp/cppBison.yxx.c" +#line 9192 "built/tmp/cppBison.yxx.c" break; case 680: -#line 3866 "dtool/src/cppparser/cppBison.yxx" - { +#line 3850 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); } -#line 9070 "built/tmp/cppBison.yxx.c" +#line 9200 "built/tmp/cppBison.yxx.c" break; case 681: -#line 3870 "dtool/src/cppparser/cppBison.yxx" - { +#line 3854 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_static_cast)); } -#line 9078 "built/tmp/cppBison.yxx.c" +#line 9208 "built/tmp/cppBison.yxx.c" break; case 682: -#line 3874 "dtool/src/cppparser/cppBison.yxx" - { +#line 3858 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_dynamic_cast)); } -#line 9086 "built/tmp/cppBison.yxx.c" +#line 9216 "built/tmp/cppBison.yxx.c" break; case 683: -#line 3878 "dtool/src/cppparser/cppBison.yxx" - { +#line 3862 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_const_cast)); } -#line 9094 "built/tmp/cppBison.yxx.c" +#line 9224 "built/tmp/cppBison.yxx.c" break; case 684: -#line 3882 "dtool/src/cppparser/cppBison.yxx" - { +#line 3866 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_reinterpret_cast)); } -#line 9102 "built/tmp/cppBison.yxx.c" +#line 9232 "built/tmp/cppBison.yxx.c" break; case 685: -#line 3886 "dtool/src/cppparser/cppBison.yxx" - { +#line 3870 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); } -#line 9110 "built/tmp/cppBison.yxx.c" +#line 9240 "built/tmp/cppBison.yxx.c" break; case 686: -#line 3890 "dtool/src/cppparser/cppBison.yxx" - { - CPPDeclaration *arg = (yyvsp[-1].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); - if (arg == nullptr) { - yyerror("undefined sizeof argument: " + (yyvsp[-1].u.identifier)->get_fully_scoped_name(), (yylsp[-1])); - } else if (arg->get_subtype() == CPPDeclaration::ST_instance) { - CPPInstance *inst = arg->as_instance(); - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func(inst->_type)); - } else { - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func(arg->as_type())); - } +#line 3874 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[0].u.expr))); } -#line 9126 "built/tmp/cppBison.yxx.c" +#line 9248 "built/tmp/cppBison.yxx.c" break; case 687: -#line 3902 "dtool/src/cppparser/cppBison.yxx" - { +#line 3878 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_ellipsis_func((yyvsp[-1].u.identifier))); } -#line 9134 "built/tmp/cppBison.yxx.c" +#line 9256 "built/tmp/cppBison.yxx.c" break; case 688: -#line 3906 "dtool/src/cppparser/cppBison.yxx" - { +#line 3882 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[-1].u.type))); } -#line 9142 "built/tmp/cppBison.yxx.c" +#line 9264 "built/tmp/cppBison.yxx.c" break; case 689: -#line 3910 "dtool/src/cppparser/cppBison.yxx" - { +#line 3886 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[0].u.type))); } -#line 9150 "built/tmp/cppBison.yxx.c" +#line 9272 "built/tmp/cppBison.yxx.c" break; case 690: -#line 3914 "dtool/src/cppparser/cppBison.yxx" - { +#line 3890 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[-3].u.type), (yyvsp[-1].u.expr))); } -#line 9158 "built/tmp/cppBison.yxx.c" +#line 9280 "built/tmp/cppBison.yxx.c" break; case 691: -#line 3918 "dtool/src/cppparser/cppBison.yxx" - { +#line 3894 "dtool/src/cppparser/cppBison.yxx" +{ CPPIdentifier ident(""); ident.add_name("std"); ident.add_name("type_info"); @@ -9169,12 +9291,12 @@ yyreduce: } (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.type), std_type_info)); } -#line 9173 "built/tmp/cppBison.yxx.c" +#line 9295 "built/tmp/cppBison.yxx.c" break; case 692: -#line 3929 "dtool/src/cppparser/cppBison.yxx" - { +#line 3905 "dtool/src/cppparser/cppBison.yxx" +{ CPPIdentifier ident(""); ident.add_name("std"); ident.add_name("type_info"); @@ -9184,410 +9306,410 @@ yyreduce: } (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.expr), std_type_info)); } -#line 9188 "built/tmp/cppBison.yxx.c" +#line 9310 "built/tmp/cppBison.yxx.c" break; case 693: -#line 3940 "dtool/src/cppparser/cppBison.yxx" - { +#line 3916 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); } -#line 9196 "built/tmp/cppBison.yxx.c" +#line 9318 "built/tmp/cppBison.yxx.c" break; case 694: -#line 3944 "dtool/src/cppparser/cppBison.yxx" - { +#line 3920 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); } -#line 9204 "built/tmp/cppBison.yxx.c" +#line 9326 "built/tmp/cppBison.yxx.c" break; case 695: -#line 3948 "dtool/src/cppparser/cppBison.yxx" - { +#line 3924 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); } -#line 9212 "built/tmp/cppBison.yxx.c" +#line 9334 "built/tmp/cppBison.yxx.c" break; case 696: -#line 3952 "dtool/src/cppparser/cppBison.yxx" - { +#line 3928 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[0].u.expr)); } -#line 9220 "built/tmp/cppBison.yxx.c" +#line 9342 "built/tmp/cppBison.yxx.c" break; case 697: -#line 3956 "dtool/src/cppparser/cppBison.yxx" - { +#line 3932 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); } -#line 9228 "built/tmp/cppBison.yxx.c" +#line 9350 "built/tmp/cppBison.yxx.c" break; case 698: -#line 3960 "dtool/src/cppparser/cppBison.yxx" - { +#line 3936 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9236 "built/tmp/cppBison.yxx.c" +#line 9358 "built/tmp/cppBison.yxx.c" break; case 699: -#line 3964 "dtool/src/cppparser/cppBison.yxx" - { +#line 3940 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9244 "built/tmp/cppBison.yxx.c" +#line 9366 "built/tmp/cppBison.yxx.c" break; case 700: -#line 3968 "dtool/src/cppparser/cppBison.yxx" - { +#line 3944 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9252 "built/tmp/cppBison.yxx.c" +#line 9374 "built/tmp/cppBison.yxx.c" break; case 701: -#line 3972 "dtool/src/cppparser/cppBison.yxx" - { +#line 3948 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9260 "built/tmp/cppBison.yxx.c" +#line 9382 "built/tmp/cppBison.yxx.c" break; case 702: -#line 3976 "dtool/src/cppparser/cppBison.yxx" - { +#line 3952 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9268 "built/tmp/cppBison.yxx.c" +#line 9390 "built/tmp/cppBison.yxx.c" break; case 703: -#line 3980 "dtool/src/cppparser/cppBison.yxx" - { +#line 3956 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9276 "built/tmp/cppBison.yxx.c" +#line 9398 "built/tmp/cppBison.yxx.c" break; case 704: -#line 3984 "dtool/src/cppparser/cppBison.yxx" - { +#line 3960 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9284 "built/tmp/cppBison.yxx.c" +#line 9406 "built/tmp/cppBison.yxx.c" break; case 705: -#line 3988 "dtool/src/cppparser/cppBison.yxx" - { +#line 3964 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9292 "built/tmp/cppBison.yxx.c" +#line 9414 "built/tmp/cppBison.yxx.c" break; case 706: -#line 3992 "dtool/src/cppparser/cppBison.yxx" - { +#line 3968 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9300 "built/tmp/cppBison.yxx.c" +#line 9422 "built/tmp/cppBison.yxx.c" break; case 707: -#line 3996 "dtool/src/cppparser/cppBison.yxx" - { +#line 3972 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9308 "built/tmp/cppBison.yxx.c" +#line 9430 "built/tmp/cppBison.yxx.c" break; case 708: -#line 4000 "dtool/src/cppparser/cppBison.yxx" - { +#line 3976 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9316 "built/tmp/cppBison.yxx.c" +#line 9438 "built/tmp/cppBison.yxx.c" break; case 709: -#line 4004 "dtool/src/cppparser/cppBison.yxx" - { +#line 3980 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9324 "built/tmp/cppBison.yxx.c" +#line 9446 "built/tmp/cppBison.yxx.c" break; case 710: -#line 4008 "dtool/src/cppparser/cppBison.yxx" - { +#line 3984 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9332 "built/tmp/cppBison.yxx.c" +#line 9454 "built/tmp/cppBison.yxx.c" break; case 711: -#line 4012 "dtool/src/cppparser/cppBison.yxx" - { +#line 3988 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9340 "built/tmp/cppBison.yxx.c" +#line 9462 "built/tmp/cppBison.yxx.c" break; case 712: -#line 4016 "dtool/src/cppparser/cppBison.yxx" - { +#line 3992 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('<', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9348 "built/tmp/cppBison.yxx.c" +#line 9470 "built/tmp/cppBison.yxx.c" break; case 713: -#line 4020 "dtool/src/cppparser/cppBison.yxx" - { +#line 3996 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('>', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9356 "built/tmp/cppBison.yxx.c" +#line 9478 "built/tmp/cppBison.yxx.c" break; case 714: -#line 4024 "dtool/src/cppparser/cppBison.yxx" - { +#line 4000 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9364 "built/tmp/cppBison.yxx.c" +#line 9486 "built/tmp/cppBison.yxx.c" break; case 715: -#line 4028 "dtool/src/cppparser/cppBison.yxx" - { +#line 4004 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9372 "built/tmp/cppBison.yxx.c" +#line 9494 "built/tmp/cppBison.yxx.c" break; case 716: -#line 4032 "dtool/src/cppparser/cppBison.yxx" - { +#line 4008 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 9380 "built/tmp/cppBison.yxx.c" - break; - - case 717: -#line 4036 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); -} -#line 9388 "built/tmp/cppBison.yxx.c" - break; - - case 718: -#line 4040 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); -} -#line 9396 "built/tmp/cppBison.yxx.c" - break; - - case 719: -#line 4044 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); -} -#line 9404 "built/tmp/cppBison.yxx.c" - break; - - case 720: -#line 4048 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); -} -#line 9412 "built/tmp/cppBison.yxx.c" - break; - - case 721: -#line 4052 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); -} -#line 9420 "built/tmp/cppBison.yxx.c" - break; - - case 722: -#line 4056 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[-1].u.expr); -} -#line 9428 "built/tmp/cppBison.yxx.c" - break; - - case 723: -#line 4063 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); -} -#line 9436 "built/tmp/cppBison.yxx.c" - break; - - case 724: -#line 4067 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(true); -} -#line 9444 "built/tmp/cppBison.yxx.c" - break; - - case 725: -#line 4071 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(false); -} -#line 9452 "built/tmp/cppBison.yxx.c" - break; - - case 726: -#line 4075 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); -} -#line 9460 "built/tmp/cppBison.yxx.c" - break; - - case 727: -#line 4079 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[0].u.real)); -} -#line 9468 "built/tmp/cppBison.yxx.c" - break; - - case 728: -#line 4083 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[0].u.expr); -} -#line 9476 "built/tmp/cppBison.yxx.c" - break; - - case 729: -#line 4087 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[0].u.expr); -} -#line 9484 "built/tmp/cppBison.yxx.c" - break; - - case 730: -#line 4091 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer); -} -#line 9492 "built/tmp/cppBison.yxx.c" - break; - - case 731: -#line 4095 "dtool/src/cppparser/cppBison.yxx" - { - // A variable named "final". C++11 explicitly permits this. - CPPIdentifier *ident = new CPPIdentifier("final", (yylsp[0])); - (yyval.u.expr) = new CPPExpression(ident, current_scope, global_scope, current_lexer); -} #line 9502 "built/tmp/cppBison.yxx.c" break; + case 717: +#line 4012 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); +} +#line 9510 "built/tmp/cppBison.yxx.c" + break; + + case 718: +#line 4016 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); +} +#line 9518 "built/tmp/cppBison.yxx.c" + break; + + case 719: +#line 4020 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); +} +#line 9526 "built/tmp/cppBison.yxx.c" + break; + + case 720: +#line 4024 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer)); +} +#line 9534 "built/tmp/cppBison.yxx.c" + break; + + case 721: +#line 4028 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 9542 "built/tmp/cppBison.yxx.c" + break; + + case 722: +#line 4032 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = (yyvsp[-1].u.expr); +} +#line 9550 "built/tmp/cppBison.yxx.c" + break; + + case 723: +#line 4039 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); +} +#line 9558 "built/tmp/cppBison.yxx.c" + break; + + case 724: +#line 4043 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression(true); +} +#line 9566 "built/tmp/cppBison.yxx.c" + break; + + case 725: +#line 4047 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression(false); +} +#line 9574 "built/tmp/cppBison.yxx.c" + break; + + case 726: +#line 4051 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); +} +#line 9582 "built/tmp/cppBison.yxx.c" + break; + + case 727: +#line 4055 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.real)); +} +#line 9590 "built/tmp/cppBison.yxx.c" + break; + + case 728: +#line 4059 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 9598 "built/tmp/cppBison.yxx.c" + break; + + case 729: +#line 4063 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 9606 "built/tmp/cppBison.yxx.c" + break; + + case 730: +#line 4067 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer); +} +#line 9614 "built/tmp/cppBison.yxx.c" + break; + + case 731: +#line 4071 "dtool/src/cppparser/cppBison.yxx" +{ + // A variable named "final". C++11 explicitly permits this. + CPPIdentifier *ident = new CPPIdentifier("final", (yylsp[0])); + (yyval.u.expr) = new CPPExpression(ident, current_scope, global_scope, current_lexer); +} +#line 9624 "built/tmp/cppBison.yxx.c" + break; + case 732: -#line 4101 "dtool/src/cppparser/cppBison.yxx" - { +#line 4077 "dtool/src/cppparser/cppBison.yxx" +{ // A variable named "override". C++11 explicitly permits this. CPPIdentifier *ident = new CPPIdentifier("override", (yylsp[0])); (yyval.u.expr) = new CPPExpression(ident, current_scope, global_scope, current_lexer); } -#line 9512 "built/tmp/cppBison.yxx.c" +#line 9634 "built/tmp/cppBison.yxx.c" break; case 733: -#line 4107 "dtool/src/cppparser/cppBison.yxx" - { +#line 4083 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.expr) = new CPPExpression(CPPExpression::get_nullptr()); } -#line 9520 "built/tmp/cppBison.yxx.c" +#line 9642 "built/tmp/cppBison.yxx.c" break; case 734: -#line 4115 "dtool/src/cppparser/cppBison.yxx" - { +#line 4091 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.closure_type) = new CPPClosureType(); } -#line 9528 "built/tmp/cppBison.yxx.c" +#line 9650 "built/tmp/cppBison.yxx.c" break; case 735: -#line 4119 "dtool/src/cppparser/cppBison.yxx" - { +#line 4095 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.closure_type) = new CPPClosureType(CPPClosureType::CT_by_value); } -#line 9536 "built/tmp/cppBison.yxx.c" +#line 9658 "built/tmp/cppBison.yxx.c" break; case 736: -#line 4123 "dtool/src/cppparser/cppBison.yxx" - { +#line 4099 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.closure_type) = new CPPClosureType(CPPClosureType::CT_by_reference); } -#line 9544 "built/tmp/cppBison.yxx.c" +#line 9666 "built/tmp/cppBison.yxx.c" break; case 737: -#line 4127 "dtool/src/cppparser/cppBison.yxx" - { +#line 4103 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.closure_type) = new CPPClosureType(); (yyvsp[-1].u.capture)->_initializer = (yyvsp[0].u.expr); (yyval.u.closure_type)->_captures.push_back(*(yyvsp[-1].u.capture)); delete (yyvsp[-1].u.capture); } -#line 9555 "built/tmp/cppBison.yxx.c" +#line 9677 "built/tmp/cppBison.yxx.c" break; case 738: -#line 4134 "dtool/src/cppparser/cppBison.yxx" - { +#line 4110 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.closure_type) = (yyvsp[-3].u.closure_type); (yyvsp[-1].u.capture)->_initializer = (yyvsp[0].u.expr); (yyval.u.closure_type)->_captures.push_back(*(yyvsp[-1].u.capture)); delete (yyvsp[-1].u.capture); } -#line 9566 "built/tmp/cppBison.yxx.c" +#line 9688 "built/tmp/cppBison.yxx.c" break; case 739: -#line 4144 "dtool/src/cppparser/cppBison.yxx" - { +#line 4120 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.capture) = new CPPClosureType::Capture; (yyval.u.capture)->_name = (yyvsp[0].u.identifier)->get_simple_name(); (yyval.u.capture)->_type = CPPClosureType::CT_by_reference; } -#line 9576 "built/tmp/cppBison.yxx.c" +#line 9698 "built/tmp/cppBison.yxx.c" break; case 740: -#line 4150 "dtool/src/cppparser/cppBison.yxx" - { +#line 4126 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.capture) = new CPPClosureType::Capture; (yyval.u.capture)->_name = (yyvsp[-1].u.identifier)->get_simple_name(); (yyval.u.capture)->_type = CPPClosureType::CT_by_reference; } -#line 9586 "built/tmp/cppBison.yxx.c" +#line 9708 "built/tmp/cppBison.yxx.c" break; case 741: -#line 4156 "dtool/src/cppparser/cppBison.yxx" - { +#line 4132 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.capture) = new CPPClosureType::Capture; (yyval.u.capture)->_name = (yyvsp[0].u.identifier)->get_simple_name(); if ((yyval.u.capture)->_name == "this") { @@ -9596,12 +9718,12 @@ yyreduce: (yyval.u.capture)->_type = CPPClosureType::CT_by_value; } } -#line 9600 "built/tmp/cppBison.yxx.c" +#line 9722 "built/tmp/cppBison.yxx.c" break; case 742: -#line 4166 "dtool/src/cppparser/cppBison.yxx" - { +#line 4142 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.capture) = new CPPClosureType::Capture; (yyval.u.capture)->_name = (yyvsp[0].u.identifier)->get_simple_name(); (yyval.u.capture)->_type = CPPClosureType::CT_by_value; @@ -9609,190 +9731,190 @@ yyreduce: yywarning("only capture name 'this' may be preceded by an asterisk", (yylsp[0])); } } -#line 9613 "built/tmp/cppBison.yxx.c" +#line 9735 "built/tmp/cppBison.yxx.c" break; case 743: -#line 4178 "dtool/src/cppparser/cppBison.yxx" - { +#line 4154 "dtool/src/cppparser/cppBison.yxx" +{ CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, true); if (type == nullptr) { type = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } (yyval.u.type) = type; } -#line 9625 "built/tmp/cppBison.yxx.c" +#line 9747 "built/tmp/cppBison.yxx.c" break; case 744: -#line 4186 "dtool/src/cppparser/cppBison.yxx" - { +#line 4162 "dtool/src/cppparser/cppBison.yxx" +{ (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } -#line 9633 "built/tmp/cppBison.yxx.c" +#line 9755 "built/tmp/cppBison.yxx.c" break; case 745: -#line 4190 "dtool/src/cppparser/cppBison.yxx" - { +#line 4166 "dtool/src/cppparser/cppBison.yxx" +{ CPPClassTemplateParameter *ctp = new CPPClassTemplateParameter((yyvsp[-1].u.identifier)); ctp->_packed = true; (yyval.u.type) = CPPType::new_type(ctp); } -#line 9643 "built/tmp/cppBison.yxx.c" - break; - - case 746: -#line 4220 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.identifier) = (yyvsp[0].u.identifier); -} -#line 9651 "built/tmp/cppBison.yxx.c" - break; - - case 747: -#line 4224 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.identifier) = (yyvsp[0].u.identifier); -} -#line 9659 "built/tmp/cppBison.yxx.c" - break; - - case 748: -#line 4228 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.identifier) = (yyvsp[0].u.identifier); -} -#line 9667 "built/tmp/cppBison.yxx.c" - break; - - case 749: -#line 4232 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.identifier) = new CPPIdentifier("final", (yylsp[0])); -} -#line 9675 "built/tmp/cppBison.yxx.c" - break; - - case 750: -#line 4236 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[0])); -} -#line 9683 "built/tmp/cppBison.yxx.c" - break; - - case 751: -#line 4240 "dtool/src/cppparser/cppBison.yxx" - { - // This is not a keyword in Python, so it is useful to be able to use this - // in MAKE_PROPERTY definitions, etc. - (yyval.u.identifier) = new CPPIdentifier("signed", (yylsp[0])); -} -#line 9693 "built/tmp/cppBison.yxx.c" - break; - - case 752: -#line 4246 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.identifier) = new CPPIdentifier("float", (yylsp[0])); -} -#line 9701 "built/tmp/cppBison.yxx.c" - break; - - case 753: -#line 4250 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.identifier) = new CPPIdentifier("public", (yylsp[0])); -} -#line 9709 "built/tmp/cppBison.yxx.c" - break; - - case 754: -#line 4254 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.identifier) = new CPPIdentifier("private", (yylsp[0])); -} -#line 9717 "built/tmp/cppBison.yxx.c" - break; - - case 755: -#line 4258 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.identifier) = new CPPIdentifier("static", (yylsp[0])); -} -#line 9725 "built/tmp/cppBison.yxx.c" - break; - - case 756: -#line 4262 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.identifier) = new CPPIdentifier("default", (yylsp[0])); -} -#line 9733 "built/tmp/cppBison.yxx.c" - break; - - case 757: -#line 4273 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.identifier) = (yyvsp[0].u.identifier); -} -#line 9741 "built/tmp/cppBison.yxx.c" - break; - - case 758: -#line 4277 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.identifier) = (yyvsp[0].u.identifier); -} -#line 9749 "built/tmp/cppBison.yxx.c" - break; - - case 759: -#line 4281 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.identifier) = (yyvsp[0].u.identifier); -} -#line 9757 "built/tmp/cppBison.yxx.c" - break; - - case 760: -#line 4285 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[0])); -} #line 9765 "built/tmp/cppBison.yxx.c" break; - case 761: -#line 4293 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[0].str)); + case 746: +#line 4196 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = (yyvsp[0].u.identifier); } #line 9773 "built/tmp/cppBison.yxx.c" break; - case 762: -#line 4297 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[0].u.expr); + case 747: +#line 4200 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = (yyvsp[0].u.identifier); } #line 9781 "built/tmp/cppBison.yxx.c" break; + case 748: +#line 4204 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = (yyvsp[0].u.identifier); +} +#line 9789 "built/tmp/cppBison.yxx.c" + break; + + case 749: +#line 4208 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = new CPPIdentifier("final", (yylsp[0])); +} +#line 9797 "built/tmp/cppBison.yxx.c" + break; + + case 750: +#line 4212 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[0])); +} +#line 9805 "built/tmp/cppBison.yxx.c" + break; + + case 751: +#line 4216 "dtool/src/cppparser/cppBison.yxx" +{ + // This is not a keyword in Python, so it is useful to be able to use this + // in MAKE_PROPERTY definitions, etc. + (yyval.u.identifier) = new CPPIdentifier("signed", (yylsp[0])); +} +#line 9815 "built/tmp/cppBison.yxx.c" + break; + + case 752: +#line 4222 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = new CPPIdentifier("float", (yylsp[0])); +} +#line 9823 "built/tmp/cppBison.yxx.c" + break; + + case 753: +#line 4226 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = new CPPIdentifier("public", (yylsp[0])); +} +#line 9831 "built/tmp/cppBison.yxx.c" + break; + + case 754: +#line 4230 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = new CPPIdentifier("private", (yylsp[0])); +} +#line 9839 "built/tmp/cppBison.yxx.c" + break; + + case 755: +#line 4234 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = new CPPIdentifier("static", (yylsp[0])); +} +#line 9847 "built/tmp/cppBison.yxx.c" + break; + + case 756: +#line 4238 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = new CPPIdentifier("default", (yylsp[0])); +} +#line 9855 "built/tmp/cppBison.yxx.c" + break; + + case 757: +#line 4249 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = (yyvsp[0].u.identifier); +} +#line 9863 "built/tmp/cppBison.yxx.c" + break; + + case 758: +#line 4253 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = (yyvsp[0].u.identifier); +} +#line 9871 "built/tmp/cppBison.yxx.c" + break; + + case 759: +#line 4257 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = (yyvsp[0].u.identifier); +} +#line 9879 "built/tmp/cppBison.yxx.c" + break; + + case 760: +#line 4261 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[0])); +} +#line 9887 "built/tmp/cppBison.yxx.c" + break; + + case 761: +#line 4269 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = new CPPExpression((yyvsp[0].str)); +} +#line 9895 "built/tmp/cppBison.yxx.c" + break; + + case 762: +#line 4273 "dtool/src/cppparser/cppBison.yxx" +{ + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 9903 "built/tmp/cppBison.yxx.c" + break; + case 763: -#line 4301 "dtool/src/cppparser/cppBison.yxx" - { +#line 4277 "dtool/src/cppparser/cppBison.yxx" +{ // The right string takes on the literal type of the left. (yyval.u.expr) = (yyvsp[-1].u.expr); (yyval.u.expr)->_str += (yyvsp[0].str); } -#line 9791 "built/tmp/cppBison.yxx.c" +#line 9913 "built/tmp/cppBison.yxx.c" break; case 764: -#line 4307 "dtool/src/cppparser/cppBison.yxx" - { +#line 4283 "dtool/src/cppparser/cppBison.yxx" +{ // We have to check that the two literal types match up. (yyval.u.expr) = (yyvsp[-1].u.expr); if ((yyvsp[0].u.expr)->_type != CPPExpression::T_string && (yyvsp[0].u.expr)->_type != (yyvsp[-1].u.expr)->_type) { @@ -9800,11 +9922,11 @@ yyreduce: } (yyval.u.expr)->_str += (yyvsp[0].u.expr)->_str; } -#line 9804 "built/tmp/cppBison.yxx.c" +#line 9926 "built/tmp/cppBison.yxx.c" break; -#line 9808 "built/tmp/cppBison.yxx.c" +#line 9930 "built/tmp/cppBison.yxx.c" default: break; } @@ -9869,7 +9991,7 @@ yyerrlab: { if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); + yymsg = YY_CAST (char *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc))); if (!yymsg) { yymsg = yymsgbuf; @@ -10029,7 +10151,7 @@ yyreturn: while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp, yylsp); + yystos[+*yyssp], yyvsp, yylsp); YYPOPSTACK (1); } #ifndef yyoverflow diff --git a/dtool/src/cppparser/cppBison.h.prebuilt b/dtool/src/cppparser/cppBison.h.prebuilt index c33ce691eb..aa0980c959 100644 --- a/dtool/src/cppparser/cppBison.h.prebuilt +++ b/dtool/src/cppparser/cppBison.h.prebuilt @@ -1,8 +1,9 @@ -/* A Bison parser, made by GNU Bison 3.0.5. */ +/* A Bison parser, made by GNU Bison 3.5.3. */ /* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, + Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -30,6 +31,9 @@ This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ +/* Undocumented macros, especially those whose name start with YY_, + are private implementation details. Do not rely on them. */ + #ifndef YY_CPPYY_BUILT_TMP_CPPBISON_YXX_H_INCLUDED # define YY_CPPYY_BUILT_TMP_CPPBISON_YXX_H_INCLUDED /* Debug traces. */ From 446c01c796113f56db1eb2193a7e8974e5177fb6 Mon Sep 17 00:00:00 2001 From: rdb Date: Sun, 14 Jun 2020 12:52:01 +0200 Subject: [PATCH 14/15] nativenet: change some error messages to debug messages --- .../src/nativenet/buffered_datagramconnection.h | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/panda/src/nativenet/buffered_datagramconnection.h b/panda/src/nativenet/buffered_datagramconnection.h index 27e5405339..aa54fea14c 100644 --- a/panda/src/nativenet/buffered_datagramconnection.h +++ b/panda/src/nativenet/buffered_datagramconnection.h @@ -136,7 +136,10 @@ private: * used to do a full reset of buffers */ inline void Buffered_DatagramConnection::ClearAll(void) { - nativenet_cat.error() << "Buffered_DatagramConnection::ClearAll Starting Auto Reset\n"; + if (nativenet_cat.is_debug()) { + nativenet_cat.debug() + << "Buffered_DatagramConnection::ClearAll Starting Auto Reset\n"; + } Close(); _Writer.ReSet(); _Reader.ReSet(); @@ -215,8 +218,11 @@ inline Buffered_DatagramConnection::~Buffered_DatagramConnection(void) inline Buffered_DatagramConnection::Buffered_DatagramConnection(int rbufsize, int wbufsize, int write_flush_point) : _Writer(wbufsize,write_flush_point) , _Reader(rbufsize) { - nativenet_cat.error() << "Buffered_DatagramConnection Constructor rbufsize = " << rbufsize - << " wbufsize = " << wbufsize << " write_flush_point = " << write_flush_point << "\n"; + if (nativenet_cat.is_debug()) { + nativenet_cat.debug() + << "Buffered_DatagramConnection Constructor rbufsize = " << rbufsize + << " wbufsize = " << wbufsize << " write_flush_point = " << write_flush_point << "\n"; + } } inline bool Buffered_DatagramConnection::SendMessageBufferOnly(Datagram &msg) @@ -289,7 +295,9 @@ bool Buffered_DatagramConnection::Flush(void) * Reset */ inline void Buffered_DatagramConnection::Reset() { - nativenet_cat.error() << "Buffered_DatagramConnection::Reset()\n"; + if (nativenet_cat.is_debug()) { + nativenet_cat.debug() << "Buffered_DatagramConnection::Reset()\n"; + } ClearAll(); } From a9b158192f2f0d4c57b4f26aa7256c17ec185e8e Mon Sep 17 00:00:00 2001 From: rdb Date: Tue, 9 Jun 2020 18:15:36 +0200 Subject: [PATCH 15/15] putil: fix crash in BitArray::has_any_of() --- panda/src/putil/bitArray.cxx | 10 +++++----- tests/putil/test_bitarray.py | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 tests/putil/test_bitarray.py diff --git a/panda/src/putil/bitArray.cxx b/panda/src/putil/bitArray.cxx index 2ba077e0c1..aab43ee99e 100644 --- a/panda/src/putil/bitArray.cxx +++ b/panda/src/putil/bitArray.cxx @@ -114,6 +114,11 @@ has_any_of(int low_bit, int size) const { ++w; while (size > 0) { + if ((size_t)w >= get_num_words()) { + // Now we're up to the highest bits. + return (_highest_bits != 0); + } + if (size <= num_bits_per_word) { // The remainder fits within one word of the array. return _array[w].has_any_of(0, size); @@ -125,11 +130,6 @@ has_any_of(int low_bit, int size) const { } size -= num_bits_per_word; ++w; - - if (w >= (int)get_num_words()) { - // Now we're up to the highest bits. - return (_highest_bits != 0); - } } return false; diff --git a/tests/putil/test_bitarray.py b/tests/putil/test_bitarray.py new file mode 100644 index 0000000000..66e4292e76 --- /dev/null +++ b/tests/putil/test_bitarray.py @@ -0,0 +1,18 @@ +from panda3d.core import BitArray + + +def test_bitarray_has_any_of(): + ba = BitArray() + assert not ba.has_any_of(100, 200) + + ba = BitArray() + ba.set_range(0, 53) + assert ba.has_any_of(52, 1) + assert ba.has_any_of(52, 100) + assert not ba.has_any_of(53, 45) + + ba = BitArray() + ba.invert_in_place() + assert ba.has_any_of(0, 1) + assert ba.has_any_of(53, 45) + assert ba.has_any_of(0, 100)