From 634aacbd7fb2de8c9890f5948c4cb8200cf9b371 Mon Sep 17 00:00:00 2001 From: Chris Brunner Date: Mon, 2 May 2016 16:19:50 -0700 Subject: [PATCH 1/9] Initialize the various VRPN devices before assigning them a name. --- .../src/directdevices/DirectDeviceManager.py | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/direct/src/directdevices/DirectDeviceManager.py b/direct/src/directdevices/DirectDeviceManager.py index 9744d05bdf..78c8615bdf 100644 --- a/direct/src/directdevices/DirectDeviceManager.py +++ b/direct/src/directdevices/DirectDeviceManager.py @@ -48,10 +48,10 @@ class DirectButtons(ButtonNode, DirectObject): def __init__(self, vrpnClient, device): # Keep track of number of buttons created DirectButtons.buttonCount += 1 - # Create a unique name for this button object - self.name = 'DirectButtons-' + repr(DirectButtons.buttonCount) # Create a new button node for the given device ButtonNode.__init__(self, vrpnClient, device) + # Create a unique name for this button object + self.name = 'DirectButtons-' + repr(DirectButtons.buttonCount) # Attach node to data graph self.nodePath = myBase.dataRoot.attachNewNode(self) @@ -86,10 +86,10 @@ class DirectAnalogs(AnalogNode, DirectObject): def __init__(self, vrpnClient, device): # Keep track of number of analogs created DirectAnalogs.analogCount += 1 - # Create a unique name for this analog object - self.name = 'DirectAnalogs-' + repr(DirectAnalogs.analogCount) # Create a new analog node for the given device AnalogNode.__init__(self, vrpnClient, device) + # Create a unique name for this analog object + self.name = 'DirectAnalogs-' + repr(DirectAnalogs.analogCount) # Attach node to data graph self.nodePath = myBase.dataRoot.attachNewNode(self) # See if any of the general analog parameters are dconfig'd @@ -182,10 +182,10 @@ class DirectTracker(TrackerNode, DirectObject): def __init__(self, vrpnClient, device): # Keep track of number of trackers created DirectTracker.trackerCount += 1 - # Create a unique name for this tracker object - self.name = 'DirectTracker-' + repr(DirectTracker.trackerCount) # Create a new tracker node for the given device TrackerNode.__init__(self, vrpnClient, device) + # Create a unique name for this tracker object + self.name = 'DirectTracker-' + repr(DirectTracker.trackerCount) # Attach node to data graph self.nodePath = myBase.dataRoot.attachNewNode(self) @@ -209,10 +209,10 @@ class DirectDials(DialNode, DirectObject): def __init__(self, vrpnClient, device): # Keep track of number of dials created DirectDials.dialCount += 1 - # Create a unique name for this dial object - self.name = 'DirectDials-' + repr(DirectDials.dialCount) # Create a new dial node for the given device DialNode.__init__(self, vrpnClient, device) + # Create a unique name for this dial object + self.name = 'DirectDials-' + repr(DirectDials.dialCount) # Attach node to data graph self.nodePath = myBase.dataRoot.attachNewNode(self) @@ -249,6 +249,8 @@ class DirectTimecodeReader(AnalogNode, DirectObject): def __init__(self, vrpnClient, device): # Keep track of number of timecodeReader created DirectTimecodeReader.timecodeReaderCount += 1 + # Create a new dial node for the given device + AnalogNode.__init__(self, vrpnClient, device) # Create a unique name for this dial object self.name = ('DirectTimecodeReader-' + repr(DirectTimecodeReader.timecodeReaderCount)) @@ -257,8 +259,6 @@ class DirectTimecodeReader(AnalogNode, DirectObject): self.seconds = 0 self.minutes = 0 self.hours = 0 - # Create a new dial node for the given device - AnalogNode.__init__(self, vrpnClient, device) # Attach node to data graph self.nodePath = myBase.dataRoot.attachNewNode(self) From 821e625c4f2068dbed139548f6f78239e91668b8 Mon Sep 17 00:00:00 2001 From: wolfgangp Date: Tue, 3 May 2016 14:57:25 +0200 Subject: [PATCH 2/9] Remove obsolete property heightfield_tex --- panda/src/grutil/shaderTerrainMesh.I | 11 ----------- panda/src/grutil/shaderTerrainMesh.h | 3 --- 2 files changed, 14 deletions(-) diff --git a/panda/src/grutil/shaderTerrainMesh.I b/panda/src/grutil/shaderTerrainMesh.I index da4471201f..91ac1035d3 100644 --- a/panda/src/grutil/shaderTerrainMesh.I +++ b/panda/src/grutil/shaderTerrainMesh.I @@ -145,17 +145,6 @@ INLINE bool ShaderTerrainMesh::get_update_enabled() const { return _update_enabled; } -/** - * @brief Returns a handle to the heightfield texture - * @details This returns a handle to the internally used heightfield texture. This - * can be used to set the heightfield as a shader input. - * - * @return Handle to the heightfield texture - */ -INLINE Texture* ShaderTerrainMesh::get_heightfield_tex() const { - return _heightfield_tex; -} - /** * @brief Clears all children * @details This clears all children on the chunk and sets them to NULL. This will diff --git a/panda/src/grutil/shaderTerrainMesh.h b/panda/src/grutil/shaderTerrainMesh.h index a24d116460..c57a5d4e74 100644 --- a/panda/src/grutil/shaderTerrainMesh.h +++ b/panda/src/grutil/shaderTerrainMesh.h @@ -75,9 +75,6 @@ PUBLISHED: INLINE PN_stdfloat get_target_triangle_width() const; MAKE_PROPERTY(target_triangle_width, get_target_triangle_width, set_target_triangle_width); - INLINE Texture* get_heightfield_tex() const; - MAKE_PROPERTY(heightfield_tex, get_heightfield_tex); - LPoint3 uv_to_world(const LTexCoord& coord) const; INLINE LPoint3 uv_to_world(PN_stdfloat u, PN_stdfloat v) const; From 38fdb80276e2e1a6db184bddb3a8af9bdc15018b Mon Sep 17 00:00:00 2001 From: rdb Date: Tue, 3 May 2016 18:49:28 +0200 Subject: [PATCH 3/9] Various thirdparty build fixes --- makepanda/makepanda.py | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/makepanda/makepanda.py b/makepanda/makepanda.py index cdce772f38..07df329f51 100755 --- a/makepanda/makepanda.py +++ b/makepanda/makepanda.py @@ -609,10 +609,14 @@ if (COMPILER == "MSVC"): else: LibName("TIFF", GetThirdpartyDir() + "tiff/lib/tiff.lib") if (PkgSkip("OPENEXR")==0): - LibName("OPENEXR", GetThirdpartyDir() + "openexr/lib/IlmImf-2_2.lib") - LibName("OPENEXR", GetThirdpartyDir() + "openexr/lib/IlmThread-2_2.lib") - LibName("OPENEXR", GetThirdpartyDir() + "openexr/lib/Iex-2_2.lib") - LibName("OPENEXR", GetThirdpartyDir() + "openexr/lib/Half.lib") + suffix = "" + if os.path.isfile(GetThirdpartyDir() + "openexr/lib/IlmImf-2_2.lib"): + suffix = "-2_2" + LibName("OPENEXR", GetThirdpartyDir() + "openexr/lib/IlmImf" + suffix + ".lib") + LibName("OPENEXR", GetThirdpartyDir() + "openexr/lib/IlmThread" + suffix + ".lib") + LibName("OPENEXR", GetThirdpartyDir() + "openexr/lib/Iex" + suffix + ".lib") + LibName("OPENEXR", GetThirdpartyDir() + "openexr/lib/Half.lib") + IncDirectory("OPENEXR", GetThirdpartyDir() + "openexr/include/OpenEXR") if (PkgSkip("JPEG")==0): LibName("JPEG", GetThirdpartyDir() + "jpeg/lib/jpeg-static.lib") if (PkgSkip("ZLIB")==0): LibName("ZLIB", GetThirdpartyDir() + "zlib/lib/zlibstatic.lib") if (PkgSkip("VRPN")==0): LibName("VRPN", GetThirdpartyDir() + "vrpn/lib/vrpn.lib") @@ -624,7 +628,6 @@ if (COMPILER == "MSVC"): if (PkgSkip("FFTW")==0): LibName("FFTW", GetThirdpartyDir() + "fftw/lib/rfftw.lib") if (PkgSkip("FFTW")==0): LibName("FFTW", GetThirdpartyDir() + "fftw/lib/fftw.lib") if (PkgSkip("ARTOOLKIT")==0):LibName("ARTOOLKIT",GetThirdpartyDir() + "artoolkit/lib/libAR.lib") - if (PkgSkip("FCOLLADA")==0): LibName("FCOLLADA", GetThirdpartyDir() + "fcollada/lib/FCollada.lib") if (PkgSkip("ASSIMP")==0): PkgDisable("ASSIMP") # Not yet supported if (PkgSkip("OPENCV")==0): LibName("OPENCV", GetThirdpartyDir() + "opencv/lib/cv.lib") if (PkgSkip("OPENCV")==0): LibName("OPENCV", GetThirdpartyDir() + "opencv/lib/highgui.lib") @@ -637,6 +640,9 @@ if (COMPILER == "MSVC"): if (PkgSkip("FFMPEG")==0): LibName("FFMPEG", GetThirdpartyDir() + "ffmpeg/lib/avutil.lib") if (PkgSkip("SWSCALE")==0): LibName("SWSCALE", GetThirdpartyDir() + "ffmpeg/lib/swscale.lib") if (PkgSkip("SWRESAMPLE")==0):LibName("SWRESAMPLE",GetThirdpartyDir() + "ffmpeg/lib/swresample.lib") + if (PkgSkip("FCOLLADA")==0): + LibName("FCOLLADA", GetThirdpartyDir() + "fcollada/lib/FCollada.lib") + IncDirectory("FCOLLADA", GetThirdpartyDir() + "fcollada/include/FCollada") if (PkgSkip("SQUISH")==0): if GetOptimize() <= 2: LibName("SQUISH", GetThirdpartyDir() + "squish/lib/squishd.lib") @@ -649,7 +655,11 @@ if (COMPILER == "MSVC"): LibName("ROCKET", GetThirdpartyDir() + "rocket/lib/" + SDK["PYTHONVERSION"] + "/boost_python-vc100-mt-1_54.lib") if (GetOptimize() <= 3): LibName("ROCKET", GetThirdpartyDir() + "rocket/lib/RocketDebugger.lib") - if (PkgSkip("OPENAL")==0): LibName("OPENAL", GetThirdpartyDir() + "openal/lib/OpenAL32.lib") + if (PkgSkip("OPENAL")==0): + LibName("OPENAL", GetThirdpartyDir() + "openal/lib/OpenAL32.lib") + if not os.path.isfile(GetThirdpartyDir() + "openal/bin/OpenAL32.dll"): + # Link OpenAL Soft statically. + DefSymbol("OPENAL", "AL_LIBTYPE_STATIC") if (PkgSkip("ODE")==0): LibName("ODE", GetThirdpartyDir() + "ode/lib/ode_single.lib") DefSymbol("ODE", "dSINGLE", "") @@ -787,7 +797,7 @@ if (COMPILER=="GCC"): SmartPkgEnable("OPENAL", "openal", ("openal"), "AL/al.h", framework = "OpenAL") SmartPkgEnable("SQUISH", "", ("squish"), "squish.h") SmartPkgEnable("TIFF", "libtiff-4", ("tiff"), "tiff.h") - SmartPkgEnable("OPENEXR", "", ("openexr"), "ImfOutputFile.h") + SmartPkgEnable("OPENEXR", "OpenEXR", ("IlmImf", "Imath", "Half", "Iex", "IexMath", "IlmThread"), ("OpenEXR", "OpenEXR/ImfOutputFile.h")) SmartPkgEnable("VRPN", "", ("vrpn", "quat"), ("vrpn", "quat.h", "vrpn/vrpn_Types.h")) SmartPkgEnable("BULLET", "bullet", ("BulletSoftBody", "BulletDynamics", "BulletCollision", "LinearMath"), ("bullet", "bullet/btBulletDynamicsCommon.h")) SmartPkgEnable("VORBIS", "vorbisfile",("vorbisfile", "vorbis", "ogg"), ("ogg/ogg.h", "vorbis/vorbisfile.h")) @@ -3835,7 +3845,7 @@ if (not RUNTIME): # if (not RUNTIME): - OPTS=['DIR:panda/src/pnmimagetypes', 'DIR:panda/src/pnmimage', 'BUILDING:PANDA', 'PNG', 'ZLIB', 'JPEG', 'TIFF', 'OPENEXR'] + OPTS=['DIR:panda/src/pnmimagetypes', 'DIR:panda/src/pnmimage', 'BUILDING:PANDA', 'PNG', 'ZLIB', 'JPEG', 'TIFF', 'OPENEXR', 'EXCEPTIONS'] TargetAdd('p3pnmimagetypes_composite1.obj', opts=OPTS, input='p3pnmimagetypes_composite1.cxx') TargetAdd('p3pnmimagetypes_composite2.obj', opts=OPTS, input='p3pnmimagetypes_composite2.cxx') @@ -4264,7 +4274,7 @@ if PkgSkip("OPENAL") == 0 and not RUNTIME: TargetAdd('openal_audio_openal_audio_composite1.obj', opts=OPTS, input='openal_audio_composite1.cxx') TargetAdd('libp3openal_audio.dll', input='openal_audio_openal_audio_composite1.obj') TargetAdd('libp3openal_audio.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libp3openal_audio.dll', opts=['MODULE', 'ADVAPI', 'WINUSER', 'WINMM', 'OPENAL']) + TargetAdd('libp3openal_audio.dll', opts=['MODULE', 'ADVAPI', 'WINUSER', 'WINMM', 'WINSHELL', 'WINOLE', 'OPENAL']) # # DIRECTORY: panda/src/downloadertools/ From a898911a5c73c5ee4103c1ac152684f96b7f4625 Mon Sep 17 00:00:00 2001 From: rdb Date: Tue, 3 May 2016 19:19:17 +0200 Subject: [PATCH 4/9] Compile fixes for older OpenEXR versions --- panda/src/pnmimagetypes/pnmFileTypeEXR.cxx | 7 ++++++- panda/src/pnmimagetypes/pnmFileTypeEXR.h | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/panda/src/pnmimagetypes/pnmFileTypeEXR.cxx b/panda/src/pnmimagetypes/pnmFileTypeEXR.cxx index 66ee5c7e91..6f27c5e09a 100644 --- a/panda/src/pnmimagetypes/pnmFileTypeEXR.cxx +++ b/panda/src/pnmimagetypes/pnmFileTypeEXR.cxx @@ -24,6 +24,11 @@ #include #include #include +#include + +#ifndef IMATH_NAMESPACE +#define IMATH_NAMESPACE Imath +#endif TypeHandle PNMFileTypeEXR::_type_handle; @@ -214,7 +219,7 @@ Reader(PNMFileType *type, istream *file, bool owns_file, string magic_number) : const char *possible_channel_names[] = { "R", "G", "B", "Y", "A", NULL }; for (const char **pni = possible_channel_names; *pni != NULL; ++pni) { std::string name = *pni; - IMF::ChannelList::ConstIterator ci = channels.find(name); + IMF::ChannelList::ConstIterator ci = channels.find(name.c_str()); if (ci != channels.end()) { // Found a match. if (name == "Y" && !_channel_names.empty()) { diff --git a/panda/src/pnmimagetypes/pnmFileTypeEXR.h b/panda/src/pnmimagetypes/pnmFileTypeEXR.h index 26b0456bf2..3a0827a74e 100644 --- a/panda/src/pnmimagetypes/pnmFileTypeEXR.h +++ b/panda/src/pnmimagetypes/pnmFileTypeEXR.h @@ -23,9 +23,13 @@ #include "pnmWriter.h" #include -#include +#include +#ifdef OPENEXR_IMF_NAMESPACE namespace IMF = OPENEXR_IMF_NAMESPACE; +#else +namespace IMF = Imf; +#endif class ImfStdIstream; From cf11d46e269c0a431b530915b0c541e8eaa17d4c Mon Sep 17 00:00:00 2001 From: wolfgangp Date: Fri, 6 May 2016 02:50:53 +0200 Subject: [PATCH 5/9] Replace BulletSoftBodyMaterial camelCase methods --- panda/src/bullet/bulletSoftBodyMaterial.I | 14 +++++++------- panda/src/bullet/bulletSoftBodyMaterial.h | 18 +++++++++++------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/panda/src/bullet/bulletSoftBodyMaterial.I b/panda/src/bullet/bulletSoftBodyMaterial.I index f0da7e10ce..ff8182f6ed 100644 --- a/panda/src/bullet/bulletSoftBodyMaterial.I +++ b/panda/src/bullet/bulletSoftBodyMaterial.I @@ -20,7 +20,7 @@ INLINE BulletSoftBodyMaterial:: } /** - * Named constructor intended to be used for asserts with have to return a + * Named constructor intended to be used for asserts which have to return a * concrete value. */ INLINE BulletSoftBodyMaterial BulletSoftBodyMaterial:: @@ -44,7 +44,7 @@ get_material() const { * Getter for the property m_kLST. */ INLINE PN_stdfloat BulletSoftBodyMaterial:: -getLinearStiffness() const { +get_linear_stiffness() const { return (PN_stdfloat)_material.m_kLST; } @@ -53,7 +53,7 @@ getLinearStiffness() const { * Setter for the property m_kLST. */ INLINE void BulletSoftBodyMaterial:: -setLinearStiffness(PN_stdfloat value) { +set_linear_stiffness(PN_stdfloat value) { _material.m_kLST = (btScalar)value; } @@ -62,7 +62,7 @@ setLinearStiffness(PN_stdfloat value) { * Getter for the property m_kAST. */ INLINE PN_stdfloat BulletSoftBodyMaterial:: -getAngularStiffness() const { +get_angular_stiffness() const { return (PN_stdfloat)_material.m_kAST; } @@ -71,7 +71,7 @@ getAngularStiffness() const { * Setter for the property m_kAST. */ INLINE void BulletSoftBodyMaterial:: -setAngularStiffness(PN_stdfloat value) { +set_angular_stiffness(PN_stdfloat value) { _material.m_kAST = (btScalar)value; } @@ -80,7 +80,7 @@ setAngularStiffness(PN_stdfloat value) { * Getter for the property m_kVST. */ INLINE PN_stdfloat BulletSoftBodyMaterial:: -getVolumePreservation() const { +get_volume_preservation() const { return (PN_stdfloat)_material.m_kVST; } @@ -89,7 +89,7 @@ getVolumePreservation() const { * Setter for the property m_kVST. */ INLINE void BulletSoftBodyMaterial:: -setVolumePreservation(PN_stdfloat value) { +set_volume_preservation(PN_stdfloat value) { _material.m_kVST = (btScalar)value; } diff --git a/panda/src/bullet/bulletSoftBodyMaterial.h b/panda/src/bullet/bulletSoftBodyMaterial.h index fdcd453f4d..b2a70c1d9d 100644 --- a/panda/src/bullet/bulletSoftBodyMaterial.h +++ b/panda/src/bullet/bulletSoftBodyMaterial.h @@ -27,13 +27,17 @@ PUBLISHED: INLINE ~BulletSoftBodyMaterial(); INLINE static BulletSoftBodyMaterial empty(); - INLINE void setLinearStiffness(PN_stdfloat value); - INLINE void setAngularStiffness(PN_stdfloat value); - INLINE void setVolumePreservation(PN_stdfloat value); - - INLINE PN_stdfloat getLinearStiffness() const; - INLINE PN_stdfloat getAngularStiffness() const; - INLINE PN_stdfloat getVolumePreservation() const; + INLINE void set_linear_stiffness(PN_stdfloat value); + INLINE PN_stdfloat get_linear_stiffness() const; + MAKE_PROPERTY(linear_stiffness, get_linear_stiffness, set_linear_stiffness); + + INLINE void set_angular_stiffness(PN_stdfloat value); + INLINE PN_stdfloat get_angular_stiffness() const; + MAKE_PROPERTY(angular_stiffness, get_angular_stiffness, set_angular_stiffness); + + INLINE void set_volume_preservation(PN_stdfloat value); + INLINE PN_stdfloat get_volume_preservation() const; + MAKE_PROPERTY(volume_preservation, get_volume_preservation, set_volume_preservation); public: BulletSoftBodyMaterial(btSoftBody::Material &material); From aa5f2685abcfd8498dd1a6c62f18224aa5927181 Mon Sep 17 00:00:00 2001 From: rdb Date: Fri, 6 May 2016 21:21:13 +0200 Subject: [PATCH 6/9] Use EXT_SUFFIX for Python modules to prevent conflict when multiple Python 3 versions are installed on Ubuntu --- makepanda/makepandacore.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/makepanda/makepandacore.py b/makepanda/makepandacore.py index a62dfa0951..80852a50b8 100644 --- a/makepanda/makepandacore.py +++ b/makepanda/makepandacore.py @@ -2851,6 +2851,17 @@ def GetOrigExt(x): def SetOrigExt(x, v): ORIG_EXT[x] = v +def GetExtensionSuffix(): + if sys.version_info >= (3, 0): + suffix = sysconfig.get_config_var('EXT_SUFFIX') + if suffix: + return suffix + target = GetTarget() + if target == 'windows': + return '.pyd' + else: + return '.so' + def CalcLocation(fn, ipath): if fn.startswith("panda3d/") and fn.endswith(".py"): return OUTPUTDIR + "/" + fn @@ -2872,6 +2883,7 @@ def CalcLocation(fn, ipath): if (fn.endswith(".xml")): return CxxFindSource(fn, ipath) if (fn.endswith(".egg")): return OUTPUTDIR+"/models/"+fn if (fn.endswith(".egg.pz")):return OUTPUTDIR+"/models/"+fn + if (fn.endswith(".pyd")): return OUTPUTDIR+"/panda3d/"+fn[:-4]+GetExtensionSuffix() if (target == 'windows'): if (fn.endswith(".def")): return CxxFindSource(fn, ipath) if (fn.endswith(".rc")): return CxxFindSource(fn, ipath) @@ -2880,7 +2892,6 @@ def CalcLocation(fn, ipath): if (fn.endswith(".res")): return OUTPUTDIR+"/tmp/"+fn if (fn.endswith(".tlb")): return OUTPUTDIR+"/tmp/"+fn if (fn.endswith(".dll")): return OUTPUTDIR+"/bin/"+fn[:-4]+dllext+".dll" - if (fn.endswith(".pyd")): return OUTPUTDIR+"/panda3d/"+fn[:-4]+".pyd" if (fn.endswith(".ocx")): return OUTPUTDIR+"/plugins/"+fn[:-4]+dllext+".ocx" if (fn.endswith(".mll")): return OUTPUTDIR+"/plugins/"+fn[:-4]+dllext+".mll" if (fn.endswith(".dlo")): return OUTPUTDIR+"/plugins/"+fn[:-4]+dllext+".dlo" @@ -2897,7 +2908,6 @@ def CalcLocation(fn, ipath): if (fn.endswith(".plist")): return CxxFindSource(fn, ipath) if (fn.endswith(".obj")): return OUTPUTDIR+"/tmp/"+fn[:-4]+".o" if (fn.endswith(".dll")): return OUTPUTDIR+"/lib/"+fn[:-4]+".dylib" - if (fn.endswith(".pyd")): return OUTPUTDIR+"/panda3d/"+fn[:-4]+".so" if (fn.endswith(".mll")): return OUTPUTDIR+"/plugins/"+fn if (fn.endswith(".exe")): return OUTPUTDIR+"/bin/"+fn[:-4] if (fn.endswith(".p3d")): return OUTPUTDIR+"/bin/"+fn[:-4] @@ -2910,7 +2920,6 @@ def CalcLocation(fn, ipath): # On Android, we build the libraries into built/tmp, then copy them. if (fn.endswith(".obj")): return OUTPUTDIR+"/tmp/"+fn[:-4]+".o" if (fn.endswith(".dll")): return OUTPUTDIR+"/tmp/"+fn[:-4]+".so" - if (fn.endswith(".pyd")): return OUTPUTDIR+"/tmp/"+fn[:-4]+".so" if (fn.endswith(".mll")): return OUTPUTDIR+"/plugins/"+fn if (fn.endswith(".plugin")):return OUTPUTDIR+"/plugins/"+fn[:-7]+dllext+".so" if (fn.endswith(".exe")): return OUTPUTDIR+"/tmp/lib"+fn[:-4]+".so" @@ -2919,7 +2928,6 @@ def CalcLocation(fn, ipath): else: if (fn.endswith(".obj")): return OUTPUTDIR+"/tmp/"+fn[:-4]+".o" if (fn.endswith(".dll")): return OUTPUTDIR+"/lib/"+fn[:-4]+".so" - if (fn.endswith(".pyd")): return OUTPUTDIR+"/panda3d/"+fn[:-4]+".so" if (fn.endswith(".mll")): return OUTPUTDIR+"/plugins/"+fn if (fn.endswith(".plugin")):return OUTPUTDIR+"/plugins/"+fn[:-7]+dllext+".so" if (fn.endswith(".exe")): return OUTPUTDIR+"/bin/"+fn[:-4] From fb78fe6e2a6cfe44ef5d701511059534c496db42 Mon Sep 17 00:00:00 2001 From: rdb Date: Sat, 7 May 2016 00:42:59 +0200 Subject: [PATCH 7/9] Interrogate enum class support (maps to Python 3.4 enums), sanify wrapper code --- dtool/src/cppparser/cppBison.cxx.prebuilt | 8538 ++++++++--------- dtool/src/cppparser/cppBison.h.prebuilt | 295 +- dtool/src/cppparser/cppBison.yxx | 62 +- dtool/src/cppparser/cppEnumType.cxx | 79 +- dtool/src/cppparser/cppEnumType.h | 16 +- dtool/src/cppparser/cppExpression.cxx | 2 +- dtool/src/cppparser/cppExtensionType.cxx | 6 + dtool/src/cppparser/cppExtensionType.h | 2 + dtool/src/cppparser/cppScope.cxx | 45 +- dtool/src/cppparser/cppScope.h | 4 +- dtool/src/cppparser/cppTemplateScope.cxx | 5 +- dtool/src/cppparser/cppTemplateScope.h | 4 +- .../interfaceMakerPythonNative.cxx | 339 +- dtool/src/interrogate/interrogateBuilder.cxx | 6 + dtool/src/interrogatedb/interrogateType.I | 8 + dtool/src/interrogatedb/interrogateType.h | 2 + dtool/src/interrogatedb/py_panda.I | 203 + dtool/src/interrogatedb/py_panda.cxx | 42 +- dtool/src/interrogatedb/py_panda.h | 88 +- panda/src/express/globPattern_ext.cxx | 9 +- panda/src/linmath/lpoint2_ext_src.I | 14 +- panda/src/linmath/lpoint3_ext_src.I | 14 +- panda/src/linmath/lpoint4_ext_src.I | 16 +- panda/src/linmath/lvecBase2_ext_src.I | 6 +- panda/src/linmath/lvecBase3_ext_src.I | 6 +- panda/src/linmath/lvecBase4_ext_src.I | 8 +- panda/src/linmath/lvector2_ext_src.I | 14 +- panda/src/linmath/lvector3_ext_src.I | 14 +- panda/src/linmath/lvector4_ext_src.I | 16 +- panda/src/pgraph/pandaNode_ext.cxx | 20 +- 30 files changed, 4774 insertions(+), 5109 deletions(-) create mode 100644 dtool/src/interrogatedb/py_panda.I diff --git a/dtool/src/cppparser/cppBison.cxx.prebuilt b/dtool/src/cppparser/cppBison.cxx.prebuilt index f77f3b77d6..8c5694e0b5 100644 --- a/dtool/src/cppparser/cppBison.cxx.prebuilt +++ b/dtool/src/cppparser/cppBison.cxx.prebuilt @@ -1,19 +1,19 @@ -/* A Bison parser, made by GNU Bison 2.7. */ +/* A Bison parser, made by GNU Bison 3.0.4. */ /* Bison implementation for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. - + + Copyright (C) 1984, 1989-1990, 2000-2015 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 the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see . */ @@ -26,7 +26,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -44,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.7" +#define YYBISON_VERSION "3.0.4" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -63,15 +63,12 @@ #define yyparse cppyyparse #define yylex cppyylex #define yyerror cppyyerror -#define yylval cppyylval -#define yychar cppyychar #define yydebug cppyydebug #define yynerrs cppyynerrs -#define yylloc cppyylloc + /* Copy the first part of user declarations. */ -/* Line 371 of yacc.c */ -#line 6 "dtool/src/cppparser/cppBison.yxx" +#line 7 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:339 */ #include "cppBisonDefs.h" @@ -265,14 +262,13 @@ pop_struct() { } -/* Line 371 of yacc.c */ -#line 270 "built/tmp/cppBison.yxx.c" +#line 266 "built/tmp/cppBison.yxx.c" /* yacc.c:339 */ -# ifndef YY_NULL +# ifndef YY_NULLPTR # if defined __cplusplus && 201103L <= __cplusplus -# define YY_NULL nullptr +# define YY_NULLPTR nullptr # else -# define YY_NULL 0 +# define YY_NULLPTR 0 # endif # endif @@ -288,7 +284,7 @@ pop_struct() { by #include "cppBison.yxx.h". */ #ifndef YY_CPPYY_BUILT_TMP_CPPBISON_YXX_H_INCLUDED # define YY_CPPYY_BUILT_TMP_CPPBISON_YXX_H_INCLUDED -/* Enabling traces. */ +/* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #endif @@ -296,134 +292,133 @@ pop_struct() { extern int cppyydebug; #endif -/* Tokens. */ +/* Token type. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - REAL = 258, - INTEGER = 259, - CHAR_TOK = 260, - SIMPLE_STRING = 261, - SIMPLE_IDENTIFIER = 262, - STRING_LITERAL = 263, - CUSTOM_LITERAL = 264, - IDENTIFIER = 265, - TYPENAME_IDENTIFIER = 266, - SCOPING = 267, - TYPEDEFNAME = 268, - ELLIPSIS = 269, - OROR = 270, - ANDAND = 271, - EQCOMPARE = 272, - NECOMPARE = 273, - LECOMPARE = 274, - GECOMPARE = 275, - LSHIFT = 276, - RSHIFT = 277, - POINTSAT_STAR = 278, - DOT_STAR = 279, - UNARY = 280, - UNARY_NOT = 281, - UNARY_NEGATE = 282, - UNARY_MINUS = 283, - UNARY_PLUS = 284, - UNARY_STAR = 285, - UNARY_REF = 286, - POINTSAT = 287, - SCOPE = 288, - PLUSPLUS = 289, - MINUSMINUS = 290, - TIMESEQUAL = 291, - DIVIDEEQUAL = 292, - MODEQUAL = 293, - PLUSEQUAL = 294, - MINUSEQUAL = 295, - OREQUAL = 296, - ANDEQUAL = 297, - XOREQUAL = 298, - LSHIFTEQUAL = 299, - RSHIFTEQUAL = 300, - KW_ALIGNAS = 301, - KW_ALIGNOF = 302, - KW_AUTO = 303, - KW_BEGIN_PUBLISH = 304, - KW_BLOCKING = 305, - KW_BOOL = 306, - KW_CATCH = 307, - KW_CHAR = 308, - KW_CHAR16_T = 309, - KW_CHAR32_T = 310, - KW_CLASS = 311, - KW_CONST = 312, - KW_CONSTEXPR = 313, - KW_CONST_CAST = 314, - KW_DECLTYPE = 315, - KW_DEFAULT = 316, - KW_DELETE = 317, - KW_DOUBLE = 318, - KW_DYNAMIC_CAST = 319, - KW_ELSE = 320, - KW_END_PUBLISH = 321, - KW_ENUM = 322, - KW_EXTENSION = 323, - KW_EXTERN = 324, - KW_EXPLICIT = 325, - KW_PUBLISHED = 326, - KW_FALSE = 327, - KW_FINAL = 328, - KW_FLOAT = 329, - KW_FRIEND = 330, - KW_FOR = 331, - KW_GOTO = 332, - KW_IF = 333, - KW_INLINE = 334, - KW_INT = 335, - KW_LONG = 336, - KW_MAKE_PROPERTY = 337, - KW_MAKE_PROPERTY2 = 338, - KW_MAKE_SEQ = 339, - KW_MUTABLE = 340, - KW_NAMESPACE = 341, - KW_NEW = 342, - KW_NOEXCEPT = 343, - KW_NULLPTR = 344, - KW_OPERATOR = 345, - KW_OVERRIDE = 346, - KW_PRIVATE = 347, - KW_PROTECTED = 348, - KW_PUBLIC = 349, - KW_REGISTER = 350, - KW_REINTERPRET_CAST = 351, - KW_RETURN = 352, - KW_SHORT = 353, - KW_SIGNED = 354, - KW_SIZEOF = 355, - KW_STATIC = 356, - KW_STATIC_ASSERT = 357, - KW_STATIC_CAST = 358, - KW_STRUCT = 359, - KW_TEMPLATE = 360, - KW_THREAD_LOCAL = 361, - KW_THROW = 362, - KW_TRUE = 363, - KW_TRY = 364, - KW_TYPEDEF = 365, - KW_TYPEID = 366, - KW_TYPENAME = 367, - KW_UNION = 368, - KW_UNSIGNED = 369, - KW_USING = 370, - KW_VIRTUAL = 371, - KW_VOID = 372, - KW_VOLATILE = 373, - KW_WCHAR_T = 374, - KW_WHILE = 375, - START_CPP = 376, - START_CONST_EXPR = 377, - START_TYPE = 378 - }; + enum yytokentype + { + REAL = 258, + INTEGER = 259, + CHAR_TOK = 260, + SIMPLE_STRING = 261, + SIMPLE_IDENTIFIER = 262, + STRING_LITERAL = 263, + CUSTOM_LITERAL = 264, + IDENTIFIER = 265, + TYPENAME_IDENTIFIER = 266, + SCOPING = 267, + TYPEDEFNAME = 268, + ELLIPSIS = 269, + OROR = 270, + ANDAND = 271, + EQCOMPARE = 272, + NECOMPARE = 273, + LECOMPARE = 274, + GECOMPARE = 275, + LSHIFT = 276, + RSHIFT = 277, + POINTSAT_STAR = 278, + DOT_STAR = 279, + UNARY = 280, + UNARY_NOT = 281, + UNARY_NEGATE = 282, + UNARY_MINUS = 283, + UNARY_PLUS = 284, + UNARY_STAR = 285, + UNARY_REF = 286, + POINTSAT = 287, + SCOPE = 288, + PLUSPLUS = 289, + MINUSMINUS = 290, + TIMESEQUAL = 291, + DIVIDEEQUAL = 292, + MODEQUAL = 293, + PLUSEQUAL = 294, + MINUSEQUAL = 295, + OREQUAL = 296, + ANDEQUAL = 297, + XOREQUAL = 298, + LSHIFTEQUAL = 299, + RSHIFTEQUAL = 300, + KW_ALIGNAS = 301, + KW_ALIGNOF = 302, + KW_AUTO = 303, + KW_BEGIN_PUBLISH = 304, + KW_BLOCKING = 305, + KW_BOOL = 306, + KW_CATCH = 307, + KW_CHAR = 308, + KW_CHAR16_T = 309, + KW_CHAR32_T = 310, + KW_CLASS = 311, + KW_CONST = 312, + KW_CONSTEXPR = 313, + KW_CONST_CAST = 314, + KW_DECLTYPE = 315, + KW_DEFAULT = 316, + KW_DELETE = 317, + KW_DOUBLE = 318, + KW_DYNAMIC_CAST = 319, + KW_ELSE = 320, + KW_END_PUBLISH = 321, + KW_ENUM = 322, + KW_EXTENSION = 323, + KW_EXTERN = 324, + KW_EXPLICIT = 325, + KW_PUBLISHED = 326, + KW_FALSE = 327, + KW_FINAL = 328, + KW_FLOAT = 329, + KW_FRIEND = 330, + KW_FOR = 331, + KW_GOTO = 332, + KW_IF = 333, + KW_INLINE = 334, + KW_INT = 335, + KW_LONG = 336, + KW_MAKE_PROPERTY = 337, + KW_MAKE_PROPERTY2 = 338, + KW_MAKE_SEQ = 339, + KW_MUTABLE = 340, + KW_NAMESPACE = 341, + KW_NEW = 342, + KW_NOEXCEPT = 343, + KW_NULLPTR = 344, + KW_OPERATOR = 345, + KW_OVERRIDE = 346, + KW_PRIVATE = 347, + KW_PROTECTED = 348, + KW_PUBLIC = 349, + KW_REGISTER = 350, + KW_REINTERPRET_CAST = 351, + KW_RETURN = 352, + KW_SHORT = 353, + KW_SIGNED = 354, + KW_SIZEOF = 355, + KW_STATIC = 356, + KW_STATIC_ASSERT = 357, + KW_STATIC_CAST = 358, + KW_STRUCT = 359, + KW_TEMPLATE = 360, + KW_THREAD_LOCAL = 361, + KW_THROW = 362, + KW_TRUE = 363, + KW_TRY = 364, + KW_TYPEDEF = 365, + KW_TYPEID = 366, + KW_TYPENAME = 367, + KW_UNION = 368, + KW_UNSIGNED = 369, + KW_USING = 370, + KW_VIRTUAL = 371, + KW_VOID = 372, + KW_VOLATILE = 373, + KW_WCHAR_T = 374, + KW_WHILE = 375, + START_CPP = 376, + START_CONST_EXPR = 377, + START_TYPE = 378 + }; #endif /* Tokens. */ #define REAL 258 @@ -548,48 +543,31 @@ extern int cppyydebug; #define START_CONST_EXPR 377 #define START_TYPE 378 +/* Value type. */ - -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 -#endif - +/* Location type. */ #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED -typedef struct YYLTYPE +typedef struct YYLTYPE YYLTYPE; +struct YYLTYPE { int first_line; int first_column; int last_line; int last_column; -} YYLTYPE; -# define yyltype YYLTYPE /* obsolescent; will be withdrawn */ +}; # define YYLTYPE_IS_DECLARED 1 # define YYLTYPE_IS_TRIVIAL 1 #endif -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int cppyyparse (void *YYPARSE_PARAM); -#else -int cppyyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus + int cppyyparse (void); -#else -int cppyyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ #endif /* !YY_CPPYY_BUILT_TMP_CPPBISON_YXX_H_INCLUDED */ /* Copy the second part of user declarations. */ -/* Line 390 of yacc.c */ -#line 593 "built/tmp/cppBison.yxx.c" +#line 571 "built/tmp/cppBison.yxx.c" /* yacc.c:358 */ #ifdef short # undef short @@ -603,11 +581,8 @@ typedef unsigned char yytype_uint8; #ifdef YYTYPE_INT8 typedef YYTYPE_INT8 yytype_int8; -#elif (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -typedef signed char yytype_int8; #else -typedef short int yytype_int8; +typedef signed char yytype_int8; #endif #ifdef YYTYPE_UINT16 @@ -627,8 +602,7 @@ typedef short int yytype_int16; # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# elif ! defined YYSIZE_T # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -650,6 +624,33 @@ typedef short int 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) +# else +# define YY_ATTRIBUTE(Spec) /* empty */ +# 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__)) +#endif + +#if !defined _Noreturn \ + && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) +# if defined _MSC_VER && 1200 <= _MSC_VER +# define _Noreturn __declspec (noreturn) +# else +# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) +# endif +#endif + /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(E) ((void) (E)) @@ -657,23 +658,25 @@ typedef short int yytype_int16; # define YYUSE(E) /* empty */ #endif -/* Identity function, used to suppress warnings about constant conditions. */ -#ifndef lint -# define YYID(N) (N) +#if defined __GNUC__ && 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\"")\ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") #else -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static int -YYID (int yyi) -#else -static int -YYID (yyi) - int yyi; +# define YY_INITIAL_VALUE(Value) Value #endif -{ - return yyi; -} +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END #endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif + #if ! defined yyoverflow || YYERROR_VERBOSE @@ -692,8 +695,7 @@ YYID (yyi) # define alloca _alloca # else # define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include /* INFRINGES ON USER NAME SPACE */ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ # ifndef EXIT_SUCCESS @@ -705,8 +707,8 @@ YYID (yyi) # endif # ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) + /* Pacify GCC's 'empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely @@ -722,7 +724,7 @@ YYID (yyi) # endif # if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) + && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 @@ -730,15 +732,13 @@ YYID (yyi) # endif # ifndef YYMALLOC # define YYMALLOC malloc -# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined malloc && ! defined EXIT_SUCCESS void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free -# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined free && ! defined EXIT_SUCCESS void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif @@ -748,8 +748,8 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ #if (! defined yyoverflow \ && (! defined __cplusplus \ - || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \ - && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \ + && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc @@ -775,16 +775,16 @@ union yyalloc elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ - Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (YYID (0)) +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (0) #endif @@ -803,7 +803,7 @@ union yyalloc for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ - while (YYID (0)) + while (0) # endif # endif #endif /* !YYCOPY_NEEDED */ @@ -811,25 +811,27 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 85 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 5299 +#define YYLAST 5303 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 148 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 109 /* YYNRULES -- Number of rules. */ -#define YYNRULES 669 -/* YYNRULES -- Number of states. */ -#define YYNSTATES 1311 +#define YYNRULES 675 +/* YYNSTATES -- Number of states. */ +#define YYNSTATES 1317 -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned + by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 378 -#define YYTRANSLATE(YYX) \ +#define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, without out-of-bounds checking. */ static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -873,371 +875,77 @@ static const yytype_uint8 yytranslate[] = }; #if YYDEBUG -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ -static const yytype_uint16 yyprhs[] = -{ - 0, 0, 3, 6, 9, 12, 14, 17, 20, 22, - 26, 31, 36, 37, 43, 45, 47, 49, 51, 53, - 55, 58, 60, 62, 65, 68, 71, 74, 82, 92, - 102, 116, 126, 134, 140, 141, 145, 147, 150, 154, - 157, 160, 163, 166, 169, 172, 175, 178, 181, 184, - 187, 194, 196, 200, 202, 207, 209, 213, 217, 221, - 222, 227, 228, 234, 237, 242, 245, 250, 251, 256, - 257, 263, 267, 270, 275, 278, 283, 284, 291, 292, - 299, 300, 308, 309, 321, 322, 335, 336, 345, 346, - 356, 358, 360, 362, 365, 368, 371, 374, 379, 385, - 387, 389, 391, 393, 395, 397, 399, 401, 403, 405, - 407, 409, 411, 413, 415, 417, 419, 421, 423, 425, - 427, 429, 431, 433, 435, 437, 439, 441, 443, 445, - 447, 449, 451, 453, 455, 458, 461, 463, 465, 467, - 469, 470, 477, 480, 482, 484, 486, 490, 493, 498, - 501, 506, 510, 515, 517, 519, 521, 523, 526, 530, - 533, 536, 539, 542, 545, 549, 554, 558, 559, 566, - 569, 573, 575, 579, 584, 586, 588, 590, 594, 597, - 599, 603, 605, 607, 609, 613, 616, 618, 622, 624, - 627, 629, 632, 634, 638, 644, 648, 652, 654, 658, - 662, 666, 670, 675, 677, 679, 682, 684, 688, 692, - 698, 702, 707, 713, 716, 718, 720, 722, 724, 727, - 730, 733, 736, 739, 743, 748, 750, 752, 755, 758, - 761, 764, 767, 771, 776, 784, 788, 790, 793, 796, - 799, 802, 805, 809, 814, 816, 819, 822, 825, 828, - 831, 835, 840, 846, 856, 866, 876, 878, 880, 883, - 885, 887, 889, 892, 897, 902, 904, 906, 908, 911, - 913, 915, 917, 920, 925, 928, 933, 935, 937, 939, - 942, 945, 948, 953, 955, 957, 959, 962, 966, 967, - 973, 974, 983, 985, 987, 989, 991, 994, 998, 1000, - 1003, 1006, 1009, 1013, 1017, 1021, 1025, 1029, 1033, 1038, - 1043, 1046, 1050, 1052, 1054, 1056, 1058, 1062, 1068, 1070, - 1073, 1078, 1080, 1082, 1084, 1086, 1087, 1094, 1095, 1103, - 1108, 1114, 1118, 1124, 1129, 1131, 1133, 1135, 1137, 1139, - 1141, 1143, 1145, 1147, 1149, 1151, 1153, 1155, 1158, 1161, - 1164, 1167, 1169, 1171, 1174, 1176, 1177, 1180, 1182, 1185, - 1187, 1189, 1191, 1193, 1195, 1197, 1199, 1201, 1203, 1205, - 1207, 1209, 1211, 1213, 1215, 1217, 1219, 1221, 1223, 1225, - 1227, 1229, 1231, 1233, 1235, 1237, 1239, 1241, 1243, 1245, - 1247, 1249, 1251, 1253, 1255, 1257, 1259, 1261, 1263, 1265, - 1267, 1269, 1271, 1273, 1275, 1277, 1279, 1281, 1283, 1285, - 1287, 1289, 1291, 1293, 1295, 1297, 1299, 1301, 1303, 1305, - 1307, 1309, 1311, 1313, 1315, 1317, 1319, 1321, 1323, 1325, - 1327, 1329, 1331, 1333, 1335, 1337, 1339, 1341, 1343, 1345, - 1347, 1349, 1351, 1353, 1355, 1357, 1359, 1361, 1363, 1365, - 1367, 1369, 1371, 1373, 1375, 1377, 1379, 1381, 1383, 1385, - 1387, 1389, 1391, 1393, 1395, 1397, 1399, 1401, 1403, 1405, - 1407, 1409, 1411, 1413, 1415, 1417, 1419, 1421, 1423, 1425, - 1427, 1429, 1431, 1435, 1437, 1439, 1441, 1443, 1445, 1449, - 1451, 1456, 1464, 1472, 1480, 1488, 1493, 1498, 1501, 1504, - 1507, 1510, 1513, 1516, 1520, 1524, 1528, 1532, 1536, 1540, - 1544, 1548, 1552, 1556, 1560, 1564, 1568, 1572, 1576, 1580, - 1586, 1591, 1596, 1600, 1604, 1608, 1612, 1614, 1619, 1627, - 1635, 1643, 1651, 1656, 1661, 1666, 1671, 1676, 1681, 1686, - 1691, 1696, 1701, 1706, 1711, 1716, 1721, 1726, 1729, 1735, - 1740, 1745, 1748, 1751, 1754, 1757, 1760, 1763, 1767, 1771, - 1775, 1779, 1783, 1787, 1791, 1795, 1799, 1803, 1807, 1811, - 1815, 1819, 1823, 1827, 1831, 1835, 1841, 1846, 1851, 1855, - 1859, 1863, 1867, 1869, 1871, 1873, 1875, 1877, 1879, 1881, - 1883, 1885, 1887, 1889, 1898, 1910, 1912, 1917, 1925, 1933, - 1941, 1949, 1954, 1959, 1962, 1968, 1973, 1978, 1981, 1984, - 1987, 1990, 1993, 1997, 2001, 2005, 2009, 2013, 2017, 2021, - 2025, 2029, 2033, 2037, 2041, 2045, 2049, 2053, 2057, 2061, - 2065, 2071, 2076, 2081, 2085, 2089, 2093, 2097, 2099, 2101, - 2103, 2105, 2107, 2109, 2111, 2113, 2115, 2117, 2119, 2121, - 2123, 2127, 2129, 2131, 2134, 2136, 2138, 2141, 2144, 2146, - 2148, 2150, 2152, 2154, 2156, 2158, 2160, 2162, 2165, 2168 -}; - -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const yytype_int16 yyrhs[] = -{ - 149, 0, -1, 121, 150, -1, 122, 246, -1, 123, - 214, -1, 256, -1, 150, 126, -1, 150, 155, -1, - 152, -1, 151, 125, 152, -1, 253, 142, 243, 144, - -1, 253, 124, 243, 145, -1, -1, 158, 124, 154, - 150, 145, -1, 161, -1, 184, -1, 153, -1, 230, - -1, 233, -1, 156, -1, 110, 167, -1, 49, -1, - 66, -1, 71, 127, -1, 94, 127, -1, 93, 127, - -1, 92, 127, -1, 82, 142, 253, 125, 10, 144, - 126, -1, 82, 142, 253, 125, 10, 125, 10, 144, - 126, -1, 83, 142, 253, 125, 10, 125, 10, 144, - 126, -1, 83, 142, 253, 125, 10, 125, 10, 125, - 10, 125, 10, 144, 126, -1, 84, 142, 253, 125, - 10, 125, 10, 144, 126, -1, 102, 142, 246, 125, - 255, 144, 126, -1, 102, 142, 246, 144, 126, -1, - -1, 75, 157, 155, -1, 256, -1, 69, 158, -1, - 69, 6, 158, -1, 101, 158, -1, 79, 158, -1, - 116, 158, -1, 70, 158, -1, 95, 158, -1, 118, - 158, -1, 85, 158, -1, 58, 158, -1, 50, 158, - -1, 68, 158, -1, 106, 158, -1, 143, 143, 159, - 146, 146, 158, -1, 160, -1, 160, 125, 159, -1, - 253, -1, 253, 142, 196, 144, -1, 162, -1, 158, - 211, 126, -1, 158, 172, 200, -1, 158, 175, 201, - -1, -1, 158, 213, 163, 165, -1, -1, 158, 57, - 213, 164, 166, -1, 192, 201, -1, 192, 199, 125, - 165, -1, 192, 201, -1, 192, 199, 125, 166, -1, - -1, 158, 213, 168, 170, -1, -1, 158, 57, 213, - 169, 171, -1, 158, 175, 201, -1, 192, 201, -1, - 192, 199, 125, 170, -1, 192, 201, -1, 192, 199, - 125, 171, -1, -1, 10, 142, 173, 194, 144, 181, - -1, -1, 11, 142, 174, 194, 144, 181, -1, -1, - 140, 253, 142, 176, 194, 144, 181, -1, -1, 11, - 142, 137, 190, 144, 142, 177, 194, 144, 181, 193, - -1, -1, 11, 142, 12, 137, 190, 144, 142, 178, - 194, 144, 181, 193, -1, -1, 90, 210, 206, 142, - 179, 194, 144, 181, -1, -1, 90, 57, 210, 206, - 142, 180, 194, 144, 181, -1, 10, -1, 256, -1, - 57, -1, 181, 88, -1, 181, 73, -1, 181, 91, - -1, 181, 85, -1, 181, 107, 142, 144, -1, 181, - 107, 142, 253, 144, -1, 147, -1, 140, -1, 137, - -1, 138, -1, 139, -1, 135, -1, 136, -1, 130, - -1, 132, -1, 131, -1, 15, -1, 16, -1, 17, - -1, 18, -1, 19, -1, 20, -1, 133, -1, 134, - -1, 21, -1, 22, -1, 128, -1, 125, -1, 34, - -1, 35, -1, 36, -1, 37, -1, 38, -1, 39, - -1, 40, -1, 41, -1, 42, -1, 43, -1, 44, - -1, 45, -1, 32, -1, 143, 146, -1, 142, 144, - -1, 87, -1, 62, -1, 161, -1, 184, -1, -1, - 105, 185, 133, 186, 134, 183, -1, 105, 161, -1, - 256, -1, 187, -1, 188, -1, 187, 125, 188, -1, - 56, 253, -1, 56, 253, 128, 214, -1, 112, 253, - -1, 112, 253, 128, 214, -1, 189, 207, 198, -1, - 57, 189, 207, 198, -1, 234, -1, 10, -1, 11, - -1, 254, -1, 90, 182, -1, 90, 6, 10, -1, - 57, 190, -1, 118, 190, -1, 137, 190, -1, 132, - 190, -1, 16, 190, -1, 12, 137, 190, -1, 190, - 143, 242, 146, -1, 142, 190, 144, -1, -1, 190, - 142, 191, 196, 144, 181, -1, 190, 193, -1, 190, - 127, 4, -1, 256, -1, 32, 212, 209, -1, 32, - 57, 212, 209, -1, 256, -1, 14, -1, 195, -1, - 195, 125, 14, -1, 195, 14, -1, 204, -1, 195, - 125, 204, -1, 256, -1, 14, -1, 197, -1, 197, - 125, 14, -1, 197, 14, -1, 205, -1, 197, 125, - 205, -1, 256, -1, 128, 245, -1, 256, -1, 128, - 246, -1, 126, -1, 124, 238, 145, -1, 127, 151, - 124, 238, 145, -1, 128, 61, 126, -1, 128, 62, - 126, -1, 126, -1, 124, 238, 145, -1, 128, 246, - 126, -1, 128, 61, 126, -1, 128, 62, 126, -1, - 128, 124, 202, 145, -1, 256, -1, 203, -1, 203, - 125, -1, 246, -1, 124, 202, 145, -1, 203, 125, - 246, -1, 203, 125, 124, 202, 145, -1, 210, 207, - 199, -1, 57, 210, 207, 199, -1, 57, 95, 210, - 207, 199, -1, 95, 204, -1, 204, -1, 248, -1, - 256, -1, 254, -1, 57, 206, -1, 118, 206, -1, - 137, 206, -1, 132, 206, -1, 16, 206, -1, 12, - 137, 206, -1, 206, 143, 242, 146, -1, 256, -1, - 254, -1, 57, 207, -1, 118, 207, -1, 137, 207, - -1, 132, 207, -1, 16, 207, -1, 12, 137, 207, - -1, 207, 143, 242, 146, -1, 142, 207, 144, 142, - 194, 144, 181, -1, 142, 207, 144, -1, 256, -1, - 57, 208, -1, 118, 208, -1, 137, 208, -1, 132, - 208, -1, 16, 208, -1, 12, 137, 208, -1, 208, - 143, 242, 146, -1, 256, -1, 57, 209, -1, 118, - 209, -1, 137, 208, -1, 132, 208, -1, 16, 208, - -1, 12, 137, 208, -1, 208, 143, 242, 146, -1, - 142, 194, 144, 181, 193, -1, 142, 137, 208, 144, - 142, 194, 144, 181, 193, -1, 142, 132, 208, 144, - 142, 194, 144, 181, 193, -1, 142, 16, 208, 144, - 142, 194, 144, 181, 193, -1, 234, -1, 11, -1, - 112, 253, -1, 215, -1, 217, -1, 223, -1, 229, - 253, -1, 228, 254, 127, 225, -1, 60, 142, 246, - 144, -1, 48, -1, 234, -1, 11, -1, 112, 253, - -1, 215, -1, 217, -1, 223, -1, 229, 253, -1, - 228, 254, 127, 225, -1, 228, 253, -1, 60, 142, - 246, 144, -1, 48, -1, 234, -1, 11, -1, 112, - 253, -1, 229, 253, -1, 228, 253, -1, 60, 142, - 246, 144, -1, 48, -1, 211, -1, 10, -1, 210, - 209, -1, 57, 210, 209, -1, -1, 229, 124, 216, - 150, 145, -1, -1, 229, 254, 218, 219, 220, 124, - 150, 145, -1, 256, -1, 73, -1, 256, -1, 221, - -1, 127, 222, -1, 221, 125, 222, -1, 252, -1, - 94, 252, -1, 93, 252, -1, 92, 252, -1, 116, - 94, 252, -1, 116, 93, 252, -1, 116, 92, 252, - -1, 94, 116, 252, -1, 93, 116, 252, -1, 92, - 116, 252, -1, 224, 124, 227, 145, -1, 228, 254, - 127, 225, -1, 228, 254, -1, 228, 127, 225, -1, - 228, -1, 235, -1, 11, -1, 256, -1, 226, 253, - 125, -1, 226, 253, 128, 246, 125, -1, 226, -1, - 226, 253, -1, 226, 253, 128, 246, -1, 67, -1, - 56, -1, 104, -1, 113, -1, -1, 86, 253, 124, - 231, 150, 145, -1, -1, 79, 86, 253, 124, 232, - 150, 145, -1, 86, 124, 150, 145, -1, 79, 86, - 124, 150, 145, -1, 115, 253, 126, -1, 115, 253, - 128, 214, 126, -1, 115, 86, 253, 126, -1, 235, - -1, 236, -1, 237, -1, 51, -1, 53, -1, 119, - -1, 54, -1, 55, -1, 98, -1, 81, -1, 114, - -1, 99, -1, 80, -1, 98, 235, -1, 81, 235, - -1, 114, 235, -1, 99, 235, -1, 74, -1, 63, - -1, 81, 63, -1, 117, -1, -1, 239, 240, -1, - 256, -1, 240, 241, -1, 3, -1, 4, -1, 6, - -1, 8, -1, 9, -1, 5, -1, 10, -1, 11, - -1, 12, -1, 7, -1, 14, -1, 15, -1, 16, - -1, 17, -1, 18, -1, 19, -1, 20, -1, 21, - -1, 22, -1, 23, -1, 24, -1, 32, -1, 33, - -1, 34, -1, 35, -1, 36, -1, 37, -1, 38, - -1, 39, -1, 40, -1, 41, -1, 42, -1, 43, - -1, 44, -1, 45, -1, 46, -1, 47, -1, 48, - -1, 51, -1, 52, -1, 53, -1, 54, -1, 55, - -1, 56, -1, 57, -1, 58, -1, 59, -1, 60, - -1, 61, -1, 62, -1, 63, -1, 64, -1, 65, - -1, 67, -1, 69, -1, 70, -1, 72, -1, 73, - -1, 74, -1, 75, -1, 76, -1, 77, -1, 78, - -1, 79, -1, 80, -1, 81, -1, 85, -1, 86, - -1, 87, -1, 89, -1, 90, -1, 91, -1, 92, - -1, 93, -1, 94, -1, 71, -1, 95, -1, 96, - -1, 97, -1, 98, -1, 99, -1, 100, -1, 101, - -1, 102, -1, 103, -1, 104, -1, 106, -1, 107, - -1, 108, -1, 109, -1, 110, -1, 111, -1, 112, - -1, 113, -1, 114, -1, 115, -1, 116, -1, 117, - -1, 118, -1, 119, -1, 120, -1, 135, -1, 136, - -1, 137, -1, 138, -1, 132, -1, 130, -1, 131, - -1, 147, -1, 140, -1, 128, -1, 139, -1, 133, - -1, 134, -1, 142, -1, 144, -1, 141, -1, 125, - -1, 126, -1, 127, -1, 143, -1, 146, -1, 129, - -1, 124, 240, 145, -1, 256, -1, 246, -1, 256, - -1, 244, -1, 246, -1, 244, 125, 246, -1, 247, - -1, 142, 214, 144, 245, -1, 103, 133, 214, 134, - 142, 244, 144, -1, 64, 133, 214, 134, 142, 244, - 144, -1, 59, 133, 214, 134, 142, 244, 144, -1, - 96, 133, 214, 134, 142, 244, 144, -1, 100, 142, - 214, 144, -1, 47, 142, 214, 144, -1, 147, 245, - -1, 140, 245, -1, 136, 245, -1, 135, 245, -1, - 137, 245, -1, 132, 245, -1, 245, 137, 245, -1, - 245, 138, 245, -1, 245, 139, 245, -1, 245, 135, - 245, -1, 245, 136, 245, -1, 245, 130, 245, -1, - 245, 131, 245, -1, 245, 132, 245, -1, 245, 15, - 245, -1, 245, 16, 245, -1, 245, 17, 245, -1, - 245, 18, 245, -1, 245, 19, 245, -1, 245, 20, - 245, -1, 245, 21, 245, -1, 245, 22, 245, -1, - 245, 129, 245, 127, 245, -1, 245, 143, 246, 146, - -1, 245, 142, 244, 144, -1, 245, 142, 144, -1, - 245, 141, 245, -1, 245, 32, 245, -1, 142, 244, - 144, -1, 247, -1, 142, 214, 144, 246, -1, 103, - 133, 214, 134, 142, 244, 144, -1, 64, 133, 214, - 134, 142, 244, 144, -1, 59, 133, 214, 134, 142, - 244, 144, -1, 96, 133, 214, 134, 142, 244, 144, - -1, 11, 142, 243, 144, -1, 80, 142, 243, 144, - -1, 53, 142, 243, 144, -1, 119, 142, 243, 144, - -1, 54, 142, 243, 144, -1, 55, 142, 243, 144, - -1, 51, 142, 243, 144, -1, 98, 142, 243, 144, - -1, 81, 142, 243, 144, -1, 114, 142, 243, 144, - -1, 99, 142, 243, 144, -1, 74, 142, 243, 144, - -1, 63, 142, 243, 144, -1, 100, 142, 214, 144, - -1, 47, 142, 214, 144, -1, 87, 212, -1, 87, - 212, 142, 243, 144, -1, 111, 142, 214, 144, -1, - 111, 142, 246, 144, -1, 147, 246, -1, 140, 246, - -1, 136, 246, -1, 135, 246, -1, 137, 246, -1, - 132, 246, -1, 246, 137, 246, -1, 246, 138, 246, - -1, 246, 139, 246, -1, 246, 135, 246, -1, 246, - 136, 246, -1, 246, 130, 246, -1, 246, 131, 246, - -1, 246, 132, 246, -1, 246, 15, 246, -1, 246, - 16, 246, -1, 246, 17, 246, -1, 246, 18, 246, - -1, 246, 19, 246, -1, 246, 20, 246, -1, 246, - 133, 246, -1, 246, 134, 246, -1, 246, 21, 246, - -1, 246, 22, 246, -1, 246, 129, 246, 127, 246, - -1, 246, 143, 246, 146, -1, 246, 142, 244, 144, - -1, 246, 142, 144, -1, 246, 141, 246, -1, 246, - 32, 246, -1, 142, 244, 144, -1, 4, -1, 108, - -1, 72, -1, 5, -1, 3, -1, 255, -1, 9, - -1, 10, -1, 73, -1, 91, -1, 89, -1, 143, - 250, 146, 181, 193, 124, 238, 145, -1, 143, 250, - 146, 142, 194, 144, 181, 193, 124, 238, 145, -1, - 249, -1, 142, 214, 144, 246, -1, 103, 133, 214, - 134, 142, 244, 144, -1, 64, 133, 214, 134, 142, - 244, 144, -1, 59, 133, 214, 134, 142, 244, 144, - -1, 96, 133, 214, 134, 142, 244, 144, -1, 100, - 142, 214, 144, -1, 47, 142, 214, 144, -1, 87, - 212, -1, 87, 212, 142, 243, 144, -1, 111, 142, - 214, 144, -1, 111, 142, 246, 144, -1, 147, 246, - -1, 140, 246, -1, 136, 246, -1, 135, 246, -1, - 132, 246, -1, 248, 137, 246, -1, 248, 138, 246, - -1, 248, 139, 246, -1, 248, 135, 246, -1, 248, - 136, 246, -1, 248, 130, 246, -1, 248, 131, 246, - -1, 248, 132, 246, -1, 248, 15, 246, -1, 248, - 16, 246, -1, 248, 17, 246, -1, 248, 18, 246, - -1, 248, 19, 246, -1, 248, 20, 246, -1, 248, - 133, 246, -1, 248, 134, 246, -1, 248, 21, 246, - -1, 248, 22, 246, -1, 248, 129, 246, 127, 246, - -1, 248, 143, 246, 146, -1, 248, 142, 244, 144, - -1, 248, 142, 144, -1, 248, 141, 246, -1, 248, - 32, 246, -1, 142, 244, 144, -1, 4, -1, 108, - -1, 72, -1, 5, -1, 3, -1, 255, -1, 9, - -1, 10, -1, 73, -1, 91, -1, 89, -1, 256, - -1, 251, -1, 251, 125, 250, -1, 132, -1, 128, - -1, 132, 253, -1, 253, -1, 253, -1, 229, 253, - -1, 112, 253, -1, 10, -1, 11, -1, 73, -1, - 91, -1, 10, -1, 11, -1, 91, -1, 6, -1, - 8, -1, 255, 6, -1, 255, 8, -1, -1 -}; - -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ + /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 421, 421, 422, 426, 433, 434, 435, 439, 440, - 444, 448, 461, 460, 472, 473, 474, 475, 476, 477, - 478, 479, 492, 501, 505, 513, 517, 521, 532, 553, - 575, 608, 630, 641, 655, 654, 669, 673, 677, 688, - 692, 696, 700, 704, 708, 712, 716, 720, 724, 728, - 732, 740, 741, 745, 746, 750, 754, 763, 771, 783, - 782, 798, 797, 819, 827, 838, 847, 861, 860, 876, - 875, 890, 905, 911, 920, 927, 940, 939, 964, 963, - 991, 990, 1021, 1020, 1039, 1038, 1059, 1058, 1090, 1089, - 1115, 1128, 1132, 1136, 1140, 1144, 1148, 1153, 1157, 1168, - 1172, 1176, 1180, 1184, 1188, 1192, 1196, 1200, 1204, 1208, - 1212, 1216, 1220, 1224, 1228, 1232, 1236, 1240, 1244, 1248, - 1252, 1256, 1260, 1264, 1268, 1272, 1276, 1280, 1284, 1288, - 1292, 1296, 1300, 1304, 1308, 1312, 1316, 1320, 1327, 1328, - 1333, 1332, 1340, 1344, 1345, 1349, 1355, 1364, 1368, 1372, - 1376, 1380, 1386, 1396, 1400, 1405, 1417, 1421, 1435, 1450, - 1455, 1460, 1465, 1470, 1475, 1480, 1485, 1491, 1490, 1512, - 1522, 1532, 1536, 1540, 1549, 1553, 1558, 1562, 1567, 1575, - 1580, 1588, 1592, 1597, 1601, 1606, 1614, 1619, 1627, 1631, - 1638, 1642, 1649, 1653, 1657, 1661, 1665, 1672, 1676, 1680, - 1684, 1688, 1692, 1699, 1700, 1701, 1705, 1708, 1709, 1710, - 1714, 1719, 1725, 1731, 1742, 1746, 1756, 1760, 1764, 1769, - 1774, 1779, 1784, 1789, 1794, 1802, 1806, 1810, 1815, 1820, - 1825, 1830, 1835, 1840, 1845, 1851, 1859, 1863, 1868, 1873, - 1878, 1883, 1888, 1893, 1901, 1905, 1910, 1915, 1920, 1925, - 1930, 1935, 1940, 1946, 1953, 1960, 1970, 1974, 1982, 1986, - 1990, 1994, 1998, 2014, 2030, 2039, 2046, 2050, 2058, 2062, - 2066, 2070, 2074, 2090, 2106, 2124, 2133, 2140, 2144, 2152, - 2156, 2172, 2188, 2197, 2204, 2208, 2216, 2220, 2229, 2228, - 2253, 2252, 2282, 2283, 2290, 2291, 2295, 2296, 2300, 2304, - 2308, 2312, 2316, 2320, 2324, 2328, 2332, 2336, 2343, 2351, - 2355, 2359, 2363, 2370, 2374, 2381, 2382, 2388, 2396, 2397, - 2403, 2412, 2419, 2423, 2427, 2435, 2434, 2457, 2456, 2479, - 2480, 2484, 2490, 2497, 2506, 2507, 2508, 2512, 2516, 2520, - 2524, 2528, 2532, 2537, 2542, 2547, 2552, 2556, 2561, 2570, - 2575, 2583, 2587, 2591, 2599, 2609, 2609, 2619, 2620, 2624, - 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, - 2634, 2634, 2635, 2635, 2635, 2635, 2636, 2636, 2636, 2636, - 2636, 2637, 2637, 2637, 2638, 2638, 2638, 2638, 2638, 2639, - 2639, 2639, 2639, 2639, 2640, 2640, 2640, 2640, 2640, 2641, - 2641, 2641, 2641, 2641, 2642, 2642, 2642, 2642, 2643, 2643, - 2643, 2643, 2643, 2644, 2644, 2644, 2644, 2644, 2645, 2645, - 2645, 2645, 2645, 2645, 2646, 2646, 2646, 2646, 2646, 2647, - 2647, 2647, 2647, 2648, 2648, 2648, 2648, 2649, 2649, 2649, - 2649, 2649, 2650, 2650, 2650, 2651, 2651, 2651, 2651, 2651, - 2652, 2652, 2652, 2652, 2652, 2653, 2653, 2653, 2653, 2653, - 2656, 2656, 2656, 2656, 2656, 2656, 2656, 2656, 2656, 2656, - 2656, 2657, 2657, 2657, 2657, 2657, 2657, 2657, 2657, 2657, - 2657, 2658, 2658, 2662, 2666, 2673, 2677, 2684, 2688, 2695, - 2699, 2703, 2707, 2711, 2715, 2719, 2723, 2727, 2731, 2735, - 2739, 2743, 2747, 2751, 2755, 2759, 2763, 2767, 2771, 2775, - 2779, 2783, 2787, 2791, 2795, 2799, 2803, 2807, 2811, 2815, - 2819, 2823, 2827, 2831, 2835, 2839, 2847, 2851, 2855, 2859, - 2863, 2867, 2871, 2881, 2887, 2893, 2899, 2905, 2911, 2917, - 2924, 2931, 2938, 2945, 2951, 2957, 2961, 2965, 2969, 2973, - 2984, 2995, 2999, 3003, 3007, 3011, 3015, 3019, 3023, 3027, - 3031, 3035, 3039, 3043, 3047, 3051, 3055, 3059, 3063, 3067, - 3071, 3075, 3079, 3083, 3087, 3091, 3095, 3099, 3103, 3107, - 3111, 3115, 3122, 3126, 3130, 3134, 3138, 3142, 3146, 3150, - 3154, 3160, 3166, 3170, 3174, 3188, 3192, 3196, 3200, 3204, - 3208, 3212, 3216, 3220, 3224, 3228, 3239, 3250, 3254, 3258, - 3262, 3266, 3270, 3274, 3278, 3282, 3286, 3290, 3294, 3298, - 3302, 3306, 3310, 3314, 3318, 3322, 3326, 3330, 3334, 3338, - 3342, 3346, 3350, 3354, 3358, 3362, 3366, 3373, 3377, 3381, - 3385, 3389, 3393, 3397, 3401, 3405, 3411, 3417, 3425, 3426, - 3427, 3431, 3432, 3433, 3434, 3438, 3446, 3454, 3482, 3486, - 3490, 3494, 3505, 3509, 3513, 3521, 3525, 3529, 3535, 3546 + 0, 422, 422, 423, 427, 434, 435, 436, 440, 441, + 445, 449, 462, 461, 473, 474, 475, 476, 477, 478, + 479, 480, 493, 502, 506, 514, 518, 522, 533, 554, + 576, 609, 631, 642, 656, 655, 670, 674, 678, 689, + 693, 697, 701, 705, 709, 713, 717, 721, 725, 729, + 733, 741, 742, 746, 747, 751, 755, 764, 772, 784, + 783, 799, 798, 820, 828, 839, 848, 862, 861, 877, + 876, 891, 906, 912, 921, 928, 941, 940, 965, 964, + 992, 991, 1022, 1021, 1040, 1039, 1060, 1059, 1091, 1090, + 1116, 1129, 1133, 1137, 1141, 1145, 1149, 1154, 1158, 1169, + 1173, 1177, 1181, 1185, 1189, 1193, 1197, 1201, 1205, 1209, + 1213, 1217, 1221, 1225, 1229, 1233, 1237, 1241, 1245, 1249, + 1253, 1257, 1261, 1265, 1269, 1273, 1277, 1281, 1285, 1289, + 1293, 1297, 1301, 1305, 1309, 1313, 1317, 1321, 1328, 1329, + 1334, 1333, 1341, 1345, 1346, 1350, 1356, 1365, 1369, 1373, + 1377, 1381, 1387, 1397, 1401, 1406, 1418, 1422, 1436, 1451, + 1456, 1461, 1466, 1471, 1476, 1481, 1486, 1492, 1491, 1513, + 1523, 1533, 1537, 1541, 1550, 1554, 1559, 1563, 1568, 1576, + 1581, 1589, 1593, 1598, 1602, 1607, 1615, 1620, 1628, 1632, + 1639, 1643, 1650, 1654, 1658, 1662, 1666, 1673, 1677, 1681, + 1685, 1689, 1693, 1700, 1701, 1702, 1706, 1709, 1710, 1711, + 1715, 1720, 1726, 1732, 1743, 1747, 1757, 1761, 1765, 1770, + 1775, 1780, 1785, 1790, 1795, 1803, 1807, 1811, 1816, 1821, + 1826, 1831, 1836, 1841, 1846, 1852, 1860, 1864, 1869, 1874, + 1879, 1884, 1889, 1894, 1902, 1906, 1911, 1916, 1921, 1926, + 1931, 1936, 1941, 1947, 1954, 1961, 1971, 1975, 1983, 1987, + 1991, 1995, 1999, 2015, 2031, 2040, 2047, 2051, 2059, 2063, + 2067, 2071, 2075, 2091, 2107, 2125, 2134, 2141, 2145, 2153, + 2157, 2173, 2189, 2198, 2205, 2209, 2217, 2221, 2230, 2229, + 2254, 2253, 2283, 2284, 2291, 2292, 2296, 2297, 2301, 2305, + 2309, 2313, 2317, 2321, 2325, 2329, 2333, 2337, 2344, 2352, + 2356, 2360, 2365, 2373, 2377, 2384, 2385, 2390, 2397, 2398, + 2403, 2411, 2415, 2419, 2426, 2430, 2434, 2442, 2441, 2464, + 2463, 2486, 2487, 2491, 2497, 2504, 2513, 2514, 2515, 2519, + 2523, 2527, 2531, 2535, 2539, 2544, 2549, 2554, 2559, 2563, + 2568, 2577, 2582, 2590, 2594, 2598, 2606, 2616, 2616, 2626, + 2627, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, + 2640, 2641, 2641, 2641, 2642, 2642, 2642, 2642, 2643, 2643, + 2643, 2643, 2643, 2644, 2644, 2644, 2645, 2645, 2645, 2645, + 2645, 2646, 2646, 2646, 2646, 2646, 2647, 2647, 2647, 2647, + 2647, 2648, 2648, 2648, 2648, 2648, 2649, 2649, 2649, 2649, + 2650, 2650, 2650, 2650, 2650, 2651, 2651, 2651, 2651, 2651, + 2652, 2652, 2652, 2652, 2652, 2652, 2653, 2653, 2653, 2653, + 2653, 2654, 2654, 2654, 2654, 2655, 2655, 2655, 2655, 2656, + 2656, 2656, 2656, 2656, 2657, 2657, 2657, 2658, 2658, 2658, + 2658, 2658, 2659, 2659, 2659, 2659, 2659, 2660, 2660, 2660, + 2660, 2660, 2663, 2663, 2663, 2663, 2663, 2663, 2663, 2663, + 2663, 2663, 2663, 2664, 2664, 2664, 2664, 2664, 2664, 2664, + 2664, 2664, 2664, 2665, 2665, 2669, 2673, 2680, 2684, 2691, + 2695, 2702, 2706, 2710, 2714, 2718, 2722, 2726, 2730, 2734, + 2738, 2742, 2746, 2750, 2754, 2758, 2762, 2766, 2770, 2774, + 2778, 2782, 2786, 2790, 2794, 2798, 2802, 2806, 2810, 2814, + 2818, 2822, 2826, 2830, 2834, 2838, 2842, 2846, 2854, 2858, + 2862, 2866, 2870, 2874, 2878, 2888, 2894, 2900, 2906, 2912, + 2918, 2924, 2931, 2938, 2945, 2952, 2958, 2964, 2968, 2972, + 2976, 2980, 2991, 3002, 3006, 3010, 3014, 3018, 3022, 3026, + 3030, 3034, 3038, 3042, 3046, 3050, 3054, 3058, 3062, 3066, + 3070, 3074, 3078, 3082, 3086, 3090, 3094, 3098, 3102, 3106, + 3110, 3114, 3118, 3122, 3129, 3133, 3137, 3141, 3145, 3149, + 3153, 3157, 3161, 3167, 3173, 3177, 3181, 3195, 3199, 3203, + 3207, 3211, 3215, 3219, 3223, 3227, 3231, 3235, 3246, 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, 3380, + 3384, 3388, 3392, 3396, 3400, 3404, 3408, 3412, 3418, 3424, + 3432, 3433, 3434, 3438, 3439, 3440, 3441, 3445, 3453, 3461, + 3489, 3493, 3497, 3501, 3505, 3511, 3515, 3519, 3530, 3534, + 3538, 3546, 3550, 3554, 3560, 3571 }; #endif @@ -1306,13 +1014,13 @@ static const char *const yytname[] = "const_expr_comma", "no_angle_bracket_const_expr", "const_expr", "const_operand", "formal_const_expr", "formal_const_operand", "capture_list", "capture", "class_derivation_name", "name", - "name_no_final", "string_literal", "empty", YY_NULL + "name_no_final", "string_literal", "empty", YY_NULLPTR }; #endif # ifdef YYPRINT -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to - token YYLEX-NUM. */ +/* YYTOKNUM[NUM] -- (External) token number corresponding to the + (internal) symbol number NUM (which must be that of a token). */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, @@ -1333,7 +1041,1537 @@ static const yytype_uint16 yytoknum[] = }; # endif -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +#define YYPACT_NINF -749 + +#define yypact_value_is_default(Yystate) \ + (!!((Yystate) == (-749))) + +#define YYTABLE_NINF -671 + +#define yytable_value_is_error(Yytable_value) \ + 0 + + /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +static const yytype_int16 yypact[] = +{ + -2, -749, 2788, 4412, 66, 2980, -749, -749, -749, -749, + -749, -749, -749, -749, -81, -17, 0, 5, 16, 24, + 37, 53, 73, -749, -749, 68, 106, 116, 4611, -749, + -749, 82, 126, 157, 162, 174, -749, 170, 171, 181, + 2788, 2788, 2788, 2788, 2788, 1434, 3192, 2788, 3664, -749, + 124, -749, -749, -749, -749, -749, -749, -749, 4633, 182, + -749, -30, -749, -749, 3317, 1125, 1125, -749, 1254, -749, + 1125, -749, -749, 235, -749, -749, -749, -749, 203, 47, + 819, -749, -749, -749, -749, -749, -749, 5160, 5160, -749, + 5160, 799, 5160, 206, -749, 5116, 192, 198, 207, 5160, + 998, 228, 239, 246, 5160, 5160, 232, 5130, 5160, 5160, + 1591, 5160, 5160, -749, 237, -749, -749, -749, 3190, -749, + -749, -749, -749, -749, -749, 2788, 4412, 2788, 2788, 2788, + 2788, 4412, 2788, 4412, 2788, 2788, 2788, -749, -749, 244, + 1254, 248, 1254, 1254, -749, 4412, 2788, 2788, 4412, 4412, + 1434, 2788, 2788, 14, 14, 14, 14, 14, -81, 0, + 5, 16, 24, 53, 68, 106, 2527, 658, 905, 2775, + 181, 252, -55, 3664, -749, -749, -749, -749, -749, -749, + -749, -749, -749, 1254, 253, 256, -749, -749, 14, 2788, + 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, + 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, + 2228, 2788, -749, -749, 235, 2788, -749, -749, -749, 1125, + -749, -749, -749, -749, -749, 267, 193, 235, 235, 193, + 193, 3979, 272, -749, 281, -749, -749, -749, -749, 893, + 301, 12, 17, 111, -749, -749, -749, 5160, -749, -749, + -749, 5160, -749, -749, -749, 5063, 1562, -749, 1254, 1254, + 1254, -749, -749, 321, -749, -749, -749, -749, -749, 2788, + 3094, -749, 316, -749, 3262, -749, 1254, 230, -749, -749, + 1254, 284, 306, -749, 4179, 325, 4479, 1254, -749, 1254, + 328, 285, 342, -749, -749, -749, -749, 519, 819, -749, + 327, 347, -749, 341, 360, 361, 363, 370, 348, 372, + 388, 383, 397, 401, 2788, -749, 2788, -749, -749, 398, + 403, 404, 406, 423, 415, 3388, 431, 432, 2788, 2788, + -749, -749, -19, 3192, 3846, 3866, 1271, 1271, 322, 322, + 338, 338, -749, 3591, 1139, 3882, 4044, 322, 322, 179, + 179, 14, 14, 14, -749, -749, -43, 1318, -749, 3406, + 193, 440, 193, 193, 193, 193, 193, 435, -749, 272, + -749, 272, -749, 435, 435, -749, 193, 4534, 4390, 193, + 193, 447, 55, -749, 959, -749, 2788, 1254, 434, -749, + -749, -749, -749, 893, -749, 522, -749, -749, -749, 477, + 482, 483, 494, 4685, -749, 3367, 2887, 362, 484, 4179, + 285, -749, -749, 507, -749, 4412, 488, 510, 495, -749, + 25, -749, -749, -749, 2788, 4633, 426, -749, -749, 496, + -749, -749, 1254, 26, -749, -749, -749, 1552, -749, -749, + 499, -749, 512, -749, -749, -749, -749, -749, -749, -749, + 500, -749, 501, -749, -749, -749, 3424, 509, 503, -749, + -749, -749, 515, -749, -749, -749, -749, 14, 3664, -749, + 4251, 359, -749, -749, 2788, -749, -749, -749, 435, 193, + 435, 435, 435, 435, 435, 2788, -52, 4633, 959, -749, + -46, 9, 597, -749, 4323, 521, 959, 959, 959, 959, + 959, 959, -88, -749, -749, 513, 3664, -749, -72, -749, + 538, 4739, -749, 536, -749, 4793, -749, 654, 655, 656, + -749, -749, 381, 548, -749, -749, 1254, 2439, 1254, 541, + 552, -749, 959, -749, -749, 25, -749, -749, 499, -749, + 554, 532, 1254, 1994, 4251, 544, 499, 4251, 499, 3442, + 426, 545, 426, 426, 426, 426, 426, 78, -749, -749, + 4847, -749, 539, -749, 119, -749, 155, 559, 560, 542, + 562, 564, 2340, 3609, 556, 499, 499, 3093, 499, 499, + 499, 499, -749, 22, 395, -749, 893, 2788, 2788, -749, + -749, 2788, 2788, 547, 4556, -749, -749, -749, -749, 553, + 570, -749, 3664, 435, 550, 555, 959, -88, 558, 563, + 359, -749, -749, 959, 567, 567, 567, 567, 567, 110, + 2788, 2788, -749, -749, 600, -749, 2788, -749, 2621, 574, + 577, -749, -749, -749, -39, 581, 615, 4901, 41, -749, + 617, 959, 619, 4290, 2887, -35, 499, -749, 395, -749, + 5160, -749, -749, -749, -749, -749, -749, -749, 606, 618, + 620, -749, -749, 4611, -749, -749, 622, 610, 625, -749, + 623, 2788, 2788, 2788, 2788, 1434, 2788, 627, 61, -749, + -749, 3682, -749, 124, -749, 629, 499, 297, 635, -749, + 395, -749, 122, 426, 621, 621, 621, 621, 621, -749, + 2788, -749, 4251, -749, 1849, -749, -749, 1254, 2788, 2788, + -749, -749, -749, -749, -749, 2340, 624, 637, 3664, -749, + -749, 499, 132, 132, 756, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, 640, 648, -749, -749, 132, 132, 132, 382, 763, + -749, 2788, -749, 1552, 671, -749, 538, -22, 35, 38, + 44, 597, 4611, 235, 277, -749, -749, 4251, -88, -749, + 4251, 4251, -749, 567, 639, 3664, 651, 3628, 2194, 2733, + 4057, 1254, 442, -749, 1254, -749, -749, -749, 2621, 4955, + 788, 673, 792, 793, -749, 678, 4412, -35, 4412, -749, + -749, -749, -749, 2900, -749, -749, -749, 395, 684, -749, + -749, 4412, 4412, 4412, 668, 4412, 4412, 4412, 1434, 14, + 14, 14, 14, 667, 50, 14, -749, -749, 2111, 2788, + 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, + 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, + 2452, 2788, 597, 396, 670, 597, 689, -749, -749, 621, + 4251, 669, 675, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, + -749, -749, -749, -749, -749, -749, -749, -749, 686, -749, + 688, 676, 691, -749, 2564, 132, -749, -749, -749, -749, + -749, 1994, 692, 3609, 499, -749, -749, -749, -749, 359, + 235, -749, -749, 690, 696, 698, -749, 701, 703, 4251, + -749, -749, 2397, -749, 2397, -749, 2397, -749, -749, 2397, + 2397, 2397, -749, 5009, -749, -749, 709, -749, 87, 712, + -749, -749, -749, -749, 710, 725, 729, 737, 730, 740, + 2900, 2900, 2900, 2900, 2900, 1434, 2900, 3829, -749, 750, + -749, 499, 732, 743, 746, 2788, 748, 739, 751, 742, + 3461, 2788, -749, -749, -749, 3846, 3866, 1271, 1271, 322, + 322, 338, 338, -749, 3646, 1139, 3882, 4044, 322, 322, + 179, 179, 14, 14, 14, -749, -749, 108, 1454, 315, + 745, -749, 315, 499, 4251, 744, -749, 597, 1704, -749, + -749, -749, -749, 2340, 3664, 754, -749, -749, 765, -749, + -749, -749, 597, 597, 597, 755, -749, -749, -749, -749, + -749, -749, -749, 764, 885, 775, 776, 4412, 4412, 4412, + 4412, 4412, 4412, 75, 75, 75, 75, 75, 759, 134, + 75, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, + 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, + 2676, 2788, 499, -749, -749, 766, 767, 770, 774, -749, + 778, -749, -749, 14, 2788, -749, -749, -749, 4251, -749, + 777, 597, 315, -749, 762, 597, -749, 359, 359, 359, + 597, -749, 816, -749, -749, 801, 815, 828, 831, 832, + 838, 2900, -749, 1117, 3913, 1290, 1290, 2879, 2879, 461, + 461, -749, 3811, 2242, 4067, 4083, 486, 486, 75, 75, + 75, -749, -749, 146, 2014, -749, 2788, 2788, -749, 2788, + 2788, 3664, 4251, 833, 597, 315, -749, 315, 834, -749, + -749, -749, 315, 968, -749, 839, 845, 847, -749, 848, + 75, 2900, -749, -749, 161, 164, 166, 175, 849, 597, + 315, -749, 850, 2788, 2788, 2788, 2788, 3829, -749, -749, + -749, -749, 597, 359, 870, 184, 204, 213, 216, 359, + -749, -749, -749, -749, -749, -749, -749 +}; + + /* 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[] = +{ + 0, 675, 0, 0, 0, 675, 5, 588, 584, 587, + 671, 672, 590, 591, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 586, 592, 0, 0, 0, 0, 594, + 593, 0, 0, 0, 0, 0, 585, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 675, 0, 3, 528, + 589, 257, 265, 339, 340, 342, 343, 324, 0, 0, + 354, 321, 353, 348, 345, 344, 347, 325, 0, 326, + 346, 356, 341, 675, 4, 259, 260, 261, 0, 310, + 0, 256, 336, 337, 338, 1, 21, 675, 675, 22, + 675, 675, 675, 0, 34, 675, 0, 0, 0, 675, + 0, 0, 0, 0, 675, 675, 0, 675, 675, 675, + 0, 675, 675, 6, 0, 16, 7, 19, 0, 14, + 55, 15, 17, 18, 36, 675, 0, 675, 675, 675, + 675, 0, 675, 0, 675, 675, 675, 278, 283, 0, + 0, 549, 0, 0, 277, 0, 675, 675, 0, 0, + 0, 675, 675, 558, 556, 555, 557, 554, 257, 339, + 340, 342, 343, 354, 353, 348, 345, 344, 347, 346, + 341, 0, 0, 489, 660, 661, 662, 665, 663, 667, + 666, 664, 654, 653, 0, 651, 656, 650, 553, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 673, 674, 675, 0, 322, 323, 355, 345, + 350, 349, 352, 258, 351, 0, 675, 675, 675, 675, + 675, 675, 0, 286, 244, 675, 668, 669, 670, 0, + 312, 660, 661, 663, 288, 262, 290, 675, 47, 46, + 48, 675, 37, 42, 23, 675, 0, 40, 0, 0, + 0, 45, 675, 0, 26, 25, 24, 43, 39, 0, + 0, 142, 0, 49, 0, 20, 0, 0, 41, 44, + 0, 285, 267, 276, 0, 0, 0, 0, 12, 0, + 0, 0, 284, 59, 269, 270, 271, 310, 0, 266, + 0, 488, 487, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 279, 675, 281, 280, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 583, 655, 675, 675, 567, 568, 569, 570, 571, 572, + 575, 576, 582, 0, 564, 565, 566, 573, 574, 562, + 563, 559, 560, 561, 581, 580, 0, 0, 287, 0, + 675, 0, 675, 675, 675, 675, 675, 249, 236, 0, + 245, 0, 246, 248, 247, 175, 675, 0, 0, 675, + 675, 0, 176, 179, 675, 174, 675, 318, 0, 315, + 314, 309, 313, 0, 675, 675, 38, 35, 675, 0, + 0, 0, 0, 675, 327, 0, 675, 285, 267, 0, + 0, 284, 67, 0, 333, 0, 0, 51, 53, 76, + 78, 285, 267, 61, 0, 0, 675, 268, 675, 0, + 357, 192, 0, 0, 57, 357, 197, 0, 58, 56, + 0, 274, 312, 272, 534, 548, 540, 536, 538, 539, + 0, 546, 0, 545, 535, 542, 0, 0, 0, 541, + 544, 547, 0, 551, 552, 543, 537, 529, 490, 92, + 675, 675, 91, 652, 0, 579, 578, 264, 250, 675, + 241, 237, 238, 240, 239, 675, 0, 0, 675, 213, + 0, 0, 675, 178, 0, 0, 675, 675, 675, 675, + 675, 675, 675, 226, 225, 0, 486, 485, 319, 308, + 263, 675, 293, 675, 292, 675, 329, 0, 0, 0, + 331, 675, 0, 0, 154, 155, 0, 0, 0, 0, + 144, 145, 675, 153, 143, 0, 69, 71, 0, 335, + 0, 0, 0, 675, 675, 0, 0, 675, 0, 0, + 675, 0, 675, 675, 675, 675, 675, 0, 217, 216, + 675, 80, 0, 675, 0, 8, 0, 0, 0, 0, + 0, 0, 675, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 60, 675, 675, 156, 0, 0, 0, 282, + 550, 0, 0, 0, 0, 94, 96, 93, 95, 0, + 0, 171, 577, 242, 0, 0, 675, 675, 0, 0, + 675, 177, 180, 675, 231, 227, 228, 230, 229, 0, + 0, 675, 210, 190, 251, 316, 0, 289, 0, 0, + 295, 294, 332, 675, 0, 0, 0, 675, 0, 33, + 147, 675, 149, 675, 0, 675, 0, 68, 675, 334, + 675, 52, 643, 639, 642, 645, 646, 182, 0, 0, + 0, 641, 647, 0, 649, 648, 0, 0, 0, 640, + 0, 0, 0, 0, 0, 0, 0, 0, 183, 214, + 186, 215, 597, 644, 181, 0, 0, 0, 0, 62, + 675, 275, 0, 675, 222, 218, 219, 221, 220, 86, + 675, 13, 675, 193, 358, 359, 357, 0, 675, 675, + 195, 196, 198, 200, 201, 675, 0, 204, 206, 203, + 199, 0, 163, 159, 0, 109, 110, 111, 112, 113, + 114, 117, 118, 133, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 137, 136, 120, 119, + 106, 108, 107, 115, 116, 104, 105, 101, 102, 103, + 100, 0, 0, 99, 157, 160, 162, 161, 0, 0, + 167, 675, 169, 0, 0, 63, 273, 0, 0, 0, + 0, 675, 0, 675, 0, 357, 243, 675, 675, 211, + 675, 675, 252, 232, 235, 191, 0, 320, 667, 0, + 666, 0, 0, 296, 0, 298, 657, 675, 0, 675, + 0, 0, 0, 0, 328, 0, 0, 675, 0, 138, + 141, 139, 146, 0, 151, 188, 70, 675, 0, 72, + 50, 0, 0, 0, 605, 0, 0, 0, 0, 613, + 612, 611, 610, 0, 0, 609, 54, 185, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 675, 0, 0, 675, 0, 65, 88, 223, + 675, 0, 0, 361, 362, 366, 363, 370, 364, 365, + 367, 368, 369, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 436, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 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, 675, 478, 479, 480, 471, 483, + 467, 468, 466, 473, 474, 462, 463, 464, 465, 472, + 470, 477, 475, 481, 476, 482, 469, 360, 0, 9, + 0, 0, 0, 202, 205, 164, 158, 135, 134, 166, + 170, 675, 0, 191, 0, 532, 531, 533, 530, 675, + 675, 172, 97, 0, 0, 0, 212, 0, 0, 675, + 233, 317, 0, 301, 0, 300, 0, 299, 659, 0, + 0, 0, 658, 675, 297, 330, 0, 27, 0, 0, + 32, 148, 152, 150, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 189, 491, 0, + 74, 0, 0, 0, 0, 675, 0, 0, 0, 0, + 0, 0, 638, 184, 187, 622, 623, 624, 625, 626, + 627, 630, 631, 637, 0, 619, 620, 621, 628, 629, + 617, 618, 614, 615, 616, 636, 635, 0, 0, 77, + 0, 82, 79, 0, 675, 0, 224, 675, 0, 194, + 11, 10, 207, 675, 208, 0, 165, 64, 0, 173, + 98, 595, 675, 675, 675, 0, 307, 306, 305, 304, + 303, 302, 291, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 504, 502, 501, 503, 500, 0, 0, + 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 73, 604, 0, 0, 0, 0, 603, + 0, 607, 608, 598, 0, 634, 633, 84, 675, 66, + 0, 675, 81, 484, 0, 675, 357, 675, 675, 675, + 675, 28, 0, 29, 31, 0, 0, 0, 0, 0, + 0, 0, 527, 513, 514, 515, 516, 517, 518, 519, + 520, 526, 0, 510, 511, 512, 508, 509, 505, 506, + 507, 525, 524, 0, 0, 75, 0, 0, 606, 0, + 0, 632, 675, 0, 675, 87, 209, 168, 0, 255, + 254, 253, 234, 0, 498, 0, 0, 0, 497, 0, + 492, 0, 523, 522, 0, 0, 0, 0, 0, 675, + 89, 596, 0, 0, 0, 0, 0, 521, 601, 600, + 602, 599, 675, 675, 0, 0, 0, 0, 0, 675, + 83, 30, 495, 494, 496, 493, 85 +}; + + /* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -749, -749, -226, -749, 292, -749, -749, 747, -749, -749, + -28, 459, -749, -106, -749, -749, -749, -11, -113, -749, + -749, -749, -67, -177, -749, -749, -749, 749, -749, -749, + -749, -749, -749, -383, -749, -749, 374, -749, -749, -749, + 377, 491, -339, -749, -509, -567, -445, -749, 1, -749, + 208, -542, -749, -376, -702, -749, -354, 178, -438, 172, + 54, -195, -41, -77, -550, -206, 28, -103, -749, -83, + -749, -749, -749, -749, 219, -70, -749, -362, -749, -749, + -8, -7, -749, -749, -749, -749, -14, 30, -749, -749, + -433, -749, 46, -749, -478, -124, -27, -119, 526, -249, + -749, -749, 700, -749, -748, 708, 817, -513, -1 +}; + + /* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = +{ + -1, 4, 5, 564, 565, 115, 428, 116, 117, 255, + 118, 416, 417, 119, 120, 440, 548, 582, 689, 275, + 538, 646, 647, 826, 290, 544, 547, 291, 702, 1208, + 1262, 880, 1124, 471, 764, 820, 121, 272, 529, 530, + 531, 532, 583, 1021, 584, 600, 381, 382, 677, 678, + 824, 622, 434, 438, 716, 717, 383, 680, 557, 502, + 232, 233, 73, 411, 141, 293, 74, 75, 394, 76, + 395, 513, 629, 630, 803, 77, 78, 391, 387, 388, + 79, 80, 122, 521, 633, 123, 81, 82, 83, 84, + 562, 563, 704, 1007, 505, 300, 301, 1077, 173, 49, + 681, 682, 184, 185, 805, 806, 585, 50, 124 +}; + + /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ +static const yytype_int16 yytable[] = +{ + 6, 271, 569, 304, 305, 306, 307, 604, 309, 638, + 311, 312, 313, 1012, 144, 294, 772, 214, 172, 358, + 142, 143, 320, 321, 489, 593, 216, 326, 327, 648, + 683, 510, 370, 372, 537, 295, 403, 545, 469, 690, + 620, 292, 774, 792, 783, 187, 197, 212, 296, 213, + 1043, 1045, 1047, 625, 594, 621, 626, 236, 237, 248, + 249, 125, 250, 252, 253, 789, 85, 257, 412, 493, + 329, 261, 234, 171, 217, 847, 267, 268, 423, 270, + 273, 274, 329, 278, 279, -668, 810, 567, 568, 330, + -669, 485, 605, 823, 220, 221, 222, 485, 608, 685, + 224, 475, 688, 329, 299, 811, 828, 1179, 621, 610, + 297, 298, 692, 834, 694, 695, 696, 697, 698, 1, + 2, 3, 1025, 470, 302, 126, 302, 302, 302, 302, + 212, 302, 213, 302, 302, 302, -668, 827, 238, -668, + 612, -669, 127, 796, -669, 302, 302, 128, 876, 769, + 302, 302, 485, 609, 303, 209, 210, 211, 129, 308, + 329, 310, 546, 329, 770, 771, 130, 294, 511, 329, + 131, 294, 515, 319, 239, 329, 322, 323, 324, 1026, + 494, 294, 1027, 356, -670, 815, 848, 295, 1028, 679, + 384, 295, 457, 292, 1092, 132, 220, 221, 222, 224, + 296, 295, 560, 536, 296, 361, 133, 687, 775, 362, + 134, 197, 1154, 234, 296, 145, 1189, 1190, 1191, 257, + 699, 700, 881, 396, 776, 368, 234, 234, 368, 368, + 385, 1155, 1030, 329, 389, -670, 722, 723, -670, 765, + 766, 767, 768, 706, 707, 426, 1036, 225, 135, 220, + 363, 226, 1205, 621, 794, 879, 299, 882, 136, 329, + 299, 6, 297, 298, 878, 700, 297, 298, 146, 392, + 299, 329, 829, 1008, 770, 771, 297, 298, 1232, 708, + 367, 369, 371, 373, 374, 1079, 329, 174, 175, 329, + 1282, 329, 227, 1022, 1146, 637, 1147, 709, 1148, 147, + 329, 1149, 1150, 1151, 148, 1298, 294, 149, 1299, 329, + 1300, 364, 150, 151, 877, 302, 206, 207, 208, 1301, + 209, 210, 211, 152, 215, 365, 295, 235, 1312, 329, + 366, 472, 187, 254, 258, 683, 488, 384, 329, 296, + 259, 329, 1035, 195, 196, 1037, 1038, 873, 1313, 260, + 176, 177, 1034, 228, 197, 264, 414, 1314, 415, 368, + 1315, 368, 368, 368, 368, 368, 265, 229, 178, 179, + 197, 180, 230, 266, 269, 368, 181, 231, 368, 368, + 280, 333, 1015, 504, 550, 507, 314, 10, 595, 11, + 316, 594, 533, 6, 514, 299, 328, 6, 1029, 332, + 596, 297, 298, 597, 360, 534, 598, 809, -90, 435, + -90, 436, -90, 437, 478, 386, 480, 481, 482, 483, + 484, 1032, 599, 392, -236, 559, 419, 6, 393, 384, + 486, 1214, 595, 490, 491, 1125, 236, 237, 551, 770, + 771, 874, 552, 540, 596, 404, 606, 597, 420, 406, + 598, 1080, 430, 384, 431, 432, 433, 204, 205, 206, + 207, 208, 1138, 209, 210, 211, 599, 424, 439, 385, + 601, 444, 329, 204, 205, 206, 207, 208, 368, 209, + 210, 211, 450, 553, 507, 445, -90, 504, -90, 1119, + -90, 472, 1122, 1179, 679, 504, 504, 504, 504, 504, + 504, 623, 384, 384, 446, 447, 384, 448, 683, 236, + 237, 574, 631, 533, 449, 575, 451, 238, 1179, 435, + 6, 436, 452, 773, 770, 771, 1019, 453, 48, 241, + 242, 504, 458, 603, 1049, 1050, 1051, 819, 770, 771, + 1120, 454, 684, 385, 554, 455, 385, 459, 460, 559, + 461, 559, 559, 559, 559, 559, 576, 462, 555, 463, + 777, 778, 705, 556, 779, 780, 153, 154, 155, 156, + 157, 719, 648, 188, 1078, 465, 466, 479, 485, 509, + 144, 1053, 601, 623, 1010, 1011, 142, 143, 1031, 577, + 238, 492, 176, 177, 1145, 512, 1184, 1185, 1186, 1187, + 1188, 516, 1189, 1190, 1191, 504, 623, 517, 518, 601, + 243, 179, 504, 180, 690, 270, 392, 578, 181, 519, + 507, 804, 830, 1186, 1187, 1188, 535, 1189, 1190, 1191, + 533, 579, 6, 539, 541, 542, 580, 543, 561, 586, + 504, 581, 587, 588, 825, 591, 239, 623, 844, 144, + 1269, 1270, 1271, 590, 469, 142, 143, 592, 613, 624, + 607, 384, -311, 628, 634, 635, 636, 679, 614, 615, + 616, 617, 618, 619, 639, 643, 325, 644, 650, 1210, + 649, 686, 693, 827, 703, 710, 711, 712, 713, 623, + 714, 781, 559, 721, 785, 784, 786, 787, 807, 507, + 790, 385, 808, 843, 645, 791, 812, 302, 302, 53, + 621, 54, 55, 56, 719, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 1310, 357, 63, 219, + 813, 359, 1316, -243, 1212, 816, 384, 818, 831, 384, + 384, 832, 836, 833, 186, 835, 65, 66, 837, 1217, + 1218, 1219, 1014, 1263, 700, 838, 1016, 1020, 144, 1013, + 507, 846, 70, 872, 142, 143, 223, 72, 788, 875, + 472, 1039, 234, 1268, 1017, 793, 385, 623, 245, 385, + 385, 804, 804, 804, 1018, 405, 1024, 1040, 1056, 1057, + 146, 804, 1058, 1059, 1060, 251, 6, 384, 263, 1081, + 1085, 1091, 1121, 817, 1123, 1126, 825, 1288, 277, 1127, + 1131, 1078, 1078, 1078, 1078, 1078, 623, 1078, 1265, 241, + 242, 1129, 1267, 1130, 1140, 1139, 1132, 1272, 1136, 384, + 456, 1141, 1142, 1117, 1061, 1143, 1063, 1144, 315, 87, + 317, 318, 1157, 1153, 467, 468, 1156, 88, 1158, 1082, + 1083, 1084, 1159, 1086, 1087, 1088, 1089, 90, 91, 92, + 1160, 472, 1161, 1162, 472, 1192, 1194, 1195, 247, 385, + 1196, 1290, 1198, 1199, 99, 1200, 1201, 1207, 1211, 1216, + 1221, 331, 176, 177, 104, 1222, 240, 246, 1215, 1220, + 105, 1223, 1224, 1231, 390, 108, 1303, 1266, 1256, 1257, + 243, 179, 506, 180, 1258, 111, 1259, 112, 181, 1309, + 1260, 1264, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, + 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, + 1078, 1273, 114, 244, 53, 1274, 54, 55, 56, 1275, + 549, 1163, 1164, 1165, 1166, 1167, 53, 1170, 54, 55, + 56, 1197, 1276, 573, 399, 1277, 400, 401, 402, 236, + 237, 495, 1279, 63, 219, 496, 1278, 1289, 1292, 1291, + 384, 1293, 1078, 705, 413, 63, 219, 1294, 418, 1295, + 1296, 65, 66, 1302, 1304, 427, 1311, 429, 384, 1009, + 602, 651, 397, 65, 66, 441, 443, 70, 174, 175, + 1209, 506, 72, 1137, 1193, 1255, 497, 821, 641, 70, + 684, 822, 1135, 410, 72, 1062, 1094, 1054, 601, 234, + 1128, 0, 1078, 473, 0, 804, 0, 804, 385, 804, + 0, 186, 804, 804, 804, 0, 0, 147, 1169, 0, + 238, 0, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, + 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, + 1251, 176, 177, 0, 0, 0, 0, 498, 0, 0, + 0, 0, 0, 384, 302, 0, 0, 0, 0, 178, + 179, 499, 180, 0, 0, 508, 500, 181, 718, 0, + 0, 501, 0, 1168, 0, 0, 0, 0, 0, 0, + 0, 0, 1280, 0, 442, 246, 0, 0, 0, 0, + 0, 0, 262, 385, 0, 0, 472, 0, 0, 0, + 0, 0, 719, 1172, 1173, 1174, 1175, 1176, 1177, 1178, + 566, 472, 472, 472, 0, 0, 795, 506, 0, 1179, + 0, 0, 797, 0, 0, 0, 191, 192, 193, 194, + 195, 196, 1297, 1253, 0, 0, 0, 384, 0, 0, + 0, 197, 0, 0, 0, 0, 53, 0, 54, 55, + 56, 0, 0, 0, 0, 1225, 1226, 1227, 1228, 1229, + 1230, 0, 0, 0, 0, 0, 0, 839, 840, 841, + 842, 503, 845, 0, 0, 63, 219, 385, 0, 0, + 472, 0, 0, 0, 472, 0, 601, 601, 601, 472, + 0, 384, 0, 65, 66, 0, 506, 0, 0, 1284, + 1285, 0, 1286, 1287, 640, 0, 642, 0, 0, 70, + 0, 718, 0, 558, 72, 0, 0, 1181, 1182, 1183, + 418, 0, 1184, 1185, 1186, 1187, 1188, 0, 1189, 1190, + 1191, 385, 0, 472, 174, 175, 1305, 1306, 1307, 1308, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 0, + 209, 210, 211, 0, 0, 0, 0, 0, 472, 0, + 193, 194, 195, 196, 0, 0, 0, 506, 0, 1023, + 0, 472, 601, 197, 0, 503, 0, 0, 601, 1175, + 1176, 1177, 1178, 503, 503, 503, 503, 503, 503, 0, + 0, 0, 1179, 0, 0, 0, 0, 176, 177, 0, + 0, 0, 0, 189, 190, 191, 192, 193, 194, 195, + 196, 0, 0, 0, 0, 178, 179, 0, 180, 503, + 197, 0, 0, 181, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1090, 0, 0, 558, 0, 558, + 558, 558, 558, 558, 0, 1095, 1096, 1097, 1098, 1099, + 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, + 1110, 1111, 1112, 1113, 1114, 1115, 0, 1118, 0, 0, + 0, 0, 0, 0, 202, 203, 204, 205, 206, 207, + 208, 0, 209, 210, 211, 566, 0, 0, 0, 0, + 0, 0, 0, 503, 0, 1184, 1185, 1186, 1187, 1188, + 503, 1189, 1190, 1191, 0, 0, 0, 7, 8, 9, + 10, 0, 11, 12, 13, 158, 0, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 503, 209, + 210, 211, 0, 0, 476, 0, 0, 0, 0, 189, + 190, 191, 192, 193, 194, 195, 196, 0, 0, 0, + 0, 15, 52, 0, 0, 159, 197, 160, 161, 162, + 57, 58, 1033, 20, 59, 0, 0, 163, 22, 0, + 0, 61, 0, 0, 0, 0, 23, 24, 164, 1048, + 558, 0, 1052, 0, 165, 166, 0, 0, 0, 0, + 0, 28, 0, 29, 0, 30, 0, 0, 0, 0, + 31, 0, 167, 168, 34, 0, 0, 35, 67, 0, + 1134, 0, 36, 0, 0, 37, 68, 69, 169, 0, + 0, 71, 0, 170, 0, 7, 8, 9, 10, 0, + 11, 12, 13, 14, 0, 0, 40, 0, 0, 41, + 42, 43, 174, 175, 44, 0, 45, 46, 0, 0, + 0, 47, 0, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 0, 209, 210, 211, 0, 15, + 1206, 174, 175, 16, 0, 17, 18, 19, 0, 0, + 0, 20, 0, 570, 571, 21, 22, 1203, 0, 0, + 0, 0, 0, 0, 23, 24, 25, 0, 0, 0, + 0, 0, 26, 27, 0, 176, 177, 0, 0, 28, + 0, 29, 0, 30, 0, 0, 0, 0, 31, 0, + 32, 33, 34, 178, 179, 35, 180, 0, 0, 718, + 36, 181, 0, 37, 176, 177, 38, 0, 0, 0, + 0, 39, 0, 0, 0, 0, 572, 276, 0, 0, + 0, 0, 178, 179, 40, 180, 398, 41, 42, 43, + 181, 0, 44, 0, 45, 46, 0, 0, 0, 47, + 0, 0, 0, 0, 0, 0, 0, 883, 884, 885, + 886, 887, 888, 889, 890, 891, 892, 1254, 893, 894, + 895, 896, 897, 898, 899, 900, 901, 902, 903, 0, + 1261, 0, 0, 0, 0, 0, 904, 905, 906, 907, + 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, + 918, 919, 920, 0, 0, 921, 922, 923, 924, 925, + 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, + 0, 936, 0, 937, 938, 939, 940, 941, 942, 943, + 944, 945, 946, 947, 948, 949, 0, 0, 0, 950, + 951, 952, 0, 953, 954, 955, 956, 957, 958, 959, + 960, 961, 962, 963, 964, 965, 966, 967, 968, 0, + 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, + 979, 980, 981, 982, 983, 0, 0, 0, 984, 985, + 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, + 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1213, + 1005, 1006, 883, 884, 885, 886, 887, 888, 889, 890, + 891, 892, 0, 893, 894, 895, 896, 897, 898, 899, + 900, 901, 902, 903, 0, 0, 0, 0, 0, 0, + 0, 904, 905, 906, 907, 908, 909, 910, 911, 912, + 913, 914, 915, 916, 917, 918, 919, 920, 0, 0, + 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, + 931, 932, 933, 934, 935, 0, 936, 0, 937, 938, + 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, + 949, 0, 0, 0, 950, 951, 952, 0, 953, 954, + 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, + 965, 966, 967, 968, 0, 969, 970, 971, 972, 973, + 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, + 0, 0, 0, 984, 985, 986, 987, 988, 989, 990, + 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, + 1001, 1002, 1003, 1004, 0, 1005, 1006, 652, 653, 654, + 10, 0, 11, 655, 656, 51, 0, 0, 657, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 189, + 190, 191, 192, 193, 194, 195, 196, 0, 0, 0, + 0, 658, 52, 0, 0, 53, 197, 54, 55, 56, + 57, 377, 0, 659, 59, 0, 0, 60, 660, 0, + 0, 61, 0, 0, 0, 0, 661, 662, 62, 0, + 0, 0, 0, 0, 63, 64, 0, 0, 0, 0, + 0, 663, 0, 664, 0, 665, 0, 0, 0, 378, + 666, 0, 65, 66, 667, 0, 0, 668, 67, 0, + 0, 0, 669, 0, 0, 670, 68, 69, 70, 0, + 0, 71, 0, 72, 652, 653, 654, 10, 0, 11, + 655, 656, 51, 0, 0, 1093, 671, 0, 0, 672, + 673, 0, 0, 0, 674, 0, 675, 0, 0, 0, + 0, 676, 0, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 0, 209, 210, 211, 658, 52, + 1283, 0, 53, 0, 54, 55, 56, 57, 377, 0, + 659, 59, 0, 0, 60, 660, 0, 0, 61, 0, + 0, 0, 0, 661, 662, 62, 0, 0, 0, 0, + 0, 63, 64, 0, 0, 0, 0, 0, 663, 0, + 664, 0, 665, 0, 174, 175, 378, 666, 0, 65, + 66, 667, 0, 0, 668, 67, 0, 0, 0, 669, + 0, 0, 670, 68, 69, 70, 0, 0, 71, 0, + 72, 7, 8, 9, 10, 0, 11, 12, 13, 14, + 0, 0, 0, 671, 0, 0, 672, 673, 0, 0, + 57, 674, 0, 675, 0, 0, 0, 0, 676, 1173, + 1174, 1175, 1176, 1177, 1178, 0, 0, 176, 177, 0, + 0, 0, 0, 0, 1179, 15, 0, 0, 0, 16, + 0, 17, 18, 19, 0, 178, 179, 20, 180, 0, + 0, 21, 22, 181, 0, 0, 0, 0, 67, 0, + 23, 24, 25, 0, 0, 0, 801, 69, 26, 27, + 1042, 0, 0, 0, 0, 28, 0, 29, 0, 30, + 0, 0, 0, 0, 31, 0, 32, 33, 34, 0, + 0, 35, 0, 0, 0, 0, 36, 0, 0, 37, + 0, 0, 38, 7, 8, 9, 10, 39, 11, 12, + 13, 14, 0, 0, 0, 0, 0, 0, 0, 0, + 40, 0, 0, 41, 42, 43, 0, 0, 44, 0, + 45, 46, 355, 1182, 1183, 47, 0, 1184, 1185, 1186, + 1187, 1188, 0, 1189, 1190, 1191, 0, 15, 0, 0, + 0, 16, 0, 17, 18, 19, 0, 0, 0, 20, + 0, 0, 0, 21, 22, 0, 0, 174, 175, 0, + 0, 0, 23, 24, 25, 0, 0, 0, 0, 0, + 26, 27, 0, 0, 0, 0, 0, 28, 0, 29, + 0, 30, 0, 0, 0, 0, 31, 0, 32, 33, + 34, 0, 0, 35, 0, 0, 0, 0, 36, 524, + 525, 37, 0, 57, 38, 7, 8, 9, 10, 39, + 11, 12, 13, 14, 715, 0, 0, 0, 0, 0, + 176, 177, 40, 0, 0, 41, 42, 43, 0, 0, + 44, 0, 45, 46, 0, 0, 0, 47, 178, 179, + 53, 180, 54, 55, 56, 0, 181, 0, 0, 15, + 0, 67, 60, 16, 0, 17, 18, 19, 0, 801, + 69, 20, 0, 62, 0, 21, 22, 0, 0, 63, + 64, 0, 0, 0, 23, 24, 25, 0, 0, 0, + 0, 0, 26, 27, 0, 0, 0, 65, 66, 28, + 0, 29, 0, 30, 0, 0, 0, 0, 31, 0, + 32, 33, 34, 70, 0, 35, 71, 0, 72, 0, + 36, 0, 0, 37, 0, 0, 38, 7, 8, 9, + 10, 39, 11, 12, 13, 14, 0, 0, 53, 0, + 54, 55, 56, 0, 40, 0, 0, 41, 42, 43, + 218, 0, 44, 0, 45, 46, 1116, 0, 0, 47, + 0, 0, 0, 0, 0, 0, 0, 63, 219, 0, + 0, 15, 0, 0, 0, 16, 0, 17, 18, 19, + 0, 0, 0, 20, 0, 65, 66, 21, 22, 0, + 0, 174, 175, 0, 0, 0, 23, 24, 25, 0, + 0, 70, 0, 0, 26, 27, 72, 0, 0, 0, + 0, 28, 0, 29, 0, 30, 0, 0, 0, 0, + 31, 0, 32, 33, 34, 0, 0, 35, 0, 136, + 0, 0, 36, 0, 0, 37, 0, 57, 38, 7, + 8, 9, 10, 39, 11, 12, 13, 14, 1133, 0, + 0, 0, 0, 0, 176, 177, 40, 0, 0, 41, + 42, 43, 0, 0, 44, 0, 45, 46, 0, 0, + 0, 47, 178, 798, 799, 800, 0, 0, 0, 0, + 181, 0, 0, 15, 0, 67, 0, 16, 0, 17, + 18, 19, 0, 801, 69, 20, 0, 802, 0, 21, + 22, 0, 0, 174, 175, 0, 0, 0, 23, 24, + 25, 0, 0, 0, 0, 0, 26, 27, 0, 0, + 0, 0, 0, 28, 0, 29, 0, 30, 0, 0, + 0, 0, 31, 0, 32, 33, 34, 0, 0, 35, + 0, 0, 0, 0, 36, 0, 0, 37, 0, 57, + 38, 7, 8, 9, 10, 39, 11, 12, 13, 14, + 0, 0, 0, 0, 0, 0, 176, 177, 40, 0, + 0, 41, 42, 43, 0, 0, 44, 0, 45, 46, + 1252, 0, 0, 47, 178, 179, 53, 180, 54, 55, + 56, 0, 181, 0, 0, 15, 0, 67, 0, 16, + 0, 17, 18, 19, 0, 801, 69, 20, 0, 1044, + 0, 21, 22, 0, 0, 63, 219, 0, 0, 0, + 23, 24, 25, 0, 0, 0, 0, 0, 26, 27, + 0, 0, 0, 65, 66, 28, 0, 29, 0, 30, + 0, 0, 0, 0, 31, 0, 32, 33, 34, 70, + 0, 35, 0, 0, 72, 0, 36, 524, 525, 37, + 1177, 1178, 38, 7, 8, 9, 10, 39, 11, 12, + 13, 1179, 0, 0, 0, 0, 0, 151, 0, 0, + 40, 0, 0, 41, 42, 43, 0, 0, 44, 0, + 45, 46, 0, 0, 0, 47, 0, 0, 53, 0, + 54, 55, 56, 526, 527, 0, 0, 1064, 0, 0, + 60, 0, 0, 0, 0, 0, 0, 0, 0, 1065, + 0, 62, 0, 0, 1066, 0, 0, 63, 64, 0, + 0, 0, 23, 24, 0, 0, 0, 0, 0, 0, + -2, 0, 0, 0, 0, 65, 66, 0, 0, 29, + 0, 30, 0, 0, 0, 0, 1067, 0, 0, 528, + 1068, 70, 0, 1069, 71, 0, 72, 0, 36, 0, + 0, 0, 0, 0, 1184, 1185, 1186, 1187, 1188, 0, + 1189, 1190, 1191, 0, 0, 0, 0, 0, 0, 86, + 87, 0, 1070, 0, 0, 1071, 1072, 1073, 88, 0, + 1074, 0, 1075, 46, 0, 0, 89, 1076, 90, 91, + 92, 93, 0, 0, 0, 94, 0, 0, 0, 95, + 0, 0, 96, 97, 98, 99, 100, 0, 0, 0, + 0, 0, 101, 102, 103, 104, 0, 0, 0, 0, + 0, 105, 106, 0, 0, 107, 108, 0, 0, 0, + 109, 0, 0, 0, 0, 110, 111, 0, 112, 724, + 0, 0, 0, 0, 281, 282, 113, 0, 725, 726, + 727, 728, 729, 730, 731, 732, 0, 0, 0, 0, + 0, 0, 0, 114, 0, 733, 0, 734, 735, 736, + 737, 738, 739, 740, 741, 742, 743, 744, 745, 0, + 0, 0, 283, 0, 0, 53, 0, 54, 55, 56, + 57, 284, 0, 0, 285, 746, 0, 60, 0, 0, + 0, 61, 0, 0, 0, 0, 0, 0, 62, 0, + 0, 0, 0, 0, 63, 64, 0, 0, 0, 0, + 747, 0, 0, 0, 286, 0, 0, 0, 0, 0, + 0, 0, 65, 66, 0, 0, 0, 0, 67, 0, + 281, 282, 174, 175, 0, 0, 287, 69, 70, 0, + 0, 71, 0, 72, 0, 0, 0, 0, 748, 0, + 0, 749, 0, 750, 751, 752, 753, 754, 755, 756, + 757, 758, 759, 760, 289, 761, 762, 0, 283, 0, + 763, 53, 0, 54, 55, 56, 57, 284, 0, 0, + 285, 0, 0, 60, 0, 0, 0, 61, 0, 0, + 0, 0, 0, 0, 62, 176, 177, 0, 0, 0, + 63, 64, 407, 408, 0, 0, 0, 0, 0, 0, + 286, 0, 0, 178, 179, 0, 180, 0, 65, 66, + 0, 181, 0, 0, 67, 0, 0, 0, 0, 0, + 0, 0, 287, 69, 70, 0, 0, 71, 0, 72, + 283, 0, 0, 53, 288, 54, 55, 56, 57, 409, + 182, 0, 285, 0, 183, 60, 0, 0, 0, 61, + 289, 0, 0, 0, 0, 0, 62, 0, 0, 0, + 0, 0, 63, 64, 0, 0, 0, 0, 0, 0, + 0, 0, 286, 0, 0, 0, 0, 0, 0, 0, + 65, 66, 0, 0, 0, 0, 67, 0, 53, 0, + 54, 55, 56, 0, 287, 69, 70, 0, 0, 71, + 218, 72, 189, 190, 191, 192, 193, 194, 195, 196, + 0, 0, 0, 0, 0, 0, 0, 63, 219, 197, + 0, 0, 289, 189, 190, 191, 192, 193, 194, 195, + 196, 0, 0, 0, 0, 65, 66, 0, 0, 0, + 197, 189, 190, 191, 192, 193, 194, 195, 196, 0, + 0, 70, 0, 0, 0, 0, 72, 0, 197, 189, + 190, 191, 192, 193, 194, 195, 196, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 197, 189, 190, 191, + 192, 193, 194, 195, 196, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 197, 0, 189, 190, 191, 192, + 193, 194, 195, 196, 0, 0, 0, 0, 0, 0, + 0, 0, 522, 197, 0, 0, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, + 211, 523, 0, 0, 0, 0, 0, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, + 210, 211, 464, 0, 0, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 0, 209, 210, 211, + 477, 0, 0, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 0, 209, 210, 211, 589, 0, + 0, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 0, 209, 210, 211, 691, 0, 0, 0, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 0, 209, 210, 211, 1202, 189, 190, 191, 192, + 193, 194, 195, 196, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 197, 189, 190, 191, 192, 193, 194, + 195, 196, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 197, 0, 189, 190, 191, 192, 193, 194, 195, + 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 197, 189, 190, 191, 192, 193, 194, 195, 196, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 197, 189, + 190, 191, 192, 193, 194, 195, 196, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 197, 849, 850, 851, + 852, 853, 854, 855, 856, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 857, 0, 0, 0, 474, 0, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 0, 209, 210, 211, 720, 0, 0, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 0, + 209, 210, 211, 1041, 0, 0, 0, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, + 210, 211, 0, 1204, 0, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 0, 209, 210, 211, + 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 0, 209, 210, 211, 0, 0, + 0, 858, 859, 860, 861, 862, 863, 864, 865, 866, + 867, 868, 0, 869, 870, 871, 1171, 1172, 1173, 1174, + 1175, 1176, 1177, 1178, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1179, 1171, 1172, 1173, 1174, 1175, 1176, + 1177, 1178, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1179, 190, 191, 192, 193, 194, 195, 196, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 197, 0, + 0, 0, 0, 191, 192, 193, 194, 195, 196, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 197, 191, + 192, 193, 194, 195, 196, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 197, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1173, 1174, 1175, 1176, 1177, 1178, 0, 0, 1281, 0, + 1180, 1181, 1182, 1183, 0, 1179, 1184, 1185, 1186, 1187, + 1188, 0, 1189, 1190, 1191, 0, 0, 0, 1180, 1181, + 1182, 1183, 0, 0, 1184, 1185, 1186, 1187, 1188, 0, + 1189, 1190, 1191, 0, 0, 0, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 0, 209, 210, 211, + 51, 0, 0, 375, 0, 376, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 0, 209, 210, 211, + 0, 0, 0, 0, 201, 202, 203, 204, 205, 206, + 207, 208, 0, 209, 210, 211, 0, 52, 0, 0, + 53, 0, 54, 55, 56, 57, 377, 0, 0, 59, + 0, 0, 60, 1181, 1182, 1183, 61, 0, 1184, 1185, + 1186, 1187, 1188, 62, 1189, 1190, 1191, 0, 0, 63, + 64, 191, 192, 193, 194, 195, 196, 174, 175, 0, + 0, 0, 0, 0, 378, 0, 197, 65, 66, 0, + 0, 0, 0, 67, 1173, 1174, 1175, 1176, 1177, 1178, + 0, 68, 69, 70, 0, 0, 71, 0, 72, 1179, + 1173, 1174, 1175, 1176, 1177, 1178, 0, 0, 0, 0, + 0, 379, 0, 57, 0, 1179, 380, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 176, 177, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 178, 179, + 0, 180, 0, 0, 0, 0, 181, 0, 0, 0, + 0, 67, 0, 0, 0, 0, 0, 0, 0, 801, + 69, 0, 0, 1046, 0, 0, 0, 202, 203, 204, + 205, 206, 207, 208, 0, 209, 210, 211, 0, 421, + 422, 0, 0, 0, 0, 0, 0, 0, 0, 1183, + 0, 0, 1184, 1185, 1186, 1187, 1188, 0, 1189, 1190, + 1191, 0, 0, 0, 0, 0, 0, 0, 1184, 1185, + 1186, 1187, 1188, 0, 1189, 1190, 1191, 283, 0, 0, + 53, 0, 54, 55, 56, 57, 0, 0, 0, 285, + 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, + 0, 0, 0, 62, 0, 0, 0, 0, 0, 63, + 64, 0, 51, 0, 0, 375, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 65, 66, 0, + 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, + 0, 287, 69, 70, 0, 0, 71, 0, 72, 52, + 0, 0, 53, 0, 54, 55, 56, 57, 377, 0, + 0, 59, 0, 0, 60, 0, 0, 0, 61, 0, + 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, + 0, 63, 64, 0, 51, 0, 0, 611, 0, 0, + 87, 0, 0, 0, 0, 0, 378, 0, 88, 65, + 66, 0, 0, 0, 0, 67, 0, 0, 90, 91, + 92, 0, 0, 68, 69, 70, 0, 0, 71, 247, + 72, 52, 0, 0, 53, 99, 54, 55, 56, 57, + 377, 0, 0, 59, 0, 104, 60, 0, 0, 0, + 61, 105, 0, 0, 0, 107, 108, 62, 0, 0, + 0, 51, 0, 63, 64, 0, 111, 0, 112, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 378, 0, + 0, 65, 66, 51, 0, 0, 0, 67, 0, 0, + 0, 0, 0, 114, 0, 68, 69, 70, 52, 0, + 71, 53, 72, 54, 55, 56, 57, 377, 0, 0, + 59, 0, 0, 60, 0, 0, 0, 61, 0, 0, + 52, 0, 0, 53, 62, 54, 55, 56, 57, 58, + 63, 64, 59, 0, 0, 60, 0, 0, 0, 61, + 0, 0, 0, 0, 0, 378, 62, 0, 65, 66, + 51, 0, 63, 64, 67, 0, 0, 0, 0, 0, + 0, 0, 68, 69, 70, 0, 0, 71, 0, 72, + 65, 66, 0, 0, 0, 0, 67, 0, 0, 0, + 0, 0, 0, 0, 68, 69, 70, 52, 0, 71, + 53, 72, 54, 55, 56, 57, 425, 0, 0, 59, + 0, 0, 60, 0, 0, 51, 61, 0, 0, 0, + 0, 0, 0, 62, 0, 0, 0, 0, 0, 63, + 64, 0, 0, 0, 0, 0, 0, 137, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 65, 66, 0, + 0, 0, 52, 67, 0, 53, 0, 54, 55, 56, + 57, 68, 69, 70, 59, 0, 71, 60, 72, 0, + 0, 61, 0, 0, 138, 0, 0, 53, 62, 54, + 55, 56, 57, 782, 63, 64, 139, 0, 0, 60, + 0, 0, 137, 61, 0, 0, 0, 0, 0, 487, + 62, 0, 65, 66, 0, 0, 63, 64, 67, 0, + 0, 0, 0, 0, 51, 0, 68, 69, 70, 0, + 0, 71, 0, 72, 65, 66, 0, 0, 0, 138, + 67, 0, 53, 0, 54, 55, 56, 57, 140, 69, + 70, 139, 0, 71, 60, 72, 0, 0, 61, 0, + 0, 52, 0, 0, 53, 62, 54, 55, 56, 57, + 0, 63, 64, 59, 0, 0, 60, 0, 0, 0, + 61, 0, 0, 0, 0, 0, 0, 62, 0, 65, + 66, 0, 0, 63, 64, 67, 0, 0, 0, 0, + 0, 0, 0, 140, 69, 70, 0, 0, 71, 0, + 72, 65, 66, 0, 86, 87, 0, 67, 0, 0, + 0, 0, 0, 88, 0, 68, 69, 70, 0, 0, + 71, 89, 72, 90, 91, 92, 93, 0, 0, 0, + 94, 0, 0, 0, 95, 0, 0, 96, 97, 98, + 99, 100, 0, 0, 0, 0, 0, 101, 102, 103, + 104, 0, 0, 0, 0, 0, 105, 106, 86, 87, + 107, 108, 0, 0, 0, 109, 0, 88, 0, 0, + 110, 111, 0, 112, 0, 89, 0, 90, 91, 92, + 93, 113, 0, 0, 94, 0, 0, 0, 95, 0, + 0, 96, 97, 98, 99, 100, 0, 0, 114, 0, + 520, 101, 102, 103, 104, 0, 0, 0, 0, 0, + 105, 106, 86, 87, 107, 108, 0, 0, 0, 109, + 0, 88, 0, 0, 110, 111, 0, 112, 0, 89, + 0, 90, 91, 92, 93, 113, 0, 0, 94, 0, + 0, 0, 95, 0, 0, 96, 97, 98, 99, 100, + 0, 0, 114, 0, 627, 101, 102, 103, 104, 0, + 0, 0, 0, 0, 105, 106, 86, 87, 107, 108, + 0, 0, 0, 109, 0, 88, 0, 0, 110, 111, + 0, 112, 0, 89, 0, 90, 91, 92, 93, 113, + 0, 0, 94, 0, 0, 0, 95, 0, 0, 96, + 97, 98, 99, 100, 0, 0, 114, 0, 632, 101, + 102, 103, 104, 0, 0, 0, 0, 0, 105, 106, + 86, 87, 107, 108, 0, 0, 0, 109, 0, 88, + 0, 0, 110, 111, 0, 112, 0, 89, 0, 90, + 91, 92, 93, 113, 0, 0, 94, 0, 0, 0, + 95, 0, 0, 96, 97, 98, 99, 100, 0, 0, + 114, 0, 701, 101, 102, 103, 104, 0, 0, 0, + 0, 0, 105, 106, 86, 87, 107, 108, 0, 0, + 0, 109, 0, 88, 0, 0, 110, 111, 0, 112, + 0, 89, 0, 90, 91, 92, 93, 113, 0, 0, + 94, 0, 0, 0, 95, 0, 0, 96, 97, 98, + 99, 100, 0, 0, 114, 0, 814, 101, 102, 103, + 104, 0, 0, 0, 0, 0, 105, 106, 86, 87, + 107, 108, 0, 0, 0, 109, 0, 88, 0, 0, + 110, 111, 0, 112, 0, 89, 0, 90, 91, 92, + 93, 113, 0, 0, 94, 0, 0, 0, 95, 0, + 0, 96, 97, 98, 99, 100, 0, 0, 114, 0, + 1055, 101, 102, 103, 104, 0, 0, 0, 0, 0, + 105, 106, 86, 87, 107, 108, 0, 0, 0, 109, + 0, 88, 0, 0, 110, 111, 0, 112, 0, 89, + 0, 90, 91, 92, 93, 113, 0, 0, 94, 0, + 0, 0, 95, 0, 0, 96, 97, 98, 99, 100, + 0, 0, 114, 0, 1152, 101, 102, 103, 104, 0, + 0, 0, 0, 0, 105, 106, 87, 0, 107, 108, + 0, 0, 0, 109, 88, 0, 0, 0, 110, 111, + 87, 112, 0, 0, 90, 91, 92, 0, 88, 0, + 0, 0, 0, 0, 0, 247, 0, 0, 90, 91, + 92, 99, 256, 0, 0, 0, 114, 0, 0, 247, + 87, 104, 0, 0, 0, 99, 0, 105, 88, 0, + 0, 0, 108, 0, 0, 104, 0, 0, 90, 91, + 92, 105, 111, 0, 112, 0, 108, 0, 0, 247, + 0, 0, 0, 0, 0, 99, 111, 0, 112, 0, + 0, 0, 0, 0, 0, 104, 0, 0, 0, 114, + 0, 105, 0, -140, 0, 0, 108, 0, 0, 0, + 0, 0, 0, 114, 0, 0, 111, 0, 112, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 114 +}; + +static const yytype_int16 yycheck[] = +{ + 1, 107, 435, 127, 128, 129, 130, 485, 132, 522, + 134, 135, 136, 715, 28, 118, 583, 58, 45, 214, + 28, 28, 146, 147, 378, 470, 56, 151, 152, 538, + 543, 393, 227, 228, 410, 118, 262, 12, 57, 548, + 128, 118, 584, 610, 594, 46, 32, 6, 118, 8, + 798, 799, 800, 125, 32, 143, 128, 10, 11, 87, + 88, 142, 90, 91, 92, 607, 0, 95, 274, 14, + 125, 99, 73, 45, 104, 14, 104, 105, 284, 107, + 108, 109, 125, 111, 112, 73, 125, 61, 62, 144, + 73, 143, 144, 128, 64, 65, 66, 143, 144, 544, + 70, 144, 547, 125, 118, 144, 648, 32, 143, 492, + 118, 118, 550, 663, 552, 553, 554, 555, 556, 121, + 122, 123, 144, 142, 125, 142, 127, 128, 129, 130, + 6, 132, 8, 134, 135, 136, 124, 646, 91, 127, + 494, 124, 142, 621, 127, 146, 147, 142, 690, 127, + 151, 152, 143, 144, 126, 141, 142, 143, 142, 131, + 125, 133, 137, 125, 142, 143, 142, 270, 394, 125, + 133, 274, 398, 145, 127, 125, 148, 149, 150, 144, + 125, 284, 144, 210, 73, 144, 125, 270, 144, 543, + 231, 274, 316, 270, 144, 142, 166, 167, 168, 169, + 270, 284, 428, 409, 274, 12, 133, 546, 584, 16, + 142, 32, 125, 214, 284, 133, 141, 142, 143, 247, + 142, 143, 700, 251, 586, 226, 227, 228, 229, 230, + 231, 144, 782, 125, 235, 124, 575, 576, 127, 578, + 579, 580, 581, 124, 125, 286, 788, 12, 142, 219, + 57, 16, 144, 143, 144, 693, 270, 702, 142, 125, + 274, 262, 270, 270, 142, 143, 274, 274, 142, 239, + 284, 125, 648, 706, 142, 143, 284, 284, 144, 124, + 226, 227, 228, 229, 230, 827, 125, 10, 11, 125, + 144, 125, 57, 771, 1042, 521, 1044, 142, 1046, 142, + 125, 1049, 1050, 1051, 142, 144, 409, 133, 144, 125, + 144, 118, 142, 142, 690, 316, 137, 138, 139, 144, + 141, 142, 143, 142, 142, 132, 409, 124, 144, 125, + 137, 332, 333, 127, 142, 848, 377, 378, 125, 409, + 142, 125, 787, 21, 22, 790, 791, 686, 144, 142, + 73, 74, 785, 118, 32, 127, 126, 144, 128, 360, + 144, 362, 363, 364, 365, 366, 127, 132, 91, 92, + 32, 94, 137, 127, 142, 376, 99, 142, 379, 380, + 143, 125, 721, 384, 425, 386, 142, 6, 73, 8, + 142, 32, 406, 394, 395, 409, 144, 398, 781, 146, + 85, 409, 409, 88, 137, 406, 91, 633, 124, 124, + 126, 126, 128, 128, 360, 143, 362, 363, 364, 365, + 366, 144, 107, 393, 143, 426, 142, 428, 127, 470, + 376, 1133, 73, 379, 380, 880, 10, 11, 12, 142, + 143, 144, 16, 415, 85, 124, 487, 88, 142, 133, + 91, 827, 124, 494, 126, 127, 128, 135, 136, 137, + 138, 139, 1029, 141, 142, 143, 107, 142, 126, 470, + 471, 144, 125, 135, 136, 137, 138, 139, 479, 141, + 142, 143, 134, 57, 485, 144, 124, 488, 126, 872, + 128, 492, 875, 32, 848, 496, 497, 498, 499, 500, + 501, 502, 543, 544, 144, 144, 547, 144, 1021, 10, + 11, 12, 513, 527, 144, 16, 144, 91, 32, 124, + 521, 126, 134, 128, 142, 143, 144, 144, 2, 10, + 11, 532, 134, 479, 92, 93, 94, 643, 142, 143, + 144, 144, 543, 544, 118, 144, 547, 144, 144, 550, + 144, 552, 553, 554, 555, 556, 57, 134, 132, 144, + 587, 588, 563, 137, 591, 592, 40, 41, 42, 43, + 44, 572, 1081, 47, 823, 144, 144, 137, 143, 145, + 594, 807, 583, 584, 708, 709, 594, 594, 783, 90, + 91, 144, 73, 74, 1039, 73, 135, 136, 137, 138, + 139, 124, 141, 142, 143, 606, 607, 125, 125, 610, + 91, 92, 613, 94, 1123, 643, 586, 118, 99, 125, + 621, 628, 650, 137, 138, 139, 142, 141, 142, 143, + 644, 132, 633, 126, 146, 125, 137, 142, 142, 127, + 641, 142, 142, 142, 645, 142, 127, 648, 675, 663, + 1217, 1218, 1219, 144, 57, 663, 663, 142, 137, 146, + 488, 702, 124, 127, 10, 10, 10, 1021, 496, 497, + 498, 499, 500, 501, 126, 134, 150, 125, 146, 1124, + 126, 137, 137, 1192, 145, 126, 126, 145, 126, 690, + 126, 144, 693, 137, 124, 142, 146, 142, 124, 700, + 142, 702, 125, 675, 532, 142, 125, 708, 709, 51, + 143, 53, 54, 55, 715, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 1303, 211, 80, 81, + 125, 215, 1309, 143, 1127, 128, 787, 128, 142, 790, + 791, 133, 142, 133, 46, 133, 98, 99, 133, 1142, + 1143, 1144, 125, 1208, 143, 142, 10, 4, 782, 145, + 771, 144, 114, 144, 782, 782, 68, 119, 606, 144, + 781, 142, 783, 1216, 144, 613, 787, 788, 80, 790, + 791, 798, 799, 800, 146, 269, 125, 146, 10, 126, + 142, 808, 10, 10, 126, 6, 807, 848, 100, 125, + 142, 144, 142, 641, 125, 146, 817, 1262, 110, 144, + 144, 1070, 1071, 1072, 1073, 1074, 827, 1076, 1211, 10, + 11, 145, 1215, 145, 144, 1030, 145, 1220, 146, 880, + 314, 145, 144, 870, 816, 144, 818, 144, 140, 50, + 142, 143, 142, 144, 328, 329, 144, 58, 133, 831, + 832, 833, 133, 835, 836, 837, 838, 68, 69, 70, + 133, 872, 142, 133, 875, 125, 144, 134, 79, 880, + 134, 1264, 134, 144, 85, 134, 144, 142, 144, 124, + 126, 183, 73, 74, 95, 10, 79, 80, 144, 144, + 101, 126, 126, 144, 11, 106, 1289, 145, 142, 142, + 91, 92, 386, 94, 144, 116, 142, 118, 99, 1302, + 142, 144, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, + 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, + 1189, 125, 143, 124, 51, 144, 53, 54, 55, 134, + 424, 1070, 1071, 1072, 1073, 1074, 51, 1076, 53, 54, + 55, 1085, 134, 437, 256, 134, 258, 259, 260, 10, + 11, 12, 134, 80, 81, 16, 144, 144, 10, 145, + 1021, 142, 1231, 984, 276, 80, 81, 142, 280, 142, + 142, 98, 99, 144, 144, 287, 126, 289, 1039, 707, + 474, 542, 255, 98, 99, 297, 298, 114, 10, 11, + 1123, 485, 119, 1024, 1081, 1192, 57, 643, 527, 114, + 1021, 644, 1021, 274, 119, 817, 848, 808, 1029, 1030, + 984, -1, 1281, 333, -1, 1042, -1, 1044, 1039, 1046, + -1, 333, 1049, 1050, 1051, -1, -1, 142, 1075, -1, + 91, -1, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, + 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, + 1189, 73, 74, -1, -1, -1, -1, 118, -1, -1, + -1, -1, -1, 1124, 1085, -1, -1, -1, -1, 91, + 92, 132, 94, -1, -1, 387, 137, 99, 572, -1, + -1, 142, -1, 1075, -1, -1, -1, -1, -1, -1, + -1, -1, 1231, -1, 297, 298, -1, -1, -1, -1, + -1, -1, 124, 1124, -1, -1, 1127, -1, -1, -1, + -1, -1, 1133, 16, 17, 18, 19, 20, 21, 22, + 432, 1142, 1143, 1144, -1, -1, 620, 621, -1, 32, + -1, -1, 626, -1, -1, -1, 17, 18, 19, 20, + 21, 22, 1281, 1190, -1, -1, -1, 1208, -1, -1, + -1, 32, -1, -1, -1, -1, 51, -1, 53, 54, + 55, -1, -1, -1, -1, 1157, 1158, 1159, 1160, 1161, + 1162, -1, -1, -1, -1, -1, -1, 671, 672, 673, + 674, 384, 676, -1, -1, 80, 81, 1208, -1, -1, + 1211, -1, -1, -1, 1215, -1, 1217, 1218, 1219, 1220, + -1, 1262, -1, 98, 99, -1, 700, -1, -1, 1256, + 1257, -1, 1259, 1260, 526, -1, 528, -1, -1, 114, + -1, 715, -1, 426, 119, -1, -1, 130, 131, 132, + 542, -1, 135, 136, 137, 138, 139, -1, 141, 142, + 143, 1262, -1, 1264, 10, 11, 1293, 1294, 1295, 1296, + 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, + 141, 142, 143, -1, -1, -1, -1, -1, 1289, -1, + 19, 20, 21, 22, -1, -1, -1, 771, -1, 773, + -1, 1302, 1303, 32, -1, 488, -1, -1, 1309, 19, + 20, 21, 22, 496, 497, 498, 499, 500, 501, -1, + -1, -1, 32, -1, -1, -1, -1, 73, 74, -1, + -1, -1, -1, 15, 16, 17, 18, 19, 20, 21, + 22, -1, -1, -1, -1, 91, 92, -1, 94, 532, + 32, -1, -1, 99, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 838, -1, -1, 550, -1, 552, + 553, 554, 555, 556, -1, 849, 850, 851, 852, 853, + 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, + 864, 865, 866, 867, 868, 869, -1, 871, -1, -1, + -1, -1, -1, -1, 133, 134, 135, 136, 137, 138, + 139, -1, 141, 142, 143, 707, -1, -1, -1, -1, + -1, -1, -1, 606, -1, 135, 136, 137, 138, 139, + 613, 141, 142, 143, -1, -1, -1, 3, 4, 5, + 6, -1, 8, 9, 10, 11, -1, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 641, 141, + 142, 143, -1, -1, 146, -1, -1, -1, -1, 15, + 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, + -1, 47, 48, -1, -1, 51, 32, 53, 54, 55, + 56, 57, 784, 59, 60, -1, -1, 63, 64, -1, + -1, 67, -1, -1, -1, -1, 72, 73, 74, 801, + 693, -1, 804, -1, 80, 81, -1, -1, -1, -1, + -1, 87, -1, 89, -1, 91, -1, -1, -1, -1, + 96, -1, 98, 99, 100, -1, -1, 103, 104, -1, + 1014, -1, 108, -1, -1, 111, 112, 113, 114, -1, + -1, 117, -1, 119, -1, 3, 4, 5, 6, -1, + 8, 9, 10, 11, -1, -1, 132, -1, -1, 135, + 136, 137, 10, 11, 140, -1, 142, 143, -1, -1, + -1, 147, -1, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, -1, 141, 142, 143, -1, 47, + 146, 10, 11, 51, -1, 53, 54, 55, -1, -1, + -1, 59, -1, 61, 62, 63, 64, 1091, -1, -1, + -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, + -1, -1, 80, 81, -1, 73, 74, -1, -1, 87, + -1, 89, -1, 91, -1, -1, -1, -1, 96, -1, + 98, 99, 100, 91, 92, 103, 94, -1, -1, 1133, + 108, 99, -1, 111, 73, 74, 114, -1, -1, -1, + -1, 119, -1, -1, -1, -1, 124, 86, -1, -1, + -1, -1, 91, 92, 132, 94, 124, 135, 136, 137, + 99, -1, 140, -1, 142, 143, -1, -1, -1, 147, + -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 1191, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, -1, + 1204, -1, -1, -1, -1, -1, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, -1, -1, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, -1, -1, -1, 85, + 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, -1, -1, -1, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, -1, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, -1, -1, -1, -1, -1, -1, + -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, -1, -1, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, -1, -1, -1, 85, 86, 87, -1, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, -1, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + -1, -1, -1, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, -1, 146, 147, 3, 4, 5, + 6, -1, 8, 9, 10, 11, -1, -1, 14, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, + 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, + -1, 47, 48, -1, -1, 51, 32, 53, 54, 55, + 56, 57, -1, 59, 60, -1, -1, 63, 64, -1, + -1, 67, -1, -1, -1, -1, 72, 73, 74, -1, + -1, -1, -1, -1, 80, 81, -1, -1, -1, -1, + -1, 87, -1, 89, -1, 91, -1, -1, -1, 95, + 96, -1, 98, 99, 100, -1, -1, 103, 104, -1, + -1, -1, 108, -1, -1, 111, 112, 113, 114, -1, + -1, 117, -1, 119, 3, 4, 5, 6, -1, 8, + 9, 10, 11, -1, -1, 14, 132, -1, -1, 135, + 136, -1, -1, -1, 140, -1, 142, -1, -1, -1, + -1, 147, -1, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, -1, 141, 142, 143, 47, 48, + 146, -1, 51, -1, 53, 54, 55, 56, 57, -1, + 59, 60, -1, -1, 63, 64, -1, -1, 67, -1, + -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, + -1, 80, 81, -1, -1, -1, -1, -1, 87, -1, + 89, -1, 91, -1, 10, 11, 95, 96, -1, 98, + 99, 100, -1, -1, 103, 104, -1, -1, -1, 108, + -1, -1, 111, 112, 113, 114, -1, -1, 117, -1, + 119, 3, 4, 5, 6, -1, 8, 9, 10, 11, + -1, -1, -1, 132, -1, -1, 135, 136, -1, -1, + 56, 140, -1, 142, -1, -1, -1, -1, 147, 17, + 18, 19, 20, 21, 22, -1, -1, 73, 74, -1, + -1, -1, -1, -1, 32, 47, -1, -1, -1, 51, + -1, 53, 54, 55, -1, 91, 92, 59, 94, -1, + -1, 63, 64, 99, -1, -1, -1, -1, 104, -1, + 72, 73, 74, -1, -1, -1, 112, 113, 80, 81, + 116, -1, -1, -1, -1, 87, -1, 89, -1, 91, + -1, -1, -1, -1, 96, -1, 98, 99, 100, -1, + -1, 103, -1, -1, -1, -1, 108, -1, -1, 111, + -1, -1, 114, 3, 4, 5, 6, 119, 8, 9, + 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, + 132, -1, -1, 135, 136, 137, -1, -1, 140, -1, + 142, 143, 144, 131, 132, 147, -1, 135, 136, 137, + 138, 139, -1, 141, 142, 143, -1, 47, -1, -1, + -1, 51, -1, 53, 54, 55, -1, -1, -1, 59, + -1, -1, -1, 63, 64, -1, -1, 10, 11, -1, + -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, + 80, 81, -1, -1, -1, -1, -1, 87, -1, 89, + -1, 91, -1, -1, -1, -1, 96, -1, 98, 99, + 100, -1, -1, 103, -1, -1, -1, -1, 108, 10, + 11, 111, -1, 56, 114, 3, 4, 5, 6, 119, + 8, 9, 10, 11, 124, -1, -1, -1, -1, -1, + 73, 74, 132, -1, -1, 135, 136, 137, -1, -1, + 140, -1, 142, 143, -1, -1, -1, 147, 91, 92, + 51, 94, 53, 54, 55, -1, 99, -1, -1, 47, + -1, 104, 63, 51, -1, 53, 54, 55, -1, 112, + 113, 59, -1, 74, -1, 63, 64, -1, -1, 80, + 81, -1, -1, -1, 72, 73, 74, -1, -1, -1, + -1, -1, 80, 81, -1, -1, -1, 98, 99, 87, + -1, 89, -1, 91, -1, -1, -1, -1, 96, -1, + 98, 99, 100, 114, -1, 103, 117, -1, 119, -1, + 108, -1, -1, 111, -1, -1, 114, 3, 4, 5, + 6, 119, 8, 9, 10, 11, -1, -1, 51, -1, + 53, 54, 55, -1, 132, -1, -1, 135, 136, 137, + 63, -1, 140, -1, 142, 143, 144, -1, -1, 147, + -1, -1, -1, -1, -1, -1, -1, 80, 81, -1, + -1, 47, -1, -1, -1, 51, -1, 53, 54, 55, + -1, -1, -1, 59, -1, 98, 99, 63, 64, -1, + -1, 10, 11, -1, -1, -1, 72, 73, 74, -1, + -1, 114, -1, -1, 80, 81, 119, -1, -1, -1, + -1, 87, -1, 89, -1, 91, -1, -1, -1, -1, + 96, -1, 98, 99, 100, -1, -1, 103, -1, 142, + -1, -1, 108, -1, -1, 111, -1, 56, 114, 3, + 4, 5, 6, 119, 8, 9, 10, 11, 124, -1, + -1, -1, -1, -1, 73, 74, 132, -1, -1, 135, + 136, 137, -1, -1, 140, -1, 142, 143, -1, -1, + -1, 147, 91, 92, 93, 94, -1, -1, -1, -1, + 99, -1, -1, 47, -1, 104, -1, 51, -1, 53, + 54, 55, -1, 112, 113, 59, -1, 116, -1, 63, + 64, -1, -1, 10, 11, -1, -1, -1, 72, 73, + 74, -1, -1, -1, -1, -1, 80, 81, -1, -1, + -1, -1, -1, 87, -1, 89, -1, 91, -1, -1, + -1, -1, 96, -1, 98, 99, 100, -1, -1, 103, + -1, -1, -1, -1, 108, -1, -1, 111, -1, 56, + 114, 3, 4, 5, 6, 119, 8, 9, 10, 11, + -1, -1, -1, -1, -1, -1, 73, 74, 132, -1, + -1, 135, 136, 137, -1, -1, 140, -1, 142, 143, + 144, -1, -1, 147, 91, 92, 51, 94, 53, 54, + 55, -1, 99, -1, -1, 47, -1, 104, -1, 51, + -1, 53, 54, 55, -1, 112, 113, 59, -1, 116, + -1, 63, 64, -1, -1, 80, 81, -1, -1, -1, + 72, 73, 74, -1, -1, -1, -1, -1, 80, 81, + -1, -1, -1, 98, 99, 87, -1, 89, -1, 91, + -1, -1, -1, -1, 96, -1, 98, 99, 100, 114, + -1, 103, -1, -1, 119, -1, 108, 10, 11, 111, + 21, 22, 114, 3, 4, 5, 6, 119, 8, 9, + 10, 32, -1, -1, -1, -1, -1, 142, -1, -1, + 132, -1, -1, 135, 136, 137, -1, -1, 140, -1, + 142, 143, -1, -1, -1, 147, -1, -1, 51, -1, + 53, 54, 55, 56, 57, -1, -1, 47, -1, -1, + 63, -1, -1, -1, -1, -1, -1, -1, -1, 59, + -1, 74, -1, -1, 64, -1, -1, 80, 81, -1, + -1, -1, 72, 73, -1, -1, -1, -1, -1, -1, + 0, -1, -1, -1, -1, 98, 99, -1, -1, 89, + -1, 91, -1, -1, -1, -1, 96, -1, -1, 112, + 100, 114, -1, 103, 117, -1, 119, -1, 108, -1, + -1, -1, -1, -1, 135, 136, 137, 138, 139, -1, + 141, 142, 143, -1, -1, -1, -1, -1, -1, 49, + 50, -1, 132, -1, -1, 135, 136, 137, 58, -1, + 140, -1, 142, 143, -1, -1, 66, 147, 68, 69, + 70, 71, -1, -1, -1, 75, -1, -1, -1, 79, + -1, -1, 82, 83, 84, 85, 86, -1, -1, -1, + -1, -1, 92, 93, 94, 95, -1, -1, -1, -1, + -1, 101, 102, -1, -1, 105, 106, -1, -1, -1, + 110, -1, -1, -1, -1, 115, 116, -1, 118, 6, + -1, -1, -1, -1, 10, 11, 126, -1, 15, 16, + 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, + -1, -1, -1, 143, -1, 32, -1, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, -1, + -1, -1, 48, -1, -1, 51, -1, 53, 54, 55, + 56, 57, -1, -1, 60, 62, -1, 63, -1, -1, + -1, 67, -1, -1, -1, -1, -1, -1, 74, -1, + -1, -1, -1, -1, 80, 81, -1, -1, -1, -1, + 87, -1, -1, -1, 90, -1, -1, -1, -1, -1, + -1, -1, 98, 99, -1, -1, -1, -1, 104, -1, + 10, 11, 10, 11, -1, -1, 112, 113, 114, -1, + -1, 117, -1, 119, -1, -1, -1, -1, 125, -1, + -1, 128, -1, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 140, 142, 143, -1, 48, -1, + 147, 51, -1, 53, 54, 55, 56, 57, -1, -1, + 60, -1, -1, 63, -1, -1, -1, 67, -1, -1, + -1, -1, -1, -1, 74, 73, 74, -1, -1, -1, + 80, 81, 10, 11, -1, -1, -1, -1, -1, -1, + 90, -1, -1, 91, 92, -1, 94, -1, 98, 99, + -1, 99, -1, -1, 104, -1, -1, -1, -1, -1, + -1, -1, 112, 113, 114, -1, -1, 117, -1, 119, + 48, -1, -1, 51, 124, 53, 54, 55, 56, 57, + 128, -1, 60, -1, 132, 63, -1, -1, -1, 67, + 140, -1, -1, -1, -1, -1, 74, -1, -1, -1, + -1, -1, 80, 81, -1, -1, -1, -1, -1, -1, + -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, + 98, 99, -1, -1, -1, -1, 104, -1, 51, -1, + 53, 54, 55, -1, 112, 113, 114, -1, -1, 117, + 63, 119, 15, 16, 17, 18, 19, 20, 21, 22, + -1, -1, -1, -1, -1, -1, -1, 80, 81, 32, + -1, -1, 140, 15, 16, 17, 18, 19, 20, 21, + 22, -1, -1, -1, -1, 98, 99, -1, -1, -1, + 32, 15, 16, 17, 18, 19, 20, 21, 22, -1, + -1, 114, -1, -1, -1, -1, 119, -1, 32, 15, + 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 32, 15, 16, 17, + 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 32, -1, 15, 16, 17, 18, + 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, + -1, -1, 125, 32, -1, -1, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, -1, 141, 142, + 143, 144, -1, -1, -1, -1, -1, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, -1, 141, + 142, 143, 144, -1, -1, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, -1, 141, 142, 143, + 144, -1, -1, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, -1, 141, 142, 143, 144, -1, + -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, -1, 141, 142, 143, 144, -1, -1, -1, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, -1, 141, 142, 143, 144, 15, 16, 17, 18, + 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 32, 15, 16, 17, 18, 19, 20, + 21, 22, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 32, -1, 15, 16, 17, 18, 19, 20, 21, + 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 32, 15, 16, 17, 18, 19, 20, 21, 22, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 32, 15, + 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 32, 15, 16, 17, + 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 32, -1, -1, -1, 127, -1, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, -1, 141, 142, 143, 126, -1, -1, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, + 141, 142, 143, 125, -1, -1, -1, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, -1, 141, + 142, 143, -1, 127, -1, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, -1, 141, 142, 143, + -1, -1, -1, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, -1, 141, 142, 143, -1, -1, + -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, -1, 141, 142, 143, 15, 16, 17, 18, + 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 32, 15, 16, 17, 18, 19, 20, + 21, 22, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 32, 16, 17, 18, 19, 20, 21, 22, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 32, -1, + -1, -1, -1, 17, 18, 19, 20, 21, 22, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 32, 17, + 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 32, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 17, 18, 19, 20, 21, 22, -1, -1, 127, -1, + 129, 130, 131, 132, -1, 32, 135, 136, 137, 138, + 139, -1, 141, 142, 143, -1, -1, -1, 129, 130, + 131, 132, -1, -1, 135, 136, 137, 138, 139, -1, + 141, 142, 143, -1, -1, -1, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, -1, 141, 142, 143, + 11, -1, -1, 14, -1, 16, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, -1, 141, 142, 143, + -1, -1, -1, -1, 132, 133, 134, 135, 136, 137, + 138, 139, -1, 141, 142, 143, -1, 48, -1, -1, + 51, -1, 53, 54, 55, 56, 57, -1, -1, 60, + -1, -1, 63, 130, 131, 132, 67, -1, 135, 136, + 137, 138, 139, 74, 141, 142, 143, -1, -1, 80, + 81, 17, 18, 19, 20, 21, 22, 10, 11, -1, + -1, -1, -1, -1, 95, -1, 32, 98, 99, -1, + -1, -1, -1, 104, 17, 18, 19, 20, 21, 22, + -1, 112, 113, 114, -1, -1, 117, -1, 119, 32, + 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, + -1, 132, -1, 56, -1, 32, 137, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, + -1, 94, -1, -1, -1, -1, 99, -1, -1, -1, + -1, 104, -1, -1, -1, -1, -1, -1, -1, 112, + 113, -1, -1, 116, -1, -1, -1, 133, 134, 135, + 136, 137, 138, 139, -1, 141, 142, 143, -1, 10, + 11, -1, -1, -1, -1, -1, -1, -1, -1, 132, + -1, -1, 135, 136, 137, 138, 139, -1, 141, 142, + 143, -1, -1, -1, -1, -1, -1, -1, 135, 136, + 137, 138, 139, -1, 141, 142, 143, 48, -1, -1, + 51, -1, 53, 54, 55, 56, -1, -1, -1, 60, + -1, -1, 63, -1, -1, -1, 67, -1, -1, -1, + -1, -1, -1, 74, -1, -1, -1, -1, -1, 80, + 81, -1, 11, -1, -1, 14, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 98, 99, -1, + -1, -1, -1, 104, -1, -1, -1, -1, -1, -1, + -1, 112, 113, 114, -1, -1, 117, -1, 119, 48, + -1, -1, 51, -1, 53, 54, 55, 56, 57, -1, + -1, 60, -1, -1, 63, -1, -1, -1, 67, -1, + -1, -1, -1, -1, -1, 74, -1, -1, -1, -1, + -1, 80, 81, -1, 11, -1, -1, 14, -1, -1, + 50, -1, -1, -1, -1, -1, 95, -1, 58, 98, + 99, -1, -1, -1, -1, 104, -1, -1, 68, 69, + 70, -1, -1, 112, 113, 114, -1, -1, 117, 79, + 119, 48, -1, -1, 51, 85, 53, 54, 55, 56, + 57, -1, -1, 60, -1, 95, 63, -1, -1, -1, + 67, 101, -1, -1, -1, 105, 106, 74, -1, -1, + -1, 11, -1, 80, 81, -1, 116, -1, 118, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 95, -1, + -1, 98, 99, 11, -1, -1, -1, 104, -1, -1, + -1, -1, -1, 143, -1, 112, 113, 114, 48, -1, + 117, 51, 119, 53, 54, 55, 56, 57, -1, -1, + 60, -1, -1, 63, -1, -1, -1, 67, -1, -1, + 48, -1, -1, 51, 74, 53, 54, 55, 56, 57, + 80, 81, 60, -1, -1, 63, -1, -1, -1, 67, + -1, -1, -1, -1, -1, 95, 74, -1, 98, 99, + 11, -1, 80, 81, 104, -1, -1, -1, -1, -1, + -1, -1, 112, 113, 114, -1, -1, 117, -1, 119, + 98, 99, -1, -1, -1, -1, 104, -1, -1, -1, + -1, -1, -1, -1, 112, 113, 114, 48, -1, 117, + 51, 119, 53, 54, 55, 56, 57, -1, -1, 60, + -1, -1, 63, -1, -1, 11, 67, -1, -1, -1, + -1, -1, -1, 74, -1, -1, -1, -1, -1, 80, + 81, -1, -1, -1, -1, -1, -1, 11, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 98, 99, -1, + -1, -1, 48, 104, -1, 51, -1, 53, 54, 55, + 56, 112, 113, 114, 60, -1, 117, 63, 119, -1, + -1, 67, -1, -1, 48, -1, -1, 51, 74, 53, + 54, 55, 56, 57, 80, 81, 60, -1, -1, 63, + -1, -1, 11, 67, -1, -1, -1, -1, -1, 95, + 74, -1, 98, 99, -1, -1, 80, 81, 104, -1, + -1, -1, -1, -1, 11, -1, 112, 113, 114, -1, + -1, 117, -1, 119, 98, 99, -1, -1, -1, 48, + 104, -1, 51, -1, 53, 54, 55, 56, 112, 113, + 114, 60, -1, 117, 63, 119, -1, -1, 67, -1, + -1, 48, -1, -1, 51, 74, 53, 54, 55, 56, + -1, 80, 81, 60, -1, -1, 63, -1, -1, -1, + 67, -1, -1, -1, -1, -1, -1, 74, -1, 98, + 99, -1, -1, 80, 81, 104, -1, -1, -1, -1, + -1, -1, -1, 112, 113, 114, -1, -1, 117, -1, + 119, 98, 99, -1, 49, 50, -1, 104, -1, -1, + -1, -1, -1, 58, -1, 112, 113, 114, -1, -1, + 117, 66, 119, 68, 69, 70, 71, -1, -1, -1, + 75, -1, -1, -1, 79, -1, -1, 82, 83, 84, + 85, 86, -1, -1, -1, -1, -1, 92, 93, 94, + 95, -1, -1, -1, -1, -1, 101, 102, 49, 50, + 105, 106, -1, -1, -1, 110, -1, 58, -1, -1, + 115, 116, -1, 118, -1, 66, -1, 68, 69, 70, + 71, 126, -1, -1, 75, -1, -1, -1, 79, -1, + -1, 82, 83, 84, 85, 86, -1, -1, 143, -1, + 145, 92, 93, 94, 95, -1, -1, -1, -1, -1, + 101, 102, 49, 50, 105, 106, -1, -1, -1, 110, + -1, 58, -1, -1, 115, 116, -1, 118, -1, 66, + -1, 68, 69, 70, 71, 126, -1, -1, 75, -1, + -1, -1, 79, -1, -1, 82, 83, 84, 85, 86, + -1, -1, 143, -1, 145, 92, 93, 94, 95, -1, + -1, -1, -1, -1, 101, 102, 49, 50, 105, 106, + -1, -1, -1, 110, -1, 58, -1, -1, 115, 116, + -1, 118, -1, 66, -1, 68, 69, 70, 71, 126, + -1, -1, 75, -1, -1, -1, 79, -1, -1, 82, + 83, 84, 85, 86, -1, -1, 143, -1, 145, 92, + 93, 94, 95, -1, -1, -1, -1, -1, 101, 102, + 49, 50, 105, 106, -1, -1, -1, 110, -1, 58, + -1, -1, 115, 116, -1, 118, -1, 66, -1, 68, + 69, 70, 71, 126, -1, -1, 75, -1, -1, -1, + 79, -1, -1, 82, 83, 84, 85, 86, -1, -1, + 143, -1, 145, 92, 93, 94, 95, -1, -1, -1, + -1, -1, 101, 102, 49, 50, 105, 106, -1, -1, + -1, 110, -1, 58, -1, -1, 115, 116, -1, 118, + -1, 66, -1, 68, 69, 70, 71, 126, -1, -1, + 75, -1, -1, -1, 79, -1, -1, 82, 83, 84, + 85, 86, -1, -1, 143, -1, 145, 92, 93, 94, + 95, -1, -1, -1, -1, -1, 101, 102, 49, 50, + 105, 106, -1, -1, -1, 110, -1, 58, -1, -1, + 115, 116, -1, 118, -1, 66, -1, 68, 69, 70, + 71, 126, -1, -1, 75, -1, -1, -1, 79, -1, + -1, 82, 83, 84, 85, 86, -1, -1, 143, -1, + 145, 92, 93, 94, 95, -1, -1, -1, -1, -1, + 101, 102, 49, 50, 105, 106, -1, -1, -1, 110, + -1, 58, -1, -1, 115, 116, -1, 118, -1, 66, + -1, 68, 69, 70, 71, 126, -1, -1, 75, -1, + -1, -1, 79, -1, -1, 82, 83, 84, 85, 86, + -1, -1, 143, -1, 145, 92, 93, 94, 95, -1, + -1, -1, -1, -1, 101, 102, 50, -1, 105, 106, + -1, -1, -1, 110, 58, -1, -1, -1, 115, 116, + 50, 118, -1, -1, 68, 69, 70, -1, 58, -1, + -1, -1, -1, -1, -1, 79, -1, -1, 68, 69, + 70, 85, 86, -1, -1, -1, 143, -1, -1, 79, + 50, 95, -1, -1, -1, 85, -1, 101, 58, -1, + -1, -1, 106, -1, -1, 95, -1, -1, 68, 69, + 70, 101, 116, -1, 118, -1, 106, -1, -1, 79, + -1, -1, -1, -1, -1, 85, 116, -1, 118, -1, + -1, -1, -1, -1, -1, 95, -1, -1, -1, 143, + -1, 101, -1, 133, -1, -1, 106, -1, -1, -1, + -1, -1, -1, 143, -1, -1, 116, -1, 118, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 143 +}; + + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_uint16 yystos[] = +{ + 0, 121, 122, 123, 149, 150, 256, 3, 4, 5, + 6, 8, 9, 10, 11, 47, 51, 53, 54, 55, + 59, 63, 64, 72, 73, 74, 80, 81, 87, 89, + 91, 96, 98, 99, 100, 103, 108, 111, 114, 119, + 132, 135, 136, 137, 140, 142, 143, 147, 246, 247, + 255, 11, 48, 51, 53, 54, 55, 56, 57, 60, + 63, 67, 74, 80, 81, 98, 99, 104, 112, 113, + 114, 117, 119, 210, 214, 215, 217, 223, 224, 228, + 229, 234, 235, 236, 237, 0, 49, 50, 58, 66, + 68, 69, 70, 71, 75, 79, 82, 83, 84, 85, + 86, 92, 93, 94, 95, 101, 102, 105, 106, 110, + 115, 116, 118, 126, 143, 153, 155, 156, 158, 161, + 162, 184, 230, 233, 256, 142, 142, 142, 142, 142, + 142, 133, 142, 133, 142, 142, 142, 11, 48, 60, + 112, 212, 228, 229, 234, 133, 142, 142, 142, 133, + 142, 142, 142, 246, 246, 246, 246, 246, 11, 51, + 53, 54, 55, 63, 74, 80, 81, 98, 99, 114, + 119, 214, 244, 246, 10, 11, 73, 74, 91, 92, + 94, 99, 128, 132, 250, 251, 253, 256, 246, 15, + 16, 17, 18, 19, 20, 21, 22, 32, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 141, + 142, 143, 6, 8, 210, 142, 56, 104, 63, 81, + 235, 235, 235, 253, 235, 12, 16, 57, 118, 132, + 137, 142, 208, 209, 256, 124, 10, 11, 91, 127, + 254, 10, 11, 91, 124, 253, 254, 79, 158, 158, + 158, 6, 158, 158, 127, 157, 86, 158, 142, 142, + 142, 158, 124, 253, 127, 127, 127, 158, 158, 142, + 158, 161, 185, 158, 158, 167, 86, 253, 158, 158, + 143, 10, 11, 48, 57, 60, 90, 112, 124, 140, + 172, 175, 211, 213, 215, 217, 223, 228, 229, 234, + 243, 244, 256, 214, 243, 243, 243, 243, 214, 243, + 214, 243, 243, 243, 142, 253, 142, 253, 253, 214, + 243, 243, 214, 214, 214, 246, 243, 243, 144, 125, + 144, 253, 146, 125, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 144, 244, 246, 209, 246, + 137, 12, 16, 57, 118, 132, 137, 208, 256, 208, + 209, 208, 209, 208, 208, 14, 16, 57, 95, 132, + 137, 194, 195, 204, 210, 256, 143, 226, 227, 256, + 11, 225, 235, 127, 216, 218, 158, 155, 124, 253, + 253, 253, 253, 150, 124, 246, 133, 10, 11, 57, + 175, 211, 213, 253, 126, 128, 159, 160, 253, 142, + 142, 10, 11, 213, 142, 57, 210, 253, 154, 253, + 124, 126, 127, 128, 200, 124, 126, 128, 201, 126, + 163, 253, 254, 253, 144, 144, 144, 144, 144, 144, + 134, 144, 134, 144, 144, 144, 246, 243, 134, 144, + 144, 144, 134, 144, 144, 144, 144, 246, 246, 57, + 142, 181, 256, 250, 127, 144, 146, 144, 208, 137, + 208, 208, 208, 208, 208, 143, 208, 95, 210, 204, + 208, 208, 144, 14, 125, 12, 16, 57, 118, 132, + 137, 142, 207, 254, 256, 242, 246, 256, 253, 145, + 225, 150, 73, 219, 256, 150, 124, 125, 125, 125, + 145, 231, 125, 144, 10, 11, 56, 57, 112, 186, + 187, 188, 189, 234, 256, 142, 213, 201, 168, 126, + 214, 146, 125, 142, 173, 12, 137, 174, 164, 246, + 210, 12, 16, 57, 118, 132, 137, 206, 254, 256, + 150, 142, 238, 239, 151, 152, 253, 61, 62, 238, + 61, 62, 124, 246, 12, 16, 57, 90, 118, 132, + 137, 142, 165, 190, 192, 254, 127, 142, 142, 144, + 144, 142, 142, 194, 32, 73, 85, 88, 91, 107, + 193, 256, 246, 208, 242, 144, 210, 207, 144, 144, + 181, 14, 204, 137, 207, 207, 207, 207, 207, 207, + 128, 143, 199, 256, 146, 125, 128, 145, 127, 220, + 221, 256, 145, 232, 10, 10, 10, 150, 255, 126, + 253, 189, 253, 134, 125, 207, 169, 170, 192, 126, + 146, 159, 3, 4, 5, 9, 10, 14, 47, 59, + 64, 72, 73, 87, 89, 91, 96, 100, 103, 108, + 111, 132, 135, 136, 140, 142, 147, 196, 197, 204, + 205, 248, 249, 255, 256, 194, 137, 190, 194, 166, + 192, 144, 206, 137, 206, 206, 206, 206, 206, 142, + 143, 145, 176, 145, 240, 256, 124, 125, 124, 142, + 126, 126, 145, 126, 126, 124, 202, 203, 246, 256, + 126, 137, 190, 190, 6, 15, 16, 17, 18, 19, + 20, 21, 22, 32, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 62, 87, 125, 128, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 142, 143, 147, 182, 190, 190, 190, 190, 127, + 142, 143, 193, 128, 199, 201, 225, 244, 244, 244, + 244, 144, 57, 212, 142, 124, 146, 142, 207, 199, + 142, 142, 193, 207, 144, 246, 242, 246, 92, 93, + 94, 112, 116, 222, 229, 252, 253, 124, 125, 150, + 125, 144, 125, 125, 145, 144, 128, 207, 128, 161, + 183, 184, 188, 128, 198, 256, 171, 192, 199, 201, + 158, 142, 133, 133, 212, 133, 142, 133, 142, 246, + 246, 246, 246, 214, 244, 246, 144, 14, 125, 15, + 16, 17, 18, 19, 20, 21, 22, 32, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 141, + 142, 143, 144, 190, 144, 144, 199, 201, 142, 206, + 179, 242, 194, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 67, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 85, 86, 87, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 146, 147, 241, 238, 152, + 243, 243, 202, 145, 125, 190, 10, 144, 146, 144, + 4, 191, 242, 246, 125, 144, 144, 144, 144, 181, + 212, 209, 144, 253, 238, 194, 199, 194, 194, 142, + 146, 125, 116, 252, 116, 252, 116, 252, 253, 92, + 93, 94, 253, 150, 222, 145, 10, 126, 10, 10, + 126, 214, 198, 214, 47, 59, 64, 96, 100, 103, + 132, 135, 136, 137, 140, 142, 147, 245, 247, 199, + 201, 125, 214, 214, 214, 142, 214, 214, 214, 214, + 246, 144, 144, 14, 205, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 144, 244, 246, 181, + 144, 142, 181, 125, 180, 194, 146, 144, 240, 145, + 145, 144, 145, 124, 246, 196, 146, 165, 193, 209, + 144, 145, 144, 144, 144, 194, 252, 252, 252, 252, + 252, 252, 145, 144, 125, 144, 144, 142, 133, 133, + 133, 142, 133, 245, 245, 245, 245, 245, 214, 244, + 245, 15, 16, 17, 18, 19, 20, 21, 22, 32, + 129, 130, 131, 132, 135, 136, 137, 138, 139, 141, + 142, 143, 125, 170, 144, 134, 134, 243, 134, 144, + 134, 144, 144, 246, 127, 144, 146, 142, 177, 166, + 194, 144, 181, 145, 202, 144, 124, 181, 181, 181, + 144, 126, 10, 126, 126, 214, 214, 214, 214, 214, + 214, 144, 144, 245, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 245, 245, 144, 244, 246, 171, 142, 142, 144, 142, + 142, 246, 178, 194, 144, 181, 145, 181, 238, 193, + 193, 193, 181, 125, 144, 134, 134, 134, 144, 134, + 245, 127, 144, 146, 244, 244, 244, 244, 194, 144, + 181, 145, 10, 142, 142, 142, 142, 245, 144, 144, + 144, 144, 144, 181, 144, 244, 244, 244, 244, 181, + 193, 126, 144, 144, 144, 144, 193 +}; + + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { 0, 148, 149, 149, 149, 150, 150, 150, 151, 151, @@ -1368,10 +2606,11 @@ static const yytype_uint16 yyr1[] = 218, 217, 219, 219, 220, 220, 221, 221, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 223, 224, 224, 224, 224, 225, 225, 226, 226, 226, 227, 227, - 227, 228, 229, 229, 229, 231, 230, 232, 230, 230, - 230, 233, 233, 233, 234, 234, 234, 235, 235, 235, + 227, 228, 228, 228, 229, 229, 229, 231, 230, 232, + 230, 230, 230, 233, 233, 233, 234, 234, 234, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 236, 236, 236, 237, 239, 238, 240, 240, 241, + 235, 235, 235, 236, 236, 236, 237, 239, 238, 240, + 240, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, @@ -1383,29 +2622,29 @@ static const yytype_uint16 yyr1[] = 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 242, 242, 243, 243, 244, 244, 245, + 241, 241, 241, 241, 241, 242, 242, 243, 243, 244, + 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, + 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, + 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, - 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, - 250, 251, 251, 251, 251, 252, 252, 252, 253, 253, - 253, 253, 254, 254, 254, 255, 255, 255, 255, 256 + 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, + 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, + 250, 250, 250, 251, 251, 251, 251, 252, 252, 252, + 253, 253, 253, 253, 253, 253, 253, 253, 254, 254, + 254, 255, 255, 255, 255, 256 }; -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ + /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 2, 2, 2, 1, 2, 2, 1, 3, @@ -1438,12 +2677,13 @@ static const yytype_uint8 yyr2[] = 1, 1, 2, 4, 2, 4, 1, 1, 1, 2, 2, 2, 4, 1, 1, 1, 2, 3, 0, 5, 0, 8, 1, 1, 1, 1, 2, 3, 1, 2, - 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, - 2, 3, 1, 1, 1, 1, 3, 5, 1, 2, - 4, 1, 1, 1, 1, 0, 6, 0, 7, 4, - 5, 3, 5, 4, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, - 2, 1, 1, 2, 1, 0, 2, 1, 2, 1, + 2, 2, 3, 3, 3, 3, 3, 3, 4, 3, + 1, 4, 2, 1, 1, 1, 3, 5, 1, 2, + 4, 1, 2, 2, 1, 1, 1, 0, 6, 0, + 7, 4, 5, 3, 5, 4, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 2, 1, 1, 2, 1, 0, 2, 1, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1455,1578 +2695,38 @@ 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, 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, 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, 2, 5, 4, - 4, 2, 2, 2, 2, 2, 2, 3, 3, 3, + 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, + 3, 1, 4, 7, 7, 7, 7, 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, 3, 3, 5, 4, 4, 3, 3, - 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 8, 11, 1, 4, 7, 7, 7, - 7, 4, 4, 2, 5, 4, 4, 2, 2, 2, - 2, 2, 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, 2, + 5, 4, 4, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 5, 4, 4, 3, 3, 3, 3, 1, 1, 1, + 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, 1, 4, 7, + 7, 7, 7, 4, 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, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 3, 1, 1, 2, 1, 1, 2, 2, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 2, 0 + 1, 1, 3, 1, 1, 2, 1, 1, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 0 }; -/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. - Performed when YYTABLE doesn't specify something else to do. Zero - means the default is an error. */ -static const yytype_uint16 yydefact[] = -{ - 0, 669, 0, 0, 0, 669, 5, 586, 582, 585, - 665, 666, 588, 589, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 584, 590, 0, 0, 0, 0, 592, - 591, 0, 0, 0, 0, 0, 583, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 669, 0, 3, 526, - 587, 257, 265, 337, 338, 340, 341, 322, 0, 0, - 352, 321, 351, 346, 343, 342, 345, 323, 0, 324, - 344, 354, 339, 669, 4, 259, 260, 261, 0, 312, - 0, 256, 334, 335, 336, 1, 21, 669, 669, 22, - 669, 669, 669, 0, 34, 669, 0, 0, 0, 669, - 0, 0, 0, 0, 669, 669, 0, 669, 669, 669, - 0, 669, 669, 6, 0, 16, 7, 19, 0, 14, - 55, 15, 17, 18, 36, 669, 0, 669, 669, 669, - 669, 0, 669, 0, 669, 669, 669, 278, 283, 0, - 0, 547, 0, 0, 277, 0, 669, 669, 0, 0, - 0, 669, 669, 556, 554, 553, 555, 552, 257, 337, - 338, 340, 341, 352, 351, 346, 343, 342, 345, 344, - 339, 0, 0, 487, 658, 659, 660, 661, 652, 651, - 0, 649, 654, 648, 551, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 667, 668, - 669, 0, 353, 343, 348, 347, 350, 258, 349, 0, - 669, 669, 669, 669, 669, 669, 0, 286, 244, 669, - 662, 663, 664, 0, 310, 658, 659, 661, 288, 262, - 290, 669, 47, 46, 48, 669, 37, 42, 23, 669, - 0, 40, 0, 0, 0, 45, 669, 0, 26, 25, - 24, 43, 39, 0, 0, 142, 0, 49, 0, 20, - 0, 0, 41, 44, 0, 285, 267, 276, 0, 0, - 0, 0, 12, 0, 0, 0, 284, 59, 269, 270, - 271, 312, 0, 266, 0, 486, 485, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 279, - 669, 281, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 581, 653, 669, 669, 565, 566, - 567, 568, 569, 570, 573, 574, 580, 0, 562, 563, - 564, 571, 572, 560, 561, 557, 558, 559, 579, 578, - 0, 0, 287, 0, 669, 0, 669, 669, 669, 669, - 669, 249, 236, 0, 245, 0, 246, 248, 247, 175, - 669, 0, 0, 669, 669, 0, 176, 179, 669, 174, - 669, 318, 0, 315, 314, 311, 313, 0, 669, 669, - 38, 35, 669, 0, 0, 0, 0, 669, 325, 0, - 669, 285, 267, 0, 0, 284, 67, 0, 331, 0, - 0, 51, 53, 76, 78, 285, 267, 61, 0, 0, - 669, 268, 669, 0, 355, 192, 0, 0, 57, 355, - 197, 0, 58, 56, 0, 274, 310, 272, 532, 546, - 538, 534, 536, 537, 0, 544, 0, 543, 533, 540, - 0, 0, 0, 539, 542, 545, 0, 549, 550, 541, - 535, 527, 488, 92, 669, 669, 91, 650, 0, 577, - 576, 264, 250, 669, 241, 237, 238, 240, 239, 669, - 0, 0, 669, 213, 0, 0, 669, 178, 0, 0, - 669, 669, 669, 669, 669, 669, 669, 226, 225, 0, - 484, 483, 319, 308, 263, 669, 293, 669, 292, 669, - 327, 0, 0, 0, 329, 669, 0, 0, 154, 155, - 0, 0, 0, 0, 144, 145, 669, 153, 143, 0, - 69, 71, 0, 333, 0, 0, 0, 669, 669, 0, - 0, 669, 0, 0, 669, 0, 669, 669, 669, 669, - 669, 0, 217, 216, 669, 80, 0, 669, 0, 8, - 0, 0, 0, 0, 0, 0, 669, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 60, 669, 669, 156, - 0, 0, 0, 282, 548, 0, 0, 0, 0, 94, - 96, 93, 95, 0, 0, 171, 575, 242, 0, 0, - 669, 669, 0, 0, 669, 177, 180, 669, 231, 227, - 228, 230, 229, 0, 0, 669, 210, 190, 251, 316, - 0, 289, 0, 0, 295, 294, 330, 669, 0, 0, - 0, 669, 0, 33, 147, 669, 149, 669, 0, 669, - 0, 68, 669, 332, 669, 52, 641, 637, 640, 643, - 644, 182, 0, 0, 0, 639, 645, 0, 647, 646, - 0, 0, 0, 638, 0, 0, 0, 0, 0, 0, - 0, 0, 183, 214, 186, 215, 595, 642, 181, 0, - 0, 0, 0, 62, 669, 275, 0, 669, 222, 218, - 219, 221, 220, 86, 669, 13, 669, 193, 356, 357, - 355, 0, 669, 669, 195, 196, 198, 200, 201, 669, - 0, 204, 206, 203, 199, 0, 163, 159, 0, 109, - 110, 111, 112, 113, 114, 117, 118, 133, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 137, 136, 120, 119, 106, 108, 107, 115, 116, 104, - 105, 101, 102, 103, 100, 0, 0, 99, 157, 160, - 162, 161, 0, 0, 167, 669, 169, 0, 0, 63, - 273, 0, 0, 0, 0, 669, 0, 669, 0, 355, - 243, 669, 669, 211, 669, 669, 252, 232, 235, 191, - 0, 320, 0, 0, 0, 0, 0, 296, 0, 298, - 655, 669, 0, 669, 0, 0, 0, 0, 326, 0, - 0, 669, 0, 138, 141, 139, 146, 0, 151, 188, - 70, 669, 0, 72, 50, 0, 0, 0, 603, 0, - 0, 0, 0, 611, 610, 609, 608, 0, 0, 607, - 54, 185, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 669, 0, 0, 669, - 0, 65, 88, 223, 669, 0, 0, 359, 360, 364, - 361, 368, 362, 363, 365, 366, 367, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 434, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 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, 669, 476, - 477, 478, 469, 481, 465, 466, 464, 471, 472, 460, - 461, 462, 463, 470, 468, 475, 473, 479, 474, 480, - 467, 358, 0, 9, 0, 0, 0, 202, 205, 164, - 158, 135, 134, 166, 170, 669, 0, 191, 0, 530, - 529, 531, 528, 669, 669, 172, 97, 0, 0, 0, - 212, 0, 0, 669, 233, 317, 0, 301, 0, 300, - 0, 299, 657, 0, 0, 0, 656, 669, 297, 328, - 0, 27, 0, 0, 32, 148, 152, 150, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 189, 489, 0, 74, 0, 0, 0, 0, 669, - 0, 0, 0, 0, 0, 0, 636, 184, 187, 620, - 621, 622, 623, 624, 625, 628, 629, 635, 0, 617, - 618, 619, 626, 627, 615, 616, 612, 613, 614, 634, - 633, 0, 0, 77, 0, 82, 79, 0, 669, 0, - 224, 669, 0, 194, 11, 10, 207, 669, 208, 0, - 165, 64, 0, 173, 98, 593, 669, 669, 669, 0, - 307, 306, 305, 304, 303, 302, 291, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 502, 500, 499, - 501, 498, 0, 0, 497, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 73, 602, 0, - 0, 0, 0, 601, 0, 605, 606, 596, 0, 632, - 631, 84, 669, 66, 0, 669, 81, 482, 0, 669, - 355, 669, 669, 669, 669, 28, 0, 29, 31, 0, - 0, 0, 0, 0, 0, 0, 525, 511, 512, 513, - 514, 515, 516, 517, 518, 524, 0, 508, 509, 510, - 506, 507, 503, 504, 505, 523, 522, 0, 0, 75, - 0, 0, 604, 0, 0, 630, 669, 0, 669, 87, - 209, 168, 0, 255, 254, 253, 234, 0, 496, 0, - 0, 0, 495, 0, 490, 0, 521, 520, 0, 0, - 0, 0, 0, 669, 89, 594, 0, 0, 0, 0, - 0, 519, 599, 598, 600, 597, 669, 669, 0, 0, - 0, 0, 0, 669, 83, 30, 493, 492, 494, 491, - 85 -}; -/* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int16 yydefgoto[] = -{ - -1, 4, 5, 558, 559, 115, 422, 116, 117, 249, - 118, 410, 411, 119, 120, 434, 542, 576, 683, 269, - 532, 640, 641, 820, 284, 538, 541, 285, 696, 1202, - 1256, 874, 1118, 465, 758, 814, 121, 266, 523, 524, - 525, 526, 577, 1015, 578, 594, 375, 376, 671, 672, - 818, 616, 428, 432, 710, 711, 377, 674, 551, 496, - 226, 227, 73, 405, 141, 287, 74, 75, 388, 76, - 389, 507, 623, 624, 797, 77, 78, 385, 381, 382, - 79, 80, 122, 515, 627, 123, 81, 82, 83, 84, - 556, 557, 698, 1001, 499, 294, 295, 1071, 173, 49, - 675, 676, 180, 181, 799, 800, 579, 50, 124 -}; +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -#define YYPACT_NINF -755 -static const yytype_int16 yypact[] = -{ - 365, -755, 2777, 4408, 50, 2969, -755, -755, -755, -755, - -755, -755, -755, -755, -61, -39, 6, 23, 53, 63, - -34, 93, 10, -755, -755, 98, 102, 104, 4607, -755, - -755, 78, 114, 134, 141, 135, -755, 166, 182, 192, - 2777, 2777, 2777, 2777, 2777, 1416, 84, 2777, 3633, -755, - 117, -755, -755, -755, -755, -755, -755, -755, 4629, 195, - -755, -755, -755, -755, 2652, 2740, 2740, -755, 382, -755, - 2740, -755, -755, 185, -755, -755, -755, -755, 262, 126, - 69, -755, -755, -755, -755, -755, -755, 5156, 5156, -755, - 5156, 359, 5156, 247, -755, 5112, 218, 248, 258, 5156, - 290, 275, 279, 288, 5156, 5156, 299, 5126, 5156, 5156, - 360, 5156, 5156, -755, 302, -755, -755, -755, 3179, -755, - -755, -755, -755, -755, -755, 2777, 4408, 2777, 2777, 2777, - 2777, 4408, 2777, 4408, 2777, 2777, 2777, -755, -755, 311, - 382, 314, 382, 382, -755, 4408, 2777, 2777, 4408, 4408, - 1416, 2777, 2777, 90, 90, 90, 90, 90, -61, 6, - 23, 53, 63, 93, 98, 102, 2119, 2292, 2455, 2540, - 192, 330, -60, 3633, -755, -755, -755, -755, -755, 382, - 333, 373, -755, -755, 90, 2777, 2777, 2777, 2777, 2777, - 2777, 2777, 2777, 2777, 2777, 2777, 2777, 2777, 2777, 2777, - 2777, 2777, 2777, 2777, 2777, 2777, 2217, 2777, -755, -755, - 185, 2777, -755, 2740, -755, -755, -755, -755, -755, 347, - 31, 185, 185, 31, 31, 3948, 356, -755, 366, -755, - -755, -755, -755, 1119, 388, 17, 45, 154, -755, -755, - -755, 5156, -755, -755, -755, 5156, -755, -755, -755, 5059, - 294, -755, 382, 382, 382, -755, -755, 399, -755, -755, - -755, -755, -755, 2777, 3083, -755, 397, -755, 3251, -755, - 382, 115, -755, -755, 382, 226, 384, -755, 4175, 396, - 4475, 382, -755, 382, 393, 238, 398, -755, -755, -755, - -755, 219, 69, -755, 395, 416, -755, 400, 406, 407, - 409, 417, 429, 428, 440, 431, 438, 439, 2777, -755, - 2777, -755, -755, 454, 448, 449, 451, 462, 458, 3356, - 460, 461, 2777, 2777, -755, -755, 64, 84, 3815, 3835, - 946, 946, 486, 486, 206, 206, -755, 3449, 3851, 3899, - 4036, 486, 486, 121, 121, 90, 90, 90, -755, -755, - -47, 1299, -755, 3377, 31, 473, 31, 31, 31, 31, - 31, 468, -755, 356, -755, 356, -755, 468, 468, -755, - 31, 4530, 4386, 31, 31, 469, 27, -755, 1148, -755, - 2777, 382, 467, -755, -755, -755, -755, 1119, -755, 543, - -755, -755, -755, 495, 492, 505, 506, 4681, -755, 1318, - 2876, 403, 478, 4175, 238, -755, -755, 507, -755, 4408, - 489, 511, 498, -755, 34, -755, -755, -755, 2777, 4629, - 500, -755, -755, 502, -755, -755, 382, 15, -755, -755, - -755, 2105, -755, -755, 786, -755, 527, -755, -755, -755, - -755, -755, -755, -755, 514, -755, 515, -755, -755, -755, - 3395, 517, 520, -755, -755, -755, 522, -755, -755, -755, - -755, 90, 3633, -755, 4247, 672, -755, -755, 2777, -755, - -755, -755, 468, 31, 468, 468, 468, 468, 468, 2777, - -4, 4629, 1148, -755, 12, 108, 608, -755, 4319, 529, - 1148, 1148, 1148, 1148, 1148, 1148, -45, -755, -755, 521, - 3633, -755, -12, -755, 544, 4735, -755, 546, -755, 4789, - -755, 665, 667, 669, -755, -755, 315, 556, -755, -755, - 382, 2204, 382, 550, 560, -755, 1148, -755, -755, 34, - -755, -755, 786, -755, 561, 542, 382, 1533, 4247, 552, - 786, 4247, 786, 3413, 500, 553, 500, 500, 500, 500, - 500, 293, -755, -755, 4843, -755, 547, -755, 334, -755, - -68, 568, 570, 562, 579, 583, 2329, 3578, 573, 786, - 786, 3082, 786, 786, 786, 786, -755, 186, 436, -755, - 1119, 2777, 2777, -755, -755, 2777, 2777, 588, 4552, -755, - -755, -755, -755, 592, 612, -755, 3633, 468, 593, 596, - 1148, -45, 599, 600, 672, -755, -755, 1148, 603, 603, - 603, 603, 603, 306, 2777, 2777, -755, -755, 604, -755, - 2777, -755, 2386, 624, 629, -755, -755, -755, -43, 630, - 633, 4897, 36, -755, 621, 1148, 631, 4286, 2876, -13, - 786, -755, 436, -755, 5156, -755, -755, -755, -755, -755, - -755, -755, 619, 632, 635, -755, -755, 4607, -755, -755, - 637, 646, 638, -755, 648, 2777, 2777, 2777, 2777, 1416, - 2777, 622, 57, -755, -755, 3651, -755, 117, -755, 628, - 786, 361, 647, -755, 436, -755, 324, 500, 649, 649, - 649, 649, 649, -755, 2777, -755, 4247, -755, 1843, -755, - -755, 382, 2777, 2777, -755, -755, -755, -755, -755, 2329, - 654, 650, 3633, -755, -755, 786, 328, 328, 763, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, 659, 658, -755, -755, 328, - 328, 328, 391, 801, -755, 2777, -755, 2105, 681, -755, - 544, 39, 66, 123, 149, 608, 4607, 185, 41, -755, - -755, 4247, -45, -755, 4247, 4247, -755, 603, 666, 3633, - 668, 3597, 587, 783, 897, 382, 493, -755, 382, -755, - -755, -755, 2386, 4951, 808, 695, 812, 814, -755, 699, - 4408, -13, 4408, -755, -755, -755, -755, 2889, -755, -755, - -755, 436, 701, -755, -755, 4408, 4408, 4408, 687, 4408, - 4408, 4408, 1416, 90, 90, 90, 90, 686, 152, 90, - -755, -755, 1988, 2777, 2777, 2777, 2777, 2777, 2777, 2777, - 2777, 2777, 2777, 2777, 2777, 2777, 2777, 2777, 2777, 2777, - 2777, 2777, 2777, 2777, 2441, 2777, 608, 465, 689, 608, - 707, -755, -755, 649, 4247, 690, 691, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, -755, -755, -755, -755, -755, -755, -755, -755, - -755, -755, 696, -755, 697, 702, 700, -755, 2553, 328, - -755, -755, -755, -755, -755, 1533, 704, 3578, 786, -755, - -755, -755, -755, 672, 185, -755, -755, 703, 716, 708, - -755, 718, 719, 4247, -755, -755, 1030, -755, 1030, -755, - 1030, -755, -755, 1030, 1030, 1030, -755, 5005, -755, -755, - 720, -755, 163, 722, -755, -755, -755, -755, 727, 737, - 742, 745, 743, 753, 2889, 2889, 2889, 2889, 2889, 1416, - 2889, 3798, -755, 765, -755, 786, 744, 757, 758, 2777, - 759, 750, 764, 756, 3431, 2777, -755, -755, -755, 3815, - 3835, 946, 946, 486, 486, 206, 206, -755, 3615, 3851, - 3899, 4036, 486, 486, 121, 121, 90, 90, 90, -755, - -755, 236, 1553, 325, 760, -755, 325, 786, 4247, 761, - -755, 608, 1698, -755, -755, -755, -755, 2329, 3633, 767, - -755, -755, 779, -755, -755, -755, 608, 608, 608, 768, - -755, -755, -755, -755, -755, -755, -755, 787, 899, 788, - 790, 4408, 4408, 4408, 4408, 4408, 4408, 241, 241, 241, - 241, 241, 773, 250, 241, 2889, 2889, 2889, 2889, 2889, - 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, - 2889, 2889, 2889, 2889, 2665, 2777, 786, -755, -755, 777, - 778, 780, 784, -755, 785, -755, -755, 90, 2777, -755, - -755, -755, 4247, -755, 781, 608, 325, -755, 789, 608, - -755, 672, 672, 672, 608, -755, 797, -755, -755, 796, - 798, 807, 809, 806, 818, 2889, -755, 1224, 3882, 3244, - 3244, 2868, 2868, 510, 510, -755, 3669, 4052, 4069, 4078, - 674, 674, 241, 241, 241, -755, -755, 251, 2008, -755, - 2777, 2777, -755, 2777, 2777, 3633, 4247, 810, 608, 325, - -755, 325, 811, -755, -755, -755, 325, 919, -755, 800, - 816, 817, -755, 820, 241, 2889, -755, -755, 278, 282, - 286, 287, 825, 608, 325, -755, 827, 2777, 2777, 2777, - 2777, 3798, -755, -755, -755, -755, 608, 672, 804, 295, - 317, 318, 332, 672, -755, -755, -755, -755, -755, -755, - -755 -}; +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab -/* YYPGOTO[NTERM-NUM]. */ -static const yytype_int16 yypgoto[] = -{ - -755, -755, -230, -755, 259, -755, -755, 723, -755, -755, - 207, 437, -755, -105, -755, -755, -755, -42, -142, -755, - -755, -755, -96, -206, -755, -755, -755, 713, -755, -755, - -755, -755, -755, -386, -755, -755, 345, -755, -755, -755, - 346, 464, -465, -755, -523, -541, -449, -755, -32, -755, - 175, -546, -755, -397, -693, -755, -341, 145, -480, -433, - 795, -197, -41, -98, -551, -166, 28, -70, -755, -65, - -755, -755, -755, -755, 188, -64, -755, -354, -755, -755, - 2, -7, -755, -755, -755, -755, 1, 21, -755, -755, - -428, -755, 13, -755, -445, -124, -27, 233, 526, -119, - -755, -755, 670, -755, -754, 821, 389, -502, -1 -}; - -/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule which - number is the opposite. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -665 -static const yytype_int16 yytable[] = -{ - 6, 563, 265, 298, 299, 300, 301, 531, 303, 642, - 305, 306, 307, 352, 632, 587, 1006, 210, 172, 684, - 286, 143, 314, 315, 364, 366, 397, 320, 321, 144, - 142, 483, 768, 504, 598, 677, 766, 777, 1037, 1039, - 1041, 487, 208, 355, 209, 183, 539, 356, 288, 601, - 85, 174, 175, 289, 290, 783, 702, 608, 609, 610, - 611, 612, 613, 786, 686, 323, 688, 689, 690, 691, - 692, 841, 228, 171, 703, 681, 561, 562, 323, 235, - 236, 125, 804, 614, 324, 214, 215, 216, 357, 679, - -662, 218, 682, 639, 174, 175, 822, 469, 615, 131, - 604, 805, 406, 126, 716, 717, 828, 759, 760, 761, - 762, 292, 417, 619, 176, 817, 620, 821, -663, 293, - 291, 463, 193, 208, 296, 209, 296, 296, 296, 296, - 615, 296, 177, 296, 296, 296, 230, 231, 870, 479, - 599, -662, 176, 133, -662, 296, 296, 606, 127, 358, - 296, 296, 488, 193, 297, 479, 602, 176, 505, 302, - 237, 304, 509, 359, 323, 128, 286, 782, 360, -663, - 790, 540, -663, 313, 787, 177, 316, 317, 318, 350, - 809, 769, 842, 1019, 378, 1026, 451, 214, 215, 216, - 218, 323, 554, 238, 288, 129, 673, 219, 288, 289, - 290, 220, 811, 289, 290, 130, 464, 873, 288, 228, - 1020, 145, 178, 289, 290, 867, 179, 232, 588, 362, - 228, 228, 362, 362, 379, 1024, 770, -664, 383, 235, - 236, 205, 206, 207, 214, 132, 1030, 530, 193, 420, - 134, 408, 221, 409, 135, 823, 136, 876, 323, 875, - 1009, 479, 603, 233, 386, 6, 146, 292, 202, 203, - 204, 292, 205, 206, 207, 293, 291, 1021, 149, 293, - 291, 292, 1002, 1173, 323, 1073, 147, 323, -664, 293, - 291, -664, 1140, 148, 1141, 631, 1142, 871, 1148, 1143, - 1144, 1145, 176, 1022, 242, 243, 1086, 244, 246, 247, - 174, 175, 251, 222, 174, 175, 255, 1149, 150, 296, - 237, 261, 262, 763, 264, 267, 268, 223, 272, 273, - 1016, 10, 224, 11, 151, 466, 183, 225, 764, 765, - 482, 378, 1029, 288, 152, 1031, 1032, 211, 289, 290, - 677, 200, 201, 202, 203, 204, 233, 205, 206, 207, - -90, 1028, -90, 362, -90, 362, 362, 362, 362, 362, - 252, 323, 429, 176, 430, 245, 431, 176, 413, 362, - 174, 175, 362, 362, 248, 323, 323, 498, 544, 501, - 1199, 177, 1183, 1184, 1185, 177, 229, 6, 508, 1023, - 253, 6, 174, 175, 1226, 1276, 292, 803, 589, 528, - 254, 527, 258, 323, 293, 291, 259, 323, 386, 87, - 590, 323, 323, 591, 256, 260, 592, 88, 392, 553, - 323, 6, 1292, 378, 1074, 1119, 1293, 90, 91, 92, - 1294, 1295, 593, 176, 1208, 693, 694, 534, 241, 1306, - 600, 263, 323, 323, 99, 274, 270, 378, 251, 615, - 788, 177, 390, 308, 104, 176, 310, 323, 700, 701, - 105, 1307, 1308, 379, 595, 108, 872, 694, 234, 240, - 764, 765, 362, 177, 322, 111, 1309, 112, 501, 326, - 1113, 498, 1132, 1116, 354, 466, 1, 2, 3, 498, - 498, 498, 498, 498, 498, 617, 378, 378, 327, 380, - 378, 673, 114, 764, 765, 868, 625, 191, 192, -236, - 230, 231, 545, 677, 6, 387, 546, 424, 193, 425, - 426, 427, 527, 398, 433, 498, 414, -90, 48, -90, - 400, -90, 813, 764, 765, 1013, 678, 379, 418, 438, - 379, 323, 1173, 553, 439, 553, 553, 553, 553, 553, - 440, 441, 642, 442, 771, 772, 699, 547, 773, 774, - 429, 443, 430, 444, 767, 713, 153, 154, 155, 156, - 157, 1047, 445, 184, 446, 447, 595, 617, 1004, 1005, - 1025, 143, 448, 449, 1139, 1043, 1044, 1045, 452, 144, - 142, 232, 453, 454, 684, 455, 456, 174, 175, 498, - 617, 386, 457, 595, 459, 460, 498, 764, 765, 1114, - 473, 479, 503, 486, 501, 798, 506, 511, 548, 510, - 529, 200, 201, 202, 203, 204, 6, 205, 206, 207, - 512, 513, 549, 533, 498, 535, 536, 550, 819, 527, - 537, 617, 838, 57, 555, 1178, 1179, 1180, 1181, 1182, - 143, 1183, 1184, 1185, 580, 378, 581, 582, 144, 142, - 176, 584, 585, 821, 586, 463, 607, 618, -309, 1204, - 1263, 1264, 1265, 622, 673, 628, 319, 629, 177, 630, - 436, 240, 633, 617, 637, 638, 553, 643, 644, 680, - 687, 67, 697, 501, 704, 379, 705, 837, 1072, 795, - 69, 296, 296, 1036, 588, 707, 1173, 706, 713, 708, - 715, 328, 329, 330, 331, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 348, 775, 351, 778, 1206, 779, 353, 781, 780, - 378, 784, 785, 378, 378, 589, 615, -243, 801, 810, - 1211, 1212, 1213, 1257, 802, 806, 1304, 590, 807, 812, - 591, 825, 1310, 592, 501, 826, 840, 497, 827, 143, - 829, 831, 866, 1010, 466, 1008, 228, 144, 142, 593, - 379, 617, 1262, 379, 379, 798, 798, 798, 830, 399, - 832, 869, 694, 174, 175, 798, 230, 231, 568, 1007, - 6, 378, 569, 1011, 1012, 1014, 1018, 1282, 1033, 552, - 819, 1180, 1181, 1182, 1034, 1183, 1184, 1185, 1050, 1259, - 617, 1051, 1052, 1261, 1053, 1054, 1075, 1133, 1266, 1079, - 1085, 1115, 1117, 378, 450, 1121, 1120, 1111, 1055, 57, - 1057, 1123, 1124, 570, 264, 1126, 1125, 1134, 461, 462, - 1130, 824, 1136, 1076, 1077, 1078, 176, 1080, 1081, 1082, - 1083, 1135, 1137, 1138, 1147, 466, 1150, 182, 466, 1151, - 1152, 497, 1284, 379, 177, 1153, 571, 232, 1154, 497, - 497, 497, 497, 497, 497, 1155, 1156, 67, 1188, 217, - 1186, 1189, 1190, 1192, 1193, 795, 69, 1297, 1194, 1038, - 1195, 239, 1201, 1210, 572, 1205, 500, 174, 175, 1216, - 1303, 1209, 1214, 1215, 1217, 497, 1218, 1225, 573, 1250, - 1251, 257, 1267, 574, 1252, 1258, 1253, 1254, 575, 1286, - 1305, 271, 1269, 552, 1260, 552, 552, 552, 552, 552, - 1268, 1270, 1287, 1271, 543, 1072, 1072, 1072, 1072, 1072, - 1272, 1072, 1273, 57, 1283, 1191, 1285, 567, 1288, 1289, - 1003, 309, 1290, 311, 312, 189, 190, 191, 192, 1296, - 176, 1298, 391, 645, 378, 1203, 1131, 699, 193, 1187, - 1249, 404, 815, 1129, 816, 635, 1056, 1088, 177, 497, - 1048, 1122, 378, 0, 596, 0, 497, 467, 0, 0, - 325, 67, 0, 0, 0, 500, 0, 0, 0, 795, - 69, 0, 0, 1040, 678, 361, 363, 365, 367, 368, - 0, 0, 595, 228, 497, 0, 0, 0, 0, 798, - 0, 798, 379, 798, 0, 0, 798, 798, 798, 0, - 174, 175, 1163, 0, 0, 0, 1072, 1072, 1072, 1072, - 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, - 1072, 1072, 1072, 1072, 1072, 0, 0, 0, 0, 0, - 0, 393, 0, 394, 395, 396, 552, 378, 296, 198, - 199, 200, 201, 202, 203, 204, 57, 205, 206, 207, - 0, 407, 712, 0, 0, 412, 0, 1162, 0, 0, - 0, 0, 421, 176, 423, 0, 1072, 0, 0, 0, - 0, 0, 435, 437, 0, 0, 0, 379, 0, 0, - 466, 177, 0, 0, 0, 0, 713, 0, 0, 0, - 384, 0, 0, 0, 67, 466, 466, 466, 0, 0, - 789, 500, 795, 69, 0, 0, 791, 0, 182, 472, - 0, 474, 475, 476, 477, 478, 1072, 1247, 230, 231, - 489, 378, 0, 0, 490, 480, 0, 0, 484, 485, - 53, 0, 54, 55, 56, 0, 0, 0, 0, 1219, - 1220, 1221, 1222, 1223, 1224, 0, 0, 0, 0, 0, - 0, 833, 834, 835, 836, 0, 839, 0, 0, 63, - 213, 379, 502, 0, 466, 491, 0, 0, 466, 0, - 595, 595, 595, 466, 0, 378, 0, 65, 66, 0, - 500, 0, 0, 1278, 1279, 0, 1280, 1281, 0, 0, - 0, 0, 0, 70, 0, 712, 0, 0, 72, 232, - 1166, 1167, 1168, 1169, 1170, 1171, 1172, 560, 0, 0, - 0, 0, 0, 0, 0, 379, 1173, 466, 0, 0, - 1299, 1300, 1301, 1302, 0, 0, 492, 0, 597, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 493, 0, 466, 0, 0, 494, 0, 0, 0, 0, - 495, 500, 0, 1017, 0, 466, 595, 1157, 1158, 1159, - 1160, 1161, 595, 1164, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 185, 186, 187, 188, 189, 190, - 191, 192, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 193, 0, 185, 186, 187, 188, 189, 190, 191, - 192, 634, 0, 636, 0, 0, 0, 0, 0, 0, - 193, 0, 0, 0, 1175, 1176, 1177, 412, 1084, 1178, - 1179, 1180, 1181, 1182, 0, 1183, 1184, 1185, 0, 1089, - 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, - 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, - 0, 1112, 0, 0, 0, 0, 0, 0, 1227, 1228, - 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, - 1239, 1240, 1241, 1242, 1243, 1244, 1245, 0, 0, 7, - 8, 9, 10, 0, 11, 12, 13, 158, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 206, 207, 516, 0, 470, 0, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 1274, 205, - 206, 207, 517, 15, 52, 0, 0, 159, 0, 160, - 161, 162, 57, 58, 0, 20, 59, 0, 0, 163, - 22, 0, 0, 61, 0, 0, 0, 0, 23, 24, - 164, 0, 0, 0, 0, 0, 165, 166, 0, 0, - 0, 0, 0, 28, 0, 29, 0, 30, 1291, 0, - 0, 0, 31, 0, 167, 168, 34, 0, 0, 35, - 67, 0, 560, 0, 36, 0, 0, 37, 68, 69, - 169, 0, 0, 71, 1128, 170, 646, 647, 648, 10, - 0, 11, 649, 650, 51, 0, 0, 651, 40, 0, - 0, 41, 42, 43, 0, 0, 44, 0, 45, 46, - 0, 0, 0, 47, 0, 0, 0, 0, 185, 186, - 187, 188, 189, 190, 191, 192, 0, 0, 0, 0, - 652, 52, 0, 0, 53, 193, 54, 55, 56, 57, - 371, 0, 653, 59, 0, 0, 60, 654, 0, 1027, - 61, 0, 0, 0, 0, 655, 656, 62, 0, 0, - 0, 1197, 0, 63, 64, 0, 1042, 0, 0, 1046, - 657, 0, 658, 0, 659, 0, 0, 0, 372, 660, - 0, 65, 66, 661, 0, 0, 662, 67, 0, 0, - 0, 663, 0, 0, 664, 68, 69, 70, 0, 0, - 71, 0, 72, 712, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 665, 0, 0, 666, 667, - 0, 0, 0, 668, 0, 669, 0, 0, 0, 0, - 670, 0, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 0, 205, 206, 207, 0, 0, 1200, - 0, 877, 878, 879, 880, 881, 882, 883, 884, 885, - 886, 1248, 887, 888, 889, 890, 891, 892, 893, 894, - 895, 896, 897, 0, 1255, 0, 0, 0, 0, 0, - 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, - 908, 909, 910, 911, 912, 913, 914, 0, 0, 915, - 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, - 926, 927, 928, 929, 0, 930, 0, 931, 932, 933, - 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, - 0, 0, 0, 944, 945, 946, 0, 947, 948, 949, - 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, - 960, 961, 962, 0, 963, 964, 965, 966, 967, 968, - 969, 970, 971, 972, 973, 974, 975, 976, 977, 0, - 0, 0, 978, 979, 980, 981, 982, 983, 984, 985, - 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, - 996, 997, 998, 1207, 999, 1000, 877, 878, 879, 880, - 881, 882, 883, 884, 885, 886, 0, 887, 888, 889, - 890, 891, 892, 893, 894, 895, 896, 897, 0, 0, - 0, 0, 0, 0, 0, 898, 899, 900, 901, 902, - 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, - 913, 914, 0, 0, 915, 916, 917, 918, 919, 920, - 921, 922, 923, 924, 925, 926, 927, 928, 929, 0, - 930, 0, 931, 932, 933, 934, 935, 936, 937, 938, - 939, 940, 941, 942, 943, 0, 0, 0, 944, 945, - 946, 0, 947, 948, 949, 950, 951, 952, 953, 954, - 955, 956, 957, 958, 959, 960, 961, 962, 0, 963, - 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, - 974, 975, 976, 977, 0, 0, 0, 978, 979, 980, - 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, - 991, 992, 993, 994, 995, 996, 997, 998, 0, 999, - 1000, 646, 647, 648, 10, 0, 11, 649, 650, 51, - 0, 0, 1087, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 185, 186, 187, 188, 189, 190, 191, - 192, 0, 0, 0, 0, 652, 52, 0, 0, 53, - 193, 54, 55, 56, 57, 371, 0, 653, 59, 0, - 0, 60, 654, 0, 0, 61, 0, 0, 0, 0, - 655, 656, 62, 0, 0, 0, 0, 0, 63, 64, - 0, 0, 0, 0, 0, 657, 0, 658, 0, 659, - 0, 0, 0, 372, 660, 0, 65, 66, 661, 0, - 0, 662, 67, 0, 0, 0, 663, 0, 0, 664, - 68, 69, 70, 0, 0, 71, 0, 72, 7, 8, - 9, 10, 0, 11, 12, 13, 14, 0, 0, 0, - 665, 0, 0, 666, 667, 0, 0, 0, 668, 0, - 669, 0, 0, 0, 0, 670, 0, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 0, 205, - 206, 207, 15, 0, 1277, 0, 16, 0, 17, 18, - 19, 0, 0, 0, 20, 0, 564, 565, 21, 22, - 53, 0, 54, 55, 56, 0, 0, 23, 24, 25, - 0, 0, 212, 0, 0, 26, 27, 0, 0, 0, - 0, 0, 28, 0, 29, 0, 30, 0, 0, 63, - 213, 31, 0, 32, 33, 34, 0, 0, 35, 0, - 0, 0, 0, 36, 518, 519, 37, 65, 66, 38, - 7, 8, 9, 10, 39, 11, 12, 13, 14, 566, - 0, 0, 0, 70, 0, 0, 0, 40, 72, 0, - 41, 42, 43, 0, 0, 44, 0, 45, 46, 0, - 0, 0, 47, 0, 0, 53, 0, 54, 55, 56, - 0, 136, 0, 0, 15, 0, 0, 60, 16, 0, - 17, 18, 19, 0, 0, 0, 20, 0, 62, 0, - 21, 22, 0, 0, 63, 64, 0, 0, 0, 23, - 24, 25, 0, 0, 0, 0, 0, 26, 27, 0, - 0, 0, 65, 66, 28, 0, 29, 0, 30, 0, - 0, 0, 0, 31, 0, 32, 33, 34, 70, 0, - 35, 71, 0, 72, 0, 36, 0, 0, 37, 0, - 0, 38, 7, 8, 9, 10, 39, 11, 12, 13, - 14, 0, 0, 53, 0, 54, 55, 56, 0, 40, - 0, 0, 41, 42, 43, 0, 0, 44, 0, 45, - 46, 349, 0, 0, 47, 0, 0, 0, 0, 0, - 0, 0, 63, 213, 0, 0, 15, 0, 0, 0, - 16, 0, 17, 18, 19, 0, 0, 0, 20, 0, - 65, 66, 21, 22, 0, 0, 174, 175, 0, 0, - 0, 23, 24, 25, 0, 0, 70, 0, 0, 26, - 27, 72, 0, 0, 0, 0, 28, 0, 29, 0, - 30, 0, 0, 0, 0, 31, 0, 32, 33, 34, - 0, 0, 35, 0, 146, 0, 0, 36, 0, 0, - 37, 0, 57, 38, 7, 8, 9, 10, 39, 11, - 12, 13, 14, 709, 0, 0, 0, 0, 0, 176, - 0, 40, 0, 0, 41, 42, 43, 0, 0, 44, - 0, 45, 46, 0, 0, 0, 47, 177, 792, 793, - 794, 0, 0, 0, 0, 0, 0, 0, 15, 0, - 67, 0, 16, 0, 17, 18, 19, 0, 795, 69, - 20, 0, 796, 0, 21, 22, 53, 0, 54, 55, - 56, 0, 0, 23, 24, 25, 0, 0, 0, 0, - 0, 26, 27, 0, 0, 0, 0, 0, 28, 0, - 29, 0, 30, 0, 0, 63, 213, 31, 0, 32, - 33, 34, 0, 0, 35, 0, 0, 0, 0, 36, - 0, 0, 37, 65, 66, 38, 7, 8, 9, 10, - 39, 11, 12, 13, 14, 0, 0, 0, 0, 70, - 0, 0, 0, 40, 72, 0, 41, 42, 43, 0, - 0, 44, 0, 45, 46, 1110, 0, 0, 47, 0, - 0, 53, 0, 54, 55, 56, 0, 147, 0, 0, - 15, 0, 0, 0, 16, 0, 17, 18, 19, 0, - 0, 0, 20, 0, 0, 0, 21, 22, 0, 0, - 63, 213, 0, 0, 0, 23, 24, 25, 0, 0, - 0, 0, 0, 26, 27, 0, 0, 0, 65, 66, - 28, 0, 29, 0, 30, 0, 0, 0, 0, 31, - 0, 32, 33, 34, 70, 0, 35, 0, 0, 72, - 0, 36, 0, 0, 37, 0, 0, 38, 7, 8, - 9, 10, 39, 11, 12, 13, 14, 1127, 0, 0, - 0, 0, 151, 0, 0, 40, 0, 0, 41, 42, - 43, 0, 0, 44, 0, 45, 46, 0, 0, 0, - 47, 0, 0, 53, 0, 54, 55, 56, 0, 0, - 0, 0, 15, 0, 0, 212, 16, 0, 17, 18, - 19, 0, 0, 0, 20, 0, 0, 0, 21, 22, - 0, 0, 63, 213, 0, 0, 0, 23, 24, 25, - 0, 0, 0, 0, 0, 26, 27, 0, 0, 0, - 65, 66, 28, 0, 29, 0, 30, 0, 0, 0, - 0, 31, 0, 32, 33, 34, 70, 0, 35, 0, - 0, 72, 0, 36, 0, 0, 37, 0, 0, 38, - 7, 8, 9, 10, 39, 11, 12, 13, 14, 0, - 0, 53, 0, 54, 55, 56, 0, 40, 0, 0, - 41, 42, 43, 0, 0, 44, 0, 45, 46, 1246, - 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, - 63, 213, 0, 0, 15, 0, 0, 0, 16, 0, - 17, 18, 19, 0, 0, 0, 20, 0, 65, 66, - 21, 22, 0, 0, 0, 0, 0, 0, 0, 23, - 24, 25, 0, 0, 70, 0, 0, 26, 27, 72, - 0, 0, 0, 0, 28, 0, 29, 0, 30, 0, - 0, 0, 0, 31, 0, 32, 33, 34, 0, 0, - 35, 0, 0, 0, 0, 36, 518, 519, 37, 1171, - 1172, 38, 7, 8, 9, 10, 39, 11, 12, 13, - 1173, 0, 0, 0, 0, 0, 0, 0, 0, 40, - 0, 0, 41, 42, 43, 0, 0, 44, 0, 45, - 46, 0, 0, 0, 47, 0, 0, 53, 0, 54, - 55, 56, 520, 521, 0, 0, 1058, 0, 0, 60, - 0, 0, 0, 0, 0, 0, 0, 0, 1059, 0, - 62, 0, 0, 1060, 0, 0, 63, 64, 0, 0, - 0, 23, 24, 0, 0, 0, 0, 0, 0, -2, - 0, 0, 0, 0, 65, 66, 0, 0, 29, 0, - 30, 0, 0, 0, 0, 1061, 0, 0, 522, 1062, - 70, 0, 1063, 71, 0, 72, 0, 36, 0, 0, - 0, 0, 0, 1178, 1179, 1180, 1181, 1182, 0, 1183, - 1184, 1185, 0, 0, 0, 0, 0, 0, 86, 87, - 0, 1064, 0, 0, 1065, 1066, 1067, 88, 0, 1068, - 0, 1069, 46, 0, 0, 89, 1070, 90, 91, 92, - 93, 0, 0, 0, 94, 0, 0, 0, 95, 0, - 0, 96, 97, 98, 99, 100, 0, 0, 0, 0, - 0, 101, 102, 103, 104, 0, 0, 0, 0, 0, - 105, 106, 0, 0, 107, 108, 0, 0, 0, 109, - 0, 0, 0, 0, 110, 111, 0, 112, 718, 0, - 0, 0, 0, 275, 276, 113, 0, 719, 720, 721, - 722, 723, 724, 725, 726, 0, 0, 0, 0, 0, - 0, 0, 114, 0, 727, 0, 728, 729, 730, 731, - 732, 733, 734, 735, 736, 737, 738, 739, 0, 0, - 0, 277, 0, 0, 53, 0, 54, 55, 56, 57, - 278, 0, 0, 279, 740, 0, 60, 0, 0, 0, - 61, 0, 0, 0, 0, 0, 0, 62, 0, 0, - 0, 0, 0, 63, 64, 0, 0, 0, 0, 741, - 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 65, 66, 0, 0, 0, 0, 67, 0, 275, - 276, 0, 0, 0, 0, 281, 69, 70, 0, 0, - 71, 0, 72, 0, 0, 0, 0, 742, 0, 0, - 743, 0, 744, 745, 746, 747, 748, 749, 750, 751, - 752, 753, 754, 283, 755, 756, 0, 277, 0, 757, - 53, 0, 54, 55, 56, 57, 278, 0, 0, 279, - 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, - 0, 0, 0, 62, 0, 0, 0, 0, 0, 63, - 64, 401, 402, 1169, 1170, 1171, 1172, 0, 0, 280, - 0, 0, 0, 0, 0, 0, 1173, 65, 66, 0, - 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, - 0, 281, 69, 70, 0, 0, 71, 0, 72, 277, - 0, 0, 53, 282, 54, 55, 56, 57, 403, 0, - 0, 279, 0, 0, 60, 0, 0, 0, 61, 283, - 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, - 0, 63, 64, 0, 0, 0, 0, 0, 0, 0, - 0, 280, 0, 0, 0, 0, 0, 0, 0, 65, - 66, 0, 0, 0, 0, 67, 0, 0, 0, 0, - 0, 0, 0, 281, 69, 70, 0, 0, 71, 0, - 72, 185, 186, 187, 188, 189, 190, 191, 192, 1178, - 1179, 1180, 1181, 1182, 0, 1183, 1184, 1185, 193, 0, - 0, 283, 185, 186, 187, 188, 189, 190, 191, 192, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, - 185, 186, 187, 188, 189, 190, 191, 192, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 193, 185, 186, - 187, 188, 189, 190, 191, 192, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 193, 185, 186, 187, 188, - 189, 190, 191, 192, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 193, 185, 186, 187, 188, 189, 190, - 191, 192, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 193, 0, 0, 0, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 0, 205, 206, 207, - 458, 0, 0, 0, 0, 0, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 0, 205, 206, - 207, 471, 0, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 206, 207, 583, - 0, 0, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 0, 205, 206, 207, 685, 0, 0, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 0, 205, 206, 207, 1196, 468, 0, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 206, 207, 185, 186, 187, 188, 189, 190, 191, - 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 193, 0, 185, 186, 187, 188, 189, 190, 191, 192, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, - 185, 186, 187, 188, 189, 190, 191, 192, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 193, 185, 186, - 187, 188, 189, 190, 191, 192, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 193, 843, 844, 845, 846, - 847, 848, 849, 850, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 851, 1165, 1166, 1167, 1168, 1169, 1170, - 1171, 1172, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1173, 0, 0, 714, 0, 0, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 0, 205, - 206, 207, 1035, 0, 0, 0, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 0, 205, 206, - 207, 0, 1198, 0, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 206, 207, 0, - 0, 0, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 0, 205, 206, 207, 0, 0, 0, - 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, - 862, 0, 863, 864, 865, 0, 1275, 0, 1174, 1175, - 1176, 1177, 0, 0, 1178, 1179, 1180, 1181, 1182, 0, - 1183, 1184, 1185, 1165, 1166, 1167, 1168, 1169, 1170, 1171, - 1172, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1173, 186, 187, 188, 189, 190, 191, 192, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 193, 0, 0, - 0, 0, 187, 188, 189, 190, 191, 192, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 193, 187, 188, - 189, 190, 191, 192, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 193, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1167, - 1168, 1169, 1170, 1171, 1172, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1173, 0, 187, 188, 189, 190, - 191, 192, 0, 0, 0, 0, 0, 1174, 1175, 1176, - 1177, 193, 0, 1178, 1179, 1180, 1181, 1182, 0, 1183, - 1184, 1185, 0, 0, 0, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 206, 207, 51, - 0, 0, 369, 0, 370, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 206, 207, 0, - 0, 0, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 0, 205, 206, 207, 0, 52, 0, 0, 53, - 0, 54, 55, 56, 57, 371, 0, 0, 59, 0, - 0, 60, 1175, 1176, 1177, 61, 0, 1178, 1179, 1180, - 1181, 1182, 62, 1183, 1184, 1185, 0, 0, 63, 64, - 0, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 206, 207, 372, 0, 0, 65, 66, 0, 0, - 0, 0, 67, 187, 188, 189, 190, 191, 192, 0, - 68, 69, 70, 0, 0, 71, 0, 72, 193, 1167, - 1168, 1169, 1170, 1171, 1172, 0, 0, 0, 0, 0, - 373, 0, 0, 0, 1173, 374, 1167, 1168, 1169, 1170, - 1171, 1172, 0, 0, 0, 1167, 1168, 1169, 1170, 1171, - 1172, 1173, 0, 0, 0, 0, 0, 0, 0, 0, - 1173, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 199, 200, 201, 202, 203, 204, 0, 205, 206, 207, - 0, 0, 0, 1176, 1177, 415, 416, 1178, 1179, 1180, - 1181, 1182, 0, 1183, 1184, 1185, 0, 0, 0, 0, - 0, 1177, 0, 0, 1178, 1179, 1180, 1181, 1182, 0, - 1183, 1184, 1185, 1178, 1179, 1180, 1181, 1182, 0, 1183, - 1184, 1185, 0, 277, 0, 0, 53, 0, 54, 55, - 56, 57, 0, 0, 0, 279, 0, 0, 60, 0, - 0, 0, 61, 0, 0, 0, 0, 0, 0, 62, - 0, 0, 0, 0, 0, 63, 64, 0, 51, 0, - 0, 369, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 65, 66, 0, 0, 0, 0, 67, - 0, 0, 0, 0, 0, 0, 0, 281, 69, 70, - 0, 0, 71, 0, 72, 52, 0, 0, 53, 0, - 54, 55, 56, 57, 371, 0, 0, 59, 0, 0, - 60, 0, 0, 0, 61, 0, 0, 0, 0, 0, - 0, 62, 0, 0, 0, 0, 0, 63, 64, 0, - 51, 0, 0, 605, 0, 0, 87, 0, 0, 0, - 0, 0, 372, 0, 88, 65, 66, 0, 0, 0, - 0, 67, 0, 0, 90, 91, 92, 0, 0, 68, - 69, 70, 0, 0, 71, 241, 72, 52, 0, 0, - 53, 99, 54, 55, 56, 57, 371, 0, 0, 59, - 0, 104, 60, 0, 0, 0, 61, 105, 0, 0, - 0, 107, 108, 62, 0, 0, 0, 51, 0, 63, - 64, 0, 111, 0, 112, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 372, 0, 0, 65, 66, 51, - 0, 0, 0, 67, 0, 0, 0, 0, 0, 114, - 0, 68, 69, 70, 52, 0, 71, 53, 72, 54, - 55, 56, 57, 371, 0, 0, 59, 0, 0, 60, - 0, 0, 0, 61, 0, 0, 52, 0, 0, 53, - 62, 54, 55, 56, 57, 58, 63, 64, 59, 0, - 0, 60, 0, 0, 0, 61, 0, 0, 0, 0, - 0, 372, 62, 0, 65, 66, 51, 0, 63, 64, - 67, 0, 0, 0, 0, 0, 0, 0, 68, 69, - 70, 0, 0, 71, 0, 72, 65, 66, 0, 0, - 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, - 68, 69, 70, 52, 0, 71, 53, 72, 54, 55, - 56, 57, 419, 0, 0, 59, 0, 0, 60, 0, - 0, 51, 61, 0, 0, 0, 0, 0, 0, 62, - 0, 0, 0, 0, 0, 63, 64, 0, 0, 0, - 0, 0, 0, 137, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 65, 66, 0, 0, 0, 52, 67, - 0, 53, 0, 54, 55, 56, 57, 68, 69, 70, - 59, 0, 71, 60, 72, 0, 0, 61, 0, 0, - 138, 0, 0, 53, 62, 54, 55, 56, 57, 776, - 63, 64, 139, 0, 0, 60, 0, 0, 137, 61, - 0, 0, 0, 0, 0, 481, 62, 0, 65, 66, - 0, 0, 63, 64, 67, 0, 0, 0, 0, 0, - 51, 0, 68, 69, 70, 0, 0, 71, 0, 72, - 65, 66, 0, 0, 0, 138, 67, 0, 53, 0, - 54, 55, 56, 57, 140, 69, 70, 139, 0, 71, - 60, 72, 0, 0, 61, 0, 0, 52, 0, 0, - 53, 62, 54, 55, 56, 57, 0, 63, 64, 59, - 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, - 0, 0, 0, 62, 0, 65, 66, 0, 0, 63, - 64, 67, 0, 0, 0, 0, 0, 0, 0, 140, - 69, 70, 0, 0, 71, 0, 72, 65, 66, 0, - 86, 87, 0, 67, 0, 0, 0, 0, 0, 88, - 0, 68, 69, 70, 0, 0, 71, 89, 72, 90, - 91, 92, 93, 0, 0, 0, 94, 0, 0, 0, - 95, 0, 0, 96, 97, 98, 99, 100, 0, 0, - 0, 0, 0, 101, 102, 103, 104, 0, 0, 0, - 0, 0, 105, 106, 86, 87, 107, 108, 0, 0, - 0, 109, 0, 88, 0, 0, 110, 111, 0, 112, - 0, 89, 0, 90, 91, 92, 93, 113, 0, 0, - 94, 0, 0, 0, 95, 0, 0, 96, 97, 98, - 99, 100, 0, 0, 114, 0, 514, 101, 102, 103, - 104, 0, 0, 0, 0, 0, 105, 106, 86, 87, - 107, 108, 0, 0, 0, 109, 0, 88, 0, 0, - 110, 111, 0, 112, 0, 89, 0, 90, 91, 92, - 93, 113, 0, 0, 94, 0, 0, 0, 95, 0, - 0, 96, 97, 98, 99, 100, 0, 0, 114, 0, - 621, 101, 102, 103, 104, 0, 0, 0, 0, 0, - 105, 106, 86, 87, 107, 108, 0, 0, 0, 109, - 0, 88, 0, 0, 110, 111, 0, 112, 0, 89, - 0, 90, 91, 92, 93, 113, 0, 0, 94, 0, - 0, 0, 95, 0, 0, 96, 97, 98, 99, 100, - 0, 0, 114, 0, 626, 101, 102, 103, 104, 0, - 0, 0, 0, 0, 105, 106, 86, 87, 107, 108, - 0, 0, 0, 109, 0, 88, 0, 0, 110, 111, - 0, 112, 0, 89, 0, 90, 91, 92, 93, 113, - 0, 0, 94, 0, 0, 0, 95, 0, 0, 96, - 97, 98, 99, 100, 0, 0, 114, 0, 695, 101, - 102, 103, 104, 0, 0, 0, 0, 0, 105, 106, - 86, 87, 107, 108, 0, 0, 0, 109, 0, 88, - 0, 0, 110, 111, 0, 112, 0, 89, 0, 90, - 91, 92, 93, 113, 0, 0, 94, 0, 0, 0, - 95, 0, 0, 96, 97, 98, 99, 100, 0, 0, - 114, 0, 808, 101, 102, 103, 104, 0, 0, 0, - 0, 0, 105, 106, 86, 87, 107, 108, 0, 0, - 0, 109, 0, 88, 0, 0, 110, 111, 0, 112, - 0, 89, 0, 90, 91, 92, 93, 113, 0, 0, - 94, 0, 0, 0, 95, 0, 0, 96, 97, 98, - 99, 100, 0, 0, 114, 0, 1049, 101, 102, 103, - 104, 0, 0, 0, 0, 0, 105, 106, 86, 87, - 107, 108, 0, 0, 0, 109, 0, 88, 0, 0, - 110, 111, 0, 112, 0, 89, 0, 90, 91, 92, - 93, 113, 0, 0, 94, 0, 0, 0, 95, 0, - 0, 96, 97, 98, 99, 100, 0, 0, 114, 0, - 1146, 101, 102, 103, 104, 0, 0, 0, 0, 0, - 105, 106, 87, 0, 107, 108, 0, 0, 0, 109, - 88, 0, 0, 0, 110, 111, 87, 112, 0, 0, - 90, 91, 92, 0, 88, 0, 0, 0, 0, 0, - 0, 241, 0, 0, 90, 91, 92, 99, 250, 0, - 0, 0, 114, 0, 0, 241, 87, 104, 0, 0, - 0, 99, 0, 105, 88, 0, 0, 0, 108, 0, - 0, 104, 0, 0, 90, 91, 92, 105, 111, 0, - 112, 0, 108, 0, 0, 241, 0, 0, 0, 0, - 0, 99, 111, 0, 112, 0, 0, 0, 0, 0, - 0, 104, 0, 0, 0, 114, 0, 105, 0, -140, - 0, 0, 108, 0, 0, 0, 0, 0, 0, 114, - 0, 0, 111, 0, 112, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 114 -}; - -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-755))) - -#define yytable_value_is_error(Yytable_value) \ - YYID (0) - -static const yytype_int16 yycheck[] = -{ - 1, 429, 107, 127, 128, 129, 130, 404, 132, 532, - 134, 135, 136, 210, 516, 464, 709, 58, 45, 542, - 118, 28, 146, 147, 221, 222, 256, 151, 152, 28, - 28, 372, 578, 387, 479, 537, 577, 588, 792, 793, - 794, 14, 6, 12, 8, 46, 12, 16, 118, 482, - 0, 10, 11, 118, 118, 601, 124, 490, 491, 492, - 493, 494, 495, 604, 544, 125, 546, 547, 548, 549, - 550, 14, 73, 45, 142, 540, 61, 62, 125, 10, - 11, 142, 125, 128, 144, 64, 65, 66, 57, 538, - 73, 70, 541, 526, 10, 11, 642, 144, 143, 133, - 486, 144, 268, 142, 569, 570, 657, 572, 573, 574, - 575, 118, 278, 125, 73, 128, 128, 640, 73, 118, - 118, 57, 32, 6, 125, 8, 127, 128, 129, 130, - 143, 132, 91, 134, 135, 136, 10, 11, 684, 143, - 144, 124, 73, 133, 127, 146, 147, 488, 142, 118, - 151, 152, 125, 32, 126, 143, 144, 73, 388, 131, - 91, 133, 392, 132, 125, 142, 264, 600, 137, 124, - 615, 137, 127, 145, 607, 91, 148, 149, 150, 206, - 144, 578, 125, 144, 225, 144, 310, 166, 167, 168, - 169, 125, 422, 124, 264, 142, 537, 12, 268, 264, - 264, 16, 635, 268, 268, 142, 142, 687, 278, 210, - 144, 133, 128, 278, 278, 680, 132, 91, 32, 220, - 221, 222, 223, 224, 225, 776, 580, 73, 229, 10, - 11, 141, 142, 143, 213, 142, 782, 403, 32, 280, - 142, 126, 57, 128, 142, 642, 142, 696, 125, 694, - 715, 143, 144, 127, 233, 256, 142, 264, 137, 138, - 139, 268, 141, 142, 143, 264, 264, 144, 133, 268, - 268, 278, 700, 32, 125, 821, 142, 125, 124, 278, - 278, 127, 1036, 142, 1038, 515, 1040, 684, 125, 1043, - 1044, 1045, 73, 144, 87, 88, 144, 90, 91, 92, - 10, 11, 95, 118, 10, 11, 99, 144, 142, 310, - 91, 104, 105, 127, 107, 108, 109, 132, 111, 112, - 765, 6, 137, 8, 142, 326, 327, 142, 142, 143, - 371, 372, 781, 403, 142, 784, 785, 142, 403, 403, - 842, 135, 136, 137, 138, 139, 127, 141, 142, 143, - 124, 779, 126, 354, 128, 356, 357, 358, 359, 360, - 142, 125, 124, 73, 126, 6, 128, 73, 142, 370, - 10, 11, 373, 374, 127, 125, 125, 378, 419, 380, - 144, 91, 141, 142, 143, 91, 124, 388, 389, 775, - 142, 392, 10, 11, 144, 144, 403, 627, 73, 400, - 142, 400, 127, 125, 403, 403, 127, 125, 387, 50, - 85, 125, 125, 88, 124, 127, 91, 58, 124, 420, - 125, 422, 144, 464, 821, 874, 144, 68, 69, 70, - 144, 144, 107, 73, 1127, 142, 143, 409, 79, 144, - 481, 142, 125, 125, 85, 143, 86, 488, 241, 143, - 144, 91, 245, 142, 95, 73, 142, 125, 124, 125, - 101, 144, 144, 464, 465, 106, 142, 143, 79, 80, - 142, 143, 473, 91, 144, 116, 144, 118, 479, 146, - 866, 482, 1023, 869, 137, 486, 121, 122, 123, 490, - 491, 492, 493, 494, 495, 496, 537, 538, 125, 143, - 541, 842, 143, 142, 143, 144, 507, 21, 22, 143, - 10, 11, 12, 1015, 515, 127, 16, 124, 32, 126, - 127, 128, 521, 124, 126, 526, 142, 124, 2, 126, - 133, 128, 637, 142, 143, 144, 537, 538, 142, 144, - 541, 125, 32, 544, 144, 546, 547, 548, 549, 550, - 144, 144, 1075, 144, 581, 582, 557, 57, 585, 586, - 124, 144, 126, 134, 128, 566, 40, 41, 42, 43, - 44, 801, 144, 47, 134, 144, 577, 578, 702, 703, - 777, 588, 144, 144, 1033, 92, 93, 94, 134, 588, - 588, 91, 144, 144, 1117, 144, 134, 10, 11, 600, - 601, 580, 144, 604, 144, 144, 607, 142, 143, 144, - 137, 143, 145, 144, 615, 622, 73, 125, 118, 124, - 142, 135, 136, 137, 138, 139, 627, 141, 142, 143, - 125, 125, 132, 126, 635, 146, 125, 137, 639, 638, - 142, 642, 669, 56, 142, 135, 136, 137, 138, 139, - 657, 141, 142, 143, 127, 696, 142, 142, 657, 657, - 73, 144, 142, 1186, 142, 57, 137, 146, 124, 1118, - 1211, 1212, 1213, 127, 1015, 10, 150, 10, 91, 10, - 291, 292, 126, 684, 134, 125, 687, 126, 146, 137, - 137, 104, 145, 694, 126, 696, 126, 669, 817, 112, - 113, 702, 703, 116, 32, 126, 32, 145, 709, 126, - 137, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 144, 207, 142, 1121, 124, 211, 142, 146, - 781, 142, 142, 784, 785, 73, 143, 143, 124, 128, - 1136, 1137, 1138, 1202, 125, 125, 1297, 85, 125, 128, - 88, 142, 1303, 91, 765, 133, 144, 378, 133, 776, - 133, 133, 144, 10, 775, 125, 777, 776, 776, 107, - 781, 782, 1210, 784, 785, 792, 793, 794, 142, 263, - 142, 144, 143, 10, 11, 802, 10, 11, 12, 145, - 801, 842, 16, 144, 146, 4, 125, 1256, 142, 420, - 811, 137, 138, 139, 146, 141, 142, 143, 10, 1205, - 821, 126, 10, 1209, 10, 126, 125, 1024, 1214, 142, - 144, 142, 125, 874, 308, 144, 146, 864, 810, 56, - 812, 145, 145, 57, 637, 145, 144, 144, 322, 323, - 146, 644, 144, 825, 826, 827, 73, 829, 830, 831, - 832, 145, 144, 144, 144, 866, 144, 46, 869, 142, - 133, 482, 1258, 874, 91, 133, 90, 91, 133, 490, - 491, 492, 493, 494, 495, 142, 133, 104, 144, 68, - 125, 134, 134, 134, 144, 112, 113, 1283, 134, 116, - 144, 80, 142, 124, 118, 144, 380, 10, 11, 10, - 1296, 144, 144, 126, 126, 526, 126, 144, 132, 142, - 142, 100, 125, 137, 144, 144, 142, 142, 142, 10, - 126, 110, 134, 544, 145, 546, 547, 548, 549, 550, - 144, 134, 142, 134, 418, 1064, 1065, 1066, 1067, 1068, - 144, 1070, 134, 56, 144, 1079, 145, 431, 142, 142, - 701, 140, 142, 142, 143, 19, 20, 21, 22, 144, - 73, 144, 249, 536, 1015, 1117, 1018, 978, 32, 1075, - 1186, 268, 637, 1015, 638, 521, 811, 842, 91, 600, - 802, 978, 1033, -1, 468, -1, 607, 327, -1, -1, - 179, 104, -1, -1, -1, 479, -1, -1, -1, 112, - 113, -1, -1, 116, 1015, 220, 221, 222, 223, 224, - -1, -1, 1023, 1024, 635, -1, -1, -1, -1, 1036, - -1, 1038, 1033, 1040, -1, -1, 1043, 1044, 1045, -1, - 10, 11, 1069, -1, -1, -1, 1165, 1166, 1167, 1168, - 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, - 1179, 1180, 1181, 1182, 1183, -1, -1, -1, -1, -1, - -1, 250, -1, 252, 253, 254, 687, 1118, 1079, 133, - 134, 135, 136, 137, 138, 139, 56, 141, 142, 143, - -1, 270, 566, -1, -1, 274, -1, 1069, -1, -1, - -1, -1, 281, 73, 283, -1, 1225, -1, -1, -1, - -1, -1, 291, 292, -1, -1, -1, 1118, -1, -1, - 1121, 91, -1, -1, -1, -1, 1127, -1, -1, -1, - 11, -1, -1, -1, 104, 1136, 1137, 1138, -1, -1, - 614, 615, 112, 113, -1, -1, 620, -1, 327, 354, - -1, 356, 357, 358, 359, 360, 1275, 1184, 10, 11, - 12, 1202, -1, -1, 16, 370, -1, -1, 373, 374, - 51, -1, 53, 54, 55, -1, -1, -1, -1, 1151, - 1152, 1153, 1154, 1155, 1156, -1, -1, -1, -1, -1, - -1, 665, 666, 667, 668, -1, 670, -1, -1, 80, - 81, 1202, 381, -1, 1205, 57, -1, -1, 1209, -1, - 1211, 1212, 1213, 1214, -1, 1256, -1, 98, 99, -1, - 694, -1, -1, 1250, 1251, -1, 1253, 1254, -1, -1, - -1, -1, -1, 114, -1, 709, -1, -1, 119, 91, - 16, 17, 18, 19, 20, 21, 22, 426, -1, -1, - -1, -1, -1, -1, -1, 1256, 32, 1258, -1, -1, - 1287, 1288, 1289, 1290, -1, -1, 118, -1, 473, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 132, -1, 1283, -1, -1, 137, -1, -1, -1, -1, - 142, 765, -1, 767, -1, 1296, 1297, 1064, 1065, 1066, - 1067, 1068, 1303, 1070, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 15, 16, 17, 18, 19, 20, - 21, 22, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 32, -1, 15, 16, 17, 18, 19, 20, 21, - 22, 520, -1, 522, -1, -1, -1, -1, -1, -1, - 32, -1, -1, -1, 130, 131, 132, 536, 832, 135, - 136, 137, 138, 139, -1, 141, 142, 143, -1, 843, - 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, - 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, - -1, 865, -1, -1, -1, -1, -1, -1, 1165, 1166, - 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, - 1177, 1178, 1179, 1180, 1181, 1182, 1183, -1, -1, 3, - 4, 5, 6, -1, 8, 9, 10, 11, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, - 141, 142, 143, 125, -1, 146, -1, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 1225, 141, - 142, 143, 144, 47, 48, -1, -1, 51, -1, 53, - 54, 55, 56, 57, -1, 59, 60, -1, -1, 63, - 64, -1, -1, 67, -1, -1, -1, -1, 72, 73, - 74, -1, -1, -1, -1, -1, 80, 81, -1, -1, - -1, -1, -1, 87, -1, 89, -1, 91, 1275, -1, - -1, -1, 96, -1, 98, 99, 100, -1, -1, 103, - 104, -1, 701, -1, 108, -1, -1, 111, 112, 113, - 114, -1, -1, 117, 1008, 119, 3, 4, 5, 6, - -1, 8, 9, 10, 11, -1, -1, 14, 132, -1, - -1, 135, 136, 137, -1, -1, 140, -1, 142, 143, - -1, -1, -1, 147, -1, -1, -1, -1, 15, 16, - 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, - 47, 48, -1, -1, 51, 32, 53, 54, 55, 56, - 57, -1, 59, 60, -1, -1, 63, 64, -1, 778, - 67, -1, -1, -1, -1, 72, 73, 74, -1, -1, - -1, 1085, -1, 80, 81, -1, 795, -1, -1, 798, - 87, -1, 89, -1, 91, -1, -1, -1, 95, 96, - -1, 98, 99, 100, -1, -1, 103, 104, -1, -1, - -1, 108, -1, -1, 111, 112, 113, 114, -1, -1, - 117, -1, 119, 1127, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 132, -1, -1, 135, 136, - -1, -1, -1, 140, -1, 142, -1, -1, -1, -1, - 147, -1, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, -1, 141, 142, 143, -1, -1, 146, - -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 1185, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, -1, 1198, -1, -1, -1, -1, -1, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, -1, -1, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, -1, 67, -1, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - -1, -1, -1, 85, 86, 87, -1, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, -1, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, - -1, -1, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, -1, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, -1, -1, - -1, -1, -1, -1, -1, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, -1, -1, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, - 67, -1, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, -1, -1, -1, 85, 86, - 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, -1, -1, -1, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, -1, 146, - 147, 3, 4, 5, 6, -1, 8, 9, 10, 11, - -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 15, 16, 17, 18, 19, 20, 21, - 22, -1, -1, -1, -1, 47, 48, -1, -1, 51, - 32, 53, 54, 55, 56, 57, -1, 59, 60, -1, - -1, 63, 64, -1, -1, 67, -1, -1, -1, -1, - 72, 73, 74, -1, -1, -1, -1, -1, 80, 81, - -1, -1, -1, -1, -1, 87, -1, 89, -1, 91, - -1, -1, -1, 95, 96, -1, 98, 99, 100, -1, - -1, 103, 104, -1, -1, -1, 108, -1, -1, 111, - 112, 113, 114, -1, -1, 117, -1, 119, 3, 4, - 5, 6, -1, 8, 9, 10, 11, -1, -1, -1, - 132, -1, -1, 135, 136, -1, -1, -1, 140, -1, - 142, -1, -1, -1, -1, 147, -1, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, -1, 141, - 142, 143, 47, -1, 146, -1, 51, -1, 53, 54, - 55, -1, -1, -1, 59, -1, 61, 62, 63, 64, - 51, -1, 53, 54, 55, -1, -1, 72, 73, 74, - -1, -1, 63, -1, -1, 80, 81, -1, -1, -1, - -1, -1, 87, -1, 89, -1, 91, -1, -1, 80, - 81, 96, -1, 98, 99, 100, -1, -1, 103, -1, - -1, -1, -1, 108, 10, 11, 111, 98, 99, 114, - 3, 4, 5, 6, 119, 8, 9, 10, 11, 124, - -1, -1, -1, 114, -1, -1, -1, 132, 119, -1, - 135, 136, 137, -1, -1, 140, -1, 142, 143, -1, - -1, -1, 147, -1, -1, 51, -1, 53, 54, 55, - -1, 142, -1, -1, 47, -1, -1, 63, 51, -1, - 53, 54, 55, -1, -1, -1, 59, -1, 74, -1, - 63, 64, -1, -1, 80, 81, -1, -1, -1, 72, - 73, 74, -1, -1, -1, -1, -1, 80, 81, -1, - -1, -1, 98, 99, 87, -1, 89, -1, 91, -1, - -1, -1, -1, 96, -1, 98, 99, 100, 114, -1, - 103, 117, -1, 119, -1, 108, -1, -1, 111, -1, - -1, 114, 3, 4, 5, 6, 119, 8, 9, 10, - 11, -1, -1, 51, -1, 53, 54, 55, -1, 132, - -1, -1, 135, 136, 137, -1, -1, 140, -1, 142, - 143, 144, -1, -1, 147, -1, -1, -1, -1, -1, - -1, -1, 80, 81, -1, -1, 47, -1, -1, -1, - 51, -1, 53, 54, 55, -1, -1, -1, 59, -1, - 98, 99, 63, 64, -1, -1, 10, 11, -1, -1, - -1, 72, 73, 74, -1, -1, 114, -1, -1, 80, - 81, 119, -1, -1, -1, -1, 87, -1, 89, -1, - 91, -1, -1, -1, -1, 96, -1, 98, 99, 100, - -1, -1, 103, -1, 142, -1, -1, 108, -1, -1, - 111, -1, 56, 114, 3, 4, 5, 6, 119, 8, - 9, 10, 11, 124, -1, -1, -1, -1, -1, 73, - -1, 132, -1, -1, 135, 136, 137, -1, -1, 140, - -1, 142, 143, -1, -1, -1, 147, 91, 92, 93, - 94, -1, -1, -1, -1, -1, -1, -1, 47, -1, - 104, -1, 51, -1, 53, 54, 55, -1, 112, 113, - 59, -1, 116, -1, 63, 64, 51, -1, 53, 54, - 55, -1, -1, 72, 73, 74, -1, -1, -1, -1, - -1, 80, 81, -1, -1, -1, -1, -1, 87, -1, - 89, -1, 91, -1, -1, 80, 81, 96, -1, 98, - 99, 100, -1, -1, 103, -1, -1, -1, -1, 108, - -1, -1, 111, 98, 99, 114, 3, 4, 5, 6, - 119, 8, 9, 10, 11, -1, -1, -1, -1, 114, - -1, -1, -1, 132, 119, -1, 135, 136, 137, -1, - -1, 140, -1, 142, 143, 144, -1, -1, 147, -1, - -1, 51, -1, 53, 54, 55, -1, 142, -1, -1, - 47, -1, -1, -1, 51, -1, 53, 54, 55, -1, - -1, -1, 59, -1, -1, -1, 63, 64, -1, -1, - 80, 81, -1, -1, -1, 72, 73, 74, -1, -1, - -1, -1, -1, 80, 81, -1, -1, -1, 98, 99, - 87, -1, 89, -1, 91, -1, -1, -1, -1, 96, - -1, 98, 99, 100, 114, -1, 103, -1, -1, 119, - -1, 108, -1, -1, 111, -1, -1, 114, 3, 4, - 5, 6, 119, 8, 9, 10, 11, 124, -1, -1, - -1, -1, 142, -1, -1, 132, -1, -1, 135, 136, - 137, -1, -1, 140, -1, 142, 143, -1, -1, -1, - 147, -1, -1, 51, -1, 53, 54, 55, -1, -1, - -1, -1, 47, -1, -1, 63, 51, -1, 53, 54, - 55, -1, -1, -1, 59, -1, -1, -1, 63, 64, - -1, -1, 80, 81, -1, -1, -1, 72, 73, 74, - -1, -1, -1, -1, -1, 80, 81, -1, -1, -1, - 98, 99, 87, -1, 89, -1, 91, -1, -1, -1, - -1, 96, -1, 98, 99, 100, 114, -1, 103, -1, - -1, 119, -1, 108, -1, -1, 111, -1, -1, 114, - 3, 4, 5, 6, 119, 8, 9, 10, 11, -1, - -1, 51, -1, 53, 54, 55, -1, 132, -1, -1, - 135, 136, 137, -1, -1, 140, -1, 142, 143, 144, - -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, - 80, 81, -1, -1, 47, -1, -1, -1, 51, -1, - 53, 54, 55, -1, -1, -1, 59, -1, 98, 99, - 63, 64, -1, -1, -1, -1, -1, -1, -1, 72, - 73, 74, -1, -1, 114, -1, -1, 80, 81, 119, - -1, -1, -1, -1, 87, -1, 89, -1, 91, -1, - -1, -1, -1, 96, -1, 98, 99, 100, -1, -1, - 103, -1, -1, -1, -1, 108, 10, 11, 111, 21, - 22, 114, 3, 4, 5, 6, 119, 8, 9, 10, - 32, -1, -1, -1, -1, -1, -1, -1, -1, 132, - -1, -1, 135, 136, 137, -1, -1, 140, -1, 142, - 143, -1, -1, -1, 147, -1, -1, 51, -1, 53, - 54, 55, 56, 57, -1, -1, 47, -1, -1, 63, - -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, - 74, -1, -1, 64, -1, -1, 80, 81, -1, -1, - -1, 72, 73, -1, -1, -1, -1, -1, -1, 0, - -1, -1, -1, -1, 98, 99, -1, -1, 89, -1, - 91, -1, -1, -1, -1, 96, -1, -1, 112, 100, - 114, -1, 103, 117, -1, 119, -1, 108, -1, -1, - -1, -1, -1, 135, 136, 137, 138, 139, -1, 141, - 142, 143, -1, -1, -1, -1, -1, -1, 49, 50, - -1, 132, -1, -1, 135, 136, 137, 58, -1, 140, - -1, 142, 143, -1, -1, 66, 147, 68, 69, 70, - 71, -1, -1, -1, 75, -1, -1, -1, 79, -1, - -1, 82, 83, 84, 85, 86, -1, -1, -1, -1, - -1, 92, 93, 94, 95, -1, -1, -1, -1, -1, - 101, 102, -1, -1, 105, 106, -1, -1, -1, 110, - -1, -1, -1, -1, 115, 116, -1, 118, 6, -1, - -1, -1, -1, 10, 11, 126, -1, 15, 16, 17, - 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, - -1, -1, 143, -1, 32, -1, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, -1, -1, - -1, 48, -1, -1, 51, -1, 53, 54, 55, 56, - 57, -1, -1, 60, 62, -1, 63, -1, -1, -1, - 67, -1, -1, -1, -1, -1, -1, 74, -1, -1, - -1, -1, -1, 80, 81, -1, -1, -1, -1, 87, - -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, - -1, 98, 99, -1, -1, -1, -1, 104, -1, 10, - 11, -1, -1, -1, -1, 112, 113, 114, -1, -1, - 117, -1, 119, -1, -1, -1, -1, 125, -1, -1, - 128, -1, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 140, 142, 143, -1, 48, -1, 147, - 51, -1, 53, 54, 55, 56, 57, -1, -1, 60, - -1, -1, 63, -1, -1, -1, 67, -1, -1, -1, - -1, -1, -1, 74, -1, -1, -1, -1, -1, 80, - 81, 10, 11, 19, 20, 21, 22, -1, -1, 90, - -1, -1, -1, -1, -1, -1, 32, 98, 99, -1, - -1, -1, -1, 104, -1, -1, -1, -1, -1, -1, - -1, 112, 113, 114, -1, -1, 117, -1, 119, 48, - -1, -1, 51, 124, 53, 54, 55, 56, 57, -1, - -1, 60, -1, -1, 63, -1, -1, -1, 67, 140, - -1, -1, -1, -1, -1, 74, -1, -1, -1, -1, - -1, 80, 81, -1, -1, -1, -1, -1, -1, -1, - -1, 90, -1, -1, -1, -1, -1, -1, -1, 98, - 99, -1, -1, -1, -1, 104, -1, -1, -1, -1, - -1, -1, -1, 112, 113, 114, -1, -1, 117, -1, - 119, 15, 16, 17, 18, 19, 20, 21, 22, 135, - 136, 137, 138, 139, -1, 141, 142, 143, 32, -1, - -1, 140, 15, 16, 17, 18, 19, 20, 21, 22, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, - 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 32, 15, 16, - 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 32, 15, 16, 17, 18, - 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 32, 15, 16, 17, 18, 19, 20, - 21, 22, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 32, -1, -1, -1, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, -1, 141, 142, 143, - 144, -1, -1, -1, -1, -1, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, -1, 141, 142, - 143, 144, -1, -1, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, -1, 141, 142, 143, 144, - -1, -1, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, -1, 141, 142, 143, 144, -1, -1, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, -1, 141, 142, 143, 144, 127, -1, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, - 141, 142, 143, 15, 16, 17, 18, 19, 20, 21, - 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 32, -1, 15, 16, 17, 18, 19, 20, 21, 22, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, - 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 32, 15, 16, - 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 32, 15, 16, 17, 18, - 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 32, 15, 16, 17, 18, 19, 20, - 21, 22, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 32, -1, -1, 126, -1, -1, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, -1, 141, - 142, 143, 125, -1, -1, -1, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, -1, 141, 142, - 143, -1, 127, -1, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, -1, 141, 142, 143, -1, - -1, -1, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, -1, 141, 142, 143, -1, -1, -1, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, -1, 141, 142, 143, -1, 127, -1, 129, 130, - 131, 132, -1, -1, 135, 136, 137, 138, 139, -1, - 141, 142, 143, 15, 16, 17, 18, 19, 20, 21, - 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 32, 16, 17, 18, 19, 20, 21, 22, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 32, -1, -1, - -1, -1, 17, 18, 19, 20, 21, 22, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 32, 17, 18, - 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, - 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 32, -1, 17, 18, 19, 20, - 21, 22, -1, -1, -1, -1, -1, 129, 130, 131, - 132, 32, -1, 135, 136, 137, 138, 139, -1, 141, - 142, 143, -1, -1, -1, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, -1, 141, 142, 143, 11, - -1, -1, 14, -1, 16, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, -1, 141, 142, 143, -1, - -1, -1, 131, 132, 133, 134, 135, 136, 137, 138, - 139, -1, 141, 142, 143, -1, 48, -1, -1, 51, - -1, 53, 54, 55, 56, 57, -1, -1, 60, -1, - -1, 63, 130, 131, 132, 67, -1, 135, 136, 137, - 138, 139, 74, 141, 142, 143, -1, -1, 80, 81, - -1, 132, 133, 134, 135, 136, 137, 138, 139, -1, - 141, 142, 143, 95, -1, -1, 98, 99, -1, -1, - -1, -1, 104, 17, 18, 19, 20, 21, 22, -1, - 112, 113, 114, -1, -1, 117, -1, 119, 32, 17, - 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, - 132, -1, -1, -1, 32, 137, 17, 18, 19, 20, - 21, 22, -1, -1, -1, 17, 18, 19, 20, 21, - 22, 32, -1, -1, -1, -1, -1, -1, -1, -1, - 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 133, - 134, 135, 136, 137, 138, 139, -1, 141, 142, 143, - -1, -1, -1, 131, 132, 10, 11, 135, 136, 137, - 138, 139, -1, 141, 142, 143, -1, -1, -1, -1, - -1, 132, -1, -1, 135, 136, 137, 138, 139, -1, - 141, 142, 143, 135, 136, 137, 138, 139, -1, 141, - 142, 143, -1, 48, -1, -1, 51, -1, 53, 54, - 55, 56, -1, -1, -1, 60, -1, -1, 63, -1, - -1, -1, 67, -1, -1, -1, -1, -1, -1, 74, - -1, -1, -1, -1, -1, 80, 81, -1, 11, -1, - -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 98, 99, -1, -1, -1, -1, 104, - -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, - -1, -1, 117, -1, 119, 48, -1, -1, 51, -1, - 53, 54, 55, 56, 57, -1, -1, 60, -1, -1, - 63, -1, -1, -1, 67, -1, -1, -1, -1, -1, - -1, 74, -1, -1, -1, -1, -1, 80, 81, -1, - 11, -1, -1, 14, -1, -1, 50, -1, -1, -1, - -1, -1, 95, -1, 58, 98, 99, -1, -1, -1, - -1, 104, -1, -1, 68, 69, 70, -1, -1, 112, - 113, 114, -1, -1, 117, 79, 119, 48, -1, -1, - 51, 85, 53, 54, 55, 56, 57, -1, -1, 60, - -1, 95, 63, -1, -1, -1, 67, 101, -1, -1, - -1, 105, 106, 74, -1, -1, -1, 11, -1, 80, - 81, -1, 116, -1, 118, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 95, -1, -1, 98, 99, 11, - -1, -1, -1, 104, -1, -1, -1, -1, -1, 143, - -1, 112, 113, 114, 48, -1, 117, 51, 119, 53, - 54, 55, 56, 57, -1, -1, 60, -1, -1, 63, - -1, -1, -1, 67, -1, -1, 48, -1, -1, 51, - 74, 53, 54, 55, 56, 57, 80, 81, 60, -1, - -1, 63, -1, -1, -1, 67, -1, -1, -1, -1, - -1, 95, 74, -1, 98, 99, 11, -1, 80, 81, - 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, - 114, -1, -1, 117, -1, 119, 98, 99, -1, -1, - -1, -1, 104, -1, -1, -1, -1, -1, -1, -1, - 112, 113, 114, 48, -1, 117, 51, 119, 53, 54, - 55, 56, 57, -1, -1, 60, -1, -1, 63, -1, - -1, 11, 67, -1, -1, -1, -1, -1, -1, 74, - -1, -1, -1, -1, -1, 80, 81, -1, -1, -1, - -1, -1, -1, 11, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 98, 99, -1, -1, -1, 48, 104, - -1, 51, -1, 53, 54, 55, 56, 112, 113, 114, - 60, -1, 117, 63, 119, -1, -1, 67, -1, -1, - 48, -1, -1, 51, 74, 53, 54, 55, 56, 57, - 80, 81, 60, -1, -1, 63, -1, -1, 11, 67, - -1, -1, -1, -1, -1, 95, 74, -1, 98, 99, - -1, -1, 80, 81, 104, -1, -1, -1, -1, -1, - 11, -1, 112, 113, 114, -1, -1, 117, -1, 119, - 98, 99, -1, -1, -1, 48, 104, -1, 51, -1, - 53, 54, 55, 56, 112, 113, 114, 60, -1, 117, - 63, 119, -1, -1, 67, -1, -1, 48, -1, -1, - 51, 74, 53, 54, 55, 56, -1, 80, 81, 60, - -1, -1, 63, -1, -1, -1, 67, -1, -1, -1, - -1, -1, -1, 74, -1, 98, 99, -1, -1, 80, - 81, 104, -1, -1, -1, -1, -1, -1, -1, 112, - 113, 114, -1, -1, 117, -1, 119, 98, 99, -1, - 49, 50, -1, 104, -1, -1, -1, -1, -1, 58, - -1, 112, 113, 114, -1, -1, 117, 66, 119, 68, - 69, 70, 71, -1, -1, -1, 75, -1, -1, -1, - 79, -1, -1, 82, 83, 84, 85, 86, -1, -1, - -1, -1, -1, 92, 93, 94, 95, -1, -1, -1, - -1, -1, 101, 102, 49, 50, 105, 106, -1, -1, - -1, 110, -1, 58, -1, -1, 115, 116, -1, 118, - -1, 66, -1, 68, 69, 70, 71, 126, -1, -1, - 75, -1, -1, -1, 79, -1, -1, 82, 83, 84, - 85, 86, -1, -1, 143, -1, 145, 92, 93, 94, - 95, -1, -1, -1, -1, -1, 101, 102, 49, 50, - 105, 106, -1, -1, -1, 110, -1, 58, -1, -1, - 115, 116, -1, 118, -1, 66, -1, 68, 69, 70, - 71, 126, -1, -1, 75, -1, -1, -1, 79, -1, - -1, 82, 83, 84, 85, 86, -1, -1, 143, -1, - 145, 92, 93, 94, 95, -1, -1, -1, -1, -1, - 101, 102, 49, 50, 105, 106, -1, -1, -1, 110, - -1, 58, -1, -1, 115, 116, -1, 118, -1, 66, - -1, 68, 69, 70, 71, 126, -1, -1, 75, -1, - -1, -1, 79, -1, -1, 82, 83, 84, 85, 86, - -1, -1, 143, -1, 145, 92, 93, 94, 95, -1, - -1, -1, -1, -1, 101, 102, 49, 50, 105, 106, - -1, -1, -1, 110, -1, 58, -1, -1, 115, 116, - -1, 118, -1, 66, -1, 68, 69, 70, 71, 126, - -1, -1, 75, -1, -1, -1, 79, -1, -1, 82, - 83, 84, 85, 86, -1, -1, 143, -1, 145, 92, - 93, 94, 95, -1, -1, -1, -1, -1, 101, 102, - 49, 50, 105, 106, -1, -1, -1, 110, -1, 58, - -1, -1, 115, 116, -1, 118, -1, 66, -1, 68, - 69, 70, 71, 126, -1, -1, 75, -1, -1, -1, - 79, -1, -1, 82, 83, 84, 85, 86, -1, -1, - 143, -1, 145, 92, 93, 94, 95, -1, -1, -1, - -1, -1, 101, 102, 49, 50, 105, 106, -1, -1, - -1, 110, -1, 58, -1, -1, 115, 116, -1, 118, - -1, 66, -1, 68, 69, 70, 71, 126, -1, -1, - 75, -1, -1, -1, 79, -1, -1, 82, 83, 84, - 85, 86, -1, -1, 143, -1, 145, 92, 93, 94, - 95, -1, -1, -1, -1, -1, 101, 102, 49, 50, - 105, 106, -1, -1, -1, 110, -1, 58, -1, -1, - 115, 116, -1, 118, -1, 66, -1, 68, 69, 70, - 71, 126, -1, -1, 75, -1, -1, -1, 79, -1, - -1, 82, 83, 84, 85, 86, -1, -1, 143, -1, - 145, 92, 93, 94, 95, -1, -1, -1, -1, -1, - 101, 102, 50, -1, 105, 106, -1, -1, -1, 110, - 58, -1, -1, -1, 115, 116, 50, 118, -1, -1, - 68, 69, 70, -1, 58, -1, -1, -1, -1, -1, - -1, 79, -1, -1, 68, 69, 70, 85, 86, -1, - -1, -1, 143, -1, -1, 79, 50, 95, -1, -1, - -1, 85, -1, 101, 58, -1, -1, -1, 106, -1, - -1, 95, -1, -1, 68, 69, 70, 101, 116, -1, - 118, -1, 106, -1, -1, 79, -1, -1, -1, -1, - -1, 85, 116, -1, 118, -1, -1, -1, -1, -1, - -1, 95, -1, -1, -1, 143, -1, 101, -1, 133, - -1, -1, 106, -1, -1, -1, -1, -1, -1, 143, - -1, -1, 116, -1, 118, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 143 -}; - -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ -static const yytype_uint16 yystos[] = -{ - 0, 121, 122, 123, 149, 150, 256, 3, 4, 5, - 6, 8, 9, 10, 11, 47, 51, 53, 54, 55, - 59, 63, 64, 72, 73, 74, 80, 81, 87, 89, - 91, 96, 98, 99, 100, 103, 108, 111, 114, 119, - 132, 135, 136, 137, 140, 142, 143, 147, 246, 247, - 255, 11, 48, 51, 53, 54, 55, 56, 57, 60, - 63, 67, 74, 80, 81, 98, 99, 104, 112, 113, - 114, 117, 119, 210, 214, 215, 217, 223, 224, 228, - 229, 234, 235, 236, 237, 0, 49, 50, 58, 66, - 68, 69, 70, 71, 75, 79, 82, 83, 84, 85, - 86, 92, 93, 94, 95, 101, 102, 105, 106, 110, - 115, 116, 118, 126, 143, 153, 155, 156, 158, 161, - 162, 184, 230, 233, 256, 142, 142, 142, 142, 142, - 142, 133, 142, 133, 142, 142, 142, 11, 48, 60, - 112, 212, 228, 229, 234, 133, 142, 142, 142, 133, - 142, 142, 142, 246, 246, 246, 246, 246, 11, 51, - 53, 54, 55, 63, 74, 80, 81, 98, 99, 114, - 119, 214, 244, 246, 10, 11, 73, 91, 128, 132, - 250, 251, 253, 256, 246, 15, 16, 17, 18, 19, - 20, 21, 22, 32, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 141, 142, 143, 6, 8, - 210, 142, 63, 81, 235, 235, 235, 253, 235, 12, - 16, 57, 118, 132, 137, 142, 208, 209, 256, 124, - 10, 11, 91, 127, 254, 10, 11, 91, 124, 253, - 254, 79, 158, 158, 158, 6, 158, 158, 127, 157, - 86, 158, 142, 142, 142, 158, 124, 253, 127, 127, - 127, 158, 158, 142, 158, 161, 185, 158, 158, 167, - 86, 253, 158, 158, 143, 10, 11, 48, 57, 60, - 90, 112, 124, 140, 172, 175, 211, 213, 215, 217, - 223, 228, 229, 234, 243, 244, 256, 214, 243, 243, - 243, 243, 214, 243, 214, 243, 243, 243, 142, 253, - 142, 253, 253, 214, 243, 243, 214, 214, 214, 246, - 243, 243, 144, 125, 144, 253, 146, 125, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 144, - 244, 246, 209, 246, 137, 12, 16, 57, 118, 132, - 137, 208, 256, 208, 209, 208, 209, 208, 208, 14, - 16, 57, 95, 132, 137, 194, 195, 204, 210, 256, - 143, 226, 227, 256, 11, 225, 235, 127, 216, 218, - 158, 155, 124, 253, 253, 253, 253, 150, 124, 246, - 133, 10, 11, 57, 175, 211, 213, 253, 126, 128, - 159, 160, 253, 142, 142, 10, 11, 213, 142, 57, - 210, 253, 154, 253, 124, 126, 127, 128, 200, 124, - 126, 128, 201, 126, 163, 253, 254, 253, 144, 144, - 144, 144, 144, 144, 134, 144, 134, 144, 144, 144, - 246, 243, 134, 144, 144, 144, 134, 144, 144, 144, - 144, 246, 246, 57, 142, 181, 256, 250, 127, 144, - 146, 144, 208, 137, 208, 208, 208, 208, 208, 143, - 208, 95, 210, 204, 208, 208, 144, 14, 125, 12, - 16, 57, 118, 132, 137, 142, 207, 254, 256, 242, - 246, 256, 253, 145, 225, 150, 73, 219, 256, 150, - 124, 125, 125, 125, 145, 231, 125, 144, 10, 11, - 56, 57, 112, 186, 187, 188, 189, 234, 256, 142, - 213, 201, 168, 126, 214, 146, 125, 142, 173, 12, - 137, 174, 164, 246, 210, 12, 16, 57, 118, 132, - 137, 206, 254, 256, 150, 142, 238, 239, 151, 152, - 253, 61, 62, 238, 61, 62, 124, 246, 12, 16, - 57, 90, 118, 132, 137, 142, 165, 190, 192, 254, - 127, 142, 142, 144, 144, 142, 142, 194, 32, 73, - 85, 88, 91, 107, 193, 256, 246, 208, 242, 144, - 210, 207, 144, 144, 181, 14, 204, 137, 207, 207, - 207, 207, 207, 207, 128, 143, 199, 256, 146, 125, - 128, 145, 127, 220, 221, 256, 145, 232, 10, 10, - 10, 150, 255, 126, 253, 189, 253, 134, 125, 207, - 169, 170, 192, 126, 146, 159, 3, 4, 5, 9, - 10, 14, 47, 59, 64, 72, 73, 87, 89, 91, - 96, 100, 103, 108, 111, 132, 135, 136, 140, 142, - 147, 196, 197, 204, 205, 248, 249, 255, 256, 194, - 137, 190, 194, 166, 192, 144, 206, 137, 206, 206, - 206, 206, 206, 142, 143, 145, 176, 145, 240, 256, - 124, 125, 124, 142, 126, 126, 145, 126, 126, 124, - 202, 203, 246, 256, 126, 137, 190, 190, 6, 15, - 16, 17, 18, 19, 20, 21, 22, 32, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 62, 87, 125, 128, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 142, 143, 147, 182, 190, - 190, 190, 190, 127, 142, 143, 193, 128, 199, 201, - 225, 244, 244, 244, 244, 144, 57, 212, 142, 124, - 146, 142, 207, 199, 142, 142, 193, 207, 144, 246, - 242, 246, 92, 93, 94, 112, 116, 222, 229, 252, - 253, 124, 125, 150, 125, 144, 125, 125, 145, 144, - 128, 207, 128, 161, 183, 184, 188, 128, 198, 256, - 171, 192, 199, 201, 158, 142, 133, 133, 212, 133, - 142, 133, 142, 246, 246, 246, 246, 214, 244, 246, - 144, 14, 125, 15, 16, 17, 18, 19, 20, 21, - 22, 32, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 141, 142, 143, 144, 190, 144, 144, - 199, 201, 142, 206, 179, 242, 194, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 85, 86, 87, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 146, - 147, 241, 238, 152, 243, 243, 202, 145, 125, 190, - 10, 144, 146, 144, 4, 191, 242, 246, 125, 144, - 144, 144, 144, 181, 212, 209, 144, 253, 238, 194, - 199, 194, 194, 142, 146, 125, 116, 252, 116, 252, - 116, 252, 253, 92, 93, 94, 253, 150, 222, 145, - 10, 126, 10, 10, 126, 214, 198, 214, 47, 59, - 64, 96, 100, 103, 132, 135, 136, 137, 140, 142, - 147, 245, 247, 199, 201, 125, 214, 214, 214, 142, - 214, 214, 214, 214, 246, 144, 144, 14, 205, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 144, 244, 246, 181, 144, 142, 181, 125, 180, 194, - 146, 144, 240, 145, 145, 144, 145, 124, 246, 196, - 146, 165, 193, 209, 144, 145, 144, 144, 144, 194, - 252, 252, 252, 252, 252, 252, 145, 144, 125, 144, - 144, 142, 133, 133, 133, 142, 133, 245, 245, 245, - 245, 245, 214, 244, 245, 15, 16, 17, 18, 19, - 20, 21, 22, 32, 129, 130, 131, 132, 135, 136, - 137, 138, 139, 141, 142, 143, 125, 170, 144, 134, - 134, 243, 134, 144, 134, 144, 144, 246, 127, 144, - 146, 142, 177, 166, 194, 144, 181, 145, 202, 144, - 124, 181, 181, 181, 144, 126, 10, 126, 126, 214, - 214, 214, 214, 214, 214, 144, 144, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 144, 244, 246, 171, - 142, 142, 144, 142, 142, 246, 178, 194, 144, 181, - 145, 181, 238, 193, 193, 193, 181, 125, 144, 134, - 134, 134, 144, 134, 245, 127, 144, 146, 244, 244, - 244, 244, 194, 144, 181, 145, 10, 142, 142, 142, - 142, 245, 144, 144, 144, 144, 144, 181, 144, 244, - 244, 244, 244, 181, 193, 126, 144, 144, 144, 144, - 193 -}; - -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 - -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab - - -/* Like YYERROR except do call yyerror. This remains here temporarily - to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. However, - YYFAIL appears to be in use. Nevertheless, it is formally deprecated - in Bison 2.4.2's NEWS entry, where a plan to phase it out is - discussed. */ - -#define YYFAIL goto yyerrlab -#if defined YYFAIL - /* This is here to suppress warnings from the GCC cpp's - -Wunused-macros. Normally we don't worry about that warning, but - some users do, and we want to make it easy for users to remove - YYFAIL uses, which will produce warnings from Bison 2.5. */ -#endif #define YYRECOVERING() (!!yyerrstatus) @@ -3043,13 +2743,13 @@ do \ else \ { \ yyerror (&yylloc, YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (YYID (0)) + YYERROR; \ + } \ +while (0) /* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 +#define YYTERROR 1 +#define YYERRCODE 256 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. @@ -3059,7 +2759,7 @@ while (YYID (0)) #ifndef YYLLOC_DEFAULT # define YYLLOC_DEFAULT(Current, Rhs, N) \ do \ - if (YYID (N)) \ + if (N) \ { \ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ @@ -3073,12 +2773,27 @@ while (YYID (0)) (Current).first_column = (Current).last_column = \ YYRHSLOC (Rhs, 0).last_column; \ } \ - while (YYID (0)) + while (0) #endif #define YYRHSLOC(Rhs, K) ((Rhs)[K]) +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) + + /* YY_LOCATION_PRINT -- Print the location on the stream. This macro was not mandated originally: define only if we know we won't break user code: when these are the locations we know. */ @@ -3088,36 +2803,28 @@ while (YYID (0)) /* Print *YYLOCP on YYO. Private, do not rely on its existence. */ -__attribute__((__unused__)) -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +YY_ATTRIBUTE_UNUSED static unsigned yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp) -#else -static unsigned -yy_location_print_ (yyo, yylocp) - FILE *yyo; - YYLTYPE const * const yylocp; -#endif { unsigned res = 0; int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0; if (0 <= yylocp->first_line) { - res += fprintf (yyo, "%d", yylocp->first_line); + res += YYFPRINTF (yyo, "%d", yylocp->first_line); if (0 <= yylocp->first_column) - res += fprintf (yyo, ".%d", yylocp->first_column); + res += YYFPRINTF (yyo, ".%d", yylocp->first_column); } if (0 <= yylocp->last_line) { if (yylocp->first_line < yylocp->last_line) { - res += fprintf (yyo, "-%d", yylocp->last_line); + res += YYFPRINTF (yyo, "-%d", yylocp->last_line); if (0 <= end_col) - res += fprintf (yyo, ".%d", end_col); + res += YYFPRINTF (yyo, ".%d", end_col); } else if (0 <= end_col && yylocp->first_column < end_col) - res += fprintf (yyo, "-%d", end_col); + res += YYFPRINTF (yyo, "-%d", end_col); } return res; } @@ -3131,73 +2838,35 @@ yy_location_print_ (yyo, yylocp) #endif -/* YYLEX -- calling `yylex' with the right arguments. */ -#ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) -#else -# define YYLEX yylex (&yylval, &yylloc) -#endif - -/* Enable debugging if requested. */ -#if YYDEBUG - -# ifndef YYFPRINTF -# include /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (YYID (0)) - -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Type, Value, Location); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (YYID (0)) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value, Location); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ +/*----------------------------------------. +| Print this symbol's value on YYOUTPUT. | +`----------------------------------------*/ -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp) -#else -static void -yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; - YYLTYPE const * const yylocationp; -#endif { FILE *yyo = yyoutput; YYUSE (yyo); + YYUSE (yylocationp); if (!yyvaluep) return; - YYUSE (yylocationp); # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# else - YYUSE (yyoutput); # endif - switch (yytype) - { - default: - break; - } + YYUSE (yytype); } @@ -3205,23 +2874,11 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp) | Print this symbol on YYOUTPUT. | `--------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp) -#else -static void -yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; - YYLTYPE const * const yylocationp; -#endif { - if (yytype < YYNTOKENS) - YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); - else - YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + YYFPRINTF (yyoutput, "%s %s (", + yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); YY_LOCATION_PRINT (yyoutput, *yylocationp); YYFPRINTF (yyoutput, ": "); @@ -3234,16 +2891,8 @@ yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp) | TOP (included). | `------------------------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) -#else -static void -yy_stack_print (yybottom, yytop) - yytype_int16 *yybottom; - yytype_int16 *yytop; -#endif { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -3254,50 +2903,42 @@ yy_stack_print (yybottom, yytop) YYFPRINTF (stderr, "\n"); } -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (YYID (0)) +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void -yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule) -#else -static void -yy_reduce_print (yyvsp, yylsp, yyrule) - YYSTYPE *yyvsp; - YYLTYPE *yylsp; - int yyrule; -#endif +yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule) { + unsigned long int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - unsigned long int yylno = yyrline[yyrule]; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", - yyrule - 1, yylno); + yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], - &(yyvsp[(yyi + 1) - (yynrhs)]) - , &(yylsp[(yyi + 1) - (yynrhs)]) ); + yy_symbol_print (stderr, + yystos[yyssp[yyi + 1 - yynrhs]], + &(yyvsp[(yyi + 1) - (yynrhs)]) + , &(yylsp[(yyi + 1) - (yynrhs)]) ); YYFPRINTF (stderr, "\n"); } } -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyvsp, yylsp, Rule); \ -} while (YYID (0)) +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyssp, yyvsp, yylsp, Rule); \ +} while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ @@ -3311,7 +2952,7 @@ int yydebug; /* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH +#ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif @@ -3334,15 +2975,8 @@ int yydebug; # define yystrlen strlen # else /* Return the length of YYSTR. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static YYSIZE_T yystrlen (const char *yystr) -#else -static YYSIZE_T -yystrlen (yystr) - const char *yystr; -#endif { YYSIZE_T yylen; for (yylen = 0; yystr[yylen]; yylen++) @@ -3358,16 +2992,8 @@ yystrlen (yystr) # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static char * yystpcpy (char *yydest, const char *yysrc) -#else -static char * -yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -#endif { char *yyd = yydest; const char *yys = yysrc; @@ -3397,27 +3023,27 @@ yytnamerr (char *yyres, const char *yystr) char const *yyp = yystr; for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } do_not_strip_quotes: ; } @@ -3440,11 +3066,11 @@ static int yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken) { - YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[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_NULL; + const char *yyformat = YY_NULLPTR; /* Arguments of yyformat. */ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; /* Number of reported tokens (one for the "unexpected", one per @@ -3452,10 +3078,6 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, int yycount = 0; /* There are many possibilities here to consider: - - Assume YYFAIL is not used. It's too flawed to consider. See - - for details. YYERROR is fine as it does not invoke this - function. - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action is an error action. In that case, don't check for expected @@ -3505,7 +3127,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, } yyarg[yycount++] = yytname[yyx]; { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) return 2; @@ -3572,33 +3194,18 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, | Release the memory associated to this symbol. | `-----------------------------------------------*/ -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp) -#else -static void -yydestruct (yymsg, yytype, yyvaluep, yylocationp) - const char *yymsg; - int yytype; - YYSTYPE *yyvaluep; - YYLTYPE *yylocationp; -#endif { YYUSE (yyvaluep); YYUSE (yylocationp); - if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - switch (yytype) - { - - default: - break; - } + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -3608,66 +3215,27 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) | yyparse. | `----------*/ -#ifdef YYPARSE_PARAM -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (void *YYPARSE_PARAM) -#else -int -yyparse (YYPARSE_PARAM) - void *YYPARSE_PARAM; -#endif -#else /* ! YYPARSE_PARAM */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) int yyparse (void) -#else -int -yyparse () - -#endif -#endif { /* The lookahead symbol. */ int yychar; -#if defined __GNUC__ && 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\"")\ - _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ - _Pragma ("GCC diagnostic pop") -#else +/* The semantic value of the lookahead symbol. */ /* Default value used for initialization, for pacifying older GCCs or non-GCC compilers. */ -static YYSTYPE yyval_default; -# define YY_INITIAL_VALUE(Value) = Value -#endif +YY_INITIAL_VALUE (static YYSTYPE yyval_default;) +YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); + +/* Location data for the lookahead symbol. */ static YYLTYPE yyloc_default # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL = { 1, 1, 1, 1 } # endif ; -#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_END -#endif -#ifndef YY_INITIAL_VALUE -# define YY_INITIAL_VALUE(Value) /* Nothing. */ -#endif - -/* The semantic value of the lookahead symbol. */ -YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); - -/* Location data for the lookahead symbol. */ YYLTYPE yylloc = yyloc_default; - /* Number of syntax errors so far. */ int yynerrs; @@ -3676,9 +3244,9 @@ YYLTYPE yylloc = yyloc_default; int yyerrstatus; /* The stacks and their tools: - `yyss': related to states. - `yyvs': related to semantic values. - `yyls': related to locations. + 'yyss': related to states. + 'yyvs': related to semantic values. + 'yyls': related to locations. Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ @@ -3757,26 +3325,26 @@ YYLTYPE yylloc = yyloc_default; #ifdef 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. */ - YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; - YYLTYPE *yyls1 = yyls; + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; + YYLTYPE *yyls1 = yyls; - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - 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), - &yystacksize); + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + 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), + &yystacksize); - yyls = yyls1; - yyss = yyss1; - yyvs = yyvs1; + yyls = yyls1; + yyss = yyss1; + yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE @@ -3784,23 +3352,23 @@ YYLTYPE yylloc = yyloc_default; # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; + goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; + yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss_alloc, yyss); - YYSTACK_RELOCATE (yyvs_alloc, yyvs); - YYSTACK_RELOCATE (yyls_alloc, yyls); + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); + YYSTACK_RELOCATE (yyls_alloc, yyls); # undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ @@ -3810,10 +3378,10 @@ YYLTYPE yylloc = yyloc_default; yylsp = yyls + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); + (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) - YYABORT; + YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); @@ -3842,7 +3410,7 @@ yybackup: if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; + yychar = yylex (&yylval, &yylloc); } if (yychar <= YYEOF) @@ -3907,7 +3475,7 @@ yyreduce: yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: - `$$ = $1'. + '$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison @@ -3922,57 +3490,56 @@ yyreduce: switch (yyn) { case 3: -/* Line 1792 of yacc.c */ -#line 423 "dtool/src/cppparser/cppBison.yxx" +#line 424 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_expr = (yyvsp[(2) - (2)].u.expr); + current_expr = (yyvsp[0].u.expr); } +#line 3498 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 4: -/* Line 1792 of yacc.c */ -#line 427 "dtool/src/cppparser/cppBison.yxx" +#line 428 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_type = (yyvsp[(2) - (2)].u.type); + current_type = (yyvsp[0].u.type); } +#line 3506 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 10: -/* Line 1792 of yacc.c */ -#line 445 "dtool/src/cppparser/cppBison.yxx" +#line 446 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - delete (yyvsp[(3) - (4)].u.expr); + delete (yyvsp[-1].u.expr); } +#line 3514 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 11: -/* Line 1792 of yacc.c */ -#line 449 "dtool/src/cppparser/cppBison.yxx" +#line 450 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - delete (yyvsp[(3) - (4)].u.expr); + delete (yyvsp[-1].u.expr); } +#line 3522 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 12: -/* Line 1792 of yacc.c */ -#line 461 "dtool/src/cppparser/cppBison.yxx" +#line 462 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { push_storage_class((current_storage_class & ~CPPInstance::SC_c_binding) | - ((yyvsp[(1) - (2)].u.integer) & CPPInstance::SC_c_binding)); + ((yyvsp[-1].u.integer) & CPPInstance::SC_c_binding)); } +#line 3531 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 13: -/* Line 1792 of yacc.c */ -#line 466 "dtool/src/cppparser/cppBison.yxx" +#line 467 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_storage_class(); } +#line 3539 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 21: -/* Line 1792 of yacc.c */ -#line 480 "dtool/src/cppparser/cppBison.yxx" +#line 481 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if (publish_nest_level != 0) { yyerror("Unclosed __begin_publish", publish_loc); @@ -3981,36 +3548,36 @@ yyreduce: } publish_previous = current_scope->get_current_vis(); - publish_loc = (yylsp[(1) - (1)]); + publish_loc = (yylsp[0]); publish_nest_level++; current_scope->set_current_vis(V_published); } +#line 3556 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 22: -/* Line 1792 of yacc.c */ -#line 493 "dtool/src/cppparser/cppBison.yxx" +#line 494 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if (publish_nest_level != 1) { - yyerror("Unmatched __end_publish", (yylsp[(1) - (1)])); + yyerror("Unmatched __end_publish", (yylsp[0])); } else { current_scope->set_current_vis(publish_previous); } publish_nest_level = 0; } +#line 3569 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 23: -/* Line 1792 of yacc.c */ -#line 502 "dtool/src/cppparser/cppBison.yxx" +#line 503 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_scope->set_current_vis(V_published); } +#line 3577 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 24: -/* Line 1792 of yacc.c */ -#line 506 "dtool/src/cppparser/cppBison.yxx" +#line 507 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if (publish_nest_level > 0) { current_scope->set_current_vis(V_published); @@ -4018,621 +3585,621 @@ yyreduce: current_scope->set_current_vis(V_public); } } +#line 3589 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 25: -/* Line 1792 of yacc.c */ -#line 514 "dtool/src/cppparser/cppBison.yxx" +#line 515 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_scope->set_current_vis(V_protected); } +#line 3597 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 26: -/* Line 1792 of yacc.c */ -#line 518 "dtool/src/cppparser/cppBison.yxx" +#line 519 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_scope->set_current_vis(V_private); } +#line 3605 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 27: -/* Line 1792 of yacc.c */ -#line 522 "dtool/src/cppparser/cppBison.yxx" +#line 523 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPDeclaration *getter = (yyvsp[(5) - (7)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + CPPDeclaration *getter = (yyvsp[-2].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (getter == (CPPDeclaration *)NULL || getter->get_subtype() != CPPDeclaration::ST_function_group) { - yyerror("Reference to non-existent or invalid getter: " + (yyvsp[(5) - (7)].u.identifier)->get_fully_scoped_name(), (yylsp[(5) - (7)])); + yyerror("Reference to non-existent or invalid getter: " + (yyvsp[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-2])); } - CPPMakeProperty *make_property = new CPPMakeProperty((yyvsp[(3) - (7)].u.identifier), getter->as_function_group(), NULL, current_scope, (yylsp[(1) - (7)]).file); - current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[(1) - (7)])); + CPPMakeProperty *make_property = new CPPMakeProperty((yyvsp[-4].u.identifier), getter->as_function_group(), NULL, current_scope, (yylsp[-6]).file); + current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-6])); } +#line 3620 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 28: -/* Line 1792 of yacc.c */ -#line 533 "dtool/src/cppparser/cppBison.yxx" +#line 534 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPDeclaration *getter = (yyvsp[(5) - (9)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + CPPDeclaration *getter = (yyvsp[-4].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (getter == (CPPDeclaration *)NULL || getter->get_subtype() != CPPDeclaration::ST_function_group) { - yyerror("Reference to non-existent or invalid getter: " + (yyvsp[(5) - (9)].u.identifier)->get_fully_scoped_name(), (yylsp[(5) - (9)])); + yyerror("Reference to non-existent or invalid getter: " + (yyvsp[-4].u.identifier)->get_fully_scoped_name(), (yylsp[-4])); } else { - CPPDeclaration *setter = (yyvsp[(7) - (9)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + CPPDeclaration *setter = (yyvsp[-2].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); CPPFunctionGroup *setter_func = NULL; if (setter == (CPPDeclaration *)NULL || setter->get_subtype() != CPPDeclaration::ST_function_group) { - yyerror("Reference to non-existent or invalid setter: " + (yyvsp[(7) - (9)].u.identifier)->get_fully_scoped_name(), (yylsp[(7) - (9)])); + yyerror("Reference to non-existent or invalid setter: " + (yyvsp[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-2])); } else { setter_func = setter->as_function_group(); } - CPPMakeProperty *make_property = new CPPMakeProperty((yyvsp[(3) - (9)].u.identifier), getter->as_function_group(), - setter_func, current_scope, (yylsp[(1) - (9)]).file); - current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[(1) - (9)])); + CPPMakeProperty *make_property = new CPPMakeProperty((yyvsp[-6].u.identifier), getter->as_function_group(), + setter_func, current_scope, (yylsp[-8]).file); + current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-8])); } } +#line 3645 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 29: -/* Line 1792 of yacc.c */ -#line 554 "dtool/src/cppparser/cppBison.yxx" +#line 555 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPDeclaration *hasser = (yyvsp[(5) - (9)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + CPPDeclaration *hasser = (yyvsp[-4].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (hasser == (CPPDeclaration *)NULL || hasser->get_subtype() != CPPDeclaration::ST_function_group) { - yyerror("Reference to non-existent or invalid has-function: " + (yyvsp[(5) - (9)].u.identifier)->get_fully_scoped_name(), (yylsp[(5) - (9)])); + yyerror("Reference to non-existent or invalid has-function: " + (yyvsp[-4].u.identifier)->get_fully_scoped_name(), (yylsp[-4])); } - CPPDeclaration *getter = (yyvsp[(7) - (9)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + CPPDeclaration *getter = (yyvsp[-2].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (getter == (CPPDeclaration *)NULL || getter->get_subtype() != CPPDeclaration::ST_function_group) { - yyerror("Reference to non-existent or invalid getter: " + (yyvsp[(7) - (9)].u.identifier)->get_fully_scoped_name(), (yylsp[(7) - (9)])); + yyerror("Reference to non-existent or invalid getter: " + (yyvsp[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-2])); } if (hasser && getter) { CPPMakeProperty *make_property; - make_property = new CPPMakeProperty((yyvsp[(3) - (9)].u.identifier), + make_property = new CPPMakeProperty((yyvsp[-6].u.identifier), hasser->as_function_group(), getter->as_function_group(), NULL, NULL, - current_scope, (yylsp[(1) - (9)]).file); - current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[(1) - (9)])); + current_scope, (yylsp[-8]).file); + current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-8])); } } +#line 3671 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 30: -/* Line 1792 of yacc.c */ -#line 576 "dtool/src/cppparser/cppBison.yxx" +#line 577 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPDeclaration *hasser = (yyvsp[(5) - (13)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + CPPDeclaration *hasser = (yyvsp[-8].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (hasser == (CPPDeclaration *)NULL || hasser->get_subtype() != CPPDeclaration::ST_function_group) { - yyerror("Reference to non-existent or invalid has-function: " + (yyvsp[(5) - (13)].u.identifier)->get_fully_scoped_name(), (yylsp[(5) - (13)])); + yyerror("Reference to non-existent or invalid has-function: " + (yyvsp[-8].u.identifier)->get_fully_scoped_name(), (yylsp[-8])); } - CPPDeclaration *getter = (yyvsp[(7) - (13)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + CPPDeclaration *getter = (yyvsp[-6].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (getter == (CPPDeclaration *)NULL || getter->get_subtype() != CPPDeclaration::ST_function_group) { - yyerror("Reference to non-existent or invalid getter: " + (yyvsp[(7) - (13)].u.identifier)->get_fully_scoped_name(), (yylsp[(7) - (13)])); + yyerror("Reference to non-existent or invalid getter: " + (yyvsp[-6].u.identifier)->get_fully_scoped_name(), (yylsp[-6])); } - CPPDeclaration *setter = (yyvsp[(9) - (13)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + CPPDeclaration *setter = (yyvsp[-4].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (setter == (CPPDeclaration *)NULL || setter->get_subtype() != CPPDeclaration::ST_function_group) { - yyerror("Reference to non-existent or invalid setter: " + (yyvsp[(9) - (13)].u.identifier)->get_fully_scoped_name(), (yylsp[(9) - (13)])); + yyerror("Reference to non-existent or invalid setter: " + (yyvsp[-4].u.identifier)->get_fully_scoped_name(), (yylsp[-4])); } - CPPDeclaration *clearer = (yyvsp[(11) - (13)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + CPPDeclaration *clearer = (yyvsp[-2].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (clearer == (CPPDeclaration *)NULL || clearer->get_subtype() != CPPDeclaration::ST_function_group) { - yyerror("Reference to non-existent or invalid clear-function: " + (yyvsp[(11) - (13)].u.identifier)->get_fully_scoped_name(), (yylsp[(11) - (13)])); + yyerror("Reference to non-existent or invalid clear-function: " + (yyvsp[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-2])); } if (hasser && getter && setter && clearer) { CPPMakeProperty *make_property; - make_property = new CPPMakeProperty((yyvsp[(3) - (13)].u.identifier), + make_property = new CPPMakeProperty((yyvsp[-10].u.identifier), hasser->as_function_group(), getter->as_function_group(), setter->as_function_group(), clearer->as_function_group(), - current_scope, (yylsp[(1) - (13)]).file); - current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[(1) - (13)])); + current_scope, (yylsp[-12]).file); + current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-12])); } } +#line 3708 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 31: -/* Line 1792 of yacc.c */ -#line 609 "dtool/src/cppparser/cppBison.yxx" +#line 610 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPDeclaration *length_getter = (yyvsp[(5) - (9)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + CPPDeclaration *length_getter = (yyvsp[-4].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (length_getter == (CPPDeclaration *)NULL || length_getter->get_subtype() != CPPDeclaration::ST_function_group) { - yyerror("reference to non-existent or invalid length method: " + (yyvsp[(5) - (9)].u.identifier)->get_fully_scoped_name(), (yylsp[(5) - (9)])); + yyerror("reference to non-existent or invalid length method: " + (yyvsp[-4].u.identifier)->get_fully_scoped_name(), (yylsp[-4])); length_getter = NULL; } - CPPDeclaration *element_getter = (yyvsp[(7) - (9)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + CPPDeclaration *element_getter = (yyvsp[-2].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (element_getter == (CPPDeclaration *)NULL || element_getter->get_subtype() != CPPDeclaration::ST_function_group) { - yyerror("reference to non-existent or invalid element method: " + (yyvsp[(7) - (9)].u.identifier)->get_fully_scoped_name(), (yylsp[(5) - (9)])); + yyerror("reference to non-existent or invalid element method: " + (yyvsp[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-4])); element_getter = NULL; } if (length_getter != (CPPDeclaration *)NULL && element_getter != (CPPDeclaration *)NULL) { - CPPMakeSeq *make_seq = new CPPMakeSeq((yyvsp[(3) - (9)].u.identifier), + CPPMakeSeq *make_seq = new CPPMakeSeq((yyvsp[-6].u.identifier), length_getter->as_function_group(), element_getter->as_function_group(), - current_scope, (yylsp[(1) - (9)]).file); - current_scope->add_declaration(make_seq, global_scope, current_lexer, (yylsp[(1) - (9)])); + current_scope, (yylsp[-8]).file); + current_scope->add_declaration(make_seq, global_scope, current_lexer, (yylsp[-8])); } } +#line 3734 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 32: -/* Line 1792 of yacc.c */ -#line 631 "dtool/src/cppparser/cppBison.yxx" +#line 632 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPExpression::Result result = (yyvsp[(3) - (7)].u.expr)->evaluate(); + CPPExpression::Result result = (yyvsp[-4].u.expr)->evaluate(); if (result._type == CPPExpression::RT_error) { - yywarning("static_assert requires a constant expression", (yylsp[(3) - (7)])); + yywarning("static_assert requires a constant expression", (yylsp[-4])); } else if (!result.as_boolean()) { stringstream str; - str << *(yyvsp[(5) - (7)].u.expr); - yywarning("static_assert failed: " + str.str(), (yylsp[(3) - (7)])); + str << *(yyvsp[-2].u.expr); + yywarning("static_assert failed: " + str.str(), (yylsp[-4])); } } +#line 3749 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 33: -/* Line 1792 of yacc.c */ -#line 642 "dtool/src/cppparser/cppBison.yxx" +#line 643 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // This alternative version of static_assert was introduced in C++17. - CPPExpression::Result result = (yyvsp[(3) - (5)].u.expr)->evaluate(); + CPPExpression::Result result = (yyvsp[-2].u.expr)->evaluate(); if (result._type == CPPExpression::RT_error) { - yywarning("static_assert requires a constant expression", (yylsp[(3) - (5)])); + yywarning("static_assert requires a constant expression", (yylsp[-2])); } else if (!result.as_boolean()) { - yywarning("static_assert failed", (yylsp[(3) - (5)])); + yywarning("static_assert failed", (yylsp[-2])); } } +#line 3763 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 34: -/* Line 1792 of yacc.c */ -#line 655 "dtool/src/cppparser/cppBison.yxx" +#line 656 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPScope *new_scope = new CPPScope(current_scope, CPPNameComponent("temp"), V_public); push_scope(new_scope); } +#line 3773 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 35: -/* Line 1792 of yacc.c */ -#line 661 "dtool/src/cppparser/cppBison.yxx" +#line 662 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { delete current_scope; pop_scope(); } +#line 3782 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 36: -/* Line 1792 of yacc.c */ -#line 670 "dtool/src/cppparser/cppBison.yxx" +#line 671 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.integer) = 0; } +#line 3790 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 37: -/* Line 1792 of yacc.c */ -#line 674 "dtool/src/cppparser/cppBison.yxx" +#line 675 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_extern; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_extern; } +#line 3798 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 38: -/* Line 1792 of yacc.c */ -#line 678 "dtool/src/cppparser/cppBison.yxx" +#line 679 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(3) - (3)].u.integer) | (int)CPPInstance::SC_extern; - if ((yyvsp[(2) - (3)].str) == "C") { + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_extern; + if ((yyvsp[-1].str) == "C") { (yyval.u.integer) |= (int)CPPInstance::SC_c_binding; - } else if ((yyvsp[(2) - (3)].str) == "C++") { + } else if ((yyvsp[-1].str) == "C++") { (yyval.u.integer) &= ~(int)CPPInstance::SC_c_binding; } else { - yywarning("Ignoring unknown linkage type \"" + (yyvsp[(2) - (3)].str) + "\"", (yylsp[(2) - (3)])); + yywarning("Ignoring unknown linkage type \"" + (yyvsp[-1].str) + "\"", (yylsp[-1])); } } +#line 3813 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 39: -/* Line 1792 of yacc.c */ -#line 689 "dtool/src/cppparser/cppBison.yxx" +#line 690 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_static; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_static; } +#line 3821 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 40: -/* Line 1792 of yacc.c */ -#line 693 "dtool/src/cppparser/cppBison.yxx" +#line 694 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_inline; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_inline; } +#line 3829 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 41: -/* Line 1792 of yacc.c */ -#line 697 "dtool/src/cppparser/cppBison.yxx" +#line 698 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_virtual; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_virtual; } +#line 3837 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 42: -/* Line 1792 of yacc.c */ -#line 701 "dtool/src/cppparser/cppBison.yxx" +#line 702 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_explicit; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_explicit; } +#line 3845 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 43: -/* Line 1792 of yacc.c */ -#line 705 "dtool/src/cppparser/cppBison.yxx" +#line 706 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_register; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_register; } +#line 3853 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 44: -/* Line 1792 of yacc.c */ -#line 709 "dtool/src/cppparser/cppBison.yxx" +#line 710 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_volatile; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_volatile; } +#line 3861 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 45: -/* Line 1792 of yacc.c */ -#line 713 "dtool/src/cppparser/cppBison.yxx" +#line 714 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_mutable; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_mutable; } +#line 3869 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 46: -/* Line 1792 of yacc.c */ -#line 717 "dtool/src/cppparser/cppBison.yxx" +#line 718 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_constexpr; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_constexpr; } +#line 3877 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 47: -/* Line 1792 of yacc.c */ -#line 721 "dtool/src/cppparser/cppBison.yxx" +#line 722 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_blocking; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_blocking; } +#line 3885 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 48: -/* Line 1792 of yacc.c */ -#line 725 "dtool/src/cppparser/cppBison.yxx" +#line 726 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_extension; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_extension; } +#line 3893 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 49: -/* Line 1792 of yacc.c */ -#line 729 "dtool/src/cppparser/cppBison.yxx" +#line 730 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_thread_local; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_thread_local; } +#line 3901 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 50: -/* Line 1792 of yacc.c */ -#line 733 "dtool/src/cppparser/cppBison.yxx" +#line 734 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // Ignore attribute specifiers for now. - (yyval.u.integer) = (yyvsp[(6) - (6)].u.integer); + (yyval.u.integer) = (yyvsp[0].u.integer); } +#line 3910 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 55: -/* Line 1792 of yacc.c */ -#line 751 "dtool/src/cppparser/cppBison.yxx" +#line 752 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { /* multiple_var_declaration adds itself to the scope. */ } +#line 3918 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 56: -/* Line 1792 of yacc.c */ -#line 755 "dtool/src/cppparser/cppBison.yxx" +#line 756 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // 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 // parsing. - current_scope->add_declaration((yyvsp[(2) - (3)].u.decl), global_scope, current_lexer, (yylsp[(2) - (3)])); + current_scope->add_declaration((yyvsp[-1].u.decl), global_scope, current_lexer, (yylsp[-1])); } +#line 3931 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 57: -/* Line 1792 of yacc.c */ -#line 764 "dtool/src/cppparser/cppBison.yxx" +#line 765 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - if ((yyvsp[(2) - (3)].u.instance) != (CPPInstance *)NULL) { - (yyvsp[(2) - (3)].u.instance)->_storage_class |= (current_storage_class | (yyvsp[(1) - (3)].u.integer)); - current_scope->add_declaration((yyvsp[(2) - (3)].u.instance), global_scope, current_lexer, (yylsp[(2) - (3)])); - (yyvsp[(2) - (3)].u.instance)->set_initializer((yyvsp[(3) - (3)].u.expr)); + if ((yyvsp[-1].u.instance) != (CPPInstance *)NULL) { + (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 3943 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 58: -/* Line 1792 of yacc.c */ -#line 772 "dtool/src/cppparser/cppBison.yxx" +#line 773 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - if ((yyvsp[(2) - (3)].u.instance) != (CPPInstance *)NULL) { - (yyvsp[(2) - (3)].u.instance)->_storage_class |= (current_storage_class | (yyvsp[(1) - (3)].u.integer)); - current_scope->add_declaration((yyvsp[(2) - (3)].u.instance), global_scope, current_lexer, (yylsp[(2) - (3)])); - (yyvsp[(2) - (3)].u.instance)->set_initializer((yyvsp[(3) - (3)].u.expr)); + if ((yyvsp[-1].u.instance) != (CPPInstance *)NULL) { + (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 3955 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 59: -/* Line 1792 of yacc.c */ -#line 783 "dtool/src/cppparser/cppBison.yxx" +#line 784 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. - if ((yyvsp[(2) - (2)].u.decl)->as_type_declaration()) { - current_type = (yyvsp[(2) - (2)].u.decl)->as_type_declaration()->_type; + if ((yyvsp[0].u.decl)->as_type_declaration()) { + current_type = (yyvsp[0].u.decl)->as_type_declaration()->_type; } else { - current_type = (yyvsp[(2) - (2)].u.decl)->as_type(); + current_type = (yyvsp[0].u.decl)->as_type(); } - push_storage_class((yyvsp[(1) - (2)].u.integer)); + push_storage_class((yyvsp[-1].u.integer)); } +#line 3970 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 60: -/* Line 1792 of yacc.c */ -#line 794 "dtool/src/cppparser/cppBison.yxx" +#line 795 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_storage_class(); } +#line 3978 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 61: -/* Line 1792 of yacc.c */ -#line 798 "dtool/src/cppparser/cppBison.yxx" +#line 799 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. - if ((yyvsp[(3) - (3)].u.decl)->as_type_declaration()) { - current_type = (yyvsp[(3) - (3)].u.decl)->as_type_declaration()->_type; + if ((yyvsp[0].u.decl)->as_type_declaration()) { + current_type = (yyvsp[0].u.decl)->as_type_declaration()->_type; } else { - current_type = (yyvsp[(3) - (3)].u.decl)->as_type(); + current_type = (yyvsp[0].u.decl)->as_type(); } - push_storage_class((yyvsp[(1) - (3)].u.integer)); + push_storage_class((yyvsp[-2].u.integer)); } +#line 3993 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 62: -/* Line 1792 of yacc.c */ -#line 809 "dtool/src/cppparser/cppBison.yxx" +#line 810 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_storage_class(); } +#line 4001 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 63: -/* Line 1792 of yacc.c */ -#line 820 "dtool/src/cppparser/cppBison.yxx" +#line 821 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPInstance *inst = new CPPInstance(current_type, (yyvsp[(1) - (2)].u.inst_ident), + CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-1].u.inst_ident), current_storage_class, - (yylsp[(1) - (2)]).file); - inst->set_initializer((yyvsp[(2) - (2)].u.expr)); - current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[(1) - (2)])); + (yylsp[-1]).file); + inst->set_initializer((yyvsp[0].u.expr)); + current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-1])); } +#line 4013 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 64: -/* Line 1792 of yacc.c */ -#line 828 "dtool/src/cppparser/cppBison.yxx" +#line 829 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPInstance *inst = new CPPInstance(current_type, (yyvsp[(1) - (4)].u.inst_ident), + CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-3].u.inst_ident), current_storage_class, - (yylsp[(1) - (4)]).file); - inst->set_initializer((yyvsp[(2) - (4)].u.expr)); - current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[(1) - (4)])); + (yylsp[-3]).file); + inst->set_initializer((yyvsp[-2].u.expr)); + current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-3])); } +#line 4025 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 65: -/* Line 1792 of yacc.c */ -#line 839 "dtool/src/cppparser/cppBison.yxx" +#line 840 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyvsp[(1) - (2)].u.inst_ident)->add_modifier(IIT_const); - CPPInstance *inst = new CPPInstance(current_type, (yyvsp[(1) - (2)].u.inst_ident), + (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); + CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-1].u.inst_ident), current_storage_class, - (yylsp[(1) - (2)]).file); - inst->set_initializer((yyvsp[(2) - (2)].u.expr)); - current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[(1) - (2)])); + (yylsp[-1]).file); + inst->set_initializer((yyvsp[0].u.expr)); + current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-1])); } +#line 4038 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 66: -/* Line 1792 of yacc.c */ -#line 848 "dtool/src/cppparser/cppBison.yxx" +#line 849 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyvsp[(1) - (4)].u.inst_ident)->add_modifier(IIT_const); - CPPInstance *inst = new CPPInstance(current_type, (yyvsp[(1) - (4)].u.inst_ident), + (yyvsp[-3].u.inst_ident)->add_modifier(IIT_const); + CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-3].u.inst_ident), current_storage_class, - (yylsp[(1) - (4)]).file); - inst->set_initializer((yyvsp[(2) - (4)].u.expr)); - current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[(1) - (4)])); + (yylsp[-3]).file); + inst->set_initializer((yyvsp[-2].u.expr)); + current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-3])); } +#line 4051 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 67: -/* Line 1792 of yacc.c */ -#line 861 "dtool/src/cppparser/cppBison.yxx" +#line 862 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. - if ((yyvsp[(2) - (2)].u.decl)->as_type_declaration()) { - current_type = (yyvsp[(2) - (2)].u.decl)->as_type_declaration()->_type; + if ((yyvsp[0].u.decl)->as_type_declaration()) { + current_type = (yyvsp[0].u.decl)->as_type_declaration()->_type; } else { - current_type = (yyvsp[(2) - (2)].u.decl)->as_type(); + current_type = (yyvsp[0].u.decl)->as_type(); } - push_storage_class((yyvsp[(1) - (2)].u.integer)); + push_storage_class((yyvsp[-1].u.integer)); } +#line 4066 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 68: -/* Line 1792 of yacc.c */ -#line 872 "dtool/src/cppparser/cppBison.yxx" +#line 873 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_storage_class(); } +#line 4074 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 69: -/* Line 1792 of yacc.c */ -#line 876 "dtool/src/cppparser/cppBison.yxx" +#line 877 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. - if ((yyvsp[(3) - (3)].u.decl)->as_type_declaration()) { - current_type = (yyvsp[(3) - (3)].u.decl)->as_type_declaration()->_type; + if ((yyvsp[0].u.decl)->as_type_declaration()) { + current_type = (yyvsp[0].u.decl)->as_type_declaration()->_type; } else { - current_type = (yyvsp[(3) - (3)].u.decl)->as_type(); + current_type = (yyvsp[0].u.decl)->as_type(); } - push_storage_class((yyvsp[(1) - (3)].u.integer)); + push_storage_class((yyvsp[-2].u.integer)); } +#line 4089 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 70: -/* Line 1792 of yacc.c */ -#line 887 "dtool/src/cppparser/cppBison.yxx" +#line 888 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_storage_class(); } +#line 4097 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 71: -/* Line 1792 of yacc.c */ -#line 891 "dtool/src/cppparser/cppBison.yxx" +#line 892 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - if ((yyvsp[(2) - (3)].u.instance) != (CPPDeclaration *)NULL) { - CPPInstance *inst = (yyvsp[(2) - (3)].u.instance)->as_instance(); + if ((yyvsp[-1].u.instance) != (CPPDeclaration *)NULL) { + CPPInstance *inst = (yyvsp[-1].u.instance)->as_instance(); if (inst != (CPPInstance *)NULL) { - inst->_storage_class |= (current_storage_class | (yyvsp[(1) - (3)].u.integer)); - current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[(2) - (3)])); + inst->_storage_class |= (current_storage_class | (yyvsp[-2].u.integer)); + current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-1])); CPPTypedefType *typedef_type = new CPPTypedefType(inst->_type, inst->_ident, current_scope); - current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[(2) - (3)])); + current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[-1])); } } } +#line 4113 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 72: -/* Line 1792 of yacc.c */ -#line 906 "dtool/src/cppparser/cppBison.yxx" +#line 907 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *target_type = current_type; - CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[(1) - (2)].u.inst_ident), current_scope, (yylsp[(1) - (2)]).file); - current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[(1) - (2)])); + 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 4123 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 73: -/* Line 1792 of yacc.c */ -#line 912 "dtool/src/cppparser/cppBison.yxx" +#line 913 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *target_type = current_type; - CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[(1) - (4)].u.inst_ident), current_scope, (yylsp[(1) - (4)]).file); - current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[(1) - (4)])); + 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 4133 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 74: -/* Line 1792 of yacc.c */ -#line 921 "dtool/src/cppparser/cppBison.yxx" +#line 922 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyvsp[(1) - (2)].u.inst_ident)->add_modifier(IIT_const); + (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); CPPType *target_type = current_type; - CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[(1) - (2)].u.inst_ident), current_scope, (yylsp[(1) - (2)]).file); - current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[(1) - (2)])); + 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 4144 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 75: -/* Line 1792 of yacc.c */ -#line 928 "dtool/src/cppparser/cppBison.yxx" +#line 929 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyvsp[(1) - (4)].u.inst_ident)->add_modifier(IIT_const); + (yyvsp[-3].u.inst_ident)->add_modifier(IIT_const); CPPType *target_type = current_type; - CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[(1) - (4)].u.inst_ident), current_scope, (yylsp[(1) - (4)]).file); - current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[(1) - (4)])); + 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 4155 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 76: -/* Line 1792 of yacc.c */ -#line 940 "dtool/src/cppparser/cppBison.yxx" +#line 941 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - push_scope((yyvsp[(1) - (2)].u.identifier)->get_scope(current_scope, global_scope)); + push_scope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope)); } +#line 4163 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 77: -/* Line 1792 of yacc.c */ -#line 944 "dtool/src/cppparser/cppBison.yxx" +#line 945 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type; - if ((yyvsp[(1) - (6)].u.identifier)->get_simple_name() == current_scope->get_simple_name() || - (yyvsp[(1) - (6)].u.identifier)->get_simple_name() == string("~") + current_scope->get_simple_name()) { + if ((yyvsp[-5].u.identifier)->get_simple_name() == current_scope->get_simple_name() || + (yyvsp[-5].u.identifier)->get_simple_name() == string("~") + current_scope->get_simple_name()) { // This is a constructor, and has no return. type = new CPPSimpleType(CPPSimpleType::T_void); } else { // This isn't a constructor, so it has an implicit return type of // int. - yywarning("function has no return type, assuming int", (yylsp[(1) - (6)])); + yywarning("function has no return type, assuming int", (yylsp[-5])); type = new CPPSimpleType(CPPSimpleType::T_int); } pop_scope(); - CPPInstanceIdentifier *ii = new CPPInstanceIdentifier((yyvsp[(1) - (6)].u.identifier)); - ii->add_func_modifier((yyvsp[(4) - (6)].u.param_list), (yyvsp[(6) - (6)].u.integer)); + CPPInstanceIdentifier *ii = new CPPInstanceIdentifier((yyvsp[-5].u.identifier)); + ii->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); - (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[(1) - (6)]).file); + (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); } +#line 4187 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 78: -/* Line 1792 of yacc.c */ -#line 964 "dtool/src/cppparser/cppBison.yxx" +#line 965 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - push_scope((yyvsp[(1) - (2)].u.identifier)->get_scope(current_scope, global_scope)); + push_scope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope)); } +#line 4195 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 79: -/* Line 1792 of yacc.c */ -#line 968 "dtool/src/cppparser/cppBison.yxx" +#line 969 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); CPPType *type; - if ((yyvsp[(1) - (6)].u.identifier)->get_simple_name() == current_scope->get_simple_name()) { + if ((yyvsp[-5].u.identifier)->get_simple_name() == current_scope->get_simple_name()) { // This is a constructor, and has no return. type = new CPPSimpleType(CPPSimpleType::T_void); } else { @@ -4641,111 +4208,111 @@ yyreduce: type = new CPPSimpleType(CPPSimpleType::T_int); } - CPPInstanceIdentifier *ii = new CPPInstanceIdentifier((yyvsp[(1) - (6)].u.identifier)); - ii->add_func_modifier((yyvsp[(4) - (6)].u.param_list), (yyvsp[(6) - (6)].u.integer)); + CPPInstanceIdentifier *ii = new CPPInstanceIdentifier((yyvsp[-5].u.identifier)); + ii->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); - (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[(1) - (6)]).file); + (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); } +#line 4217 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 80: -/* Line 1792 of yacc.c */ -#line 991 "dtool/src/cppparser/cppBison.yxx" +#line 992 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - push_scope((yyvsp[(2) - (3)].u.identifier)->get_scope(current_scope, global_scope)); + push_scope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope)); } +#line 4225 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 81: -/* Line 1792 of yacc.c */ -#line 995 "dtool/src/cppparser/cppBison.yxx" +#line 996 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); - if ((yyvsp[(2) - (7)].u.identifier)->is_scoped()) { - yyerror("Invalid destructor name: ~" + (yyvsp[(2) - (7)].u.identifier)->get_fully_scoped_name(), (yylsp[(2) - (7)])); + if ((yyvsp[-5].u.identifier)->is_scoped()) { + yyerror("Invalid destructor name: ~" + (yyvsp[-5].u.identifier)->get_fully_scoped_name(), (yylsp[-5])); } else { CPPIdentifier *ident = - new CPPIdentifier("~" + (yyvsp[(2) - (7)].u.identifier)->get_simple_name(), (yylsp[(2) - (7)])); - delete (yyvsp[(2) - (7)].u.identifier); + new CPPIdentifier("~" + (yyvsp[-5].u.identifier)->get_simple_name(), (yylsp[-5])); + delete (yyvsp[-5].u.identifier); CPPType *type; type = new CPPSimpleType(CPPSimpleType::T_void); CPPInstanceIdentifier *ii = new CPPInstanceIdentifier(ident); - ii->add_func_modifier((yyvsp[(5) - (7)].u.param_list), (yyvsp[(7) - (7)].u.integer)); + ii->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); - (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[(2) - (7)]).file); + (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); } } +#line 4248 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 82: -/* Line 1792 of yacc.c */ -#line 1021 "dtool/src/cppparser/cppBison.yxx" +#line 1022 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - push_scope((yyvsp[(4) - (6)].u.inst_ident)->get_scope(current_scope, global_scope)); + push_scope((yyvsp[-2].u.inst_ident)->get_scope(current_scope, global_scope)); } +#line 4256 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 83: -/* Line 1792 of yacc.c */ -#line 1025 "dtool/src/cppparser/cppBison.yxx" +#line 1026 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); - CPPType *type = (yyvsp[(1) - (11)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + CPPType *type = (yyvsp[-10].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type == NULL) { - yyerror(string("internal error resolving type ") + (yyvsp[(1) - (11)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (11)])); + yyerror(string("internal error resolving type ") + (yyvsp[-10].u.identifier)->get_fully_scoped_name(), (yylsp[-10])); } assert(type != NULL); - CPPInstanceIdentifier *ii = (yyvsp[(4) - (11)].u.inst_ident); + CPPInstanceIdentifier *ii = (yyvsp[-7].u.inst_ident); ii->add_modifier(IIT_pointer); - ii->add_func_modifier((yyvsp[(8) - (11)].u.param_list), (yyvsp[(10) - (11)].u.integer)); - (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[(1) - (11)]).file); + 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 4274 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 84: -/* Line 1792 of yacc.c */ -#line 1039 "dtool/src/cppparser/cppBison.yxx" +#line 1040 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - push_scope((yyvsp[(5) - (7)].u.inst_ident)->get_scope(current_scope, global_scope)); + push_scope((yyvsp[-2].u.inst_ident)->get_scope(current_scope, global_scope)); } +#line 4282 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 85: -/* Line 1792 of yacc.c */ -#line 1043 "dtool/src/cppparser/cppBison.yxx" +#line 1044 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); - CPPType *type = (yyvsp[(1) - (12)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + CPPType *type = (yyvsp[-11].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type == NULL) { - yyerror(string("internal error resolving type ") + (yyvsp[(1) - (12)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (12)])); + yyerror(string("internal error resolving type ") + (yyvsp[-11].u.identifier)->get_fully_scoped_name(), (yylsp[-11])); } assert(type != NULL); - CPPInstanceIdentifier *ii = (yyvsp[(5) - (12)].u.inst_ident); - ii->add_scoped_pointer_modifier((yyvsp[(3) - (12)].u.identifier)); - ii->add_func_modifier((yyvsp[(9) - (12)].u.param_list), (yyvsp[(11) - (12)].u.integer)); - (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[(1) - (12)]).file); + CPPInstanceIdentifier *ii = (yyvsp[-7].u.inst_ident); + ii->add_scoped_pointer_modifier((yyvsp[-9].u.identifier)); + 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 4300 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 86: -/* Line 1792 of yacc.c */ -#line 1059 "dtool/src/cppparser/cppBison.yxx" +#line 1060 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - if ((yyvsp[(1) - (4)].u.identifier) != NULL) { - push_scope((yyvsp[(1) - (4)].u.identifier)->get_scope(current_scope, global_scope)); + if ((yyvsp[-3].u.identifier) != NULL) { + push_scope((yyvsp[-3].u.identifier)->get_scope(current_scope, global_scope)); } } +#line 4310 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 87: -/* Line 1792 of yacc.c */ -#line 1065 "dtool/src/cppparser/cppBison.yxx" +#line 1066 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - if ((yyvsp[(1) - (8)].u.identifier) != NULL) { + if ((yyvsp[-7].u.identifier) != NULL) { pop_scope(); } @@ -4758,3861 +4325,3909 @@ yyreduce: // We give typecast operators the name "operator typecast ", // where is a simple name of the type to be typecast. Use // the method's return type to determine the full type description. - string name = "operator typecast " + (yyvsp[(2) - (8)].u.type)->get_simple_name(); - CPPIdentifier *ident = (yyvsp[(1) - (8)].u.identifier); + string name = "operator typecast " + (yyvsp[-6].u.type)->get_simple_name(); + CPPIdentifier *ident = (yyvsp[-7].u.identifier); if (ident == NULL) { - ident = new CPPIdentifier(name, (yylsp[(2) - (8)])); + ident = new CPPIdentifier(name, (yylsp[-6])); } else { ident->add_name(name); } (yyval.u.instance) = CPPInstance::make_typecast_function - (new CPPInstance((yyvsp[(2) - (8)].u.type), (yyvsp[(3) - (8)].u.inst_ident), 0, (yylsp[(3) - (8)]).file), ident, (yyvsp[(6) - (8)].u.param_list), (yyvsp[(8) - (8)].u.integer)); + (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 4339 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 88: -/* Line 1792 of yacc.c */ -#line 1090 "dtool/src/cppparser/cppBison.yxx" +#line 1091 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - if ((yyvsp[(1) - (5)].u.identifier) != NULL) { - push_scope((yyvsp[(1) - (5)].u.identifier)->get_scope(current_scope, global_scope)); + if ((yyvsp[-4].u.identifier) != NULL) { + push_scope((yyvsp[-4].u.identifier)->get_scope(current_scope, global_scope)); } } +#line 4349 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 89: -/* Line 1792 of yacc.c */ -#line 1096 "dtool/src/cppparser/cppBison.yxx" +#line 1097 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - if ((yyvsp[(1) - (9)].u.identifier) != NULL) { + if ((yyvsp[-8].u.identifier) != NULL) { pop_scope(); } - CPPIdentifier *ident = (yyvsp[(1) - (9)].u.identifier); + CPPIdentifier *ident = (yyvsp[-8].u.identifier); if (ident == NULL) { - ident = new CPPIdentifier("operator typecast", (yylsp[(4) - (9)])); + ident = new CPPIdentifier("operator typecast", (yylsp[-5])); } else { ident->add_name("operator typecast"); } - (yyvsp[(4) - (9)].u.inst_ident)->add_modifier(IIT_const); + (yyvsp[-5].u.inst_ident)->add_modifier(IIT_const); (yyval.u.instance) = CPPInstance::make_typecast_function - (new CPPInstance((yyvsp[(3) - (9)].u.type), (yyvsp[(4) - (9)].u.inst_ident), 0, (yylsp[(4) - (9)]).file), ident, (yyvsp[(7) - (9)].u.param_list), (yyvsp[(9) - (9)].u.integer)); + (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 4369 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 90: -/* Line 1792 of yacc.c */ -#line 1116 "dtool/src/cppparser/cppBison.yxx" +#line 1117 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPDeclaration *decl = - (yyvsp[(1) - (1)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + (yyvsp[0].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (decl != (CPPDeclaration *)NULL) { (yyval.u.instance) = decl->as_instance(); } else { (yyval.u.instance) = (CPPInstance *)NULL; } } +#line 4383 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 91: -/* Line 1792 of yacc.c */ -#line 1129 "dtool/src/cppparser/cppBison.yxx" +#line 1130 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.integer) = 0; } +#line 4391 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 92: -/* Line 1792 of yacc.c */ -#line 1133 "dtool/src/cppparser/cppBison.yxx" +#line 1134 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.integer) = (int)CPPFunctionType::F_const_method; } +#line 4399 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 93: -/* Line 1792 of yacc.c */ -#line 1137 "dtool/src/cppparser/cppBison.yxx" +#line 1138 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.integer) = (int)CPPFunctionType::F_noexcept; } +#line 4407 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 94: -/* Line 1792 of yacc.c */ -#line 1141 "dtool/src/cppparser/cppBison.yxx" +#line 1142 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.integer) = (int)CPPFunctionType::F_final; } +#line 4415 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 95: -/* Line 1792 of yacc.c */ -#line 1145 "dtool/src/cppparser/cppBison.yxx" +#line 1146 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.integer) = (int)CPPFunctionType::F_override; } +#line 4423 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 96: -/* Line 1792 of yacc.c */ -#line 1149 "dtool/src/cppparser/cppBison.yxx" +#line 1150 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // Used for lambdas, currently ignored. (yyval.u.integer) = 0; } +#line 4432 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 97: -/* Line 1792 of yacc.c */ -#line 1154 "dtool/src/cppparser/cppBison.yxx" +#line 1155 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(1) - (4)].u.integer); + (yyval.u.integer) = (yyvsp[-3].u.integer); } +#line 4440 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 98: -/* Line 1792 of yacc.c */ -#line 1158 "dtool/src/cppparser/cppBison.yxx" +#line 1159 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[(1) - (5)].u.integer); + (yyval.u.integer) = (yyvsp[-4].u.integer); } +#line 4448 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 99: -/* Line 1792 of yacc.c */ -#line 1169 "dtool/src/cppparser/cppBison.yxx" +#line 1170 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "!"; } +#line 4456 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 100: -/* Line 1792 of yacc.c */ -#line 1173 "dtool/src/cppparser/cppBison.yxx" +#line 1174 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "~"; } +#line 4464 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 101: -/* Line 1792 of yacc.c */ -#line 1177 "dtool/src/cppparser/cppBison.yxx" +#line 1178 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "*"; } +#line 4472 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 102: -/* Line 1792 of yacc.c */ -#line 1181 "dtool/src/cppparser/cppBison.yxx" +#line 1182 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "/"; } +#line 4480 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 103: -/* Line 1792 of yacc.c */ -#line 1185 "dtool/src/cppparser/cppBison.yxx" +#line 1186 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "%"; } +#line 4488 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 104: -/* Line 1792 of yacc.c */ -#line 1189 "dtool/src/cppparser/cppBison.yxx" +#line 1190 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "+"; } +#line 4496 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 105: -/* Line 1792 of yacc.c */ -#line 1193 "dtool/src/cppparser/cppBison.yxx" +#line 1194 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "-"; } +#line 4504 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 106: -/* Line 1792 of yacc.c */ -#line 1197 "dtool/src/cppparser/cppBison.yxx" +#line 1198 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "|"; } +#line 4512 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 107: -/* Line 1792 of yacc.c */ -#line 1201 "dtool/src/cppparser/cppBison.yxx" +#line 1202 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "&"; } +#line 4520 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 108: -/* Line 1792 of yacc.c */ -#line 1205 "dtool/src/cppparser/cppBison.yxx" +#line 1206 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "^"; } +#line 4528 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 109: -/* Line 1792 of yacc.c */ -#line 1209 "dtool/src/cppparser/cppBison.yxx" +#line 1210 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "||"; } +#line 4536 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 110: -/* Line 1792 of yacc.c */ -#line 1213 "dtool/src/cppparser/cppBison.yxx" +#line 1214 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "&&"; } +#line 4544 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 111: -/* Line 1792 of yacc.c */ -#line 1217 "dtool/src/cppparser/cppBison.yxx" +#line 1218 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "=="; } +#line 4552 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 112: -/* Line 1792 of yacc.c */ -#line 1221 "dtool/src/cppparser/cppBison.yxx" +#line 1222 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "!="; } +#line 4560 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 113: -/* Line 1792 of yacc.c */ -#line 1225 "dtool/src/cppparser/cppBison.yxx" +#line 1226 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "<="; } +#line 4568 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 114: -/* Line 1792 of yacc.c */ -#line 1229 "dtool/src/cppparser/cppBison.yxx" +#line 1230 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = ">="; } +#line 4576 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 115: -/* Line 1792 of yacc.c */ -#line 1233 "dtool/src/cppparser/cppBison.yxx" +#line 1234 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "<"; } +#line 4584 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 116: -/* Line 1792 of yacc.c */ -#line 1237 "dtool/src/cppparser/cppBison.yxx" +#line 1238 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = ">"; } +#line 4592 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 117: -/* Line 1792 of yacc.c */ -#line 1241 "dtool/src/cppparser/cppBison.yxx" +#line 1242 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "<<"; } +#line 4600 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 118: -/* Line 1792 of yacc.c */ -#line 1245 "dtool/src/cppparser/cppBison.yxx" +#line 1246 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = ">>"; } +#line 4608 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 119: -/* Line 1792 of yacc.c */ -#line 1249 "dtool/src/cppparser/cppBison.yxx" +#line 1250 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "="; } +#line 4616 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 120: -/* Line 1792 of yacc.c */ -#line 1253 "dtool/src/cppparser/cppBison.yxx" +#line 1254 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = ","; } +#line 4624 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 121: -/* Line 1792 of yacc.c */ -#line 1257 "dtool/src/cppparser/cppBison.yxx" +#line 1258 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "++"; } +#line 4632 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 122: -/* Line 1792 of yacc.c */ -#line 1261 "dtool/src/cppparser/cppBison.yxx" +#line 1262 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "--"; } +#line 4640 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 123: -/* Line 1792 of yacc.c */ -#line 1265 "dtool/src/cppparser/cppBison.yxx" +#line 1266 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "*="; } +#line 4648 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 124: -/* Line 1792 of yacc.c */ -#line 1269 "dtool/src/cppparser/cppBison.yxx" +#line 1270 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "/="; } +#line 4656 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 125: -/* Line 1792 of yacc.c */ -#line 1273 "dtool/src/cppparser/cppBison.yxx" +#line 1274 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "%="; } +#line 4664 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 126: -/* Line 1792 of yacc.c */ -#line 1277 "dtool/src/cppparser/cppBison.yxx" +#line 1278 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "+="; } +#line 4672 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 127: -/* Line 1792 of yacc.c */ -#line 1281 "dtool/src/cppparser/cppBison.yxx" +#line 1282 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "-="; } +#line 4680 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 128: -/* Line 1792 of yacc.c */ -#line 1285 "dtool/src/cppparser/cppBison.yxx" +#line 1286 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "|="; } +#line 4688 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 129: -/* Line 1792 of yacc.c */ -#line 1289 "dtool/src/cppparser/cppBison.yxx" +#line 1290 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "&="; } +#line 4696 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 130: -/* Line 1792 of yacc.c */ -#line 1293 "dtool/src/cppparser/cppBison.yxx" +#line 1294 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "^="; } +#line 4704 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 131: -/* Line 1792 of yacc.c */ -#line 1297 "dtool/src/cppparser/cppBison.yxx" +#line 1298 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "<<="; } +#line 4712 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 132: -/* Line 1792 of yacc.c */ -#line 1301 "dtool/src/cppparser/cppBison.yxx" +#line 1302 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = ">>="; } +#line 4720 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 133: -/* Line 1792 of yacc.c */ -#line 1305 "dtool/src/cppparser/cppBison.yxx" +#line 1306 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "->"; } +#line 4728 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 134: -/* Line 1792 of yacc.c */ -#line 1309 "dtool/src/cppparser/cppBison.yxx" +#line 1310 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "[]"; } +#line 4736 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 135: -/* Line 1792 of yacc.c */ -#line 1313 "dtool/src/cppparser/cppBison.yxx" +#line 1314 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "()"; } +#line 4744 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 136: -/* Line 1792 of yacc.c */ -#line 1317 "dtool/src/cppparser/cppBison.yxx" +#line 1318 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "new"; } +#line 4752 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 137: -/* Line 1792 of yacc.c */ -#line 1321 "dtool/src/cppparser/cppBison.yxx" +#line 1322 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.str) = "delete"; } +#line 4760 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 140: -/* Line 1792 of yacc.c */ -#line 1333 "dtool/src/cppparser/cppBison.yxx" +#line 1334 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { push_scope(new CPPTemplateScope(current_scope)); } +#line 4768 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 141: -/* Line 1792 of yacc.c */ -#line 1337 "dtool/src/cppparser/cppBison.yxx" +#line 1338 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); } +#line 4776 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 145: -/* Line 1792 of yacc.c */ -#line 1350 "dtool/src/cppparser/cppBison.yxx" +#line 1351 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPTemplateScope *ts = current_scope->as_template_scope(); assert(ts != NULL); - ts->add_template_parameter((yyvsp[(1) - (1)].u.decl)); + ts->add_template_parameter((yyvsp[0].u.decl)); } +#line 4786 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 146: -/* Line 1792 of yacc.c */ -#line 1356 "dtool/src/cppparser/cppBison.yxx" +#line 1357 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPTemplateScope *ts = current_scope->as_template_scope(); assert(ts != NULL); - ts->add_template_parameter((yyvsp[(3) - (3)].u.decl)); + ts->add_template_parameter((yyvsp[0].u.decl)); } +#line 4796 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 147: -/* Line 1792 of yacc.c */ -#line 1365 "dtool/src/cppparser/cppBison.yxx" +#line 1366 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[(2) - (2)].u.identifier))); + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[0].u.identifier))); } +#line 4804 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 148: -/* Line 1792 of yacc.c */ -#line 1369 "dtool/src/cppparser/cppBison.yxx" +#line 1370 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[(2) - (4)].u.identifier), (yyvsp[(4) - (4)].u.type))); + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[-2].u.identifier), (yyvsp[0].u.type))); } +#line 4812 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 149: -/* Line 1792 of yacc.c */ -#line 1373 "dtool/src/cppparser/cppBison.yxx" +#line 1374 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[(2) - (2)].u.identifier))); + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[0].u.identifier))); } +#line 4820 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 150: -/* Line 1792 of yacc.c */ -#line 1377 "dtool/src/cppparser/cppBison.yxx" +#line 1378 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[(2) - (4)].u.identifier), (yyvsp[(4) - (4)].u.type))); + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[-2].u.identifier), (yyvsp[0].u.type))); } +#line 4828 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 151: -/* Line 1792 of yacc.c */ -#line 1381 "dtool/src/cppparser/cppBison.yxx" +#line 1382 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPInstance *inst = new CPPInstance((yyvsp[(1) - (3)].u.type), (yyvsp[(2) - (3)].u.inst_ident), 0, (yylsp[(2) - (3)]).file); - inst->set_initializer((yyvsp[(3) - (3)].u.expr)); + 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 4838 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 152: -/* Line 1792 of yacc.c */ -#line 1387 "dtool/src/cppparser/cppBison.yxx" +#line 1388 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyvsp[(3) - (4)].u.inst_ident)->add_modifier(IIT_const); - CPPInstance *inst = new CPPInstance((yyvsp[(2) - (4)].u.type), (yyvsp[(3) - (4)].u.inst_ident), 0, (yylsp[(3) - (4)]).file); - inst->set_initializer((yyvsp[(4) - (4)].u.expr)); + (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 4849 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 153: -/* Line 1792 of yacc.c */ -#line 1397 "dtool/src/cppparser/cppBison.yxx" +#line 1398 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } +#line 4857 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 154: -/* Line 1792 of yacc.c */ -#line 1401 "dtool/src/cppparser/cppBison.yxx" +#line 1402 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - yywarning("Not a type: " + (yyvsp[(1) - (1)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (1)])); + 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 4866 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 155: -/* Line 1792 of yacc.c */ -#line 1406 "dtool/src/cppparser/cppBison.yxx" +#line 1407 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == NULL) { - yyerror(string("internal error resolving type ") + (yyvsp[(1) - (1)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (1)])); + yyerror(string("internal error resolving type ") + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[0])); } assert((yyval.u.type) != NULL); } +#line 4878 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 156: -/* Line 1792 of yacc.c */ -#line 1418 "dtool/src/cppparser/cppBison.yxx" +#line 1419 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); } +#line 4886 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 157: -/* Line 1792 of yacc.c */ -#line 1422 "dtool/src/cppparser/cppBison.yxx" +#line 1423 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // 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. - CPPIdentifier *ident = (yyvsp[(1) - (2)].u.identifier); + CPPIdentifier *ident = (yyvsp[-1].u.identifier); if (ident == NULL) { - ident = new CPPIdentifier("operator "+(yyvsp[(2) - (2)].str), (yylsp[(2) - (2)])); + ident = new CPPIdentifier("operator "+(yyvsp[0].str), (yylsp[0])); } else { - ident->_names.push_back("operator "+(yyvsp[(2) - (2)].str)); + ident->_names.push_back("operator "+(yyvsp[0].str)); } (yyval.u.inst_ident) = new CPPInstanceIdentifier(ident); } +#line 4904 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 158: -/* Line 1792 of yacc.c */ -#line 1436 "dtool/src/cppparser/cppBison.yxx" +#line 1437 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // A C++11 literal operator. - if (!(yyvsp[(2) - (3)].str).empty()) { - yyerror("expected empty string", (yylsp[(2) - (3)])); + if (!(yyvsp[-1].str).empty()) { + yyerror("expected empty string", (yylsp[-1])); } - CPPIdentifier *ident = (yyvsp[(1) - (3)].u.identifier); + CPPIdentifier *ident = (yyvsp[-2].u.identifier); if (ident == NULL) { - ident = new CPPIdentifier("operator \"\" "+(yyvsp[(3) - (3)].u.identifier)->get_simple_name(), (yylsp[(3) - (3)])); + ident = new CPPIdentifier("operator \"\" "+(yyvsp[0].u.identifier)->get_simple_name(), (yylsp[0])); } else { - ident->_names.push_back("operator \"\" "+(yyvsp[(3) - (3)].u.identifier)->get_simple_name()); + ident->_names.push_back("operator \"\" "+(yyvsp[0].u.identifier)->get_simple_name()); } (yyval.u.inst_ident) = new CPPInstanceIdentifier(ident); } +#line 4923 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 159: -/* Line 1792 of yacc.c */ -#line 1451 "dtool/src/cppparser/cppBison.yxx" +#line 1452 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } +#line 4932 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 160: -/* Line 1792 of yacc.c */ -#line 1456 "dtool/src/cppparser/cppBison.yxx" +#line 1457 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } +#line 4941 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 161: -/* Line 1792 of yacc.c */ -#line 1461 "dtool/src/cppparser/cppBison.yxx" +#line 1462 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } +#line 4950 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 162: -/* Line 1792 of yacc.c */ -#line 1466 "dtool/src/cppparser/cppBison.yxx" +#line 1467 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } +#line 4959 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 163: -/* Line 1792 of yacc.c */ -#line 1471 "dtool/src/cppparser/cppBison.yxx" +#line 1472 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } +#line 4968 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 164: -/* Line 1792 of yacc.c */ -#line 1476 "dtool/src/cppparser/cppBison.yxx" +#line 1477 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(3) - (3)].u.inst_ident); - (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[(1) - (3)].u.identifier)); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); } +#line 4977 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 165: -/* Line 1792 of yacc.c */ -#line 1481 "dtool/src/cppparser/cppBison.yxx" +#line 1482 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(1) - (4)].u.inst_ident); - (yyval.u.inst_ident)->add_array_modifier((yyvsp[(3) - (4)].u.expr)); + (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); } +#line 4986 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 166: -/* Line 1792 of yacc.c */ -#line 1486 "dtool/src/cppparser/cppBison.yxx" +#line 1487 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (3)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_paren); } +#line 4995 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 167: -/* Line 1792 of yacc.c */ -#line 1491 "dtool/src/cppparser/cppBison.yxx" +#line 1492 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - push_scope((yyvsp[(1) - (2)].u.inst_ident)->get_scope(current_scope, global_scope)); + push_scope((yyvsp[-1].u.inst_ident)->get_scope(current_scope, global_scope)); } +#line 5003 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 168: -/* Line 1792 of yacc.c */ -#line 1495 "dtool/src/cppparser/cppBison.yxx" +#line 1496 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); - (yyval.u.inst_ident) = (yyvsp[(1) - (6)].u.inst_ident); - if ((yyvsp[(4) - (6)].u.param_list)->is_parameter_expr() && (yyvsp[(6) - (6)].u.integer) == 0) { + (yyval.u.inst_ident) = (yyvsp[-5].u.inst_ident); + if ((yyvsp[-2].u.param_list)->is_parameter_expr() && (yyvsp[0].u.integer) == 0) { // Oops, this must have been an instance declaration with a // parameter list, not a function prototype. - (yyval.u.inst_ident)->add_initializer_modifier((yyvsp[(4) - (6)].u.param_list)); + (yyval.u.inst_ident)->add_initializer_modifier((yyvsp[-2].u.param_list)); } else { // This was (probably) a function prototype. - (yyval.u.inst_ident)->add_func_modifier((yyvsp[(4) - (6)].u.param_list), (yyvsp[(6) - (6)].u.integer)); + (yyval.u.inst_ident)->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); } } +#line 5021 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 169: -/* Line 1792 of yacc.c */ -#line 1513 "dtool/src/cppparser/cppBison.yxx" +#line 1514 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // 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. - if ((yyvsp[(2) - (2)].u.type) != NULL) { - (yyvsp[(1) - (2)].u.inst_ident)->add_trailing_return_type((yyvsp[(2) - (2)].u.type)); + if ((yyvsp[0].u.type) != NULL) { + (yyvsp[-1].u.inst_ident)->add_trailing_return_type((yyvsp[0].u.type)); } - (yyval.u.inst_ident) = (yyvsp[(1) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); } +#line 5035 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 170: -/* Line 1792 of yacc.c */ -#line 1523 "dtool/src/cppparser/cppBison.yxx" +#line 1524 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // Bitfield definition. - (yyvsp[(1) - (3)].u.inst_ident)->_bit_width = (yyvsp[(3) - (3)].u.integer); - (yyval.u.inst_ident) = (yyvsp[(1) - (3)].u.inst_ident); + (yyvsp[-2].u.inst_ident)->_bit_width = (yyvsp[0].u.integer); + (yyval.u.inst_ident) = (yyvsp[-2].u.inst_ident); } +#line 5045 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 171: -/* Line 1792 of yacc.c */ -#line 1533 "dtool/src/cppparser/cppBison.yxx" +#line 1534 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = NULL; } +#line 5053 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 172: -/* Line 1792 of yacc.c */ -#line 1537 "dtool/src/cppparser/cppBison.yxx" +#line 1538 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = (yyvsp[(3) - (3)].u.inst_ident)->unroll_type((yyvsp[(2) - (3)].u.type)); + (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } +#line 5061 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 173: -/* Line 1792 of yacc.c */ -#line 1541 "dtool/src/cppparser/cppBison.yxx" +#line 1542 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyvsp[(4) - (4)].u.inst_ident)->add_modifier(IIT_const); - (yyval.u.type) = (yyvsp[(4) - (4)].u.inst_ident)->unroll_type((yyvsp[(3) - (4)].u.type)); + (yyvsp[0].u.inst_ident)->add_modifier(IIT_const); + (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } +#line 5070 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 174: -/* Line 1792 of yacc.c */ -#line 1550 "dtool/src/cppparser/cppBison.yxx" +#line 1551 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.param_list) = new CPPParameterList; } +#line 5078 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 175: -/* Line 1792 of yacc.c */ -#line 1554 "dtool/src/cppparser/cppBison.yxx" +#line 1555 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.param_list) = new CPPParameterList; (yyval.u.param_list)->_includes_ellipsis = true; } +#line 5087 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 176: -/* Line 1792 of yacc.c */ -#line 1559 "dtool/src/cppparser/cppBison.yxx" +#line 1560 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.param_list) = (yyvsp[(1) - (1)].u.param_list); + (yyval.u.param_list) = (yyvsp[0].u.param_list); } +#line 5095 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 177: -/* Line 1792 of yacc.c */ -#line 1563 "dtool/src/cppparser/cppBison.yxx" +#line 1564 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.param_list) = (yyvsp[(1) - (3)].u.param_list); + (yyval.u.param_list) = (yyvsp[-2].u.param_list); (yyval.u.param_list)->_includes_ellipsis = true; } +#line 5104 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 178: -/* Line 1792 of yacc.c */ -#line 1568 "dtool/src/cppparser/cppBison.yxx" +#line 1569 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.param_list) = (yyvsp[(1) - (2)].u.param_list); + (yyval.u.param_list) = (yyvsp[-1].u.param_list); (yyval.u.param_list)->_includes_ellipsis = true; } +#line 5113 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 179: -/* Line 1792 of yacc.c */ -#line 1576 "dtool/src/cppparser/cppBison.yxx" +#line 1577 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.param_list) = new CPPParameterList; - (yyval.u.param_list)->_parameters.push_back((yyvsp[(1) - (1)].u.instance)); + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); } +#line 5122 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 180: -/* Line 1792 of yacc.c */ -#line 1581 "dtool/src/cppparser/cppBison.yxx" +#line 1582 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.param_list) = (yyvsp[(1) - (3)].u.param_list); - (yyval.u.param_list)->_parameters.push_back((yyvsp[(3) - (3)].u.instance)); + (yyval.u.param_list) = (yyvsp[-2].u.param_list); + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); } +#line 5131 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 181: -/* Line 1792 of yacc.c */ -#line 1589 "dtool/src/cppparser/cppBison.yxx" +#line 1590 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.param_list) = new CPPParameterList; } +#line 5139 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 182: -/* Line 1792 of yacc.c */ -#line 1593 "dtool/src/cppparser/cppBison.yxx" +#line 1594 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.param_list) = new CPPParameterList; (yyval.u.param_list)->_includes_ellipsis = true; } +#line 5148 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 183: -/* Line 1792 of yacc.c */ -#line 1598 "dtool/src/cppparser/cppBison.yxx" +#line 1599 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.param_list) = (yyvsp[(1) - (1)].u.param_list); + (yyval.u.param_list) = (yyvsp[0].u.param_list); } +#line 5156 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 184: -/* Line 1792 of yacc.c */ -#line 1602 "dtool/src/cppparser/cppBison.yxx" +#line 1603 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.param_list) = (yyvsp[(1) - (3)].u.param_list); + (yyval.u.param_list) = (yyvsp[-2].u.param_list); (yyval.u.param_list)->_includes_ellipsis = true; } +#line 5165 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 185: -/* Line 1792 of yacc.c */ -#line 1607 "dtool/src/cppparser/cppBison.yxx" +#line 1608 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.param_list) = (yyvsp[(1) - (2)].u.param_list); + (yyval.u.param_list) = (yyvsp[-1].u.param_list); (yyval.u.param_list)->_includes_ellipsis = true; } +#line 5174 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 186: -/* Line 1792 of yacc.c */ -#line 1615 "dtool/src/cppparser/cppBison.yxx" +#line 1616 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.param_list) = new CPPParameterList; - (yyval.u.param_list)->_parameters.push_back((yyvsp[(1) - (1)].u.instance)); + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); } +#line 5183 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 187: -/* Line 1792 of yacc.c */ -#line 1620 "dtool/src/cppparser/cppBison.yxx" +#line 1621 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.param_list) = (yyvsp[(1) - (3)].u.param_list); - (yyval.u.param_list)->_parameters.push_back((yyvsp[(3) - (3)].u.instance)); + (yyval.u.param_list) = (yyvsp[-2].u.param_list); + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); } +#line 5192 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 188: -/* Line 1792 of yacc.c */ -#line 1628 "dtool/src/cppparser/cppBison.yxx" +#line 1629 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } +#line 5200 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 189: -/* Line 1792 of yacc.c */ -#line 1632 "dtool/src/cppparser/cppBison.yxx" +#line 1633 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); + (yyval.u.expr) = (yyvsp[0].u.expr); } +#line 5208 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 190: -/* Line 1792 of yacc.c */ -#line 1639 "dtool/src/cppparser/cppBison.yxx" +#line 1640 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } +#line 5216 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 191: -/* Line 1792 of yacc.c */ -#line 1643 "dtool/src/cppparser/cppBison.yxx" +#line 1644 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); + (yyval.u.expr) = (yyvsp[0].u.expr); } +#line 5224 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 192: -/* Line 1792 of yacc.c */ -#line 1650 "dtool/src/cppparser/cppBison.yxx" +#line 1651 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } +#line 5232 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 193: -/* Line 1792 of yacc.c */ -#line 1654 "dtool/src/cppparser/cppBison.yxx" +#line 1655 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } +#line 5240 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 194: -/* Line 1792 of yacc.c */ -#line 1658 "dtool/src/cppparser/cppBison.yxx" +#line 1659 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } +#line 5248 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 195: -/* Line 1792 of yacc.c */ -#line 1662 "dtool/src/cppparser/cppBison.yxx" +#line 1663 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = new CPPExpression(CPPExpression::get_default()); } +#line 5256 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 196: -/* Line 1792 of yacc.c */ -#line 1666 "dtool/src/cppparser/cppBison.yxx" +#line 1667 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = new CPPExpression(CPPExpression::get_delete()); } +#line 5264 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 197: -/* Line 1792 of yacc.c */ -#line 1673 "dtool/src/cppparser/cppBison.yxx" +#line 1674 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } +#line 5272 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 198: -/* Line 1792 of yacc.c */ -#line 1677 "dtool/src/cppparser/cppBison.yxx" +#line 1678 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } +#line 5280 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 199: -/* Line 1792 of yacc.c */ -#line 1681 "dtool/src/cppparser/cppBison.yxx" +#line 1682 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); + (yyval.u.expr) = (yyvsp[-1].u.expr); } +#line 5288 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 200: -/* Line 1792 of yacc.c */ -#line 1685 "dtool/src/cppparser/cppBison.yxx" +#line 1686 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = new CPPExpression(CPPExpression::get_default()); } +#line 5296 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 201: -/* Line 1792 of yacc.c */ -#line 1689 "dtool/src/cppparser/cppBison.yxx" +#line 1690 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = new CPPExpression(CPPExpression::get_delete()); } +#line 5304 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 202: -/* Line 1792 of yacc.c */ -#line 1693 "dtool/src/cppparser/cppBison.yxx" +#line 1694 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } +#line 5312 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 206: -/* Line 1792 of yacc.c */ -#line 1706 "dtool/src/cppparser/cppBison.yxx" +#line 1707 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { } +#line 5319 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 210: -/* Line 1792 of yacc.c */ -#line 1715 "dtool/src/cppparser/cppBison.yxx" +#line 1716 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.instance) = new CPPInstance((yyvsp[(1) - (3)].u.type), (yyvsp[(2) - (3)].u.inst_ident), 0, (yylsp[(2) - (3)]).file); - (yyval.u.instance)->set_initializer((yyvsp[(3) - (3)].u.expr)); + (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 5328 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 211: -/* Line 1792 of yacc.c */ -#line 1720 "dtool/src/cppparser/cppBison.yxx" +#line 1721 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyvsp[(3) - (4)].u.inst_ident)->add_modifier(IIT_const); - (yyval.u.instance) = new CPPInstance((yyvsp[(2) - (4)].u.type), (yyvsp[(3) - (4)].u.inst_ident), 0, (yylsp[(3) - (4)]).file); - (yyval.u.instance)->set_initializer((yyvsp[(4) - (4)].u.expr)); + (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 5338 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 212: -/* Line 1792 of yacc.c */ -#line 1726 "dtool/src/cppparser/cppBison.yxx" +#line 1727 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyvsp[(4) - (5)].u.inst_ident)->add_modifier(IIT_const); - (yyval.u.instance) = new CPPInstance((yyvsp[(3) - (5)].u.type), (yyvsp[(4) - (5)].u.inst_ident), 0, (yylsp[(3) - (5)]).file); - (yyval.u.instance)->set_initializer((yyvsp[(5) - (5)].u.expr)); + (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 5348 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 213: -/* Line 1792 of yacc.c */ -#line 1732 "dtool/src/cppparser/cppBison.yxx" +#line 1733 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.instance) = (yyvsp[(2) - (2)].u.instance); + (yyval.u.instance) = (yyvsp[0].u.instance); } +#line 5356 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 214: -/* Line 1792 of yacc.c */ -#line 1743 "dtool/src/cppparser/cppBison.yxx" +#line 1744 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.instance) = (yyvsp[(1) - (1)].u.instance); + (yyval.u.instance) = (yyvsp[0].u.instance); } +#line 5364 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 215: -/* Line 1792 of yacc.c */ -#line 1747 "dtool/src/cppparser/cppBison.yxx" +#line 1748 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_parameter)); (yyval.u.instance) = new CPPInstance(type, "expr"); - (yyval.u.instance)->set_initializer((yyvsp[(1) - (1)].u.expr)); + (yyval.u.instance)->set_initializer((yyvsp[0].u.expr)); } +#line 5375 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 216: -/* Line 1792 of yacc.c */ -#line 1757 "dtool/src/cppparser/cppBison.yxx" +#line 1758 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); } +#line 5383 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 217: -/* Line 1792 of yacc.c */ -#line 1761 "dtool/src/cppparser/cppBison.yxx" +#line 1762 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); } +#line 5391 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 218: -/* Line 1792 of yacc.c */ -#line 1765 "dtool/src/cppparser/cppBison.yxx" +#line 1766 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } +#line 5400 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 219: -/* Line 1792 of yacc.c */ -#line 1770 "dtool/src/cppparser/cppBison.yxx" +#line 1771 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } +#line 5409 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 220: -/* Line 1792 of yacc.c */ -#line 1775 "dtool/src/cppparser/cppBison.yxx" +#line 1776 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } +#line 5418 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 221: -/* Line 1792 of yacc.c */ -#line 1780 "dtool/src/cppparser/cppBison.yxx" +#line 1781 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } +#line 5427 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 222: -/* Line 1792 of yacc.c */ -#line 1785 "dtool/src/cppparser/cppBison.yxx" +#line 1786 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } +#line 5436 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 223: -/* Line 1792 of yacc.c */ -#line 1790 "dtool/src/cppparser/cppBison.yxx" +#line 1791 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(3) - (3)].u.inst_ident); - (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[(1) - (3)].u.identifier)); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); } +#line 5445 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 224: -/* Line 1792 of yacc.c */ -#line 1795 "dtool/src/cppparser/cppBison.yxx" +#line 1796 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(1) - (4)].u.inst_ident); - (yyval.u.inst_ident)->add_array_modifier((yyvsp[(3) - (4)].u.expr)); + (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); } +#line 5454 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 225: -/* Line 1792 of yacc.c */ -#line 1803 "dtool/src/cppparser/cppBison.yxx" +#line 1804 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); } +#line 5462 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 226: -/* Line 1792 of yacc.c */ -#line 1807 "dtool/src/cppparser/cppBison.yxx" +#line 1808 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); } +#line 5470 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 227: -/* Line 1792 of yacc.c */ -#line 1811 "dtool/src/cppparser/cppBison.yxx" +#line 1812 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } +#line 5479 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 228: -/* Line 1792 of yacc.c */ -#line 1816 "dtool/src/cppparser/cppBison.yxx" +#line 1817 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } +#line 5488 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 229: -/* Line 1792 of yacc.c */ -#line 1821 "dtool/src/cppparser/cppBison.yxx" +#line 1822 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } +#line 5497 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 230: -/* Line 1792 of yacc.c */ -#line 1826 "dtool/src/cppparser/cppBison.yxx" +#line 1827 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } +#line 5506 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 231: -/* Line 1792 of yacc.c */ -#line 1831 "dtool/src/cppparser/cppBison.yxx" +#line 1832 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } +#line 5515 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 232: -/* Line 1792 of yacc.c */ -#line 1836 "dtool/src/cppparser/cppBison.yxx" +#line 1837 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(3) - (3)].u.inst_ident); - (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[(1) - (3)].u.identifier)); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); } +#line 5524 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 233: -/* Line 1792 of yacc.c */ -#line 1841 "dtool/src/cppparser/cppBison.yxx" +#line 1842 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(1) - (4)].u.inst_ident); - (yyval.u.inst_ident)->add_array_modifier((yyvsp[(3) - (4)].u.expr)); + (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); } +#line 5533 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 234: -/* Line 1792 of yacc.c */ -#line 1846 "dtool/src/cppparser/cppBison.yxx" +#line 1847 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (7)].u.inst_ident); + (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[(5) - (7)].u.param_list), (yyvsp[(7) - (7)].u.integer)); + (yyval.u.inst_ident)->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); } +#line 5543 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 235: -/* Line 1792 of yacc.c */ -#line 1852 "dtool/src/cppparser/cppBison.yxx" +#line 1853 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (3)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_paren); } +#line 5552 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 236: -/* Line 1792 of yacc.c */ -#line 1860 "dtool/src/cppparser/cppBison.yxx" +#line 1861 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); } +#line 5560 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 237: -/* Line 1792 of yacc.c */ -#line 1864 "dtool/src/cppparser/cppBison.yxx" +#line 1865 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } +#line 5569 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 238: -/* Line 1792 of yacc.c */ -#line 1869 "dtool/src/cppparser/cppBison.yxx" +#line 1870 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } +#line 5578 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 239: -/* Line 1792 of yacc.c */ -#line 1874 "dtool/src/cppparser/cppBison.yxx" +#line 1875 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } +#line 5587 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 240: -/* Line 1792 of yacc.c */ -#line 1879 "dtool/src/cppparser/cppBison.yxx" +#line 1880 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } +#line 5596 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 241: -/* Line 1792 of yacc.c */ -#line 1884 "dtool/src/cppparser/cppBison.yxx" +#line 1885 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } +#line 5605 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 242: -/* Line 1792 of yacc.c */ -#line 1889 "dtool/src/cppparser/cppBison.yxx" +#line 1890 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(3) - (3)].u.inst_ident); - (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[(1) - (3)].u.identifier)); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); } +#line 5614 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 243: -/* Line 1792 of yacc.c */ -#line 1894 "dtool/src/cppparser/cppBison.yxx" +#line 1895 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(1) - (4)].u.inst_ident); - (yyval.u.inst_ident)->add_array_modifier((yyvsp[(3) - (4)].u.expr)); + (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); } +#line 5623 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 244: -/* Line 1792 of yacc.c */ -#line 1902 "dtool/src/cppparser/cppBison.yxx" +#line 1903 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); } +#line 5631 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 245: -/* Line 1792 of yacc.c */ -#line 1906 "dtool/src/cppparser/cppBison.yxx" +#line 1907 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } +#line 5640 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 246: -/* Line 1792 of yacc.c */ -#line 1911 "dtool/src/cppparser/cppBison.yxx" +#line 1912 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } +#line 5649 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 247: -/* Line 1792 of yacc.c */ -#line 1916 "dtool/src/cppparser/cppBison.yxx" +#line 1917 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } +#line 5658 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 248: -/* Line 1792 of yacc.c */ -#line 1921 "dtool/src/cppparser/cppBison.yxx" +#line 1922 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } +#line 5667 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 249: -/* Line 1792 of yacc.c */ -#line 1926 "dtool/src/cppparser/cppBison.yxx" +#line 1927 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } +#line 5676 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 250: -/* Line 1792 of yacc.c */ -#line 1931 "dtool/src/cppparser/cppBison.yxx" +#line 1932 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(3) - (3)].u.inst_ident); - (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[(1) - (3)].u.identifier)); + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); } +#line 5685 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 251: -/* Line 1792 of yacc.c */ -#line 1936 "dtool/src/cppparser/cppBison.yxx" +#line 1937 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(1) - (4)].u.inst_ident); - (yyval.u.inst_ident)->add_array_modifier((yyvsp[(3) - (4)].u.expr)); + (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); } +#line 5694 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 252: -/* Line 1792 of yacc.c */ -#line 1941 "dtool/src/cppparser/cppBison.yxx" +#line 1942 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); (yyval.u.inst_ident)->add_modifier(IIT_paren); - (yyval.u.inst_ident)->add_func_modifier((yyvsp[(2) - (5)].u.param_list), (yyvsp[(4) - (5)].u.integer), (yyvsp[(5) - (5)].u.type)); + (yyval.u.inst_ident)->add_func_modifier((yyvsp[-3].u.param_list), (yyvsp[-1].u.integer), (yyvsp[0].u.type)); } +#line 5704 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 253: -/* Line 1792 of yacc.c */ -#line 1947 "dtool/src/cppparser/cppBison.yxx" +#line 1948 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(3) - (9)].u.inst_ident); + (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[(6) - (9)].u.param_list), (yyvsp[(8) - (9)].u.integer), (yyvsp[(9) - (9)].u.type)); + (yyval.u.inst_ident)->add_func_modifier((yyvsp[-3].u.param_list), (yyvsp[-1].u.integer), (yyvsp[0].u.type)); } +#line 5715 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 254: -/* Line 1792 of yacc.c */ -#line 1954 "dtool/src/cppparser/cppBison.yxx" +#line 1955 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(3) - (9)].u.inst_ident); + (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[(6) - (9)].u.param_list), (yyvsp[(8) - (9)].u.integer), (yyvsp[(9) - (9)].u.type)); + (yyval.u.inst_ident)->add_func_modifier((yyvsp[-3].u.param_list), (yyvsp[-1].u.integer), (yyvsp[0].u.type)); } +#line 5726 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 255: -/* Line 1792 of yacc.c */ -#line 1961 "dtool/src/cppparser/cppBison.yxx" +#line 1962 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.inst_ident) = (yyvsp[(3) - (9)].u.inst_ident); + (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[(6) - (9)].u.param_list), (yyvsp[(8) - (9)].u.integer), (yyvsp[(9) - (9)].u.type)); + (yyval.u.inst_ident)->add_func_modifier((yyvsp[-3].u.param_list), (yyvsp[-1].u.integer), (yyvsp[0].u.type)); } +#line 5737 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 256: -/* Line 1792 of yacc.c */ -#line 1971 "dtool/src/cppparser/cppBison.yxx" +#line 1972 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } +#line 5745 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 257: -/* Line 1792 of yacc.c */ -#line 1975 "dtool/src/cppparser/cppBison.yxx" +#line 1976 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == NULL) { - yyerror(string("internal error resolving type ") + (yyvsp[(1) - (1)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (1)])); + yyerror(string("internal error resolving type ") + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[0])); } assert((yyval.u.type) != NULL); } +#line 5757 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 258: -/* Line 1792 of yacc.c */ -#line 1983 "dtool/src/cppparser/cppBison.yxx" +#line 1984 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); + (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } +#line 5765 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 259: -/* Line 1792 of yacc.c */ -#line 1987 "dtool/src/cppparser/cppBison.yxx" +#line 1988 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.struct_type)); + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.struct_type)); } +#line 5773 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 260: -/* Line 1792 of yacc.c */ -#line 1991 "dtool/src/cppparser/cppBison.yxx" +#line 1992 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.struct_type)); + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.struct_type)); } +#line 5781 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 261: -/* Line 1792 of yacc.c */ -#line 1995 "dtool/src/cppparser/cppBison.yxx" +#line 1996 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.enum_type)); + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.enum_type)); } +#line 5789 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 262: -/* Line 1792 of yacc.c */ -#line 1999 "dtool/src/cppparser/cppBison.yxx" +#line 2000 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { (yyval.u.type) = type; } else { CPPExtensionType *et = - CPPType::new_type(new CPPExtensionType((yyvsp[(1) - (2)].u.extension_enum), (yyvsp[(2) - (2)].u.identifier), current_scope, (yylsp[(1) - (2)]).file)) + CPPType::new_type(new CPPExtensionType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, (yylsp[-1]).file)) ->as_extension_type(); - CPPScope *scope = (yyvsp[(2) - (2)].u.identifier)->get_scope(current_scope, global_scope); + CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope); if (scope != NULL) { scope->define_extension_type(et); } (yyval.u.type) = et; } } +#line 5809 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 263: -/* Line 1792 of yacc.c */ -#line 2015 "dtool/src/cppparser/cppBison.yxx" +#line 2016 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPType *type = (yyvsp[(2) - (4)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + CPPType *type = (yyvsp[-2].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { (yyval.u.type) = type; } else { CPPExtensionType *et = - CPPType::new_type(new CPPExtensionType((yyvsp[(1) - (4)].u.extension_enum), (yyvsp[(2) - (4)].u.identifier), current_scope, (yylsp[(1) - (4)]).file)) + CPPType::new_type(new CPPExtensionType((yyvsp[-3].u.extension_enum), (yyvsp[-2].u.identifier), current_scope, (yylsp[-3]).file)) ->as_extension_type(); - CPPScope *scope = (yyvsp[(2) - (4)].u.identifier)->get_scope(current_scope, global_scope); + CPPScope *scope = (yyvsp[-2].u.identifier)->get_scope(current_scope, global_scope); if (scope != NULL) { scope->define_extension_type(et); } (yyval.u.type) = et; } } +#line 5829 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 264: -/* Line 1792 of yacc.c */ -#line 2031 "dtool/src/cppparser/cppBison.yxx" +#line 2032 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = (yyvsp[(3) - (4)].u.expr)->determine_type(); + (yyval.u.type) = (yyvsp[-1].u.expr)->determine_type(); if ((yyval.u.type) == (CPPType *)NULL) { stringstream str; - str << *(yyvsp[(3) - (4)].u.expr); - yyerror("could not determine type of " + str.str(), (yylsp[(3) - (4)])); + str << *(yyvsp[-1].u.expr); + yyerror("could not determine type of " + str.str(), (yylsp[-1])); } } +#line 5842 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 265: -/* Line 1792 of yacc.c */ -#line 2040 "dtool/src/cppparser/cppBison.yxx" +#line 2041 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_auto)); } +#line 5850 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 266: -/* Line 1792 of yacc.c */ -#line 2047 "dtool/src/cppparser/cppBison.yxx" +#line 2048 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); + (yyval.u.decl) = CPPType::new_type((yyvsp[0].u.simple_type)); } +#line 5858 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 267: -/* Line 1792 of yacc.c */ -#line 2051 "dtool/src/cppparser/cppBison.yxx" +#line 2052 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + (yyval.u.decl) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.decl) == NULL) { - yyerror(string("internal error resolving type ") + (yyvsp[(1) - (1)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (1)])); + yyerror(string("internal error resolving type ") + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[0])); } assert((yyval.u.decl) != NULL); } +#line 5870 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 268: -/* Line 1792 of yacc.c */ -#line 2059 "dtool/src/cppparser/cppBison.yxx" +#line 2060 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); + (yyval.u.decl) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } +#line 5878 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 269: -/* Line 1792 of yacc.c */ -#line 2063 "dtool/src/cppparser/cppBison.yxx" +#line 2064 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = CPPType::new_type((yyvsp[(1) - (1)].u.struct_type)); + (yyval.u.decl) = CPPType::new_type((yyvsp[0].u.struct_type)); } +#line 5886 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 270: -/* Line 1792 of yacc.c */ -#line 2067 "dtool/src/cppparser/cppBison.yxx" +#line 2068 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[(1) - (1)].u.struct_type))); + (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[0].u.struct_type))); } +#line 5894 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 271: -/* Line 1792 of yacc.c */ -#line 2071 "dtool/src/cppparser/cppBison.yxx" +#line 2072 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[(1) - (1)].u.enum_type))); + (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[0].u.enum_type))); } +#line 5902 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 272: -/* Line 1792 of yacc.c */ -#line 2075 "dtool/src/cppparser/cppBison.yxx" +#line 2076 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { (yyval.u.decl) = type; } else { CPPExtensionType *et = - CPPType::new_type(new CPPExtensionType((yyvsp[(1) - (2)].u.extension_enum), (yyvsp[(2) - (2)].u.identifier), current_scope, (yylsp[(1) - (2)]).file)) + CPPType::new_type(new CPPExtensionType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, (yylsp[-1]).file)) ->as_extension_type(); - CPPScope *scope = (yyvsp[(2) - (2)].u.identifier)->get_scope(current_scope, global_scope); + CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope); if (scope != NULL) { scope->define_extension_type(et); } (yyval.u.decl) = et; } } +#line 5922 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 273: -/* Line 1792 of yacc.c */ -#line 2091 "dtool/src/cppparser/cppBison.yxx" +#line 2092 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPType *type = (yyvsp[(2) - (4)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + CPPType *type = (yyvsp[-2].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { (yyval.u.decl) = type; } else { CPPExtensionType *et = - CPPType::new_type(new CPPExtensionType((yyvsp[(1) - (4)].u.extension_enum), (yyvsp[(2) - (4)].u.identifier), current_scope, (yylsp[(1) - (4)]).file)) + CPPType::new_type(new CPPExtensionType((yyvsp[-3].u.extension_enum), (yyvsp[-2].u.identifier), current_scope, (yylsp[-3]).file)) ->as_extension_type(); - CPPScope *scope = (yyvsp[(2) - (4)].u.identifier)->get_scope(current_scope, global_scope); + CPPScope *scope = (yyvsp[-2].u.identifier)->get_scope(current_scope, global_scope); if (scope != NULL) { scope->define_extension_type(et); } (yyval.u.decl) = et; } } +#line 5942 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 274: -/* Line 1792 of yacc.c */ -#line 2107 "dtool/src/cppparser/cppBison.yxx" +#line 2108 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - yywarning(string("C++ does not permit forward declaration of untyped enum ") + (yyvsp[(2) - (2)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (2)])); + yywarning(string("C++ does not permit forward declaration of untyped enum ") + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[-1])); - CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { (yyval.u.decl) = type; } else { CPPExtensionType *et = - CPPType::new_type(new CPPExtensionType((yyvsp[(1) - (2)].u.extension_enum), (yyvsp[(2) - (2)].u.identifier), current_scope, (yylsp[(1) - (2)]).file)) + CPPType::new_type(new CPPExtensionType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, (yylsp[-1]).file)) ->as_extension_type(); - CPPScope *scope = (yyvsp[(2) - (2)].u.identifier)->get_scope(current_scope, global_scope); + CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope); if (scope != NULL) { scope->define_extension_type(et); } (yyval.u.decl) = et; } } +#line 5964 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 275: -/* Line 1792 of yacc.c */ -#line 2125 "dtool/src/cppparser/cppBison.yxx" +#line 2126 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = (yyvsp[(3) - (4)].u.expr)->determine_type(); + (yyval.u.decl) = (yyvsp[-1].u.expr)->determine_type(); if ((yyval.u.decl) == (CPPType *)NULL) { stringstream str; - str << *(yyvsp[(3) - (4)].u.expr); - yyerror("could not determine type of " + str.str(), (yylsp[(3) - (4)])); + str << *(yyvsp[-1].u.expr); + yyerror("could not determine type of " + str.str(), (yylsp[-1])); } } +#line 5977 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 276: -/* Line 1792 of yacc.c */ -#line 2134 "dtool/src/cppparser/cppBison.yxx" +#line 2135 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.decl) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_auto)); } +#line 5985 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 277: -/* Line 1792 of yacc.c */ -#line 2141 "dtool/src/cppparser/cppBison.yxx" +#line 2142 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } +#line 5993 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 278: -/* Line 1792 of yacc.c */ -#line 2145 "dtool/src/cppparser/cppBison.yxx" +#line 2146 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == NULL) { - yyerror(string("internal error resolving type ") + (yyvsp[(1) - (1)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (1)])); + yyerror(string("internal error resolving type ") + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[0])); } assert((yyval.u.type) != NULL); } +#line 6005 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 279: -/* Line 1792 of yacc.c */ -#line 2153 "dtool/src/cppparser/cppBison.yxx" +#line 2154 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); + (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } +#line 6013 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 280: -/* Line 1792 of yacc.c */ -#line 2157 "dtool/src/cppparser/cppBison.yxx" +#line 2158 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { (yyval.u.type) = type; } else { CPPExtensionType *et = - CPPType::new_type(new CPPExtensionType((yyvsp[(1) - (2)].u.extension_enum), (yyvsp[(2) - (2)].u.identifier), current_scope, (yylsp[(1) - (2)]).file)) + CPPType::new_type(new CPPExtensionType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, (yylsp[-1]).file)) ->as_extension_type(); - CPPScope *scope = (yyvsp[(2) - (2)].u.identifier)->get_scope(current_scope, global_scope); + CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope); if (scope != NULL) { scope->define_extension_type(et); } (yyval.u.type) = et; } } +#line 6033 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 281: -/* Line 1792 of yacc.c */ -#line 2173 "dtool/src/cppparser/cppBison.yxx" +#line 2174 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { (yyval.u.type) = type; } else { CPPExtensionType *et = - CPPType::new_type(new CPPExtensionType((yyvsp[(1) - (2)].u.extension_enum), (yyvsp[(2) - (2)].u.identifier), current_scope, (yylsp[(1) - (2)]).file)) + CPPType::new_type(new CPPExtensionType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, (yylsp[-1]).file)) ->as_extension_type(); - CPPScope *scope = (yyvsp[(2) - (2)].u.identifier)->get_scope(current_scope, global_scope); + CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope); if (scope != NULL) { scope->define_extension_type(et); } (yyval.u.type) = et; } } +#line 6053 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 282: -/* Line 1792 of yacc.c */ -#line 2189 "dtool/src/cppparser/cppBison.yxx" +#line 2190 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = (yyvsp[(3) - (4)].u.expr)->determine_type(); + (yyval.u.type) = (yyvsp[-1].u.expr)->determine_type(); if ((yyval.u.type) == (CPPType *)NULL) { stringstream str; - str << *(yyvsp[(3) - (4)].u.expr); - yyerror("could not determine type of " + str.str(), (yylsp[(3) - (4)])); + str << *(yyvsp[-1].u.expr); + yyerror("could not determine type of " + str.str(), (yylsp[-1])); } } +#line 6066 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 283: -/* Line 1792 of yacc.c */ -#line 2198 "dtool/src/cppparser/cppBison.yxx" +#line 2199 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_auto)); } +#line 6074 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 284: -/* Line 1792 of yacc.c */ -#line 2205 "dtool/src/cppparser/cppBison.yxx" +#line 2206 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = (yyvsp[(1) - (1)].u.decl); + (yyval.u.decl) = (yyvsp[0].u.decl); } +#line 6082 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 285: -/* Line 1792 of yacc.c */ -#line 2209 "dtool/src/cppparser/cppBison.yxx" +#line 2210 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - yyerror(string("unknown type '") + (yyvsp[(1) - (1)].u.identifier)->get_fully_scoped_name() + "'", (yylsp[(1) - (1)])); + 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 6092 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 286: -/* Line 1792 of yacc.c */ -#line 2217 "dtool/src/cppparser/cppBison.yxx" +#line 2218 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = (yyvsp[(2) - (2)].u.inst_ident)->unroll_type((yyvsp[(1) - (2)].u.type)); + (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } +#line 6100 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 287: -/* Line 1792 of yacc.c */ -#line 2221 "dtool/src/cppparser/cppBison.yxx" +#line 2222 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyvsp[(3) - (3)].u.inst_ident)->add_modifier(IIT_const); - (yyval.u.type) = (yyvsp[(3) - (3)].u.inst_ident)->unroll_type((yyvsp[(2) - (3)].u.type)); + (yyvsp[0].u.inst_ident)->add_modifier(IIT_const); + (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } +#line 6109 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 288: -/* Line 1792 of yacc.c */ -#line 2229 "dtool/src/cppparser/cppBison.yxx" +#line 2230 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPVisibility starting_vis = - ((yyvsp[(1) - (2)].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; + ((yyvsp[-1].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; CPPScope *new_scope = new CPPScope(current_scope, CPPNameComponent("anon"), starting_vis); - CPPStructType *st = new CPPStructType((yyvsp[(1) - (2)].u.extension_enum), NULL, current_scope, - new_scope, (yylsp[(1) - (2)]).file); + CPPStructType *st = new CPPStructType((yyvsp[-1].u.extension_enum), NULL, current_scope, + new_scope, (yylsp[-1]).file); new_scope->set_struct_type(st); push_scope(new_scope); push_struct(st); } +#line 6127 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 289: -/* Line 1792 of yacc.c */ -#line 2243 "dtool/src/cppparser/cppBison.yxx" +#line 2244 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.struct_type) = current_struct; current_struct->_incomplete = false; pop_struct(); pop_scope(); } +#line 6138 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 290: -/* Line 1792 of yacc.c */ -#line 2253 "dtool/src/cppparser/cppBison.yxx" +#line 2254 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPVisibility starting_vis = - ((yyvsp[(1) - (2)].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; + ((yyvsp[-1].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; - CPPScope *scope = (yyvsp[(2) - (2)].u.identifier)->get_scope(current_scope, global_scope, current_lexer); + CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope, current_lexer); if (scope == NULL) { scope = current_scope; } - CPPScope *new_scope = new CPPScope(scope, (yyvsp[(2) - (2)].u.identifier)->_names.back(), + CPPScope *new_scope = new CPPScope(scope, (yyvsp[0].u.identifier)->_names.back(), starting_vis); - CPPStructType *st = new CPPStructType((yyvsp[(1) - (2)].u.extension_enum), (yyvsp[(2) - (2)].u.identifier), current_scope, - new_scope, (yylsp[(1) - (2)]).file); + CPPStructType *st = new CPPStructType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, + new_scope, (yylsp[-1]).file); new_scope->set_struct_type(st); current_scope->define_extension_type(st); push_scope(new_scope); push_struct(st); } +#line 6162 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 291: -/* Line 1792 of yacc.c */ -#line 2273 "dtool/src/cppparser/cppBison.yxx" +#line 2274 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.struct_type) = current_struct; current_struct->_incomplete = false; pop_struct(); pop_scope(); } +#line 6173 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 293: -/* Line 1792 of yacc.c */ -#line 2284 "dtool/src/cppparser/cppBison.yxx" +#line 2285 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_struct->_final = true; } +#line 6181 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 298: -/* Line 1792 of yacc.c */ -#line 2301 "dtool/src/cppparser/cppBison.yxx" +#line 2302 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[(1) - (1)].u.type), V_unknown, false); + current_struct->append_derivation((yyvsp[0].u.type), V_unknown, false); } +#line 6189 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 299: -/* Line 1792 of yacc.c */ -#line 2305 "dtool/src/cppparser/cppBison.yxx" +#line 2306 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[(2) - (2)].u.type), V_public, false); + current_struct->append_derivation((yyvsp[0].u.type), V_public, false); } +#line 6197 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 300: -/* Line 1792 of yacc.c */ -#line 2309 "dtool/src/cppparser/cppBison.yxx" +#line 2310 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[(2) - (2)].u.type), V_protected, false); + current_struct->append_derivation((yyvsp[0].u.type), V_protected, false); } +#line 6205 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 301: -/* Line 1792 of yacc.c */ -#line 2313 "dtool/src/cppparser/cppBison.yxx" +#line 2314 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[(2) - (2)].u.type), V_private, false); + current_struct->append_derivation((yyvsp[0].u.type), V_private, false); } +#line 6213 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 302: -/* Line 1792 of yacc.c */ -#line 2317 "dtool/src/cppparser/cppBison.yxx" +#line 2318 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_public, true); + current_struct->append_derivation((yyvsp[0].u.type), V_public, true); } +#line 6221 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 303: -/* Line 1792 of yacc.c */ -#line 2321 "dtool/src/cppparser/cppBison.yxx" +#line 2322 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_protected, true); + current_struct->append_derivation((yyvsp[0].u.type), V_protected, true); } +#line 6229 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 304: -/* Line 1792 of yacc.c */ -#line 2325 "dtool/src/cppparser/cppBison.yxx" +#line 2326 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_private, true); + current_struct->append_derivation((yyvsp[0].u.type), V_private, true); } +#line 6237 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 305: -/* Line 1792 of yacc.c */ -#line 2329 "dtool/src/cppparser/cppBison.yxx" +#line 2330 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_public, true); + current_struct->append_derivation((yyvsp[0].u.type), V_public, true); } +#line 6245 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 306: -/* Line 1792 of yacc.c */ -#line 2333 "dtool/src/cppparser/cppBison.yxx" +#line 2334 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_protected, true); + current_struct->append_derivation((yyvsp[0].u.type), V_protected, true); } +#line 6253 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 307: -/* Line 1792 of yacc.c */ -#line 2337 "dtool/src/cppparser/cppBison.yxx" +#line 2338 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_private, true); + current_struct->append_derivation((yyvsp[0].u.type), V_private, true); } +#line 6261 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 308: -/* Line 1792 of yacc.c */ -#line 2344 "dtool/src/cppparser/cppBison.yxx" +#line 2345 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.enum_type) = current_enum; current_enum = NULL; } +#line 6270 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 309: -/* Line 1792 of yacc.c */ -#line 2352 "dtool/src/cppparser/cppBison.yxx" +#line 2353 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_enum = new CPPEnumType((yyvsp[(2) - (4)].u.identifier), (yyvsp[(4) - (4)].u.type), current_scope, (yylsp[(1) - (4)]).file); + current_enum = new CPPEnumType((yyvsp[-2].u.extension_enum), NULL, (yyvsp[0].u.type), current_scope, NULL, (yylsp[-2]).file); } +#line 6278 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 310: -/* Line 1792 of yacc.c */ -#line 2356 "dtool/src/cppparser/cppBison.yxx" +#line 2357 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_enum = new CPPEnumType((yyvsp[(2) - (2)].u.identifier), current_scope, (yylsp[(1) - (2)]).file); + current_enum = new CPPEnumType((yyvsp[0].u.extension_enum), NULL, current_scope, NULL, (yylsp[0]).file); } +#line 6286 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 311: -/* Line 1792 of yacc.c */ -#line 2360 "dtool/src/cppparser/cppBison.yxx" +#line 2361 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_enum = new CPPEnumType(NULL, (yyvsp[(3) - (3)].u.type), current_scope, (yylsp[(1) - (3)]).file); + 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 6295 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 312: -/* Line 1792 of yacc.c */ -#line 2364 "dtool/src/cppparser/cppBison.yxx" +#line 2366 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_enum = new CPPEnumType(NULL, current_scope, (yylsp[(1) - (1)]).file); + 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 6304 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 313: -/* Line 1792 of yacc.c */ -#line 2371 "dtool/src/cppparser/cppBison.yxx" +#line 2374 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } +#line 6312 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 314: -/* Line 1792 of yacc.c */ -#line 2375 "dtool/src/cppparser/cppBison.yxx" +#line 2378 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); } +#line 6320 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 316: -/* Line 1792 of yacc.c */ -#line 2383 "dtool/src/cppparser/cppBison.yxx" +#line 2386 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { assert(current_enum != NULL); - CPPInstance *inst = current_enum->add_element((yyvsp[(2) - (3)].u.identifier)->get_simple_name()); - current_scope->add_enum_value(inst, current_lexer, (yylsp[(2) - (3)])); + current_enum->add_element((yyvsp[-1].u.identifier)->get_simple_name(), NULL, current_lexer, (yylsp[-1])); } +#line 6329 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 317: -/* Line 1792 of yacc.c */ -#line 2389 "dtool/src/cppparser/cppBison.yxx" +#line 2391 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { assert(current_enum != NULL); - CPPInstance *inst = current_enum->add_element((yyvsp[(2) - (5)].u.identifier)->get_simple_name(), (yyvsp[(4) - (5)].u.expr)); - current_scope->add_enum_value(inst, current_lexer, (yylsp[(2) - (5)])); + current_enum->add_element((yyvsp[-3].u.identifier)->get_simple_name(), (yyvsp[-1].u.expr), current_lexer, (yylsp[-3])); } +#line 6338 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 319: -/* Line 1792 of yacc.c */ -#line 2398 "dtool/src/cppparser/cppBison.yxx" +#line 2399 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { assert(current_enum != NULL); - CPPInstance *inst = current_enum->add_element((yyvsp[(2) - (2)].u.identifier)->get_simple_name()); - current_scope->add_enum_value(inst, current_lexer, (yylsp[(2) - (2)])); + current_enum->add_element((yyvsp[0].u.identifier)->get_simple_name(), NULL, current_lexer, (yylsp[0])); } +#line 6347 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 320: -/* Line 1792 of yacc.c */ -#line 2404 "dtool/src/cppparser/cppBison.yxx" +#line 2404 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { assert(current_enum != NULL); - CPPInstance *inst = current_enum->add_element((yyvsp[(2) - (4)].u.identifier)->get_simple_name(), (yyvsp[(4) - (4)].u.expr)); - current_scope->add_enum_value(inst, current_lexer, (yylsp[(2) - (4)])); + current_enum->add_element((yyvsp[-2].u.identifier)->get_simple_name(), (yyvsp[0].u.expr), current_lexer, (yylsp[-2])); } +#line 6356 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 321: -/* Line 1792 of yacc.c */ -#line 2413 "dtool/src/cppparser/cppBison.yxx" +#line 2412 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.extension_enum) = CPPExtensionType::T_enum; } +#line 6364 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 322: -/* Line 1792 of yacc.c */ -#line 2420 "dtool/src/cppparser/cppBison.yxx" +#line 2416 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.extension_enum) = CPPExtensionType::T_class; + (yyval.u.extension_enum) = CPPExtensionType::T_enum_class; } +#line 6372 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 323: -/* Line 1792 of yacc.c */ -#line 2424 "dtool/src/cppparser/cppBison.yxx" +#line 2420 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.extension_enum) = CPPExtensionType::T_struct; + (yyval.u.extension_enum) = CPPExtensionType::T_enum_struct; } +#line 6380 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 324: -/* Line 1792 of yacc.c */ -#line 2428 "dtool/src/cppparser/cppBison.yxx" +#line 2427 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.extension_enum) = CPPExtensionType::T_union; + (yyval.u.extension_enum) = CPPExtensionType::T_class; } +#line 6388 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 325: -/* Line 1792 of yacc.c */ -#line 2435 "dtool/src/cppparser/cppBison.yxx" +#line 2431 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPScope *scope = (yyvsp[(2) - (3)].u.identifier)->find_scope(current_scope, global_scope, current_lexer); - if (scope == NULL) { - // This must be a new namespace declaration. - CPPScope *parent_scope = - (yyvsp[(2) - (3)].u.identifier)->get_scope(current_scope, global_scope, current_lexer); - if (parent_scope == NULL) { - parent_scope = current_scope; - } - scope = new CPPScope(parent_scope, (yyvsp[(2) - (3)].u.identifier)->_names.back(), V_public); - } - - CPPNamespace *nspace = new CPPNamespace((yyvsp[(2) - (3)].u.identifier), scope, (yylsp[(1) - (3)]).file); - current_scope->add_declaration(nspace, global_scope, current_lexer, (yylsp[(1) - (3)])); - current_scope->define_namespace(nspace); - push_scope(scope); + (yyval.u.extension_enum) = CPPExtensionType::T_struct; } +#line 6396 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 326: -/* Line 1792 of yacc.c */ -#line 2453 "dtool/src/cppparser/cppBison.yxx" +#line 2435 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - pop_scope(); + (yyval.u.extension_enum) = CPPExtensionType::T_union; } +#line 6404 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 327: -/* Line 1792 of yacc.c */ -#line 2457 "dtool/src/cppparser/cppBison.yxx" +#line 2442 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPScope *scope = (yyvsp[(3) - (4)].u.identifier)->find_scope(current_scope, global_scope, current_lexer); + CPPScope *scope = (yyvsp[-1].u.identifier)->find_scope(current_scope, global_scope, current_lexer); if (scope == NULL) { // This must be a new namespace declaration. CPPScope *parent_scope = - (yyvsp[(3) - (4)].u.identifier)->get_scope(current_scope, global_scope, current_lexer); + (yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope, current_lexer); if (parent_scope == NULL) { parent_scope = current_scope; } - scope = new CPPScope(parent_scope, (yyvsp[(3) - (4)].u.identifier)->_names.back(), V_public); + scope = new CPPScope(parent_scope, (yyvsp[-1].u.identifier)->_names.back(), V_public); } - CPPNamespace *nspace = new CPPNamespace((yyvsp[(3) - (4)].u.identifier), scope, (yylsp[(2) - (4)]).file); - nspace->_is_inline = true; - current_scope->add_declaration(nspace, global_scope, current_lexer, (yylsp[(2) - (4)])); + CPPNamespace *nspace = new CPPNamespace((yyvsp[-1].u.identifier), scope, (yylsp[-2]).file); + current_scope->add_declaration(nspace, global_scope, current_lexer, (yylsp[-2])); current_scope->define_namespace(nspace); push_scope(scope); } +#line 6426 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 328: -/* Line 1792 of yacc.c */ -#line 2476 "dtool/src/cppparser/cppBison.yxx" +#line 2460 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); } +#line 6434 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 331: -/* Line 1792 of yacc.c */ -#line 2485 "dtool/src/cppparser/cppBison.yxx" + case 329: +#line 2464 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPUsing *using_decl = new CPPUsing((yyvsp[(2) - (3)].u.identifier), false, (yylsp[(1) - (3)]).file); - current_scope->add_declaration(using_decl, global_scope, current_lexer, (yylsp[(1) - (3)])); - current_scope->add_using(using_decl, global_scope, current_lexer); + CPPScope *scope = (yyvsp[-1].u.identifier)->find_scope(current_scope, global_scope, current_lexer); + if (scope == NULL) { + // This must be a new namespace declaration. + CPPScope *parent_scope = + (yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope, current_lexer); + if (parent_scope == NULL) { + parent_scope = current_scope; + } + scope = new CPPScope(parent_scope, (yyvsp[-1].u.identifier)->_names.back(), V_public); + } + + CPPNamespace *nspace = new CPPNamespace((yyvsp[-1].u.identifier), scope, (yylsp[-2]).file); + nspace->_is_inline = true; + current_scope->add_declaration(nspace, global_scope, current_lexer, (yylsp[-2])); + current_scope->define_namespace(nspace); + push_scope(scope); } +#line 6457 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 332: -/* Line 1792 of yacc.c */ -#line 2491 "dtool/src/cppparser/cppBison.yxx" + case 330: +#line 2483 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - // This is really just an alternative way to declare a typedef. - CPPTypedefType *typedef_type = new CPPTypedefType((yyvsp[(4) - (5)].u.type), (yyvsp[(2) - (5)].u.identifier), current_scope); - typedef_type->_using = true; - current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[(1) - (5)])); + pop_scope(); } +#line 6465 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 333: -/* Line 1792 of yacc.c */ -#line 2498 "dtool/src/cppparser/cppBison.yxx" +#line 2492 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPUsing *using_decl = new CPPUsing((yyvsp[(3) - (4)].u.identifier), true, (yylsp[(1) - (4)]).file); - current_scope->add_declaration(using_decl, global_scope, current_lexer, (yylsp[(1) - (4)])); + 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 6475 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 337: -/* Line 1792 of yacc.c */ -#line 2513 "dtool/src/cppparser/cppBison.yxx" + case 334: +#line 2498 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_bool); + // 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 6486 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 338: -/* Line 1792 of yacc.c */ -#line 2517 "dtool/src/cppparser/cppBison.yxx" + case 335: +#line 2505 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char); + 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 6496 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 339: -/* Line 1792 of yacc.c */ -#line 2521 "dtool/src/cppparser/cppBison.yxx" +#line 2520 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_wchar_t); + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_bool); } +#line 6504 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 340: -/* Line 1792 of yacc.c */ -#line 2525 "dtool/src/cppparser/cppBison.yxx" +#line 2524 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char16_t); + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char); } +#line 6512 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 341: -/* Line 1792 of yacc.c */ -#line 2529 "dtool/src/cppparser/cppBison.yxx" +#line 2528 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char32_t); + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_wchar_t); } +#line 6520 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 342: -/* Line 1792 of yacc.c */ -#line 2533 "dtool/src/cppparser/cppBison.yxx" +#line 2532 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char16_t); +} +#line 6528 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 343: +#line 2536 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char32_t); +} +#line 6536 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 344: +#line 2540 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_short); } +#line 6545 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 343: -/* Line 1792 of yacc.c */ -#line 2538 "dtool/src/cppparser/cppBison.yxx" + case 345: +#line 2545 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_long); } +#line 6554 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 344: -/* Line 1792 of yacc.c */ -#line 2543 "dtool/src/cppparser/cppBison.yxx" + case 346: +#line 2550 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_unsigned); } +#line 6563 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 345: -/* Line 1792 of yacc.c */ -#line 2548 "dtool/src/cppparser/cppBison.yxx" + case 347: +#line 2555 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_signed); } - break; - - case 346: -/* Line 1792 of yacc.c */ -#line 2553 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int); -} - break; - - case 347: -/* Line 1792 of yacc.c */ -#line 2557 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.simple_type) = (yyvsp[(2) - (2)].u.simple_type); - (yyval.u.simple_type)->_flags |= CPPSimpleType::F_short; -} +#line 6572 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 348: -/* Line 1792 of yacc.c */ -#line 2562 "dtool/src/cppparser/cppBison.yxx" +#line 2560 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.simple_type) = (yyvsp[(2) - (2)].u.simple_type); + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int); +} +#line 6580 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 349: +#line 2564 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.simple_type) = (yyvsp[0].u.simple_type); + (yyval.u.simple_type)->_flags |= CPPSimpleType::F_short; +} +#line 6589 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 350: +#line 2569 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (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; } else { (yyval.u.simple_type)->_flags |= CPPSimpleType::F_long; } } - break; - - case 349: -/* Line 1792 of yacc.c */ -#line 2571 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.simple_type) = (yyvsp[(2) - (2)].u.simple_type); - (yyval.u.simple_type)->_flags |= CPPSimpleType::F_unsigned; -} - break; - - case 350: -/* Line 1792 of yacc.c */ -#line 2576 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.simple_type) = (yyvsp[(2) - (2)].u.simple_type); - (yyval.u.simple_type)->_flags |= CPPSimpleType::F_signed; -} +#line 6602 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 351: -/* Line 1792 of yacc.c */ -#line 2584 "dtool/src/cppparser/cppBison.yxx" +#line 2578 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float); + (yyval.u.simple_type) = (yyvsp[0].u.simple_type); + (yyval.u.simple_type)->_flags |= CPPSimpleType::F_unsigned; } +#line 6611 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 352: -/* Line 1792 of yacc.c */ -#line 2588 "dtool/src/cppparser/cppBison.yxx" +#line 2583 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double); + (yyval.u.simple_type) = (yyvsp[0].u.simple_type); + (yyval.u.simple_type)->_flags |= CPPSimpleType::F_signed; } +#line 6620 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 353: -/* Line 1792 of yacc.c */ -#line 2592 "dtool/src/cppparser/cppBison.yxx" +#line 2591 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float); +} +#line 6628 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 354: +#line 2595 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double); +} +#line 6636 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 355: +#line 2599 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double, CPPSimpleType::F_long); } - break; - - case 354: -/* Line 1792 of yacc.c */ -#line 2600 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_void); -} - break; - - case 355: -/* Line 1792 of yacc.c */ -#line 2609 "dtool/src/cppparser/cppBison.yxx" - { - current_lexer->_resolve_identifiers = false; -} +#line 6645 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 356: -/* Line 1792 of yacc.c */ -#line 2613 "dtool/src/cppparser/cppBison.yxx" +#line 2607 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_void); +} +#line 6653 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 357: +#line 2616 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + current_lexer->_resolve_identifiers = false; +} +#line 6661 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 358: +#line 2620 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_lexer->_resolve_identifiers = true; } +#line 6669 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 459: -/* Line 1792 of yacc.c */ -#line 2654 "dtool/src/cppparser/cppBison.yxx" + case 461: +#line 2661 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { } - break; - - case 483: -/* Line 1792 of yacc.c */ -#line 2663 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (CPPExpression *)NULL; -} - break; - - case 484: -/* Line 1792 of yacc.c */ -#line 2667 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); -} +#line 6676 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 485: -/* Line 1792 of yacc.c */ -#line 2674 "dtool/src/cppparser/cppBison.yxx" +#line 2670 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } +#line 6684 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 486: -/* Line 1792 of yacc.c */ -#line 2678 "dtool/src/cppparser/cppBison.yxx" +#line 2674 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); + (yyval.u.expr) = (yyvsp[0].u.expr); } +#line 6692 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 487: -/* Line 1792 of yacc.c */ -#line 2685 "dtool/src/cppparser/cppBison.yxx" +#line 2681 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); + (yyval.u.expr) = (CPPExpression *)NULL; } +#line 6700 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 488: -/* Line 1792 of yacc.c */ -#line 2689 "dtool/src/cppparser/cppBison.yxx" +#line 2685 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(',', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = (yyvsp[0].u.expr); } +#line 6708 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 489: -/* Line 1792 of yacc.c */ -#line 2696 "dtool/src/cppparser/cppBison.yxx" +#line 2692 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); + (yyval.u.expr) = (yyvsp[0].u.expr); } +#line 6716 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 490: -/* Line 1792 of yacc.c */ -#line 2700 "dtool/src/cppparser/cppBison.yxx" +#line 2696 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(2) - (4)].u.type), (yyvsp[(4) - (4)].u.expr))); + (yyval.u.expr) = new CPPExpression(',', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6724 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 491: -/* Line 1792 of yacc.c */ -#line 2704 "dtool/src/cppparser/cppBison.yxx" +#line 2703 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr), CPPExpression::T_static_cast)); + (yyval.u.expr) = (yyvsp[0].u.expr); } +#line 6732 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 492: -/* Line 1792 of yacc.c */ -#line 2708 "dtool/src/cppparser/cppBison.yxx" +#line 2707 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr), CPPExpression::T_dynamic_cast)); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); } +#line 6740 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 493: -/* Line 1792 of yacc.c */ -#line 2712 "dtool/src/cppparser/cppBison.yxx" +#line 2711 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr), CPPExpression::T_const_cast)); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_static_cast)); } +#line 6748 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 494: -/* Line 1792 of yacc.c */ -#line 2716 "dtool/src/cppparser/cppBison.yxx" +#line 2715 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr), CPPExpression::T_reinterpret_cast)); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_dynamic_cast)); } +#line 6756 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 495: -/* Line 1792 of yacc.c */ -#line 2720 "dtool/src/cppparser/cppBison.yxx" +#line 2719 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_const_cast)); } +#line 6764 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 496: -/* Line 1792 of yacc.c */ -#line 2724 "dtool/src/cppparser/cppBison.yxx" +#line 2723 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[(3) - (4)].u.type))); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_reinterpret_cast)); } +#line 6772 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 497: -/* Line 1792 of yacc.c */ -#line 2728 "dtool/src/cppparser/cppBison.yxx" +#line 2727 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); } +#line 6780 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 498: -/* Line 1792 of yacc.c */ -#line 2732 "dtool/src/cppparser/cppBison.yxx" +#line 2731 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[-1].u.type))); } +#line 6788 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 499: -/* Line 1792 of yacc.c */ -#line 2736 "dtool/src/cppparser/cppBison.yxx" +#line 2735 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); } +#line 6796 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 500: -/* Line 1792 of yacc.c */ -#line 2740 "dtool/src/cppparser/cppBison.yxx" +#line 2739 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); } +#line 6804 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 501: -/* Line 1792 of yacc.c */ -#line 2744 "dtool/src/cppparser/cppBison.yxx" +#line 2743 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); } +#line 6812 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 502: -/* Line 1792 of yacc.c */ -#line 2748 "dtool/src/cppparser/cppBison.yxx" +#line 2747 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[0].u.expr)); } +#line 6820 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 503: -/* Line 1792 of yacc.c */ -#line 2752 "dtool/src/cppparser/cppBison.yxx" +#line 2751 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('*', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[0].u.expr)); } +#line 6828 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 504: -/* Line 1792 of yacc.c */ -#line 2756 "dtool/src/cppparser/cppBison.yxx" +#line 2755 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('/', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); } +#line 6836 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 505: -/* Line 1792 of yacc.c */ -#line 2760 "dtool/src/cppparser/cppBison.yxx" +#line 2759 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('%', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6844 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 506: -/* Line 1792 of yacc.c */ -#line 2764 "dtool/src/cppparser/cppBison.yxx" +#line 2763 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('+', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6852 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 507: -/* Line 1792 of yacc.c */ -#line 2768 "dtool/src/cppparser/cppBison.yxx" +#line 2767 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('-', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6860 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 508: -/* Line 1792 of yacc.c */ -#line 2772 "dtool/src/cppparser/cppBison.yxx" +#line 2771 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('|', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6868 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 509: -/* Line 1792 of yacc.c */ -#line 2776 "dtool/src/cppparser/cppBison.yxx" +#line 2775 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('^', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6876 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 510: -/* Line 1792 of yacc.c */ -#line 2780 "dtool/src/cppparser/cppBison.yxx" +#line 2779 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('&', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6884 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 511: -/* Line 1792 of yacc.c */ -#line 2784 "dtool/src/cppparser/cppBison.yxx" +#line 2783 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6892 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 512: -/* Line 1792 of yacc.c */ -#line 2788 "dtool/src/cppparser/cppBison.yxx" +#line 2787 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6900 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 513: -/* Line 1792 of yacc.c */ -#line 2792 "dtool/src/cppparser/cppBison.yxx" +#line 2791 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6908 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 514: -/* Line 1792 of yacc.c */ -#line 2796 "dtool/src/cppparser/cppBison.yxx" +#line 2795 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6916 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 515: -/* Line 1792 of yacc.c */ -#line 2800 "dtool/src/cppparser/cppBison.yxx" +#line 2799 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6924 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 516: -/* Line 1792 of yacc.c */ -#line 2804 "dtool/src/cppparser/cppBison.yxx" +#line 2803 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6932 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 517: -/* Line 1792 of yacc.c */ -#line 2808 "dtool/src/cppparser/cppBison.yxx" +#line 2807 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6940 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 518: -/* Line 1792 of yacc.c */ -#line 2812 "dtool/src/cppparser/cppBison.yxx" +#line 2811 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6948 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 519: -/* Line 1792 of yacc.c */ -#line 2816 "dtool/src/cppparser/cppBison.yxx" +#line 2815 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('?', (yyvsp[(1) - (5)].u.expr), (yyvsp[(3) - (5)].u.expr), (yyvsp[(5) - (5)].u.expr)); + (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6956 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 520: -/* Line 1792 of yacc.c */ -#line 2820 "dtool/src/cppparser/cppBison.yxx" +#line 2819 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('[', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); + (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6964 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 521: -/* Line 1792 of yacc.c */ -#line 2824 "dtool/src/cppparser/cppBison.yxx" +#line 2823 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); + (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 6972 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 522: -/* Line 1792 of yacc.c */ -#line 2828 "dtool/src/cppparser/cppBison.yxx" +#line 2827 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } +#line 6980 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 523: -/* Line 1792 of yacc.c */ -#line 2832 "dtool/src/cppparser/cppBison.yxx" +#line 2831 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('.', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } +#line 6988 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 524: -/* Line 1792 of yacc.c */ -#line 2836 "dtool/src/cppparser/cppBison.yxx" +#line 2835 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); } +#line 6996 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 525: -/* Line 1792 of yacc.c */ -#line 2840 "dtool/src/cppparser/cppBison.yxx" +#line 2839 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); + (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7004 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 526: -/* Line 1792 of yacc.c */ -#line 2848 "dtool/src/cppparser/cppBison.yxx" +#line 2843 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7012 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 527: -/* Line 1792 of yacc.c */ -#line 2852 "dtool/src/cppparser/cppBison.yxx" +#line 2847 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(2) - (4)].u.type), (yyvsp[(4) - (4)].u.expr))); + (yyval.u.expr) = (yyvsp[-1].u.expr); } +#line 7020 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 528: -/* Line 1792 of yacc.c */ -#line 2856 "dtool/src/cppparser/cppBison.yxx" +#line 2855 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr), CPPExpression::T_static_cast)); + (yyval.u.expr) = (yyvsp[0].u.expr); } +#line 7028 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 529: -/* Line 1792 of yacc.c */ -#line 2860 "dtool/src/cppparser/cppBison.yxx" +#line 2859 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr), CPPExpression::T_dynamic_cast)); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); } +#line 7036 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 530: -/* Line 1792 of yacc.c */ -#line 2864 "dtool/src/cppparser/cppBison.yxx" +#line 2863 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr), CPPExpression::T_const_cast)); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_static_cast)); } +#line 7044 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 531: -/* Line 1792 of yacc.c */ -#line 2868 "dtool/src/cppparser/cppBison.yxx" +#line 2867 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr), CPPExpression::T_reinterpret_cast)); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_dynamic_cast)); } +#line 7052 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 532: -/* Line 1792 of yacc.c */ -#line 2872 "dtool/src/cppparser/cppBison.yxx" +#line 2871 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - // A constructor call. - CPPType *type = (yyvsp[(1) - (4)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); - if (type == NULL) { - yyerror(string("internal error resolving type ") + (yyvsp[(1) - (4)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (4)])); - } - assert(type != NULL); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_const_cast)); } +#line 7060 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 533: -/* Line 1792 of yacc.c */ -#line 2882 "dtool/src/cppparser/cppBison.yxx" +#line 2875 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPType *type = - CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int)); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_reinterpret_cast)); } +#line 7068 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 534: -/* Line 1792 of yacc.c */ -#line 2888 "dtool/src/cppparser/cppBison.yxx" +#line 2879 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPType *type = - CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char)); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); + // A constructor call. + CPPType *type = (yyvsp[-3].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + if (type == NULL) { + yyerror(string("internal error resolving type ") + (yyvsp[-3].u.identifier)->get_fully_scoped_name(), (yylsp[-3])); + } + assert(type != NULL); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 7082 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 535: -/* Line 1792 of yacc.c */ -#line 2894 "dtool/src/cppparser/cppBison.yxx" +#line 2889 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = - CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_wchar_t)); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); + CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int)); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 7092 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 536: -/* Line 1792 of yacc.c */ -#line 2900 "dtool/src/cppparser/cppBison.yxx" +#line 2895 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = - CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char16_t)); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); + CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char)); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 7102 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 537: -/* Line 1792 of yacc.c */ -#line 2906 "dtool/src/cppparser/cppBison.yxx" +#line 2901 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = - CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char32_t)); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); + CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_wchar_t)); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 7112 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 538: -/* Line 1792 of yacc.c */ -#line 2912 "dtool/src/cppparser/cppBison.yxx" +#line 2907 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = - CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_bool)); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); + CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char16_t)); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 7122 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 539: -/* Line 1792 of yacc.c */ -#line 2918 "dtool/src/cppparser/cppBison.yxx" +#line 2913 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + 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 7132 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 540: +#line 2919 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + CPPType *type = + CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_bool)); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); +} +#line 7142 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 541: +#line 2925 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_short)); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 7153 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 540: -/* Line 1792 of yacc.c */ -#line 2925 "dtool/src/cppparser/cppBison.yxx" + case 542: +#line 2932 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_long)); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 7164 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 541: -/* Line 1792 of yacc.c */ -#line 2932 "dtool/src/cppparser/cppBison.yxx" + case 543: +#line 2939 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_unsigned)); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 7175 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 542: -/* Line 1792 of yacc.c */ -#line 2939 "dtool/src/cppparser/cppBison.yxx" + case 544: +#line 2946 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_signed)); - (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[(3) - (4)].u.expr))); -} - break; - - case 543: -/* Line 1792 of yacc.c */ -#line 2946 "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[(3) - (4)].u.expr))); -} - break; - - case 544: -/* Line 1792 of yacc.c */ -#line 2952 "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[(3) - (4)].u.expr))); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 7186 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 545: -/* Line 1792 of yacc.c */ -#line 2958 "dtool/src/cppparser/cppBison.yxx" +#line 2953 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); + CPPType *type = + CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_float)); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 7196 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 546: -/* Line 1792 of yacc.c */ -#line 2962 "dtool/src/cppparser/cppBison.yxx" +#line 2959 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[(3) - (4)].u.type))); + CPPType *type = + CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_double)); + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } +#line 7206 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 547: -/* Line 1792 of yacc.c */ -#line 2966 "dtool/src/cppparser/cppBison.yxx" +#line 2965 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[(2) - (2)].u.type))); + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); } +#line 7214 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 548: -/* Line 1792 of yacc.c */ -#line 2970 "dtool/src/cppparser/cppBison.yxx" +#line 2969 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[(2) - (5)].u.type), (yyvsp[(4) - (5)].u.expr))); + (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[-1].u.type))); } +#line 7222 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 549: -/* Line 1792 of yacc.c */ -#line 2974 "dtool/src/cppparser/cppBison.yxx" +#line 2973 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPIdentifier ident(""); - ident.add_name("std"); - ident.add_name("type_info"); - CPPType *std_type_info = ident.find_type(current_scope, global_scope, false, current_lexer); - if (!std_type_info) { - yywarning("cannot use typeid before including ", (yylsp[(1) - (4)])); - } - (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[(3) - (4)].u.type), std_type_info)); + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[0].u.type))); } +#line 7230 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 550: -/* Line 1792 of yacc.c */ -#line 2985 "dtool/src/cppparser/cppBison.yxx" +#line 2977 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPIdentifier ident(""); - ident.add_name("std"); - ident.add_name("type_info"); - CPPType *std_type_info = ident.find_type(current_scope, global_scope, false, current_lexer); - if (!std_type_info) { - yywarning("cannot use typeid before including ", (yylsp[(1) - (4)])); - } - (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[(3) - (4)].u.expr), std_type_info)); + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[-3].u.type), (yyvsp[-1].u.expr))); } +#line 7238 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 551: -/* Line 1792 of yacc.c */ -#line 2996 "dtool/src/cppparser/cppBison.yxx" +#line 2981 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[(2) - (2)].u.expr)); + CPPIdentifier ident(""); + ident.add_name("std"); + ident.add_name("type_info"); + CPPType *std_type_info = ident.find_type(current_scope, global_scope, false, current_lexer); + if (!std_type_info) { + yywarning("cannot use typeid before including ", (yylsp[-3])); + } + (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.type), std_type_info)); } +#line 7253 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 552: -/* Line 1792 of yacc.c */ -#line 3000 "dtool/src/cppparser/cppBison.yxx" +#line 2992 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[(2) - (2)].u.expr)); + CPPIdentifier ident(""); + ident.add_name("std"); + ident.add_name("type_info"); + CPPType *std_type_info = ident.find_type(current_scope, global_scope, false, current_lexer); + if (!std_type_info) { + yywarning("cannot use typeid before including ", (yylsp[-3])); + } + (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.expr), std_type_info)); } +#line 7268 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 553: -/* Line 1792 of yacc.c */ -#line 3004 "dtool/src/cppparser/cppBison.yxx" +#line 3003 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); } +#line 7276 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 554: -/* Line 1792 of yacc.c */ -#line 3008 "dtool/src/cppparser/cppBison.yxx" +#line 3007 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); } +#line 7284 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 555: -/* Line 1792 of yacc.c */ -#line 3012 "dtool/src/cppparser/cppBison.yxx" +#line 3011 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); } +#line 7292 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 556: -/* Line 1792 of yacc.c */ -#line 3016 "dtool/src/cppparser/cppBison.yxx" +#line 3015 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[0].u.expr)); } +#line 7300 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 557: -/* Line 1792 of yacc.c */ -#line 3020 "dtool/src/cppparser/cppBison.yxx" +#line 3019 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('*', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[0].u.expr)); } +#line 7308 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 558: -/* Line 1792 of yacc.c */ -#line 3024 "dtool/src/cppparser/cppBison.yxx" +#line 3023 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('/', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); } +#line 7316 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 559: -/* Line 1792 of yacc.c */ -#line 3028 "dtool/src/cppparser/cppBison.yxx" +#line 3027 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('%', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7324 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 560: -/* Line 1792 of yacc.c */ -#line 3032 "dtool/src/cppparser/cppBison.yxx" +#line 3031 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('+', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7332 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 561: -/* Line 1792 of yacc.c */ -#line 3036 "dtool/src/cppparser/cppBison.yxx" +#line 3035 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('-', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7340 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 562: -/* Line 1792 of yacc.c */ -#line 3040 "dtool/src/cppparser/cppBison.yxx" +#line 3039 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('|', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7348 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 563: -/* Line 1792 of yacc.c */ -#line 3044 "dtool/src/cppparser/cppBison.yxx" +#line 3043 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('^', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7356 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 564: -/* Line 1792 of yacc.c */ -#line 3048 "dtool/src/cppparser/cppBison.yxx" +#line 3047 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('&', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7364 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 565: -/* Line 1792 of yacc.c */ -#line 3052 "dtool/src/cppparser/cppBison.yxx" +#line 3051 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7372 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 566: -/* Line 1792 of yacc.c */ -#line 3056 "dtool/src/cppparser/cppBison.yxx" +#line 3055 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7380 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 567: -/* Line 1792 of yacc.c */ -#line 3060 "dtool/src/cppparser/cppBison.yxx" +#line 3059 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7388 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 568: -/* Line 1792 of yacc.c */ -#line 3064 "dtool/src/cppparser/cppBison.yxx" +#line 3063 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7396 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 569: -/* Line 1792 of yacc.c */ -#line 3068 "dtool/src/cppparser/cppBison.yxx" +#line 3067 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7404 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 570: -/* Line 1792 of yacc.c */ -#line 3072 "dtool/src/cppparser/cppBison.yxx" +#line 3071 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7412 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 571: -/* Line 1792 of yacc.c */ -#line 3076 "dtool/src/cppparser/cppBison.yxx" +#line 3075 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('<', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7420 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 572: -/* Line 1792 of yacc.c */ -#line 3080 "dtool/src/cppparser/cppBison.yxx" +#line 3079 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('>', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7428 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 573: -/* Line 1792 of yacc.c */ -#line 3084 "dtool/src/cppparser/cppBison.yxx" +#line 3083 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('<', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7436 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 574: -/* Line 1792 of yacc.c */ -#line 3088 "dtool/src/cppparser/cppBison.yxx" +#line 3087 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('>', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7444 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 575: -/* Line 1792 of yacc.c */ -#line 3092 "dtool/src/cppparser/cppBison.yxx" +#line 3091 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('?', (yyvsp[(1) - (5)].u.expr), (yyvsp[(3) - (5)].u.expr), (yyvsp[(5) - (5)].u.expr)); + (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7452 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 576: -/* Line 1792 of yacc.c */ -#line 3096 "dtool/src/cppparser/cppBison.yxx" +#line 3095 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('[', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); + (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7460 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 577: -/* Line 1792 of yacc.c */ -#line 3100 "dtool/src/cppparser/cppBison.yxx" +#line 3099 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); + (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7468 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 578: -/* Line 1792 of yacc.c */ -#line 3104 "dtool/src/cppparser/cppBison.yxx" +#line 3103 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } +#line 7476 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 579: -/* Line 1792 of yacc.c */ -#line 3108 "dtool/src/cppparser/cppBison.yxx" +#line 3107 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('.', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } +#line 7484 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 580: -/* Line 1792 of yacc.c */ -#line 3112 "dtool/src/cppparser/cppBison.yxx" +#line 3111 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); } +#line 7492 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 581: -/* Line 1792 of yacc.c */ -#line 3116 "dtool/src/cppparser/cppBison.yxx" +#line 3115 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); + (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7500 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 582: -/* Line 1792 of yacc.c */ -#line 3123 "dtool/src/cppparser/cppBison.yxx" +#line 3119 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } +#line 7508 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 583: -/* Line 1792 of yacc.c */ -#line 3127 "dtool/src/cppparser/cppBison.yxx" +#line 3123 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(true); + (yyval.u.expr) = (yyvsp[-1].u.expr); } +#line 7516 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 584: -/* Line 1792 of yacc.c */ -#line 3131 "dtool/src/cppparser/cppBison.yxx" +#line 3130 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(false); + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); } +#line 7524 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 585: -/* Line 1792 of yacc.c */ -#line 3135 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); -} - break; - - case 586: -/* Line 1792 of yacc.c */ -#line 3139 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.real)); -} - break; - - case 587: -/* Line 1792 of yacc.c */ -#line 3143 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); -} - break; - - case 588: -/* Line 1792 of yacc.c */ -#line 3147 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); -} - break; - - case 589: -/* Line 1792 of yacc.c */ -#line 3151 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.identifier), current_scope, global_scope, current_lexer); -} - break; - - case 590: -/* Line 1792 of yacc.c */ -#line 3155 "dtool/src/cppparser/cppBison.yxx" - { - // A variable named "final". C++11 explicitly permits this. - CPPIdentifier *ident = new CPPIdentifier("final", (yylsp[(1) - (1)])); - (yyval.u.expr) = new CPPExpression(ident, current_scope, global_scope, current_lexer); -} - break; - - case 591: -/* Line 1792 of yacc.c */ -#line 3161 "dtool/src/cppparser/cppBison.yxx" - { - // A variable named "override". C++11 explicitly permits this. - CPPIdentifier *ident = new CPPIdentifier("override", (yylsp[(1) - (1)])); - (yyval.u.expr) = new CPPExpression(ident, current_scope, global_scope, current_lexer); -} - break; - - case 592: -/* Line 1792 of yacc.c */ -#line 3167 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::get_nullptr()); -} - break; - - case 593: -/* Line 1792 of yacc.c */ -#line 3171 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = NULL; -} - break; - - case 594: -/* Line 1792 of yacc.c */ -#line 3175 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = NULL; -} - break; - - case 595: -/* Line 1792 of yacc.c */ -#line 3189 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); -} - break; - - case 596: -/* Line 1792 of yacc.c */ -#line 3193 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(2) - (4)].u.type), (yyvsp[(4) - (4)].u.expr))); -} - break; - - case 597: -/* Line 1792 of yacc.c */ -#line 3197 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr), CPPExpression::T_static_cast)); -} - break; - - case 598: -/* Line 1792 of yacc.c */ -#line 3201 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr), CPPExpression::T_dynamic_cast)); -} - break; - - case 599: -/* Line 1792 of yacc.c */ -#line 3205 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr), CPPExpression::T_const_cast)); -} - break; - - case 600: -/* Line 1792 of yacc.c */ -#line 3209 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr), CPPExpression::T_reinterpret_cast)); -} - break; - - case 601: -/* Line 1792 of yacc.c */ -#line 3213 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); -} - break; - - case 602: -/* Line 1792 of yacc.c */ -#line 3217 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[(3) - (4)].u.type))); -} - break; - - case 603: -/* Line 1792 of yacc.c */ -#line 3221 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[(2) - (2)].u.type))); -} - break; - - case 604: -/* Line 1792 of yacc.c */ -#line 3225 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[(2) - (5)].u.type), (yyvsp[(4) - (5)].u.expr))); -} - break; - - case 605: -/* Line 1792 of yacc.c */ -#line 3229 "dtool/src/cppparser/cppBison.yxx" - { - CPPIdentifier ident(""); - ident.add_name("std"); - ident.add_name("type_info"); - CPPType *std_type_info = ident.find_type(current_scope, global_scope, false, current_lexer); - if (!std_type_info) { - yywarning("cannot use typeid before including ", (yylsp[(1) - (4)])); - } - (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[(3) - (4)].u.type), std_type_info)); -} - break; - - case 606: -/* Line 1792 of yacc.c */ -#line 3240 "dtool/src/cppparser/cppBison.yxx" - { - CPPIdentifier ident(""); - ident.add_name("std"); - ident.add_name("type_info"); - CPPType *std_type_info = ident.find_type(current_scope, global_scope, false, current_lexer); - if (!std_type_info) { - yywarning("cannot use typeid before including ", (yylsp[(1) - (4)])); - } - (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[(3) - (4)].u.expr), std_type_info)); -} - break; - - case 607: -/* Line 1792 of yacc.c */ -#line 3251 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 608: -/* Line 1792 of yacc.c */ -#line 3255 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 609: -/* Line 1792 of yacc.c */ -#line 3259 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 610: -/* Line 1792 of yacc.c */ -#line 3263 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 611: -/* Line 1792 of yacc.c */ -#line 3267 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 612: -/* Line 1792 of yacc.c */ -#line 3271 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('*', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 613: -/* Line 1792 of yacc.c */ -#line 3275 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('/', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 614: -/* Line 1792 of yacc.c */ -#line 3279 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('%', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 615: -/* Line 1792 of yacc.c */ -#line 3283 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('+', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 616: -/* Line 1792 of yacc.c */ -#line 3287 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('-', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 617: -/* Line 1792 of yacc.c */ -#line 3291 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('|', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 618: -/* Line 1792 of yacc.c */ -#line 3295 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('^', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 619: -/* Line 1792 of yacc.c */ -#line 3299 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('&', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 620: -/* Line 1792 of yacc.c */ -#line 3303 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 621: -/* Line 1792 of yacc.c */ -#line 3307 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 622: -/* Line 1792 of yacc.c */ -#line 3311 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 623: -/* Line 1792 of yacc.c */ -#line 3315 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 624: -/* Line 1792 of yacc.c */ -#line 3319 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 625: -/* Line 1792 of yacc.c */ -#line 3323 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 626: -/* Line 1792 of yacc.c */ -#line 3327 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('<', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 627: -/* Line 1792 of yacc.c */ -#line 3331 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('>', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 628: -/* Line 1792 of yacc.c */ -#line 3335 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 629: -/* Line 1792 of yacc.c */ -#line 3339 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 630: -/* Line 1792 of yacc.c */ -#line 3343 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('?', (yyvsp[(1) - (5)].u.expr), (yyvsp[(3) - (5)].u.expr), (yyvsp[(5) - (5)].u.expr)); -} - break; - - case 631: -/* Line 1792 of yacc.c */ -#line 3347 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('[', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); -} - break; - - case 632: -/* Line 1792 of yacc.c */ -#line 3351 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); -} - break; - - case 633: -/* Line 1792 of yacc.c */ -#line 3355 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (3)].u.expr)); -} - break; - - case 634: -/* Line 1792 of yacc.c */ -#line 3359 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('.', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 635: -/* Line 1792 of yacc.c */ -#line 3363 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 636: -/* Line 1792 of yacc.c */ -#line 3367 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); -} - break; - - case 637: -/* Line 1792 of yacc.c */ -#line 3374 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); -} - break; - - case 638: -/* Line 1792 of yacc.c */ -#line 3378 "dtool/src/cppparser/cppBison.yxx" +#line 3134 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = new CPPExpression(true); } +#line 7532 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 639: -/* Line 1792 of yacc.c */ -#line 3382 "dtool/src/cppparser/cppBison.yxx" + case 586: +#line 3138 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = new CPPExpression(false); } +#line 7540 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 640: -/* Line 1792 of yacc.c */ -#line 3386 "dtool/src/cppparser/cppBison.yxx" + case 587: +#line 3142 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); } +#line 7548 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 641: -/* Line 1792 of yacc.c */ -#line 3390 "dtool/src/cppparser/cppBison.yxx" + case 588: +#line 3146 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.real)); + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.real)); } +#line 7556 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 642: -/* Line 1792 of yacc.c */ -#line 3394 "dtool/src/cppparser/cppBison.yxx" + case 589: +#line 3150 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); + (yyval.u.expr) = (yyvsp[0].u.expr); } +#line 7564 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 643: -/* Line 1792 of yacc.c */ -#line 3398 "dtool/src/cppparser/cppBison.yxx" + case 590: +#line 3154 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); + (yyval.u.expr) = (yyvsp[0].u.expr); } +#line 7572 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 644: -/* Line 1792 of yacc.c */ -#line 3402 "dtool/src/cppparser/cppBison.yxx" + case 591: +#line 3158 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.identifier), current_scope, global_scope, current_lexer); + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer); } +#line 7580 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 645: -/* Line 1792 of yacc.c */ -#line 3406 "dtool/src/cppparser/cppBison.yxx" + case 592: +#line 3162 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // A variable named "final". C++11 explicitly permits this. - CPPIdentifier *ident = new CPPIdentifier("final", (yylsp[(1) - (1)])); + CPPIdentifier *ident = new CPPIdentifier("final", (yylsp[0])); (yyval.u.expr) = new CPPExpression(ident, current_scope, global_scope, current_lexer); } +#line 7590 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 646: -/* Line 1792 of yacc.c */ -#line 3412 "dtool/src/cppparser/cppBison.yxx" + case 593: +#line 3168 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // A variable named "override". C++11 explicitly permits this. - CPPIdentifier *ident = new CPPIdentifier("override", (yylsp[(1) - (1)])); + CPPIdentifier *ident = new CPPIdentifier("override", (yylsp[0])); (yyval.u.expr) = new CPPExpression(ident, current_scope, global_scope, current_lexer); } +#line 7600 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 647: -/* Line 1792 of yacc.c */ -#line 3418 "dtool/src/cppparser/cppBison.yxx" + case 594: +#line 3174 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = new CPPExpression(CPPExpression::get_nullptr()); } +#line 7608 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 655: -/* Line 1792 of yacc.c */ -#line 3439 "dtool/src/cppparser/cppBison.yxx" + case 595: +#line 3178 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPType *type = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, true); - if (type == NULL) { - type = CPPType::new_type(new CPPTBDType((yyvsp[(1) - (1)].u.identifier))); - } - (yyval.u.type) = type; + (yyval.u.expr) = NULL; } +#line 7616 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 656: -/* Line 1792 of yacc.c */ -#line 3447 "dtool/src/cppparser/cppBison.yxx" + case 596: +#line 3182 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, true, current_lexer); - if (type == NULL) { - type = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); - } - (yyval.u.type) = type; + (yyval.u.expr) = NULL; } +#line 7624 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 597: +#line 3196 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 7632 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 598: +#line 3200 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); +} +#line 7640 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 599: +#line 3204 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_static_cast)); +} +#line 7648 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 600: +#line 3208 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_dynamic_cast)); +} +#line 7656 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 601: +#line 3212 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_const_cast)); +} +#line 7664 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 602: +#line 3216 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_reinterpret_cast)); +} +#line 7672 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 603: +#line 3220 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); +} +#line 7680 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 604: +#line 3224 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[-1].u.type))); +} +#line 7688 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 605: +#line 3228 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[0].u.type))); +} +#line 7696 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 606: +#line 3232 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[-3].u.type), (yyvsp[-1].u.expr))); +} +#line 7704 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 607: +#line 3236 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + CPPIdentifier ident(""); + ident.add_name("std"); + ident.add_name("type_info"); + CPPType *std_type_info = ident.find_type(current_scope, global_scope, false, current_lexer); + if (!std_type_info) { + yywarning("cannot use typeid before including ", (yylsp[-3])); + } + (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.type), std_type_info)); +} +#line 7719 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 608: +#line 3247 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + CPPIdentifier ident(""); + ident.add_name("std"); + ident.add_name("type_info"); + CPPType *std_type_info = ident.find_type(current_scope, global_scope, false, current_lexer); + if (!std_type_info) { + yywarning("cannot use typeid before including ", (yylsp[-3])); + } + (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.expr), std_type_info)); +} +#line 7734 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 609: +#line 3258 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); +} +#line 7742 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 610: +#line 3262 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); +} +#line 7750 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 611: +#line 3266 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); +} +#line 7758 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 612: +#line 3270 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[0].u.expr)); +} +#line 7766 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 613: +#line 3274 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); +} +#line 7774 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 614: +#line 3278 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7782 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 615: +#line 3282 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7790 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 616: +#line 3286 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7798 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 617: +#line 3290 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7806 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 618: +#line 3294 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7814 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 619: +#line 3298 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7822 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 620: +#line 3302 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7830 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 621: +#line 3306 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7838 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 622: +#line 3310 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7846 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 623: +#line 3314 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7854 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 624: +#line 3318 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7862 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 625: +#line 3322 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7870 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 626: +#line 3326 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7878 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 627: +#line 3330 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7886 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 628: +#line 3334 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('<', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7894 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 629: +#line 3338 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('>', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7902 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 630: +#line 3342 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7910 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 631: +#line 3346 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7918 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 632: +#line 3350 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7926 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 633: +#line 3354 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); +} +#line 7934 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 634: +#line 3358 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); +} +#line 7942 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 635: +#line 3362 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); +} +#line 7950 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 636: +#line 3366 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7958 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 637: +#line 3370 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7966 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 638: +#line 3374 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[-1].u.expr); +} +#line 7974 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 639: +#line 3381 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); +} +#line 7982 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 640: +#line 3385 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(true); +} +#line 7990 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 641: +#line 3389 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(false); +} +#line 7998 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 642: +#line 3393 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); +} +#line 8006 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 643: +#line 3397 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.real)); +} +#line 8014 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 644: +#line 3401 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 8022 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 645: +#line 3405 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 8030 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 646: +#line 3409 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer); +} +#line 8038 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 647: +#line 3413 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + // 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 8048 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 648: +#line 3419 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + // 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 8058 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 649: +#line 3425 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::get_nullptr()); +} +#line 8066 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 657: -/* Line 1792 of yacc.c */ -#line 3455 "dtool/src/cppparser/cppBison.yxx" +#line 3446 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); + CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, true); + if (type == NULL) { + type = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); + } + (yyval.u.type) = type; } +#line 8078 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 658: -/* Line 1792 of yacc.c */ -#line 3483 "dtool/src/cppparser/cppBison.yxx" +#line 3454 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.identifier) = (yyvsp[(1) - (1)].u.identifier); + CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, true, current_lexer); + if (type == NULL) { + type = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); + } + (yyval.u.type) = type; } +#line 8090 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 659: -/* Line 1792 of yacc.c */ -#line 3487 "dtool/src/cppparser/cppBison.yxx" +#line 3462 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.identifier) = (yyvsp[(1) - (1)].u.identifier); + (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } +#line 8098 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 660: -/* Line 1792 of yacc.c */ -#line 3491 "dtool/src/cppparser/cppBison.yxx" +#line 3490 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.identifier) = new CPPIdentifier("final", (yylsp[(1) - (1)])); + (yyval.u.identifier) = (yyvsp[0].u.identifier); } +#line 8106 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 661: -/* Line 1792 of yacc.c */ -#line 3495 "dtool/src/cppparser/cppBison.yxx" +#line 3494 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[(1) - (1)])); + (yyval.u.identifier) = (yyvsp[0].u.identifier); } +#line 8114 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 662: -/* Line 1792 of yacc.c */ -#line 3506 "dtool/src/cppparser/cppBison.yxx" +#line 3498 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.identifier) = (yyvsp[(1) - (1)].u.identifier); + (yyval.u.identifier) = new CPPIdentifier("final", (yylsp[0])); } +#line 8122 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 663: -/* Line 1792 of yacc.c */ -#line 3510 "dtool/src/cppparser/cppBison.yxx" +#line 3502 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.identifier) = (yyvsp[(1) - (1)].u.identifier); + (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[0])); } +#line 8130 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 664: -/* Line 1792 of yacc.c */ -#line 3514 "dtool/src/cppparser/cppBison.yxx" +#line 3506 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[(1) - (1)])); + // 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 8140 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 665: -/* Line 1792 of yacc.c */ -#line 3522 "dtool/src/cppparser/cppBison.yxx" +#line 3512 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].str)); + (yyval.u.identifier) = new CPPIdentifier("float", (yylsp[0])); } +#line 8148 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 666: -/* Line 1792 of yacc.c */ -#line 3526 "dtool/src/cppparser/cppBison.yxx" +#line 3516 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); + (yyval.u.identifier) = new CPPIdentifier("public", (yylsp[0])); } +#line 8156 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 667: -/* Line 1792 of yacc.c */ -#line 3530 "dtool/src/cppparser/cppBison.yxx" +#line 3520 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - // The right string takes on the literal type of the left. - (yyval.u.expr) = (yyvsp[(1) - (2)].u.expr); - (yyval.u.expr)->_str += (yyvsp[(2) - (2)].str); + (yyval.u.identifier) = new CPPIdentifier("private", (yylsp[0])); } +#line 8164 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 668: -/* Line 1792 of yacc.c */ -#line 3536 "dtool/src/cppparser/cppBison.yxx" +#line 3531 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.identifier) = (yyvsp[0].u.identifier); +} +#line 8172 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 669: +#line 3535 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.identifier) = (yyvsp[0].u.identifier); +} +#line 8180 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 670: +#line 3539 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[0])); +} +#line 8188 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 671: +#line 3547 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].str)); +} +#line 8196 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 672: +#line 3551 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 8204 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 673: +#line 3555 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + // 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 8214 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 674: +#line 3561 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // We have to check that the two literal types match up. - (yyval.u.expr) = (yyvsp[(1) - (2)].u.expr); - if ((yyvsp[(2) - (2)].u.expr)->_type != CPPExpression::T_string && (yyvsp[(2) - (2)].u.expr)->_type != (yyvsp[(1) - (2)].u.expr)->_type) { + (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) { yywarning("cannot concatenate two string literals of different types", (yyloc)); } - (yyval.u.expr)->_str += (yyvsp[(2) - (2)].u.expr)->_str; + (yyval.u.expr)->_str += (yyvsp[0].u.expr)->_str; } +#line 8227 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; -/* Line 1792 of yacc.c */ -#line 8616 "built/tmp/cppBison.yxx.c" +#line 8231 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -8635,7 +8250,7 @@ yyreduce: *++yyvsp = yyval; *++yylsp = yyloc; - /* Now `shift' the result of the reduction. Determine what state + /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ @@ -8650,9 +8265,9 @@ yyreduce: goto yynewstate; -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ +/*--------------------------------------. +| yyerrlab -- here on detecting error. | +`--------------------------------------*/ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ @@ -8703,20 +8318,20 @@ yyerrlab: if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an - error, discard it. */ + error, discard it. */ if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } else - { - yydestruct ("Error: discarding", - yytoken, &yylval, &yylloc); - yychar = YYEMPTY; - } + { + yydestruct ("Error: discarding", + yytoken, &yylval, &yylloc); + yychar = YYEMPTY; + } } /* Else will try to reuse lookahead token after shifting the error @@ -8736,7 +8351,7 @@ yyerrorlab: goto yyerrorlab; yyerror_range[1] = yylsp[1-yylen]; - /* Do not reclaim the symbols of the rule which action triggered + /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; @@ -8749,29 +8364,29 @@ yyerrorlab: | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ + yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) - YYABORT; + YYABORT; yyerror_range[1] = *yylsp; yydestruct ("Error: popping", - yystos[yystate], yyvsp, yylsp); + yystos[yystate], yyvsp, yylsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); @@ -8827,14 +8442,14 @@ yyreturn: yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval, &yylloc); } - /* Do not reclaim the symbols of the rule which action triggered + /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp, yylsp); + yystos[*yyssp], yyvsp, yylsp); YYPOPSTACK (1); } #ifndef yyoverflow @@ -8845,8 +8460,5 @@ yyreturn: if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif - /* Make sure YYID is used. */ - return YYID (yyresult); + return yyresult; } - - diff --git a/dtool/src/cppparser/cppBison.h.prebuilt b/dtool/src/cppparser/cppBison.h.prebuilt index c7784f5edf..75d9fe4c15 100644 --- a/dtool/src/cppparser/cppBison.h.prebuilt +++ b/dtool/src/cppparser/cppBison.h.prebuilt @@ -1,19 +1,19 @@ -/* A Bison parser, made by GNU Bison 2.7. */ +/* A Bison parser, made by GNU Bison 3.0.4. */ /* Bison interface for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. - + + Copyright (C) 1984, 1989-1990, 2000-2015 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 the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see . */ @@ -26,13 +26,13 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ #ifndef YY_CPPYY_BUILT_TMP_CPPBISON_YXX_H_INCLUDED # define YY_CPPYY_BUILT_TMP_CPPBISON_YXX_H_INCLUDED -/* Enabling traces. */ +/* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #endif @@ -40,134 +40,133 @@ extern int cppyydebug; #endif -/* Tokens. */ +/* Token type. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - REAL = 258, - INTEGER = 259, - CHAR_TOK = 260, - SIMPLE_STRING = 261, - SIMPLE_IDENTIFIER = 262, - STRING_LITERAL = 263, - CUSTOM_LITERAL = 264, - IDENTIFIER = 265, - TYPENAME_IDENTIFIER = 266, - SCOPING = 267, - TYPEDEFNAME = 268, - ELLIPSIS = 269, - OROR = 270, - ANDAND = 271, - EQCOMPARE = 272, - NECOMPARE = 273, - LECOMPARE = 274, - GECOMPARE = 275, - LSHIFT = 276, - RSHIFT = 277, - POINTSAT_STAR = 278, - DOT_STAR = 279, - UNARY = 280, - UNARY_NOT = 281, - UNARY_NEGATE = 282, - UNARY_MINUS = 283, - UNARY_PLUS = 284, - UNARY_STAR = 285, - UNARY_REF = 286, - POINTSAT = 287, - SCOPE = 288, - PLUSPLUS = 289, - MINUSMINUS = 290, - TIMESEQUAL = 291, - DIVIDEEQUAL = 292, - MODEQUAL = 293, - PLUSEQUAL = 294, - MINUSEQUAL = 295, - OREQUAL = 296, - ANDEQUAL = 297, - XOREQUAL = 298, - LSHIFTEQUAL = 299, - RSHIFTEQUAL = 300, - KW_ALIGNAS = 301, - KW_ALIGNOF = 302, - KW_AUTO = 303, - KW_BEGIN_PUBLISH = 304, - KW_BLOCKING = 305, - KW_BOOL = 306, - KW_CATCH = 307, - KW_CHAR = 308, - KW_CHAR16_T = 309, - KW_CHAR32_T = 310, - KW_CLASS = 311, - KW_CONST = 312, - KW_CONSTEXPR = 313, - KW_CONST_CAST = 314, - KW_DECLTYPE = 315, - KW_DEFAULT = 316, - KW_DELETE = 317, - KW_DOUBLE = 318, - KW_DYNAMIC_CAST = 319, - KW_ELSE = 320, - KW_END_PUBLISH = 321, - KW_ENUM = 322, - KW_EXTENSION = 323, - KW_EXTERN = 324, - KW_EXPLICIT = 325, - KW_PUBLISHED = 326, - KW_FALSE = 327, - KW_FINAL = 328, - KW_FLOAT = 329, - KW_FRIEND = 330, - KW_FOR = 331, - KW_GOTO = 332, - KW_IF = 333, - KW_INLINE = 334, - KW_INT = 335, - KW_LONG = 336, - KW_MAKE_PROPERTY = 337, - KW_MAKE_PROPERTY2 = 338, - KW_MAKE_SEQ = 339, - KW_MUTABLE = 340, - KW_NAMESPACE = 341, - KW_NEW = 342, - KW_NOEXCEPT = 343, - KW_NULLPTR = 344, - KW_OPERATOR = 345, - KW_OVERRIDE = 346, - KW_PRIVATE = 347, - KW_PROTECTED = 348, - KW_PUBLIC = 349, - KW_REGISTER = 350, - KW_REINTERPRET_CAST = 351, - KW_RETURN = 352, - KW_SHORT = 353, - KW_SIGNED = 354, - KW_SIZEOF = 355, - KW_STATIC = 356, - KW_STATIC_ASSERT = 357, - KW_STATIC_CAST = 358, - KW_STRUCT = 359, - KW_TEMPLATE = 360, - KW_THREAD_LOCAL = 361, - KW_THROW = 362, - KW_TRUE = 363, - KW_TRY = 364, - KW_TYPEDEF = 365, - KW_TYPEID = 366, - KW_TYPENAME = 367, - KW_UNION = 368, - KW_UNSIGNED = 369, - KW_USING = 370, - KW_VIRTUAL = 371, - KW_VOID = 372, - KW_VOLATILE = 373, - KW_WCHAR_T = 374, - KW_WHILE = 375, - START_CPP = 376, - START_CONST_EXPR = 377, - START_TYPE = 378 - }; + enum yytokentype + { + REAL = 258, + INTEGER = 259, + CHAR_TOK = 260, + SIMPLE_STRING = 261, + SIMPLE_IDENTIFIER = 262, + STRING_LITERAL = 263, + CUSTOM_LITERAL = 264, + IDENTIFIER = 265, + TYPENAME_IDENTIFIER = 266, + SCOPING = 267, + TYPEDEFNAME = 268, + ELLIPSIS = 269, + OROR = 270, + ANDAND = 271, + EQCOMPARE = 272, + NECOMPARE = 273, + LECOMPARE = 274, + GECOMPARE = 275, + LSHIFT = 276, + RSHIFT = 277, + POINTSAT_STAR = 278, + DOT_STAR = 279, + UNARY = 280, + UNARY_NOT = 281, + UNARY_NEGATE = 282, + UNARY_MINUS = 283, + UNARY_PLUS = 284, + UNARY_STAR = 285, + UNARY_REF = 286, + POINTSAT = 287, + SCOPE = 288, + PLUSPLUS = 289, + MINUSMINUS = 290, + TIMESEQUAL = 291, + DIVIDEEQUAL = 292, + MODEQUAL = 293, + PLUSEQUAL = 294, + MINUSEQUAL = 295, + OREQUAL = 296, + ANDEQUAL = 297, + XOREQUAL = 298, + LSHIFTEQUAL = 299, + RSHIFTEQUAL = 300, + KW_ALIGNAS = 301, + KW_ALIGNOF = 302, + KW_AUTO = 303, + KW_BEGIN_PUBLISH = 304, + KW_BLOCKING = 305, + KW_BOOL = 306, + KW_CATCH = 307, + KW_CHAR = 308, + KW_CHAR16_T = 309, + KW_CHAR32_T = 310, + KW_CLASS = 311, + KW_CONST = 312, + KW_CONSTEXPR = 313, + KW_CONST_CAST = 314, + KW_DECLTYPE = 315, + KW_DEFAULT = 316, + KW_DELETE = 317, + KW_DOUBLE = 318, + KW_DYNAMIC_CAST = 319, + KW_ELSE = 320, + KW_END_PUBLISH = 321, + KW_ENUM = 322, + KW_EXTENSION = 323, + KW_EXTERN = 324, + KW_EXPLICIT = 325, + KW_PUBLISHED = 326, + KW_FALSE = 327, + KW_FINAL = 328, + KW_FLOAT = 329, + KW_FRIEND = 330, + KW_FOR = 331, + KW_GOTO = 332, + KW_IF = 333, + KW_INLINE = 334, + KW_INT = 335, + KW_LONG = 336, + KW_MAKE_PROPERTY = 337, + KW_MAKE_PROPERTY2 = 338, + KW_MAKE_SEQ = 339, + KW_MUTABLE = 340, + KW_NAMESPACE = 341, + KW_NEW = 342, + KW_NOEXCEPT = 343, + KW_NULLPTR = 344, + KW_OPERATOR = 345, + KW_OVERRIDE = 346, + KW_PRIVATE = 347, + KW_PROTECTED = 348, + KW_PUBLIC = 349, + KW_REGISTER = 350, + KW_REINTERPRET_CAST = 351, + KW_RETURN = 352, + KW_SHORT = 353, + KW_SIGNED = 354, + KW_SIZEOF = 355, + KW_STATIC = 356, + KW_STATIC_ASSERT = 357, + KW_STATIC_CAST = 358, + KW_STRUCT = 359, + KW_TEMPLATE = 360, + KW_THREAD_LOCAL = 361, + KW_THROW = 362, + KW_TRUE = 363, + KW_TRY = 364, + KW_TYPEDEF = 365, + KW_TYPEID = 366, + KW_TYPENAME = 367, + KW_UNION = 368, + KW_UNSIGNED = 369, + KW_USING = 370, + KW_VIRTUAL = 371, + KW_VOID = 372, + KW_VOLATILE = 373, + KW_WCHAR_T = 374, + KW_WHILE = 375, + START_CPP = 376, + START_CONST_EXPR = 377, + START_TYPE = 378 + }; #endif /* Tokens. */ #define REAL 258 @@ -292,40 +291,24 @@ extern int cppyydebug; #define START_CONST_EXPR 377 #define START_TYPE 378 +/* Value type. */ - -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 -#endif - +/* Location type. */ #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED -typedef struct YYLTYPE +typedef struct YYLTYPE YYLTYPE; +struct YYLTYPE { int first_line; int first_column; int last_line; int last_column; -} YYLTYPE; -# define yyltype YYLTYPE /* obsolescent; will be withdrawn */ +}; # define YYLTYPE_IS_DECLARED 1 # define YYLTYPE_IS_TRIVIAL 1 #endif -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int cppyyparse (void *YYPARSE_PARAM); -#else -int cppyyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus + int cppyyparse (void); -#else -int cppyyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ #endif /* !YY_CPPYY_BUILT_TMP_CPPBISON_YXX_H_INCLUDED */ diff --git a/dtool/src/cppparser/cppBison.yxx b/dtool/src/cppparser/cppBison.yxx index b9a64f90fc..f71c5a7fd9 100644 --- a/dtool/src/cppparser/cppBison.yxx +++ b/dtool/src/cppparser/cppBison.yxx @@ -2349,21 +2349,23 @@ enum: ; enum_decl: - enum_keyword name_no_final ':' enum_element_type + enum_keyword ':' enum_element_type { - current_enum = new CPPEnumType($2, $4, current_scope, @1.file); -} - | enum_keyword name_no_final -{ - current_enum = new CPPEnumType($2, current_scope, @1.file); -} - | enum_keyword ':' enum_element_type -{ - current_enum = new CPPEnumType(NULL, $3, current_scope, @1.file); + current_enum = new CPPEnumType($1, NULL, $3, current_scope, NULL, @1.file); } | enum_keyword { - current_enum = new CPPEnumType(NULL, current_scope, @1.file); + current_enum = new CPPEnumType($1, NULL, current_scope, NULL, @1.file); +} + | enum_keyword name_no_final ':' enum_element_type +{ + CPPScope *new_scope = new CPPScope(current_scope, $2->_names.back(), V_public); + current_enum = new CPPEnumType($1, $2, $4, current_scope, new_scope, @1.file); +} + | enum_keyword name_no_final +{ + CPPScope *new_scope = new CPPScope(current_scope, $2->_names.back(), V_public); + current_enum = new CPPEnumType($1, $2, current_scope, new_scope, @1.file); } ; @@ -2383,14 +2385,12 @@ enum_body_trailing_comma: | enum_body_trailing_comma name ',' { assert(current_enum != NULL); - CPPInstance *inst = current_enum->add_element($2->get_simple_name()); - current_scope->add_enum_value(inst, current_lexer, @2); + current_enum->add_element($2->get_simple_name(), NULL, current_lexer, @2); } | enum_body_trailing_comma name '=' const_expr ',' { assert(current_enum != NULL); - CPPInstance *inst = current_enum->add_element($2->get_simple_name(), $4); - current_scope->add_enum_value(inst, current_lexer, @2); + current_enum->add_element($2->get_simple_name(), $4, current_lexer, @2); }; enum_body: @@ -2398,14 +2398,12 @@ enum_body: | enum_body_trailing_comma name { assert(current_enum != NULL); - CPPInstance *inst = current_enum->add_element($2->get_simple_name()); - current_scope->add_enum_value(inst, current_lexer, @2); + current_enum->add_element($2->get_simple_name(), NULL, current_lexer, @2); } | enum_body_trailing_comma name '=' const_expr { assert(current_enum != NULL); - CPPInstance *inst = current_enum->add_element($2->get_simple_name(), $4); - current_scope->add_enum_value(inst, current_lexer, @2); + current_enum->add_element($2->get_simple_name(), $4, current_lexer, @2); } ; @@ -2413,6 +2411,14 @@ enum_keyword: KW_ENUM { $$ = CPPExtensionType::T_enum; +} + | KW_ENUM KW_CLASS +{ + $$ = CPPExtensionType::T_enum_class; +} + | KW_ENUM KW_STRUCT +{ + $$ = CPPExtensionType::T_enum_struct; } ; @@ -3495,6 +3501,24 @@ name: | KW_OVERRIDE { $$ = new CPPIdentifier("override", @1); +} + | KW_SIGNED +{ + // This is not a keyword in Python, so it is useful to be able to use this + // in MAKE_PROPERTY definitions, etc. + $$ = new CPPIdentifier("signed", @1); +} + | KW_FLOAT +{ + $$ = new CPPIdentifier("float", @1); +} + | KW_PUBLIC +{ + $$ = new CPPIdentifier("public", @1); +} + | KW_PRIVATE +{ + $$ = new CPPIdentifier("private", @1); } ; diff --git a/dtool/src/cppparser/cppEnumType.cxx b/dtool/src/cppparser/cppEnumType.cxx index bee8ec2f5b..927488585d 100644 --- a/dtool/src/cppparser/cppEnumType.cxx +++ b/dtool/src/cppparser/cppEnumType.cxx @@ -22,42 +22,53 @@ #include "indent.h" /** - * Creates an untyped, unscoped enum. + * Creates an untyped enum. */ CPPEnumType:: -CPPEnumType(CPPIdentifier *ident, CPPScope *current_scope, - const CPPFile &file) : - CPPExtensionType(T_enum, ident, current_scope, file), - _parent_scope(current_scope), +CPPEnumType(Type type, CPPIdentifier *ident, CPPScope *current_scope, + CPPScope *scope, const CPPFile &file) : + CPPExtensionType(type, ident, current_scope, file), + _scope(scope), _element_type(NULL), _last_value(NULL) { + _parent_scope = (type == T_enum) ? current_scope : scope; + if (ident != NULL) { ident->_native_scope = current_scope; } } /** - * Creates a typed but unscoped enum. + * Creates a typed enum. */ CPPEnumType:: -CPPEnumType(CPPIdentifier *ident, CPPType *element_type, - CPPScope *current_scope, const CPPFile &file) : - CPPExtensionType(T_enum, ident, current_scope, file), - _parent_scope(current_scope), +CPPEnumType(Type type, CPPIdentifier *ident, CPPType *element_type, + CPPScope *current_scope, CPPScope *scope, const CPPFile &file) : + CPPExtensionType(type, ident, current_scope, file), + _scope(scope), _element_type(element_type), _last_value(NULL) { + _parent_scope = (type == T_enum) ? current_scope : scope; if (ident != NULL) { ident->_native_scope = current_scope; } } +/** + * Returns true if this is a scoped enum. + */ +bool CPPEnumType:: +is_scoped() const { + return (_type != T_enum); +} + /** * Returns the integral type used to store enum values. */ CPPType *CPPEnumType:: -get_element_type() { +get_underlying_type() { if (_element_type == NULL) { // This enum is untyped. Use a suitable default, ie. 'int'. In the // future, we might want to check whether it fits in an int. @@ -78,11 +89,18 @@ get_element_type() { * */ CPPInstance *CPPEnumType:: -add_element(const string &name, CPPExpression *value) { +add_element(const string &name, CPPExpression *value, CPPPreprocessor *preprocessor, const cppyyltype &pos) { CPPIdentifier *ident = new CPPIdentifier(name); ident->_native_scope = _parent_scope; - CPPInstance *inst = new CPPInstance(get_element_type(), ident); + CPPInstance *inst; + if (_type == T_enum) { + // Weakly typed enum. + inst = new CPPInstance(get_underlying_type(), ident); + } else { + // C++11-style strongly typed enum. + inst = new CPPInstance(this, ident); + } inst->_storage_class |= CPPInstance::SC_constexpr; _elements.push_back(inst); @@ -104,6 +122,41 @@ add_element(const string &name, CPPExpression *value) { } inst->_initializer = value; _last_value = value; + + if (preprocessor != (CPPPreprocessor *)NULL) { + // Same-line comment? + CPPCommentBlock *comment = + preprocessor->get_comment_on(pos.first_line, pos.file); + + if (comment == (CPPCommentBlock *)NULL) { + // Nope. Check for a comment before this line. + comment = + preprocessor->get_comment_before(pos.first_line, pos.file); + + if (comment != NULL) { + // This is a bit of a hack, but it prevents us from picking up a same- + // line comment from the previous line. + if (comment->_line_number != pos.first_line - 1 || + comment->_col_number <= pos.first_column) { + + inst->_leading_comment = comment; + } + } + } else { + inst->_leading_comment = comment; + } + } + + // Add the value to the enum scope (as per C++11), assuming it's not anonymous. + if (_scope != NULL) { + _scope->add_enum_value(inst); + } + + // Now add it to the containing scope as well if it's not an "enum class". + if (!is_scoped() && _parent_scope != NULL) { + _parent_scope->add_enum_value(inst); + } + return inst; } diff --git a/dtool/src/cppparser/cppEnumType.h b/dtool/src/cppparser/cppEnumType.h index 85143d664b..c22742203c 100644 --- a/dtool/src/cppparser/cppEnumType.h +++ b/dtool/src/cppparser/cppEnumType.h @@ -30,15 +30,16 @@ class CPPScope; */ class CPPEnumType : public CPPExtensionType { public: - CPPEnumType(CPPIdentifier *ident, CPPScope *current_scope, - const CPPFile &file); - CPPEnumType(CPPIdentifier *ident, CPPType *element_type, - CPPScope *current_scope, const CPPFile &file); + CPPEnumType(Type type, CPPIdentifier *ident, CPPScope *current_scope, + CPPScope *scope, const CPPFile &file); + CPPEnumType(Type type, CPPIdentifier *ident, CPPType *element_type, + CPPScope *current_scope, CPPScope *scope, const CPPFile &file); - CPPType *get_element_type(); + bool is_scoped() const; + CPPType *get_underlying_type(); - CPPInstance *add_element(const string &name, - CPPExpression *value = (CPPExpression *)NULL); + CPPInstance *add_element(const string &name, CPPExpression *value, + CPPPreprocessor *preprocessor, const cppyyltype &pos); virtual bool is_incomplete() const; @@ -54,6 +55,7 @@ public: virtual CPPEnumType *as_enum_type(); CPPScope *_parent_scope; + CPPScope *_scope; CPPType *_element_type; typedef vector Elements; diff --git a/dtool/src/cppparser/cppExpression.cxx b/dtool/src/cppparser/cppExpression.cxx index 8456c402f5..7ef5ec85fb 100644 --- a/dtool/src/cppparser/cppExpression.cxx +++ b/dtool/src/cppparser/cppExpression.cxx @@ -949,7 +949,7 @@ determine_type() const { case CPPDeclaration::ST_enum: // Convert into integral type. - return t1->as_enum_type()->get_element_type(); + return t1->as_enum_type()->get_underlying_type(); case CPPDeclaration::ST_simple: { diff --git a/dtool/src/cppparser/cppExtensionType.cxx b/dtool/src/cppparser/cppExtensionType.cxx index 9e9aeb4c71..36bdd307fe 100644 --- a/dtool/src/cppparser/cppExtensionType.cxx +++ b/dtool/src/cppparser/cppExtensionType.cxx @@ -229,6 +229,12 @@ operator << (ostream &out, CPPExtensionType::Type type) { case CPPExtensionType::T_union: return out << "union"; + case CPPExtensionType::T_enum_class: + return out << "enum class"; + + case CPPExtensionType::T_enum_struct: + return out << "enum struct"; + default: return out << "***invalid extension type***"; } diff --git a/dtool/src/cppparser/cppExtensionType.h b/dtool/src/cppparser/cppExtensionType.h index 801809f753..e60aeb9f21 100644 --- a/dtool/src/cppparser/cppExtensionType.h +++ b/dtool/src/cppparser/cppExtensionType.h @@ -34,6 +34,8 @@ public: T_class, T_struct, T_union, + T_enum_class, + T_enum_struct, }; CPPExtensionType(Type type, CPPIdentifier *ident, CPPScope *current_scope, diff --git a/dtool/src/cppparser/cppScope.cxx b/dtool/src/cppparser/cppScope.cxx index 158c3884d2..bd12a9025a 100644 --- a/dtool/src/cppparser/cppScope.cxx +++ b/dtool/src/cppparser/cppScope.cxx @@ -124,34 +124,9 @@ add_declaration(CPPDeclaration *decl, CPPScope *global_scope, * */ void CPPScope:: -add_enum_value(CPPInstance *inst, CPPPreprocessor *preprocessor, - const cppyyltype &pos) { +add_enum_value(CPPInstance *inst) { inst->_vis = _current_vis; - if (inst->_leading_comment == (CPPCommentBlock *)NULL) { - // Same-line comment? - CPPCommentBlock *comment = - preprocessor->get_comment_on(pos.first_line, pos.file); - - if (comment == (CPPCommentBlock *)NULL) { - // Nope. Check for a comment before this line. - comment = - preprocessor->get_comment_before(pos.first_line, pos.file); - - if (comment != NULL) { - // This is a bit of a hack, but it prevents us from picking up a same- - // line comment from the previous line. - if (comment->_line_number != pos.first_line - 1 || - comment->_col_number <= pos.first_column) { - - inst->_leading_comment = comment; - } - } - } else { - inst->_leading_comment = comment; - } - } - string name = inst->get_simple_name(); if (!name.empty()) { _enum_values[name] = inst; @@ -183,6 +158,8 @@ define_extension_type(CPPExtensionType *type, CPPPreprocessor *error_sink) { break; case CPPExtensionType::T_enum: + case CPPExtensionType::T_enum_struct: + case CPPExtensionType::T_enum_class: _enums[name] = type; break; } @@ -606,6 +583,11 @@ find_scope(const string &name, bool recurse) const { if (st != NULL) { return st->_scope; } + + CPPEnumType *et = type->as_enum_type(); + if (et != NULL) { + return et->_scope; + } } Using::const_iterator ui; @@ -645,11 +627,16 @@ find_scope(const string &name, CPPDeclaration::SubstDecl &subst, } CPPStructType *st = type->as_struct_type(); - if (st == NULL) { - return NULL; + if (st != NULL) { + return st->_scope; } - return st->_scope; + CPPEnumType *et = type->as_enum_type(); + if (et != NULL) { + return et->_scope; + } + + return NULL; } /** diff --git a/dtool/src/cppparser/cppScope.h b/dtool/src/cppparser/cppScope.h index 7941a9afb1..387d55d18c 100644 --- a/dtool/src/cppparser/cppScope.h +++ b/dtool/src/cppparser/cppScope.h @@ -61,9 +61,7 @@ public: virtual void add_declaration(CPPDeclaration *decl, CPPScope *global_scope, CPPPreprocessor *preprocessor, const cppyyltype &pos); - virtual void add_enum_value(CPPInstance *inst, - CPPPreprocessor *preprocessor, - const cppyyltype &pos); + virtual void add_enum_value(CPPInstance *inst); virtual void define_extension_type(CPPExtensionType *type, CPPPreprocessor *error_sink = NULL); virtual void define_namespace(CPPNamespace *scope); diff --git a/dtool/src/cppparser/cppTemplateScope.cxx b/dtool/src/cppparser/cppTemplateScope.cxx index baa36a5619..1e90b3a97e 100644 --- a/dtool/src/cppparser/cppTemplateScope.cxx +++ b/dtool/src/cppparser/cppTemplateScope.cxx @@ -43,11 +43,10 @@ add_declaration(CPPDeclaration *decl, CPPScope *global_scope, * */ void CPPTemplateScope:: -add_enum_value(CPPInstance *inst, CPPPreprocessor *preprocessor, - const cppyyltype &pos) { +add_enum_value(CPPInstance *inst) { inst->_template_scope = this; assert(_parent_scope != NULL); - _parent_scope->add_enum_value(inst, preprocessor, pos); + _parent_scope->add_enum_value(inst); } /** diff --git a/dtool/src/cppparser/cppTemplateScope.h b/dtool/src/cppparser/cppTemplateScope.h index 7ce48f34f3..0159dab680 100644 --- a/dtool/src/cppparser/cppTemplateScope.h +++ b/dtool/src/cppparser/cppTemplateScope.h @@ -33,9 +33,7 @@ public: virtual void add_declaration(CPPDeclaration *decl, CPPScope *global_scope, CPPPreprocessor *preprocessor, const cppyyltype &pos); - virtual void add_enum_value(CPPInstance *inst, - CPPPreprocessor *preprocessor, - const cppyyltype &pos); + virtual void add_enum_value(CPPInstance *inst); virtual void define_extension_type(CPPExtensionType *type, CPPPreprocessor *error_sink = NULL); virtual void define_namespace(CPPNamespace *scope); diff --git a/dtool/src/interrogate/interfaceMakerPythonNative.cxx b/dtool/src/interrogate/interfaceMakerPythonNative.cxx index 5dde93b7d1..69be99605f 100644 --- a/dtool/src/interrogate/interfaceMakerPythonNative.cxx +++ b/dtool/src/interrogate/interfaceMakerPythonNative.cxx @@ -764,10 +764,6 @@ write_prototypes(ostream &out_code, ostream *out_h) { *out_h << "#include \"py_panda.h\"\n\n"; } - out_code << "//********************************************************************\n"; - out_code << "//*** prototypes for .. Global\n"; - out_code << "//********************************************************************\n"; - /* for (fi = _functions.begin(); fi != _functions.end(); ++fi) { @@ -792,9 +788,9 @@ write_prototypes(ostream &out_code, ostream *out_h) { } } - out_code << "//********************************************************************\n"; - out_code << "//*** prototypes for .. External Objects\n"; - out_code << "//********************************************************************\n"; + out_code << "/**\n"; + out_code << " * Extern declarations for imported classes\n"; + out_code << " */\n"; for (std::set::iterator ii = _external_imports.begin(); ii != _external_imports.end(); ii++) { CPPType *type = (*ii); @@ -897,9 +893,9 @@ write_prototypes_class_external(ostream &out, Object *obj) { std::string preferred_name = obj->_itype.get_name(); - out << "//********************************************************************\n"; - out << "//*** prototypes for external.. " << class_name << "\n"; - out << "//********************************************************************\n"; + out << "/**\n"; + out << " * Forward declaration of class " << class_name << "\n"; + out << " */\n"; // This typedef is necessary for class templates since we can't pass a comma // to a macro function. @@ -915,9 +911,9 @@ write_prototypes_class(ostream &out_code, ostream *out_h, Object *obj) { std::string ClassName = make_safe_name(obj->_itype.get_scoped_name()); Functions::iterator fi; - out_code << "//********************************************************************\n"; - out_code << "//*** prototypes for .. " << ClassName << "\n"; - out_code << "//********************************************************************\n"; + out_code << "/**\n"; + out_code << " * Forward declarations for top-level class " << ClassName << "\n"; + out_code << " */\n"; /* for (fi = obj->_methods.begin(); fi != obj->_methods.end(); ++fi) { @@ -943,9 +939,9 @@ write_prototypes_class(ostream &out_code, ostream *out_h, Object *obj) { */ void InterfaceMakerPythonNative:: write_functions(ostream &out) { - out << "//********************************************************************\n"; - out << "//*** Functions for .. Global\n" ; - out << "//********************************************************************\n"; + out << "/**\n"; + out << " * Python wrappers for global functions\n" ; + out << " */\n"; FunctionsByIndex::iterator fi; for (fi = _functions.begin(); fi != _functions.end(); ++fi) { Function *func = (*fi).second; @@ -994,9 +990,9 @@ write_class_details(ostream &out, Object *obj) { std::string ClassName = make_safe_name(obj->_itype.get_scoped_name()); std::string cClassName = obj->_itype.get_true_name(); - out << "//********************************************************************\n"; - out << "//*** Functions for .. " << cClassName << "\n" ; - out << "//********************************************************************\n"; + out << "/**\n"; + out << " * Python wrappers for functions of class " << cClassName << "\n" ; + out << " */\n"; // First write out all the wrapper functions for the methods. for (fi = obj->_methods.begin(); fi != obj->_methods.end(); ++fi) { @@ -1183,7 +1179,6 @@ write_sub_module(ostream &out, Object *obj) { // Object * obj = _objects[_embeded_index] ; string class_name = make_safe_name(obj->_itype.get_scoped_name()); string class_ptr; - out << " // Module init upcall for " << obj->_itype.get_scoped_name() << "\n"; if (!obj->_itype.is_typedef()) { out << " // " << *(obj->_itype._cpptype) << "\n"; @@ -1242,9 +1237,9 @@ write_sub_module(ostream &out, Object *obj) { */ void InterfaceMakerPythonNative:: write_module_support(ostream &out, ostream *out_h, InterrogateModuleDef *def) { - out << "//********************************************************************\n"; - out << "//*** Module Object Linker ..\n"; - out << "//********************************************************************\n"; + out << "/**\n"; + out << " * Module Object Linker ..\n"; + out << " */\n"; Objects::iterator oi; @@ -1305,14 +1300,41 @@ write_module_support(ostream &out, ostream *out_h, InterrogateModuleDef *def) { if (object->_itype.is_enum() && !object->_itype.is_nested() && isExportThisRun(object->_itype._cpptype)) { int enum_count = object->_itype.number_of_enum_values(); - for (int xx = 0; xx < enum_count; xx++) { - string name1 = classNameFromCppName(object->_itype.get_enum_value_name(xx), false); - string name2 = classNameFromCppName(object->_itype.get_enum_value_name(xx), true); - string enum_value = "::" + object->_itype.get_enum_value_name(xx); - out << " PyModule_AddIntConstant(module, \"" << name1 << "\", " << enum_value << ");\n"; - if (name1 != name2) { - // Also write the mangled name, for historical purposes. - out << " PyModule_AddIntConstant(module, \"" << name2 << "\", " << enum_value << ");\n"; + + if (object->_itype.is_scoped_enum()) { + // Convert as Python 3.4 enum. + CPPType *underlying_type = TypeManager::unwrap_const(object->_itype._cpptype->as_enum_type()->get_underlying_type()); + string cast_to = underlying_type->get_local_name(&parser); + out << "#if PY_VERSION_HEX >= 0x03040000\n\n"; + out << " // enum class " << object->_itype.get_scoped_name() << "\n"; + out << " {\n"; + out << " PyObject *members = PyTuple_New(" << enum_count << ");\n"; + out << " PyObject *member;\n"; + for (int xx = 0; xx < enum_count; xx++) { + out << " member = PyTuple_New(2);\n" + " PyTuple_SET_ITEM(member, 0, PyUnicode_FromString(\"" + << object->_itype.get_enum_value_name(xx) << "\"));\n" + " PyTuple_SET_ITEM(member, 1, Dtool_WrapValue((" + << cast_to << ")" << object->_itype.get_scoped_name() << "::" + << object->_itype.get_enum_value_name(xx) << "));\n" + " PyTuple_SET_ITEM(members, " << xx << ", member);\n"; + } + out << " PyModule_AddObject(module, \"" << object->_itype.get_name() + << "\", Dtool_EnumType_Create(\"" << object->_itype.get_name() + << "\", members, \"" << _def->module_name << "\"));\n"; + out << " }\n"; + out << "#endif\n"; + } else { + out << " // enum " << object->_itype.get_scoped_name() << "\n"; + for (int xx = 0; xx < enum_count; xx++) { + string name1 = classNameFromCppName(object->_itype.get_enum_value_name(xx), false); + string name2 = classNameFromCppName(object->_itype.get_enum_value_name(xx), true); + string enum_value = "::" + object->_itype.get_enum_value_name(xx); + out << " PyModule_AddObject(module, \"" << name1 << "\", Dtool_WrapValue(" << enum_value << "));\n"; + if (name1 != name2) { + // Also write the mangled name, for historical purposes. + out << " PyModule_AddObject(module, \"" << name2 << "\", Dtool_WrapValue(" << enum_value << "));\n"; + } } } } @@ -1360,13 +1382,6 @@ write_module_support(ostream &out, ostream *out_h, InterrogateModuleDef *def) { } } } - out << "//********************************************************************\n"; - out << "//*** Module Init Upcall .. Externally Defined Class\n"; - out << "//********************************************************************\n"; - -// for (std::set< std::string >::iterator ii = _external_imports.begin(); ii -// != _external_imports.end(); ii++) out << "Dtool_" <<*ii << -// "._Dtool_ClassInit(NULL);\n"; out << "}\n\n"; @@ -1435,9 +1450,9 @@ write_module(ostream &out, ostream *out_h, InterrogateModuleDef *def) { InterfaceMakerPython::write_module(out, out_h, def); Objects::iterator oi; - out << "//********************************************************************\n"; - out << "//*** Py Init Code For .. GlobalScope\n" ; - out << "//********************************************************************\n"; + out << "/**\n"; + out << " * Module initialization functions for Python module \"" << def->module_name << "\"\n"; + out << " */\n"; out << "#if PY_MAJOR_VERSION >= 3\n" << "static struct PyModuleDef python_native_module = {\n" @@ -1452,14 +1467,16 @@ write_module(ostream &out, ostream *out_h, InterrogateModuleDef *def) { << "#ifdef _WIN32\n" << "extern \"C\" __declspec(dllexport) PyObject *PyInit_" << def->module_name << "();\n" << "#elif __GNUC__ >= 4\n" - << "extern \"C\" __attribute__((visibility(\"default\"))) PyInit_" << def->module_name << "();\n" + << "extern \"C\" __attribute__((visibility(\"default\"))) PyObject *PyInit_" << def->module_name << "();\n" << "#else\n" << "extern \"C\" PyObject *PyInit_" << def->module_name << "();\n" << "#endif\n" << "\n" << "PyObject *PyInit_" << def->module_name << "() {\n" << " LibraryDef *refs[] = {&" << def->library_name << "_moddef, NULL};\n" - << " return Dtool_PyModuleInitHelper(refs, &python_native_module);\n" + << " PyObject *module = Dtool_PyModuleInitHelper(refs, &python_native_module);\n" + << " Dtool_" << def->library_name << "_BuildInstants(module);\n" + << " return module;\n" << "}\n" << "\n" << "#else // Python 2 case\n" @@ -1467,14 +1484,15 @@ write_module(ostream &out, ostream *out_h, InterrogateModuleDef *def) { << "#ifdef _WIN32\n" << "extern \"C\" __declspec(dllexport) void init" << def->module_name << "();\n" << "#elif __GNUC__ >= 4\n" - << "extern \"C\" __attribute__((visibility(\"default\"))) init" << def->module_name << "();\n" + << "extern \"C\" __attribute__((visibility(\"default\"))) void init" << def->module_name << "();\n" << "#else\n" << "extern \"C\" void init" << def->module_name << "();\n" << "#endif\n" << "\n" << "void init" << def->module_name << "() {\n" << " LibraryDef *refs[] = {&" << def->library_name << "_moddef, NULL};\n" - << " Dtool_PyModuleInitHelper(refs, \"" << def->module_name << "\");\n" + << " PyObject *module = Dtool_PyModuleInitHelper(refs, \"" << def->module_name << "\");\n" + << " Dtool_" << def->library_name << "_BuildInstants(module);\n" << "}\n" << "\n" << "#endif\n" @@ -1520,9 +1538,9 @@ write_module_class(ostream &out, Object *obj) { } Functions::iterator fi; - out << "//********************************************************************\n"; - out << "//*** Py Init Code For .. " << ClassName << " | " << export_class_name << "\n" ; - out << "//********************************************************************\n"; + out << "/**\n"; + out << " * Python method tables for " << ClassName << " (" << export_class_name << ")\n" ; + out << " */\n"; out << "static PyMethodDef Dtool_Methods_" << ClassName << "[] = {\n"; SlottedFunctions slots; @@ -2449,11 +2467,7 @@ write_module_class(ostream &out, Object *obj) { << classNameFromCppName(ClassName, false) << "\");\n"; } out << " std::string ss = os.str();\n"; - out << "#if PY_MAJOR_VERSION >= 3\n"; - out << " return PyUnicode_FromStringAndSize(ss.data(), ss.length());\n"; - out << "#else\n"; - out << " return PyString_FromStringAndSize(ss.data(), ss.length());\n"; - out << "#endif\n"; + out << " return Dtool_WrapValue(ss);\n"; out << "}\n\n"; has_local_repr = true; } @@ -2479,11 +2493,7 @@ write_module_class(ostream &out, Object *obj) { out << " local_this->write(os);\n"; } out << " std::string ss = os.str();\n"; - out << "#if PY_MAJOR_VERSION >= 3\n"; - out << " return PyUnicode_FromStringAndSize(ss.data(), ss.length());\n"; - out << "#else\n"; - out << " return PyString_FromStringAndSize(ss.data(), ss.length());\n"; - out << "#endif\n"; + out << " return Dtool_WrapValue(ss);\n"; out << "}\n\n"; has_local_str = true; } @@ -3037,7 +3047,7 @@ write_module_class(ostream &out, Object *obj) { } else if (nested_obj->_itype.is_typedef()) { ++num_dict_items; - } else if (nested_obj->_itype.is_enum()) { + } else if (nested_obj->_itype.is_enum() && !nested_obj->_itype.is_scoped_enum()) { CPPEnumType *enum_type = nested_obj->_itype._cpptype->as_enum_type(); num_dict_items += 2 * enum_type->_elements.size(); } @@ -3095,8 +3105,33 @@ write_module_class(ostream &out, Object *obj) { // No need to support mangled names for nested typedefs; we only added // support recently. + } else if (nested_obj->_itype.is_scoped_enum()) { + // Convert enum class as Python 3.4 enum. + int enum_count = nested_obj->_itype.number_of_enum_values(); + CPPType *underlying_type = TypeManager::unwrap_const(nested_obj->_itype._cpptype->as_enum_type()->get_underlying_type()); + string cast_to = underlying_type->get_local_name(&parser); + out << "#if PY_VERSION_HEX >= 0x03040000\n\n"; + out << " // enum class " << nested_obj->_itype.get_scoped_name() << ";\n"; + out << " {\n"; + out << " PyObject *members = PyTuple_New(" << enum_count << ");\n"; + out << " PyObject *member;\n"; + for (int xx = 0; xx < enum_count; xx++) { + out << " member = PyTuple_New(2);\n" + " PyTuple_SET_ITEM(member, 0, PyUnicode_FromString(\"" + << nested_obj->_itype.get_enum_value_name(xx) << "\"));\n" + " PyTuple_SET_ITEM(member, 1, Dtool_WrapValue((" + << cast_to << ")" << nested_obj->_itype.get_scoped_name() << "::" + << nested_obj->_itype.get_enum_value_name(xx) << "));\n" + " PyTuple_SET_ITEM(members, " << xx << ", member);\n"; + } + out << " PyDict_SetItemString(dict, \"" << nested_obj->_itype.get_name() + << "\", Dtool_EnumType_Create(\"" << nested_obj->_itype.get_name() + << "\", members, \"" << _def->module_name << "\"));\n"; + out << " }\n"; + out << "#endif\n"; + } else if (nested_obj->_itype.is_enum()) { - out << " // Enum " << nested_obj->_itype.get_scoped_name() << ";\n"; + out << " // enum " << nested_obj->_itype.get_scoped_name() << ";\n"; CPPEnumType *enum_type = nested_obj->_itype._cpptype->as_enum_type(); CPPEnumType::Elements::const_iterator ei; for (ei = enum_type->_elements.begin(); ei != enum_type->_elements.end(); ++ei) { @@ -3111,9 +3146,9 @@ write_module_class(ostream &out, Object *obj) { name2 = name1; } string enum_value = obj->_itype.get_scoped_name() + "::" + (*ei)->get_simple_name(); - out << " PyDict_SetItemString(dict, \"" << name1 << "\", PyLongOrInt_FromLong(" << enum_value << "));\n"; + out << " PyDict_SetItemString(dict, \"" << name1 << "\", Dtool_WrapValue(" << enum_value << "));\n"; if (name1 != name2) { - out << " PyDict_SetItemString(dict, \"" << name2 << "\", PyLongOrInt_FromLong(" << enum_value << "));\n"; + out << " PyDict_SetItemString(dict, \"" << name2 << "\", Dtool_WrapValue(" << enum_value << "));\n"; } } } @@ -3340,7 +3375,7 @@ write_function_for_name(ostream &out, Object *obj, int max_required_args = 0; bool all_nonconst = true; - out << "/******************************************************************\n" << " * Python type method wrapper for\n"; + out << "/**\n * Python function wrapper for:\n"; for (ri = remaps.begin(); ri != remaps.end(); ++ri) { remap = (*ri); if (is_remap_legal(remap)) { @@ -3369,7 +3404,7 @@ write_function_for_name(ostream &out, Object *obj, } } - out << " *******************************************************************/\n"; + out << " */\n"; out << function_name << " {\n"; @@ -6033,164 +6068,16 @@ pack_return_value(ostream &out, int indent_level, FunctionRemap *remap, CPPType *orig_type = return_type->get_orig_type(); CPPType *type = return_type->get_new_type(); - if (return_type->new_type_is_atomic_string()) { - if (TypeManager::is_char_pointer(orig_type)) { - indent(out, indent_level) << "if (" << return_expr << " == NULL) {\n"; - indent(out, indent_level) << " Py_INCREF(Py_None);\n"; - indent(out, indent_level) << " return Py_None;\n"; - indent(out, indent_level) << "} else {\n"; - - out << "#if PY_MAJOR_VERSION >= 3\n"; - indent(out, indent_level) << " return " - << "PyUnicode_FromString(" << return_expr << ");\n"; - out << "#else\n"; - indent(out, indent_level) << " return " - << "PyString_FromString(" << return_expr << ");\n"; - out << "#endif\n"; - - indent(out, indent_level) << "}\n"; - - } else if (TypeManager::is_wchar_pointer(orig_type)) { - indent(out, indent_level) << "if (" << return_expr << " == NULL) {\n"; - indent(out, indent_level) << " Py_INCREF(Py_None);\n"; - indent(out, indent_level) << " return Py_None;\n"; - indent(out, indent_level) << "} else {\n"; - indent(out, indent_level+2) - << "return PyUnicode_FromWideChar(" - << return_expr << ", wcslen(" << return_expr << "));\n"; - indent(out, indent_level) << "}\n"; - - } else if (TypeManager::is_wstring(orig_type)) { - indent(out, indent_level) - << "return PyUnicode_FromWideChar(" - << return_expr << ".data(), (int) " << return_expr << ".length());\n"; - - } else if (TypeManager::is_const_ptr_to_basic_string_wchar(orig_type)) { - indent(out, indent_level) << "if (" << return_expr << " == NULL) {\n"; - indent(out, indent_level) << " Py_INCREF(Py_None);\n"; - indent(out, indent_level) << " return Py_None;\n"; - indent(out, indent_level) << "} else {\n"; - - indent(out, indent_level) << " return " - << "PyUnicode_FromWideChar(" - << return_expr << "->data(), (int) " << return_expr << "->length());\n"; - - indent(out, indent_level) << "}\n"; - - } else if (TypeManager::is_const_ptr_to_basic_string_char(orig_type)) { - indent(out, indent_level) << "if (" << return_expr<< " == NULL) {\n"; - indent(out, indent_level) << " Py_INCREF(Py_None);\n"; - indent(out, indent_level) << " return Py_None;\n"; - indent(out, indent_level) << "} else {\n"; - - out << "#if PY_MAJOR_VERSION >= 3\n"; - indent(out, indent_level) << " return " - << "PyUnicode_FromStringAndSize(" - << return_expr << "->data(), (Py_ssize_t)" << return_expr << "->length());\n"; - out << "#else\n"; - indent(out, indent_level) << " return " - << "PyString_FromStringAndSize(" - << return_expr << "->data(), (Py_ssize_t)" << return_expr << "->length());\n"; - out << "#endif\n"; - - indent(out, indent_level) << "}\n"; - - } else { - out << "#if PY_MAJOR_VERSION >= 3\n"; - indent(out, indent_level) - << "return PyUnicode_FromStringAndSize(" - << return_expr << ".data(), (Py_ssize_t)" << return_expr << ".length());\n"; - out << "#else\n"; - indent(out, indent_level) - << "return PyString_FromStringAndSize(" - << return_expr << ".data(), (Py_ssize_t)" << return_expr << ".length());\n"; - out << "#endif\n"; - } - - } else if (TypeManager::is_bool(type)) { + if (return_type->new_type_is_atomic_string() || + TypeManager::is_simple(type) || + TypeManager::is_char_pointer(type) || + TypeManager::is_wchar_pointer(type) || + TypeManager::is_pointer_to_PyObject(type) || + TypeManager::is_pointer_to_Py_buffer(type)) { + // Most types are now handled by the many overloads of Dtool_WrapValue, + // defined in py_panda.h. indent(out, indent_level) - << "return PyBool_FromLong(" << return_expr << ");\n"; - - } else if (TypeManager::is_ssize(type)) { - indent(out, indent_level) - << "return PyLongOrInt_FromSsize_t(" << return_expr << ");\n"; - - } else if (TypeManager::is_size(type)) { - indent(out, indent_level) - << "return PyLongOrInt_FromSize_t(" << return_expr << ");\n"; - - } else if (TypeManager::is_char(type)) { - out << "#if PY_MAJOR_VERSION >= 3\n"; - indent(out, indent_level) - << "return PyUnicode_FromStringAndSize(&" << return_expr << ", 1);\n"; - out << "#else\n"; - indent(out, indent_level) - << "return PyString_FromStringAndSize(&" << return_expr << ", 1);\n"; - out << "#endif\n"; - - } else if (TypeManager::is_wchar(type)) { - indent(out, indent_level) - << "return PyUnicode_FromWideChar(&" << return_expr << ", 1);\n"; - - } else if (TypeManager::is_unsigned_longlong(type)) { - indent(out, indent_level) - << "return PyLong_FromUnsignedLongLong(" << return_expr << ");\n"; - - } else if (TypeManager::is_longlong(type)) { - indent(out, indent_level) - << "return PyLong_FromLongLong(" << return_expr << ");\n"; - - } else if (TypeManager::is_unsigned_integer(type)){ - indent(out, indent_level) - << "return PyLongOrInt_FromUnsignedLong(" << return_expr << ");\n"; - - } else if (TypeManager::is_integer(type)) { - indent(out, indent_level) - << "return PyLongOrInt_FromLong(" << return_expr << ");\n"; - - } else if (TypeManager::is_float(type)) { - indent(out, indent_level) - << "return PyFloat_FromDouble(" << return_expr << ");\n"; - - } else if (TypeManager::is_char_pointer(type)) { - indent(out, indent_level) << "if (" << return_expr << " == NULL) {\n"; - indent(out, indent_level) << " Py_INCREF(Py_None);\n"; - indent(out, indent_level) << " return Py_None;\n"; - indent(out, indent_level) << "} else {\n"; - - out << "#if PY_MAJOR_VERSION >= 3\n"; - indent(out, indent_level) << " return " - << "PyUnicode_FromString(" << return_expr << ");\n"; - out << "#else\n"; - indent(out, indent_level) << " return " - << "PyString_FromString(" << return_expr << ");\n"; - out << "#endif\n"; - - indent(out, indent_level) << "}\n"; - - } else if (TypeManager::is_wchar_pointer(type)) { - indent(out, indent_level) << "if (" << return_expr << " == NULL) {\n"; - indent(out, indent_level) << " Py_INCREF(Py_None);\n"; - indent(out, indent_level) << " return Py_None;\n"; - indent(out, indent_level) << "} else {\n"; - indent(out, indent_level) << " return " - << "PyUnicode_FromWideChar(" - << return_expr << ", wcslen(" << return_expr << "));\n"; - - indent(out, indent_level) << "}\n"; - - } else if (TypeManager::is_pointer_to_PyObject(type)) { - indent(out, indent_level) - << "return " << return_expr << ";\n"; - - } else if (TypeManager::is_pointer_to_Py_buffer(type)) { - indent(out, indent_level) << "if (" << return_expr << " == NULL) {\n"; - indent(out, indent_level) << " Py_INCREF(Py_None);\n"; - indent(out, indent_level) << " return Py_None;\n"; - indent(out, indent_level) << "} else {\n"; - indent(out, indent_level) << " return " - << "PyMemoryView_FromBuffer(" << return_expr << ");\n"; - indent(out, indent_level) << "}\n"; + << "return Dtool_WrapValue(" << return_expr << ");\n"; } else if (TypeManager::is_pointer(type)) { bool is_const = TypeManager::is_const_pointer_to_anything(type); @@ -6234,13 +6121,13 @@ pack_return_value(ostream &out, int indent_level, FunctionRemap *remap, } else { indent(out, indent_level) << "Should Never Reach This InterfaceMakerPythonNative::pack_python_value"; - // << "return PyLongOrInt_FromLong((int) " << return_expr << ");\n"; + // << "return Dtool_Integer((int) " << return_expr << ");\n"; } } else { // Return None. indent(out, indent_level) - << "return Py_BuildValue(\"\");\n"; + << "return Py_BuildValue(\"\"); // Don't know how to wrap type.\n"; } } @@ -6288,11 +6175,7 @@ write_make_seq(ostream &out, Object *obj, const std::string &ClassName, " PyObject *tuple = PyTuple_New(count);\n" "\n" " for (Py_ssize_t i = 0; i < count; ++i) {\n" - "#if PY_MAJOR_VERSION >= 3\n" - " PyObject *index = PyLong_FromSsize_t(i);\n" - "#else\n" - " PyObject *index = PyInt_FromSsize_t(i);\n" - "#endif\n"; + " PyObject *index = Dtool_WrapValue(i);\n"; switch (elem_getter->_args_type) { case AT_keyword_args: diff --git a/dtool/src/interrogate/interrogateBuilder.cxx b/dtool/src/interrogate/interrogateBuilder.cxx index b11b2a4d3e..762747cc42 100644 --- a/dtool/src/interrogate/interrogateBuilder.cxx +++ b/dtool/src/interrogate/interrogateBuilder.cxx @@ -2838,6 +2838,10 @@ define_enum_type(InterrogateType &itype, CPPEnumType *cpptype) { return; } + if (cpptype->is_scoped()) { + itype._flags |= InterrogateType::F_scoped_enum; + } + int next_value = 0; CPPEnumType::Elements::const_iterator ei; @@ -2919,6 +2923,8 @@ define_extension_type(InterrogateType &itype, CPPExtensionType *cpptype) { // But we can at least indicate which of the various extension types it is. switch (cpptype->_type) { case CPPExtensionType::T_enum: + case CPPExtensionType::T_enum_class: + case CPPExtensionType::T_enum_struct: itype._flags |= InterrogateType::F_enum; break; diff --git a/dtool/src/interrogatedb/interrogateType.I b/dtool/src/interrogatedb/interrogateType.I index be8e40960f..f6037fc571 100644 --- a/dtool/src/interrogatedb/interrogateType.I +++ b/dtool/src/interrogatedb/interrogateType.I @@ -205,6 +205,14 @@ is_enum() const { return (_flags & F_enum) != 0; } +/** + * Returns true if enum values are only available under a scope. + */ +INLINE bool InterrogateType:: +is_scoped_enum() const { + return (_flags & F_scoped_enum) != 0; +} + /** * */ diff --git a/dtool/src/interrogatedb/interrogateType.h b/dtool/src/interrogatedb/interrogateType.h index 3887569694..a1cedd1d82 100644 --- a/dtool/src/interrogatedb/interrogateType.h +++ b/dtool/src/interrogatedb/interrogateType.h @@ -65,6 +65,7 @@ public: INLINE int get_array_size() const; INLINE bool is_enum() const; + INLINE bool is_scoped_enum() const; INLINE int number_of_enum_values() const; INLINE const string &get_enum_value_name(int n) const; INLINE const string &get_enum_value_scoped_name(int n) const; @@ -136,6 +137,7 @@ private: F_unpublished = 0x100000, F_typedef = 0x200000, F_array = 0x400000, + F_scoped_enum = 0x800000, }; public: diff --git a/dtool/src/interrogatedb/py_panda.I b/dtool/src/interrogatedb/py_panda.I new file mode 100644 index 0000000000..51e10db446 --- /dev/null +++ b/dtool/src/interrogatedb/py_panda.I @@ -0,0 +1,203 @@ +/** + * PANDA 3D SOFTWARE + * Copyright (c) Carnegie Mellon University. All rights reserved. + * + * All use of this software is subject to the terms of the revised BSD + * license. You should have received a copy of this license along + * with this source code in a file named "LICENSE." + * + * @file py_panda.I + * @author rdb + * @date 2016-06-06 + */ + +/** + * Template function that can be used to extract any TypedObject pointer from + * a wrapped Python object. + */ +template INLINE bool +DTOOL_Call_ExtractThisPointer(PyObject *self, T *&into) { + if (DtoolCanThisBeAPandaInstance(self)) { + Dtool_PyTypedObject *target_class = Dtool_RuntimeTypeDtoolType(get_type_handle(T).get_index()); + if (target_class != NULL) { + into = (T*) ((Dtool_PyInstDef *)self)->_My_Type->_Dtool_UpcastInterface(self, target_class); + return (into != NULL); + } + } + into = NULL; + return false; +} + +/** + * These functions wrap a pointer for a class that defines get_type_handle(). + */ +template INLINE PyObject * +DTool_CreatePyInstance(const T *obj, bool memory_rules) { + Dtool_PyTypedObject *known_class = Dtool_RuntimeTypeDtoolType(get_type_handle(T).get_index()); + nassertr(known_class != NULL, NULL); + return DTool_CreatePyInstance((void*) obj, *known_class, memory_rules, true); +} + +template INLINE PyObject * +DTool_CreatePyInstance(T *obj, bool memory_rules) { + Dtool_PyTypedObject *known_class = Dtool_RuntimeTypeDtoolType(get_type_handle(T).get_index()); + nassertr(known_class != NULL, NULL); + return DTool_CreatePyInstance((void*) obj, *known_class, memory_rules, false); +} + +template INLINE PyObject * +DTool_CreatePyInstanceTyped(const T *obj, bool memory_rules) { + Dtool_PyTypedObject *known_class = Dtool_RuntimeTypeDtoolType(get_type_handle(T).get_index()); + nassertr(known_class != NULL, NULL); + return DTool_CreatePyInstanceTyped((void*) obj, *known_class, memory_rules, true, obj->get_type().get_index()); +} + +template INLINE PyObject * +DTool_CreatePyInstanceTyped(T *obj, bool memory_rules) { + Dtool_PyTypedObject *known_class = Dtool_RuntimeTypeDtoolType(get_type_handle(T).get_index()); + nassertr(known_class != NULL, NULL); + return DTool_CreatePyInstanceTyped((void*) obj, *known_class, memory_rules, false, obj->get_type().get_index()); +} + +/** + * The following functions wrap an arbitrary C++ value into a PyObject. + */ +ALWAYS_INLINE PyObject *Dtool_WrapValue(int value) { +#if PY_MAJOR_VERSION >= 3 + return PyLong_FromLong((long)value); +#else + return PyInt_FromLong((long)value); +#endif +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(unsigned int value) { +#if PY_MAJOR_VERSION >= 3 && SIZEOF_INT < SIZEOF_LONG + return PyLong_FromLong((long)value); +#elif PY_MAJOR_VERSION >= 3 + return PyLong_FromUnsignedLong((unsigned long)value); +#elif SIZEOF_INT < SIZEOF_LONG + return PyInt_FromLong((long)value); +#else + return (value > LONG_MAX) + ? PyLong_FromUnsignedLong((unsigned long)value) + : PyInt_FromLong((long)value); +#endif +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(long value) { +#if PY_MAJOR_VERSION >= 3 + return PyLong_FromLong(value); +#else + return PyInt_FromLong(value); +#endif +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(unsigned long value) { +#if PY_MAJOR_VERSION >= 3 + return PyLong_FromUnsignedLong(value); +#else + return (value > LONG_MAX) + ? PyLong_FromUnsignedLong(value) + : PyInt_FromLong((long)value); +#endif +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(long long value) { + return PyLong_FromLongLong(value); +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(unsigned long long value) { + return PyLong_FromUnsignedLongLong(value); +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(bool value) { + PyObject *result = (value ? Py_True : Py_False); + Py_INCREF(result); + return result; +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(double value) { + return PyFloat_FromDouble(value); +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(const char *value) { + if (value == (const char *)NULL) { + Py_INCREF(Py_None); + return Py_None; + } else { +#if PY_MAJOR_VERSION >= 3 + return PyUnicode_FromString(value); +#else + return PyString_FromString(value); +#endif + } +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(const wchar_t *value) { + if (value == (const wchar_t *)NULL) { + Py_INCREF(Py_None); + return Py_None; + } else { + return PyUnicode_FromWideChar(value, (Py_ssize_t)wcslen(value)); + } +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::string &value) { +#if PY_MAJOR_VERSION >= 3 + return PyUnicode_FromStringAndSize(value.data(), (Py_ssize_t)value.length()); +#else + return PyString_FromStringAndSize(value.data(), (Py_ssize_t)value.length()); +#endif +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::wstring &value) { + return PyUnicode_FromWideChar(value.data(), (Py_ssize_t)value.length()); +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::string *value) { + if (value == (const std::string *)NULL) { + Py_INCREF(Py_None); + return Py_None; + } else { +#if PY_MAJOR_VERSION >= 3 + return PyUnicode_FromStringAndSize(value->data(), (Py_ssize_t)value->length()); +#else + return PyString_FromStringAndSize(value->data(), (Py_ssize_t)value->length()); +#endif + } +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::wstring *value) { + if (value == (const std::wstring *)NULL) { + Py_INCREF(Py_None); + return Py_None; + } else { + return PyUnicode_FromWideChar(value->data(), (Py_ssize_t)value->length()); + } +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(char value) { +#if PY_MAJOR_VERSION >= 3 + return PyUnicode_FromStringAndSize(&value, 1); +#else + return PyString_FromStringAndSize(&value, 1); +#endif +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(wchar_t value) { + return PyUnicode_FromWideChar(&value, 1); +} + +ALWAYS_INLINE PyObject *Dtool_WrapValue(PyObject *value) { + return value; +} + +#if PY_MAJOR_VERSION >= 0x02060000 +ALWAYS_INLINE PyObject *Dtool_WrapValue(Py_buffer *value) { + if (value == (Py_buffer *)NULL) { + return value; + } else { + return PyMemoryView_FromBuffer(value); + } +} +#endif diff --git a/dtool/src/interrogatedb/py_panda.cxx b/dtool/src/interrogatedb/py_panda.cxx index fc6338170e..a7cfa63ed5 100644 --- a/dtool/src/interrogatedb/py_panda.cxx +++ b/dtool/src/interrogatedb/py_panda.cxx @@ -335,6 +335,33 @@ PyObject *_Dtool_Return(PyObject *value) { return value; } +/** + * Creates a Python 3.4-style enum type. Steals reference to 'names'. + */ +PyObject *Dtool_EnumType_Create(const char *name, PyObject *names, const char *module) { + static PyObject *enum_class = NULL; + static PyObject *enum_meta = NULL; + static PyObject *enum_create = NULL; + if (enum_meta == NULL) { + PyObject *enum_module = PyImport_ImportModule("enum"); + nassertr_always(enum_module != NULL, NULL); + + enum_class = PyObject_GetAttrString(enum_module, "Enum"); + enum_meta = PyObject_GetAttrString(enum_module, "EnumMeta"); + enum_create = PyObject_GetAttrString(enum_meta, "_create_"); + nassertr(enum_meta != NULL, NULL); + } + + PyObject *result = PyObject_CallFunction(enum_create, (char *)"OsN", enum_class, name, names); + nassertr(result != NULL, NULL); + if (module != NULL) { + PyObject *modstr = PyUnicode_FromString(module); + PyObject_SetAttrString(result, "__module__", modstr); + Py_DECREF(modstr); + } + return result; +} + /** */ @@ -833,19 +860,4 @@ PyObject *map_deepcopy_to_copy(PyObject *self, PyObject *args) { return PyObject_CallMethod(self, (char *)"__copy__", (char *)"()"); } -/** - * Similar to PyLong_FromUnsignedLong(), but returns either a regular integer - * or a long integer, according to whether the indicated value will fit. - */ -#if PY_MAJOR_VERSION < 3 -EXPCL_INTERROGATEDB PyObject * -PyLongOrInt_FromUnsignedLong(unsigned long value) { - if ((long)value < 0) { - return PyLong_FromUnsignedLong(value); - } else { - return PyInt_FromLong((long)value); - } -} -#endif - #endif // HAVE_PYTHON diff --git a/dtool/src/interrogatedb/py_panda.h b/dtool/src/interrogatedb/py_panda.h index 422fb5ffe1..22891799dd 100644 --- a/dtool/src/interrogatedb/py_panda.h +++ b/dtool/src/interrogatedb/py_panda.h @@ -103,10 +103,6 @@ inline PyObject* doPy_RETURN_FALSE() #define nb_inplace_divide nb_inplace_true_divide #define PyLongOrInt_Check(x) PyLong_Check(x) -#define PyLongOrInt_FromSize_t PyLong_FromSize_t -#define PyLongOrInt_FromSsize_t PyLong_FromSsize_t -#define PyLongOrInt_FromLong PyLong_FromLong -#define PyLongOrInt_FromUnsignedLong PyLong_FromUnsignedLong #define PyLongOrInt_AS_LONG PyLong_AS_LONG #define PyInt_Check PyLong_Check #define PyInt_AsLong PyLong_AsLong @@ -114,9 +110,6 @@ inline PyObject* doPy_RETURN_FALSE() #else #define PyLongOrInt_Check(x) (PyInt_Check(x) || PyLong_Check(x)) // PyInt_FromSize_t automatically picks the right type. -#define PyLongOrInt_FromSize_t PyInt_FromSize_t -#define PyLongOrInt_FromSsize_t PyInt_FromSsize_t -#define PyLongOrInt_FromLong PyInt_FromLong #define PyLongOrInt_AS_LONG PyInt_AsLong // For more portably defining hash functions. @@ -159,9 +152,6 @@ typedef void *(*DowncastFunction)(void *, Dtool_PyTypedObject *); typedef void *(*CoerceFunction)(PyObject *, void *); typedef void (*ModuleClassInitFunction)(PyObject *module); -// inline Dtool_PyTypedObject * Dtool_RuntimeTypeDtoolType(int -// type); inline void Dtool_Deallocate_General(PyObject * self); inline -// int DTOOL_PyObject_Compare(PyObject *v1, PyObject *v2); THIS IS THE // INSTANCE CONTAINER FOR ALL panda py objects.... struct Dtool_PyInstDef { PyObject_HEAD @@ -300,17 +290,7 @@ EXPCL_INTERROGATEDB bool Dtool_Call_ExtractThisPointer(PyObject *self, Dtool_PyT EXPCL_INTERROGATEDB bool Dtool_Call_ExtractThisPointer_NonConst(PyObject *self, Dtool_PyTypedObject &classdef, void **answer, const char *method_name); -template INLINE bool DTOOL_Call_ExtractThisPointer(PyObject *self, T *&into) { - if (DtoolCanThisBeAPandaInstance(self)) { - Dtool_PyTypedObject *target_class = Dtool_RuntimeTypeDtoolType(get_type_handle(T).get_index()); - if (target_class != NULL) { - into = (T*) ((Dtool_PyInstDef *)self)->_My_Type->_Dtool_UpcastInterface(self, target_class); - return (into != NULL); - } - } - into = NULL; - return false; -} +template INLINE bool DTOOL_Call_ExtractThisPointer(PyObject *self, T *&into); // Functions related to error reporting. EXPCL_INTERROGATEDB bool _Dtool_CheckErrorOccurred(); @@ -348,6 +328,12 @@ EXPCL_INTERROGATEDB PyObject *_Dtool_Return(PyObject *value); #define Dtool_Return(value) _Dtool_Return(value) #endif +/** + * Wrapper around Python 3.4's enum library, which does not have a C API. + */ +EXPCL_INTERROGATEDB PyObject *Dtool_EnumType_Create(const char *name, PyObject *names, + const char *module = NULL); + /** */ @@ -359,29 +345,10 @@ EXPCL_INTERROGATEDB PyObject *DTool_CreatePyInstance(void *local_this, Dtool_PyT // These template methods allow use when the Dtool_PyTypedObject is not known. // They require a get_class_type() to be defined for the class. -template INLINE PyObject *DTool_CreatePyInstance(const T *obj, bool memory_rules) { - Dtool_PyTypedObject *known_class = Dtool_RuntimeTypeDtoolType(get_type_handle(T).get_index()); - nassertr(known_class != NULL, NULL); - return DTool_CreatePyInstance((void*) obj, *known_class, memory_rules, true); -} - -template INLINE PyObject *DTool_CreatePyInstance(T *obj, bool memory_rules) { - Dtool_PyTypedObject *known_class = Dtool_RuntimeTypeDtoolType(get_type_handle(T).get_index()); - nassertr(known_class != NULL, NULL); - return DTool_CreatePyInstance((void*) obj, *known_class, memory_rules, false); -} - -template INLINE PyObject *DTool_CreatePyInstanceTyped(const T *obj, bool memory_rules) { - Dtool_PyTypedObject *known_class = Dtool_RuntimeTypeDtoolType(get_type_handle(T).get_index()); - nassertr(known_class != NULL, NULL); - return DTool_CreatePyInstanceTyped((void*) obj, *known_class, memory_rules, true, obj->get_type().get_index()); -} - -template INLINE PyObject *DTool_CreatePyInstanceTyped(T *obj, bool memory_rules) { - Dtool_PyTypedObject *known_class = Dtool_RuntimeTypeDtoolType(get_type_handle(T).get_index()); - nassertr(known_class != NULL, NULL); - return DTool_CreatePyInstanceTyped((void*) obj, *known_class, memory_rules, false, obj->get_type().get_index()); -} +template INLINE PyObject *DTool_CreatePyInstance(const T *obj, bool memory_rules); +template INLINE PyObject *DTool_CreatePyInstance(T *obj, bool memory_rules); +template INLINE PyObject *DTool_CreatePyInstanceTyped(const T *obj, bool memory_rules); +template INLINE PyObject *DTool_CreatePyInstanceTyped(T *obj, bool memory_rules); // Macro(s) class definition .. Used to allocate storage and init some values // for a Dtool Py Type object. @@ -474,11 +441,32 @@ copy_from_copy_constructor(PyObject *self, PyObject *noargs); EXPCL_INTERROGATEDB PyObject * map_deepcopy_to_copy(PyObject *self, PyObject *args); -#if PY_MAJOR_VERSION < 3 -// In the Python 3 case, it is defined as a macro, at the beginning of this -// file. -EXPCL_INTERROGATEDB PyObject * -PyLongOrInt_FromUnsignedLong(unsigned long value); +/** + * These functions convert a C++ value into the corresponding Python object. + * This used to be generated by the code generator, but it seems more reliable + * and maintainable to define these as overloads and have the compiler sort + * it out. + */ +ALWAYS_INLINE PyObject *Dtool_WrapValue(int value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(unsigned int value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(long value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(unsigned long value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(long long value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(unsigned long long value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(bool value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(double value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(const char *value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(const wchar_t *value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::string &value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::wstring &value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::string *value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::wstring *value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(char value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(wchar_t value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(PyObject *value); + +#if PY_MAJOR_VERSION >= 0x02060000 +ALWAYS_INLINE PyObject *Dtool_WrapValue(Py_buffer *value); #endif EXPCL_INTERROGATEDB extern struct Dtool_PyTypedObject Dtool_DTOOL_SUPER_BASE; @@ -486,6 +474,8 @@ EXPCL_INTERROGATEDB extern void Dtool_PyModuleClassInit_DTOOL_SUPER_BASE(PyObjec #define Dtool_Ptr_DTOOL_SUPER_BASE (&Dtool_DTOOL_SUPER_BASE) +#include "py_panda.I" + #endif // HAVE_PYTHON && !CPPPARSER #endif // PY_PANDA_H_ diff --git a/panda/src/express/globPattern_ext.cxx b/panda/src/express/globPattern_ext.cxx index e6328bc5c0..359c34365f 100644 --- a/panda/src/express/globPattern_ext.cxx +++ b/panda/src/express/globPattern_ext.cxx @@ -25,14 +25,7 @@ match_files(const Filename &cwd) const { PyObject *result = PyList_New(contents.size()); for (size_t i = 0; i < contents.size(); ++i) { - const string &filename = contents[i]; -#if PY_MAJOR_VERSION >= 3 - // This function expects UTF-8. - PyObject *str = PyUnicode_FromStringAndSize(filename.data(), filename.size()); -#else - PyObject *str = PyString_FromStringAndSize(filename.data(), filename.size()); -#endif - PyList_SET_ITEM(result, i, str); + PyList_SET_ITEM(result, i, Dtool_WrapValue(contents[i])); } return result; diff --git a/panda/src/linmath/lpoint2_ext_src.I b/panda/src/linmath/lpoint2_ext_src.I index 88e146e462..371017955d 100644 --- a/panda/src/linmath/lpoint2_ext_src.I +++ b/panda/src/linmath/lpoint2_ext_src.I @@ -11,16 +11,6 @@ * @date 2011-01-02 */ -#ifdef FLOATTYPE_IS_INT -#if PY_MAJOR_VERSION >= 3 -#define PY_FROM_FLOATTYPE PyLong_FromLong -#else -#define PY_FROM_FLOATTYPE PyInt_FromLong -#endif -#else -#define PY_FROM_FLOATTYPE PyFloat_FromDouble -#endif - /** * */ @@ -53,7 +43,7 @@ __getattr__(PyObject *self, const string &attr_name) const { switch (attr_name.size()) { case 1: - return PY_FROM_FLOATTYPE(_this->_v(attr_name[0] - 'x')); + return Dtool_WrapValue(_this->_v(attr_name[0] - 'x')); case 2: { FLOATNAME(LPoint2) *vec = new FLOATNAME(LPoint2); @@ -89,5 +79,3 @@ __setattr__(PyObject *self, const string &attr_name, PyObject *assign) { // Upcall to LVecBase2. return invoke_extension(_this).__setattr__(self, attr_name, assign); } - -#undef PY_FROM_FLOATTYPE diff --git a/panda/src/linmath/lpoint3_ext_src.I b/panda/src/linmath/lpoint3_ext_src.I index dc0d68240d..e695988177 100644 --- a/panda/src/linmath/lpoint3_ext_src.I +++ b/panda/src/linmath/lpoint3_ext_src.I @@ -11,16 +11,6 @@ * @date 2011-01-02 */ -#ifdef FLOATTYPE_IS_INT -#if PY_MAJOR_VERSION >= 3 -#define PY_FROM_FLOATTYPE PyLong_FromLong -#else -#define PY_FROM_FLOATTYPE PyInt_FromLong -#endif -#else -#define PY_FROM_FLOATTYPE PyFloat_FromDouble -#endif - /** * */ @@ -54,7 +44,7 @@ __getattr__(PyObject *self, const string &attr_name) const { switch (attr_name.size()) { case 1: - return PY_FROM_FLOATTYPE(_this->_v(attr_name[0] - 'x')); + return Dtool_WrapValue(_this->_v(attr_name[0] - 'x')); case 2: { FLOATNAME(LPoint2) *vec = new FLOATNAME(LPoint2); @@ -90,5 +80,3 @@ __setattr__(PyObject *self, const string &attr_name, PyObject *assign) { // Upcall to LVecBase2. return invoke_extension(_this).__setattr__(self, attr_name, assign); } - -#undef PY_FROM_FLOATTYPE diff --git a/panda/src/linmath/lpoint4_ext_src.I b/panda/src/linmath/lpoint4_ext_src.I index 4a17134496..bef1b1d012 100644 --- a/panda/src/linmath/lpoint4_ext_src.I +++ b/panda/src/linmath/lpoint4_ext_src.I @@ -11,16 +11,6 @@ * @date 2011-01-02 */ -#ifdef FLOATTYPE_IS_INT -#if PY_MAJOR_VERSION >= 3 -#define PY_FROM_FLOATTYPE PyLong_FromLong -#else -#define PY_FROM_FLOATTYPE PyInt_FromLong -#endif -#else -#define PY_FROM_FLOATTYPE PyFloat_FromDouble -#endif - /** * */ @@ -56,9 +46,9 @@ __getattr__(PyObject *self, const string &attr_name) const { switch (attr_name.size()) { case 1: if (attr_name[0] == 'w') { - return PY_FROM_FLOATTYPE(_this->_v(3)); + return Dtool_WrapValue(_this->_v(3)); } else { - return PY_FROM_FLOATTYPE(_this->_v(attr_name[0] - 'x')); + return Dtool_WrapValue(_this->_v(attr_name[0] - 'x')); } case 2: { @@ -95,5 +85,3 @@ __setattr__(PyObject *self, const string &attr_name, PyObject *assign) { // Upcall to LVecBase4. return invoke_extension(_this).__setattr__(self, attr_name, assign); } - -#undef PY_FROM_FLOATTYPE diff --git a/panda/src/linmath/lvecBase2_ext_src.I b/panda/src/linmath/lvecBase2_ext_src.I index 7355fd5e61..40399dc327 100644 --- a/panda/src/linmath/lvecBase2_ext_src.I +++ b/panda/src/linmath/lvecBase2_ext_src.I @@ -14,16 +14,13 @@ #ifdef FLOATTYPE_IS_INT #if PY_MAJOR_VERSION >= 3 #define PYNUMBER_FLOATTYPE PyNumber_Long -#define PY_FROM_FLOATTYPE PyLong_FromLong #define PY_AS_FLOATTYPE PyLong_AS_LONG #else #define PYNUMBER_FLOATTYPE PyNumber_Int -#define PY_FROM_FLOATTYPE PyInt_FromLong #define PY_AS_FLOATTYPE PyInt_AS_LONG #endif #else #define PYNUMBER_FLOATTYPE PyNumber_Float -#define PY_FROM_FLOATTYPE PyFloat_FromDouble #define PY_AS_FLOATTYPE (FLOATTYPE)PyFloat_AsDouble #endif @@ -88,7 +85,7 @@ __getattr__(PyObject *self, const string &attr_name) const { switch (attr_name.size()) { case 1: - return PY_FROM_FLOATTYPE(_this->_v(attr_name[0] - 'x')); + return Dtool_WrapValue(_this->_v(attr_name[0] - 'x')); case 2: { FLOATNAME(LVecBase2) *vec = new FLOATNAME(LVecBase2); @@ -222,5 +219,4 @@ __ipow__(PyObject *self, FLOATTYPE exponent) { } #undef PYNUMBER_FLOATTYPE -#undef PY_FROM_FLOATTYPE #undef PY_AS_FLOATTYPE diff --git a/panda/src/linmath/lvecBase3_ext_src.I b/panda/src/linmath/lvecBase3_ext_src.I index 4450a3ac30..a2705edbb6 100644 --- a/panda/src/linmath/lvecBase3_ext_src.I +++ b/panda/src/linmath/lvecBase3_ext_src.I @@ -14,16 +14,13 @@ #ifdef FLOATTYPE_IS_INT #if PY_MAJOR_VERSION >= 3 #define PYNUMBER_FLOATTYPE PyNumber_Long -#define PY_FROM_FLOATTYPE PyLong_FromLong #define PY_AS_FLOATTYPE PyLong_AS_LONG #else #define PYNUMBER_FLOATTYPE PyNumber_Int -#define PY_FROM_FLOATTYPE PyInt_FromLong #define PY_AS_FLOATTYPE PyInt_AS_LONG #endif #else #define PYNUMBER_FLOATTYPE PyNumber_Float -#define PY_FROM_FLOATTYPE PyFloat_FromDouble #define PY_AS_FLOATTYPE (FLOATTYPE)PyFloat_AsDouble #endif @@ -89,7 +86,7 @@ __getattr__(PyObject *self, const string &attr_name) const { switch (attr_name.size()) { case 1: - return PY_FROM_FLOATTYPE(_this->_v(attr_name[0] - 'x')); + return Dtool_WrapValue(_this->_v(attr_name[0] - 'x')); case 2: { FLOATNAME(LVecBase2) *vec = new FLOATNAME(LVecBase2); @@ -225,5 +222,4 @@ __ipow__(PyObject *self, FLOATTYPE exponent) { } #undef PYNUMBER_FLOATTYPE -#undef PY_FROM_FLOATTYPE #undef PY_AS_FLOATTYPE diff --git a/panda/src/linmath/lvecBase4_ext_src.I b/panda/src/linmath/lvecBase4_ext_src.I index a802815db0..76eee6b7bf 100644 --- a/panda/src/linmath/lvecBase4_ext_src.I +++ b/panda/src/linmath/lvecBase4_ext_src.I @@ -14,16 +14,13 @@ #ifdef FLOATTYPE_IS_INT #if PY_MAJOR_VERSION >= 3 #define PYNUMBER_FLOATTYPE PyNumber_Long -#define PY_FROM_FLOATTYPE PyLong_FromLong #define PY_AS_FLOATTYPE PyLong_AS_LONG #else #define PYNUMBER_FLOATTYPE PyNumber_Int -#define PY_FROM_FLOATTYPE PyInt_FromLong #define PY_AS_FLOATTYPE PyInt_AS_LONG #endif #else #define PYNUMBER_FLOATTYPE PyNumber_Float -#define PY_FROM_FLOATTYPE PyFloat_FromDouble #define PY_AS_FLOATTYPE (FLOATTYPE)PyFloat_AsDouble #endif @@ -91,9 +88,9 @@ __getattr__(PyObject *self, const string &attr_name) const { switch (attr_name.size()) { case 1: if (attr_name[0] == 'w') { - return PY_FROM_FLOATTYPE(_this->_v(3)); + return Dtool_WrapValue(_this->_v(3)); } else { - return PY_FROM_FLOATTYPE(_this->_v(attr_name[0] - 'x')); + return Dtool_WrapValue(_this->_v(attr_name[0] - 'x')); } case 2: { @@ -233,5 +230,4 @@ __ipow__(PyObject *self, FLOATTYPE exponent) { } #undef PYNUMBER_FLOATTYPE -#undef PY_FROM_FLOATTYPE #undef PY_AS_FLOATTYPE diff --git a/panda/src/linmath/lvector2_ext_src.I b/panda/src/linmath/lvector2_ext_src.I index b08f96f217..dd4dc5e95e 100644 --- a/panda/src/linmath/lvector2_ext_src.I +++ b/panda/src/linmath/lvector2_ext_src.I @@ -11,16 +11,6 @@ * @date 2011-01-02 */ -#ifdef FLOATTYPE_IS_INT -#if PY_MAJOR_VERSION >= 3 -#define PY_FROM_FLOATTYPE PyLong_FromLong -#else -#define PY_FROM_FLOATTYPE PyInt_FromLong -#endif -#else -#define PY_FROM_FLOATTYPE PyFloat_FromDouble -#endif - /** * */ @@ -53,7 +43,7 @@ __getattr__(PyObject *self, const string &attr_name) const { switch (attr_name.size()) { case 1: - return PY_FROM_FLOATTYPE(_this->_v(attr_name[0] - 'x')); + return Dtool_WrapValue(_this->_v(attr_name[0] - 'x')); case 2: { FLOATNAME(LVector2) *vec = new FLOATNAME(LVector2); @@ -89,5 +79,3 @@ __setattr__(PyObject *self, const string &attr_name, PyObject *assign) { // Upcall to LVecBase2. return invoke_extension(_this).__setattr__(self, attr_name, assign); } - -#undef PY_FROM_FLOATTYPE diff --git a/panda/src/linmath/lvector3_ext_src.I b/panda/src/linmath/lvector3_ext_src.I index 36012e7917..155c2a013a 100644 --- a/panda/src/linmath/lvector3_ext_src.I +++ b/panda/src/linmath/lvector3_ext_src.I @@ -11,16 +11,6 @@ * @date 2011-01-02 */ -#ifdef FLOATTYPE_IS_INT -#if PY_MAJOR_VERSION >= 3 -#define PY_FROM_FLOATTYPE PyLong_FromLong -#else -#define PY_FROM_FLOATTYPE PyInt_FromLong -#endif -#else -#define PY_FROM_FLOATTYPE PyFloat_FromDouble -#endif - /** * */ @@ -54,7 +44,7 @@ __getattr__(PyObject *self, const string &attr_name) const { switch (attr_name.size()) { case 1: - return PY_FROM_FLOATTYPE(_this->_v(attr_name[0] - 'x')); + return Dtool_WrapValue(_this->_v(attr_name[0] - 'x')); case 2: { FLOATNAME(LVector2) *vec = new FLOATNAME(LVector2); @@ -90,5 +80,3 @@ __setattr__(PyObject *self, const string &attr_name, PyObject *assign) { // Upcall to LVecBase3. return invoke_extension(_this).__setattr__(self, attr_name, assign); } - -#undef PY_FROM_FLOATTYPE diff --git a/panda/src/linmath/lvector4_ext_src.I b/panda/src/linmath/lvector4_ext_src.I index 4964a1fc68..a188d6c4a2 100644 --- a/panda/src/linmath/lvector4_ext_src.I +++ b/panda/src/linmath/lvector4_ext_src.I @@ -11,16 +11,6 @@ * @date 2011-01-02 */ -#ifdef FLOATTYPE_IS_INT -#if PY_MAJOR_VERSION >= 3 -#define PY_FROM_FLOATTYPE PyLong_FromLong -#else -#define PY_FROM_FLOATTYPE PyInt_FromLong -#endif -#else -#define PY_FROM_FLOATTYPE PyFloat_FromDouble -#endif - /** * */ @@ -56,9 +46,9 @@ __getattr__(PyObject *self, const string &attr_name) const { switch (attr_name.size()) { case 1: if (attr_name[0] == 'w') { - return PY_FROM_FLOATTYPE(_this->_v(3)); + return Dtool_WrapValue(_this->_v(3)); } else { - return PY_FROM_FLOATTYPE(_this->_v(attr_name[0] - 'x')); + return Dtool_WrapValue(_this->_v(attr_name[0] - 'x')); } case 2: { @@ -95,5 +85,3 @@ __setattr__(PyObject *self, const string &attr_name, PyObject *assign) { // Upcall to LVecBase4. return invoke_extension(_this).__setattr__(self, attr_name, assign); } - -#undef PY_FROM_FLOATTYPE diff --git a/panda/src/pgraph/pandaNode_ext.cxx b/panda/src/pgraph/pandaNode_ext.cxx index 9a12edabd0..9395a56e3b 100644 --- a/panda/src/pgraph/pandaNode_ext.cxx +++ b/panda/src/pgraph/pandaNode_ext.cxx @@ -187,15 +187,9 @@ get_tag_keys() const { vector_string keys; _this->get_tag_keys(keys); - PyObject *result = PyList_New(keys.size()); + PyObject *result = PyTuple_New(keys.size()); for (size_t i = 0; i < keys.size(); ++i) { - const string &tag_name = keys[i]; -#if PY_MAJOR_VERSION >= 3 - PyObject *str = PyUnicode_FromStringAndSize(tag_name.data(), tag_name.size()); -#else - PyObject *str = PyString_FromStringAndSize(tag_name.data(), tag_name.size()); -#endif - PyList_SET_ITEM(result, i, str); + PyTuple_SET_ITEM(result, i, Dtool_WrapValue(keys[i])); } return result; @@ -209,15 +203,9 @@ get_python_tag_keys() const { vector_string keys; get_python_tag_keys(keys); - PyObject *result = PyList_New(keys.size()); + PyObject *result = PyTuple_New(keys.size()); for (size_t i = 0; i < keys.size(); ++i) { - const string &tag_name = keys[i]; -#if PY_MAJOR_VERSION >= 3 - PyObject *str = PyUnicode_FromStringAndSize(tag_name.data(), tag_name.size()); -#else - PyObject *str = PyString_FromStringAndSize(tag_name.data(), tag_name.size()); -#endif - PyList_SET_ITEM(result, i, str); + PyTuple_SET_ITEM(result, i, Dtool_WrapValue(keys[i])); } return result; From ce29ae490de0575bd851c3f8fc7eb2d053c7702e Mon Sep 17 00:00:00 2001 From: rdb Date: Wed, 11 May 2016 00:16:53 +0200 Subject: [PATCH 8/9] Interrogate improvements, more properties, MAKE_SEQ_PROPERTY --- dtool/src/cppparser/cppBison.cxx.prebuilt | 8227 +++++++++-------- dtool/src/cppparser/cppBison.h.prebuilt | 172 +- dtool/src/cppparser/cppBison.yxx | 118 + dtool/src/cppparser/cppMakeProperty.cxx | 22 +- dtool/src/cppparser/cppMakeProperty.h | 4 + dtool/src/cppparser/cppPreprocessor.cxx | 2 + dtool/src/dtoolbase/dtoolbase.h | 2 + dtool/src/dtoolbase/typeHandle.h | 2 + dtool/src/dtoolbase/typeRegistry.h | 3 + dtool/src/dtoolutil/dSearchPath.h | 1 + dtool/src/dtoolutil/pandaSystem.h | 1 + dtool/src/interrogate/interfaceMaker.cxx | 4 +- dtool/src/interrogate/interfaceMaker.h | 2 + .../interfaceMakerPythonNative.cxx | 284 +- dtool/src/interrogate/interrogateBuilder.cxx | 101 +- .../src/interrogatedb/interrogateDatabase.cxx | 2 +- dtool/src/interrogatedb/interrogateElement.I | 36 + .../src/interrogatedb/interrogateElement.cxx | 11 +- dtool/src/interrogatedb/interrogateElement.h | 9 + dtool/src/interrogatedb/py_panda.I | 16 + dtool/src/interrogatedb/py_panda.cxx | 118 +- dtool/src/interrogatedb/py_panda.h | 18 + dtool/src/prc/configPage.h | 4 + dtool/src/prc/configVariableCore.h | 15 + dtool/src/prc/configVariableManager.h | 2 + dtool/src/prc/configVariableSearchPath.h | 1 + dtool/src/prc/encryptStream.I | 23 + dtool/src/prc/encryptStream.h | 14 + dtool/src/prc/notifyCategory.h | 1 + dtool/src/prc/streamReader.h | 1 + dtool/src/prc/streamWrapper.h | 3 + dtool/src/prc/streamWriter.h | 1 + panda/src/chan/animGroup.h | 2 + panda/src/chan/partBundle.h | 6 + panda/src/chan/partBundleHandle.h | 2 + panda/src/chan/partBundleNode.h | 3 + panda/src/chan/partGroup.h | 1 + panda/src/collide/collisionFloorMesh.h | 5 +- panda/src/collide/collisionHandlerEvent.h | 4 + panda/src/collide/collisionHandlerQueue.h | 1 + panda/src/collide/collisionNode.h | 1 + panda/src/collide/collisionPolygon.h | 1 + panda/src/collide/collisionTraverser.h | 1 + panda/src/display/graphicsEngine.h | 1 + panda/src/display/graphicsOutput.h | 3 + panda/src/display/graphicsPipeSelection.h | 1 + panda/src/egg/eggCompositePrimitive.h | 2 + panda/src/egg/eggGroup.h | 39 + panda/src/egg/eggNurbsCurve.h | 5 + panda/src/egg/eggPrimitive.I | 10 +- panda/src/egg/eggPrimitive.cxx | 13 + panda/src/egg/eggPrimitive.h | 18 +- panda/src/event/asyncTaskManager.h | 4 + panda/src/event/event.h | 4 + panda/src/express/virtualFileSystem.h | 1 + panda/src/gobj/geom.h | 1 + panda/src/gobj/geomVertexArrayFormat.h | 1 + panda/src/gobj/geomVertexData.h | 1 + panda/src/gobj/geomVertexFormat.h | 5 + panda/src/gobj/transformBlendTable.h | 8 +- panda/src/gobj/transformTable.h | 6 +- panda/src/linmath/lmatrix3_src.h | 2 + panda/src/linmath/lmatrix4_src.h | 2 + panda/src/mathutil/boundingBox.h | 3 + panda/src/mathutil/boundingHexahedron.h | 3 + .../src/mathutil/intersectionBoundingVolume.h | 1 + panda/src/mathutil/triangulator.h | 1 + panda/src/mathutil/triangulator3.h | 3 + panda/src/mathutil/unionBoundingVolume.h | 1 + panda/src/movies/microphoneAudio.h | 4 + panda/src/net/connectionManager.h | 3 + panda/src/parametrics/nurbsSurfaceEvaluator.h | 5 + .../parametrics/parametricCurveCollection.cxx | 15 + .../parametrics/parametricCurveCollection.h | 8 + panda/src/pgraph/camera.h | 1 + panda/src/pgraph/loaderFileTypeRegistry.h | 1 + panda/src/pgraph/nodePath.h | 10 + panda/src/pgraph/occluderNode.I | 15 +- panda/src/pgraph/occluderNode.h | 9 +- panda/src/pgraph/pandaNode.I | 26 +- panda/src/pgraph/pandaNode.h | 38 +- panda/src/pgraph/portalNode.h | 11 + panda/src/pgraphnodes/computeNode.I | 26 +- panda/src/pgraphnodes/computeNode.h | 7 +- panda/src/pgraphnodes/lodNode.h | 7 + panda/src/physics/forceNode.I | 7 +- panda/src/physics/forceNode.cxx | 18 +- panda/src/physics/forceNode.h | 11 +- panda/src/physics/physicalNode.I | 7 +- panda/src/physics/physicalNode.cxx | 16 +- panda/src/physics/physicalNode.h | 9 +- panda/src/pnmimage/pnmFileType.h | 4 + panda/src/pnmimage/pnmFileTypeRegistry.h | 1 + panda/src/pstatclient/pStatClient.h | 8 + panda/src/putil/modifierButtons.h | 1 + panda/src/text/dynamicTextFont.h | 1 + panda/src/tform/buttonThrower.h | 1 + panda/src/tform/mouseWatcherBase.h | 2 + 98 files changed, 5411 insertions(+), 4247 deletions(-) diff --git a/dtool/src/cppparser/cppBison.cxx.prebuilt b/dtool/src/cppparser/cppBison.cxx.prebuilt index 8c5694e0b5..73a9297cb9 100644 --- a/dtool/src/cppparser/cppBison.cxx.prebuilt +++ b/dtool/src/cppparser/cppBison.cxx.prebuilt @@ -376,48 +376,50 @@ extern int cppyydebug; KW_INLINE = 334, KW_INT = 335, KW_LONG = 336, - KW_MAKE_PROPERTY = 337, - KW_MAKE_PROPERTY2 = 338, - KW_MAKE_SEQ = 339, - KW_MUTABLE = 340, - KW_NAMESPACE = 341, - KW_NEW = 342, - KW_NOEXCEPT = 343, - KW_NULLPTR = 344, - KW_OPERATOR = 345, - KW_OVERRIDE = 346, - KW_PRIVATE = 347, - KW_PROTECTED = 348, - KW_PUBLIC = 349, - KW_REGISTER = 350, - KW_REINTERPRET_CAST = 351, - KW_RETURN = 352, - KW_SHORT = 353, - KW_SIGNED = 354, - KW_SIZEOF = 355, - KW_STATIC = 356, - KW_STATIC_ASSERT = 357, - KW_STATIC_CAST = 358, - KW_STRUCT = 359, - KW_TEMPLATE = 360, - KW_THREAD_LOCAL = 361, - KW_THROW = 362, - KW_TRUE = 363, - KW_TRY = 364, - KW_TYPEDEF = 365, - KW_TYPEID = 366, - KW_TYPENAME = 367, - KW_UNION = 368, - KW_UNSIGNED = 369, - KW_USING = 370, - KW_VIRTUAL = 371, - KW_VOID = 372, - KW_VOLATILE = 373, - KW_WCHAR_T = 374, - KW_WHILE = 375, - START_CPP = 376, - START_CONST_EXPR = 377, - START_TYPE = 378 + KW_MAKE_MAP_PROPERTY = 337, + KW_MAKE_PROPERTY = 338, + KW_MAKE_PROPERTY2 = 339, + KW_MAKE_SEQ = 340, + KW_MAKE_SEQ_PROPERTY = 341, + KW_MUTABLE = 342, + KW_NAMESPACE = 343, + KW_NEW = 344, + KW_NOEXCEPT = 345, + KW_NULLPTR = 346, + KW_OPERATOR = 347, + KW_OVERRIDE = 348, + KW_PRIVATE = 349, + KW_PROTECTED = 350, + KW_PUBLIC = 351, + KW_REGISTER = 352, + KW_REINTERPRET_CAST = 353, + KW_RETURN = 354, + KW_SHORT = 355, + KW_SIGNED = 356, + KW_SIZEOF = 357, + KW_STATIC = 358, + KW_STATIC_ASSERT = 359, + KW_STATIC_CAST = 360, + KW_STRUCT = 361, + KW_TEMPLATE = 362, + KW_THREAD_LOCAL = 363, + KW_THROW = 364, + KW_TRUE = 365, + KW_TRY = 366, + KW_TYPEDEF = 367, + KW_TYPEID = 368, + KW_TYPENAME = 369, + KW_UNION = 370, + KW_UNSIGNED = 371, + KW_USING = 372, + KW_VIRTUAL = 373, + KW_VOID = 374, + KW_VOLATILE = 375, + KW_WCHAR_T = 376, + KW_WHILE = 377, + START_CPP = 378, + START_CONST_EXPR = 379, + START_TYPE = 380 }; #endif /* Tokens. */ @@ -500,48 +502,50 @@ extern int cppyydebug; #define KW_INLINE 334 #define KW_INT 335 #define KW_LONG 336 -#define KW_MAKE_PROPERTY 337 -#define KW_MAKE_PROPERTY2 338 -#define KW_MAKE_SEQ 339 -#define KW_MUTABLE 340 -#define KW_NAMESPACE 341 -#define KW_NEW 342 -#define KW_NOEXCEPT 343 -#define KW_NULLPTR 344 -#define KW_OPERATOR 345 -#define KW_OVERRIDE 346 -#define KW_PRIVATE 347 -#define KW_PROTECTED 348 -#define KW_PUBLIC 349 -#define KW_REGISTER 350 -#define KW_REINTERPRET_CAST 351 -#define KW_RETURN 352 -#define KW_SHORT 353 -#define KW_SIGNED 354 -#define KW_SIZEOF 355 -#define KW_STATIC 356 -#define KW_STATIC_ASSERT 357 -#define KW_STATIC_CAST 358 -#define KW_STRUCT 359 -#define KW_TEMPLATE 360 -#define KW_THREAD_LOCAL 361 -#define KW_THROW 362 -#define KW_TRUE 363 -#define KW_TRY 364 -#define KW_TYPEDEF 365 -#define KW_TYPEID 366 -#define KW_TYPENAME 367 -#define KW_UNION 368 -#define KW_UNSIGNED 369 -#define KW_USING 370 -#define KW_VIRTUAL 371 -#define KW_VOID 372 -#define KW_VOLATILE 373 -#define KW_WCHAR_T 374 -#define KW_WHILE 375 -#define START_CPP 376 -#define START_CONST_EXPR 377 -#define START_TYPE 378 +#define KW_MAKE_MAP_PROPERTY 337 +#define KW_MAKE_PROPERTY 338 +#define KW_MAKE_PROPERTY2 339 +#define KW_MAKE_SEQ 340 +#define KW_MAKE_SEQ_PROPERTY 341 +#define KW_MUTABLE 342 +#define KW_NAMESPACE 343 +#define KW_NEW 344 +#define KW_NOEXCEPT 345 +#define KW_NULLPTR 346 +#define KW_OPERATOR 347 +#define KW_OVERRIDE 348 +#define KW_PRIVATE 349 +#define KW_PROTECTED 350 +#define KW_PUBLIC 351 +#define KW_REGISTER 352 +#define KW_REINTERPRET_CAST 353 +#define KW_RETURN 354 +#define KW_SHORT 355 +#define KW_SIGNED 356 +#define KW_SIZEOF 357 +#define KW_STATIC 358 +#define KW_STATIC_ASSERT 359 +#define KW_STATIC_CAST 360 +#define KW_STRUCT 361 +#define KW_TEMPLATE 362 +#define KW_THREAD_LOCAL 363 +#define KW_THROW 364 +#define KW_TRUE 365 +#define KW_TRY 366 +#define KW_TYPEDEF 367 +#define KW_TYPEID 368 +#define KW_TYPENAME 369 +#define KW_UNION 370 +#define KW_UNSIGNED 371 +#define KW_USING 372 +#define KW_VIRTUAL 373 +#define KW_VOID 374 +#define KW_VOLATILE 375 +#define KW_WCHAR_T 376 +#define KW_WHILE 377 +#define START_CPP 378 +#define START_CONST_EXPR 379 +#define START_TYPE 380 /* Value type. */ @@ -567,7 +571,7 @@ int cppyyparse (void); /* Copy the second part of user declarations. */ -#line 571 "built/tmp/cppBison.yxx.c" /* yacc.c:358 */ +#line 575 "built/tmp/cppBison.yxx.c" /* yacc.c:358 */ #ifdef short # undef short @@ -811,21 +815,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 85 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 5303 +#define YYLAST 5523 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 148 +#define YYNTOKENS 150 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 109 /* YYNRULES -- Number of rules. */ -#define YYNRULES 675 +#define YYNRULES 680 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 1317 +#define YYNSTATES 1339 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 378 +#define YYMAXUTOK 380 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -837,16 +841,16 @@ static const yytype_uint8 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 147, 2, 2, 2, 139, 132, 2, - 142, 144, 137, 135, 125, 136, 141, 138, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 127, 126, - 133, 128, 134, 129, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 149, 2, 2, 2, 141, 134, 2, + 144, 146, 139, 137, 127, 138, 143, 140, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 129, 128, + 135, 130, 136, 131, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 143, 2, 146, 131, 2, 2, 2, 2, 2, + 2, 145, 2, 148, 133, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 124, 130, 145, 140, 2, 2, 2, + 2, 2, 2, 126, 132, 147, 142, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -871,81 +875,83 @@ static const yytype_uint8 yytranslate[] = 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123 + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 422, 422, 423, 427, 434, 435, 436, 440, 441, - 445, 449, 462, 461, 473, 474, 475, 476, 477, 478, - 479, 480, 493, 502, 506, 514, 518, 522, 533, 554, - 576, 609, 631, 642, 656, 655, 670, 674, 678, 689, - 693, 697, 701, 705, 709, 713, 717, 721, 725, 729, - 733, 741, 742, 746, 747, 751, 755, 764, 772, 784, - 783, 799, 798, 820, 828, 839, 848, 862, 861, 877, - 876, 891, 906, 912, 921, 928, 941, 940, 965, 964, - 992, 991, 1022, 1021, 1040, 1039, 1060, 1059, 1091, 1090, - 1116, 1129, 1133, 1137, 1141, 1145, 1149, 1154, 1158, 1169, - 1173, 1177, 1181, 1185, 1189, 1193, 1197, 1201, 1205, 1209, - 1213, 1217, 1221, 1225, 1229, 1233, 1237, 1241, 1245, 1249, - 1253, 1257, 1261, 1265, 1269, 1273, 1277, 1281, 1285, 1289, - 1293, 1297, 1301, 1305, 1309, 1313, 1317, 1321, 1328, 1329, - 1334, 1333, 1341, 1345, 1346, 1350, 1356, 1365, 1369, 1373, - 1377, 1381, 1387, 1397, 1401, 1406, 1418, 1422, 1436, 1451, - 1456, 1461, 1466, 1471, 1476, 1481, 1486, 1492, 1491, 1513, - 1523, 1533, 1537, 1541, 1550, 1554, 1559, 1563, 1568, 1576, - 1581, 1589, 1593, 1598, 1602, 1607, 1615, 1620, 1628, 1632, - 1639, 1643, 1650, 1654, 1658, 1662, 1666, 1673, 1677, 1681, - 1685, 1689, 1693, 1700, 1701, 1702, 1706, 1709, 1710, 1711, - 1715, 1720, 1726, 1732, 1743, 1747, 1757, 1761, 1765, 1770, - 1775, 1780, 1785, 1790, 1795, 1803, 1807, 1811, 1816, 1821, - 1826, 1831, 1836, 1841, 1846, 1852, 1860, 1864, 1869, 1874, - 1879, 1884, 1889, 1894, 1902, 1906, 1911, 1916, 1921, 1926, - 1931, 1936, 1941, 1947, 1954, 1961, 1971, 1975, 1983, 1987, - 1991, 1995, 1999, 2015, 2031, 2040, 2047, 2051, 2059, 2063, - 2067, 2071, 2075, 2091, 2107, 2125, 2134, 2141, 2145, 2153, - 2157, 2173, 2189, 2198, 2205, 2209, 2217, 2221, 2230, 2229, - 2254, 2253, 2283, 2284, 2291, 2292, 2296, 2297, 2301, 2305, - 2309, 2313, 2317, 2321, 2325, 2329, 2333, 2337, 2344, 2352, - 2356, 2360, 2365, 2373, 2377, 2384, 2385, 2390, 2397, 2398, - 2403, 2411, 2415, 2419, 2426, 2430, 2434, 2442, 2441, 2464, - 2463, 2486, 2487, 2491, 2497, 2504, 2513, 2514, 2515, 2519, - 2523, 2527, 2531, 2535, 2539, 2544, 2549, 2554, 2559, 2563, - 2568, 2577, 2582, 2590, 2594, 2598, 2606, 2616, 2616, 2626, - 2627, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, - 2640, 2641, 2641, 2641, 2642, 2642, 2642, 2642, 2643, 2643, - 2643, 2643, 2643, 2644, 2644, 2644, 2645, 2645, 2645, 2645, - 2645, 2646, 2646, 2646, 2646, 2646, 2647, 2647, 2647, 2647, - 2647, 2648, 2648, 2648, 2648, 2648, 2649, 2649, 2649, 2649, - 2650, 2650, 2650, 2650, 2650, 2651, 2651, 2651, 2651, 2651, - 2652, 2652, 2652, 2652, 2652, 2652, 2653, 2653, 2653, 2653, - 2653, 2654, 2654, 2654, 2654, 2655, 2655, 2655, 2655, 2656, - 2656, 2656, 2656, 2656, 2657, 2657, 2657, 2658, 2658, 2658, - 2658, 2658, 2659, 2659, 2659, 2659, 2659, 2660, 2660, 2660, - 2660, 2660, 2663, 2663, 2663, 2663, 2663, 2663, 2663, 2663, - 2663, 2663, 2663, 2664, 2664, 2664, 2664, 2664, 2664, 2664, - 2664, 2664, 2664, 2665, 2665, 2669, 2673, 2680, 2684, 2691, - 2695, 2702, 2706, 2710, 2714, 2718, 2722, 2726, 2730, 2734, - 2738, 2742, 2746, 2750, 2754, 2758, 2762, 2766, 2770, 2774, - 2778, 2782, 2786, 2790, 2794, 2798, 2802, 2806, 2810, 2814, - 2818, 2822, 2826, 2830, 2834, 2838, 2842, 2846, 2854, 2858, - 2862, 2866, 2870, 2874, 2878, 2888, 2894, 2900, 2906, 2912, - 2918, 2924, 2931, 2938, 2945, 2952, 2958, 2964, 2968, 2972, - 2976, 2980, 2991, 3002, 3006, 3010, 3014, 3018, 3022, 3026, - 3030, 3034, 3038, 3042, 3046, 3050, 3054, 3058, 3062, 3066, - 3070, 3074, 3078, 3082, 3086, 3090, 3094, 3098, 3102, 3106, - 3110, 3114, 3118, 3122, 3129, 3133, 3137, 3141, 3145, 3149, - 3153, 3157, 3161, 3167, 3173, 3177, 3181, 3195, 3199, 3203, - 3207, 3211, 3215, 3219, 3223, 3227, 3231, 3235, 3246, 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, 3380, - 3384, 3388, 3392, 3396, 3400, 3404, 3408, 3412, 3418, 3424, - 3432, 3433, 3434, 3438, 3439, 3440, 3441, 3445, 3453, 3461, - 3489, 3493, 3497, 3501, 3505, 3511, 3515, 3519, 3530, 3534, - 3538, 3546, 3550, 3554, 3560, 3571 + 0, 424, 424, 425, 429, 436, 437, 438, 442, 443, + 447, 451, 464, 463, 475, 476, 477, 478, 479, 480, + 481, 482, 495, 504, 508, 516, 520, 524, 535, 556, + 586, 603, 631, 668, 690, 723, 745, 756, 770, 769, + 784, 788, 792, 803, 807, 811, 815, 819, 823, 827, + 831, 835, 839, 843, 847, 855, 856, 860, 861, 865, + 869, 878, 886, 898, 897, 913, 912, 934, 942, 953, + 962, 976, 975, 991, 990, 1005, 1020, 1026, 1035, 1042, + 1055, 1054, 1079, 1078, 1106, 1105, 1136, 1135, 1154, 1153, + 1174, 1173, 1205, 1204, 1230, 1243, 1247, 1251, 1255, 1259, + 1263, 1268, 1272, 1283, 1287, 1291, 1295, 1299, 1303, 1307, + 1311, 1315, 1319, 1323, 1327, 1331, 1335, 1339, 1343, 1347, + 1351, 1355, 1359, 1363, 1367, 1371, 1375, 1379, 1383, 1387, + 1391, 1395, 1399, 1403, 1407, 1411, 1415, 1419, 1423, 1427, + 1431, 1435, 1442, 1443, 1448, 1447, 1455, 1459, 1460, 1464, + 1470, 1479, 1483, 1487, 1491, 1495, 1501, 1511, 1515, 1520, + 1532, 1536, 1550, 1565, 1570, 1575, 1580, 1585, 1590, 1595, + 1600, 1606, 1605, 1627, 1637, 1647, 1651, 1655, 1664, 1668, + 1673, 1677, 1682, 1690, 1695, 1703, 1707, 1712, 1716, 1721, + 1729, 1734, 1742, 1746, 1753, 1757, 1764, 1768, 1772, 1776, + 1780, 1787, 1791, 1795, 1799, 1803, 1807, 1814, 1815, 1816, + 1820, 1823, 1824, 1825, 1829, 1834, 1840, 1846, 1857, 1861, + 1871, 1875, 1879, 1884, 1889, 1894, 1899, 1904, 1909, 1917, + 1921, 1925, 1930, 1935, 1940, 1945, 1950, 1955, 1960, 1966, + 1974, 1978, 1983, 1988, 1993, 1998, 2003, 2008, 2016, 2020, + 2025, 2030, 2035, 2040, 2045, 2050, 2055, 2061, 2068, 2075, + 2085, 2089, 2097, 2101, 2105, 2109, 2113, 2129, 2145, 2154, + 2161, 2165, 2173, 2177, 2181, 2185, 2189, 2205, 2221, 2239, + 2248, 2255, 2259, 2267, 2271, 2287, 2303, 2312, 2319, 2323, + 2331, 2335, 2344, 2343, 2368, 2367, 2397, 2398, 2405, 2406, + 2410, 2411, 2415, 2419, 2423, 2427, 2431, 2435, 2439, 2443, + 2447, 2451, 2458, 2466, 2470, 2474, 2479, 2487, 2491, 2498, + 2499, 2504, 2511, 2512, 2517, 2525, 2529, 2533, 2540, 2544, + 2548, 2556, 2555, 2578, 2577, 2600, 2601, 2605, 2611, 2618, + 2627, 2628, 2629, 2633, 2637, 2641, 2645, 2649, 2653, 2658, + 2663, 2668, 2673, 2677, 2682, 2691, 2696, 2704, 2708, 2712, + 2720, 2730, 2730, 2740, 2741, 2745, 2746, 2747, 2748, 2749, + 2750, 2751, 2752, 2753, 2754, 2755, 2755, 2755, 2756, 2756, + 2756, 2756, 2757, 2757, 2757, 2757, 2757, 2758, 2758, 2758, + 2759, 2759, 2759, 2759, 2759, 2760, 2760, 2760, 2760, 2760, + 2761, 2761, 2761, 2761, 2761, 2762, 2762, 2762, 2762, 2762, + 2763, 2763, 2763, 2763, 2764, 2764, 2764, 2764, 2764, 2765, + 2765, 2765, 2765, 2765, 2766, 2766, 2766, 2766, 2766, 2766, + 2767, 2767, 2767, 2767, 2767, 2768, 2768, 2768, 2768, 2769, + 2769, 2769, 2769, 2770, 2770, 2770, 2770, 2770, 2771, 2771, + 2771, 2772, 2772, 2772, 2772, 2772, 2773, 2773, 2773, 2773, + 2773, 2774, 2774, 2774, 2774, 2774, 2777, 2777, 2777, 2777, + 2777, 2777, 2777, 2777, 2777, 2777, 2777, 2778, 2778, 2778, + 2778, 2778, 2778, 2778, 2778, 2778, 2778, 2779, 2779, 2783, + 2787, 2794, 2798, 2805, 2809, 2816, 2820, 2824, 2828, 2832, + 2836, 2840, 2844, 2848, 2852, 2856, 2860, 2864, 2868, 2872, + 2876, 2880, 2884, 2888, 2892, 2896, 2900, 2904, 2908, 2912, + 2916, 2920, 2924, 2928, 2932, 2936, 2940, 2944, 2948, 2952, + 2956, 2960, 2968, 2972, 2976, 2980, 2984, 2988, 2992, 3002, + 3008, 3014, 3020, 3026, 3032, 3038, 3045, 3052, 3059, 3066, + 3072, 3078, 3082, 3086, 3090, 3094, 3105, 3116, 3120, 3124, + 3128, 3132, 3136, 3140, 3144, 3148, 3152, 3156, 3160, 3164, + 3168, 3172, 3176, 3180, 3184, 3188, 3192, 3196, 3200, 3204, + 3208, 3212, 3216, 3220, 3224, 3228, 3232, 3236, 3243, 3247, + 3251, 3255, 3259, 3263, 3267, 3271, 3275, 3281, 3287, 3291, + 3295, 3309, 3313, 3317, 3321, 3325, 3329, 3333, 3337, 3341, + 3345, 3349, 3360, 3371, 3375, 3379, 3383, 3387, 3391, 3395, + 3399, 3403, 3407, 3411, 3415, 3419, 3423, 3427, 3431, 3435, + 3439, 3443, 3447, 3451, 3455, 3459, 3463, 3467, 3471, 3475, + 3479, 3483, 3487, 3494, 3498, 3502, 3506, 3510, 3514, 3518, + 3522, 3526, 3532, 3538, 3546, 3547, 3548, 3552, 3553, 3554, + 3555, 3559, 3567, 3575, 3603, 3607, 3611, 3615, 3619, 3625, + 3629, 3633, 3637, 3648, 3652, 3656, 3664, 3668, 3672, 3678, + 3689 }; #endif @@ -969,19 +975,20 @@ static const char *const yytname[] = "KW_DELETE", "KW_DOUBLE", "KW_DYNAMIC_CAST", "KW_ELSE", "KW_END_PUBLISH", "KW_ENUM", "KW_EXTENSION", "KW_EXTERN", "KW_EXPLICIT", "KW_PUBLISHED", "KW_FALSE", "KW_FINAL", "KW_FLOAT", "KW_FRIEND", "KW_FOR", "KW_GOTO", - "KW_IF", "KW_INLINE", "KW_INT", "KW_LONG", "KW_MAKE_PROPERTY", - "KW_MAKE_PROPERTY2", "KW_MAKE_SEQ", "KW_MUTABLE", "KW_NAMESPACE", - "KW_NEW", "KW_NOEXCEPT", "KW_NULLPTR", "KW_OPERATOR", "KW_OVERRIDE", - "KW_PRIVATE", "KW_PROTECTED", "KW_PUBLIC", "KW_REGISTER", - "KW_REINTERPRET_CAST", "KW_RETURN", "KW_SHORT", "KW_SIGNED", "KW_SIZEOF", - "KW_STATIC", "KW_STATIC_ASSERT", "KW_STATIC_CAST", "KW_STRUCT", - "KW_TEMPLATE", "KW_THREAD_LOCAL", "KW_THROW", "KW_TRUE", "KW_TRY", - "KW_TYPEDEF", "KW_TYPEID", "KW_TYPENAME", "KW_UNION", "KW_UNSIGNED", - "KW_USING", "KW_VIRTUAL", "KW_VOID", "KW_VOLATILE", "KW_WCHAR_T", - "KW_WHILE", "START_CPP", "START_CONST_EXPR", "START_TYPE", "'{'", "','", - "';'", "':'", "'='", "'?'", "'|'", "'^'", "'&'", "'<'", "'>'", "'+'", - "'-'", "'*'", "'/'", "'%'", "'~'", "'.'", "'('", "'['", "')'", "'}'", - "']'", "'!'", "$accept", "grammar", "cpp", "constructor_inits", + "KW_IF", "KW_INLINE", "KW_INT", "KW_LONG", "KW_MAKE_MAP_PROPERTY", + "KW_MAKE_PROPERTY", "KW_MAKE_PROPERTY2", "KW_MAKE_SEQ", + "KW_MAKE_SEQ_PROPERTY", "KW_MUTABLE", "KW_NAMESPACE", "KW_NEW", + "KW_NOEXCEPT", "KW_NULLPTR", "KW_OPERATOR", "KW_OVERRIDE", "KW_PRIVATE", + "KW_PROTECTED", "KW_PUBLIC", "KW_REGISTER", "KW_REINTERPRET_CAST", + "KW_RETURN", "KW_SHORT", "KW_SIGNED", "KW_SIZEOF", "KW_STATIC", + "KW_STATIC_ASSERT", "KW_STATIC_CAST", "KW_STRUCT", "KW_TEMPLATE", + "KW_THREAD_LOCAL", "KW_THROW", "KW_TRUE", "KW_TRY", "KW_TYPEDEF", + "KW_TYPEID", "KW_TYPENAME", "KW_UNION", "KW_UNSIGNED", "KW_USING", + "KW_VIRTUAL", "KW_VOID", "KW_VOLATILE", "KW_WCHAR_T", "KW_WHILE", + "START_CPP", "START_CONST_EXPR", "START_TYPE", "'{'", "','", "';'", + "':'", "'='", "'?'", "'|'", "'^'", "'&'", "'<'", "'>'", "'+'", "'-'", + "'*'", "'/'", "'%'", "'~'", "'.'", "'('", "'['", "')'", "'}'", "']'", + "'!'", "$accept", "grammar", "cpp", "constructor_inits", "constructor_init", "extern_c", "$@1", "declaration", "friend_declaration", "$@2", "storage_class", "attribute_specifiers", "attribute_specifier", "type_like_declaration", @@ -1035,18 +1042,18 @@ static const yytype_uint16 yytoknum[] = 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 123, 44, 59, 58, 61, 63, - 124, 94, 38, 60, 62, 43, 45, 42, 47, 37, - 126, 46, 40, 91, 41, 125, 93, 33 + 375, 376, 377, 378, 379, 380, 123, 44, 59, 58, + 61, 63, 124, 94, 38, 60, 62, 43, 45, 42, + 47, 37, 126, 46, 40, 91, 41, 125, 93, 33 }; # endif -#define YYPACT_NINF -749 +#define YYPACT_NINF -703 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-749))) + (!!((Yystate) == (-703))) -#define YYTABLE_NINF -671 +#define YYTABLE_NINF -676 #define yytable_value_is_error(Yytable_value) \ 0 @@ -1055,138 +1062,140 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -2, -749, 2788, 4412, 66, 2980, -749, -749, -749, -749, - -749, -749, -749, -749, -81, -17, 0, 5, 16, 24, - 37, 53, 73, -749, -749, 68, 106, 116, 4611, -749, - -749, 82, 126, 157, 162, 174, -749, 170, 171, 181, - 2788, 2788, 2788, 2788, 2788, 1434, 3192, 2788, 3664, -749, - 124, -749, -749, -749, -749, -749, -749, -749, 4633, 182, - -749, -30, -749, -749, 3317, 1125, 1125, -749, 1254, -749, - 1125, -749, -749, 235, -749, -749, -749, -749, 203, 47, - 819, -749, -749, -749, -749, -749, -749, 5160, 5160, -749, - 5160, 799, 5160, 206, -749, 5116, 192, 198, 207, 5160, - 998, 228, 239, 246, 5160, 5160, 232, 5130, 5160, 5160, - 1591, 5160, 5160, -749, 237, -749, -749, -749, 3190, -749, - -749, -749, -749, -749, -749, 2788, 4412, 2788, 2788, 2788, - 2788, 4412, 2788, 4412, 2788, 2788, 2788, -749, -749, 244, - 1254, 248, 1254, 1254, -749, 4412, 2788, 2788, 4412, 4412, - 1434, 2788, 2788, 14, 14, 14, 14, 14, -81, 0, - 5, 16, 24, 53, 68, 106, 2527, 658, 905, 2775, - 181, 252, -55, 3664, -749, -749, -749, -749, -749, -749, - -749, -749, -749, 1254, 253, 256, -749, -749, 14, 2788, - 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, - 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, - 2228, 2788, -749, -749, 235, 2788, -749, -749, -749, 1125, - -749, -749, -749, -749, -749, 267, 193, 235, 235, 193, - 193, 3979, 272, -749, 281, -749, -749, -749, -749, 893, - 301, 12, 17, 111, -749, -749, -749, 5160, -749, -749, - -749, 5160, -749, -749, -749, 5063, 1562, -749, 1254, 1254, - 1254, -749, -749, 321, -749, -749, -749, -749, -749, 2788, - 3094, -749, 316, -749, 3262, -749, 1254, 230, -749, -749, - 1254, 284, 306, -749, 4179, 325, 4479, 1254, -749, 1254, - 328, 285, 342, -749, -749, -749, -749, 519, 819, -749, - 327, 347, -749, 341, 360, 361, 363, 370, 348, 372, - 388, 383, 397, 401, 2788, -749, 2788, -749, -749, 398, - 403, 404, 406, 423, 415, 3388, 431, 432, 2788, 2788, - -749, -749, -19, 3192, 3846, 3866, 1271, 1271, 322, 322, - 338, 338, -749, 3591, 1139, 3882, 4044, 322, 322, 179, - 179, 14, 14, 14, -749, -749, -43, 1318, -749, 3406, - 193, 440, 193, 193, 193, 193, 193, 435, -749, 272, - -749, 272, -749, 435, 435, -749, 193, 4534, 4390, 193, - 193, 447, 55, -749, 959, -749, 2788, 1254, 434, -749, - -749, -749, -749, 893, -749, 522, -749, -749, -749, 477, - 482, 483, 494, 4685, -749, 3367, 2887, 362, 484, 4179, - 285, -749, -749, 507, -749, 4412, 488, 510, 495, -749, - 25, -749, -749, -749, 2788, 4633, 426, -749, -749, 496, - -749, -749, 1254, 26, -749, -749, -749, 1552, -749, -749, - 499, -749, 512, -749, -749, -749, -749, -749, -749, -749, - 500, -749, 501, -749, -749, -749, 3424, 509, 503, -749, - -749, -749, 515, -749, -749, -749, -749, 14, 3664, -749, - 4251, 359, -749, -749, 2788, -749, -749, -749, 435, 193, - 435, 435, 435, 435, 435, 2788, -52, 4633, 959, -749, - -46, 9, 597, -749, 4323, 521, 959, 959, 959, 959, - 959, 959, -88, -749, -749, 513, 3664, -749, -72, -749, - 538, 4739, -749, 536, -749, 4793, -749, 654, 655, 656, - -749, -749, 381, 548, -749, -749, 1254, 2439, 1254, 541, - 552, -749, 959, -749, -749, 25, -749, -749, 499, -749, - 554, 532, 1254, 1994, 4251, 544, 499, 4251, 499, 3442, - 426, 545, 426, 426, 426, 426, 426, 78, -749, -749, - 4847, -749, 539, -749, 119, -749, 155, 559, 560, 542, - 562, 564, 2340, 3609, 556, 499, 499, 3093, 499, 499, - 499, 499, -749, 22, 395, -749, 893, 2788, 2788, -749, - -749, 2788, 2788, 547, 4556, -749, -749, -749, -749, 553, - 570, -749, 3664, 435, 550, 555, 959, -88, 558, 563, - 359, -749, -749, 959, 567, 567, 567, 567, 567, 110, - 2788, 2788, -749, -749, 600, -749, 2788, -749, 2621, 574, - 577, -749, -749, -749, -39, 581, 615, 4901, 41, -749, - 617, 959, 619, 4290, 2887, -35, 499, -749, 395, -749, - 5160, -749, -749, -749, -749, -749, -749, -749, 606, 618, - 620, -749, -749, 4611, -749, -749, 622, 610, 625, -749, - 623, 2788, 2788, 2788, 2788, 1434, 2788, 627, 61, -749, - -749, 3682, -749, 124, -749, 629, 499, 297, 635, -749, - 395, -749, 122, 426, 621, 621, 621, 621, 621, -749, - 2788, -749, 4251, -749, 1849, -749, -749, 1254, 2788, 2788, - -749, -749, -749, -749, -749, 2340, 624, 637, 3664, -749, - -749, 499, 132, 132, 756, -749, -749, -749, -749, -749, - -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, - -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, - -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, - -749, 640, 648, -749, -749, 132, 132, 132, 382, 763, - -749, 2788, -749, 1552, 671, -749, 538, -22, 35, 38, - 44, 597, 4611, 235, 277, -749, -749, 4251, -88, -749, - 4251, 4251, -749, 567, 639, 3664, 651, 3628, 2194, 2733, - 4057, 1254, 442, -749, 1254, -749, -749, -749, 2621, 4955, - 788, 673, 792, 793, -749, 678, 4412, -35, 4412, -749, - -749, -749, -749, 2900, -749, -749, -749, 395, 684, -749, - -749, 4412, 4412, 4412, 668, 4412, 4412, 4412, 1434, 14, - 14, 14, 14, 667, 50, 14, -749, -749, 2111, 2788, - 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, - 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, - 2452, 2788, 597, 396, 670, 597, 689, -749, -749, 621, - 4251, 669, 675, -749, -749, -749, -749, -749, -749, -749, - -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, - -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, - -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, - -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, - -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, - -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, - -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, - -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, - -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, - -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, - -749, -749, -749, -749, -749, -749, -749, -749, -749, -749, - -749, -749, -749, -749, -749, -749, -749, -749, 686, -749, - 688, 676, 691, -749, 2564, 132, -749, -749, -749, -749, - -749, 1994, 692, 3609, 499, -749, -749, -749, -749, 359, - 235, -749, -749, 690, 696, 698, -749, 701, 703, 4251, - -749, -749, 2397, -749, 2397, -749, 2397, -749, -749, 2397, - 2397, 2397, -749, 5009, -749, -749, 709, -749, 87, 712, - -749, -749, -749, -749, 710, 725, 729, 737, 730, 740, - 2900, 2900, 2900, 2900, 2900, 1434, 2900, 3829, -749, 750, - -749, 499, 732, 743, 746, 2788, 748, 739, 751, 742, - 3461, 2788, -749, -749, -749, 3846, 3866, 1271, 1271, 322, - 322, 338, 338, -749, 3646, 1139, 3882, 4044, 322, 322, - 179, 179, 14, 14, 14, -749, -749, 108, 1454, 315, - 745, -749, 315, 499, 4251, 744, -749, 597, 1704, -749, - -749, -749, -749, 2340, 3664, 754, -749, -749, 765, -749, - -749, -749, 597, 597, 597, 755, -749, -749, -749, -749, - -749, -749, -749, 764, 885, 775, 776, 4412, 4412, 4412, - 4412, 4412, 4412, 75, 75, 75, 75, 75, 759, 134, - 75, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, - 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900, - 2676, 2788, 499, -749, -749, 766, 767, 770, 774, -749, - 778, -749, -749, 14, 2788, -749, -749, -749, 4251, -749, - 777, 597, 315, -749, 762, 597, -749, 359, 359, 359, - 597, -749, 816, -749, -749, 801, 815, 828, 831, 832, - 838, 2900, -749, 1117, 3913, 1290, 1290, 2879, 2879, 461, - 461, -749, 3811, 2242, 4067, 4083, 486, 486, 75, 75, - 75, -749, -749, 146, 2014, -749, 2788, 2788, -749, 2788, - 2788, 3664, 4251, 833, 597, 315, -749, 315, 834, -749, - -749, -749, 315, 968, -749, 839, 845, 847, -749, 848, - 75, 2900, -749, -749, 161, 164, 166, 175, 849, 597, - 315, -749, 850, 2788, 2788, 2788, 2788, 3829, -749, -749, - -749, -749, 597, 359, 870, 184, 204, 213, 216, 359, - -749, -749, -749, -749, -749, -749, -749 + 362, -703, 2822, 4474, 57, 3018, -703, -703, -703, -703, + -703, -703, -703, -703, -118, -82, -78, -69, -61, -41, + -13, -30, -4, -703, -703, -18, -2, 1, 4682, -703, + -703, 23, 59, 73, 89, 133, -703, 141, 188, 199, + 2822, 2822, 2822, 2822, 2822, 1432, 585, 2822, 3762, -703, + 189, -703, -703, -703, -703, -703, -703, -703, 4704, 213, + -703, -20, -703, -703, 1983, 2722, 2722, -703, 1244, -703, + 2722, -703, -703, 62, -703, -703, -703, -703, 66, 48, + 959, -703, -703, -703, -703, -703, -703, 5378, 5378, -703, + 5378, 892, 5378, 160, -703, 5286, 225, 227, 233, 251, + 5378, 2255, 191, 269, 272, 5378, 5378, 263, 5300, 5378, + 5378, 2691, 5378, 5378, -703, 63, -703, -703, -703, 3269, + -703, -703, -703, -703, -703, -703, 2822, 4474, 2822, 2822, + 2822, 2822, 4474, 2822, 4474, 2822, 2822, 2822, -703, -703, + 278, 1244, 289, 1244, 1244, -703, 4474, 2822, 2822, 4474, + 4474, 1432, 2822, 2822, 79, 79, 79, 79, 79, -118, + -78, -69, -61, -41, -30, -18, -2, 2511, 2380, 2608, + 2625, 199, 309, -83, 3762, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, 1244, 310, 332, -703, -703, + 79, 2822, 2822, 2822, 2822, 2822, 2822, 2822, 2822, 2822, + 2822, 2822, 2822, 2822, 2822, 2822, 2822, 2822, 2822, 2822, + 2822, 2822, 2252, 2822, -703, -703, 62, 2822, -703, -703, + -703, 2722, -703, -703, -703, -703, -703, 322, 145, 62, + 62, 145, 145, 4033, 321, -703, 324, -703, -703, -703, + -703, 1115, 342, 27, 64, 87, -703, -703, -703, 5378, + -703, -703, -703, 5378, -703, -703, -703, 5231, 2349, -703, + 1244, 1244, 1244, 1244, -703, -703, 363, -703, -703, -703, + -703, -703, 2822, 3300, -703, 346, -703, 3376, -703, 1244, + 115, -703, -703, 1244, 300, 348, -703, 2943, 349, 4546, + 1244, -703, 1244, 350, 148, 370, -703, -703, -703, -703, + 900, 959, -703, 344, 381, -703, 351, 378, 383, 384, + 385, 396, 388, 399, 392, 397, 398, 2822, -703, 2822, + -703, -703, 413, 406, 407, 409, 425, 416, 3483, 417, + 418, 2822, 2822, -703, -703, -24, 585, 935, 3983, 1311, + 1311, 117, 117, 729, 729, -703, 3672, 4123, 4039, 1275, + 117, 117, 167, 167, 79, 79, 79, -703, -703, -36, + 1126, -703, 3504, 145, 441, 145, 145, 145, 145, 145, + 364, -703, 321, -703, 321, -703, 364, 364, -703, 145, + 4603, 4452, 145, 145, 435, 37, -703, 623, -703, 2822, + 1244, 436, -703, -703, -703, -703, 1115, -703, 509, -703, + -703, -703, 458, 466, 467, 470, 477, 4839, -703, 3443, + 4236, 295, 464, 2943, 148, -703, -703, 481, -703, 4474, + 468, 485, 471, -703, 20, -703, -703, -703, 2822, 4704, + 403, -703, -703, 474, -703, -703, 1244, -9, -703, -703, + -703, 1553, -703, -703, 529, -703, 491, -703, -703, -703, + -703, -703, -703, -703, 479, -703, 480, -703, -703, -703, + 3522, 482, 483, -703, -703, -703, 486, -703, -703, -703, + -703, 79, 3762, -703, 4308, 932, -703, -703, 2822, -703, + -703, -703, 364, 145, 364, 364, 364, 364, 364, 2822, + -58, 4704, 623, -703, 26, 35, 572, -703, 4380, 492, + 623, 623, 623, 623, 623, 623, -21, -703, -703, 484, + 3762, -703, -34, -703, 510, 4895, -703, 511, -703, 4951, + -703, 631, 633, 634, 637, -703, -703, 355, 523, -703, + -703, 1244, 2467, 1244, 516, 530, -703, 623, -703, -703, + 20, -703, -703, 529, -703, 528, 512, 1244, 2014, 4308, + 522, 529, 4308, 529, 3540, 403, 533, 403, 403, 403, + 403, 403, 95, -703, -703, 5007, -703, 520, -703, 210, + -703, -71, 546, 547, 537, 548, 549, 2366, 3707, 550, + 529, 529, 3133, 529, 529, 529, 529, -703, 138, 308, + -703, 1115, 2822, 2822, -703, -703, 2822, 2822, 539, 4625, + -703, -703, -703, -703, 543, 564, -703, 3762, 364, 544, + 552, 623, -21, 555, 556, 932, -703, -703, 623, 557, + 557, 557, 557, 557, 265, 2822, 2822, -703, -703, 558, + -703, 2822, -703, 4125, 568, 574, -703, -703, -703, -23, + 577, 579, 584, 5063, 41, -703, 582, 623, 587, 5322, + 4236, 44, 529, -703, 308, -703, 5378, -703, -703, -703, + -703, -703, -703, -703, 601, 586, 611, -703, -703, 4682, + -703, -703, 612, 605, 615, -703, 609, 2822, 2822, 2822, + 2822, 1432, 2822, 610, 78, -703, -703, 3804, -703, 189, + -703, 613, 529, 367, 614, -703, 308, -703, 273, 403, + 618, 618, 618, 618, 618, -703, 2822, -703, 4308, -703, + 1867, -703, -703, 1244, 2822, 2822, -703, -703, -703, -703, + -703, 2366, 619, 638, 3762, -703, -703, 529, 301, 301, + 748, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, 622, 621, -703, + -703, 301, 301, 301, 373, 766, -703, 2822, -703, 1553, + 645, -703, 510, 17, 80, 98, 142, 572, 4682, 62, + 369, -703, -703, 4308, -21, -703, 4308, 4308, -703, 557, + 629, 3762, 627, 3726, 4743, 4759, 4798, 1244, 426, -703, + 1244, -703, -703, -703, 4125, 5119, 767, 650, 769, 772, + 773, -703, 657, 4474, 44, 4474, -703, -703, -703, -703, + 2936, -703, -703, -703, 308, 660, -703, -703, 4474, 4474, + 4474, 647, 4474, 4474, 4474, 1432, 79, 79, 79, 79, + 654, 144, 79, -703, -703, 2133, 2822, 2822, 2822, 2822, + 2822, 2822, 2822, 2822, 2822, 2822, 2822, 2822, 2822, 2822, + 2822, 2822, 2822, 2822, 2822, 2822, 2822, 2480, 2822, 572, + 382, 661, 572, 674, -703, -703, 618, 4308, 656, 662, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, -703, -703, -703, -703, -703, + -703, -703, -703, -703, -703, 659, -703, 663, 665, 667, + -703, 2594, 301, -703, -703, -703, -703, -703, 2014, 668, + 3707, 529, -703, -703, -703, -703, 932, 62, -703, -703, + 669, 670, 682, -703, 688, 689, 4308, -703, -703, 3147, + -703, 3147, -703, 3147, -703, -703, 3147, 3147, 3147, -703, + 5175, -703, -703, 154, -703, 175, 691, 176, -703, -703, + -703, -703, 694, 697, 705, 707, 699, 709, 2936, 2936, + 2936, 2936, 2936, 1432, 2936, 3935, -703, 720, -703, 529, + 706, 715, 717, 2822, 721, 719, 739, 730, 3575, 2822, + -703, -703, -703, 935, 3983, 1311, 1311, 117, 117, 729, + 729, -703, 3744, 4123, 4039, 1275, 117, 117, 167, 167, + 79, 79, 79, -703, -703, 196, 2034, 283, 733, -703, + 283, 529, 4308, 736, -703, 572, 1720, -703, -703, -703, + -703, 2366, 3762, 738, -703, -703, 753, -703, -703, -703, + 572, 572, 572, 741, -703, -703, -703, -703, -703, -703, + -703, 875, 760, 879, 764, 765, 884, 768, 4474, 4474, + 4474, 4474, 4474, 4474, 205, 205, 205, 205, 205, 749, + 198, 205, 2936, 2936, 2936, 2936, 2936, 2936, 2936, 2936, + 2936, 2936, 2936, 2936, 2936, 2936, 2936, 2936, 2936, 2936, + 2936, 2708, 2822, 529, -703, -703, 771, 774, 751, 775, + -703, 777, -703, -703, 79, 2822, -703, -703, -703, 4308, + -703, 763, 572, 283, -703, 761, 572, -703, 932, 932, + 932, 572, 770, -703, 785, -703, -703, 200, -703, 795, + 781, 807, 809, 802, 813, 2936, -703, 1567, 3965, 3088, + 3088, 462, 462, 762, 762, -703, 3893, 2266, 4139, 4168, + 686, 686, 205, 205, 205, -703, -703, 201, 3164, -703, + 2822, 2822, -703, 2822, 2822, 3762, 4308, 812, 572, 283, + -703, 283, 816, -703, -703, -703, 283, 837, 903, 956, + 847, -703, 832, 833, 834, -703, 836, 205, 2936, -703, + -703, 206, 245, 247, 248, 835, 572, 283, -703, -703, + 838, 841, -703, 2822, 2822, 2822, 2822, 3935, -703, -703, + -703, -703, 572, 932, 854, 855, 256, 257, 258, 262, + 932, -703, -703, -703, -703, -703, -703, -703, -703 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1194,170 +1203,172 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 0, 675, 0, 0, 0, 675, 5, 588, 584, 587, - 671, 672, 590, 591, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 586, 592, 0, 0, 0, 0, 594, - 593, 0, 0, 0, 0, 0, 585, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 675, 0, 3, 528, - 589, 257, 265, 339, 340, 342, 343, 324, 0, 0, - 354, 321, 353, 348, 345, 344, 347, 325, 0, 326, - 346, 356, 341, 675, 4, 259, 260, 261, 0, 310, - 0, 256, 336, 337, 338, 1, 21, 675, 675, 22, - 675, 675, 675, 0, 34, 675, 0, 0, 0, 675, - 0, 0, 0, 0, 675, 675, 0, 675, 675, 675, - 0, 675, 675, 6, 0, 16, 7, 19, 0, 14, - 55, 15, 17, 18, 36, 675, 0, 675, 675, 675, - 675, 0, 675, 0, 675, 675, 675, 278, 283, 0, - 0, 549, 0, 0, 277, 0, 675, 675, 0, 0, - 0, 675, 675, 558, 556, 555, 557, 554, 257, 339, - 340, 342, 343, 354, 353, 348, 345, 344, 347, 346, - 341, 0, 0, 489, 660, 661, 662, 665, 663, 667, - 666, 664, 654, 653, 0, 651, 656, 650, 553, 0, + 0, 680, 0, 0, 0, 680, 5, 592, 588, 591, + 676, 677, 594, 595, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 590, 596, 0, 0, 0, 0, 598, + 597, 0, 0, 0, 0, 0, 589, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 680, 0, 3, 532, + 593, 261, 269, 343, 344, 346, 347, 328, 0, 0, + 358, 325, 357, 352, 349, 348, 351, 329, 0, 330, + 350, 360, 345, 680, 4, 263, 264, 265, 0, 314, + 0, 260, 340, 341, 342, 1, 21, 680, 680, 22, + 680, 680, 680, 0, 38, 680, 0, 0, 0, 0, + 680, 0, 0, 0, 0, 680, 680, 0, 680, 680, + 680, 0, 680, 680, 6, 0, 16, 7, 19, 0, + 14, 59, 15, 17, 18, 40, 680, 0, 680, 680, + 680, 680, 0, 680, 0, 680, 680, 680, 282, 287, + 0, 0, 553, 0, 0, 281, 0, 680, 680, 0, + 0, 0, 680, 680, 562, 560, 559, 561, 558, 261, + 343, 344, 346, 347, 358, 357, 352, 349, 348, 351, + 350, 345, 0, 0, 493, 664, 665, 666, 669, 667, + 671, 670, 668, 672, 658, 657, 0, 655, 660, 654, + 557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 678, 679, 680, 0, 326, 327, + 359, 349, 354, 353, 356, 262, 355, 0, 680, 680, + 680, 680, 680, 680, 0, 290, 248, 680, 673, 674, + 675, 0, 316, 664, 665, 667, 292, 266, 294, 680, + 51, 50, 52, 680, 41, 46, 23, 680, 0, 44, + 0, 0, 0, 0, 49, 680, 0, 26, 25, 24, + 47, 43, 0, 0, 146, 0, 53, 0, 20, 0, + 0, 45, 48, 0, 289, 271, 280, 0, 0, 0, + 0, 12, 0, 0, 0, 288, 63, 273, 274, 275, + 314, 0, 270, 0, 492, 491, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 283, 680, + 285, 284, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 587, 659, 680, 680, 571, 572, 573, + 574, 575, 576, 579, 580, 586, 0, 568, 569, 570, + 577, 578, 566, 567, 563, 564, 565, 585, 584, 0, + 0, 291, 0, 680, 0, 680, 680, 680, 680, 680, + 253, 240, 0, 249, 0, 250, 252, 251, 179, 680, + 0, 0, 680, 680, 0, 180, 183, 680, 178, 680, + 322, 0, 319, 318, 313, 317, 0, 680, 680, 42, + 39, 680, 0, 0, 0, 0, 0, 680, 331, 0, + 680, 289, 271, 0, 0, 288, 71, 0, 337, 0, + 0, 55, 57, 80, 82, 289, 271, 65, 0, 0, + 680, 272, 680, 0, 361, 196, 0, 0, 61, 361, + 201, 0, 62, 60, 0, 278, 316, 276, 538, 552, + 544, 540, 542, 543, 0, 550, 0, 549, 539, 546, + 0, 0, 0, 545, 548, 551, 0, 555, 556, 547, + 541, 533, 494, 96, 680, 680, 95, 656, 0, 583, + 582, 268, 254, 680, 245, 241, 242, 244, 243, 680, + 0, 0, 680, 217, 0, 0, 680, 182, 0, 0, + 680, 680, 680, 680, 680, 680, 680, 230, 229, 0, + 490, 489, 323, 312, 267, 680, 297, 680, 296, 680, + 333, 0, 0, 0, 0, 335, 680, 0, 0, 158, + 159, 0, 0, 0, 0, 148, 149, 680, 157, 147, + 0, 73, 75, 0, 339, 0, 0, 0, 680, 680, + 0, 0, 680, 0, 0, 680, 0, 680, 680, 680, + 680, 680, 0, 221, 220, 680, 84, 0, 680, 0, + 8, 0, 0, 0, 0, 0, 0, 680, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 64, 680, 680, + 160, 0, 0, 0, 286, 554, 0, 0, 0, 0, + 98, 100, 97, 99, 0, 0, 175, 581, 246, 0, + 0, 680, 680, 0, 0, 680, 181, 184, 680, 235, + 231, 232, 234, 233, 0, 0, 680, 214, 194, 255, + 320, 0, 293, 0, 0, 299, 298, 336, 680, 0, + 0, 0, 0, 680, 0, 37, 151, 680, 153, 680, + 0, 680, 0, 72, 680, 338, 680, 56, 647, 643, + 646, 649, 650, 186, 0, 0, 0, 645, 651, 0, + 653, 652, 0, 0, 0, 644, 0, 0, 0, 0, + 0, 0, 0, 0, 187, 218, 190, 219, 601, 648, + 185, 0, 0, 0, 0, 66, 680, 279, 0, 680, + 226, 222, 223, 225, 224, 90, 680, 13, 680, 197, + 362, 363, 361, 0, 680, 680, 199, 200, 202, 204, + 205, 680, 0, 208, 210, 207, 203, 0, 167, 163, + 0, 113, 114, 115, 116, 117, 118, 121, 122, 137, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 141, 140, 124, 123, 110, 112, 111, 119, + 120, 108, 109, 105, 106, 107, 104, 0, 0, 103, + 161, 164, 166, 165, 0, 0, 171, 680, 173, 0, + 0, 67, 277, 0, 0, 0, 0, 680, 0, 680, + 0, 361, 247, 680, 680, 215, 680, 680, 256, 236, + 239, 195, 0, 324, 671, 0, 670, 0, 0, 300, + 0, 302, 661, 680, 0, 680, 0, 0, 0, 0, + 0, 332, 0, 0, 680, 0, 142, 145, 143, 150, + 0, 155, 192, 74, 680, 0, 76, 54, 0, 0, + 0, 609, 0, 0, 0, 0, 617, 616, 615, 614, + 0, 0, 613, 58, 189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 673, 674, 675, 0, 322, 323, 355, 345, - 350, 349, 352, 258, 351, 0, 675, 675, 675, 675, - 675, 675, 0, 286, 244, 675, 668, 669, 670, 0, - 312, 660, 661, 663, 288, 262, 290, 675, 47, 46, - 48, 675, 37, 42, 23, 675, 0, 40, 0, 0, - 0, 45, 675, 0, 26, 25, 24, 43, 39, 0, - 0, 142, 0, 49, 0, 20, 0, 0, 41, 44, - 0, 285, 267, 276, 0, 0, 0, 0, 12, 0, - 0, 0, 284, 59, 269, 270, 271, 310, 0, 266, - 0, 488, 487, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 279, 675, 281, 280, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 680, + 0, 0, 680, 0, 69, 92, 227, 680, 0, 0, + 365, 366, 370, 367, 374, 368, 369, 371, 372, 373, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 440, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 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, 680, 482, 483, 484, 475, 487, 471, 472, 470, + 477, 478, 466, 467, 468, 469, 476, 474, 481, 479, + 485, 480, 486, 473, 364, 0, 9, 0, 0, 0, + 206, 209, 168, 162, 139, 138, 170, 174, 680, 0, + 195, 0, 536, 535, 537, 534, 680, 680, 176, 101, + 0, 0, 0, 216, 0, 0, 680, 237, 321, 0, + 305, 0, 304, 0, 303, 663, 0, 0, 0, 662, + 680, 301, 334, 0, 27, 0, 0, 0, 36, 152, + 156, 154, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 193, 495, 0, 78, 0, + 0, 0, 0, 680, 0, 0, 0, 0, 0, 0, + 642, 188, 191, 626, 627, 628, 629, 630, 631, 634, + 635, 641, 0, 623, 624, 625, 632, 633, 621, 622, + 618, 619, 620, 640, 639, 0, 0, 81, 0, 86, + 83, 0, 680, 0, 228, 680, 0, 198, 11, 10, + 211, 680, 212, 0, 169, 68, 0, 177, 102, 599, + 680, 680, 680, 0, 311, 310, 309, 308, 307, 306, + 295, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 508, 506, 505, 507, 504, 0, + 0, 503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 583, 655, 675, 675, 567, 568, 569, 570, 571, 572, - 575, 576, 582, 0, 564, 565, 566, 573, 574, 562, - 563, 559, 560, 561, 581, 580, 0, 0, 287, 0, - 675, 0, 675, 675, 675, 675, 675, 249, 236, 0, - 245, 0, 246, 248, 247, 175, 675, 0, 0, 675, - 675, 0, 176, 179, 675, 174, 675, 318, 0, 315, - 314, 309, 313, 0, 675, 675, 38, 35, 675, 0, - 0, 0, 0, 675, 327, 0, 675, 285, 267, 0, - 0, 284, 67, 0, 333, 0, 0, 51, 53, 76, - 78, 285, 267, 61, 0, 0, 675, 268, 675, 0, - 357, 192, 0, 0, 57, 357, 197, 0, 58, 56, - 0, 274, 312, 272, 534, 548, 540, 536, 538, 539, - 0, 546, 0, 545, 535, 542, 0, 0, 0, 541, - 544, 547, 0, 551, 552, 543, 537, 529, 490, 92, - 675, 675, 91, 652, 0, 579, 578, 264, 250, 675, - 241, 237, 238, 240, 239, 675, 0, 0, 675, 213, - 0, 0, 675, 178, 0, 0, 675, 675, 675, 675, - 675, 675, 675, 226, 225, 0, 486, 485, 319, 308, - 263, 675, 293, 675, 292, 675, 329, 0, 0, 0, - 331, 675, 0, 0, 154, 155, 0, 0, 0, 0, - 144, 145, 675, 153, 143, 0, 69, 71, 0, 335, - 0, 0, 0, 675, 675, 0, 0, 675, 0, 0, - 675, 0, 675, 675, 675, 675, 675, 0, 217, 216, - 675, 80, 0, 675, 0, 8, 0, 0, 0, 0, - 0, 0, 675, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 60, 675, 675, 156, 0, 0, 0, 282, - 550, 0, 0, 0, 0, 94, 96, 93, 95, 0, - 0, 171, 577, 242, 0, 0, 675, 675, 0, 0, - 675, 177, 180, 675, 231, 227, 228, 230, 229, 0, - 0, 675, 210, 190, 251, 316, 0, 289, 0, 0, - 295, 294, 332, 675, 0, 0, 0, 675, 0, 33, - 147, 675, 149, 675, 0, 675, 0, 68, 675, 334, - 675, 52, 643, 639, 642, 645, 646, 182, 0, 0, - 0, 641, 647, 0, 649, 648, 0, 0, 0, 640, - 0, 0, 0, 0, 0, 0, 0, 0, 183, 214, - 186, 215, 597, 644, 181, 0, 0, 0, 0, 62, - 675, 275, 0, 675, 222, 218, 219, 221, 220, 86, - 675, 13, 675, 193, 358, 359, 357, 0, 675, 675, - 195, 196, 198, 200, 201, 675, 0, 204, 206, 203, - 199, 0, 163, 159, 0, 109, 110, 111, 112, 113, - 114, 117, 118, 133, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 137, 136, 120, 119, - 106, 108, 107, 115, 116, 104, 105, 101, 102, 103, - 100, 0, 0, 99, 157, 160, 162, 161, 0, 0, - 167, 675, 169, 0, 0, 63, 273, 0, 0, 0, - 0, 675, 0, 675, 0, 357, 243, 675, 675, 211, - 675, 675, 252, 232, 235, 191, 0, 320, 667, 0, - 666, 0, 0, 296, 0, 298, 657, 675, 0, 675, - 0, 0, 0, 0, 328, 0, 0, 675, 0, 138, - 141, 139, 146, 0, 151, 188, 70, 675, 0, 72, - 50, 0, 0, 0, 605, 0, 0, 0, 0, 613, - 612, 611, 610, 0, 0, 609, 54, 185, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 675, 0, 0, 675, 0, 65, 88, 223, - 675, 0, 0, 361, 362, 366, 363, 370, 364, 365, - 367, 368, 369, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 436, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, 433, 434, 435, 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, 675, 478, 479, 480, 471, 483, - 467, 468, 466, 473, 474, 462, 463, 464, 465, 472, - 470, 477, 475, 481, 476, 482, 469, 360, 0, 9, - 0, 0, 0, 202, 205, 164, 158, 135, 134, 166, - 170, 675, 0, 191, 0, 532, 531, 533, 530, 675, - 675, 172, 97, 0, 0, 0, 212, 0, 0, 675, - 233, 317, 0, 301, 0, 300, 0, 299, 659, 0, - 0, 0, 658, 675, 297, 330, 0, 27, 0, 0, - 32, 148, 152, 150, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 189, 491, 0, - 74, 0, 0, 0, 0, 675, 0, 0, 0, 0, - 0, 0, 638, 184, 187, 622, 623, 624, 625, 626, - 627, 630, 631, 637, 0, 619, 620, 621, 628, 629, - 617, 618, 614, 615, 616, 636, 635, 0, 0, 77, - 0, 82, 79, 0, 675, 0, 224, 675, 0, 194, - 11, 10, 207, 675, 208, 0, 165, 64, 0, 173, - 98, 595, 675, 675, 675, 0, 307, 306, 305, 304, - 303, 302, 291, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 504, 502, 501, 503, 500, 0, 0, - 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 73, 604, 0, 0, 0, 0, 603, - 0, 607, 608, 598, 0, 634, 633, 84, 675, 66, - 0, 675, 81, 484, 0, 675, 357, 675, 675, 675, - 675, 28, 0, 29, 31, 0, 0, 0, 0, 0, - 0, 0, 527, 513, 514, 515, 516, 517, 518, 519, - 520, 526, 0, 510, 511, 512, 508, 509, 505, 506, - 507, 525, 524, 0, 0, 75, 0, 0, 606, 0, - 0, 632, 675, 0, 675, 87, 209, 168, 0, 255, - 254, 253, 234, 0, 498, 0, 0, 0, 497, 0, - 492, 0, 523, 522, 0, 0, 0, 0, 0, 675, - 89, 596, 0, 0, 0, 0, 0, 521, 601, 600, - 602, 599, 675, 675, 0, 0, 0, 0, 0, 675, - 83, 30, 495, 494, 496, 493, 85 + 0, 0, 0, 0, 77, 608, 0, 0, 0, 0, + 607, 0, 611, 612, 602, 0, 638, 637, 88, 680, + 70, 0, 680, 85, 488, 0, 680, 361, 680, 680, + 680, 680, 0, 28, 0, 33, 35, 0, 30, 0, + 0, 0, 0, 0, 0, 0, 531, 517, 518, 519, + 520, 521, 522, 523, 524, 530, 0, 514, 515, 516, + 512, 513, 509, 510, 511, 529, 528, 0, 0, 79, + 0, 0, 610, 0, 0, 636, 680, 0, 680, 91, + 213, 172, 0, 259, 258, 257, 238, 0, 0, 0, + 0, 502, 0, 0, 0, 501, 0, 496, 0, 527, + 526, 0, 0, 0, 0, 0, 680, 93, 600, 29, + 0, 0, 31, 0, 0, 0, 0, 525, 605, 604, + 606, 603, 680, 680, 0, 0, 0, 0, 0, 0, + 680, 87, 34, 32, 499, 498, 500, 497, 89 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -749, -749, -226, -749, 292, -749, -749, 747, -749, -749, - -28, 459, -749, -106, -749, -749, -749, -11, -113, -749, - -749, -749, -67, -177, -749, -749, -749, 749, -749, -749, - -749, -749, -749, -383, -749, -749, 374, -749, -749, -749, - 377, 491, -339, -749, -509, -567, -445, -749, 1, -749, - 208, -542, -749, -376, -702, -749, -354, 178, -438, 172, - 54, -195, -41, -77, -550, -206, 28, -103, -749, -83, - -749, -749, -749, -749, 219, -70, -749, -362, -749, -749, - -8, -7, -749, -749, -749, -749, -14, 30, -749, -749, - -433, -749, 46, -749, -478, -124, -27, -119, 526, -249, - -749, -749, 700, -749, -748, 708, 817, -513, -1 + -703, -703, -222, -703, 279, -703, -703, 734, -703, -703, + -11, 450, -703, -99, -703, -703, -703, -33, -132, -703, + -703, -703, -87, -197, -703, -703, -703, 731, -703, -703, + -703, -703, -703, -442, -703, -703, 358, -703, -703, -703, + 361, 489, -516, -703, -512, -559, -467, -703, -15, -703, + 190, -541, -703, -377, -702, -703, -380, 161, -309, -206, + 85, -191, -42, -95, -579, -227, 16, -104, -703, -89, + -703, -703, -703, -703, 203, -73, -703, -356, -703, -703, + -14, -7, -703, -703, -703, -703, 14, 51, -703, -703, + -437, -703, 24, -703, -472, -125, -27, -260, 531, 277, + -703, -703, 687, -703, -698, 803, 811, -514, -1 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 4, 5, 564, 565, 115, 428, 116, 117, 255, - 118, 416, 417, 119, 120, 440, 548, 582, 689, 275, - 538, 646, 647, 826, 290, 544, 547, 291, 702, 1208, - 1262, 880, 1124, 471, 764, 820, 121, 272, 529, 530, - 531, 532, 583, 1021, 584, 600, 381, 382, 677, 678, - 824, 622, 434, 438, 716, 717, 383, 680, 557, 502, - 232, 233, 73, 411, 141, 293, 74, 75, 394, 76, - 395, 513, 629, 630, 803, 77, 78, 391, 387, 388, - 79, 80, 122, 521, 633, 123, 81, 82, 83, 84, - 562, 563, 704, 1007, 505, 300, 301, 1077, 173, 49, - 681, 682, 184, 185, 805, 806, 585, 50, 124 + -1, 4, 5, 569, 570, 116, 432, 117, 118, 257, + 119, 420, 421, 120, 121, 444, 553, 587, 695, 278, + 543, 652, 653, 833, 293, 549, 552, 294, 708, 1219, + 1276, 887, 1132, 475, 770, 827, 122, 275, 534, 535, + 536, 537, 588, 1028, 589, 605, 384, 385, 683, 684, + 831, 627, 438, 442, 722, 723, 386, 686, 562, 506, + 234, 235, 73, 415, 142, 296, 74, 75, 397, 76, + 398, 517, 634, 635, 809, 77, 78, 394, 390, 391, + 79, 80, 123, 526, 638, 124, 81, 82, 83, 84, + 567, 568, 710, 1014, 509, 303, 304, 1085, 174, 49, + 687, 688, 186, 187, 811, 812, 590, 50, 125 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1365,1283 +1376,1330 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 6, 271, 569, 304, 305, 306, 307, 604, 309, 638, - 311, 312, 313, 1012, 144, 294, 772, 214, 172, 358, - 142, 143, 320, 321, 489, 593, 216, 326, 327, 648, - 683, 510, 370, 372, 537, 295, 403, 545, 469, 690, - 620, 292, 774, 792, 783, 187, 197, 212, 296, 213, - 1043, 1045, 1047, 625, 594, 621, 626, 236, 237, 248, - 249, 125, 250, 252, 253, 789, 85, 257, 412, 493, - 329, 261, 234, 171, 217, 847, 267, 268, 423, 270, - 273, 274, 329, 278, 279, -668, 810, 567, 568, 330, - -669, 485, 605, 823, 220, 221, 222, 485, 608, 685, - 224, 475, 688, 329, 299, 811, 828, 1179, 621, 610, - 297, 298, 692, 834, 694, 695, 696, 697, 698, 1, - 2, 3, 1025, 470, 302, 126, 302, 302, 302, 302, - 212, 302, 213, 302, 302, 302, -668, 827, 238, -668, - 612, -669, 127, 796, -669, 302, 302, 128, 876, 769, - 302, 302, 485, 609, 303, 209, 210, 211, 129, 308, - 329, 310, 546, 329, 770, 771, 130, 294, 511, 329, - 131, 294, 515, 319, 239, 329, 322, 323, 324, 1026, - 494, 294, 1027, 356, -670, 815, 848, 295, 1028, 679, - 384, 295, 457, 292, 1092, 132, 220, 221, 222, 224, - 296, 295, 560, 536, 296, 361, 133, 687, 775, 362, - 134, 197, 1154, 234, 296, 145, 1189, 1190, 1191, 257, - 699, 700, 881, 396, 776, 368, 234, 234, 368, 368, - 385, 1155, 1030, 329, 389, -670, 722, 723, -670, 765, - 766, 767, 768, 706, 707, 426, 1036, 225, 135, 220, - 363, 226, 1205, 621, 794, 879, 299, 882, 136, 329, - 299, 6, 297, 298, 878, 700, 297, 298, 146, 392, - 299, 329, 829, 1008, 770, 771, 297, 298, 1232, 708, - 367, 369, 371, 373, 374, 1079, 329, 174, 175, 329, - 1282, 329, 227, 1022, 1146, 637, 1147, 709, 1148, 147, - 329, 1149, 1150, 1151, 148, 1298, 294, 149, 1299, 329, - 1300, 364, 150, 151, 877, 302, 206, 207, 208, 1301, - 209, 210, 211, 152, 215, 365, 295, 235, 1312, 329, - 366, 472, 187, 254, 258, 683, 488, 384, 329, 296, - 259, 329, 1035, 195, 196, 1037, 1038, 873, 1313, 260, - 176, 177, 1034, 228, 197, 264, 414, 1314, 415, 368, - 1315, 368, 368, 368, 368, 368, 265, 229, 178, 179, - 197, 180, 230, 266, 269, 368, 181, 231, 368, 368, - 280, 333, 1015, 504, 550, 507, 314, 10, 595, 11, - 316, 594, 533, 6, 514, 299, 328, 6, 1029, 332, - 596, 297, 298, 597, 360, 534, 598, 809, -90, 435, - -90, 436, -90, 437, 478, 386, 480, 481, 482, 483, - 484, 1032, 599, 392, -236, 559, 419, 6, 393, 384, - 486, 1214, 595, 490, 491, 1125, 236, 237, 551, 770, - 771, 874, 552, 540, 596, 404, 606, 597, 420, 406, - 598, 1080, 430, 384, 431, 432, 433, 204, 205, 206, - 207, 208, 1138, 209, 210, 211, 599, 424, 439, 385, - 601, 444, 329, 204, 205, 206, 207, 208, 368, 209, - 210, 211, 450, 553, 507, 445, -90, 504, -90, 1119, - -90, 472, 1122, 1179, 679, 504, 504, 504, 504, 504, - 504, 623, 384, 384, 446, 447, 384, 448, 683, 236, - 237, 574, 631, 533, 449, 575, 451, 238, 1179, 435, - 6, 436, 452, 773, 770, 771, 1019, 453, 48, 241, - 242, 504, 458, 603, 1049, 1050, 1051, 819, 770, 771, - 1120, 454, 684, 385, 554, 455, 385, 459, 460, 559, - 461, 559, 559, 559, 559, 559, 576, 462, 555, 463, - 777, 778, 705, 556, 779, 780, 153, 154, 155, 156, - 157, 719, 648, 188, 1078, 465, 466, 479, 485, 509, - 144, 1053, 601, 623, 1010, 1011, 142, 143, 1031, 577, - 238, 492, 176, 177, 1145, 512, 1184, 1185, 1186, 1187, - 1188, 516, 1189, 1190, 1191, 504, 623, 517, 518, 601, - 243, 179, 504, 180, 690, 270, 392, 578, 181, 519, - 507, 804, 830, 1186, 1187, 1188, 535, 1189, 1190, 1191, - 533, 579, 6, 539, 541, 542, 580, 543, 561, 586, - 504, 581, 587, 588, 825, 591, 239, 623, 844, 144, - 1269, 1270, 1271, 590, 469, 142, 143, 592, 613, 624, - 607, 384, -311, 628, 634, 635, 636, 679, 614, 615, - 616, 617, 618, 619, 639, 643, 325, 644, 650, 1210, - 649, 686, 693, 827, 703, 710, 711, 712, 713, 623, - 714, 781, 559, 721, 785, 784, 786, 787, 807, 507, - 790, 385, 808, 843, 645, 791, 812, 302, 302, 53, - 621, 54, 55, 56, 719, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 1310, 357, 63, 219, - 813, 359, 1316, -243, 1212, 816, 384, 818, 831, 384, - 384, 832, 836, 833, 186, 835, 65, 66, 837, 1217, - 1218, 1219, 1014, 1263, 700, 838, 1016, 1020, 144, 1013, - 507, 846, 70, 872, 142, 143, 223, 72, 788, 875, - 472, 1039, 234, 1268, 1017, 793, 385, 623, 245, 385, - 385, 804, 804, 804, 1018, 405, 1024, 1040, 1056, 1057, - 146, 804, 1058, 1059, 1060, 251, 6, 384, 263, 1081, - 1085, 1091, 1121, 817, 1123, 1126, 825, 1288, 277, 1127, - 1131, 1078, 1078, 1078, 1078, 1078, 623, 1078, 1265, 241, - 242, 1129, 1267, 1130, 1140, 1139, 1132, 1272, 1136, 384, - 456, 1141, 1142, 1117, 1061, 1143, 1063, 1144, 315, 87, - 317, 318, 1157, 1153, 467, 468, 1156, 88, 1158, 1082, - 1083, 1084, 1159, 1086, 1087, 1088, 1089, 90, 91, 92, - 1160, 472, 1161, 1162, 472, 1192, 1194, 1195, 247, 385, - 1196, 1290, 1198, 1199, 99, 1200, 1201, 1207, 1211, 1216, - 1221, 331, 176, 177, 104, 1222, 240, 246, 1215, 1220, - 105, 1223, 1224, 1231, 390, 108, 1303, 1266, 1256, 1257, - 243, 179, 506, 180, 1258, 111, 1259, 112, 181, 1309, - 1260, 1264, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, - 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, - 1078, 1273, 114, 244, 53, 1274, 54, 55, 56, 1275, - 549, 1163, 1164, 1165, 1166, 1167, 53, 1170, 54, 55, - 56, 1197, 1276, 573, 399, 1277, 400, 401, 402, 236, - 237, 495, 1279, 63, 219, 496, 1278, 1289, 1292, 1291, - 384, 1293, 1078, 705, 413, 63, 219, 1294, 418, 1295, - 1296, 65, 66, 1302, 1304, 427, 1311, 429, 384, 1009, - 602, 651, 397, 65, 66, 441, 443, 70, 174, 175, - 1209, 506, 72, 1137, 1193, 1255, 497, 821, 641, 70, - 684, 822, 1135, 410, 72, 1062, 1094, 1054, 601, 234, - 1128, 0, 1078, 473, 0, 804, 0, 804, 385, 804, - 0, 186, 804, 804, 804, 0, 0, 147, 1169, 0, - 238, 0, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, - 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, - 1251, 176, 177, 0, 0, 0, 0, 498, 0, 0, - 0, 0, 0, 384, 302, 0, 0, 0, 0, 178, - 179, 499, 180, 0, 0, 508, 500, 181, 718, 0, - 0, 501, 0, 1168, 0, 0, 0, 0, 0, 0, - 0, 0, 1280, 0, 442, 246, 0, 0, 0, 0, - 0, 0, 262, 385, 0, 0, 472, 0, 0, 0, - 0, 0, 719, 1172, 1173, 1174, 1175, 1176, 1177, 1178, - 566, 472, 472, 472, 0, 0, 795, 506, 0, 1179, - 0, 0, 797, 0, 0, 0, 191, 192, 193, 194, - 195, 196, 1297, 1253, 0, 0, 0, 384, 0, 0, - 0, 197, 0, 0, 0, 0, 53, 0, 54, 55, - 56, 0, 0, 0, 0, 1225, 1226, 1227, 1228, 1229, - 1230, 0, 0, 0, 0, 0, 0, 839, 840, 841, - 842, 503, 845, 0, 0, 63, 219, 385, 0, 0, - 472, 0, 0, 0, 472, 0, 601, 601, 601, 472, - 0, 384, 0, 65, 66, 0, 506, 0, 0, 1284, - 1285, 0, 1286, 1287, 640, 0, 642, 0, 0, 70, - 0, 718, 0, 558, 72, 0, 0, 1181, 1182, 1183, - 418, 0, 1184, 1185, 1186, 1187, 1188, 0, 1189, 1190, - 1191, 385, 0, 472, 174, 175, 1305, 1306, 1307, 1308, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 0, - 209, 210, 211, 0, 0, 0, 0, 0, 472, 0, - 193, 194, 195, 196, 0, 0, 0, 506, 0, 1023, - 0, 472, 601, 197, 0, 503, 0, 0, 601, 1175, - 1176, 1177, 1178, 503, 503, 503, 503, 503, 503, 0, - 0, 0, 1179, 0, 0, 0, 0, 176, 177, 0, - 0, 0, 0, 189, 190, 191, 192, 193, 194, 195, - 196, 0, 0, 0, 0, 178, 179, 0, 180, 503, - 197, 0, 0, 181, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1090, 0, 0, 558, 0, 558, - 558, 558, 558, 558, 0, 1095, 1096, 1097, 1098, 1099, - 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, - 1110, 1111, 1112, 1113, 1114, 1115, 0, 1118, 0, 0, - 0, 0, 0, 0, 202, 203, 204, 205, 206, 207, - 208, 0, 209, 210, 211, 566, 0, 0, 0, 0, - 0, 0, 0, 503, 0, 1184, 1185, 1186, 1187, 1188, - 503, 1189, 1190, 1191, 0, 0, 0, 7, 8, 9, - 10, 0, 11, 12, 13, 158, 0, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 503, 209, - 210, 211, 0, 0, 476, 0, 0, 0, 0, 189, - 190, 191, 192, 193, 194, 195, 196, 0, 0, 0, - 0, 15, 52, 0, 0, 159, 197, 160, 161, 162, - 57, 58, 1033, 20, 59, 0, 0, 163, 22, 0, - 0, 61, 0, 0, 0, 0, 23, 24, 164, 1048, - 558, 0, 1052, 0, 165, 166, 0, 0, 0, 0, - 0, 28, 0, 29, 0, 30, 0, 0, 0, 0, - 31, 0, 167, 168, 34, 0, 0, 35, 67, 0, - 1134, 0, 36, 0, 0, 37, 68, 69, 169, 0, - 0, 71, 0, 170, 0, 7, 8, 9, 10, 0, - 11, 12, 13, 14, 0, 0, 40, 0, 0, 41, - 42, 43, 174, 175, 44, 0, 45, 46, 0, 0, - 0, 47, 0, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 0, 209, 210, 211, 0, 15, - 1206, 174, 175, 16, 0, 17, 18, 19, 0, 0, - 0, 20, 0, 570, 571, 21, 22, 1203, 0, 0, - 0, 0, 0, 0, 23, 24, 25, 0, 0, 0, - 0, 0, 26, 27, 0, 176, 177, 0, 0, 28, - 0, 29, 0, 30, 0, 0, 0, 0, 31, 0, - 32, 33, 34, 178, 179, 35, 180, 0, 0, 718, - 36, 181, 0, 37, 176, 177, 38, 0, 0, 0, - 0, 39, 0, 0, 0, 0, 572, 276, 0, 0, - 0, 0, 178, 179, 40, 180, 398, 41, 42, 43, - 181, 0, 44, 0, 45, 46, 0, 0, 0, 47, - 0, 0, 0, 0, 0, 0, 0, 883, 884, 885, - 886, 887, 888, 889, 890, 891, 892, 1254, 893, 894, - 895, 896, 897, 898, 899, 900, 901, 902, 903, 0, - 1261, 0, 0, 0, 0, 0, 904, 905, 906, 907, - 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, - 918, 919, 920, 0, 0, 921, 922, 923, 924, 925, - 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, - 0, 936, 0, 937, 938, 939, 940, 941, 942, 943, - 944, 945, 946, 947, 948, 949, 0, 0, 0, 950, - 951, 952, 0, 953, 954, 955, 956, 957, 958, 959, - 960, 961, 962, 963, 964, 965, 966, 967, 968, 0, - 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, - 979, 980, 981, 982, 983, 0, 0, 0, 984, 985, - 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, - 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1213, - 1005, 1006, 883, 884, 885, 886, 887, 888, 889, 890, - 891, 892, 0, 893, 894, 895, 896, 897, 898, 899, - 900, 901, 902, 903, 0, 0, 0, 0, 0, 0, - 0, 904, 905, 906, 907, 908, 909, 910, 911, 912, - 913, 914, 915, 916, 917, 918, 919, 920, 0, 0, - 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, - 931, 932, 933, 934, 935, 0, 936, 0, 937, 938, - 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, - 949, 0, 0, 0, 950, 951, 952, 0, 953, 954, - 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, - 965, 966, 967, 968, 0, 969, 970, 971, 972, 973, - 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, - 0, 0, 0, 984, 985, 986, 987, 988, 989, 990, - 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, - 1001, 1002, 1003, 1004, 0, 1005, 1006, 652, 653, 654, - 10, 0, 11, 655, 656, 51, 0, 0, 657, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 189, - 190, 191, 192, 193, 194, 195, 196, 0, 0, 0, - 0, 658, 52, 0, 0, 53, 197, 54, 55, 56, - 57, 377, 0, 659, 59, 0, 0, 60, 660, 0, - 0, 61, 0, 0, 0, 0, 661, 662, 62, 0, - 0, 0, 0, 0, 63, 64, 0, 0, 0, 0, - 0, 663, 0, 664, 0, 665, 0, 0, 0, 378, - 666, 0, 65, 66, 667, 0, 0, 668, 67, 0, - 0, 0, 669, 0, 0, 670, 68, 69, 70, 0, - 0, 71, 0, 72, 652, 653, 654, 10, 0, 11, - 655, 656, 51, 0, 0, 1093, 671, 0, 0, 672, - 673, 0, 0, 0, 674, 0, 675, 0, 0, 0, - 0, 676, 0, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 0, 209, 210, 211, 658, 52, - 1283, 0, 53, 0, 54, 55, 56, 57, 377, 0, - 659, 59, 0, 0, 60, 660, 0, 0, 61, 0, - 0, 0, 0, 661, 662, 62, 0, 0, 0, 0, - 0, 63, 64, 0, 0, 0, 0, 0, 663, 0, - 664, 0, 665, 0, 174, 175, 378, 666, 0, 65, - 66, 667, 0, 0, 668, 67, 0, 0, 0, 669, - 0, 0, 670, 68, 69, 70, 0, 0, 71, 0, - 72, 7, 8, 9, 10, 0, 11, 12, 13, 14, - 0, 0, 0, 671, 0, 0, 672, 673, 0, 0, - 57, 674, 0, 675, 0, 0, 0, 0, 676, 1173, - 1174, 1175, 1176, 1177, 1178, 0, 0, 176, 177, 0, - 0, 0, 0, 0, 1179, 15, 0, 0, 0, 16, - 0, 17, 18, 19, 0, 178, 179, 20, 180, 0, - 0, 21, 22, 181, 0, 0, 0, 0, 67, 0, - 23, 24, 25, 0, 0, 0, 801, 69, 26, 27, - 1042, 0, 0, 0, 0, 28, 0, 29, 0, 30, - 0, 0, 0, 0, 31, 0, 32, 33, 34, 0, - 0, 35, 0, 0, 0, 0, 36, 0, 0, 37, - 0, 0, 38, 7, 8, 9, 10, 39, 11, 12, - 13, 14, 0, 0, 0, 0, 0, 0, 0, 0, - 40, 0, 0, 41, 42, 43, 0, 0, 44, 0, - 45, 46, 355, 1182, 1183, 47, 0, 1184, 1185, 1186, - 1187, 1188, 0, 1189, 1190, 1191, 0, 15, 0, 0, - 0, 16, 0, 17, 18, 19, 0, 0, 0, 20, - 0, 0, 0, 21, 22, 0, 0, 174, 175, 0, - 0, 0, 23, 24, 25, 0, 0, 0, 0, 0, - 26, 27, 0, 0, 0, 0, 0, 28, 0, 29, - 0, 30, 0, 0, 0, 0, 31, 0, 32, 33, - 34, 0, 0, 35, 0, 0, 0, 0, 36, 524, - 525, 37, 0, 57, 38, 7, 8, 9, 10, 39, - 11, 12, 13, 14, 715, 0, 0, 0, 0, 0, - 176, 177, 40, 0, 0, 41, 42, 43, 0, 0, - 44, 0, 45, 46, 0, 0, 0, 47, 178, 179, - 53, 180, 54, 55, 56, 0, 181, 0, 0, 15, - 0, 67, 60, 16, 0, 17, 18, 19, 0, 801, - 69, 20, 0, 62, 0, 21, 22, 0, 0, 63, - 64, 0, 0, 0, 23, 24, 25, 0, 0, 0, - 0, 0, 26, 27, 0, 0, 0, 65, 66, 28, - 0, 29, 0, 30, 0, 0, 0, 0, 31, 0, - 32, 33, 34, 70, 0, 35, 71, 0, 72, 0, - 36, 0, 0, 37, 0, 0, 38, 7, 8, 9, - 10, 39, 11, 12, 13, 14, 0, 0, 53, 0, - 54, 55, 56, 0, 40, 0, 0, 41, 42, 43, - 218, 0, 44, 0, 45, 46, 1116, 0, 0, 47, - 0, 0, 0, 0, 0, 0, 0, 63, 219, 0, - 0, 15, 0, 0, 0, 16, 0, 17, 18, 19, - 0, 0, 0, 20, 0, 65, 66, 21, 22, 0, - 0, 174, 175, 0, 0, 0, 23, 24, 25, 0, - 0, 70, 0, 0, 26, 27, 72, 0, 0, 0, - 0, 28, 0, 29, 0, 30, 0, 0, 0, 0, - 31, 0, 32, 33, 34, 0, 0, 35, 0, 136, - 0, 0, 36, 0, 0, 37, 0, 57, 38, 7, - 8, 9, 10, 39, 11, 12, 13, 14, 1133, 0, - 0, 0, 0, 0, 176, 177, 40, 0, 0, 41, - 42, 43, 0, 0, 44, 0, 45, 46, 0, 0, - 0, 47, 178, 798, 799, 800, 0, 0, 0, 0, - 181, 0, 0, 15, 0, 67, 0, 16, 0, 17, - 18, 19, 0, 801, 69, 20, 0, 802, 0, 21, - 22, 0, 0, 174, 175, 0, 0, 0, 23, 24, - 25, 0, 0, 0, 0, 0, 26, 27, 0, 0, - 0, 0, 0, 28, 0, 29, 0, 30, 0, 0, - 0, 0, 31, 0, 32, 33, 34, 0, 0, 35, - 0, 0, 0, 0, 36, 0, 0, 37, 0, 57, - 38, 7, 8, 9, 10, 39, 11, 12, 13, 14, - 0, 0, 0, 0, 0, 0, 176, 177, 40, 0, - 0, 41, 42, 43, 0, 0, 44, 0, 45, 46, - 1252, 0, 0, 47, 178, 179, 53, 180, 54, 55, - 56, 0, 181, 0, 0, 15, 0, 67, 0, 16, - 0, 17, 18, 19, 0, 801, 69, 20, 0, 1044, - 0, 21, 22, 0, 0, 63, 219, 0, 0, 0, - 23, 24, 25, 0, 0, 0, 0, 0, 26, 27, - 0, 0, 0, 65, 66, 28, 0, 29, 0, 30, - 0, 0, 0, 0, 31, 0, 32, 33, 34, 70, - 0, 35, 0, 0, 72, 0, 36, 524, 525, 37, - 1177, 1178, 38, 7, 8, 9, 10, 39, 11, 12, - 13, 1179, 0, 0, 0, 0, 0, 151, 0, 0, - 40, 0, 0, 41, 42, 43, 0, 0, 44, 0, + 6, 493, 574, 307, 308, 309, 310, 598, 312, 274, + 314, 315, 316, 644, 143, 297, 216, 609, 173, 1019, + 789, 144, 323, 324, 295, 361, 126, 329, 330, 778, + 298, 654, 550, 473, 689, 693, 218, 542, 373, 375, + 514, 696, 145, 407, 332, 189, 299, 214, 780, 215, + 416, 497, 572, 573, 615, 714, 798, 85, 238, 239, + 427, 172, 127, 333, 728, 729, 128, 771, 772, 773, + 774, 795, 236, 715, 227, 129, 250, 251, 228, 252, + 254, 255, 691, 130, 259, 694, 219, 489, 610, 264, + 841, 332, 854, 630, 270, 271, 631, 273, 276, 277, + -673, 281, 282, 131, 816, 300, 1050, 1052, 1054, 625, + 479, 199, 301, 835, 133, 222, 223, 224, 617, 229, + 474, 226, 132, 817, 626, 305, 135, 305, 305, 305, + 305, 134, 305, 302, 305, 305, 305, -674, 197, 198, + 834, 240, 136, 306, 332, 137, 305, 305, 311, 199, + 313, 305, 305, -673, 802, 883, -673, 364, 146, 551, + -675, 365, 322, 1032, 498, 325, 326, 327, 685, 297, + 599, 489, 613, 297, 830, 515, 880, 241, 295, 519, + 489, 614, 230, 297, 298, 359, 541, 822, 298, 626, + -674, 387, 237, -674, 461, 214, 231, 215, 298, 199, + 299, 232, 366, 147, 299, 855, 233, 332, 283, 1037, + 565, 1022, 781, -675, 299, 236, -675, 148, 222, 223, + 224, 226, 211, 212, 213, 332, 1033, 371, 236, 236, + 371, 371, 388, 149, 888, 782, 392, 1190, 259, 705, + 706, 889, 399, 418, 1034, 419, 698, 430, 700, 701, + 702, 703, 704, 1043, 206, 207, 208, 209, 210, 300, + 211, 212, 213, 300, 6, 367, 301, 775, 150, 332, + 301, 332, 222, 300, 439, 1015, 440, 836, 441, 368, + 301, 1161, 776, 777, 369, 151, 612, 302, 1035, 256, + 1100, 302, 395, 1087, 619, 620, 621, 622, 623, 624, + 1162, 302, 1163, 1166, 643, 1029, 208, 209, 210, 297, + 211, 212, 213, 370, 372, 374, 376, 377, 305, 884, + 267, 1164, 1167, 332, 298, 332, 1042, 1289, 332, 1044, + 1045, 651, 152, 332, 476, 189, 712, 713, 492, 387, + 299, 689, 1216, 153, 1246, 1036, 1290, 1299, 1200, 1201, + 1202, 1154, 1318, 1155, 1041, 1156, 600, 217, 1157, 1158, + 1159, 10, 371, 11, 371, 371, 371, 371, 371, 260, + 601, 261, 332, 602, 332, 332, 603, 262, 371, 175, + 176, 371, 371, 332, 332, 332, 508, 555, 511, 332, + 886, 1319, 604, 1320, 1321, 263, 6, 518, 268, 300, + 6, 269, 1334, 1335, 1336, 794, 301, 272, 1337, 539, + 626, 800, 799, 238, 239, 556, 815, 885, 706, 557, + 1133, -94, 317, -94, 538, -94, -94, 302, -94, 564, + -94, 6, 387, 319, 439, 545, 440, 1127, 779, 1225, + 1130, 824, 177, 178, 423, 776, 777, 395, 482, 611, + 484, 485, 486, 487, 488, 331, 387, 1088, 335, 336, + 558, 363, 179, 180, 490, 181, 389, 494, 495, -240, + 182, 396, 183, 388, 606, 685, 434, 1146, 435, 436, + 437, 410, 371, 1188, 1189, 1, 2, 3, 511, 408, + 448, 508, 424, 428, 1190, 476, 240, 449, 443, 508, + 508, 508, 508, 508, 508, 628, 387, 387, 332, 489, + 387, 776, 777, 881, 689, 1039, 636, 776, 777, 1026, + 1056, 1057, 1058, 559, 450, 6, 776, 777, 1128, 451, + 452, 453, 454, 48, 455, 456, 508, 560, 457, 238, + 239, 579, 561, 458, 459, 580, 538, 690, 388, 462, + 826, 388, 463, 464, 564, 465, 564, 564, 564, 564, + 564, 466, 467, 469, 470, 783, 784, 711, 608, 785, + 786, 154, 155, 156, 157, 158, 725, 654, 190, 1153, + 483, 496, 516, 513, 520, 143, 581, 606, 628, 1017, + 1018, 1060, 144, 521, 522, 175, 176, 523, 1038, 1195, + 1196, 1197, 1198, 1199, 524, 1200, 1201, 1202, 540, 544, + 508, 628, 547, 145, 606, 548, 546, 508, 566, 696, + 591, 582, 240, 592, 593, 511, 810, 596, 595, 473, + 597, 618, 629, 238, 239, 499, -315, 6, 273, 500, + 633, 639, 395, 640, 641, 837, 508, 642, 685, 583, + 832, 645, 649, 628, 851, 143, 655, 650, 177, 178, + 656, 692, 144, 584, 538, 1221, 387, 709, 585, 1283, + 1284, 1285, 699, 586, 716, 717, 719, 720, 179, 180, + 501, 181, 328, 145, 718, 787, 182, 790, 183, 727, + 791, 834, 792, 1223, 813, 628, 793, 850, 564, 796, + 797, 814, 626, -247, 818, 511, 819, 388, 1228, 1229, + 1230, 820, 823, 305, 305, 184, 240, 825, 1190, 185, + 725, 839, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 502, 360, 838, 840, 842, 362, 843, + 844, 387, 1277, 845, 387, 387, 853, 503, 1023, 879, + 882, 199, 504, 706, 1331, 1021, 1020, 505, 1024, 1025, + 1027, 1338, 1031, 1046, 143, 1047, 511, 1063, 1064, 1065, + 1279, 144, 1066, 1067, 1281, 1068, 476, 1089, 236, 1286, + 1282, 1093, 388, 628, 1190, 388, 388, 810, 810, 810, + 1099, 1131, 145, 409, 1134, 1129, 1137, 810, 1135, 1305, + 1138, 1139, 6, 387, 1140, 1148, 1144, 1149, 1174, 1175, + 1176, 1177, 1178, 832, 1181, 1197, 1198, 1199, 1150, 1200, + 1201, 1202, 1169, 628, 1151, 1152, 1307, 1165, 1168, 1069, + 1170, 1071, 1171, 1172, 1173, 387, 1147, 1203, 460, 188, + 1125, 1206, 1205, 1207, 1090, 1091, 1092, 1209, 1094, 1095, + 1096, 1097, 471, 472, 1323, 1210, 206, 207, 208, 209, + 210, 225, 211, 212, 213, 1211, 1212, 1218, 476, 1227, + 1330, 476, 1222, 247, 1226, 1232, 388, 1231, 1233, 1234, + 242, 248, 1235, 1236, 1237, 1245, 1238, 1272, 253, 1195, + 1196, 1197, 1198, 1199, 266, 1200, 1201, 1202, 1280, 1278, + 243, 244, 1288, 1310, 280, 1270, 1287, 1292, 1271, 1273, + 510, 1274, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, + 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, + 1265, 1291, 87, 1293, 318, 1294, 320, 321, 1295, 1296, + 88, 192, 193, 194, 195, 196, 197, 198, 1306, 554, + 90, 91, 92, 1308, 599, 1309, 1311, 199, 1208, 243, + 244, 249, 578, 177, 178, 1312, 1313, 1314, 1315, 100, + 1316, 1322, 1332, 1333, 1324, 1297, 387, 1325, 334, 105, + 711, 400, 1016, 245, 180, 106, 181, 657, 1145, 1220, + 109, 182, 1204, 183, 387, 600, 1269, 828, 414, 607, + 112, 829, 113, 1143, 1070, 1136, 1102, 1061, 0, 601, + 510, 647, 602, 477, 0, 603, 0, 690, 0, 241, + 0, 0, 177, 178, 0, 606, 236, 115, 1317, 0, + 0, 604, 810, 0, 810, 388, 810, 0, 0, 810, + 810, 810, 245, 180, 0, 181, 1180, 0, 0, 0, + 182, 402, 183, 403, 404, 405, 406, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 0, 211, 212, + 213, 0, 417, 0, 0, 246, 422, 0, 0, 0, + 387, 0, 305, 431, 0, 433, 0, 0, 0, 1179, + 0, 0, 0, 445, 447, 0, 0, 1086, 724, 0, + 0, 446, 248, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 393, 0, 0, 0, + 0, 388, 0, 0, 476, 0, 0, 0, 0, 188, + 725, 191, 192, 193, 194, 195, 196, 197, 198, 476, + 476, 476, 0, 0, 0, 0, 801, 510, 199, 0, + 0, 0, 803, 0, 0, 0, 53, 0, 54, 55, + 56, 0, 0, 0, 1267, 0, 0, 387, 0, 0, + 0, 0, 0, 0, 1239, 1240, 1241, 1242, 1243, 1244, + 0, 0, 0, 512, 0, 63, 221, 0, 507, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 846, 847, + 848, 849, 0, 852, 0, 65, 66, 0, 388, 0, + 0, 476, 0, 0, 0, 476, 0, 606, 606, 606, + 476, 70, 0, 0, 387, 0, 72, 510, 0, 571, + 0, 563, 0, 1301, 1302, 0, 1303, 1304, 0, 0, + 0, 0, 724, 0, 175, 176, 0, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 0, 211, + 212, 213, 0, 0, 480, 388, 0, 476, 0, 0, + 0, 0, 0, 0, 0, 0, 1326, 1327, 1328, 1329, + 0, 0, 193, 194, 195, 196, 197, 198, 0, 0, + 0, 0, 0, 507, 0, 476, 0, 199, 510, 0, + 1030, 507, 507, 507, 507, 507, 507, 177, 178, 0, + 0, 476, 606, 0, 0, 0, 0, 0, 0, 606, + 195, 196, 197, 198, 646, 0, 648, 179, 180, 0, + 181, 0, 0, 199, 0, 182, 0, 183, 507, 0, + 422, 0, 0, 0, 0, 1086, 1086, 1086, 1086, 1086, + 0, 1086, 0, 0, 0, 0, 563, 0, 563, 563, + 563, 563, 563, 0, 0, 0, 1098, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1103, 1104, 1105, + 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, + 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 0, 1126, + 204, 205, 206, 207, 208, 209, 210, 0, 211, 212, + 213, 0, 507, 0, 0, 0, 0, 0, 0, 507, + 0, 0, 0, 0, 0, 7, 8, 9, 10, 0, + 11, 12, 13, 159, 0, 0, 204, 205, 206, 207, + 208, 209, 210, 0, 211, 212, 213, 0, 507, 1086, + 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, + 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 0, 15, + 52, 0, 0, 160, 0, 161, 162, 163, 57, 58, + 0, 20, 59, 0, 0, 164, 22, 0, 0, 61, + 0, 0, 0, 0, 23, 24, 165, 0, 0, 0, + 563, 0, 166, 167, 0, 0, 571, 0, 0, 0, + 0, 28, 1086, 29, 0, 30, 0, 0, 0, 0, + 31, 0, 168, 169, 34, 0, 0, 35, 67, 0, + 0, 0, 36, 0, 0, 37, 68, 69, 170, 0, + 0, 71, 1142, 171, 0, 0, 7, 8, 9, 10, + 0, 11, 12, 13, 14, 0, 40, 0, 0, 41, + 42, 43, 0, 0, 44, 1086, 45, 46, 0, 0, + 0, 47, 0, 1183, 1184, 1185, 1186, 1187, 1188, 1189, + 0, 0, 0, 1040, 0, 0, 0, 0, 0, 1190, + 15, 0, 0, 0, 16, 0, 17, 18, 19, 0, + 1055, 0, 20, 1059, 575, 576, 21, 22, 0, 0, + 0, 0, 0, 0, 0, 23, 24, 25, 0, 0, + 1214, 0, 0, 26, 27, 0, 0, 0, 0, 0, + 0, 0, 28, 0, 29, 0, 30, 0, 0, 0, + 0, 31, 0, 32, 33, 34, 0, 0, 35, 0, + 0, 0, 0, 36, 0, 0, 37, 0, 0, 38, + 0, 0, 724, 0, 39, 0, 0, 0, 0, 577, + 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, + 41, 42, 43, 0, 0, 44, 0, 45, 46, 1192, + 1193, 1194, 47, 0, 1195, 1196, 1197, 1198, 1199, 0, + 1200, 1201, 1202, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 890, 891, 892, 893, 894, 895, 896, + 897, 898, 899, 1268, 900, 901, 902, 903, 904, 905, + 906, 907, 908, 909, 910, 0, 1275, 0, 0, 0, + 0, 0, 911, 912, 913, 914, 915, 916, 917, 918, + 919, 920, 921, 922, 923, 924, 925, 926, 927, 0, + 0, 928, 929, 930, 931, 932, 933, 934, 935, 936, + 937, 938, 939, 940, 941, 942, 0, 943, 0, 944, + 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, + 955, 956, 0, 0, 0, 0, 0, 957, 958, 959, + 0, 960, 961, 962, 963, 964, 965, 966, 967, 968, + 969, 970, 971, 972, 973, 974, 975, 0, 976, 977, + 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, + 988, 989, 990, 0, 0, 0, 991, 992, 993, 994, + 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, + 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1224, 1012, 1013, + 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, + 0, 900, 901, 902, 903, 904, 905, 906, 907, 908, + 909, 910, 0, 0, 0, 0, 0, 0, 0, 911, + 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, + 922, 923, 924, 925, 926, 927, 0, 0, 928, 929, + 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, + 940, 941, 942, 0, 943, 0, 944, 945, 946, 947, + 948, 949, 950, 951, 952, 953, 954, 955, 956, 0, + 0, 0, 0, 0, 957, 958, 959, 0, 960, 961, + 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, + 972, 973, 974, 975, 0, 976, 977, 978, 979, 980, + 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, + 0, 0, 0, 991, 992, 993, 994, 995, 996, 997, + 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, + 1008, 1009, 1010, 1011, 0, 1012, 1013, 658, 659, 660, + 10, 0, 11, 661, 662, 51, 0, 0, 663, 0, + 0, 0, 0, 0, 53, 0, 54, 55, 56, 0, + 0, 0, 0, 0, 0, 0, 220, 0, 0, 191, + 192, 193, 194, 195, 196, 197, 198, 0, 0, 0, + 0, 664, 52, 63, 221, 53, 199, 54, 55, 56, + 57, 380, 0, 665, 59, 0, 0, 60, 666, 0, + 0, 61, 0, 65, 66, 0, 667, 668, 62, 0, + 0, 0, 0, 0, 63, 64, 0, 0, 0, 70, + 0, 0, 0, 669, 72, 670, 0, 671, 0, 0, + 0, 381, 672, 0, 65, 66, 673, 0, 0, 674, + 67, 0, 0, 0, 675, 0, 0, 676, 68, 69, + 70, 0, 0, 71, 0, 72, 658, 659, 660, 10, + 0, 11, 661, 662, 51, 0, 0, 1101, 677, 0, + 0, 678, 679, 0, 0, 0, 680, 0, 681, 0, + 0, 0, 0, 682, 0, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 0, 211, 212, 213, + 664, 52, 1217, 0, 53, 0, 54, 55, 56, 57, + 380, 0, 665, 59, 0, 0, 60, 666, 0, 0, + 61, 0, 0, 0, 0, 667, 668, 62, 0, 0, + 0, 0, 0, 63, 64, 0, 0, 0, 0, 0, + 0, 0, 669, 0, 670, 0, 671, 0, 0, 0, + 381, 672, 0, 65, 66, 673, 0, 0, 674, 67, + 0, 0, 0, 675, 0, 0, 676, 68, 69, 70, + 0, 0, 71, 0, 72, 7, 8, 9, 10, 0, + 11, 12, 13, 14, 0, 175, 176, 677, 0, 0, + 678, 679, 0, 0, 0, 680, 0, 681, 0, 0, + 0, 0, 682, 1184, 1185, 1186, 1187, 1188, 1189, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1190, 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, 177, 178, + 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, + 0, 28, 0, 29, 0, 30, 0, 0, 179, 180, + 31, 181, 32, 33, 34, 0, 182, 35, 183, 175, + 176, 0, 36, 0, 0, 37, 0, 0, 38, 7, + 8, 9, 10, 39, 11, 12, 13, 14, 0, 0, + 0, 265, 0, 0, 0, 0, 40, 0, 0, 41, + 42, 43, 0, 0, 44, 0, 45, 46, 358, 1193, + 1194, 47, 0, 1195, 1196, 1197, 1198, 1199, 0, 1200, + 1201, 1202, 0, 15, 0, 0, 0, 16, 0, 17, + 18, 19, 177, 178, 0, 20, 0, 0, 0, 21, + 22, 53, 0, 54, 55, 56, 0, 0, 23, 24, + 25, 0, 179, 180, 0, 181, 26, 27, 0, 0, + 182, 0, 183, 0, 0, 28, 0, 29, 0, 30, + 63, 221, 0, 0, 31, 0, 32, 33, 34, 0, + 0, 35, 0, 0, 0, 401, 36, 529, 530, 37, + 65, 66, 38, 7, 8, 9, 10, 39, 11, 12, + 13, 14, 721, 0, 0, 0, 70, 0, 0, 0, + 40, 72, 0, 41, 42, 43, 0, 0, 44, 0, 45, 46, 0, 0, 0, 47, 0, 0, 53, 0, - 54, 55, 56, 526, 527, 0, 0, 1064, 0, 0, - 60, 0, 0, 0, 0, 0, 0, 0, 0, 1065, - 0, 62, 0, 0, 1066, 0, 0, 63, 64, 0, - 0, 0, 23, 24, 0, 0, 0, 0, 0, 0, - -2, 0, 0, 0, 0, 65, 66, 0, 0, 29, - 0, 30, 0, 0, 0, 0, 1067, 0, 0, 528, - 1068, 70, 0, 1069, 71, 0, 72, 0, 36, 0, - 0, 0, 0, 0, 1184, 1185, 1186, 1187, 1188, 0, - 1189, 1190, 1191, 0, 0, 0, 0, 0, 0, 86, - 87, 0, 1070, 0, 0, 1071, 1072, 1073, 88, 0, - 1074, 0, 1075, 46, 0, 0, 89, 1076, 90, 91, - 92, 93, 0, 0, 0, 94, 0, 0, 0, 95, - 0, 0, 96, 97, 98, 99, 100, 0, 0, 0, - 0, 0, 101, 102, 103, 104, 0, 0, 0, 0, - 0, 105, 106, 0, 0, 107, 108, 0, 0, 0, - 109, 0, 0, 0, 0, 110, 111, 0, 112, 724, - 0, 0, 0, 0, 281, 282, 113, 0, 725, 726, - 727, 728, 729, 730, 731, 732, 0, 0, 0, 0, - 0, 0, 0, 114, 0, 733, 0, 734, 735, 736, - 737, 738, 739, 740, 741, 742, 743, 744, 745, 0, - 0, 0, 283, 0, 0, 53, 0, 54, 55, 56, - 57, 284, 0, 0, 285, 746, 0, 60, 0, 0, - 0, 61, 0, 0, 0, 0, 0, 0, 62, 0, - 0, 0, 0, 0, 63, 64, 0, 0, 0, 0, - 747, 0, 0, 0, 286, 0, 0, 0, 0, 0, - 0, 0, 65, 66, 0, 0, 0, 0, 67, 0, - 281, 282, 174, 175, 0, 0, 287, 69, 70, 0, - 0, 71, 0, 72, 0, 0, 0, 0, 748, 0, - 0, 749, 0, 750, 751, 752, 753, 754, 755, 756, - 757, 758, 759, 760, 289, 761, 762, 0, 283, 0, - 763, 53, 0, 54, 55, 56, 57, 284, 0, 0, - 285, 0, 0, 60, 0, 0, 0, 61, 0, 0, - 0, 0, 0, 0, 62, 176, 177, 0, 0, 0, - 63, 64, 407, 408, 0, 0, 0, 0, 0, 0, - 286, 0, 0, 178, 179, 0, 180, 0, 65, 66, - 0, 181, 0, 0, 67, 0, 0, 0, 0, 0, - 0, 0, 287, 69, 70, 0, 0, 71, 0, 72, - 283, 0, 0, 53, 288, 54, 55, 56, 57, 409, - 182, 0, 285, 0, 183, 60, 0, 0, 0, 61, - 289, 0, 0, 0, 0, 0, 62, 0, 0, 0, - 0, 0, 63, 64, 0, 0, 0, 0, 0, 0, - 0, 0, 286, 0, 0, 0, 0, 0, 0, 0, - 65, 66, 0, 0, 0, 0, 67, 0, 53, 0, - 54, 55, 56, 0, 287, 69, 70, 0, 0, 71, - 218, 72, 189, 190, 191, 192, 193, 194, 195, 196, - 0, 0, 0, 0, 0, 0, 0, 63, 219, 197, - 0, 0, 289, 189, 190, 191, 192, 193, 194, 195, - 196, 0, 0, 0, 0, 65, 66, 0, 0, 0, - 197, 189, 190, 191, 192, 193, 194, 195, 196, 0, - 0, 70, 0, 0, 0, 0, 72, 0, 197, 189, - 190, 191, 192, 193, 194, 195, 196, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 197, 189, 190, 191, - 192, 193, 194, 195, 196, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 197, 0, 189, 190, 191, 192, - 193, 194, 195, 196, 0, 0, 0, 0, 0, 0, - 0, 0, 522, 197, 0, 0, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, - 211, 523, 0, 0, 0, 0, 0, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, - 210, 211, 464, 0, 0, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 0, 209, 210, 211, - 477, 0, 0, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 0, 209, 210, 211, 589, 0, - 0, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 0, 209, 210, 211, 691, 0, 0, 0, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 0, 209, 210, 211, 1202, 189, 190, 191, 192, - 193, 194, 195, 196, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 197, 189, 190, 191, 192, 193, 194, - 195, 196, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 197, 0, 189, 190, 191, 192, 193, 194, 195, - 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 197, 189, 190, 191, 192, 193, 194, 195, 196, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 197, 189, - 190, 191, 192, 193, 194, 195, 196, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 197, 849, 850, 851, - 852, 853, 854, 855, 856, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 857, 0, 0, 0, 474, 0, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 0, 209, 210, 211, 720, 0, 0, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 0, - 209, 210, 211, 1041, 0, 0, 0, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, - 210, 211, 0, 1204, 0, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 0, 209, 210, 211, - 0, 0, 0, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 0, 209, 210, 211, 0, 0, - 0, 858, 859, 860, 861, 862, 863, 864, 865, 866, - 867, 868, 0, 869, 870, 871, 1171, 1172, 1173, 1174, - 1175, 1176, 1177, 1178, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1179, 1171, 1172, 1173, 1174, 1175, 1176, - 1177, 1178, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1179, 190, 191, 192, 193, 194, 195, 196, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 197, 0, - 0, 0, 0, 191, 192, 193, 194, 195, 196, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 197, 191, - 192, 193, 194, 195, 196, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 197, 0, 0, 0, 0, 0, + 54, 55, 56, 0, 147, 0, 0, 15, 0, 0, + 60, 16, 0, 17, 18, 19, 0, 0, 0, 20, + 0, 62, 0, 21, 22, 0, 0, 63, 64, 0, + 0, 0, 23, 24, 25, 0, 0, 0, 0, 0, + 26, 27, 53, 0, 54, 55, 56, 65, 66, 28, + 0, 29, 0, 30, 220, 0, 0, 0, 31, 0, + 32, 33, 34, 70, 0, 35, 71, 0, 72, 0, + 36, 63, 221, 37, 0, 0, 38, 7, 8, 9, + 10, 39, 11, 12, 13, 14, 0, 0, 0, 0, + 0, 65, 66, 0, 40, 0, 0, 41, 42, 43, + 0, 0, 44, 0, 45, 46, 1124, 70, 0, 47, + 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, + 0, 15, 0, 0, 0, 16, 0, 17, 18, 19, + 0, 0, 0, 20, 0, 137, 0, 21, 22, 53, + 0, 54, 55, 56, 0, 0, 23, 24, 25, 0, + 0, 0, 0, 0, 26, 27, 53, 0, 54, 55, + 56, 0, 0, 28, 0, 29, 0, 30, 63, 221, + 0, 0, 31, 0, 32, 33, 34, 0, 0, 35, + 0, 175, 176, 0, 36, 63, 221, 37, 65, 66, + 38, 7, 8, 9, 10, 39, 11, 12, 13, 14, + 1141, 0, 0, 0, 70, 65, 66, 0, 40, 72, + 0, 41, 42, 43, 0, 0, 44, 0, 45, 46, + 0, 70, 0, 47, 0, 0, 72, 0, 0, 0, + 0, 0, 148, 0, 0, 15, 0, 0, 0, 16, + 0, 17, 18, 19, 177, 178, 0, 20, 0, 152, + 0, 21, 22, 53, 0, 54, 55, 56, 0, 279, + 23, 24, 25, 0, 179, 180, 0, 181, 26, 27, + 0, 0, 182, 0, 183, 0, 0, 28, 0, 29, + 0, 30, 63, 221, 0, 0, 31, 0, 32, 33, + 34, 0, 0, 35, 0, 0, 0, 0, 36, 0, + 0, 37, 65, 66, 38, 7, 8, 9, 10, 39, + 11, 12, 13, 14, 0, 0, 0, 0, 70, 0, + 0, 0, 40, 72, 0, 41, 42, 43, 0, 0, + 44, 0, 45, 46, 1266, 0, 0, 47, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, + 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, + 0, 28, 0, 29, 0, 30, 0, 0, 0, 0, + 31, 0, 32, 33, 34, 0, 0, 35, 0, 0, + 0, 0, 36, 0, 0, 37, 0, 0, 38, 7, + 8, 9, 10, 39, 11, 12, 13, 0, 0, 0, + 0, 0, 0, 425, 426, 0, 40, 0, 0, 41, + 42, 43, 0, 0, 44, 0, 45, 46, 0, 0, + 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1072, 0, 0, 0, 0, 0, 0, + 0, 286, 0, 0, 53, 1073, 54, 55, 56, 57, + 1074, 0, 0, 288, 0, 0, 60, 0, 23, 24, + 61, 0, 0, 0, 0, 0, 0, 62, -2, 0, + 0, 0, 0, 63, 64, 0, 0, 29, 0, 30, + 0, 0, 0, 0, 1075, 0, 0, 0, 1076, 0, + 0, 1077, 0, 65, 66, 0, 36, 0, 0, 67, + 0, 0, 0, 0, 0, 0, 0, 290, 69, 70, + 0, 0, 71, 0, 72, 0, 0, 86, 87, 0, + 1078, 0, 0, 1079, 1080, 1081, 88, 0, 1082, 0, + 1083, 46, 0, 0, 89, 1084, 90, 91, 92, 93, + 0, 0, 0, 94, 0, 0, 0, 95, 0, 0, + 0, 96, 97, 98, 99, 100, 101, 1186, 1187, 1188, + 1189, 0, 102, 103, 104, 105, 0, 0, 0, 0, + 1190, 106, 107, 0, 0, 108, 109, 0, 0, 0, + 110, 0, 0, 0, 0, 111, 112, 0, 113, 730, + 0, 0, 0, 0, 0, 0, 114, 0, 731, 732, + 733, 734, 735, 736, 737, 738, 0, 175, 176, 0, + 0, 0, 0, 115, 0, 739, 0, 740, 741, 742, + 743, 744, 745, 746, 747, 748, 749, 750, 751, 191, + 192, 193, 194, 195, 196, 197, 198, 0, 0, 0, + 0, 0, 0, 0, 0, 752, 199, 0, 0, 0, + 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1173, 1174, 1175, 1176, 1177, 1178, 0, 0, 1281, 0, - 1180, 1181, 1182, 1183, 0, 1179, 1184, 1185, 1186, 1187, - 1188, 0, 1189, 1190, 1191, 0, 0, 0, 1180, 1181, - 1182, 1183, 0, 0, 1184, 1185, 1186, 1187, 1188, 0, - 1189, 1190, 1191, 0, 0, 0, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 0, 209, 210, 211, - 51, 0, 0, 375, 0, 376, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 0, 209, 210, 211, - 0, 0, 0, 0, 201, 202, 203, 204, 205, 206, - 207, 208, 0, 209, 210, 211, 0, 52, 0, 0, - 53, 0, 54, 55, 56, 57, 377, 0, 0, 59, - 0, 0, 60, 1181, 1182, 1183, 61, 0, 1184, 1185, - 1186, 1187, 1188, 62, 1189, 1190, 1191, 0, 0, 63, - 64, 191, 192, 193, 194, 195, 196, 174, 175, 0, - 0, 0, 0, 0, 378, 0, 197, 65, 66, 0, - 0, 0, 0, 67, 1173, 1174, 1175, 1176, 1177, 1178, - 0, 68, 69, 70, 0, 0, 71, 0, 72, 1179, - 1173, 1174, 1175, 1176, 1177, 1178, 0, 0, 0, 0, - 0, 379, 0, 57, 0, 1179, 380, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 176, 177, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 178, 179, - 0, 180, 0, 0, 0, 0, 181, 0, 0, 0, - 0, 67, 0, 0, 0, 0, 0, 0, 0, 801, - 69, 0, 0, 1046, 0, 0, 0, 202, 203, 204, - 205, 206, 207, 208, 0, 209, 210, 211, 0, 421, - 422, 0, 0, 0, 0, 0, 0, 0, 0, 1183, - 0, 0, 1184, 1185, 1186, 1187, 1188, 0, 1189, 1190, - 1191, 0, 0, 0, 0, 0, 0, 0, 1184, 1185, - 1186, 1187, 1188, 0, 1189, 1190, 1191, 283, 0, 0, - 53, 0, 54, 55, 56, 57, 0, 0, 0, 285, + 177, 178, 753, 0, 0, 1195, 1196, 1197, 1198, 1199, + 0, 1200, 1201, 1202, 0, 0, 0, 0, 0, 0, + 179, 180, 0, 181, 0, 0, 0, 0, 182, 0, + 183, 0, 0, 67, 0, 0, 0, 0, 0, 0, + 754, 807, 69, 755, 0, 756, 757, 758, 759, 760, + 761, 762, 763, 764, 765, 766, 0, 767, 768, 284, + 285, 0, 769, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 0, 211, 212, 213, + 284, 285, 1300, 0, 0, 0, 0, 286, 0, 0, + 53, 0, 54, 55, 56, 57, 287, 0, 0, 288, 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, - 0, 0, 0, 62, 0, 0, 0, 0, 0, 63, - 64, 0, 51, 0, 0, 375, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 65, 66, 0, - 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, - 0, 287, 69, 70, 0, 0, 71, 0, 72, 52, - 0, 0, 53, 0, 54, 55, 56, 57, 377, 0, - 0, 59, 0, 0, 60, 0, 0, 0, 61, 0, - 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, - 0, 63, 64, 0, 51, 0, 0, 611, 0, 0, - 87, 0, 0, 0, 0, 0, 378, 0, 88, 65, - 66, 0, 0, 0, 0, 67, 0, 0, 90, 91, - 92, 0, 0, 68, 69, 70, 0, 0, 71, 247, - 72, 52, 0, 0, 53, 99, 54, 55, 56, 57, - 377, 0, 0, 59, 0, 104, 60, 0, 0, 0, - 61, 105, 0, 0, 0, 107, 108, 62, 0, 0, - 0, 51, 0, 63, 64, 0, 111, 0, 112, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 378, 0, - 0, 65, 66, 51, 0, 0, 0, 67, 0, 0, - 0, 0, 0, 114, 0, 68, 69, 70, 52, 0, - 71, 53, 72, 54, 55, 56, 57, 377, 0, 0, - 59, 0, 0, 60, 0, 0, 0, 61, 0, 0, - 52, 0, 0, 53, 62, 54, 55, 56, 57, 58, - 63, 64, 59, 0, 0, 60, 0, 0, 0, 61, - 0, 0, 0, 0, 0, 378, 62, 0, 65, 66, - 51, 0, 63, 64, 67, 0, 0, 0, 0, 0, - 0, 0, 68, 69, 70, 0, 0, 71, 0, 72, + 0, 0, 0, 62, 0, 0, 0, 0, 286, 63, + 64, 53, 0, 54, 55, 56, 57, 287, 0, 0, + 288, 289, 0, 60, 0, 0, 0, 61, 0, 65, + 66, 0, 0, 0, 62, 67, 0, 0, 0, 0, + 63, 64, 0, 290, 69, 70, 411, 412, 71, 0, + 72, 0, 289, 0, 0, 291, 0, 0, 0, 0, 65, 66, 0, 0, 0, 0, 67, 0, 0, 0, - 0, 0, 0, 0, 68, 69, 70, 52, 0, 71, - 53, 72, 54, 55, 56, 57, 425, 0, 0, 59, - 0, 0, 60, 0, 0, 51, 61, 0, 0, 0, - 0, 0, 0, 62, 0, 0, 0, 0, 0, 63, - 64, 0, 0, 0, 0, 0, 0, 137, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 65, 66, 0, - 0, 0, 52, 67, 0, 53, 0, 54, 55, 56, - 57, 68, 69, 70, 59, 0, 71, 60, 72, 0, - 0, 61, 0, 0, 138, 0, 0, 53, 62, 54, - 55, 56, 57, 782, 63, 64, 139, 0, 0, 60, - 0, 0, 137, 61, 0, 0, 0, 0, 0, 487, - 62, 0, 65, 66, 0, 0, 63, 64, 67, 0, - 0, 0, 0, 0, 51, 0, 68, 69, 70, 0, - 0, 71, 0, 72, 65, 66, 0, 0, 0, 138, - 67, 0, 53, 0, 54, 55, 56, 57, 140, 69, - 70, 139, 0, 71, 60, 72, 0, 0, 61, 0, - 0, 52, 0, 0, 53, 62, 54, 55, 56, 57, - 0, 63, 64, 59, 0, 0, 60, 0, 0, 0, - 61, 0, 0, 0, 0, 0, 0, 62, 0, 65, - 66, 0, 0, 63, 64, 67, 0, 0, 0, 0, - 0, 0, 0, 140, 69, 70, 0, 0, 71, 0, - 72, 65, 66, 0, 86, 87, 0, 67, 0, 0, - 0, 0, 0, 88, 0, 68, 69, 70, 0, 0, - 71, 89, 72, 90, 91, 92, 93, 0, 0, 0, - 94, 0, 0, 0, 95, 0, 0, 96, 97, 98, - 99, 100, 0, 0, 0, 0, 0, 101, 102, 103, - 104, 0, 0, 0, 0, 0, 105, 106, 86, 87, - 107, 108, 0, 0, 0, 109, 0, 88, 0, 0, - 110, 111, 0, 112, 0, 89, 0, 90, 91, 92, - 93, 113, 0, 0, 94, 0, 0, 0, 95, 0, - 0, 96, 97, 98, 99, 100, 0, 0, 114, 0, - 520, 101, 102, 103, 104, 0, 0, 0, 0, 0, - 105, 106, 86, 87, 107, 108, 0, 0, 0, 109, - 0, 88, 0, 0, 110, 111, 0, 112, 0, 89, - 0, 90, 91, 92, 93, 113, 0, 0, 94, 0, - 0, 0, 95, 0, 0, 96, 97, 98, 99, 100, - 0, 0, 114, 0, 627, 101, 102, 103, 104, 0, - 0, 0, 0, 0, 105, 106, 86, 87, 107, 108, - 0, 0, 0, 109, 0, 88, 0, 0, 110, 111, - 0, 112, 0, 89, 0, 90, 91, 92, 93, 113, - 0, 0, 94, 0, 0, 0, 95, 0, 0, 96, - 97, 98, 99, 100, 0, 0, 114, 0, 632, 101, - 102, 103, 104, 0, 0, 0, 0, 0, 105, 106, - 86, 87, 107, 108, 0, 0, 0, 109, 0, 88, - 0, 0, 110, 111, 0, 112, 0, 89, 0, 90, - 91, 92, 93, 113, 0, 0, 94, 0, 0, 0, - 95, 0, 0, 96, 97, 98, 99, 100, 0, 0, - 114, 0, 701, 101, 102, 103, 104, 0, 0, 0, - 0, 0, 105, 106, 86, 87, 107, 108, 0, 0, - 0, 109, 0, 88, 0, 0, 110, 111, 0, 112, - 0, 89, 0, 90, 91, 92, 93, 113, 0, 0, - 94, 0, 0, 0, 95, 0, 0, 96, 97, 98, - 99, 100, 0, 0, 114, 0, 814, 101, 102, 103, - 104, 0, 0, 0, 0, 0, 105, 106, 86, 87, - 107, 108, 0, 0, 0, 109, 0, 88, 0, 0, - 110, 111, 0, 112, 0, 89, 0, 90, 91, 92, - 93, 113, 0, 0, 94, 0, 0, 0, 95, 0, - 0, 96, 97, 98, 99, 100, 0, 0, 114, 0, - 1055, 101, 102, 103, 104, 0, 0, 0, 0, 0, - 105, 106, 86, 87, 107, 108, 0, 0, 0, 109, - 0, 88, 0, 0, 110, 111, 0, 112, 0, 89, - 0, 90, 91, 92, 93, 113, 0, 0, 94, 0, - 0, 0, 95, 0, 0, 96, 97, 98, 99, 100, - 0, 0, 114, 0, 1152, 101, 102, 103, 104, 0, - 0, 0, 0, 0, 105, 106, 87, 0, 107, 108, - 0, 0, 0, 109, 88, 0, 0, 0, 110, 111, - 87, 112, 0, 0, 90, 91, 92, 0, 88, 0, - 0, 0, 0, 0, 0, 247, 0, 0, 90, 91, - 92, 99, 256, 0, 0, 0, 114, 0, 0, 247, - 87, 104, 0, 0, 0, 99, 0, 105, 88, 0, - 0, 0, 108, 0, 0, 104, 0, 0, 90, 91, - 92, 105, 111, 0, 112, 0, 108, 0, 0, 247, - 0, 0, 0, 0, 0, 99, 111, 0, 112, 0, - 0, 0, 0, 0, 0, 104, 0, 0, 0, 114, - 0, 105, 0, -140, 0, 0, 108, 0, 0, 0, - 0, 0, 0, 114, 0, 0, 111, 0, 112, 0, + 0, 292, 0, 0, 290, 69, 70, 0, 0, 71, + 0, 72, 0, 0, 286, 0, 0, 53, 0, 54, + 55, 56, 57, 413, 0, 0, 288, 0, 0, 60, + 0, 0, 292, 61, 0, 0, 0, 0, 0, 0, + 62, 0, 0, 0, 0, 0, 63, 64, 191, 192, + 193, 194, 195, 196, 197, 198, 0, 0, 289, 0, + 0, 0, 0, 0, 0, 199, 65, 66, 0, 0, + 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, + 290, 69, 70, 0, 0, 71, 0, 72, 191, 192, + 193, 194, 195, 196, 197, 198, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 199, 0, 0, 292, 191, + 192, 193, 194, 195, 196, 197, 198, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 199, 191, 192, 193, + 194, 195, 196, 197, 198, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 199, 191, 192, 193, 194, 195, + 196, 197, 198, 0, 0, 0, 0, 0, 0, 0, + 527, 0, 199, 0, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 0, 211, 212, 213, 528, + 191, 192, 193, 194, 195, 196, 197, 198, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, + 0, 0, 0, 0, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 0, 211, 212, 213, 468, + 0, 0, 0, 0, 0, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 0, 211, 212, 213, + 481, 0, 0, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 0, 211, 212, 213, 594, 0, + 0, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 0, 211, 212, 213, 697, 191, 192, 193, + 194, 195, 196, 197, 198, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 199, 0, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 0, 211, 212, + 213, 1213, 191, 192, 193, 194, 195, 196, 197, 198, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, + 0, 191, 192, 193, 194, 195, 196, 197, 198, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 199, 191, + 192, 193, 194, 195, 196, 197, 198, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 199, 191, 192, 193, + 194, 195, 196, 197, 198, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 199, 0, 0, 0, 0, 0, + 0, 478, 0, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 0, 211, 212, 213, 0, 856, + 857, 858, 859, 860, 861, 862, 863, 0, 0, 0, + 0, 0, 0, 0, 0, 726, 864, 0, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 0, + 211, 212, 213, 1048, 0, 0, 0, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 0, 211, + 212, 213, 0, 1215, 0, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 0, 211, 212, 213, + 0, 0, 0, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 0, 211, 212, 213, 1182, 1183, + 1184, 1185, 1186, 1187, 1188, 1189, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1190, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 865, 866, 867, 868, 869, + 870, 871, 872, 873, 874, 875, 0, 876, 877, 878, + 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1190, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1184, 1185, 1186, 1187, 1188, 1189, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1190, 0, 0, + 193, 194, 195, 196, 197, 198, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, + 0, 0, 1298, 0, 1191, 1192, 1193, 1194, 0, 0, + 1195, 1196, 1197, 1198, 1199, 0, 1200, 1201, 1202, 0, + 0, 0, 0, 0, 51, 0, 0, 378, 0, 379, + 0, 0, 0, 0, 0, 0, 193, 194, 195, 196, + 197, 198, 0, 0, 0, 0, 1191, 1192, 1193, 1194, + 0, 199, 1195, 1196, 1197, 1198, 1199, 0, 1200, 1201, + 1202, 52, 0, 0, 53, 0, 54, 55, 56, 57, + 380, 0, 0, 59, 0, 0, 60, 1192, 1193, 1194, + 61, 0, 1195, 1196, 1197, 1198, 1199, 62, 1200, 1201, + 1202, 0, 0, 63, 64, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 0, 211, 212, 213, 0, + 381, 0, 0, 65, 66, 175, 176, 0, 0, 67, + 193, 194, 195, 196, 197, 198, 0, 68, 69, 70, + 0, 0, 71, 0, 72, 199, 1184, 1185, 1186, 1187, + 1188, 1189, 0, 0, 0, 0, 0, 382, 0, 0, + 0, 1190, 383, 203, 204, 205, 206, 207, 208, 209, + 210, 57, 211, 212, 213, 1184, 1185, 1186, 1187, 1188, + 1189, 0, 0, 0, 0, 0, 0, 0, 177, 178, + 1190, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 179, 804, + 805, 806, 0, 0, 0, 0, 182, 0, 183, 0, + 0, 67, 0, 0, 0, 0, 0, 0, 0, 807, + 69, 0, 0, 808, 0, 0, 529, 530, 0, 0, + 0, 0, 0, 0, 0, 0, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 0, 211, 212, 213, 0, + 0, 0, 0, 1194, 0, 0, 1195, 1196, 1197, 1198, + 1199, 0, 1200, 1201, 1202, 0, 0, 53, 0, 54, + 55, 56, 531, 532, 0, 0, 0, 0, 0, 60, + 0, 0, 0, 0, 0, 1195, 1196, 1197, 1198, 1199, + 62, 1200, 1201, 1202, 0, 0, 63, 64, 0, 51, + 0, 0, 378, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 65, 66, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 533, 0, 70, 0, 0, 71, 52, 72, 0, 53, + 0, 54, 55, 56, 57, 380, 0, 0, 59, 0, + 0, 60, 0, 0, 0, 61, 0, 0, 0, 0, + 0, 0, 62, 0, 0, 0, 0, 0, 63, 64, + 0, 51, 0, 0, 616, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 381, 0, 0, 65, 66, + 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, + 0, 0, 68, 69, 70, 0, 0, 71, 52, 72, + 0, 53, 0, 54, 55, 56, 57, 380, 0, 0, + 59, 0, 0, 60, 0, 0, 0, 61, 0, 0, + 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, + 63, 64, 0, 51, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 381, 0, 0, + 65, 66, 0, 0, 0, 51, 67, 0, 0, 0, + 0, 0, 0, 0, 68, 69, 70, 0, 0, 71, + 52, 72, 0, 53, 0, 54, 55, 56, 57, 380, + 0, 0, 59, 0, 0, 60, 0, 0, 0, 61, + 0, 0, 52, 0, 0, 53, 62, 54, 55, 56, + 57, 58, 63, 64, 59, 0, 0, 60, 0, 0, + 0, 61, 0, 0, 0, 0, 0, 0, 62, 381, + 0, 0, 65, 66, 63, 64, 0, 51, 67, 0, + 0, 0, 0, 0, 0, 0, 68, 69, 70, 0, + 0, 71, 0, 72, 65, 66, 0, 0, 0, 0, + 67, 0, 0, 0, 0, 0, 0, 0, 68, 69, + 70, 0, 0, 71, 52, 72, 0, 53, 0, 54, + 55, 56, 57, 429, 0, 0, 59, 0, 0, 60, + 0, 0, 0, 61, 51, 0, 0, 0, 0, 0, + 62, 0, 0, 0, 0, 0, 63, 64, 0, 0, + 0, 0, 0, 0, 0, 0, 138, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 65, 66, 0, 0, + 0, 52, 67, 0, 53, 0, 54, 55, 56, 57, + 68, 69, 70, 59, 0, 71, 60, 72, 0, 0, + 61, 0, 0, 139, 0, 0, 53, 62, 54, 55, + 56, 57, 788, 63, 64, 140, 0, 0, 60, 0, + 0, 0, 61, 138, 0, 0, 0, 0, 0, 62, + 491, 0, 0, 65, 66, 63, 64, 0, 0, 67, + 0, 0, 0, 0, 0, 51, 0, 68, 69, 70, + 0, 0, 71, 0, 72, 65, 66, 0, 0, 0, + 139, 67, 0, 53, 0, 54, 55, 56, 57, 141, + 69, 70, 140, 0, 71, 60, 72, 0, 0, 61, + 0, 0, 52, 175, 176, 53, 62, 54, 55, 56, + 57, 0, 63, 64, 59, 0, 0, 60, 0, 175, + 176, 61, 0, 0, 0, 0, 0, 0, 62, 0, + 0, 0, 65, 66, 63, 64, 0, 0, 67, 0, + 0, 0, 0, 0, 0, 0, 141, 69, 70, 57, + 0, 71, 0, 72, 65, 66, 0, 0, 175, 176, + 67, 0, 0, 0, 0, 57, 177, 178, 68, 69, + 70, 0, 0, 71, 0, 72, 0, 0, 0, 0, + 0, 0, 177, 178, 0, 0, 179, 180, 0, 181, + 0, 0, 0, 0, 182, 0, 183, 0, 0, 67, + 0, 0, 179, 180, 57, 181, 0, 807, 69, 0, + 182, 1049, 183, 0, 0, 67, 0, 0, 0, 0, + 0, 177, 178, 807, 69, 0, 0, 1051, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 87, + 0, 179, 180, 0, 181, 0, 0, 88, 0, 182, + 0, 183, 0, 0, 67, 89, 0, 90, 91, 92, + 93, 0, 807, 69, 94, 0, 1053, 0, 95, 0, + 0, 0, 96, 97, 98, 99, 100, 101, 0, 0, + 0, 0, 0, 102, 103, 104, 105, 0, 0, 0, + 0, 0, 106, 107, 86, 87, 108, 109, 0, 0, + 0, 110, 0, 88, 0, 0, 111, 112, 0, 113, + 0, 89, 0, 90, 91, 92, 93, 114, 0, 0, + 94, 0, 0, 0, 95, 0, 0, 0, 96, 97, + 98, 99, 100, 101, 115, 0, 525, 0, 0, 102, + 103, 104, 105, 0, 0, 0, 0, 0, 106, 107, + 86, 87, 108, 109, 0, 0, 0, 110, 0, 88, + 0, 0, 111, 112, 0, 113, 0, 89, 0, 90, + 91, 92, 93, 114, 0, 0, 94, 0, 0, 0, + 95, 0, 0, 0, 96, 97, 98, 99, 100, 101, + 115, 0, 632, 0, 0, 102, 103, 104, 105, 0, + 0, 0, 0, 0, 106, 107, 86, 87, 108, 109, + 0, 0, 0, 110, 0, 88, 0, 0, 111, 112, + 0, 113, 0, 89, 0, 90, 91, 92, 93, 114, + 0, 0, 94, 0, 0, 0, 95, 0, 0, 0, + 96, 97, 98, 99, 100, 101, 115, 0, 637, 0, + 0, 102, 103, 104, 105, 0, 0, 0, 0, 0, + 106, 107, 86, 87, 108, 109, 0, 0, 0, 110, + 0, 88, 0, 0, 111, 112, 0, 113, 0, 89, + 0, 90, 91, 92, 93, 114, 0, 0, 94, 0, + 0, 0, 95, 0, 0, 0, 96, 97, 98, 99, + 100, 101, 115, 0, 707, 0, 0, 102, 103, 104, + 105, 0, 0, 0, 0, 0, 106, 107, 86, 87, + 108, 109, 0, 0, 0, 110, 0, 88, 0, 0, + 111, 112, 0, 113, 0, 89, 0, 90, 91, 92, + 93, 114, 0, 0, 94, 0, 0, 0, 95, 0, + 0, 0, 96, 97, 98, 99, 100, 101, 115, 0, + 821, 0, 0, 102, 103, 104, 105, 0, 0, 0, + 0, 0, 106, 107, 86, 87, 108, 109, 0, 0, + 0, 110, 0, 88, 0, 0, 111, 112, 0, 113, + 0, 89, 0, 90, 91, 92, 93, 114, 0, 0, + 94, 0, 0, 0, 95, 0, 0, 0, 96, 97, + 98, 99, 100, 101, 115, 0, 1062, 0, 0, 102, + 103, 104, 105, 0, 0, 0, 0, 0, 106, 107, + 86, 87, 108, 109, 0, 0, 0, 110, 0, 88, + 0, 0, 111, 112, 0, 113, 0, 89, 0, 90, + 91, 92, 93, 114, 0, 0, 94, 0, 0, 0, + 95, 0, 0, 0, 96, 97, 98, 99, 100, 101, + 115, 0, 1160, 0, 0, 102, 103, 104, 105, 0, + 0, 0, 0, 0, 106, 107, 87, 0, 108, 109, + 0, 0, 0, 110, 88, 0, 0, 0, 111, 112, + 87, 113, 0, 0, 90, 91, 92, 0, 88, 0, + 0, 0, 0, 0, 0, 249, 0, 0, 90, 91, + 92, 0, 87, 100, 258, 0, 115, 0, 0, 249, + 88, 0, 0, 105, 0, 0, 0, 100, 0, 106, + 90, 91, 92, 0, 109, 0, 0, 105, 0, 0, + 0, 249, 0, 106, 112, 0, 113, 0, 109, 100, + 0, 0, 0, 0, 0, 0, 0, 0, 112, 105, + 113, 0, 0, 0, 0, 106, 0, 0, 87, 108, + 109, 115, 0, 0, 0, -144, 88, 0, 0, 0, + 112, 0, 113, 0, 0, 115, 90, 91, 92, 0, + 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, + 0, 0, 0, 0, 0, 100, 0, 115, 0, 0, + 0, 0, 0, 0, 0, 105, 0, 0, 0, 0, + 0, 106, 0, 0, 0, 0, 109, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 112, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 114 + 0, 0, 0, 115 }; static const yytype_int16 yycheck[] = { - 1, 107, 435, 127, 128, 129, 130, 485, 132, 522, - 134, 135, 136, 715, 28, 118, 583, 58, 45, 214, - 28, 28, 146, 147, 378, 470, 56, 151, 152, 538, - 543, 393, 227, 228, 410, 118, 262, 12, 57, 548, - 128, 118, 584, 610, 594, 46, 32, 6, 118, 8, - 798, 799, 800, 125, 32, 143, 128, 10, 11, 87, - 88, 142, 90, 91, 92, 607, 0, 95, 274, 14, - 125, 99, 73, 45, 104, 14, 104, 105, 284, 107, - 108, 109, 125, 111, 112, 73, 125, 61, 62, 144, - 73, 143, 144, 128, 64, 65, 66, 143, 144, 544, - 70, 144, 547, 125, 118, 144, 648, 32, 143, 492, - 118, 118, 550, 663, 552, 553, 554, 555, 556, 121, - 122, 123, 144, 142, 125, 142, 127, 128, 129, 130, - 6, 132, 8, 134, 135, 136, 124, 646, 91, 127, - 494, 124, 142, 621, 127, 146, 147, 142, 690, 127, - 151, 152, 143, 144, 126, 141, 142, 143, 142, 131, - 125, 133, 137, 125, 142, 143, 142, 270, 394, 125, - 133, 274, 398, 145, 127, 125, 148, 149, 150, 144, - 125, 284, 144, 210, 73, 144, 125, 270, 144, 543, - 231, 274, 316, 270, 144, 142, 166, 167, 168, 169, - 270, 284, 428, 409, 274, 12, 133, 546, 584, 16, - 142, 32, 125, 214, 284, 133, 141, 142, 143, 247, - 142, 143, 700, 251, 586, 226, 227, 228, 229, 230, - 231, 144, 782, 125, 235, 124, 575, 576, 127, 578, - 579, 580, 581, 124, 125, 286, 788, 12, 142, 219, - 57, 16, 144, 143, 144, 693, 270, 702, 142, 125, - 274, 262, 270, 270, 142, 143, 274, 274, 142, 239, - 284, 125, 648, 706, 142, 143, 284, 284, 144, 124, - 226, 227, 228, 229, 230, 827, 125, 10, 11, 125, - 144, 125, 57, 771, 1042, 521, 1044, 142, 1046, 142, - 125, 1049, 1050, 1051, 142, 144, 409, 133, 144, 125, - 144, 118, 142, 142, 690, 316, 137, 138, 139, 144, - 141, 142, 143, 142, 142, 132, 409, 124, 144, 125, - 137, 332, 333, 127, 142, 848, 377, 378, 125, 409, - 142, 125, 787, 21, 22, 790, 791, 686, 144, 142, - 73, 74, 785, 118, 32, 127, 126, 144, 128, 360, - 144, 362, 363, 364, 365, 366, 127, 132, 91, 92, - 32, 94, 137, 127, 142, 376, 99, 142, 379, 380, - 143, 125, 721, 384, 425, 386, 142, 6, 73, 8, - 142, 32, 406, 394, 395, 409, 144, 398, 781, 146, - 85, 409, 409, 88, 137, 406, 91, 633, 124, 124, - 126, 126, 128, 128, 360, 143, 362, 363, 364, 365, - 366, 144, 107, 393, 143, 426, 142, 428, 127, 470, - 376, 1133, 73, 379, 380, 880, 10, 11, 12, 142, - 143, 144, 16, 415, 85, 124, 487, 88, 142, 133, - 91, 827, 124, 494, 126, 127, 128, 135, 136, 137, - 138, 139, 1029, 141, 142, 143, 107, 142, 126, 470, - 471, 144, 125, 135, 136, 137, 138, 139, 479, 141, - 142, 143, 134, 57, 485, 144, 124, 488, 126, 872, - 128, 492, 875, 32, 848, 496, 497, 498, 499, 500, - 501, 502, 543, 544, 144, 144, 547, 144, 1021, 10, - 11, 12, 513, 527, 144, 16, 144, 91, 32, 124, - 521, 126, 134, 128, 142, 143, 144, 144, 2, 10, - 11, 532, 134, 479, 92, 93, 94, 643, 142, 143, - 144, 144, 543, 544, 118, 144, 547, 144, 144, 550, - 144, 552, 553, 554, 555, 556, 57, 134, 132, 144, - 587, 588, 563, 137, 591, 592, 40, 41, 42, 43, - 44, 572, 1081, 47, 823, 144, 144, 137, 143, 145, - 594, 807, 583, 584, 708, 709, 594, 594, 783, 90, - 91, 144, 73, 74, 1039, 73, 135, 136, 137, 138, - 139, 124, 141, 142, 143, 606, 607, 125, 125, 610, - 91, 92, 613, 94, 1123, 643, 586, 118, 99, 125, - 621, 628, 650, 137, 138, 139, 142, 141, 142, 143, - 644, 132, 633, 126, 146, 125, 137, 142, 142, 127, - 641, 142, 142, 142, 645, 142, 127, 648, 675, 663, - 1217, 1218, 1219, 144, 57, 663, 663, 142, 137, 146, - 488, 702, 124, 127, 10, 10, 10, 1021, 496, 497, - 498, 499, 500, 501, 126, 134, 150, 125, 146, 1124, - 126, 137, 137, 1192, 145, 126, 126, 145, 126, 690, - 126, 144, 693, 137, 124, 142, 146, 142, 124, 700, - 142, 702, 125, 675, 532, 142, 125, 708, 709, 51, - 143, 53, 54, 55, 715, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 1303, 211, 80, 81, - 125, 215, 1309, 143, 1127, 128, 787, 128, 142, 790, - 791, 133, 142, 133, 46, 133, 98, 99, 133, 1142, - 1143, 1144, 125, 1208, 143, 142, 10, 4, 782, 145, - 771, 144, 114, 144, 782, 782, 68, 119, 606, 144, - 781, 142, 783, 1216, 144, 613, 787, 788, 80, 790, - 791, 798, 799, 800, 146, 269, 125, 146, 10, 126, - 142, 808, 10, 10, 126, 6, 807, 848, 100, 125, - 142, 144, 142, 641, 125, 146, 817, 1262, 110, 144, - 144, 1070, 1071, 1072, 1073, 1074, 827, 1076, 1211, 10, - 11, 145, 1215, 145, 144, 1030, 145, 1220, 146, 880, - 314, 145, 144, 870, 816, 144, 818, 144, 140, 50, - 142, 143, 142, 144, 328, 329, 144, 58, 133, 831, - 832, 833, 133, 835, 836, 837, 838, 68, 69, 70, - 133, 872, 142, 133, 875, 125, 144, 134, 79, 880, - 134, 1264, 134, 144, 85, 134, 144, 142, 144, 124, - 126, 183, 73, 74, 95, 10, 79, 80, 144, 144, - 101, 126, 126, 144, 11, 106, 1289, 145, 142, 142, - 91, 92, 386, 94, 144, 116, 142, 118, 99, 1302, - 142, 144, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, - 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, - 1189, 125, 143, 124, 51, 144, 53, 54, 55, 134, - 424, 1070, 1071, 1072, 1073, 1074, 51, 1076, 53, 54, - 55, 1085, 134, 437, 256, 134, 258, 259, 260, 10, - 11, 12, 134, 80, 81, 16, 144, 144, 10, 145, - 1021, 142, 1231, 984, 276, 80, 81, 142, 280, 142, - 142, 98, 99, 144, 144, 287, 126, 289, 1039, 707, - 474, 542, 255, 98, 99, 297, 298, 114, 10, 11, - 1123, 485, 119, 1024, 1081, 1192, 57, 643, 527, 114, - 1021, 644, 1021, 274, 119, 817, 848, 808, 1029, 1030, - 984, -1, 1281, 333, -1, 1042, -1, 1044, 1039, 1046, - -1, 333, 1049, 1050, 1051, -1, -1, 142, 1075, -1, - 91, -1, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, - 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, - 1189, 73, 74, -1, -1, -1, -1, 118, -1, -1, - -1, -1, -1, 1124, 1085, -1, -1, -1, -1, 91, - 92, 132, 94, -1, -1, 387, 137, 99, 572, -1, - -1, 142, -1, 1075, -1, -1, -1, -1, -1, -1, - -1, -1, 1231, -1, 297, 298, -1, -1, -1, -1, - -1, -1, 124, 1124, -1, -1, 1127, -1, -1, -1, - -1, -1, 1133, 16, 17, 18, 19, 20, 21, 22, - 432, 1142, 1143, 1144, -1, -1, 620, 621, -1, 32, - -1, -1, 626, -1, -1, -1, 17, 18, 19, 20, - 21, 22, 1281, 1190, -1, -1, -1, 1208, -1, -1, - -1, 32, -1, -1, -1, -1, 51, -1, 53, 54, - 55, -1, -1, -1, -1, 1157, 1158, 1159, 1160, 1161, - 1162, -1, -1, -1, -1, -1, -1, 671, 672, 673, - 674, 384, 676, -1, -1, 80, 81, 1208, -1, -1, - 1211, -1, -1, -1, 1215, -1, 1217, 1218, 1219, 1220, - -1, 1262, -1, 98, 99, -1, 700, -1, -1, 1256, - 1257, -1, 1259, 1260, 526, -1, 528, -1, -1, 114, - -1, 715, -1, 426, 119, -1, -1, 130, 131, 132, - 542, -1, 135, 136, 137, 138, 139, -1, 141, 142, - 143, 1262, -1, 1264, 10, 11, 1293, 1294, 1295, 1296, - 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, - 141, 142, 143, -1, -1, -1, -1, -1, 1289, -1, - 19, 20, 21, 22, -1, -1, -1, 771, -1, 773, - -1, 1302, 1303, 32, -1, 488, -1, -1, 1309, 19, - 20, 21, 22, 496, 497, 498, 499, 500, 501, -1, - -1, -1, 32, -1, -1, -1, -1, 73, 74, -1, - -1, -1, -1, 15, 16, 17, 18, 19, 20, 21, - 22, -1, -1, -1, -1, 91, 92, -1, 94, 532, - 32, -1, -1, 99, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 838, -1, -1, 550, -1, 552, - 553, 554, 555, 556, -1, 849, 850, 851, 852, 853, - 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, - 864, 865, 866, 867, 868, 869, -1, 871, -1, -1, - -1, -1, -1, -1, 133, 134, 135, 136, 137, 138, - 139, -1, 141, 142, 143, 707, -1, -1, -1, -1, - -1, -1, -1, 606, -1, 135, 136, 137, 138, 139, - 613, 141, 142, 143, -1, -1, -1, 3, 4, 5, - 6, -1, 8, 9, 10, 11, -1, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 641, 141, - 142, 143, -1, -1, 146, -1, -1, -1, -1, 15, - 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, - -1, 47, 48, -1, -1, 51, 32, 53, 54, 55, - 56, 57, 784, 59, 60, -1, -1, 63, 64, -1, - -1, 67, -1, -1, -1, -1, 72, 73, 74, 801, - 693, -1, 804, -1, 80, 81, -1, -1, -1, -1, - -1, 87, -1, 89, -1, 91, -1, -1, -1, -1, - 96, -1, 98, 99, 100, -1, -1, 103, 104, -1, - 1014, -1, 108, -1, -1, 111, 112, 113, 114, -1, - -1, 117, -1, 119, -1, 3, 4, 5, 6, -1, - 8, 9, 10, 11, -1, -1, 132, -1, -1, 135, - 136, 137, 10, 11, 140, -1, 142, 143, -1, -1, - -1, 147, -1, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, -1, 141, 142, 143, -1, 47, - 146, 10, 11, 51, -1, 53, 54, 55, -1, -1, - -1, 59, -1, 61, 62, 63, 64, 1091, -1, -1, + 1, 381, 439, 128, 129, 130, 131, 474, 133, 108, + 135, 136, 137, 527, 28, 119, 58, 489, 45, 721, + 599, 28, 147, 148, 119, 216, 144, 152, 153, 588, + 119, 543, 12, 57, 548, 551, 56, 414, 229, 230, + 396, 553, 28, 265, 127, 46, 119, 6, 589, 8, + 277, 14, 61, 62, 496, 126, 615, 0, 10, 11, + 287, 45, 144, 146, 580, 581, 144, 583, 584, 585, + 586, 612, 73, 144, 12, 144, 87, 88, 16, 90, + 91, 92, 549, 144, 95, 552, 106, 145, 146, 100, + 669, 127, 14, 127, 105, 106, 130, 108, 109, 110, + 73, 112, 113, 144, 127, 119, 804, 805, 806, 130, + 146, 32, 119, 654, 144, 64, 65, 66, 498, 57, + 144, 70, 135, 146, 145, 126, 144, 128, 129, 130, + 131, 135, 133, 119, 135, 136, 137, 73, 21, 22, + 652, 93, 144, 127, 127, 144, 147, 148, 132, 32, + 134, 152, 153, 126, 626, 696, 129, 12, 135, 139, + 73, 16, 146, 146, 127, 149, 150, 151, 548, 273, + 32, 145, 146, 277, 130, 397, 692, 129, 273, 401, + 145, 146, 120, 287, 273, 212, 413, 146, 277, 145, + 126, 233, 126, 129, 319, 6, 134, 8, 287, 32, + 273, 139, 57, 144, 277, 127, 144, 127, 145, 788, + 432, 727, 589, 126, 287, 216, 129, 144, 167, 168, + 169, 170, 143, 144, 145, 127, 146, 228, 229, 230, + 231, 232, 233, 144, 706, 591, 237, 32, 249, 144, + 145, 708, 253, 128, 146, 130, 555, 289, 557, 558, + 559, 560, 561, 794, 137, 138, 139, 140, 141, 273, + 143, 144, 145, 277, 265, 120, 273, 129, 135, 127, + 277, 127, 221, 287, 126, 712, 128, 654, 130, 134, + 287, 127, 144, 145, 139, 144, 492, 273, 146, 129, + 146, 277, 241, 834, 500, 501, 502, 503, 504, 505, + 146, 287, 127, 127, 526, 777, 139, 140, 141, 413, + 143, 144, 145, 228, 229, 230, 231, 232, 319, 696, + 129, 146, 146, 127, 413, 127, 793, 127, 127, 796, + 797, 537, 144, 127, 335, 336, 126, 127, 380, 381, + 413, 855, 146, 144, 146, 787, 146, 146, 143, 144, + 145, 1049, 146, 1051, 791, 1053, 73, 144, 1056, 1057, + 1058, 6, 363, 8, 365, 366, 367, 368, 369, 144, + 87, 144, 127, 90, 127, 127, 93, 144, 379, 10, + 11, 382, 383, 127, 127, 127, 387, 429, 389, 127, + 699, 146, 109, 146, 146, 144, 397, 398, 129, 413, + 401, 129, 146, 146, 146, 611, 413, 144, 146, 410, + 145, 146, 618, 10, 11, 12, 638, 144, 145, 16, + 887, 126, 144, 128, 410, 130, 126, 413, 128, 430, + 130, 432, 474, 144, 126, 419, 128, 879, 130, 1141, + 882, 647, 73, 74, 144, 144, 145, 396, 363, 491, + 365, 366, 367, 368, 369, 146, 498, 834, 148, 127, + 57, 139, 93, 94, 379, 96, 145, 382, 383, 145, + 101, 129, 103, 474, 475, 855, 126, 1036, 128, 129, + 130, 135, 483, 21, 22, 123, 124, 125, 489, 126, + 146, 492, 144, 144, 32, 496, 93, 146, 128, 500, + 501, 502, 503, 504, 505, 506, 548, 549, 127, 145, + 552, 144, 145, 146, 1028, 146, 517, 144, 145, 146, + 94, 95, 96, 120, 146, 526, 144, 145, 146, 146, + 146, 146, 136, 2, 146, 136, 537, 134, 146, 10, + 11, 12, 139, 146, 146, 16, 532, 548, 549, 136, + 649, 552, 146, 146, 555, 146, 557, 558, 559, 560, + 561, 136, 146, 146, 146, 592, 593, 568, 483, 596, + 597, 40, 41, 42, 43, 44, 577, 1089, 47, 1046, + 139, 146, 73, 147, 126, 599, 57, 588, 589, 714, + 715, 813, 599, 127, 127, 10, 11, 127, 789, 137, + 138, 139, 140, 141, 127, 143, 144, 145, 144, 128, + 611, 612, 127, 599, 615, 144, 148, 618, 144, 1131, + 129, 92, 93, 144, 144, 626, 633, 144, 146, 57, + 144, 139, 148, 10, 11, 12, 126, 638, 649, 16, + 129, 10, 591, 10, 10, 656, 647, 10, 1028, 120, + 651, 128, 136, 654, 681, 669, 128, 127, 73, 74, + 148, 139, 669, 134, 650, 1132, 708, 147, 139, 1228, + 1229, 1230, 139, 144, 128, 128, 128, 128, 93, 94, + 57, 96, 151, 669, 147, 146, 101, 144, 103, 139, + 126, 1203, 148, 1135, 126, 696, 144, 681, 699, 144, + 144, 127, 145, 145, 127, 706, 127, 708, 1150, 1151, + 1152, 127, 130, 714, 715, 130, 93, 130, 32, 134, + 721, 135, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 120, 213, 144, 135, 135, 217, 144, + 135, 793, 1219, 144, 796, 797, 146, 134, 10, 146, + 146, 32, 139, 145, 1323, 127, 147, 144, 146, 148, + 4, 1330, 127, 144, 788, 148, 777, 10, 128, 10, + 1222, 788, 10, 10, 1226, 128, 787, 127, 789, 1231, + 1227, 144, 793, 794, 32, 796, 797, 804, 805, 806, + 146, 127, 788, 272, 148, 144, 147, 814, 146, 1276, + 147, 146, 813, 855, 147, 146, 148, 147, 1078, 1079, + 1080, 1081, 1082, 824, 1084, 139, 140, 141, 146, 143, + 144, 145, 135, 834, 146, 146, 1278, 146, 144, 823, + 135, 825, 135, 144, 135, 887, 1037, 127, 317, 46, + 877, 136, 146, 136, 838, 839, 840, 136, 842, 843, + 844, 845, 331, 332, 1306, 146, 137, 138, 139, 140, + 141, 68, 143, 144, 145, 136, 146, 144, 879, 126, + 1322, 882, 146, 80, 146, 10, 887, 146, 128, 10, + 79, 80, 128, 128, 10, 146, 128, 146, 6, 137, + 138, 139, 140, 141, 101, 143, 144, 145, 147, 146, + 10, 11, 127, 10, 111, 144, 146, 136, 144, 144, + 389, 144, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, + 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, + 1200, 146, 50, 136, 141, 136, 143, 144, 146, 136, + 58, 16, 17, 18, 19, 20, 21, 22, 146, 428, + 68, 69, 70, 147, 32, 128, 10, 32, 1093, 10, + 11, 79, 441, 73, 74, 128, 144, 144, 144, 87, + 144, 146, 128, 128, 146, 1245, 1028, 146, 185, 97, + 991, 257, 713, 93, 94, 103, 96, 547, 1031, 1131, + 108, 101, 1089, 103, 1046, 73, 1203, 649, 277, 478, + 118, 650, 120, 1028, 824, 991, 855, 814, -1, 87, + 489, 532, 90, 336, -1, 93, -1, 1028, -1, 129, + -1, -1, 73, 74, -1, 1036, 1037, 145, 1298, -1, + -1, 109, 1049, -1, 1051, 1046, 1053, -1, -1, 1056, + 1057, 1058, 93, 94, -1, 96, 1083, -1, -1, -1, + 101, 258, 103, 260, 261, 262, 263, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, -1, 143, 144, + 145, -1, 279, -1, -1, 126, 283, -1, -1, -1, + 1132, -1, 1093, 290, -1, 292, -1, -1, -1, 1083, + -1, -1, -1, 300, 301, -1, -1, 830, 577, -1, + -1, 300, 301, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 11, -1, -1, -1, + -1, 1132, -1, -1, 1135, -1, -1, -1, -1, 336, + 1141, 15, 16, 17, 18, 19, 20, 21, 22, 1150, + 1151, 1152, -1, -1, -1, -1, 625, 626, 32, -1, + -1, -1, 631, -1, -1, -1, 51, -1, 53, 54, + 55, -1, -1, -1, 1201, -1, -1, 1219, -1, -1, + -1, -1, -1, -1, 1168, 1169, 1170, 1171, 1172, 1173, + -1, -1, -1, 390, -1, 80, 81, -1, 387, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 677, 678, + 679, 680, -1, 682, -1, 100, 101, -1, 1219, -1, + -1, 1222, -1, -1, -1, 1226, -1, 1228, 1229, 1230, + 1231, 116, -1, -1, 1276, -1, 121, 706, -1, 436, + -1, 430, -1, 1270, 1271, -1, 1273, 1274, -1, -1, + -1, -1, 721, -1, 10, 11, -1, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, -1, 143, + 144, 145, -1, -1, 148, 1276, -1, 1278, -1, -1, + -1, -1, -1, -1, -1, -1, 1313, 1314, 1315, 1316, + -1, -1, 17, 18, 19, 20, 21, 22, -1, -1, + -1, -1, -1, 492, -1, 1306, -1, 32, 777, -1, + 779, 500, 501, 502, 503, 504, 505, 73, 74, -1, + -1, 1322, 1323, -1, -1, -1, -1, -1, -1, 1330, + 19, 20, 21, 22, 531, -1, 533, 93, 94, -1, + 96, -1, -1, 32, -1, 101, -1, 103, 537, -1, + 547, -1, -1, -1, -1, 1078, 1079, 1080, 1081, 1082, + -1, 1084, -1, -1, -1, -1, 555, -1, 557, 558, + 559, 560, 561, -1, -1, -1, 845, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 856, 857, 858, + 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, + 869, 870, 871, 872, 873, 874, 875, 876, -1, 878, + 135, 136, 137, 138, 139, 140, 141, -1, 143, 144, + 145, -1, 611, -1, -1, -1, -1, -1, -1, 618, + -1, -1, -1, -1, -1, 3, 4, 5, 6, -1, + 8, 9, 10, 11, -1, -1, 135, 136, 137, 138, + 139, 140, 141, -1, 143, 144, 145, -1, 647, 1182, + 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, + 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, -1, 47, + 48, -1, -1, 51, -1, 53, 54, 55, 56, 57, + -1, 59, 60, -1, -1, 63, 64, -1, -1, 67, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, - -1, -1, 80, 81, -1, 73, 74, -1, -1, 87, - -1, 89, -1, 91, -1, -1, -1, -1, 96, -1, - 98, 99, 100, 91, 92, 103, 94, -1, -1, 1133, - 108, 99, -1, 111, 73, 74, 114, -1, -1, -1, - -1, 119, -1, -1, -1, -1, 124, 86, -1, -1, - -1, -1, 91, 92, 132, 94, 124, 135, 136, 137, - 99, -1, 140, -1, 142, 143, -1, -1, -1, 147, - -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 1191, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, -1, - 1204, -1, -1, -1, -1, -1, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, -1, -1, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - -1, 67, -1, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, -1, -1, -1, 85, - 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, -1, -1, -1, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, -1, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, -1, -1, -1, -1, -1, -1, - -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, -1, -1, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, -1, 67, -1, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, -1, -1, -1, 85, 86, 87, -1, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, -1, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - -1, -1, -1, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, -1, 146, 147, 3, 4, 5, + 699, -1, 80, 81, -1, -1, 713, -1, -1, -1, + -1, 89, 1245, 91, -1, 93, -1, -1, -1, -1, + 98, -1, 100, 101, 102, -1, -1, 105, 106, -1, + -1, -1, 110, -1, -1, 113, 114, 115, 116, -1, + -1, 119, 1021, 121, -1, -1, 3, 4, 5, 6, + -1, 8, 9, 10, 11, -1, 134, -1, -1, 137, + 138, 139, -1, -1, 142, 1298, 144, 145, -1, -1, + -1, 149, -1, 16, 17, 18, 19, 20, 21, 22, + -1, -1, -1, 790, -1, -1, -1, -1, -1, 32, + 47, -1, -1, -1, 51, -1, 53, 54, 55, -1, + 807, -1, 59, 810, 61, 62, 63, 64, -1, -1, + -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, + 1099, -1, -1, 80, 81, -1, -1, -1, -1, -1, + -1, -1, 89, -1, 91, -1, 93, -1, -1, -1, + -1, 98, -1, 100, 101, 102, -1, -1, 105, -1, + -1, -1, -1, 110, -1, -1, 113, -1, -1, 116, + -1, -1, 1141, -1, 121, -1, -1, -1, -1, 126, + -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, + 137, 138, 139, -1, -1, 142, -1, 144, 145, 132, + 133, 134, 149, -1, 137, 138, 139, 140, 141, -1, + 143, 144, 145, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 1202, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, -1, 1215, -1, -1, -1, + -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, -1, + -1, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, -1, 67, -1, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, + -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, -1, -1, -1, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, -1, -1, -1, -1, -1, -1, -1, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, -1, -1, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, -1, 67, -1, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, -1, + -1, -1, -1, -1, 87, 88, 89, -1, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + -1, -1, -1, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, -1, 148, 149, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, -1, 14, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, + -1, -1, -1, -1, 51, -1, 53, 54, 55, -1, + -1, -1, -1, -1, -1, -1, 63, -1, -1, 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, - -1, 47, 48, -1, -1, 51, 32, 53, 54, 55, + -1, 47, 48, 80, 81, 51, 32, 53, 54, 55, 56, 57, -1, 59, 60, -1, -1, 63, 64, -1, - -1, 67, -1, -1, -1, -1, 72, 73, 74, -1, - -1, -1, -1, -1, 80, 81, -1, -1, -1, -1, - -1, 87, -1, 89, -1, 91, -1, -1, -1, 95, - 96, -1, 98, 99, 100, -1, -1, 103, 104, -1, - -1, -1, 108, -1, -1, 111, 112, 113, 114, -1, - -1, 117, -1, 119, 3, 4, 5, 6, -1, 8, - 9, 10, 11, -1, -1, 14, 132, -1, -1, 135, - 136, -1, -1, -1, 140, -1, 142, -1, -1, -1, - -1, 147, -1, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, -1, 141, 142, 143, 47, 48, - 146, -1, 51, -1, 53, 54, 55, 56, 57, -1, - 59, 60, -1, -1, 63, 64, -1, -1, 67, -1, - -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, - -1, 80, 81, -1, -1, -1, -1, -1, 87, -1, - 89, -1, 91, -1, 10, 11, 95, 96, -1, 98, - 99, 100, -1, -1, 103, 104, -1, -1, -1, 108, - -1, -1, 111, 112, 113, 114, -1, -1, 117, -1, - 119, 3, 4, 5, 6, -1, 8, 9, 10, 11, - -1, -1, -1, 132, -1, -1, 135, 136, -1, -1, - 56, 140, -1, 142, -1, -1, -1, -1, 147, 17, - 18, 19, 20, 21, 22, -1, -1, 73, 74, -1, - -1, -1, -1, -1, 32, 47, -1, -1, -1, 51, - -1, 53, 54, 55, -1, 91, 92, 59, 94, -1, - -1, 63, 64, 99, -1, -1, -1, -1, 104, -1, - 72, 73, 74, -1, -1, -1, 112, 113, 80, 81, - 116, -1, -1, -1, -1, 87, -1, 89, -1, 91, - -1, -1, -1, -1, 96, -1, 98, 99, 100, -1, - -1, 103, -1, -1, -1, -1, 108, -1, -1, 111, - -1, -1, 114, 3, 4, 5, 6, 119, 8, 9, - 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, - 132, -1, -1, 135, 136, 137, -1, -1, 140, -1, - 142, 143, 144, 131, 132, 147, -1, 135, 136, 137, - 138, 139, -1, 141, 142, 143, -1, 47, -1, -1, - -1, 51, -1, 53, 54, 55, -1, -1, -1, 59, - -1, -1, -1, 63, 64, -1, -1, 10, 11, -1, - -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, - 80, 81, -1, -1, -1, -1, -1, 87, -1, 89, - -1, 91, -1, -1, -1, -1, 96, -1, 98, 99, - 100, -1, -1, 103, -1, -1, -1, -1, 108, 10, - 11, 111, -1, 56, 114, 3, 4, 5, 6, 119, - 8, 9, 10, 11, 124, -1, -1, -1, -1, -1, - 73, 74, 132, -1, -1, 135, 136, 137, -1, -1, - 140, -1, 142, 143, -1, -1, -1, 147, 91, 92, - 51, 94, 53, 54, 55, -1, 99, -1, -1, 47, - -1, 104, 63, 51, -1, 53, 54, 55, -1, 112, - 113, 59, -1, 74, -1, 63, 64, -1, -1, 80, - 81, -1, -1, -1, 72, 73, 74, -1, -1, -1, - -1, -1, 80, 81, -1, -1, -1, 98, 99, 87, - -1, 89, -1, 91, -1, -1, -1, -1, 96, -1, - 98, 99, 100, 114, -1, 103, 117, -1, 119, -1, - 108, -1, -1, 111, -1, -1, 114, 3, 4, 5, - 6, 119, 8, 9, 10, 11, -1, -1, 51, -1, - 53, 54, 55, -1, 132, -1, -1, 135, 136, 137, - 63, -1, 140, -1, 142, 143, 144, -1, -1, 147, - -1, -1, -1, -1, -1, -1, -1, 80, 81, -1, - -1, 47, -1, -1, -1, 51, -1, 53, 54, 55, - -1, -1, -1, 59, -1, 98, 99, 63, 64, -1, - -1, 10, 11, -1, -1, -1, 72, 73, 74, -1, - -1, 114, -1, -1, 80, 81, 119, -1, -1, -1, - -1, 87, -1, 89, -1, 91, -1, -1, -1, -1, - 96, -1, 98, 99, 100, -1, -1, 103, -1, 142, - -1, -1, 108, -1, -1, 111, -1, 56, 114, 3, - 4, 5, 6, 119, 8, 9, 10, 11, 124, -1, - -1, -1, -1, -1, 73, 74, 132, -1, -1, 135, - 136, 137, -1, -1, 140, -1, 142, 143, -1, -1, - -1, 147, 91, 92, 93, 94, -1, -1, -1, -1, - 99, -1, -1, 47, -1, 104, -1, 51, -1, 53, - 54, 55, -1, 112, 113, 59, -1, 116, -1, 63, - 64, -1, -1, 10, 11, -1, -1, -1, 72, 73, - 74, -1, -1, -1, -1, -1, 80, 81, -1, -1, - -1, -1, -1, 87, -1, 89, -1, 91, -1, -1, - -1, -1, 96, -1, 98, 99, 100, -1, -1, 103, - -1, -1, -1, -1, 108, -1, -1, 111, -1, 56, - 114, 3, 4, 5, 6, 119, 8, 9, 10, 11, - -1, -1, -1, -1, -1, -1, 73, 74, 132, -1, - -1, 135, 136, 137, -1, -1, 140, -1, 142, 143, - 144, -1, -1, 147, 91, 92, 51, 94, 53, 54, - 55, -1, 99, -1, -1, 47, -1, 104, -1, 51, - -1, 53, 54, 55, -1, 112, 113, 59, -1, 116, - -1, 63, 64, -1, -1, 80, 81, -1, -1, -1, - 72, 73, 74, -1, -1, -1, -1, -1, 80, 81, - -1, -1, -1, 98, 99, 87, -1, 89, -1, 91, - -1, -1, -1, -1, 96, -1, 98, 99, 100, 114, - -1, 103, -1, -1, 119, -1, 108, 10, 11, 111, - 21, 22, 114, 3, 4, 5, 6, 119, 8, 9, - 10, 32, -1, -1, -1, -1, -1, 142, -1, -1, - 132, -1, -1, 135, 136, 137, -1, -1, 140, -1, - 142, 143, -1, -1, -1, 147, -1, -1, 51, -1, - 53, 54, 55, 56, 57, -1, -1, 47, -1, -1, - 63, -1, -1, -1, -1, -1, -1, -1, -1, 59, - -1, 74, -1, -1, 64, -1, -1, 80, 81, -1, - -1, -1, 72, 73, -1, -1, -1, -1, -1, -1, - 0, -1, -1, -1, -1, 98, 99, -1, -1, 89, - -1, 91, -1, -1, -1, -1, 96, -1, -1, 112, - 100, 114, -1, 103, 117, -1, 119, -1, 108, -1, - -1, -1, -1, -1, 135, 136, 137, 138, 139, -1, - 141, 142, 143, -1, -1, -1, -1, -1, -1, 49, - 50, -1, 132, -1, -1, 135, 136, 137, 58, -1, - 140, -1, 142, 143, -1, -1, 66, 147, 68, 69, - 70, 71, -1, -1, -1, 75, -1, -1, -1, 79, - -1, -1, 82, 83, 84, 85, 86, -1, -1, -1, - -1, -1, 92, 93, 94, 95, -1, -1, -1, -1, - -1, 101, 102, -1, -1, 105, 106, -1, -1, -1, - 110, -1, -1, -1, -1, 115, 116, -1, 118, 6, - -1, -1, -1, -1, 10, 11, 126, -1, 15, 16, - 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, - -1, -1, -1, 143, -1, 32, -1, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, -1, - -1, -1, 48, -1, -1, 51, -1, 53, 54, 55, - 56, 57, -1, -1, 60, 62, -1, 63, -1, -1, - -1, 67, -1, -1, -1, -1, -1, -1, 74, -1, - -1, -1, -1, -1, 80, 81, -1, -1, -1, -1, - 87, -1, -1, -1, 90, -1, -1, -1, -1, -1, - -1, -1, 98, 99, -1, -1, -1, -1, 104, -1, - 10, 11, 10, 11, -1, -1, 112, 113, 114, -1, - -1, 117, -1, 119, -1, -1, -1, -1, 125, -1, - -1, 128, -1, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 140, 142, 143, -1, 48, -1, - 147, 51, -1, 53, 54, 55, 56, 57, -1, -1, - 60, -1, -1, 63, -1, -1, -1, 67, -1, -1, - -1, -1, -1, -1, 74, 73, 74, -1, -1, -1, - 80, 81, 10, 11, -1, -1, -1, -1, -1, -1, - 90, -1, -1, 91, 92, -1, 94, -1, 98, 99, - -1, 99, -1, -1, 104, -1, -1, -1, -1, -1, - -1, -1, 112, 113, 114, -1, -1, 117, -1, 119, - 48, -1, -1, 51, 124, 53, 54, 55, 56, 57, - 128, -1, 60, -1, 132, 63, -1, -1, -1, 67, - 140, -1, -1, -1, -1, -1, 74, -1, -1, -1, + -1, 67, -1, 100, 101, -1, 72, 73, 74, -1, + -1, -1, -1, -1, 80, 81, -1, -1, -1, 116, + -1, -1, -1, 89, 121, 91, -1, 93, -1, -1, + -1, 97, 98, -1, 100, 101, 102, -1, -1, 105, + 106, -1, -1, -1, 110, -1, -1, 113, 114, 115, + 116, -1, -1, 119, -1, 121, 3, 4, 5, 6, + -1, 8, 9, 10, 11, -1, -1, 14, 134, -1, + -1, 137, 138, -1, -1, -1, 142, -1, 144, -1, + -1, -1, -1, 149, -1, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, -1, 143, 144, 145, + 47, 48, 148, -1, 51, -1, 53, 54, 55, 56, + 57, -1, 59, 60, -1, -1, 63, 64, -1, -1, + 67, -1, -1, -1, -1, 72, 73, 74, -1, -1, + -1, -1, -1, 80, 81, -1, -1, -1, -1, -1, + -1, -1, 89, -1, 91, -1, 93, -1, -1, -1, + 97, 98, -1, 100, 101, 102, -1, -1, 105, 106, + -1, -1, -1, 110, -1, -1, 113, 114, 115, 116, + -1, -1, 119, -1, 121, 3, 4, 5, 6, -1, + 8, 9, 10, 11, -1, 10, 11, 134, -1, -1, + 137, 138, -1, -1, -1, 142, -1, 144, -1, -1, + -1, -1, 149, 17, 18, 19, 20, 21, 22, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 32, 47, + -1, -1, -1, 51, -1, 53, 54, 55, -1, -1, + -1, 59, -1, -1, -1, 63, 64, -1, -1, -1, + -1, -1, -1, -1, 72, 73, 74, -1, 73, 74, -1, -1, 80, 81, -1, -1, -1, -1, -1, -1, - -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, - 98, 99, -1, -1, -1, -1, 104, -1, 51, -1, - 53, 54, 55, -1, 112, 113, 114, -1, -1, 117, - 63, 119, 15, 16, 17, 18, 19, 20, 21, 22, - -1, -1, -1, -1, -1, -1, -1, 80, 81, 32, - -1, -1, 140, 15, 16, 17, 18, 19, 20, 21, - 22, -1, -1, -1, -1, 98, 99, -1, -1, -1, - 32, 15, 16, 17, 18, 19, 20, 21, 22, -1, - -1, 114, -1, -1, -1, -1, 119, -1, 32, 15, + -1, 89, -1, 91, -1, 93, -1, -1, 93, 94, + 98, 96, 100, 101, 102, -1, 101, 105, 103, 10, + 11, -1, 110, -1, -1, 113, -1, -1, 116, 3, + 4, 5, 6, 121, 8, 9, 10, 11, -1, -1, + -1, 126, -1, -1, -1, -1, 134, -1, -1, 137, + 138, 139, -1, -1, 142, -1, 144, 145, 146, 133, + 134, 149, -1, 137, 138, 139, 140, 141, -1, 143, + 144, 145, -1, 47, -1, -1, -1, 51, -1, 53, + 54, 55, 73, 74, -1, 59, -1, -1, -1, 63, + 64, 51, -1, 53, 54, 55, -1, -1, 72, 73, + 74, -1, 93, 94, -1, 96, 80, 81, -1, -1, + 101, -1, 103, -1, -1, 89, -1, 91, -1, 93, + 80, 81, -1, -1, 98, -1, 100, 101, 102, -1, + -1, 105, -1, -1, -1, 126, 110, 10, 11, 113, + 100, 101, 116, 3, 4, 5, 6, 121, 8, 9, + 10, 11, 126, -1, -1, -1, 116, -1, -1, -1, + 134, 121, -1, 137, 138, 139, -1, -1, 142, -1, + 144, 145, -1, -1, -1, 149, -1, -1, 51, -1, + 53, 54, 55, -1, 144, -1, -1, 47, -1, -1, + 63, 51, -1, 53, 54, 55, -1, -1, -1, 59, + -1, 74, -1, 63, 64, -1, -1, 80, 81, -1, + -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, + 80, 81, 51, -1, 53, 54, 55, 100, 101, 89, + -1, 91, -1, 93, 63, -1, -1, -1, 98, -1, + 100, 101, 102, 116, -1, 105, 119, -1, 121, -1, + 110, 80, 81, 113, -1, -1, 116, 3, 4, 5, + 6, 121, 8, 9, 10, 11, -1, -1, -1, -1, + -1, 100, 101, -1, 134, -1, -1, 137, 138, 139, + -1, -1, 142, -1, 144, 145, 146, 116, -1, 149, + -1, -1, 121, -1, -1, -1, -1, -1, -1, -1, + -1, 47, -1, -1, -1, 51, -1, 53, 54, 55, + -1, -1, -1, 59, -1, 144, -1, 63, 64, 51, + -1, 53, 54, 55, -1, -1, 72, 73, 74, -1, + -1, -1, -1, -1, 80, 81, 51, -1, 53, 54, + 55, -1, -1, 89, -1, 91, -1, 93, 80, 81, + -1, -1, 98, -1, 100, 101, 102, -1, -1, 105, + -1, 10, 11, -1, 110, 80, 81, 113, 100, 101, + 116, 3, 4, 5, 6, 121, 8, 9, 10, 11, + 126, -1, -1, -1, 116, 100, 101, -1, 134, 121, + -1, 137, 138, 139, -1, -1, 142, -1, 144, 145, + -1, 116, -1, 149, -1, -1, 121, -1, -1, -1, + -1, -1, 144, -1, -1, 47, -1, -1, -1, 51, + -1, 53, 54, 55, 73, 74, -1, 59, -1, 144, + -1, 63, 64, 51, -1, 53, 54, 55, -1, 88, + 72, 73, 74, -1, 93, 94, -1, 96, 80, 81, + -1, -1, 101, -1, 103, -1, -1, 89, -1, 91, + -1, 93, 80, 81, -1, -1, 98, -1, 100, 101, + 102, -1, -1, 105, -1, -1, -1, -1, 110, -1, + -1, 113, 100, 101, 116, 3, 4, 5, 6, 121, + 8, 9, 10, 11, -1, -1, -1, -1, 116, -1, + -1, -1, 134, 121, -1, 137, 138, 139, -1, -1, + 142, -1, 144, 145, 146, -1, -1, 149, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, + -1, -1, -1, 51, -1, 53, 54, 55, -1, -1, + -1, 59, -1, -1, -1, 63, 64, -1, -1, -1, + -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, + -1, -1, 80, 81, -1, -1, -1, -1, -1, -1, + -1, 89, -1, 91, -1, 93, -1, -1, -1, -1, + 98, -1, 100, 101, 102, -1, -1, 105, -1, -1, + -1, -1, 110, -1, -1, 113, -1, -1, 116, 3, + 4, 5, 6, 121, 8, 9, 10, -1, -1, -1, + -1, -1, -1, 10, 11, -1, 134, -1, -1, 137, + 138, 139, -1, -1, 142, -1, 144, 145, -1, -1, + -1, 149, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, + -1, 48, -1, -1, 51, 59, 53, 54, 55, 56, + 64, -1, -1, 60, -1, -1, 63, -1, 72, 73, + 67, -1, -1, -1, -1, -1, -1, 74, 0, -1, + -1, -1, -1, 80, 81, -1, -1, 91, -1, 93, + -1, -1, -1, -1, 98, -1, -1, -1, 102, -1, + -1, 105, -1, 100, 101, -1, 110, -1, -1, 106, + -1, -1, -1, -1, -1, -1, -1, 114, 115, 116, + -1, -1, 119, -1, 121, -1, -1, 49, 50, -1, + 134, -1, -1, 137, 138, 139, 58, -1, 142, -1, + 144, 145, -1, -1, 66, 149, 68, 69, 70, 71, + -1, -1, -1, 75, -1, -1, -1, 79, -1, -1, + -1, 83, 84, 85, 86, 87, 88, 19, 20, 21, + 22, -1, 94, 95, 96, 97, -1, -1, -1, -1, + 32, 103, 104, -1, -1, 107, 108, -1, -1, -1, + 112, -1, -1, -1, -1, 117, 118, -1, 120, 6, + -1, -1, -1, -1, -1, -1, 128, -1, 15, 16, + 17, 18, 19, 20, 21, 22, -1, 10, 11, -1, + -1, -1, -1, 145, -1, 32, -1, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 15, + 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, + -1, -1, -1, -1, -1, 62, 32, -1, -1, -1, + -1, -1, -1, 56, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 73, 74, 89, -1, -1, 137, 138, 139, 140, 141, + -1, 143, 144, 145, -1, -1, -1, -1, -1, -1, + 93, 94, -1, 96, -1, -1, -1, -1, 101, -1, + 103, -1, -1, 106, -1, -1, -1, -1, -1, -1, + 127, 114, 115, 130, -1, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, -1, 144, 145, 10, + 11, -1, 149, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, -1, 143, 144, 145, + 10, 11, 148, -1, -1, -1, -1, 48, -1, -1, + 51, -1, 53, 54, 55, 56, 57, -1, -1, 60, + -1, -1, 63, -1, -1, -1, 67, -1, -1, -1, + -1, -1, -1, 74, -1, -1, -1, -1, 48, 80, + 81, 51, -1, 53, 54, 55, 56, 57, -1, -1, + 60, 92, -1, 63, -1, -1, -1, 67, -1, 100, + 101, -1, -1, -1, 74, 106, -1, -1, -1, -1, + 80, 81, -1, 114, 115, 116, 10, 11, 119, -1, + 121, -1, 92, -1, -1, 126, -1, -1, -1, -1, + 100, 101, -1, -1, -1, -1, 106, -1, -1, -1, + -1, 142, -1, -1, 114, 115, 116, -1, -1, 119, + -1, 121, -1, -1, 48, -1, -1, 51, -1, 53, + 54, 55, 56, 57, -1, -1, 60, -1, -1, 63, + -1, -1, 142, 67, -1, -1, -1, -1, -1, -1, + 74, -1, -1, -1, -1, -1, 80, 81, 15, 16, + 17, 18, 19, 20, 21, 22, -1, -1, 92, -1, + -1, -1, -1, -1, -1, 32, 100, 101, -1, -1, + -1, -1, 106, -1, -1, -1, -1, -1, -1, -1, + 114, 115, 116, -1, -1, 119, -1, 121, 15, 16, + 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 32, -1, -1, 142, 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 32, -1, 15, 16, 17, 18, - 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, - -1, -1, 125, 32, -1, -1, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, -1, 141, 142, - 143, 144, -1, -1, -1, -1, -1, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, -1, 141, - 142, 143, 144, -1, -1, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, -1, 141, 142, 143, - 144, -1, -1, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, -1, 141, 142, 143, 144, -1, - -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, -1, 141, 142, 143, 144, -1, -1, -1, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, -1, 141, 142, 143, 144, 15, 16, 17, 18, - 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 32, 15, 16, 17, 18, 19, 20, - 21, 22, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 32, -1, 15, 16, 17, 18, 19, 20, 21, - 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 32, 15, 16, 17, 18, 19, 20, 21, 22, -1, + -1, -1, -1, -1, 32, 15, 16, 17, 18, 19, + 20, 21, 22, -1, -1, -1, -1, -1, -1, -1, + 127, -1, 32, -1, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, -1, 143, 144, 145, 146, + 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 32, -1, -1, + -1, -1, -1, -1, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, -1, 143, 144, 145, 146, + -1, -1, -1, -1, -1, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, -1, 143, 144, 145, + 146, -1, -1, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, -1, 143, 144, 145, 146, -1, + -1, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, -1, 143, 144, 145, 146, 15, 16, 17, + 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 32, -1, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, -1, 143, 144, + 145, 146, 15, 16, 17, 18, 19, 20, 21, 22, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, + -1, 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 32, -1, -1, -1, 127, -1, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, -1, 141, 142, 143, 126, -1, -1, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, - 141, 142, 143, 125, -1, -1, -1, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, -1, 141, - 142, 143, -1, 127, -1, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, -1, 141, 142, 143, - -1, -1, -1, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, -1, 141, 142, 143, -1, -1, - -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, -1, 141, 142, 143, 15, 16, 17, 18, - 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 32, 15, 16, 17, 18, 19, 20, - 21, 22, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 32, 16, 17, 18, 19, 20, 21, 22, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 32, -1, - -1, -1, -1, 17, 18, 19, 20, 21, 22, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 32, 17, - 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 17, 18, 19, 20, 21, 22, -1, -1, 127, -1, - 129, 130, 131, 132, -1, 32, 135, 136, 137, 138, - 139, -1, 141, 142, 143, -1, -1, -1, 129, 130, - 131, 132, -1, -1, 135, 136, 137, 138, 139, -1, - 141, 142, 143, -1, -1, -1, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, -1, 141, 142, 143, - 11, -1, -1, 14, -1, 16, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, -1, 141, 142, 143, - -1, -1, -1, -1, 132, 133, 134, 135, 136, 137, - 138, 139, -1, 141, 142, 143, -1, 48, -1, -1, - 51, -1, 53, 54, 55, 56, 57, -1, -1, 60, - -1, -1, 63, 130, 131, 132, 67, -1, 135, 136, - 137, 138, 139, 74, 141, 142, 143, -1, -1, 80, - 81, 17, 18, 19, 20, 21, 22, 10, 11, -1, - -1, -1, -1, -1, 95, -1, 32, 98, 99, -1, - -1, -1, -1, 104, 17, 18, 19, 20, 21, 22, - -1, 112, 113, 114, -1, -1, 117, -1, 119, 32, + -1, 129, -1, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, -1, 143, 144, 145, -1, 15, + 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, + -1, -1, -1, -1, -1, 128, 32, -1, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, -1, + 143, 144, 145, 127, -1, -1, -1, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, -1, 143, + 144, 145, -1, 129, -1, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, -1, 143, 144, 145, + -1, -1, -1, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, -1, 143, 144, 145, 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, - -1, 132, -1, 56, -1, 32, 137, -1, -1, -1, + -1, -1, -1, -1, -1, 32, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, -1, 143, 144, 145, + 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, - -1, 94, -1, -1, -1, -1, 99, -1, -1, -1, - -1, 104, -1, -1, -1, -1, -1, -1, -1, 112, - 113, -1, -1, 116, -1, -1, -1, 133, 134, 135, - 136, 137, 138, 139, -1, 141, 142, 143, -1, 10, - 11, -1, -1, -1, -1, -1, -1, -1, -1, 132, - -1, -1, 135, 136, 137, 138, 139, -1, 141, 142, - 143, -1, -1, -1, -1, -1, -1, -1, 135, 136, - 137, 138, 139, -1, 141, 142, 143, 48, -1, -1, - 51, -1, 53, 54, 55, 56, -1, -1, -1, 60, - -1, -1, 63, -1, -1, -1, 67, -1, -1, -1, - -1, -1, -1, 74, -1, -1, -1, -1, -1, 80, - 81, -1, 11, -1, -1, 14, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 98, 99, -1, - -1, -1, -1, 104, -1, -1, -1, -1, -1, -1, - -1, 112, 113, 114, -1, -1, 117, -1, 119, 48, - -1, -1, 51, -1, 53, 54, 55, 56, 57, -1, - -1, 60, -1, -1, 63, -1, -1, -1, 67, -1, - -1, -1, -1, -1, -1, 74, -1, -1, -1, -1, - -1, 80, 81, -1, 11, -1, -1, 14, -1, -1, - 50, -1, -1, -1, -1, -1, 95, -1, 58, 98, - 99, -1, -1, -1, -1, 104, -1, -1, 68, 69, - 70, -1, -1, 112, 113, 114, -1, -1, 117, 79, - 119, 48, -1, -1, 51, 85, 53, 54, 55, 56, - 57, -1, -1, 60, -1, 95, 63, -1, -1, -1, - 67, 101, -1, -1, -1, 105, 106, 74, -1, -1, - -1, 11, -1, 80, 81, -1, 116, -1, 118, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 95, -1, - -1, 98, 99, 11, -1, -1, -1, 104, -1, -1, - -1, -1, -1, 143, -1, 112, 113, 114, 48, -1, - 117, 51, 119, 53, 54, 55, 56, 57, -1, -1, + -1, -1, 17, 18, 19, 20, 21, 22, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 32, -1, -1, + 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 32, -1, -1, -1, -1, + -1, -1, 129, -1, 131, 132, 133, 134, -1, -1, + 137, 138, 139, 140, 141, -1, 143, 144, 145, -1, + -1, -1, -1, -1, 11, -1, -1, 14, -1, 16, + -1, -1, -1, -1, -1, -1, 17, 18, 19, 20, + 21, 22, -1, -1, -1, -1, 131, 132, 133, 134, + -1, 32, 137, 138, 139, 140, 141, -1, 143, 144, + 145, 48, -1, -1, 51, -1, 53, 54, 55, 56, + 57, -1, -1, 60, -1, -1, 63, 132, 133, 134, + 67, -1, 137, 138, 139, 140, 141, 74, 143, 144, + 145, -1, -1, 80, 81, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, -1, 143, 144, 145, -1, + 97, -1, -1, 100, 101, 10, 11, -1, -1, 106, + 17, 18, 19, 20, 21, 22, -1, 114, 115, 116, + -1, -1, 119, -1, 121, 32, 17, 18, 19, 20, + 21, 22, -1, -1, -1, -1, -1, 134, -1, -1, + -1, 32, 139, 134, 135, 136, 137, 138, 139, 140, + 141, 56, 143, 144, 145, 17, 18, 19, 20, 21, + 22, -1, -1, -1, -1, -1, -1, -1, 73, 74, + 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, + 95, 96, -1, -1, -1, -1, 101, -1, 103, -1, + -1, 106, -1, -1, -1, -1, -1, -1, -1, 114, + 115, -1, -1, 118, -1, -1, 10, 11, -1, -1, + -1, -1, -1, -1, -1, -1, 133, 134, 135, 136, + 137, 138, 139, 140, 141, -1, 143, 144, 145, -1, + -1, -1, -1, 134, -1, -1, 137, 138, 139, 140, + 141, -1, 143, 144, 145, -1, -1, 51, -1, 53, + 54, 55, 56, 57, -1, -1, -1, -1, -1, 63, + -1, -1, -1, -1, -1, 137, 138, 139, 140, 141, + 74, 143, 144, 145, -1, -1, 80, 81, -1, 11, + -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 100, 101, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 114, -1, 116, -1, -1, 119, 48, 121, -1, 51, + -1, 53, 54, 55, 56, 57, -1, -1, 60, -1, + -1, 63, -1, -1, -1, 67, -1, -1, -1, -1, + -1, -1, 74, -1, -1, -1, -1, -1, 80, 81, + -1, 11, -1, -1, 14, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 97, -1, -1, 100, 101, + -1, -1, -1, -1, 106, -1, -1, -1, -1, -1, + -1, -1, 114, 115, 116, -1, -1, 119, 48, 121, + -1, 51, -1, 53, 54, 55, 56, 57, -1, -1, 60, -1, -1, 63, -1, -1, -1, 67, -1, -1, - 48, -1, -1, 51, 74, 53, 54, 55, 56, 57, - 80, 81, 60, -1, -1, 63, -1, -1, -1, 67, - -1, -1, -1, -1, -1, 95, 74, -1, 98, 99, - 11, -1, 80, 81, 104, -1, -1, -1, -1, -1, - -1, -1, 112, 113, 114, -1, -1, 117, -1, 119, - 98, 99, -1, -1, -1, -1, 104, -1, -1, -1, - -1, -1, -1, -1, 112, 113, 114, 48, -1, 117, - 51, 119, 53, 54, 55, 56, 57, -1, -1, 60, - -1, -1, 63, -1, -1, 11, 67, -1, -1, -1, - -1, -1, -1, 74, -1, -1, -1, -1, -1, 80, - 81, -1, -1, -1, -1, -1, -1, 11, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 98, 99, -1, - -1, -1, 48, 104, -1, 51, -1, 53, 54, 55, - 56, 112, 113, 114, 60, -1, 117, 63, 119, -1, - -1, 67, -1, -1, 48, -1, -1, 51, 74, 53, - 54, 55, 56, 57, 80, 81, 60, -1, -1, 63, - -1, -1, 11, 67, -1, -1, -1, -1, -1, 95, - 74, -1, 98, 99, -1, -1, 80, 81, 104, -1, - -1, -1, -1, -1, 11, -1, 112, 113, 114, -1, - -1, 117, -1, 119, 98, 99, -1, -1, -1, 48, - 104, -1, 51, -1, 53, 54, 55, 56, 112, 113, - 114, 60, -1, 117, 63, 119, -1, -1, 67, -1, - -1, 48, -1, -1, 51, 74, 53, 54, 55, 56, - -1, 80, 81, 60, -1, -1, 63, -1, -1, -1, - 67, -1, -1, -1, -1, -1, -1, 74, -1, 98, - 99, -1, -1, 80, 81, 104, -1, -1, -1, -1, - -1, -1, -1, 112, 113, 114, -1, -1, 117, -1, - 119, 98, 99, -1, 49, 50, -1, 104, -1, -1, - -1, -1, -1, 58, -1, 112, 113, 114, -1, -1, - 117, 66, 119, 68, 69, 70, 71, -1, -1, -1, - 75, -1, -1, -1, 79, -1, -1, 82, 83, 84, - 85, 86, -1, -1, -1, -1, -1, 92, 93, 94, - 95, -1, -1, -1, -1, -1, 101, 102, 49, 50, - 105, 106, -1, -1, -1, 110, -1, 58, -1, -1, - 115, 116, -1, 118, -1, 66, -1, 68, 69, 70, - 71, 126, -1, -1, 75, -1, -1, -1, 79, -1, - -1, 82, 83, 84, 85, 86, -1, -1, 143, -1, - 145, 92, 93, 94, 95, -1, -1, -1, -1, -1, - 101, 102, 49, 50, 105, 106, -1, -1, -1, 110, - -1, 58, -1, -1, 115, 116, -1, 118, -1, 66, - -1, 68, 69, 70, 71, 126, -1, -1, 75, -1, - -1, -1, 79, -1, -1, 82, 83, 84, 85, 86, - -1, -1, 143, -1, 145, 92, 93, 94, 95, -1, - -1, -1, -1, -1, 101, 102, 49, 50, 105, 106, - -1, -1, -1, 110, -1, 58, -1, -1, 115, 116, - -1, 118, -1, 66, -1, 68, 69, 70, 71, 126, - -1, -1, 75, -1, -1, -1, 79, -1, -1, 82, - 83, 84, 85, 86, -1, -1, 143, -1, 145, 92, - 93, 94, 95, -1, -1, -1, -1, -1, 101, 102, - 49, 50, 105, 106, -1, -1, -1, 110, -1, 58, - -1, -1, 115, 116, -1, 118, -1, 66, -1, 68, - 69, 70, 71, 126, -1, -1, 75, -1, -1, -1, - 79, -1, -1, 82, 83, 84, 85, 86, -1, -1, - 143, -1, 145, 92, 93, 94, 95, -1, -1, -1, - -1, -1, 101, 102, 49, 50, 105, 106, -1, -1, - -1, 110, -1, 58, -1, -1, 115, 116, -1, 118, - -1, 66, -1, 68, 69, 70, 71, 126, -1, -1, - 75, -1, -1, -1, 79, -1, -1, 82, 83, 84, - 85, 86, -1, -1, 143, -1, 145, 92, 93, 94, - 95, -1, -1, -1, -1, -1, 101, 102, 49, 50, - 105, 106, -1, -1, -1, 110, -1, 58, -1, -1, - 115, 116, -1, 118, -1, 66, -1, 68, 69, 70, - 71, 126, -1, -1, 75, -1, -1, -1, 79, -1, - -1, 82, 83, 84, 85, 86, -1, -1, 143, -1, - 145, 92, 93, 94, 95, -1, -1, -1, -1, -1, - 101, 102, 49, 50, 105, 106, -1, -1, -1, 110, - -1, 58, -1, -1, 115, 116, -1, 118, -1, 66, - -1, 68, 69, 70, 71, 126, -1, -1, 75, -1, - -1, -1, 79, -1, -1, 82, 83, 84, 85, 86, - -1, -1, 143, -1, 145, 92, 93, 94, 95, -1, - -1, -1, -1, -1, 101, 102, 50, -1, 105, 106, - -1, -1, -1, 110, 58, -1, -1, -1, 115, 116, - 50, 118, -1, -1, 68, 69, 70, -1, 58, -1, + -1, -1, -1, -1, 74, -1, -1, -1, -1, -1, + 80, 81, -1, 11, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, + 100, 101, -1, -1, -1, 11, 106, -1, -1, -1, + -1, -1, -1, -1, 114, 115, 116, -1, -1, 119, + 48, 121, -1, 51, -1, 53, 54, 55, 56, 57, + -1, -1, 60, -1, -1, 63, -1, -1, -1, 67, + -1, -1, 48, -1, -1, 51, 74, 53, 54, 55, + 56, 57, 80, 81, 60, -1, -1, 63, -1, -1, + -1, 67, -1, -1, -1, -1, -1, -1, 74, 97, + -1, -1, 100, 101, 80, 81, -1, 11, 106, -1, + -1, -1, -1, -1, -1, -1, 114, 115, 116, -1, + -1, 119, -1, 121, 100, 101, -1, -1, -1, -1, + 106, -1, -1, -1, -1, -1, -1, -1, 114, 115, + 116, -1, -1, 119, 48, 121, -1, 51, -1, 53, + 54, 55, 56, 57, -1, -1, 60, -1, -1, 63, + -1, -1, -1, 67, 11, -1, -1, -1, -1, -1, + 74, -1, -1, -1, -1, -1, 80, 81, -1, -1, + -1, -1, -1, -1, -1, -1, 11, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 100, 101, -1, -1, + -1, 48, 106, -1, 51, -1, 53, 54, 55, 56, + 114, 115, 116, 60, -1, 119, 63, 121, -1, -1, + 67, -1, -1, 48, -1, -1, 51, 74, 53, 54, + 55, 56, 57, 80, 81, 60, -1, -1, 63, -1, + -1, -1, 67, 11, -1, -1, -1, -1, -1, 74, + 97, -1, -1, 100, 101, 80, 81, -1, -1, 106, + -1, -1, -1, -1, -1, 11, -1, 114, 115, 116, + -1, -1, 119, -1, 121, 100, 101, -1, -1, -1, + 48, 106, -1, 51, -1, 53, 54, 55, 56, 114, + 115, 116, 60, -1, 119, 63, 121, -1, -1, 67, + -1, -1, 48, 10, 11, 51, 74, 53, 54, 55, + 56, -1, 80, 81, 60, -1, -1, 63, -1, 10, + 11, 67, -1, -1, -1, -1, -1, -1, 74, -1, + -1, -1, 100, 101, 80, 81, -1, -1, 106, -1, + -1, -1, -1, -1, -1, -1, 114, 115, 116, 56, + -1, 119, -1, 121, 100, 101, -1, -1, 10, 11, + 106, -1, -1, -1, -1, 56, 73, 74, 114, 115, + 116, -1, -1, 119, -1, 121, -1, -1, -1, -1, + -1, -1, 73, 74, -1, -1, 93, 94, -1, 96, + -1, -1, -1, -1, 101, -1, 103, -1, -1, 106, + -1, -1, 93, 94, 56, 96, -1, 114, 115, -1, + 101, 118, 103, -1, -1, 106, -1, -1, -1, -1, + -1, 73, 74, 114, 115, -1, -1, 118, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 49, 50, + -1, 93, 94, -1, 96, -1, -1, 58, -1, 101, + -1, 103, -1, -1, 106, 66, -1, 68, 69, 70, + 71, -1, 114, 115, 75, -1, 118, -1, 79, -1, + -1, -1, 83, 84, 85, 86, 87, 88, -1, -1, + -1, -1, -1, 94, 95, 96, 97, -1, -1, -1, + -1, -1, 103, 104, 49, 50, 107, 108, -1, -1, + -1, 112, -1, 58, -1, -1, 117, 118, -1, 120, + -1, 66, -1, 68, 69, 70, 71, 128, -1, -1, + 75, -1, -1, -1, 79, -1, -1, -1, 83, 84, + 85, 86, 87, 88, 145, -1, 147, -1, -1, 94, + 95, 96, 97, -1, -1, -1, -1, -1, 103, 104, + 49, 50, 107, 108, -1, -1, -1, 112, -1, 58, + -1, -1, 117, 118, -1, 120, -1, 66, -1, 68, + 69, 70, 71, 128, -1, -1, 75, -1, -1, -1, + 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, + 145, -1, 147, -1, -1, 94, 95, 96, 97, -1, + -1, -1, -1, -1, 103, 104, 49, 50, 107, 108, + -1, -1, -1, 112, -1, 58, -1, -1, 117, 118, + -1, 120, -1, 66, -1, 68, 69, 70, 71, 128, + -1, -1, 75, -1, -1, -1, 79, -1, -1, -1, + 83, 84, 85, 86, 87, 88, 145, -1, 147, -1, + -1, 94, 95, 96, 97, -1, -1, -1, -1, -1, + 103, 104, 49, 50, 107, 108, -1, -1, -1, 112, + -1, 58, -1, -1, 117, 118, -1, 120, -1, 66, + -1, 68, 69, 70, 71, 128, -1, -1, 75, -1, + -1, -1, 79, -1, -1, -1, 83, 84, 85, 86, + 87, 88, 145, -1, 147, -1, -1, 94, 95, 96, + 97, -1, -1, -1, -1, -1, 103, 104, 49, 50, + 107, 108, -1, -1, -1, 112, -1, 58, -1, -1, + 117, 118, -1, 120, -1, 66, -1, 68, 69, 70, + 71, 128, -1, -1, 75, -1, -1, -1, 79, -1, + -1, -1, 83, 84, 85, 86, 87, 88, 145, -1, + 147, -1, -1, 94, 95, 96, 97, -1, -1, -1, + -1, -1, 103, 104, 49, 50, 107, 108, -1, -1, + -1, 112, -1, 58, -1, -1, 117, 118, -1, 120, + -1, 66, -1, 68, 69, 70, 71, 128, -1, -1, + 75, -1, -1, -1, 79, -1, -1, -1, 83, 84, + 85, 86, 87, 88, 145, -1, 147, -1, -1, 94, + 95, 96, 97, -1, -1, -1, -1, -1, 103, 104, + 49, 50, 107, 108, -1, -1, -1, 112, -1, 58, + -1, -1, 117, 118, -1, 120, -1, 66, -1, 68, + 69, 70, 71, 128, -1, -1, 75, -1, -1, -1, + 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, + 145, -1, 147, -1, -1, 94, 95, 96, 97, -1, + -1, -1, -1, -1, 103, 104, 50, -1, 107, 108, + -1, -1, -1, 112, 58, -1, -1, -1, 117, 118, + 50, 120, -1, -1, 68, 69, 70, -1, 58, -1, -1, -1, -1, -1, -1, 79, -1, -1, 68, 69, - 70, 85, 86, -1, -1, -1, 143, -1, -1, 79, - 50, 95, -1, -1, -1, 85, -1, 101, 58, -1, - -1, -1, 106, -1, -1, 95, -1, -1, 68, 69, - 70, 101, 116, -1, 118, -1, 106, -1, -1, 79, - -1, -1, -1, -1, -1, 85, 116, -1, 118, -1, - -1, -1, -1, -1, -1, 95, -1, -1, -1, 143, - -1, 101, -1, 133, -1, -1, 106, -1, -1, -1, - -1, -1, -1, 143, -1, -1, 116, -1, 118, -1, + 70, -1, 50, 87, 88, -1, 145, -1, -1, 79, + 58, -1, -1, 97, -1, -1, -1, 87, -1, 103, + 68, 69, 70, -1, 108, -1, -1, 97, -1, -1, + -1, 79, -1, 103, 118, -1, 120, -1, 108, 87, + -1, -1, -1, -1, -1, -1, -1, -1, 118, 97, + 120, -1, -1, -1, -1, 103, -1, -1, 50, 107, + 108, 145, -1, -1, -1, 135, 58, -1, -1, -1, + 118, -1, 120, -1, -1, 145, 68, 69, 70, -1, + -1, -1, -1, -1, -1, -1, -1, 79, -1, -1, + -1, -1, -1, -1, -1, 87, -1, 145, -1, -1, + -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, + -1, 103, -1, -1, -1, -1, 108, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 118, -1, 120, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 143 + -1, -1, -1, 145 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { - 0, 121, 122, 123, 149, 150, 256, 3, 4, 5, + 0, 123, 124, 125, 151, 152, 258, 3, 4, 5, 6, 8, 9, 10, 11, 47, 51, 53, 54, 55, - 59, 63, 64, 72, 73, 74, 80, 81, 87, 89, - 91, 96, 98, 99, 100, 103, 108, 111, 114, 119, - 132, 135, 136, 137, 140, 142, 143, 147, 246, 247, - 255, 11, 48, 51, 53, 54, 55, 56, 57, 60, - 63, 67, 74, 80, 81, 98, 99, 104, 112, 113, - 114, 117, 119, 210, 214, 215, 217, 223, 224, 228, - 229, 234, 235, 236, 237, 0, 49, 50, 58, 66, - 68, 69, 70, 71, 75, 79, 82, 83, 84, 85, - 86, 92, 93, 94, 95, 101, 102, 105, 106, 110, - 115, 116, 118, 126, 143, 153, 155, 156, 158, 161, - 162, 184, 230, 233, 256, 142, 142, 142, 142, 142, - 142, 133, 142, 133, 142, 142, 142, 11, 48, 60, - 112, 212, 228, 229, 234, 133, 142, 142, 142, 133, - 142, 142, 142, 246, 246, 246, 246, 246, 11, 51, - 53, 54, 55, 63, 74, 80, 81, 98, 99, 114, - 119, 214, 244, 246, 10, 11, 73, 74, 91, 92, - 94, 99, 128, 132, 250, 251, 253, 256, 246, 15, - 16, 17, 18, 19, 20, 21, 22, 32, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 141, - 142, 143, 6, 8, 210, 142, 56, 104, 63, 81, - 235, 235, 235, 253, 235, 12, 16, 57, 118, 132, - 137, 142, 208, 209, 256, 124, 10, 11, 91, 127, - 254, 10, 11, 91, 124, 253, 254, 79, 158, 158, - 158, 6, 158, 158, 127, 157, 86, 158, 142, 142, - 142, 158, 124, 253, 127, 127, 127, 158, 158, 142, - 158, 161, 185, 158, 158, 167, 86, 253, 158, 158, - 143, 10, 11, 48, 57, 60, 90, 112, 124, 140, - 172, 175, 211, 213, 215, 217, 223, 228, 229, 234, - 243, 244, 256, 214, 243, 243, 243, 243, 214, 243, - 214, 243, 243, 243, 142, 253, 142, 253, 253, 214, - 243, 243, 214, 214, 214, 246, 243, 243, 144, 125, - 144, 253, 146, 125, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 144, 244, 246, 209, 246, - 137, 12, 16, 57, 118, 132, 137, 208, 256, 208, - 209, 208, 209, 208, 208, 14, 16, 57, 95, 132, - 137, 194, 195, 204, 210, 256, 143, 226, 227, 256, - 11, 225, 235, 127, 216, 218, 158, 155, 124, 253, - 253, 253, 253, 150, 124, 246, 133, 10, 11, 57, - 175, 211, 213, 253, 126, 128, 159, 160, 253, 142, - 142, 10, 11, 213, 142, 57, 210, 253, 154, 253, - 124, 126, 127, 128, 200, 124, 126, 128, 201, 126, - 163, 253, 254, 253, 144, 144, 144, 144, 144, 144, - 134, 144, 134, 144, 144, 144, 246, 243, 134, 144, - 144, 144, 134, 144, 144, 144, 144, 246, 246, 57, - 142, 181, 256, 250, 127, 144, 146, 144, 208, 137, - 208, 208, 208, 208, 208, 143, 208, 95, 210, 204, - 208, 208, 144, 14, 125, 12, 16, 57, 118, 132, - 137, 142, 207, 254, 256, 242, 246, 256, 253, 145, - 225, 150, 73, 219, 256, 150, 124, 125, 125, 125, - 145, 231, 125, 144, 10, 11, 56, 57, 112, 186, - 187, 188, 189, 234, 256, 142, 213, 201, 168, 126, - 214, 146, 125, 142, 173, 12, 137, 174, 164, 246, - 210, 12, 16, 57, 118, 132, 137, 206, 254, 256, - 150, 142, 238, 239, 151, 152, 253, 61, 62, 238, - 61, 62, 124, 246, 12, 16, 57, 90, 118, 132, - 137, 142, 165, 190, 192, 254, 127, 142, 142, 144, - 144, 142, 142, 194, 32, 73, 85, 88, 91, 107, - 193, 256, 246, 208, 242, 144, 210, 207, 144, 144, - 181, 14, 204, 137, 207, 207, 207, 207, 207, 207, - 128, 143, 199, 256, 146, 125, 128, 145, 127, 220, - 221, 256, 145, 232, 10, 10, 10, 150, 255, 126, - 253, 189, 253, 134, 125, 207, 169, 170, 192, 126, - 146, 159, 3, 4, 5, 9, 10, 14, 47, 59, - 64, 72, 73, 87, 89, 91, 96, 100, 103, 108, - 111, 132, 135, 136, 140, 142, 147, 196, 197, 204, - 205, 248, 249, 255, 256, 194, 137, 190, 194, 166, - 192, 144, 206, 137, 206, 206, 206, 206, 206, 142, - 143, 145, 176, 145, 240, 256, 124, 125, 124, 142, - 126, 126, 145, 126, 126, 124, 202, 203, 246, 256, - 126, 137, 190, 190, 6, 15, 16, 17, 18, 19, - 20, 21, 22, 32, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 62, 87, 125, 128, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 142, 143, 147, 182, 190, 190, 190, 190, 127, - 142, 143, 193, 128, 199, 201, 225, 244, 244, 244, - 244, 144, 57, 212, 142, 124, 146, 142, 207, 199, - 142, 142, 193, 207, 144, 246, 242, 246, 92, 93, - 94, 112, 116, 222, 229, 252, 253, 124, 125, 150, - 125, 144, 125, 125, 145, 144, 128, 207, 128, 161, - 183, 184, 188, 128, 198, 256, 171, 192, 199, 201, - 158, 142, 133, 133, 212, 133, 142, 133, 142, 246, - 246, 246, 246, 214, 244, 246, 144, 14, 125, 15, - 16, 17, 18, 19, 20, 21, 22, 32, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 141, - 142, 143, 144, 190, 144, 144, 199, 201, 142, 206, - 179, 242, 194, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 67, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 85, 86, 87, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 146, 147, 241, 238, 152, - 243, 243, 202, 145, 125, 190, 10, 144, 146, 144, - 4, 191, 242, 246, 125, 144, 144, 144, 144, 181, - 212, 209, 144, 253, 238, 194, 199, 194, 194, 142, - 146, 125, 116, 252, 116, 252, 116, 252, 253, 92, - 93, 94, 253, 150, 222, 145, 10, 126, 10, 10, - 126, 214, 198, 214, 47, 59, 64, 96, 100, 103, - 132, 135, 136, 137, 140, 142, 147, 245, 247, 199, - 201, 125, 214, 214, 214, 142, 214, 214, 214, 214, - 246, 144, 144, 14, 205, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 144, 244, 246, 181, - 144, 142, 181, 125, 180, 194, 146, 144, 240, 145, - 145, 144, 145, 124, 246, 196, 146, 165, 193, 209, - 144, 145, 144, 144, 144, 194, 252, 252, 252, 252, - 252, 252, 145, 144, 125, 144, 144, 142, 133, 133, - 133, 142, 133, 245, 245, 245, 245, 245, 214, 244, - 245, 15, 16, 17, 18, 19, 20, 21, 22, 32, - 129, 130, 131, 132, 135, 136, 137, 138, 139, 141, - 142, 143, 125, 170, 144, 134, 134, 243, 134, 144, - 134, 144, 144, 246, 127, 144, 146, 142, 177, 166, - 194, 144, 181, 145, 202, 144, 124, 181, 181, 181, - 144, 126, 10, 126, 126, 214, 214, 214, 214, 214, - 214, 144, 144, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 144, 244, 246, 171, 142, 142, 144, 142, - 142, 246, 178, 194, 144, 181, 145, 181, 238, 193, - 193, 193, 181, 125, 144, 134, 134, 134, 144, 134, - 245, 127, 144, 146, 244, 244, 244, 244, 194, 144, - 181, 145, 10, 142, 142, 142, 142, 245, 144, 144, - 144, 144, 144, 181, 144, 244, 244, 244, 244, 181, - 193, 126, 144, 144, 144, 144, 193 + 59, 63, 64, 72, 73, 74, 80, 81, 89, 91, + 93, 98, 100, 101, 102, 105, 110, 113, 116, 121, + 134, 137, 138, 139, 142, 144, 145, 149, 248, 249, + 257, 11, 48, 51, 53, 54, 55, 56, 57, 60, + 63, 67, 74, 80, 81, 100, 101, 106, 114, 115, + 116, 119, 121, 212, 216, 217, 219, 225, 226, 230, + 231, 236, 237, 238, 239, 0, 49, 50, 58, 66, + 68, 69, 70, 71, 75, 79, 83, 84, 85, 86, + 87, 88, 94, 95, 96, 97, 103, 104, 107, 108, + 112, 117, 118, 120, 128, 145, 155, 157, 158, 160, + 163, 164, 186, 232, 235, 258, 144, 144, 144, 144, + 144, 144, 135, 144, 135, 144, 144, 144, 11, 48, + 60, 114, 214, 230, 231, 236, 135, 144, 144, 144, + 135, 144, 144, 144, 248, 248, 248, 248, 248, 11, + 51, 53, 54, 55, 63, 74, 80, 81, 100, 101, + 116, 121, 216, 246, 248, 10, 11, 73, 74, 93, + 94, 96, 101, 103, 130, 134, 252, 253, 255, 258, + 248, 15, 16, 17, 18, 19, 20, 21, 22, 32, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 143, 144, 145, 6, 8, 212, 144, 56, 106, + 63, 81, 237, 237, 237, 255, 237, 12, 16, 57, + 120, 134, 139, 144, 210, 211, 258, 126, 10, 11, + 93, 129, 256, 10, 11, 93, 126, 255, 256, 79, + 160, 160, 160, 6, 160, 160, 129, 159, 88, 160, + 144, 144, 144, 144, 160, 126, 255, 129, 129, 129, + 160, 160, 144, 160, 163, 187, 160, 160, 169, 88, + 255, 160, 160, 145, 10, 11, 48, 57, 60, 92, + 114, 126, 142, 174, 177, 213, 215, 217, 219, 225, + 230, 231, 236, 245, 246, 258, 216, 245, 245, 245, + 245, 216, 245, 216, 245, 245, 245, 144, 255, 144, + 255, 255, 216, 245, 245, 216, 216, 216, 248, 245, + 245, 146, 127, 146, 255, 148, 127, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 146, 246, + 248, 211, 248, 139, 12, 16, 57, 120, 134, 139, + 210, 258, 210, 211, 210, 211, 210, 210, 14, 16, + 57, 97, 134, 139, 196, 197, 206, 212, 258, 145, + 228, 229, 258, 11, 227, 237, 129, 218, 220, 160, + 157, 126, 255, 255, 255, 255, 255, 152, 126, 248, + 135, 10, 11, 57, 177, 213, 215, 255, 128, 130, + 161, 162, 255, 144, 144, 10, 11, 215, 144, 57, + 212, 255, 156, 255, 126, 128, 129, 130, 202, 126, + 128, 130, 203, 128, 165, 255, 256, 255, 146, 146, + 146, 146, 146, 146, 136, 146, 136, 146, 146, 146, + 248, 245, 136, 146, 146, 146, 136, 146, 146, 146, + 146, 248, 248, 57, 144, 183, 258, 252, 129, 146, + 148, 146, 210, 139, 210, 210, 210, 210, 210, 145, + 210, 97, 212, 206, 210, 210, 146, 14, 127, 12, + 16, 57, 120, 134, 139, 144, 209, 256, 258, 244, + 248, 258, 255, 147, 227, 152, 73, 221, 258, 152, + 126, 127, 127, 127, 127, 147, 233, 127, 146, 10, + 11, 56, 57, 114, 188, 189, 190, 191, 236, 258, + 144, 215, 203, 170, 128, 216, 148, 127, 144, 175, + 12, 139, 176, 166, 248, 212, 12, 16, 57, 120, + 134, 139, 208, 256, 258, 152, 144, 240, 241, 153, + 154, 255, 61, 62, 240, 61, 62, 126, 248, 12, + 16, 57, 92, 120, 134, 139, 144, 167, 192, 194, + 256, 129, 144, 144, 146, 146, 144, 144, 196, 32, + 73, 87, 90, 93, 109, 195, 258, 248, 210, 244, + 146, 212, 209, 146, 146, 183, 14, 206, 139, 209, + 209, 209, 209, 209, 209, 130, 145, 201, 258, 148, + 127, 130, 147, 129, 222, 223, 258, 147, 234, 10, + 10, 10, 10, 152, 257, 128, 255, 191, 255, 136, + 127, 209, 171, 172, 194, 128, 148, 161, 3, 4, + 5, 9, 10, 14, 47, 59, 64, 72, 73, 89, + 91, 93, 98, 102, 105, 110, 113, 134, 137, 138, + 142, 144, 149, 198, 199, 206, 207, 250, 251, 257, + 258, 196, 139, 192, 196, 168, 194, 146, 208, 139, + 208, 208, 208, 208, 208, 144, 145, 147, 178, 147, + 242, 258, 126, 127, 126, 144, 128, 128, 147, 128, + 128, 126, 204, 205, 248, 258, 128, 139, 192, 192, + 6, 15, 16, 17, 18, 19, 20, 21, 22, 32, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 62, 89, 127, 130, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 144, 145, 149, + 184, 192, 192, 192, 192, 129, 144, 145, 195, 130, + 201, 203, 227, 246, 246, 246, 246, 146, 57, 214, + 144, 126, 148, 144, 209, 201, 144, 144, 195, 209, + 146, 248, 244, 248, 94, 95, 96, 114, 118, 224, + 231, 254, 255, 126, 127, 152, 127, 146, 127, 127, + 127, 147, 146, 130, 209, 130, 163, 185, 186, 190, + 130, 200, 258, 173, 194, 201, 203, 160, 144, 135, + 135, 214, 135, 144, 135, 144, 248, 248, 248, 248, + 216, 246, 248, 146, 14, 127, 15, 16, 17, 18, + 19, 20, 21, 22, 32, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 143, 144, 145, 146, + 192, 146, 146, 201, 203, 144, 208, 181, 244, 196, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 67, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 87, 88, 89, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 148, 149, 243, 240, 154, 245, 245, 204, + 147, 127, 192, 10, 146, 148, 146, 4, 193, 244, + 248, 127, 146, 146, 146, 146, 183, 214, 211, 146, + 255, 240, 196, 201, 196, 196, 144, 148, 127, 118, + 254, 118, 254, 118, 254, 255, 94, 95, 96, 255, + 152, 224, 147, 10, 128, 10, 10, 10, 128, 216, + 200, 216, 47, 59, 64, 98, 102, 105, 134, 137, + 138, 139, 142, 144, 149, 247, 249, 201, 203, 127, + 216, 216, 216, 144, 216, 216, 216, 216, 248, 146, + 146, 14, 207, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 146, 246, 248, 183, 146, 144, + 183, 127, 182, 196, 148, 146, 242, 147, 147, 146, + 147, 126, 248, 198, 148, 167, 195, 211, 146, 147, + 146, 146, 146, 196, 254, 254, 254, 254, 254, 254, + 147, 127, 146, 127, 146, 146, 127, 146, 144, 135, + 135, 135, 144, 135, 247, 247, 247, 247, 247, 216, + 246, 247, 15, 16, 17, 18, 19, 20, 21, 22, + 32, 131, 132, 133, 134, 137, 138, 139, 140, 141, + 143, 144, 145, 127, 172, 146, 136, 136, 245, 136, + 146, 136, 146, 146, 248, 129, 146, 148, 144, 179, + 168, 196, 146, 183, 147, 204, 146, 126, 183, 183, + 183, 146, 10, 128, 10, 128, 128, 10, 128, 216, + 216, 216, 216, 216, 216, 146, 146, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 146, 246, 248, 173, + 144, 144, 146, 144, 144, 248, 180, 196, 146, 183, + 147, 183, 240, 195, 195, 195, 183, 146, 127, 127, + 146, 146, 136, 136, 136, 146, 136, 247, 129, 146, + 148, 246, 246, 246, 246, 196, 146, 183, 147, 128, + 10, 10, 128, 144, 144, 144, 144, 247, 146, 146, + 146, 146, 146, 183, 146, 146, 246, 246, 246, 246, + 183, 195, 128, 128, 146, 146, 146, 146, 195 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 148, 149, 149, 149, 150, 150, 150, 151, 151, - 152, 152, 154, 153, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 157, 156, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 159, 159, 160, 160, 161, 161, 161, 161, 163, - 162, 164, 162, 165, 165, 166, 166, 168, 167, 169, - 167, 167, 170, 170, 171, 171, 173, 172, 174, 172, - 176, 175, 177, 175, 178, 175, 179, 175, 180, 175, - 175, 181, 181, 181, 181, 181, 181, 181, 181, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 183, 183, - 185, 184, 184, 186, 186, 187, 187, 188, 188, 188, - 188, 188, 188, 189, 189, 189, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 191, 190, 192, - 192, 193, 193, 193, 194, 194, 194, 194, 194, 195, - 195, 196, 196, 196, 196, 196, 197, 197, 198, 198, - 199, 199, 200, 200, 200, 200, 200, 201, 201, 201, - 201, 201, 201, 202, 202, 202, 203, 203, 203, 203, - 204, 204, 204, 204, 205, 205, 206, 206, 206, 206, - 206, 206, 206, 206, 206, 207, 207, 207, 207, 207, - 207, 207, 207, 207, 207, 207, 208, 208, 208, 208, - 208, 208, 208, 208, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 210, 210, 210, 210, - 210, 210, 210, 210, 210, 210, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 212, 212, 212, - 212, 212, 212, 212, 213, 213, 214, 214, 216, 215, - 218, 217, 219, 219, 220, 220, 221, 221, 222, 222, - 222, 222, 222, 222, 222, 222, 222, 222, 223, 224, - 224, 224, 224, 225, 225, 226, 226, 226, 227, 227, - 227, 228, 228, 228, 229, 229, 229, 231, 230, 232, - 230, 230, 230, 233, 233, 233, 234, 234, 234, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 236, 236, 236, 237, 239, 238, 240, - 240, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 242, 242, 243, 243, 244, - 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, + 0, 150, 151, 151, 151, 152, 152, 152, 153, 153, + 154, 154, 156, 155, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 157, 157, 157, 157, 159, 158, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 161, 161, 162, 162, 163, + 163, 163, 163, 165, 164, 166, 164, 167, 167, 168, + 168, 170, 169, 171, 169, 169, 172, 172, 173, 173, + 175, 174, 176, 174, 178, 177, 179, 177, 180, 177, + 181, 177, 182, 177, 177, 183, 183, 183, 183, 183, + 183, 183, 183, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 185, 185, 187, 186, 186, 188, 188, 189, + 189, 190, 190, 190, 190, 190, 190, 191, 191, 191, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 193, 192, 194, 194, 195, 195, 195, 196, 196, + 196, 196, 196, 197, 197, 198, 198, 198, 198, 198, + 199, 199, 200, 200, 201, 201, 202, 202, 202, 202, + 202, 203, 203, 203, 203, 203, 203, 204, 204, 204, + 205, 205, 205, 205, 206, 206, 206, 206, 207, 207, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 209, + 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, + 210, 210, 210, 210, 210, 210, 210, 210, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 214, 214, 214, 214, 214, 214, 214, 215, 215, + 216, 216, 218, 217, 220, 219, 221, 221, 222, 222, + 223, 223, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 225, 226, 226, 226, 226, 227, 227, 228, + 228, 228, 229, 229, 229, 230, 230, 230, 231, 231, + 231, 233, 232, 234, 232, 232, 232, 235, 235, 235, + 236, 236, 236, 237, 237, 237, 237, 237, 237, 237, + 237, 237, 237, 237, 237, 237, 237, 238, 238, 238, + 239, 241, 240, 242, 242, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, + 244, 245, 245, 246, 246, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, - 250, 250, 250, 251, 251, 251, 251, 252, 252, 252, - 253, 253, 253, 253, 253, 253, 253, 253, 254, 254, - 254, 255, 255, 255, 255, 256 + 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, + 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, + 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, + 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, + 250, 250, 250, 251, 251, 251, 251, 251, 251, 251, + 251, 251, 251, 251, 252, 252, 252, 253, 253, 253, + 253, 254, 254, 254, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 256, 256, 256, 257, 257, 257, 257, + 258 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -2649,41 +2707,41 @@ static const yytype_uint8 yyr2[] = { 0, 2, 2, 2, 2, 1, 2, 2, 1, 3, 4, 4, 0, 5, 1, 1, 1, 1, 1, 1, - 2, 1, 1, 2, 2, 2, 2, 7, 9, 9, - 13, 9, 7, 5, 0, 3, 1, 2, 3, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 6, 1, 3, 1, 4, 1, 3, 3, 3, 0, - 4, 0, 5, 2, 4, 2, 4, 0, 4, 0, - 5, 3, 2, 4, 2, 4, 0, 6, 0, 6, - 0, 7, 0, 11, 0, 12, 0, 8, 0, 9, - 1, 1, 1, 2, 2, 2, 2, 4, 5, 1, + 2, 1, 1, 2, 2, 2, 2, 7, 9, 11, + 9, 11, 13, 9, 13, 9, 7, 5, 0, 3, + 1, 2, 3, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 6, 1, 3, 1, 4, 1, + 3, 3, 3, 0, 4, 0, 5, 2, 4, 2, + 4, 0, 4, 0, 5, 3, 2, 4, 2, 4, + 0, 6, 0, 6, 0, 7, 0, 11, 0, 12, + 0, 8, 0, 9, 1, 1, 1, 2, 2, 2, + 2, 4, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 1, 1, 1, 1, 0, 6, 2, 1, 1, 1, + 3, 2, 4, 2, 4, 3, 4, 1, 1, 1, + 1, 2, 3, 2, 2, 2, 2, 2, 3, 4, + 3, 0, 6, 2, 3, 1, 3, 4, 1, 1, + 1, 3, 2, 1, 3, 1, 1, 1, 3, 2, + 1, 3, 1, 2, 1, 2, 1, 3, 5, 3, + 3, 1, 3, 3, 3, 3, 4, 1, 1, 2, + 1, 3, 3, 5, 3, 4, 5, 2, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 3, 4, 1, + 1, 2, 2, 2, 2, 2, 3, 4, 7, 3, + 1, 2, 2, 2, 2, 2, 3, 4, 1, 2, + 2, 2, 2, 2, 3, 4, 5, 9, 9, 9, + 1, 1, 2, 1, 1, 1, 2, 4, 4, 1, + 1, 1, 2, 1, 1, 1, 2, 4, 2, 4, + 1, 1, 1, 2, 2, 2, 4, 1, 1, 1, + 2, 3, 0, 5, 0, 8, 1, 1, 1, 1, + 2, 3, 1, 2, 2, 2, 3, 3, 3, 3, + 3, 3, 4, 3, 1, 4, 2, 1, 1, 1, + 3, 5, 1, 2, 4, 1, 2, 2, 1, 1, + 1, 0, 6, 0, 7, 4, 5, 3, 5, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, - 0, 6, 2, 1, 1, 1, 3, 2, 4, 2, - 4, 3, 4, 1, 1, 1, 1, 2, 3, 2, - 2, 2, 2, 2, 3, 4, 3, 0, 6, 2, - 3, 1, 3, 4, 1, 1, 1, 3, 2, 1, - 3, 1, 1, 1, 3, 2, 1, 3, 1, 2, - 1, 2, 1, 3, 5, 3, 3, 1, 3, 3, - 3, 3, 4, 1, 1, 2, 1, 3, 3, 5, - 3, 4, 5, 2, 1, 1, 1, 1, 2, 2, - 2, 2, 2, 3, 4, 1, 1, 2, 2, 2, - 2, 2, 3, 4, 7, 3, 1, 2, 2, 2, - 2, 2, 3, 4, 1, 2, 2, 2, 2, 2, - 3, 4, 5, 9, 9, 9, 1, 1, 2, 1, - 1, 1, 2, 4, 4, 1, 1, 1, 2, 1, - 1, 1, 2, 4, 2, 4, 1, 1, 1, 2, - 2, 2, 4, 1, 1, 1, 2, 3, 0, 5, - 0, 8, 1, 1, 1, 1, 2, 3, 1, 2, - 2, 2, 3, 3, 3, 3, 3, 3, 4, 3, - 1, 4, 2, 1, 1, 1, 3, 5, 1, 2, - 4, 1, 2, 2, 1, 1, 1, 0, 6, 0, - 7, 4, 5, 3, 5, 4, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 2, 2, 2, 1, 1, 2, 1, 0, 2, 1, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, + 1, 0, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -2695,26 +2753,27 @@ 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, 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, 2, - 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, + 1, 1, 1, 1, 3, 1, 4, 7, 7, 7, + 7, 4, 4, 2, 2, 2, 2, 2, 2, 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, 2, - 5, 4, 4, 2, 2, 2, 2, 2, 2, 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, 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, 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, 1, 4, 7, - 7, 7, 7, 4, 4, 2, 5, 4, 4, 2, - 2, 2, 2, 2, 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, 1, 4, 7, 7, 7, 7, 4, 4, 2, + 5, 4, 4, 2, 2, 2, 2, 2, 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, - 1, 1, 3, 1, 1, 2, 1, 1, 2, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 0 + 3, 3, 3, 3, 3, 3, 5, 4, 4, 3, + 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 1, 1, 2, + 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 0 }; @@ -3490,56 +3549,56 @@ yyreduce: switch (yyn) { case 3: -#line 424 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 426 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_expr = (yyvsp[0].u.expr); } -#line 3498 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3557 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 4: -#line 428 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 430 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_type = (yyvsp[0].u.type); } -#line 3506 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3565 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 10: -#line 446 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 448 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { delete (yyvsp[-1].u.expr); } -#line 3514 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3573 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 11: -#line 450 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 452 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { delete (yyvsp[-1].u.expr); } -#line 3522 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3581 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 12: -#line 462 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 464 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { push_storage_class((current_storage_class & ~CPPInstance::SC_c_binding) | ((yyvsp[-1].u.integer) & CPPInstance::SC_c_binding)); } -#line 3531 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3590 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 13: -#line 467 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 469 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_storage_class(); } -#line 3539 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3598 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 21: -#line 481 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 483 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if (publish_nest_level != 0) { yyerror("Unclosed __begin_publish", publish_loc); @@ -3552,11 +3611,11 @@ yyreduce: publish_nest_level++; current_scope->set_current_vis(V_published); } -#line 3556 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3615 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 22: -#line 494 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 496 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if (publish_nest_level != 1) { yyerror("Unmatched __end_publish", (yylsp[0])); @@ -3565,19 +3624,19 @@ yyreduce: } publish_nest_level = 0; } -#line 3569 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3628 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 23: -#line 503 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 505 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_scope->set_current_vis(V_published); } -#line 3577 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3636 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 24: -#line 507 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 509 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if (publish_nest_level > 0) { current_scope->set_current_vis(V_published); @@ -3585,27 +3644,27 @@ yyreduce: current_scope->set_current_vis(V_public); } } -#line 3589 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3648 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 25: -#line 515 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 517 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_scope->set_current_vis(V_protected); } -#line 3597 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3656 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 26: -#line 519 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 521 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_scope->set_current_vis(V_private); } -#line 3605 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3664 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 27: -#line 523 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 525 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPDeclaration *getter = (yyvsp[-2].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); @@ -3616,11 +3675,11 @@ yyreduce: CPPMakeProperty *make_property = new CPPMakeProperty((yyvsp[-4].u.identifier), getter->as_function_group(), NULL, current_scope, (yylsp[-6]).file); current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-6])); } -#line 3620 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3679 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 28: -#line 534 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 536 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPDeclaration *getter = (yyvsp[-4].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (getter == (CPPDeclaration *)NULL || getter->get_subtype() != CPPDeclaration::ST_function_group) { @@ -3641,11 +3700,139 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-8])); } } -#line 3645 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3704 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 29: -#line 555 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 557 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + CPPDeclaration *getter = (yyvsp[-6].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + if (getter == (CPPDeclaration *)NULL || 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])); + + } else { + CPPDeclaration *setter = (yyvsp[-4].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + CPPFunctionGroup *setter_func = NULL; + + if (setter == (CPPDeclaration *)NULL || setter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("Reference to non-existent or invalid setter: " + (yyvsp[-4].u.identifier)->get_fully_scoped_name(), (yylsp[-4])); + } else { + setter_func = setter->as_function_group(); + } + + CPPDeclaration *deleter = (yyvsp[-2].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + if (deleter == (CPPDeclaration *)NULL || deleter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("reference to non-existent or invalid delete method: " + (yyvsp[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-2])); + deleter = NULL; + } + + CPPMakeProperty *make_property = new CPPMakeProperty((yyvsp[-8].u.identifier), getter->as_function_group(), + setter_func, current_scope, (yylsp[-10]).file); + if (deleter) { + make_property->_del_function = deleter->as_function_group(); + } + current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-10])); + } +} +#line 3738 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 30: +#line 587 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + CPPDeclaration *length_getter = (yyvsp[-4].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + if (length_getter == (CPPDeclaration *)NULL || 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])); + length_getter = NULL; + } + + CPPDeclaration *getter = (yyvsp[-2].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + if (getter == (CPPDeclaration *)NULL || 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])); + } + + CPPMakeProperty *make_property = new CPPMakeProperty((yyvsp[-6].u.identifier), getter->as_function_group(), NULL, current_scope, (yylsp[-8]).file); + make_property->_length_function = length_getter->as_function_group(); + current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-8])); +} +#line 3759 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 31: +#line 604 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + CPPDeclaration *length_getter = (yyvsp[-6].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + if (length_getter == (CPPDeclaration *)NULL || 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])); + length_getter = NULL; + } + + CPPDeclaration *getter = (yyvsp[-4].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + if (getter == (CPPDeclaration *)NULL || getter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("Reference to non-existent or invalid getter: " + (yyvsp[-4].u.identifier)->get_fully_scoped_name(), (yylsp[-4])); + + } else { + CPPDeclaration *setter = (yyvsp[-2].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + CPPFunctionGroup *setter_func = NULL; + + if (setter == (CPPDeclaration *)NULL || setter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("Reference to non-existent or invalid setter: " + (yyvsp[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-2])); + } else { + setter_func = setter->as_function_group(); + } + + CPPMakeProperty *make_property = new CPPMakeProperty((yyvsp[-8].u.identifier), getter->as_function_group(), + setter_func, current_scope, (yylsp[-10]).file); + make_property->_length_function = length_getter->as_function_group(); + current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-10])); + } +} +#line 3791 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 32: +#line 632 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + CPPDeclaration *length_getter = (yyvsp[-8].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + if (length_getter == (CPPDeclaration *)NULL || 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])); + length_getter = NULL; + } + + CPPDeclaration *getter = (yyvsp[-6].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + if (getter == (CPPDeclaration *)NULL || 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])); + + } else { + CPPDeclaration *setter = (yyvsp[-4].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + CPPFunctionGroup *setter_func = NULL; + + if (setter == (CPPDeclaration *)NULL || setter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("Reference to non-existent or invalid setter: " + (yyvsp[-4].u.identifier)->get_fully_scoped_name(), (yylsp[-4])); + } else { + setter_func = setter->as_function_group(); + } + + CPPDeclaration *deleter = (yyvsp[-2].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + if (deleter == (CPPDeclaration *)NULL || deleter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("reference to non-existent or invalid delete method: " + (yyvsp[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-2])); + deleter = NULL; + } + + CPPMakeProperty *make_property = new CPPMakeProperty((yyvsp[-10].u.identifier), getter->as_function_group(), + setter_func, current_scope, (yylsp[-12]).file); + make_property->_length_function = length_getter->as_function_group(); + if (deleter) { + make_property->_del_function = deleter->as_function_group(); + } + current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-12])); + } +} +#line 3832 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 33: +#line 669 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPDeclaration *hasser = (yyvsp[-4].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (hasser == (CPPDeclaration *)NULL || hasser->get_subtype() != CPPDeclaration::ST_function_group) { @@ -3667,11 +3854,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-8])); } } -#line 3671 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3858 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 30: -#line 577 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 34: +#line 691 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPDeclaration *hasser = (yyvsp[-8].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (hasser == (CPPDeclaration *)NULL || hasser->get_subtype() != CPPDeclaration::ST_function_group) { @@ -3704,11 +3891,11 @@ yyreduce: current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[-12])); } } -#line 3708 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3895 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 31: -#line 610 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 35: +#line 724 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPDeclaration *length_getter = (yyvsp[-4].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (length_getter == (CPPDeclaration *)NULL || length_getter->get_subtype() != CPPDeclaration::ST_function_group) { @@ -3730,11 +3917,11 @@ yyreduce: current_scope->add_declaration(make_seq, global_scope, current_lexer, (yylsp[-8])); } } -#line 3734 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3921 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 32: -#line 632 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 36: +#line 746 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPExpression::Result result = (yyvsp[-4].u.expr)->evaluate(); if (result._type == CPPExpression::RT_error) { @@ -3745,11 +3932,11 @@ yyreduce: yywarning("static_assert failed: " + str.str(), (yylsp[-4])); } } -#line 3749 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3936 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 33: -#line 643 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 37: +#line 757 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // This alternative version of static_assert was introduced in C++17. CPPExpression::Result result = (yyvsp[-2].u.expr)->evaluate(); @@ -3759,46 +3946,46 @@ yyreduce: yywarning("static_assert failed", (yylsp[-2])); } } -#line 3763 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3950 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 34: -#line 656 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 38: +#line 770 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPScope *new_scope = new CPPScope(current_scope, CPPNameComponent("temp"), V_public); push_scope(new_scope); } -#line 3773 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3960 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 35: -#line 662 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 39: +#line 776 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { delete current_scope; pop_scope(); } -#line 3782 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3969 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 36: -#line 671 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 40: +#line 785 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.integer) = 0; } -#line 3790 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3977 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 37: -#line 675 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 41: +#line 789 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_extern; } -#line 3798 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 3985 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 38: -#line 679 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 42: +#line 793 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_extern; if ((yyvsp[-1].str) == "C") { @@ -3809,116 +3996,116 @@ yyreduce: yywarning("Ignoring unknown linkage type \"" + (yyvsp[-1].str) + "\"", (yylsp[-1])); } } -#line 3813 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 39: -#line 690 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_static; -} -#line 3821 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 40: -#line 694 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_inline; -} -#line 3829 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 41: -#line 698 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_virtual; -} -#line 3837 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 42: -#line 702 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_explicit; -} -#line 3845 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4000 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 43: -#line 706 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 804 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_register; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_static; } -#line 3853 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4008 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 44: -#line 710 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 808 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_volatile; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_inline; } -#line 3861 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4016 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 45: -#line 714 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 812 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_mutable; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_virtual; } -#line 3869 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4024 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 46: -#line 718 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 816 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_constexpr; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_explicit; } -#line 3877 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4032 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 47: -#line 722 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 820 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_blocking; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_register; } -#line 3885 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4040 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 48: -#line 726 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 824 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_extension; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_volatile; } -#line 3893 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4048 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 49: -#line 730 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 828 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_thread_local; + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_mutable; } -#line 3901 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4056 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 50: -#line 734 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 832 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_constexpr; +} +#line 4064 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 51: +#line 836 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_blocking; +} +#line 4072 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 52: +#line 840 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_extension; +} +#line 4080 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 53: +#line 844 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.integer) = (yyvsp[0].u.integer) | (int)CPPInstance::SC_thread_local; +} +#line 4088 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 54: +#line 848 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // Ignore attribute specifiers for now. (yyval.u.integer) = (yyvsp[0].u.integer); } -#line 3910 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4097 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 55: -#line 752 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 59: +#line 866 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { /* multiple_var_declaration adds itself to the scope. */ } -#line 3918 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4105 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 56: -#line 756 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 60: +#line 870 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // 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 @@ -3927,11 +4114,11 @@ yyreduce: current_scope->add_declaration((yyvsp[-1].u.decl), global_scope, current_lexer, (yylsp[-1])); } -#line 3931 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4118 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 57: -#line 765 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 61: +#line 879 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if ((yyvsp[-1].u.instance) != (CPPInstance *)NULL) { (yyvsp[-1].u.instance)->_storage_class |= (current_storage_class | (yyvsp[-2].u.integer)); @@ -3939,11 +4126,11 @@ yyreduce: (yyvsp[-1].u.instance)->set_initializer((yyvsp[0].u.expr)); } } -#line 3943 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4130 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 58: -#line 773 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 62: +#line 887 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if ((yyvsp[-1].u.instance) != (CPPInstance *)NULL) { (yyvsp[-1].u.instance)->_storage_class |= (current_storage_class | (yyvsp[-2].u.integer)); @@ -3951,11 +4138,11 @@ yyreduce: (yyvsp[-1].u.instance)->set_initializer((yyvsp[0].u.expr)); } } -#line 3955 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4142 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 59: -#line 784 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 63: +#line 898 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. @@ -3966,19 +4153,19 @@ yyreduce: } push_storage_class((yyvsp[-1].u.integer)); } -#line 3970 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4157 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 60: -#line 795 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 64: +#line 909 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_storage_class(); } -#line 3978 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4165 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 61: -#line 799 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 65: +#line 913 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. @@ -3989,19 +4176,19 @@ yyreduce: } push_storage_class((yyvsp[-2].u.integer)); } -#line 3993 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4180 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 62: -#line 810 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 66: +#line 924 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_storage_class(); } -#line 4001 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4188 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 63: -#line 821 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 67: +#line 935 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-1].u.inst_ident), current_storage_class, @@ -4009,11 +4196,11 @@ yyreduce: inst->set_initializer((yyvsp[0].u.expr)); current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-1])); } -#line 4013 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4200 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 64: -#line 829 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 68: +#line 943 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-3].u.inst_ident), current_storage_class, @@ -4021,11 +4208,11 @@ yyreduce: inst->set_initializer((yyvsp[-2].u.expr)); current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-3])); } -#line 4025 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4212 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 65: -#line 840 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 69: +#line 954 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-1].u.inst_ident), @@ -4034,11 +4221,11 @@ yyreduce: inst->set_initializer((yyvsp[0].u.expr)); current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-1])); } -#line 4038 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4225 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 66: -#line 849 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 70: +#line 963 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyvsp[-3].u.inst_ident)->add_modifier(IIT_const); CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-3].u.inst_ident), @@ -4047,11 +4234,11 @@ yyreduce: inst->set_initializer((yyvsp[-2].u.expr)); current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-3])); } -#line 4051 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4238 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 67: -#line 862 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 71: +#line 976 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. @@ -4062,19 +4249,19 @@ yyreduce: } push_storage_class((yyvsp[-1].u.integer)); } -#line 4066 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4253 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 68: -#line 873 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 72: +#line 987 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_storage_class(); } -#line 4074 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4261 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 69: -#line 877 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 73: +#line 991 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. @@ -4085,19 +4272,19 @@ yyreduce: } push_storage_class((yyvsp[-2].u.integer)); } -#line 4089 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4276 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 70: -#line 888 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 74: +#line 1002 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_storage_class(); } -#line 4097 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4284 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 71: -#line 892 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 75: +#line 1006 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if ((yyvsp[-1].u.instance) != (CPPDeclaration *)NULL) { CPPInstance *inst = (yyvsp[-1].u.instance)->as_instance(); @@ -4109,61 +4296,61 @@ yyreduce: } } } -#line 4113 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4300 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 72: -#line 907 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 76: +#line 1021 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *target_type = current_type; 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 4123 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4310 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 73: -#line 913 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 77: +#line 1027 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *target_type = current_type; 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 4133 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4320 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 74: -#line 922 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 78: +#line 1036 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); CPPType *target_type = current_type; 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 4144 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4331 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 75: -#line 929 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 79: +#line 1043 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyvsp[-3].u.inst_ident)->add_modifier(IIT_const); CPPType *target_type = current_type; 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 4155 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4342 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 76: -#line 941 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 80: +#line 1055 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { push_scope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope)); } -#line 4163 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4350 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 77: -#line 945 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 81: +#line 1059 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type; if ((yyvsp[-5].u.identifier)->get_simple_name() == current_scope->get_simple_name() || @@ -4183,19 +4370,19 @@ yyreduce: (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); } -#line 4187 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4374 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 78: -#line 965 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 82: +#line 1079 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { push_scope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope)); } -#line 4195 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4382 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 79: -#line 969 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 83: +#line 1083 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); CPPType *type; @@ -4213,19 +4400,19 @@ yyreduce: (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); } -#line 4217 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4404 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 80: -#line 992 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 84: +#line 1106 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { push_scope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope)); } -#line 4225 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4412 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 81: -#line 996 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 85: +#line 1110 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); if ((yyvsp[-5].u.identifier)->is_scoped()) { @@ -4244,19 +4431,19 @@ yyreduce: (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); } } -#line 4248 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4435 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 82: -#line 1022 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 86: +#line 1136 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { push_scope((yyvsp[-2].u.inst_ident)->get_scope(current_scope, global_scope)); } -#line 4256 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4443 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 83: -#line 1026 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 87: +#line 1140 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); CPPType *type = (yyvsp[-10].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -4270,19 +4457,19 @@ 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 4274 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4461 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 84: -#line 1040 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 88: +#line 1154 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { push_scope((yyvsp[-2].u.inst_ident)->get_scope(current_scope, global_scope)); } -#line 4282 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4469 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 85: -#line 1044 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 89: +#line 1158 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); CPPType *type = (yyvsp[-11].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -4296,21 +4483,21 @@ 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 4300 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4487 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 86: -#line 1060 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 90: +#line 1174 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if ((yyvsp[-3].u.identifier) != NULL) { push_scope((yyvsp[-3].u.identifier)->get_scope(current_scope, global_scope)); } } -#line 4310 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4497 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 87: -#line 1066 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 91: +#line 1180 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if ((yyvsp[-7].u.identifier) != NULL) { pop_scope(); @@ -4335,21 +4522,21 @@ 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 4339 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4526 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 88: -#line 1091 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 92: +#line 1205 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if ((yyvsp[-4].u.identifier) != NULL) { push_scope((yyvsp[-4].u.identifier)->get_scope(current_scope, global_scope)); } } -#line 4349 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4536 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 89: -#line 1097 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 93: +#line 1211 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { if ((yyvsp[-8].u.identifier) != NULL) { pop_scope(); @@ -4365,11 +4552,11 @@ 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 4369 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4556 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 90: -#line 1117 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 94: +#line 1231 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPDeclaration *decl = (yyvsp[0].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); @@ -4379,494 +4566,494 @@ yyreduce: (yyval.u.instance) = (CPPInstance *)NULL; } } -#line 4383 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 91: -#line 1130 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.integer) = 0; -} -#line 4391 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 92: -#line 1134 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.integer) = (int)CPPFunctionType::F_const_method; -} -#line 4399 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 93: -#line 1138 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.integer) = (int)CPPFunctionType::F_noexcept; -} -#line 4407 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 94: -#line 1142 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.integer) = (int)CPPFunctionType::F_final; -} -#line 4415 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4570 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 95: -#line 1146 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1244 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.integer) = (int)CPPFunctionType::F_override; + (yyval.u.integer) = 0; } -#line 4423 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4578 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 96: -#line 1150 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1248 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.integer) = (int)CPPFunctionType::F_const_method; +} +#line 4586 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 97: +#line 1252 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.integer) = (int)CPPFunctionType::F_noexcept; +} +#line 4594 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 98: +#line 1256 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.integer) = (int)CPPFunctionType::F_final; +} +#line 4602 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 99: +#line 1260 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.integer) = (int)CPPFunctionType::F_override; +} +#line 4610 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 100: +#line 1264 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // Used for lambdas, currently ignored. (yyval.u.integer) = 0; } -#line 4432 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 97: -#line 1155 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.integer) = (yyvsp[-3].u.integer); -} -#line 4440 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 98: -#line 1159 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.integer) = (yyvsp[-4].u.integer); -} -#line 4448 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 99: -#line 1170 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.str) = "!"; -} -#line 4456 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 100: -#line 1174 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.str) = "~"; -} -#line 4464 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4619 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 101: -#line 1178 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1269 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "*"; + (yyval.u.integer) = (yyvsp[-3].u.integer); } -#line 4472 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4627 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 102: -#line 1182 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1273 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "/"; + (yyval.u.integer) = (yyvsp[-4].u.integer); } -#line 4480 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4635 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 103: -#line 1186 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1284 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "%"; + (yyval.str) = "!"; } -#line 4488 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4643 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 104: -#line 1190 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1288 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "+"; + (yyval.str) = "~"; } -#line 4496 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4651 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 105: -#line 1194 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1292 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "-"; + (yyval.str) = "*"; } -#line 4504 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4659 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 106: -#line 1198 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1296 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "|"; + (yyval.str) = "/"; } -#line 4512 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4667 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 107: -#line 1202 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1300 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "&"; + (yyval.str) = "%"; } -#line 4520 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4675 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 108: -#line 1206 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1304 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "^"; + (yyval.str) = "+"; } -#line 4528 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4683 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 109: -#line 1210 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1308 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "||"; + (yyval.str) = "-"; } -#line 4536 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4691 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 110: -#line 1214 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1312 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "&&"; + (yyval.str) = "|"; } -#line 4544 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4699 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 111: -#line 1218 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1316 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "=="; + (yyval.str) = "&"; } -#line 4552 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4707 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 112: -#line 1222 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1320 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "!="; + (yyval.str) = "^"; } -#line 4560 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4715 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 113: -#line 1226 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1324 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "<="; + (yyval.str) = "||"; } -#line 4568 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4723 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 114: -#line 1230 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1328 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = ">="; + (yyval.str) = "&&"; } -#line 4576 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4731 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 115: -#line 1234 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1332 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "<"; + (yyval.str) = "=="; } -#line 4584 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4739 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 116: -#line 1238 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1336 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = ">"; + (yyval.str) = "!="; } -#line 4592 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4747 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 117: -#line 1242 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1340 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "<<"; + (yyval.str) = "<="; } -#line 4600 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4755 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 118: -#line 1246 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1344 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = ">>"; + (yyval.str) = ">="; } -#line 4608 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4763 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 119: -#line 1250 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1348 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "="; + (yyval.str) = "<"; } -#line 4616 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4771 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 120: -#line 1254 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1352 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = ","; + (yyval.str) = ">"; } -#line 4624 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4779 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 121: -#line 1258 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1356 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "++"; + (yyval.str) = "<<"; } -#line 4632 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4787 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 122: -#line 1262 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1360 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "--"; + (yyval.str) = ">>"; } -#line 4640 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4795 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 123: -#line 1266 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1364 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "*="; + (yyval.str) = "="; } -#line 4648 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4803 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 124: -#line 1270 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1368 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "/="; + (yyval.str) = ","; } -#line 4656 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4811 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 125: -#line 1274 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1372 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "%="; + (yyval.str) = "++"; } -#line 4664 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4819 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 126: -#line 1278 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1376 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "+="; + (yyval.str) = "--"; } -#line 4672 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4827 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 127: -#line 1282 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1380 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "-="; + (yyval.str) = "*="; } -#line 4680 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4835 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 128: -#line 1286 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1384 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "|="; + (yyval.str) = "/="; } -#line 4688 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4843 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 129: -#line 1290 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1388 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "&="; + (yyval.str) = "%="; } -#line 4696 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4851 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 130: -#line 1294 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1392 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "^="; + (yyval.str) = "+="; } -#line 4704 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4859 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 131: -#line 1298 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1396 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "<<="; + (yyval.str) = "-="; } -#line 4712 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4867 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 132: -#line 1302 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1400 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = ">>="; + (yyval.str) = "|="; } -#line 4720 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4875 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 133: -#line 1306 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1404 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "->"; + (yyval.str) = "&="; } -#line 4728 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4883 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 134: -#line 1310 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1408 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "[]"; + (yyval.str) = "^="; } -#line 4736 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4891 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 135: -#line 1314 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1412 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "()"; + (yyval.str) = "<<="; } -#line 4744 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4899 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 136: -#line 1318 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1416 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "new"; + (yyval.str) = ">>="; } -#line 4752 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4907 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 137: -#line 1322 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1420 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.str) = "delete"; + (yyval.str) = "->"; } -#line 4760 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4915 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 138: +#line 1424 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.str) = "[]"; +} +#line 4923 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 139: +#line 1428 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.str) = "()"; +} +#line 4931 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 140: -#line 1334 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1432 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - push_scope(new CPPTemplateScope(current_scope)); + (yyval.str) = "new"; } -#line 4768 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4939 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 141: -#line 1338 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1436 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - pop_scope(); + (yyval.str) = "delete"; } -#line 4776 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4947 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 144: +#line 1448 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + push_scope(new CPPTemplateScope(current_scope)); +} +#line 4955 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 145: -#line 1351 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1452 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - CPPTemplateScope *ts = current_scope->as_template_scope(); - assert(ts != NULL); - ts->add_template_parameter((yyvsp[0].u.decl)); + pop_scope(); } -#line 4786 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 146: -#line 1357 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - CPPTemplateScope *ts = current_scope->as_template_scope(); - assert(ts != NULL); - ts->add_template_parameter((yyvsp[0].u.decl)); -} -#line 4796 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 147: -#line 1366 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[0].u.identifier))); -} -#line 4804 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 148: -#line 1370 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[-2].u.identifier), (yyvsp[0].u.type))); -} -#line 4812 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4963 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 149: -#line 1374 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1465 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[0].u.identifier))); + CPPTemplateScope *ts = current_scope->as_template_scope(); + assert(ts != NULL); + ts->add_template_parameter((yyvsp[0].u.decl)); } -#line 4820 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4973 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 150: -#line 1378 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1471 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[-2].u.identifier), (yyvsp[0].u.type))); + CPPTemplateScope *ts = current_scope->as_template_scope(); + assert(ts != NULL); + ts->add_template_parameter((yyvsp[0].u.decl)); } -#line 4828 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 4983 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 151: -#line 1382 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1480 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[0].u.identifier))); +} +#line 4991 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 152: +#line 1484 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[-2].u.identifier), (yyvsp[0].u.type))); +} +#line 4999 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 153: +#line 1488 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[0].u.identifier))); +} +#line 5007 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 154: +#line 1492 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[-2].u.identifier), (yyvsp[0].u.type))); +} +#line 5015 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 155: +#line 1496 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 4838 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5025 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 152: -#line 1388 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 156: +#line 1502 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (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 4849 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5036 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 153: -#line 1398 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 157: +#line 1512 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 4857 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5044 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 154: -#line 1402 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 158: +#line 1516 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 4866 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5053 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 155: -#line 1407 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 159: +#line 1521 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == NULL) { @@ -4874,19 +5061,19 @@ yyreduce: } assert((yyval.u.type) != NULL); } -#line 4878 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5065 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 156: -#line 1419 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 160: +#line 1533 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); } -#line 4886 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5073 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 157: -#line 1423 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 161: +#line 1537 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // For an operator function. We implement this simply by building a // ficticious name for the function; in other respects it's just @@ -4900,11 +5087,11 @@ yyreduce: (yyval.u.inst_ident) = new CPPInstanceIdentifier(ident); } -#line 4904 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5091 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 158: -#line 1437 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 162: +#line 1551 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // A C++11 literal operator. if (!(yyvsp[-1].str).empty()) { @@ -4919,91 +5106,91 @@ yyreduce: (yyval.u.inst_ident) = new CPPInstanceIdentifier(ident); } -#line 4923 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5110 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 159: -#line 1452 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 163: +#line 1566 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } -#line 4932 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5119 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 160: -#line 1457 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 164: +#line 1571 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } -#line 4941 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5128 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 161: -#line 1462 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 165: +#line 1576 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } -#line 4950 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5137 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 162: -#line 1467 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 166: +#line 1581 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } -#line 4959 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5146 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 163: -#line 1472 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 167: +#line 1586 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } -#line 4968 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5155 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 164: -#line 1477 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 168: +#line 1591 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); } -#line 4977 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5164 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 165: -#line 1482 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 169: +#line 1596 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); } -#line 4986 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5173 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 166: -#line 1487 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 170: +#line 1601 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_paren); } -#line 4995 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5182 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 167: -#line 1492 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 171: +#line 1606 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { push_scope((yyvsp[-1].u.inst_ident)->get_scope(current_scope, global_scope)); } -#line 5003 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5190 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 168: -#line 1496 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 172: +#line 1610 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); (yyval.u.inst_ident) = (yyvsp[-5].u.inst_ident); @@ -5017,11 +5204,11 @@ yyreduce: (yyval.u.inst_ident)->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); } } -#line 5021 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5208 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 169: -#line 1514 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 173: +#line 1628 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // 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 @@ -5031,721 +5218,721 @@ yyreduce: } (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); } -#line 5035 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5222 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 170: -#line 1524 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 174: +#line 1638 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // Bitfield definition. (yyvsp[-2].u.inst_ident)->_bit_width = (yyvsp[0].u.integer); (yyval.u.inst_ident) = (yyvsp[-2].u.inst_ident); } -#line 5045 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 171: -#line 1534 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.type) = NULL; -} -#line 5053 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 172: -#line 1538 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); -} -#line 5061 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 173: -#line 1542 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyvsp[0].u.inst_ident)->add_modifier(IIT_const); - (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); -} -#line 5070 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 174: -#line 1551 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.param_list) = new CPPParameterList; -} -#line 5078 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 175: -#line 1555 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.param_list) = new CPPParameterList; - (yyval.u.param_list)->_includes_ellipsis = true; -} -#line 5087 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 176: -#line 1560 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.param_list) = (yyvsp[0].u.param_list); -} -#line 5095 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 177: -#line 1564 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.param_list) = (yyvsp[-2].u.param_list); - (yyval.u.param_list)->_includes_ellipsis = true; -} -#line 5104 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 178: -#line 1569 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.param_list) = (yyvsp[-1].u.param_list); - (yyval.u.param_list)->_includes_ellipsis = true; -} -#line 5113 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 179: -#line 1577 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.param_list) = new CPPParameterList; - (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); -} -#line 5122 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 180: -#line 1582 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.param_list) = (yyvsp[-2].u.param_list); - (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); -} -#line 5131 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 181: -#line 1590 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.param_list) = new CPPParameterList; -} -#line 5139 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 182: -#line 1594 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.param_list) = new CPPParameterList; - (yyval.u.param_list)->_includes_ellipsis = true; -} -#line 5148 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 183: -#line 1599 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.param_list) = (yyvsp[0].u.param_list); -} -#line 5156 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 184: -#line 1603 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.param_list) = (yyvsp[-2].u.param_list); - (yyval.u.param_list)->_includes_ellipsis = true; -} -#line 5165 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 185: -#line 1608 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.param_list) = (yyvsp[-1].u.param_list); - (yyval.u.param_list)->_includes_ellipsis = true; -} -#line 5174 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 186: -#line 1616 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.param_list) = new CPPParameterList; - (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); -} -#line 5183 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 187: -#line 1621 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.param_list) = (yyvsp[-2].u.param_list); - (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); -} -#line 5192 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 188: -#line 1629 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = (CPPExpression *)NULL; -} -#line 5200 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 189: -#line 1633 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = (yyvsp[0].u.expr); -} -#line 5208 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 190: -#line 1640 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = (CPPExpression *)NULL; -} -#line 5216 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 191: -#line 1644 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = (yyvsp[0].u.expr); -} -#line 5224 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 192: -#line 1651 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = (CPPExpression *)NULL; -} #line 5232 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 193: -#line 1655 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 175: +#line 1648 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (CPPExpression *)NULL; + (yyval.u.type) = NULL; } #line 5240 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 194: -#line 1659 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 176: +#line 1652 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (CPPExpression *)NULL; + (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } #line 5248 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 195: -#line 1663 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 177: +#line 1656 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::get_default()); + (yyvsp[0].u.inst_ident)->add_modifier(IIT_const); + (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } -#line 5256 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5257 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 178: +#line 1665 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = new CPPParameterList; +} +#line 5265 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 179: +#line 1669 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = new CPPParameterList; + (yyval.u.param_list)->_includes_ellipsis = true; +} +#line 5274 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 180: +#line 1674 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = (yyvsp[0].u.param_list); +} +#line 5282 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 181: +#line 1678 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = (yyvsp[-2].u.param_list); + (yyval.u.param_list)->_includes_ellipsis = true; +} +#line 5291 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 182: +#line 1683 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = (yyvsp[-1].u.param_list); + (yyval.u.param_list)->_includes_ellipsis = true; +} +#line 5300 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 183: +#line 1691 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = new CPPParameterList; + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); +} +#line 5309 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 184: +#line 1696 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = (yyvsp[-2].u.param_list); + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); +} +#line 5318 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 185: +#line 1704 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = new CPPParameterList; +} +#line 5326 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 186: +#line 1708 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = new CPPParameterList; + (yyval.u.param_list)->_includes_ellipsis = true; +} +#line 5335 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 187: +#line 1713 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = (yyvsp[0].u.param_list); +} +#line 5343 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 188: +#line 1717 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = (yyvsp[-2].u.param_list); + (yyval.u.param_list)->_includes_ellipsis = true; +} +#line 5352 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 189: +#line 1722 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = (yyvsp[-1].u.param_list); + (yyval.u.param_list)->_includes_ellipsis = true; +} +#line 5361 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 190: +#line 1730 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = new CPPParameterList; + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); +} +#line 5370 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 191: +#line 1735 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.param_list) = (yyvsp[-2].u.param_list); + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); +} +#line 5379 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 192: +#line 1743 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (CPPExpression *)NULL; +} +#line 5387 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 193: +#line 1747 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 5395 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 194: +#line 1754 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (CPPExpression *)NULL; +} +#line 5403 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 195: +#line 1758 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 5411 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 196: -#line 1667 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1765 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(CPPExpression::get_delete()); + (yyval.u.expr) = (CPPExpression *)NULL; } -#line 5264 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5419 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 197: -#line 1674 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1769 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } -#line 5272 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5427 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 198: -#line 1678 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1773 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } -#line 5280 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5435 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 199: -#line 1682 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = (yyvsp[-1].u.expr); -} -#line 5288 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 200: -#line 1686 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1777 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = new CPPExpression(CPPExpression::get_default()); } -#line 5296 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5443 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 201: -#line 1690 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 200: +#line 1781 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = new CPPExpression(CPPExpression::get_delete()); } -#line 5304 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5451 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 202: -#line 1694 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 201: +#line 1788 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = (CPPExpression *)NULL; } -#line 5312 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5459 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 202: +#line 1792 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (CPPExpression *)NULL; +} +#line 5467 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 203: +#line 1796 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[-1].u.expr); +} +#line 5475 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 204: +#line 1800 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::get_default()); +} +#line 5483 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 205: +#line 1804 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::get_delete()); +} +#line 5491 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 206: -#line 1707 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1808 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { + (yyval.u.expr) = (CPPExpression *)NULL; } -#line 5319 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5499 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 210: -#line 1716 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1821 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { +} +#line 5506 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 214: +#line 1830 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (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 5328 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5515 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 211: -#line 1721 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 215: +#line 1835 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (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 5338 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5525 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 212: -#line 1727 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 216: +#line 1841 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (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 5348 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5535 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 213: -#line 1733 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 217: +#line 1847 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.instance) = (yyvsp[0].u.instance); } -#line 5356 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5543 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 214: -#line 1744 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 218: +#line 1858 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.instance) = (yyvsp[0].u.instance); } -#line 5364 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5551 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 215: -#line 1748 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 219: +#line 1862 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 5375 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 216: -#line 1758 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); -} -#line 5383 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 217: -#line 1762 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); -} -#line 5391 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 218: -#line 1766 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_const); -} -#line 5400 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 219: -#line 1771 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_volatile); -} -#line 5409 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5562 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 220: -#line 1776 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_pointer); -} -#line 5418 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 221: -#line 1781 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_reference); -} -#line 5427 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 222: -#line 1786 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); -} -#line 5436 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 223: -#line 1791 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); -} -#line 5445 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 224: -#line 1796 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); - (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); -} -#line 5454 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 225: -#line 1804 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1872 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); } -#line 5462 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5570 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 226: -#line 1808 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 221: +#line 1876 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); } -#line 5470 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5578 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 227: -#line 1812 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 222: +#line 1880 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } -#line 5479 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5587 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 228: -#line 1817 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 223: +#line 1885 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } -#line 5488 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5596 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 229: -#line 1822 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 224: +#line 1890 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } -#line 5497 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5605 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 230: -#line 1827 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 225: +#line 1895 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } -#line 5506 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5614 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 231: -#line 1832 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 226: +#line 1900 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } -#line 5515 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5623 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 232: -#line 1837 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 227: +#line 1905 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); } -#line 5524 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5632 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 233: -#line 1842 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 228: +#line 1910 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); } -#line 5533 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5641 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 229: +#line 1918 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); +} +#line 5649 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 230: +#line 1922 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); +} +#line 5657 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 231: +#line 1926 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_const); +} +#line 5666 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 232: +#line 1931 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_volatile); +} +#line 5675 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 233: +#line 1936 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_pointer); +} +#line 5684 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 234: -#line 1847 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1941 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_reference); +} +#line 5693 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 235: +#line 1946 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); +} +#line 5702 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 236: +#line 1951 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); +} +#line 5711 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 237: +#line 1956 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); +} +#line 5720 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 238: +#line 1961 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (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 5543 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5730 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 235: -#line 1853 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 239: +#line 1967 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_paren); } -#line 5552 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 236: -#line 1861 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); -} -#line 5560 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 237: -#line 1865 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_const); -} -#line 5569 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 238: -#line 1870 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_volatile); -} -#line 5578 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 239: -#line 1875 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_pointer); -} -#line 5587 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5739 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 240: -#line 1880 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_reference); -} -#line 5596 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 241: -#line 1885 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); -} -#line 5605 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 242: -#line 1890 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); - (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); -} -#line 5614 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 243: -#line 1895 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); - (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); -} -#line 5623 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 244: -#line 1903 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 1975 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); } -#line 5631 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5747 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 245: -#line 1907 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 241: +#line 1979 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } -#line 5640 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5756 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 246: -#line 1912 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 242: +#line 1984 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } -#line 5649 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5765 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 247: -#line 1917 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 243: +#line 1989 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } -#line 5658 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5774 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 248: -#line 1922 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 244: +#line 1994 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } -#line 5667 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5783 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 249: -#line 1927 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 245: +#line 1999 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } -#line 5676 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5792 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 250: -#line 1932 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 246: +#line 2004 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); } -#line 5685 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5801 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 251: -#line 1937 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 247: +#line 2009 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); } -#line 5694 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5810 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 248: +#line 2017 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); +} +#line 5818 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 249: +#line 2021 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_const); +} +#line 5827 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 250: +#line 2026 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_volatile); +} +#line 5836 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 251: +#line 2031 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_pointer); +} +#line 5845 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 252: -#line 1942 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2036 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_reference); +} +#line 5854 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 253: +#line 2041 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); +} +#line 5863 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 254: +#line 2046 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); +} +#line 5872 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 255: +#line 2051 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); +} +#line 5881 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 256: +#line 2056 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); (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 5704 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5891 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 253: -#line 1948 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 257: +#line 2062 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (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 5715 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5902 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 254: -#line 1955 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 258: +#line 2069 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (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 5726 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5913 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 255: -#line 1962 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 259: +#line 2076 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (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 5737 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5924 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 256: -#line 1972 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 260: +#line 2086 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 5745 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5932 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 257: -#line 1976 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 261: +#line 2090 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == NULL) { @@ -5753,43 +5940,43 @@ yyreduce: } assert((yyval.u.type) != NULL); } -#line 5757 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 258: -#line 1984 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); -} -#line 5765 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 259: -#line 1988 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.type) = CPPType::new_type((yyvsp[0].u.struct_type)); -} -#line 5773 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 260: -#line 1992 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.type) = CPPType::new_type((yyvsp[0].u.struct_type)); -} -#line 5781 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 261: -#line 1996 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.type) = CPPType::new_type((yyvsp[0].u.enum_type)); -} -#line 5789 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5944 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 262: -#line 2000 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2098 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); +} +#line 5952 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 263: +#line 2102 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.struct_type)); +} +#line 5960 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 264: +#line 2106 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.struct_type)); +} +#line 5968 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 265: +#line 2110 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.enum_type)); +} +#line 5976 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 266: +#line 2114 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -5805,11 +5992,11 @@ yyreduce: (yyval.u.type) = et; } } -#line 5809 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 5996 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 263: -#line 2016 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 267: +#line 2130 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = (yyvsp[-2].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -5825,11 +6012,11 @@ yyreduce: (yyval.u.type) = et; } } -#line 5829 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6016 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 264: -#line 2032 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 268: +#line 2146 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = (yyvsp[-1].u.expr)->determine_type(); if ((yyval.u.type) == (CPPType *)NULL) { @@ -5838,27 +6025,27 @@ yyreduce: yyerror("could not determine type of " + str.str(), (yylsp[-1])); } } -#line 5842 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6029 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 265: -#line 2041 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 269: +#line 2155 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_auto)); } -#line 5850 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6037 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 266: -#line 2048 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 270: +#line 2162 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.decl) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 5858 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6045 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 267: -#line 2052 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 271: +#line 2166 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.decl) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.decl) == NULL) { @@ -5866,43 +6053,43 @@ yyreduce: } assert((yyval.u.decl) != NULL); } -#line 5870 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 268: -#line 2060 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.decl) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); -} -#line 5878 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 269: -#line 2064 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.decl) = CPPType::new_type((yyvsp[0].u.struct_type)); -} -#line 5886 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 270: -#line 2068 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[0].u.struct_type))); -} -#line 5894 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 271: -#line 2072 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[0].u.enum_type))); -} -#line 5902 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6057 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 272: -#line 2076 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2174 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.decl) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); +} +#line 6065 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 273: +#line 2178 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.decl) = CPPType::new_type((yyvsp[0].u.struct_type)); +} +#line 6073 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 274: +#line 2182 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[0].u.struct_type))); +} +#line 6081 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 275: +#line 2186 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[0].u.enum_type))); +} +#line 6089 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 276: +#line 2190 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -5918,11 +6105,11 @@ yyreduce: (yyval.u.decl) = et; } } -#line 5922 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6109 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 273: -#line 2092 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 277: +#line 2206 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = (yyvsp[-2].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -5938,11 +6125,11 @@ yyreduce: (yyval.u.decl) = et; } } -#line 5942 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6129 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 274: -#line 2108 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 278: +#line 2222 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { yywarning(string("C++ does not permit forward declaration of untyped enum ") + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[-1])); @@ -5960,11 +6147,11 @@ yyreduce: (yyval.u.decl) = et; } } -#line 5964 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6151 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 275: -#line 2126 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 279: +#line 2240 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.decl) = (yyvsp[-1].u.expr)->determine_type(); if ((yyval.u.decl) == (CPPType *)NULL) { @@ -5973,27 +6160,27 @@ yyreduce: yyerror("could not determine type of " + str.str(), (yylsp[-1])); } } -#line 5977 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6164 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 276: -#line 2135 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 280: +#line 2249 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.decl) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_auto)); } -#line 5985 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6172 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 277: -#line 2142 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 281: +#line 2256 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 5993 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6180 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 278: -#line 2146 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 282: +#line 2260 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == NULL) { @@ -6001,19 +6188,19 @@ yyreduce: } assert((yyval.u.type) != NULL); } -#line 6005 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6192 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 279: -#line 2154 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 283: +#line 2268 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } -#line 6013 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6200 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 280: -#line 2158 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 284: +#line 2272 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -6029,11 +6216,11 @@ yyreduce: (yyval.u.type) = et; } } -#line 6033 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6220 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 281: -#line 2174 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 285: +#line 2288 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -6049,11 +6236,11 @@ yyreduce: (yyval.u.type) = et; } } -#line 6053 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6240 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 282: -#line 2190 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 286: +#line 2304 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = (yyvsp[-1].u.expr)->determine_type(); if ((yyval.u.type) == (CPPType *)NULL) { @@ -6062,54 +6249,54 @@ yyreduce: yyerror("could not determine type of " + str.str(), (yylsp[-1])); } } -#line 6066 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6253 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 283: -#line 2199 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 287: +#line 2313 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_auto)); } -#line 6074 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6261 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 284: -#line 2206 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 288: +#line 2320 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.decl) = (yyvsp[0].u.decl); } -#line 6082 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6269 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 285: -#line 2210 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 289: +#line 2324 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 6092 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6279 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 286: -#line 2218 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 290: +#line 2332 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } -#line 6100 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6287 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 287: -#line 2222 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 291: +#line 2336 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyvsp[0].u.inst_ident)->add_modifier(IIT_const); (yyval.u.type) = (yyvsp[0].u.inst_ident)->unroll_type((yyvsp[-1].u.type)); } -#line 6109 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6296 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 288: -#line 2230 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 292: +#line 2344 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPVisibility starting_vis = ((yyvsp[-1].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; @@ -6123,22 +6310,22 @@ yyreduce: push_scope(new_scope); push_struct(st); } -#line 6127 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6314 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 289: -#line 2244 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 293: +#line 2358 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.struct_type) = current_struct; current_struct->_incomplete = false; pop_struct(); pop_scope(); } -#line 6138 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6325 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 290: -#line 2254 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 294: +#line 2368 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPVisibility starting_vis = ((yyvsp[-1].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; @@ -6158,253 +6345,253 @@ yyreduce: push_scope(new_scope); push_struct(st); } -#line 6162 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6349 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 291: -#line 2274 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 295: +#line 2388 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.struct_type) = current_struct; current_struct->_incomplete = false; pop_struct(); pop_scope(); } -#line 6173 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6360 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 293: -#line 2285 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 297: +#line 2399 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_struct->_final = true; } -#line 6181 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 298: -#line 2302 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - current_struct->append_derivation((yyvsp[0].u.type), V_unknown, false); -} -#line 6189 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 299: -#line 2306 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - current_struct->append_derivation((yyvsp[0].u.type), V_public, false); -} -#line 6197 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 300: -#line 2310 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - current_struct->append_derivation((yyvsp[0].u.type), V_protected, false); -} -#line 6205 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 301: -#line 2314 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - current_struct->append_derivation((yyvsp[0].u.type), V_private, false); -} -#line 6213 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6368 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 302: -#line 2318 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2416 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[0].u.type), V_public, true); + current_struct->append_derivation((yyvsp[0].u.type), V_unknown, false); } -#line 6221 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6376 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 303: -#line 2322 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2420 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[0].u.type), V_protected, true); + current_struct->append_derivation((yyvsp[0].u.type), V_public, false); } -#line 6229 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6384 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 304: -#line 2326 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2424 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[0].u.type), V_private, true); + current_struct->append_derivation((yyvsp[0].u.type), V_protected, false); } -#line 6237 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6392 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 305: -#line 2330 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2428 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[0].u.type), V_public, true); + current_struct->append_derivation((yyvsp[0].u.type), V_private, false); } -#line 6245 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6400 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 306: -#line 2334 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2432 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[0].u.type), V_protected, true); + current_struct->append_derivation((yyvsp[0].u.type), V_public, true); } -#line 6253 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6408 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 307: -#line 2338 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2436 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - current_struct->append_derivation((yyvsp[0].u.type), V_private, true); + current_struct->append_derivation((yyvsp[0].u.type), V_protected, true); } -#line 6261 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6416 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 308: -#line 2345 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2440 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + current_struct->append_derivation((yyvsp[0].u.type), V_private, true); +} +#line 6424 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 309: +#line 2444 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + current_struct->append_derivation((yyvsp[0].u.type), V_public, true); +} +#line 6432 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 310: +#line 2448 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + current_struct->append_derivation((yyvsp[0].u.type), V_protected, true); +} +#line 6440 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 311: +#line 2452 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + current_struct->append_derivation((yyvsp[0].u.type), V_private, true); +} +#line 6448 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 312: +#line 2459 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.enum_type) = current_enum; current_enum = NULL; } -#line 6270 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6457 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 309: -#line 2353 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 313: +#line 2467 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_enum = new CPPEnumType((yyvsp[-2].u.extension_enum), NULL, (yyvsp[0].u.type), current_scope, NULL, (yylsp[-2]).file); } -#line 6278 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6465 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 310: -#line 2357 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 314: +#line 2471 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_enum = new CPPEnumType((yyvsp[0].u.extension_enum), NULL, current_scope, NULL, (yylsp[0]).file); } -#line 6286 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6473 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 311: -#line 2361 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 315: +#line 2475 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 6295 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6482 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 312: -#line 2366 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 316: +#line 2480 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 6304 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6491 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 313: -#line 2374 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 317: +#line 2488 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); } -#line 6312 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6499 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 314: -#line 2378 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 318: +#line 2492 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); } -#line 6320 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6507 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 316: -#line 2386 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 320: +#line 2500 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { assert(current_enum != NULL); current_enum->add_element((yyvsp[-1].u.identifier)->get_simple_name(), NULL, current_lexer, (yylsp[-1])); } -#line 6329 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6516 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 317: -#line 2391 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 321: +#line 2505 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { assert(current_enum != NULL); current_enum->add_element((yyvsp[-3].u.identifier)->get_simple_name(), (yyvsp[-1].u.expr), current_lexer, (yylsp[-3])); } -#line 6338 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6525 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 319: -#line 2399 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 323: +#line 2513 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { assert(current_enum != NULL); current_enum->add_element((yyvsp[0].u.identifier)->get_simple_name(), NULL, current_lexer, (yylsp[0])); } -#line 6347 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6534 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 320: -#line 2404 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 324: +#line 2518 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { assert(current_enum != NULL); current_enum->add_element((yyvsp[-2].u.identifier)->get_simple_name(), (yyvsp[0].u.expr), current_lexer, (yylsp[-2])); } -#line 6356 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 321: -#line 2412 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.extension_enum) = CPPExtensionType::T_enum; -} -#line 6364 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 322: -#line 2416 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.extension_enum) = CPPExtensionType::T_enum_class; -} -#line 6372 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 323: -#line 2420 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.extension_enum) = CPPExtensionType::T_enum_struct; -} -#line 6380 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 324: -#line 2427 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.extension_enum) = CPPExtensionType::T_class; -} -#line 6388 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6543 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 325: -#line 2431 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2526 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.extension_enum) = CPPExtensionType::T_struct; + (yyval.u.extension_enum) = CPPExtensionType::T_enum; } -#line 6396 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6551 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 326: -#line 2435 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2530 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.extension_enum) = CPPExtensionType::T_union; + (yyval.u.extension_enum) = CPPExtensionType::T_enum_class; } -#line 6404 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6559 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 327: -#line 2442 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2534 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.extension_enum) = CPPExtensionType::T_enum_struct; +} +#line 6567 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 328: +#line 2541 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.extension_enum) = CPPExtensionType::T_class; +} +#line 6575 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 329: +#line 2545 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.extension_enum) = CPPExtensionType::T_struct; +} +#line 6583 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 330: +#line 2549 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.extension_enum) = CPPExtensionType::T_union; +} +#line 6591 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 331: +#line 2556 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPScope *scope = (yyvsp[-1].u.identifier)->find_scope(current_scope, global_scope, current_lexer); if (scope == NULL) { @@ -6422,19 +6609,19 @@ yyreduce: current_scope->define_namespace(nspace); push_scope(scope); } -#line 6426 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6613 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 328: -#line 2460 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 332: +#line 2574 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); } -#line 6434 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6621 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 329: -#line 2464 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 333: +#line 2578 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPScope *scope = (yyvsp[-1].u.identifier)->find_scope(current_scope, global_scope, current_lexer); if (scope == NULL) { @@ -6453,143 +6640,143 @@ yyreduce: current_scope->define_namespace(nspace); push_scope(scope); } -#line 6457 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6644 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 330: -#line 2483 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 334: +#line 2597 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { pop_scope(); } -#line 6465 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6652 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 333: -#line 2492 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 337: +#line 2606 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 6475 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6662 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 334: -#line 2498 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 338: +#line 2612 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // 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 6486 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6673 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 335: -#line 2505 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 339: +#line 2619 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 6496 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 339: -#line 2520 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_bool); -} -#line 6504 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 340: -#line 2524 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char); -} -#line 6512 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 341: -#line 2528 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_wchar_t); -} -#line 6520 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 342: -#line 2532 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char16_t); -} -#line 6528 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6683 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 343: -#line 2536 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2634 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char32_t); + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_bool); } -#line 6536 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6691 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 344: -#line 2540 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2638 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char); +} +#line 6699 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 345: +#line 2642 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_wchar_t); +} +#line 6707 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 346: +#line 2646 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char16_t); +} +#line 6715 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 347: +#line 2650 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char32_t); +} +#line 6723 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 348: +#line 2654 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_short); } -#line 6545 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6732 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 345: -#line 2545 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 349: +#line 2659 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_long); } -#line 6554 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6741 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 346: -#line 2550 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 350: +#line 2664 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_unsigned); } -#line 6563 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6750 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 347: -#line 2555 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 351: +#line 2669 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_signed); } -#line 6572 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6759 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 348: -#line 2560 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 352: +#line 2674 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int); } -#line 6580 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6767 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 349: -#line 2564 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 353: +#line 2678 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = (yyvsp[0].u.simple_type); (yyval.u.simple_type)->_flags |= CPPSimpleType::F_short; } -#line 6589 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6776 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 350: -#line 2569 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 354: +#line 2683 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = (yyvsp[0].u.simple_type); if ((yyval.u.simple_type)->_flags & CPPSimpleType::F_long) { @@ -6598,477 +6785,477 @@ yyreduce: (yyval.u.simple_type)->_flags |= CPPSimpleType::F_long; } } -#line 6602 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6789 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 351: -#line 2578 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 355: +#line 2692 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = (yyvsp[0].u.simple_type); (yyval.u.simple_type)->_flags |= CPPSimpleType::F_unsigned; } -#line 6611 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6798 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 352: -#line 2583 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 356: +#line 2697 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = (yyvsp[0].u.simple_type); (yyval.u.simple_type)->_flags |= CPPSimpleType::F_signed; } -#line 6620 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6807 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 353: -#line 2591 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 357: +#line 2705 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float); } -#line 6628 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6815 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 354: -#line 2595 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 358: +#line 2709 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double); } -#line 6636 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6823 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 355: -#line 2599 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 359: +#line 2713 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double, CPPSimpleType::F_long); } -#line 6645 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6832 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 356: -#line 2607 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 360: +#line 2721 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_void); } -#line 6653 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6840 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 357: -#line 2616 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 361: +#line 2730 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_lexer->_resolve_identifiers = false; } -#line 6661 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6848 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 358: -#line 2620 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 362: +#line 2734 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { current_lexer->_resolve_identifiers = true; } -#line 6669 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6856 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 461: -#line 2661 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 465: +#line 2775 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { } -#line 6676 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 485: -#line 2670 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = (CPPExpression *)NULL; -} -#line 6684 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 486: -#line 2674 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = (yyvsp[0].u.expr); -} -#line 6692 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 487: -#line 2681 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = (CPPExpression *)NULL; -} -#line 6700 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 488: -#line 2685 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = (yyvsp[0].u.expr); -} -#line 6708 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6863 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 489: -#line 2692 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2784 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[0].u.expr); + (yyval.u.expr) = (CPPExpression *)NULL; } -#line 6716 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6871 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 490: -#line 2696 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2788 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(',', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 6724 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6879 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 491: -#line 2703 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2795 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[0].u.expr); + (yyval.u.expr) = (CPPExpression *)NULL; } -#line 6732 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6887 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 492: -#line 2707 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); -} -#line 6740 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 493: -#line 2711 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_static_cast)); -} -#line 6748 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 494: -#line 2715 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_dynamic_cast)); -} -#line 6756 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 495: -#line 2719 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_const_cast)); -} -#line 6764 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 496: -#line 2723 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_reinterpret_cast)); -} -#line 6772 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 497: -#line 2727 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); -} -#line 6780 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 498: -#line 2731 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[-1].u.type))); -} -#line 6788 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 499: -#line 2735 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); -} -#line 6796 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 500: -#line 2739 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); -} -#line 6804 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 501: -#line 2743 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); -} -#line 6812 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 502: -#line 2747 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[0].u.expr)); -} -#line 6820 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 503: -#line 2751 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[0].u.expr)); -} -#line 6828 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 504: -#line 2755 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); -} -#line 6836 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 505: -#line 2759 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); -} -#line 6844 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 506: -#line 2763 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); -} -#line 6852 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 507: -#line 2767 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); -} -#line 6860 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 508: -#line 2771 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); -} -#line 6868 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 509: -#line 2775 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); -} -#line 6876 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 510: -#line 2779 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); -} -#line 6884 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 511: -#line 2783 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); -} -#line 6892 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 512: -#line 2787 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); -} -#line 6900 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 513: -#line 2791 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); -} -#line 6908 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 514: -#line 2795 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); -} -#line 6916 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 515: #line 2799 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); -} -#line 6924 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 516: -#line 2803 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); -} -#line 6932 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 517: -#line 2807 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); -} -#line 6940 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 518: -#line 2811 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); -} -#line 6948 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 519: -#line 2815 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); -} -#line 6956 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 520: -#line 2819 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); -} -#line 6964 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 521: -#line 2823 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); -} -#line 6972 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 522: -#line 2827 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); -} -#line 6980 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 523: -#line 2831 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); -} -#line 6988 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 524: -#line 2835 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); -} -#line 6996 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 525: -#line 2839 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); -} -#line 7004 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 526: -#line 2843 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); -} -#line 7012 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 527: -#line 2847 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = (yyvsp[-1].u.expr); -} -#line 7020 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 528: -#line 2855 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { (yyval.u.expr) = (yyvsp[0].u.expr); } -#line 7028 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6895 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 529: -#line 2859 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 493: +#line 2806 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 6903 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 494: +#line 2810 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(',', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 6911 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 495: +#line 2817 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 6919 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 496: +#line 2821 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); } -#line 7036 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6927 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 530: -#line 2863 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 497: +#line 2825 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_static_cast)); } -#line 7044 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6935 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 531: -#line 2867 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 498: +#line 2829 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_dynamic_cast)); } -#line 7052 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6943 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 532: -#line 2871 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 499: +#line 2833 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_const_cast)); } -#line 7060 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6951 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 533: -#line 2875 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 500: +#line 2837 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_reinterpret_cast)); } -#line 7068 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 6959 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 501: +#line 2841 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); +} +#line 6967 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 502: +#line 2845 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[-1].u.type))); +} +#line 6975 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 503: +#line 2849 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); +} +#line 6983 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 504: +#line 2853 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); +} +#line 6991 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 505: +#line 2857 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); +} +#line 6999 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 506: +#line 2861 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[0].u.expr)); +} +#line 7007 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 507: +#line 2865 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[0].u.expr)); +} +#line 7015 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 508: +#line 2869 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); +} +#line 7023 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 509: +#line 2873 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7031 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 510: +#line 2877 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7039 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 511: +#line 2881 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7047 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 512: +#line 2885 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7055 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 513: +#line 2889 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7063 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 514: +#line 2893 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7071 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 515: +#line 2897 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7079 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 516: +#line 2901 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7087 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 517: +#line 2905 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7095 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 518: +#line 2909 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7103 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 519: +#line 2913 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7111 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 520: +#line 2917 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7119 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 521: +#line 2921 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7127 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 522: +#line 2925 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7135 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 523: +#line 2929 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7143 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 524: +#line 2933 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7151 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 525: +#line 2937 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7159 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 526: +#line 2941 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); +} +#line 7167 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 527: +#line 2945 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); +} +#line 7175 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 528: +#line 2949 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); +} +#line 7183 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 529: +#line 2953 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7191 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 530: +#line 2957 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} +#line 7199 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 531: +#line 2961 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[-1].u.expr); +} +#line 7207 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 532: +#line 2969 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 7215 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 533: +#line 2973 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); +} +#line 7223 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 534: -#line 2879 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 2977 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_static_cast)); +} +#line 7231 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 535: +#line 2981 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_dynamic_cast)); +} +#line 7239 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 536: +#line 2985 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_const_cast)); +} +#line 7247 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 537: +#line 2989 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_reinterpret_cast)); +} +#line 7255 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 538: +#line 2993 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // A constructor call. CPPType *type = (yyvsp[-3].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -7078,167 +7265,167 @@ yyreduce: assert(type != NULL); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 7082 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7269 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 535: -#line 2889 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 539: +#line 3003 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int)); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 7092 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7279 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 536: -#line 2895 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 540: +#line 3009 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char)); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 7102 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7289 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 537: -#line 2901 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 541: +#line 3015 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 7112 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7299 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 538: -#line 2907 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 542: +#line 3021 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 7122 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7309 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 539: -#line 2913 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 543: +#line 3027 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 7132 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7319 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 540: -#line 2919 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 544: +#line 3033 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_bool)); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 7142 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7329 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 541: -#line 2925 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 545: +#line 3039 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 7153 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7340 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 542: -#line 2932 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 546: +#line 3046 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 7164 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7351 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 543: -#line 2939 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 547: +#line 3053 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 7175 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7362 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 544: -#line 2946 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 548: +#line 3060 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { 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 7186 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7373 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 545: -#line 2953 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 549: +#line 3067 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_float)); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 7196 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7383 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 546: -#line 2959 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 550: +#line 3073 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_double)); (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } -#line 7206 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 547: -#line 2965 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); -} -#line 7214 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 548: -#line 2969 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[-1].u.type))); -} -#line 7222 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 549: -#line 2973 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[0].u.type))); -} -#line 7230 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 550: -#line 2977 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[-3].u.type), (yyvsp[-1].u.expr))); -} -#line 7238 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7393 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 551: -#line 2981 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3079 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); +} +#line 7401 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 552: +#line 3083 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[-1].u.type))); +} +#line 7409 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 553: +#line 3087 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[0].u.type))); +} +#line 7417 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 554: +#line 3091 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[-3].u.type), (yyvsp[-1].u.expr))); +} +#line 7425 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 555: +#line 3095 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPIdentifier ident(""); ident.add_name("std"); @@ -7249,11 +7436,11 @@ yyreduce: } (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.type), std_type_info)); } -#line 7253 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7440 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 552: -#line 2992 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 556: +#line 3106 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPIdentifier ident(""); ident.add_name("std"); @@ -7264,462 +7451,462 @@ yyreduce: } (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.expr), std_type_info)); } -#line 7268 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 553: -#line 3003 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); -} -#line 7276 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 554: -#line 3007 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); -} -#line 7284 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 555: -#line 3011 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); -} -#line 7292 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 556: -#line 3015 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[0].u.expr)); -} -#line 7300 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7455 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 557: -#line 3019 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3117 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); } -#line 7308 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7463 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 558: -#line 3023 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3121 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); } -#line 7316 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7471 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 559: -#line 3027 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3125 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); } -#line 7324 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7479 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 560: -#line 3031 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3129 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[0].u.expr)); } -#line 7332 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7487 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 561: -#line 3035 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3133 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[0].u.expr)); } -#line 7340 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7495 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 562: -#line 3039 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3137 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); } -#line 7348 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7503 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 563: -#line 3043 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3141 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7356 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7511 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 564: -#line 3047 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3145 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7364 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7519 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 565: -#line 3051 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3149 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7372 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7527 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 566: -#line 3055 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3153 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7380 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7535 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 567: -#line 3059 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3157 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7388 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7543 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 568: -#line 3063 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3161 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7396 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7551 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 569: -#line 3067 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3165 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7404 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7559 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 570: -#line 3071 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3169 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7412 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7567 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 571: -#line 3075 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3173 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7420 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7575 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 572: -#line 3079 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3177 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7428 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7583 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 573: -#line 3083 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3181 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('<', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7436 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7591 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 574: -#line 3087 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3185 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('>', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7444 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7599 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 575: -#line 3091 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3189 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7452 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7607 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 576: -#line 3095 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3193 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7460 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7615 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 577: -#line 3099 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3197 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('<', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7468 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7623 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 578: -#line 3103 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3201 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); + (yyval.u.expr) = new CPPExpression('>', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7476 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7631 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 579: -#line 3107 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3205 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); + (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7484 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7639 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 580: -#line 3111 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3209 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); + (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7492 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7647 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 581: -#line 3115 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3213 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7500 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7655 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 582: -#line 3119 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3217 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } -#line 7508 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7663 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 583: -#line 3123 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3221 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[-1].u.expr); + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } -#line 7516 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7671 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 584: -#line 3130 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3225 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); } -#line 7524 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7679 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 585: -#line 3134 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3229 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(true); + (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7532 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7687 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 586: -#line 3138 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3233 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(false); + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7540 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7695 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 587: -#line 3142 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3237 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); + (yyval.u.expr) = (yyvsp[-1].u.expr); } -#line 7548 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7703 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 588: -#line 3146 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3244 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[0].u.real)); + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); } -#line 7556 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7711 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 589: -#line 3150 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3248 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[0].u.expr); -} -#line 7564 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 590: -#line 3154 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = (yyvsp[0].u.expr); -} -#line 7572 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 591: -#line 3158 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer); -} -#line 7580 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 592: -#line 3162 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - // 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 7590 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 593: -#line 3168 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - // 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 7600 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 594: -#line 3174 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(CPPExpression::get_nullptr()); -} -#line 7608 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 595: -#line 3178 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = NULL; -} -#line 7616 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 596: -#line 3182 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = NULL; -} -#line 7624 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 597: -#line 3196 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = (yyvsp[0].u.expr); -} -#line 7632 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 598: -#line 3200 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); -} -#line 7640 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 599: -#line 3204 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_static_cast)); -} -#line 7648 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 600: -#line 3208 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_dynamic_cast)); -} -#line 7656 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 601: -#line 3212 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_const_cast)); -} -#line 7664 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 602: -#line 3216 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_reinterpret_cast)); -} -#line 7672 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 603: -#line 3220 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); -} -#line 7680 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 604: -#line 3224 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[-1].u.type))); -} -#line 7688 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 605: -#line 3228 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[0].u.type))); -} -#line 7696 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 606: -#line 3232 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[-3].u.type), (yyvsp[-1].u.expr))); -} -#line 7704 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 607: -#line 3236 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - CPPIdentifier ident(""); - ident.add_name("std"); - ident.add_name("type_info"); - CPPType *std_type_info = ident.find_type(current_scope, global_scope, false, current_lexer); - if (!std_type_info) { - yywarning("cannot use typeid before including ", (yylsp[-3])); - } - (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.type), std_type_info)); + (yyval.u.expr) = new CPPExpression(true); } #line 7719 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; + case 590: +#line 3252 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(false); +} +#line 7727 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 591: +#line 3256 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); +} +#line 7735 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 592: +#line 3260 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.real)); +} +#line 7743 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 593: +#line 3264 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 7751 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 594: +#line 3268 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 7759 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 595: +#line 3272 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer); +} +#line 7767 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 596: +#line 3276 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + // 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 7777 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 597: +#line 3282 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + // 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 7787 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 598: +#line 3288 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::get_nullptr()); +} +#line 7795 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 599: +#line 3292 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = NULL; +} +#line 7803 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 600: +#line 3296 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = NULL; +} +#line 7811 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 601: +#line 3310 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 7819 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 602: +#line 3314 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); +} +#line 7827 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 603: +#line 3318 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_static_cast)); +} +#line 7835 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 604: +#line 3322 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_dynamic_cast)); +} +#line 7843 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 605: +#line 3326 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_const_cast)); +} +#line 7851 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 606: +#line 3330 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr), CPPExpression::T_reinterpret_cast)); +} +#line 7859 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 607: +#line 3334 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); +} +#line 7867 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + case 608: -#line 3247 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3338 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[-1].u.type))); +} +#line 7875 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 609: +#line 3342 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[0].u.type))); +} +#line 7883 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 610: +#line 3346 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[-3].u.type), (yyvsp[-1].u.expr))); +} +#line 7891 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 611: +#line 3350 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + CPPIdentifier ident(""); + ident.add_name("std"); + ident.add_name("type_info"); + CPPType *std_type_info = ident.find_type(current_scope, global_scope, false, current_lexer); + if (!std_type_info) { + yywarning("cannot use typeid before including ", (yylsp[-3])); + } + (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.type), std_type_info)); +} +#line 7906 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 612: +#line 3361 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPIdentifier ident(""); ident.add_name("std"); @@ -7730,343 +7917,343 @@ yyreduce: } (yyval.u.expr) = new CPPExpression(CPPExpression::typeid_op((yyvsp[-1].u.expr), std_type_info)); } -#line 7734 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 609: -#line 3258 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); -} -#line 7742 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 610: -#line 3262 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); -} -#line 7750 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 611: -#line 3266 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); -} -#line 7758 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 612: -#line 3270 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[0].u.expr)); -} -#line 7766 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7921 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 613: -#line 3274 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3372 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); } -#line 7774 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7929 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 614: -#line 3278 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3376 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); } -#line 7782 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7937 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 615: -#line 3282 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3380 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); } -#line 7790 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7945 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 616: -#line 3286 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3384 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_PLUS, (yyvsp[0].u.expr)); } -#line 7798 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7953 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 617: -#line 3290 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3388 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); } -#line 7806 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7961 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 618: -#line 3294 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3392 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7814 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7969 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 619: -#line 3298 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3396 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7822 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7977 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 620: -#line 3302 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3400 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7830 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7985 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 621: -#line 3306 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3404 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7838 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 7993 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 622: -#line 3310 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3408 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7846 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8001 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 623: -#line 3314 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3412 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7854 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8009 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 624: -#line 3318 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3416 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('^', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7862 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8017 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 625: -#line 3322 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3420 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7870 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8025 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 626: -#line 3326 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3424 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7878 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8033 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 627: -#line 3330 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3428 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7886 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8041 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 628: -#line 3334 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3432 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('<', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7894 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8049 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 629: -#line 3338 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3436 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('>', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7902 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8057 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 630: -#line 3342 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3440 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7910 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8065 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 631: -#line 3346 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3444 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7918 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8073 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 632: -#line 3350 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3448 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('<', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7926 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8081 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 633: -#line 3354 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3452 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); + (yyval.u.expr) = new CPPExpression('>', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7934 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8089 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 634: -#line 3358 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3456 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); + (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7942 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8097 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 635: -#line 3362 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3460 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); + (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7950 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8105 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 636: -#line 3366 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3464 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7958 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8113 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 637: -#line 3370 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3468 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); + (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } -#line 7966 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8121 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 638: -#line 3374 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3472 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[-1].u.expr); + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); } -#line 7974 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8129 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 639: -#line 3381 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3476 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); } -#line 7982 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8137 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 640: -#line 3385 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3480 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(true); + (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7990 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8145 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 641: -#line 3389 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3484 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression(false); + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); } -#line 7998 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8153 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 642: -#line 3393 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3488 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); + (yyval.u.expr) = (yyvsp[-1].u.expr); } -#line 8006 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8161 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 643: -#line 3397 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3495 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[0].u.real)); + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); } -#line 8014 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8169 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 644: -#line 3401 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3499 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[0].u.expr); + (yyval.u.expr) = new CPPExpression(true); } -#line 8022 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8177 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 645: -#line 3405 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3503 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[0].u.expr); + (yyval.u.expr) = new CPPExpression(false); } -#line 8030 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8185 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 646: -#line 3409 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3507 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer); + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); } -#line 8038 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8193 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 647: -#line 3413 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3511 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.real)); +} +#line 8201 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 648: +#line 3515 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 8209 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 649: +#line 3519 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 8217 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 650: +#line 3523 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer); +} +#line 8225 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 651: +#line 3527 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // 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 8048 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8235 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 648: -#line 3419 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 652: +#line 3533 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // 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 8058 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8245 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 649: -#line 3425 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 653: +#line 3539 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { (yyval.u.expr) = new CPPExpression(CPPExpression::get_nullptr()); } -#line 8066 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8253 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 657: -#line 3446 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 661: +#line 3560 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, true); if (type == NULL) { @@ -8074,11 +8261,11 @@ yyreduce: } (yyval.u.type) = type; } -#line 8078 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8265 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 658: -#line 3454 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 662: +#line 3568 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, true, current_lexer); if (type == NULL) { @@ -8086,135 +8273,143 @@ yyreduce: } (yyval.u.type) = type; } -#line 8090 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 659: -#line 3462 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); -} -#line 8098 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 660: -#line 3490 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.identifier) = (yyvsp[0].u.identifier); -} -#line 8106 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 661: -#line 3494 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.identifier) = (yyvsp[0].u.identifier); -} -#line 8114 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 662: -#line 3498 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.identifier) = new CPPIdentifier("final", (yylsp[0])); -} -#line 8122 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8277 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 663: -#line 3502 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3576 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[0])); + (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); } -#line 8130 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8285 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 664: -#line 3506 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3604 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.identifier) = (yyvsp[0].u.identifier); +} +#line 8293 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 665: +#line 3608 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.identifier) = (yyvsp[0].u.identifier); +} +#line 8301 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 666: +#line 3612 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.identifier) = new CPPIdentifier("final", (yylsp[0])); +} +#line 8309 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 667: +#line 3616 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[0])); +} +#line 8317 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 668: +#line 3620 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // 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 8140 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 665: -#line 3512 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.identifier) = new CPPIdentifier("float", (yylsp[0])); -} -#line 8148 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 666: -#line 3516 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.identifier) = new CPPIdentifier("public", (yylsp[0])); -} -#line 8156 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 667: -#line 3520 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.identifier) = new CPPIdentifier("private", (yylsp[0])); -} -#line 8164 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ - break; - - case 668: -#line 3531 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ - { - (yyval.u.identifier) = (yyvsp[0].u.identifier); -} -#line 8172 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8327 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 669: -#line 3535 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3626 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.identifier) = (yyvsp[0].u.identifier); + (yyval.u.identifier) = new CPPIdentifier("float", (yylsp[0])); } -#line 8180 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8335 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 670: -#line 3539 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3630 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[0])); + (yyval.u.identifier) = new CPPIdentifier("public", (yylsp[0])); } -#line 8188 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8343 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 671: -#line 3547 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3634 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = new CPPExpression((yyvsp[0].str)); + (yyval.u.identifier) = new CPPIdentifier("private", (yylsp[0])); } -#line 8196 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8351 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 672: -#line 3551 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3638 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { - (yyval.u.expr) = (yyvsp[0].u.expr); + (yyval.u.identifier) = new CPPIdentifier("static", (yylsp[0])); } -#line 8204 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8359 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; case 673: -#line 3555 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ +#line 3649 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.identifier) = (yyvsp[0].u.identifier); +} +#line 8367 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 674: +#line 3653 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.identifier) = (yyvsp[0].u.identifier); +} +#line 8375 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 675: +#line 3657 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.identifier) = new CPPIdentifier("override", (yylsp[0])); +} +#line 8383 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 676: +#line 3665 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].str)); +} +#line 8391 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 677: +#line 3669 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} +#line 8399 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ + break; + + case 678: +#line 3673 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // 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 8214 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8409 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; - case 674: -#line 3561 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ + case 679: +#line 3679 "dtool/src/cppparser/cppBison.yxx" /* yacc.c:1646 */ { // We have to check that the two literal types match up. (yyval.u.expr) = (yyvsp[-1].u.expr); @@ -8223,11 +8418,11 @@ yyreduce: } (yyval.u.expr)->_str += (yyvsp[0].u.expr)->_str; } -#line 8227 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8422 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ break; -#line 8231 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ +#line 8426 "built/tmp/cppBison.yxx.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires diff --git a/dtool/src/cppparser/cppBison.h.prebuilt b/dtool/src/cppparser/cppBison.h.prebuilt index 75d9fe4c15..412b128300 100644 --- a/dtool/src/cppparser/cppBison.h.prebuilt +++ b/dtool/src/cppparser/cppBison.h.prebuilt @@ -124,48 +124,50 @@ extern int cppyydebug; KW_INLINE = 334, KW_INT = 335, KW_LONG = 336, - KW_MAKE_PROPERTY = 337, - KW_MAKE_PROPERTY2 = 338, - KW_MAKE_SEQ = 339, - KW_MUTABLE = 340, - KW_NAMESPACE = 341, - KW_NEW = 342, - KW_NOEXCEPT = 343, - KW_NULLPTR = 344, - KW_OPERATOR = 345, - KW_OVERRIDE = 346, - KW_PRIVATE = 347, - KW_PROTECTED = 348, - KW_PUBLIC = 349, - KW_REGISTER = 350, - KW_REINTERPRET_CAST = 351, - KW_RETURN = 352, - KW_SHORT = 353, - KW_SIGNED = 354, - KW_SIZEOF = 355, - KW_STATIC = 356, - KW_STATIC_ASSERT = 357, - KW_STATIC_CAST = 358, - KW_STRUCT = 359, - KW_TEMPLATE = 360, - KW_THREAD_LOCAL = 361, - KW_THROW = 362, - KW_TRUE = 363, - KW_TRY = 364, - KW_TYPEDEF = 365, - KW_TYPEID = 366, - KW_TYPENAME = 367, - KW_UNION = 368, - KW_UNSIGNED = 369, - KW_USING = 370, - KW_VIRTUAL = 371, - KW_VOID = 372, - KW_VOLATILE = 373, - KW_WCHAR_T = 374, - KW_WHILE = 375, - START_CPP = 376, - START_CONST_EXPR = 377, - START_TYPE = 378 + KW_MAKE_MAP_PROPERTY = 337, + KW_MAKE_PROPERTY = 338, + KW_MAKE_PROPERTY2 = 339, + KW_MAKE_SEQ = 340, + KW_MAKE_SEQ_PROPERTY = 341, + KW_MUTABLE = 342, + KW_NAMESPACE = 343, + KW_NEW = 344, + KW_NOEXCEPT = 345, + KW_NULLPTR = 346, + KW_OPERATOR = 347, + KW_OVERRIDE = 348, + KW_PRIVATE = 349, + KW_PROTECTED = 350, + KW_PUBLIC = 351, + KW_REGISTER = 352, + KW_REINTERPRET_CAST = 353, + KW_RETURN = 354, + KW_SHORT = 355, + KW_SIGNED = 356, + KW_SIZEOF = 357, + KW_STATIC = 358, + KW_STATIC_ASSERT = 359, + KW_STATIC_CAST = 360, + KW_STRUCT = 361, + KW_TEMPLATE = 362, + KW_THREAD_LOCAL = 363, + KW_THROW = 364, + KW_TRUE = 365, + KW_TRY = 366, + KW_TYPEDEF = 367, + KW_TYPEID = 368, + KW_TYPENAME = 369, + KW_UNION = 370, + KW_UNSIGNED = 371, + KW_USING = 372, + KW_VIRTUAL = 373, + KW_VOID = 374, + KW_VOLATILE = 375, + KW_WCHAR_T = 376, + KW_WHILE = 377, + START_CPP = 378, + START_CONST_EXPR = 379, + START_TYPE = 380 }; #endif /* Tokens. */ @@ -248,48 +250,50 @@ extern int cppyydebug; #define KW_INLINE 334 #define KW_INT 335 #define KW_LONG 336 -#define KW_MAKE_PROPERTY 337 -#define KW_MAKE_PROPERTY2 338 -#define KW_MAKE_SEQ 339 -#define KW_MUTABLE 340 -#define KW_NAMESPACE 341 -#define KW_NEW 342 -#define KW_NOEXCEPT 343 -#define KW_NULLPTR 344 -#define KW_OPERATOR 345 -#define KW_OVERRIDE 346 -#define KW_PRIVATE 347 -#define KW_PROTECTED 348 -#define KW_PUBLIC 349 -#define KW_REGISTER 350 -#define KW_REINTERPRET_CAST 351 -#define KW_RETURN 352 -#define KW_SHORT 353 -#define KW_SIGNED 354 -#define KW_SIZEOF 355 -#define KW_STATIC 356 -#define KW_STATIC_ASSERT 357 -#define KW_STATIC_CAST 358 -#define KW_STRUCT 359 -#define KW_TEMPLATE 360 -#define KW_THREAD_LOCAL 361 -#define KW_THROW 362 -#define KW_TRUE 363 -#define KW_TRY 364 -#define KW_TYPEDEF 365 -#define KW_TYPEID 366 -#define KW_TYPENAME 367 -#define KW_UNION 368 -#define KW_UNSIGNED 369 -#define KW_USING 370 -#define KW_VIRTUAL 371 -#define KW_VOID 372 -#define KW_VOLATILE 373 -#define KW_WCHAR_T 374 -#define KW_WHILE 375 -#define START_CPP 376 -#define START_CONST_EXPR 377 -#define START_TYPE 378 +#define KW_MAKE_MAP_PROPERTY 337 +#define KW_MAKE_PROPERTY 338 +#define KW_MAKE_PROPERTY2 339 +#define KW_MAKE_SEQ 340 +#define KW_MAKE_SEQ_PROPERTY 341 +#define KW_MUTABLE 342 +#define KW_NAMESPACE 343 +#define KW_NEW 344 +#define KW_NOEXCEPT 345 +#define KW_NULLPTR 346 +#define KW_OPERATOR 347 +#define KW_OVERRIDE 348 +#define KW_PRIVATE 349 +#define KW_PROTECTED 350 +#define KW_PUBLIC 351 +#define KW_REGISTER 352 +#define KW_REINTERPRET_CAST 353 +#define KW_RETURN 354 +#define KW_SHORT 355 +#define KW_SIGNED 356 +#define KW_SIZEOF 357 +#define KW_STATIC 358 +#define KW_STATIC_ASSERT 359 +#define KW_STATIC_CAST 360 +#define KW_STRUCT 361 +#define KW_TEMPLATE 362 +#define KW_THREAD_LOCAL 363 +#define KW_THROW 364 +#define KW_TRUE 365 +#define KW_TRY 366 +#define KW_TYPEDEF 367 +#define KW_TYPEID 368 +#define KW_TYPENAME 369 +#define KW_UNION 370 +#define KW_UNSIGNED 371 +#define KW_USING 372 +#define KW_VIRTUAL 373 +#define KW_VOID 374 +#define KW_VOLATILE 375 +#define KW_WCHAR_T 376 +#define KW_WHILE 377 +#define START_CPP 378 +#define START_CONST_EXPR 379 +#define START_TYPE 380 /* Value type. */ diff --git a/dtool/src/cppparser/cppBison.yxx b/dtool/src/cppparser/cppBison.yxx index f71c5a7fd9..4efed60ce1 100644 --- a/dtool/src/cppparser/cppBison.yxx +++ b/dtool/src/cppparser/cppBison.yxx @@ -284,9 +284,11 @@ pop_struct() { %token KW_INLINE %token KW_INT %token KW_LONG +%token KW_MAKE_MAP_PROPERTY %token KW_MAKE_PROPERTY %token KW_MAKE_PROPERTY2 %token KW_MAKE_SEQ +%token KW_MAKE_SEQ_PROPERTY %token KW_MUTABLE %token KW_NAMESPACE %token KW_NEW @@ -550,6 +552,118 @@ declaration: setter_func, current_scope, @1.file); current_scope->add_declaration(make_property, global_scope, current_lexer, @1); } +} + | KW_MAKE_PROPERTY '(' name ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ')' ';' +{ + CPPDeclaration *getter = $5->find_symbol(current_scope, global_scope, current_lexer); + if (getter == (CPPDeclaration *)NULL || getter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("Reference to non-existent or invalid getter: " + $5->get_fully_scoped_name(), @5); + + } else { + CPPDeclaration *setter = $7->find_symbol(current_scope, global_scope, current_lexer); + CPPFunctionGroup *setter_func = NULL; + + if (setter == (CPPDeclaration *)NULL || setter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("Reference to non-existent or invalid setter: " + $7->get_fully_scoped_name(), @7); + } else { + setter_func = setter->as_function_group(); + } + + CPPDeclaration *deleter = $9->find_symbol(current_scope, global_scope, current_lexer); + if (deleter == (CPPDeclaration *)NULL || deleter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("reference to non-existent or invalid delete method: " + $9->get_fully_scoped_name(), @9); + deleter = NULL; + } + + CPPMakeProperty *make_property = new CPPMakeProperty($3, getter->as_function_group(), + setter_func, current_scope, @1.file); + if (deleter) { + make_property->_del_function = deleter->as_function_group(); + } + current_scope->add_declaration(make_property, global_scope, current_lexer, @1); + } +} + | KW_MAKE_SEQ_PROPERTY '(' name ',' IDENTIFIER ',' IDENTIFIER ')' ';' +{ + CPPDeclaration *length_getter = $5->find_symbol(current_scope, global_scope, current_lexer); + if (length_getter == (CPPDeclaration *)NULL || length_getter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("reference to non-existent or invalid length method: " + $5->get_fully_scoped_name(), @5); + length_getter = NULL; + } + + CPPDeclaration *getter = $7->find_symbol(current_scope, global_scope, current_lexer); + if (getter == (CPPDeclaration *)NULL || getter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("Reference to non-existent or invalid getter: " + $7->get_fully_scoped_name(), @7); + } + + CPPMakeProperty *make_property = new CPPMakeProperty($3, getter->as_function_group(), NULL, current_scope, @1.file); + make_property->_length_function = length_getter->as_function_group(); + current_scope->add_declaration(make_property, global_scope, current_lexer, @1); +} + | KW_MAKE_SEQ_PROPERTY '(' name ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ')' ';' +{ + CPPDeclaration *length_getter = $5->find_symbol(current_scope, global_scope, current_lexer); + if (length_getter == (CPPDeclaration *)NULL || length_getter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("reference to non-existent or invalid length method: " + $5->get_fully_scoped_name(), @5); + length_getter = NULL; + } + + CPPDeclaration *getter = $7->find_symbol(current_scope, global_scope, current_lexer); + if (getter == (CPPDeclaration *)NULL || getter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("Reference to non-existent or invalid getter: " + $7->get_fully_scoped_name(), @7); + + } else { + CPPDeclaration *setter = $9->find_symbol(current_scope, global_scope, current_lexer); + CPPFunctionGroup *setter_func = NULL; + + if (setter == (CPPDeclaration *)NULL || setter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("Reference to non-existent or invalid setter: " + $9->get_fully_scoped_name(), @9); + } else { + setter_func = setter->as_function_group(); + } + + CPPMakeProperty *make_property = new CPPMakeProperty($3, getter->as_function_group(), + setter_func, current_scope, @1.file); + make_property->_length_function = length_getter->as_function_group(); + current_scope->add_declaration(make_property, global_scope, current_lexer, @1); + } +} + | KW_MAKE_SEQ_PROPERTY '(' name ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ')' ';' +{ + CPPDeclaration *length_getter = $5->find_symbol(current_scope, global_scope, current_lexer); + if (length_getter == (CPPDeclaration *)NULL || length_getter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("reference to non-existent or invalid length method: " + $5->get_fully_scoped_name(), @5); + length_getter = NULL; + } + + CPPDeclaration *getter = $7->find_symbol(current_scope, global_scope, current_lexer); + if (getter == (CPPDeclaration *)NULL || getter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("Reference to non-existent or invalid getter: " + $7->get_fully_scoped_name(), @7); + + } else { + CPPDeclaration *setter = $9->find_symbol(current_scope, global_scope, current_lexer); + CPPFunctionGroup *setter_func = NULL; + + if (setter == (CPPDeclaration *)NULL || setter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("Reference to non-existent or invalid setter: " + $9->get_fully_scoped_name(), @9); + } else { + setter_func = setter->as_function_group(); + } + + CPPDeclaration *deleter = $11->find_symbol(current_scope, global_scope, current_lexer); + if (deleter == (CPPDeclaration *)NULL || deleter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("reference to non-existent or invalid delete method: " + $11->get_fully_scoped_name(), @11); + deleter = NULL; + } + + CPPMakeProperty *make_property = new CPPMakeProperty($3, getter->as_function_group(), + setter_func, current_scope, @1.file); + make_property->_length_function = length_getter->as_function_group(); + if (deleter) { + make_property->_del_function = deleter->as_function_group(); + } + current_scope->add_declaration(make_property, global_scope, current_lexer, @1); + } } | KW_MAKE_PROPERTY2 '(' name ',' IDENTIFIER ',' IDENTIFIER ')' ';' { @@ -3519,6 +3633,10 @@ name: | KW_PRIVATE { $$ = new CPPIdentifier("private", @1); +} + | KW_STATIC +{ + $$ = new CPPIdentifier("static", @1); } ; diff --git a/dtool/src/cppparser/cppMakeProperty.cxx b/dtool/src/cppparser/cppMakeProperty.cxx index 78ea191092..c65fcf93b6 100644 --- a/dtool/src/cppparser/cppMakeProperty.cxx +++ b/dtool/src/cppparser/cppMakeProperty.cxx @@ -23,10 +23,12 @@ CPPMakeProperty(CPPIdentifier *ident, CPPScope *current_scope, const CPPFile &file) : CPPDeclaration(file), _ident(ident), + _length_function(NULL), _has_function(NULL), _get_function(getter), _set_function(setter), - _clear_function(NULL) + _clear_function(NULL), + _del_function(NULL) { _ident->_native_scope = current_scope; } @@ -41,10 +43,12 @@ CPPMakeProperty(CPPIdentifier *ident, CPPScope *current_scope, const CPPFile &file) : CPPDeclaration(file), _ident(ident), + _length_function(NULL), _has_function(hasser), _get_function(getter), _set_function(setter), - _clear_function(clearer) + _clear_function(clearer), + _del_function(NULL) { _ident->_native_scope = current_scope; } @@ -78,7 +82,11 @@ get_fully_scoped_name() const { */ void CPPMakeProperty:: output(ostream &out, int indent_level, CPPScope *scope, bool complete) const { - out << "__make_property"; + if (_length_function != NULL) { + out << "__make_seq_property"; + } else { + out << "__make_property"; + } if (_has_function != NULL) { out.put('2'); @@ -86,6 +94,10 @@ output(ostream &out, int indent_level, CPPScope *scope, bool complete) const { out << "(" << _ident->get_local_name(scope); + if (_length_function != NULL) { + out << ", " << _length_function->_name; + } + if (_has_function != NULL) { out << ", " << _has_function->_name; } @@ -100,6 +112,10 @@ output(ostream &out, int indent_level, CPPScope *scope, bool complete) const { out << ", " << _clear_function->_name; } + if (_del_function != NULL) { + out << ", " << _del_function->_name; + } + out << ");"; } diff --git a/dtool/src/cppparser/cppMakeProperty.h b/dtool/src/cppparser/cppMakeProperty.h index 40308e4b14..44a1a5671a 100644 --- a/dtool/src/cppparser/cppMakeProperty.h +++ b/dtool/src/cppparser/cppMakeProperty.h @@ -46,10 +46,14 @@ public: virtual CPPMakeProperty *as_make_property(); CPPIdentifier *_ident; + // If length_function is not NULL, this is actually a sequence property, + // and the other functions take an additional index argument. + CPPFunctionGroup *_length_function; CPPFunctionGroup *_has_function; CPPFunctionGroup *_get_function; CPPFunctionGroup *_set_function; CPPFunctionGroup *_clear_function; + CPPFunctionGroup *_del_function; }; #endif diff --git a/dtool/src/cppparser/cppPreprocessor.cxx b/dtool/src/cppparser/cppPreprocessor.cxx index 6b382161db..24116a240a 100644 --- a/dtool/src/cppparser/cppPreprocessor.cxx +++ b/dtool/src/cppparser/cppPreprocessor.cxx @@ -2458,9 +2458,11 @@ check_keyword(const string &name) { if (name == "__inline__") return KW_INLINE; if (name == "int") return KW_INT; if (name == "long") return KW_LONG; + if (name == "__make_map_property") return KW_MAKE_MAP_PROPERTY; if (name == "__make_property") return KW_MAKE_PROPERTY; if (name == "__make_property2") return KW_MAKE_PROPERTY2; if (name == "__make_seq") return KW_MAKE_SEQ; + if (name == "__make_seq_property") return KW_MAKE_SEQ_PROPERTY; if (name == "mutable") return KW_MUTABLE; if (name == "namespace") return KW_NAMESPACE; if (name == "noexcept") return KW_NOEXCEPT; diff --git a/dtool/src/dtoolbase/dtoolbase.h b/dtool/src/dtoolbase/dtoolbase.h index cfa1d9b0e3..e3c346d4a0 100644 --- a/dtool/src/dtoolbase/dtoolbase.h +++ b/dtool/src/dtoolbase/dtoolbase.h @@ -415,6 +415,7 @@ typedef struct _object PyObject; #define MAKE_PROPERTY(property_name, ...) __make_property(property_name, __VA_ARGS__) #define MAKE_PROPERTY2(property_name, ...) __make_property2(property_name, __VA_ARGS__) #define MAKE_SEQ(seq_name, num_name, element_name) __make_seq(seq_name, num_name, element_name) +#define MAKE_SEQ_PROPERTY(property_name, ...) __make_seq_property(property_name, __VA_ARGS__) #undef USE_STL_ALLOCATOR /* Don't try to parse these template classes in interrogate. */ #define EXTENSION(x) __extension x #define EXTEND __extension @@ -425,6 +426,7 @@ typedef struct _object PyObject; #define MAKE_PROPERTY(property_name, ...) #define MAKE_PROPERTY2(property_name, ...) #define MAKE_SEQ(seq_name, num_name, element_name) +#define MAKE_SEQ_PROPERTY(property_name, ...) #define EXTENSION(x) #define EXTEND #endif diff --git a/dtool/src/dtoolbase/typeHandle.h b/dtool/src/dtoolbase/typeHandle.h index ca0d1874f6..fe611c2fd1 100644 --- a/dtool/src/dtoolbase/typeHandle.h +++ b/dtool/src/dtoolbase/typeHandle.h @@ -114,6 +114,8 @@ PUBLISHED: MAKE_PROPERTY(index, get_index); MAKE_PROPERTY(name, get_name); + MAKE_SEQ_PROPERTY(parent_classes, get_num_parent_classes, get_parent_class); + MAKE_SEQ_PROPERTY(child_classes, get_num_child_classes, get_child_class); public: INLINE static TypeHandle from_index(int index); diff --git a/dtool/src/dtoolbase/typeRegistry.h b/dtool/src/dtoolbase/typeRegistry.h index 6c668a6190..828cee6c8c 100644 --- a/dtool/src/dtoolbase/typeRegistry.h +++ b/dtool/src/dtoolbase/typeRegistry.h @@ -79,6 +79,9 @@ PUBLISHED: // ptr() returns the pointer to the global TypeRegistry object. static TypeRegistry *ptr(); + MAKE_SEQ_PROPERTY(typehandles, get_num_typehandles, get_typehandle); + MAKE_SEQ_PROPERTY(root_classes, get_num_root_classes, get_root_class); + private: // The TypeRegistry class should never be constructed by user code. There // is only one in the universe, and it constructs itself! diff --git a/dtool/src/dtoolutil/dSearchPath.h b/dtool/src/dtoolutil/dSearchPath.h index 712e77be4c..67cbd61135 100644 --- a/dtool/src/dtoolutil/dSearchPath.h +++ b/dtool/src/dtoolutil/dSearchPath.h @@ -71,6 +71,7 @@ PUBLISHED: size_t get_num_directories() const; const Filename &get_directory(size_t n) const; MAKE_SEQ(get_directories, get_num_directories, get_directory); + MAKE_SEQ_PROPERTY(directories, get_num_directories, get_directory); Filename find_file(const Filename &filename) const; size_t find_all_files(const Filename &filename, Results &results) const; diff --git a/dtool/src/dtoolutil/pandaSystem.h b/dtool/src/dtoolutil/pandaSystem.h index a401440b6b..d88e3b92a3 100644 --- a/dtool/src/dtoolutil/pandaSystem.h +++ b/dtool/src/dtoolutil/pandaSystem.h @@ -50,6 +50,7 @@ PUBLISHED: size_t get_num_systems() const; string get_system(size_t n) const; MAKE_SEQ(get_systems, get_num_systems, get_system); + MAKE_SEQ_PROPERTY(systems, get_num_systems, get_system); string get_system_tag(const string &system, const string &tag) const; diff --git a/dtool/src/interrogate/interfaceMaker.cxx b/dtool/src/interrogate/interfaceMaker.cxx index 6a7c63e40f..a653dc4438 100644 --- a/dtool/src/interrogate/interfaceMaker.cxx +++ b/dtool/src/interrogate/interfaceMaker.cxx @@ -86,10 +86,12 @@ MakeSeq(const string &name, const InterrogateMakeSeq &imake_seq) : InterfaceMaker::Property:: Property(const InterrogateElement &ielement) : _ielement(ielement), + _length_function(NULL), _getter(NULL), _setter(NULL), _has_function(NULL), - _clear_function(NULL) + _clear_function(NULL), + _deleter(NULL) { } diff --git a/dtool/src/interrogate/interfaceMaker.h b/dtool/src/interrogate/interfaceMaker.h index f76975d592..c84714eb51 100644 --- a/dtool/src/interrogate/interfaceMaker.h +++ b/dtool/src/interrogate/interfaceMaker.h @@ -126,10 +126,12 @@ public: Property(const InterrogateElement &ielement); const InterrogateElement &_ielement; + Function *_length_function; Function *_getter; Function *_setter; Function *_has_function; Function *_clear_function; + Function *_deleter; }; typedef vector Properties; diff --git a/dtool/src/interrogate/interfaceMakerPythonNative.cxx b/dtool/src/interrogate/interfaceMakerPythonNative.cxx index 69be99605f..37932246db 100644 --- a/dtool/src/interrogate/interfaceMakerPythonNative.cxx +++ b/dtool/src/interrogate/interfaceMakerPythonNative.cxx @@ -1013,13 +1013,21 @@ write_class_details(ostream &out, Object *obj) { } // Write the constructors. + std::string fname = "static int Dtool_Init_" + ClassName + "(PyObject *self, PyObject *args, PyObject *kwds)"; for (fi = obj->_constructors.begin(); fi != obj->_constructors.end(); ++fi) { Function *func = (*fi); - std::string fname = "static int Dtool_Init_" + ClassName + "(PyObject *self, PyObject *args, PyObject *kwds)"; string expected_params; write_function_for_name(out, obj, func->_remaps, fname, expected_params, true, AT_keyword_args, RF_int); } + if (obj->_constructors.size() == 0) { + // We still need to write a dummy constructor to prevent inheriting the + // constructor from a base class. + out << fname << " {\n" + " Dtool_Raise_TypeError(\"cannot init abstract class\");\n" + " return -1;\n" + "}\n\n"; + } CPPType *cpptype = TypeManager::resolve_type(obj->_itype._cpptype); @@ -2618,7 +2626,8 @@ write_module_class(ostream &out, Object *obj) { string getter = "&Dtool_" + ClassName + "_" + ielem.get_name() + "_Getter"; string setter = "NULL"; - if (property->_setter != NULL && is_function_legal(property->_setter)) { + if (property->_length_function == NULL && + property->_setter != NULL && is_function_legal(property->_setter)) { setter = "&Dtool_" + ClassName + "_" + ielem.get_name() + "_Setter"; } @@ -2931,11 +2940,7 @@ write_module_class(ostream &out, Object *obj) { // Py_ssize_t tp_dictoffset; out << " 0, // tp_dictoffset\n"; // initproc tp_init; - if (obj->_constructors.size() > 0) { - out << " Dtool_Init_" << ClassName << ",\n"; - } else { - out << " 0,\n"; - } + out << " Dtool_Init_" << ClassName << ",\n"; // allocfunc tp_alloc; out << " PyType_GenericAlloc,\n"; // newfunc tp_new; @@ -3970,13 +3975,7 @@ collapse_default_remaps(std::map > &map_sets, goto abort_iteration; } } - } else if (TypeManager::is_bool(type)) { - } else if (TypeManager::is_char(type)) { - } else if (TypeManager::is_wchar(type)) { - goto abort_iteration; - } else if (TypeManager::is_longlong(type)) { } else if (TypeManager::is_integer(type)) { - } else if (TypeManager::is_double(type)) { } else if (TypeManager::is_float(type)) { } else if (TypeManager::is_const_char_pointer(type)) { } else if (TypeManager::is_pointer_to_PyTypeObject(type)) { @@ -6138,8 +6137,9 @@ void InterfaceMakerPythonNative:: write_make_seq(ostream &out, Object *obj, const std::string &ClassName, const std::string &cClassName, MakeSeq *make_seq) { - out << "/******************************************************************\n" << " * Python make_seq wrapper\n"; - out << " *******************************************************************/\n"; + out << "/*\n" + " * Python make_seq wrapper\n" + " */\n"; out << "static PyObject *" << make_seq->_name + "(PyObject *self, PyObject *) {\n"; @@ -6228,10 +6228,156 @@ write_getset(ostream &out, Object *obj, Property *property) { const InterrogateElement &ielem = property->_ielement; - if (property->_getter != NULL) { + if (property->_length_function != NULL) { + // This is actually a sequence. Wrap this with a special class. + FunctionRemap *len_remap = property->_length_function->_remaps.front(); + vector_string pexprs; + + out << "/**\n" + " * sequence length function for property " << cClassName << "::" << ielem.get_name() << "\n" + " */\n" + "static Py_ssize_t Dtool_" + ClassName + "_" + ielem.get_name() + "_Len(PyObject *self) {\n"; + if (property->_length_function->_has_this) { + out << + " " << cClassName << " *local_this = NULL;\n" + " if (!Dtool_Call_ExtractThisPointer(self, Dtool_" << ClassName << ", (void **)&local_this)) {\n" + " return NULL;\n" + " }\n" + " return (Py_ssize_t)" << len_remap->get_call_str("local_this", pexprs) << ";\n"; + } else { + out << " return (Py_ssize_t)" << len_remap->get_call_str("", pexprs) << ";\n"; + } + out << "}\n\n"; + + // Now write out the getitem helper function. + if (property->_getter != NULL) { + out << + "/**\n" + " * sequence getter for property " << cClassName << "::" << ielem.get_name() << "\n" + " */\n" + "static PyObject *Dtool_" + ClassName + "_" + ielem.get_name() + "_Getitem(PyObject *self, Py_ssize_t index) {\n" + " " << cClassName << " *local_this = NULL;\n" + " if (!Dtool_Call_ExtractThisPointer(self, Dtool_" << ClassName << ", (void **)&local_this)) {\n" + " return NULL;\n" + " }\n"; + + // This is a getitem of a sequence type. This means we *need* to raise + // IndexError if we're out of bounds. + out << " if (index < 0 || index >= (Py_ssize_t)" + << len_remap->get_call_str("local_this", pexprs) << ") {\n"; + out << " PyErr_SetString(PyExc_IndexError, \"" << ClassName << "." << ielem.get_name() << "[] index out of range\");\n"; + out << " return NULL;\n"; + out << " }\n"; + + if (property->_has_function != NULL) { + out << " if (!local_this->" << property->_has_function->_ifunc.get_name() << "(index)) {\n" + << " Py_INCREF(Py_None);\n" + << " return Py_None;\n" + << " }\n"; + } + + std::set remaps; + + // Extract only the getters that take one argument. + Function::Remaps::iterator it; + for (it = property->_getter->_remaps.begin(); + it != property->_getter->_remaps.end(); + ++it) { + FunctionRemap *remap = *it; + int min_num_args = remap->get_min_num_args(); + int max_num_args = remap->get_max_num_args(); + if (min_num_args <= 1 && max_num_args >= 1) { + remaps.insert(remap); + } + } + + string expected_params; + write_function_forset(out, remaps, 1, 1, expected_params, 2, true, true, + AT_no_args, RF_pyobject | RF_err_null, false, true, "index"); + + out << " if (!_PyErr_OCCURRED()) {\n"; + out << " return Dtool_Raise_BadArgumentsError(\n"; + output_quoted(out, 6, expected_params); + out << ");\n" + " }\n" + "}\n\n"; + } + + // Write out a setitem if this is not a read-only property. + if (property->_setter != NULL) { + out << "static int Dtool_" + ClassName + "_" + ielem.get_name() + "_Setitem(PyObject *self, Py_ssize_t index, PyObject *arg) {\n"; + out << " " << cClassName << " *local_this = NULL;\n"; + out << " if (!Dtool_Call_ExtractThisPointer_NonConst(self, Dtool_" << ClassName << ", (void **)&local_this, \"" + << classNameFromCppName(cClassName, false) << "." << ielem.get_name() << "\")) {\n"; + out << " return -1;\n"; + out << " }\n\n"; + + out << " if (arg == (PyObject *)NULL) {\n"; + if (property->_deleter != NULL) { + out << " local_this->" << property->_deleter->_ifunc.get_name() << "(index);\n" + << " return 0;\n"; + } else { + out << " Dtool_Raise_TypeError(\"can't delete " << ielem.get_name() << "[] attribute\");\n" + " return -1;\n"; + } + out << " }\n"; + + if (property->_clear_function != NULL) { + out << " if (arg == Py_None) {\n" + << " local_this->" << property->_clear_function->_ifunc.get_name() << "(index);\n" + << " return 0;\n" + << " }\n"; + } + + std::set remaps; + + // Extract only the setters that take two arguments. + Function::Remaps::iterator it; + for (it = property->_setter->_remaps.begin(); + it != property->_setter->_remaps.end(); + ++it) { + FunctionRemap *remap = *it; + int min_num_args = remap->get_min_num_args(); + int max_num_args = remap->get_max_num_args(); + if (min_num_args <= 2 && max_num_args >= 2) { + remaps.insert(remap); + } + } + + string expected_params; + write_function_forset(out, remaps, 2, 2, + expected_params, 2, true, true, AT_single_arg, + RF_int, false, false, "index"); + + out << " if (!_PyErr_OCCURRED()) {\n"; + out << " Dtool_Raise_BadArgumentsError(\n"; + output_quoted(out, 6, expected_params); + out << ");\n"; + out << " }\n"; + out << " return -1;\n"; + out << "}\n\n"; + } + + // Now write the getter, which returns a special wrapper object. + out << "static PyObject *Dtool_" + ClassName + "_" + ielem.get_name() + "_Getter(PyObject *self, void *) {\n" + " Py_INCREF(self);\n" + " Dtool_SequenceWrapper *wrap = PyObject_New(Dtool_SequenceWrapper, &Dtool_SequenceWrapper_Type);\n" + " wrap->_base = self;\n" + " wrap->_len_func = &Dtool_" << ClassName << "_" << ielem.get_name() << "_Len;\n" + " wrap->_getitem_func = &Dtool_" << ClassName << "_" << ielem.get_name() << "_Getitem;\n"; + if (property->_setter != NULL) { + out << " wrap->_setitem_func = &Dtool_" << ClassName << "_" << ielem.get_name() << "_Setitem;\n"; + } else { + out << " wrap->_setitem_func = NULL;\n"; + } + out << " return (PyObject *)wrap;\n" + "}\n\n"; + + } else if (property->_getter != NULL) { + // Write out a regular, unwrapped getter. + out << "static PyObject *Dtool_" + ClassName + "_" + ielem.get_name() + "_Getter(PyObject *self, void *) {\n"; FunctionRemap *remap = property->_getter->_remaps.front(); - out << "PyObject *Dtool_" + ClassName + "_" + ielem.get_name() + "_Getter(PyObject *self, void *) {\n"; if (remap->_const_method) { out << " const " << cClassName << " *local_this = NULL;\n"; out << " if (!Dtool_Call_ExtractThisPointer(self, Dtool_" << ClassName << ", (void **)&local_this)) {\n"; @@ -6258,50 +6404,61 @@ write_getset(ostream &out, Object *obj, Property *property) { expected_params, 2, false, true, AT_no_args, RF_pyobject | RF_err_null, false, false); out << "}\n\n"; - } - if (property->_setter != NULL) { - out << "int Dtool_" + ClassName + "_" + ielem.get_name() + "_Setter(PyObject *self, PyObject *arg, void *) {\n"; - out << " " << cClassName << " *local_this = NULL;\n"; - out << " if (!Dtool_Call_ExtractThisPointer_NonConst(self, Dtool_" << ClassName << ", (void **)&local_this, \"" - << classNameFromCppName(cClassName, false) << "." << ielem.get_name() << "\")) {\n"; - out << " return -1;\n"; - out << " }\n\n"; + // Write out a setter if this is not a read-only property. + if (property->_setter != NULL) { + out << "static int Dtool_" + ClassName + "_" + ielem.get_name() + "_Setter(PyObject *self, PyObject *arg, void *) {\n"; + out << " " << cClassName << " *local_this = NULL;\n"; + out << " if (!Dtool_Call_ExtractThisPointer_NonConst(self, Dtool_" << ClassName << ", (void **)&local_this, \"" + << classNameFromCppName(cClassName, false) << "." << ielem.get_name() << "\")) {\n"; + out << " return -1;\n"; + out << " }\n\n"; - if (property->_clear_function != NULL) { - out << " if (arg == Py_None) {\n" - << " local_this->" << property->_clear_function->_ifunc.get_name() << "();\n" - << " return 0;\n" - << " }\n"; - } - - std::set remaps; - - // Extract only the setters that take one argument. - Function::Remaps::iterator it; - for (it = property->_setter->_remaps.begin(); - it != property->_setter->_remaps.end(); - ++it) { - FunctionRemap *remap = *it; - int min_num_args = remap->get_min_num_args(); - int max_num_args = remap->get_max_num_args(); - if (min_num_args <= 1 && max_num_args >= 1) { - remaps.insert(remap); + out << " if (arg == (PyObject *)NULL) {\n"; + if (property->_deleter != NULL) { + out << " local_this->" << property->_deleter->_ifunc.get_name() << "();\n" + << " return 0;\n"; + } else { + out << " Dtool_Raise_TypeError(\"can't delete " << ielem.get_name() << " attribute\");\n" + " return -1;\n"; } + out << " }\n"; + + if (property->_clear_function != NULL) { + out << " if (arg == Py_None) {\n" + << " local_this->" << property->_clear_function->_ifunc.get_name() << "();\n" + << " return 0;\n" + << " }\n"; + } + + std::set remaps; + + // Extract only the setters that take one argument. + Function::Remaps::iterator it; + for (it = property->_setter->_remaps.begin(); + it != property->_setter->_remaps.end(); + ++it) { + FunctionRemap *remap = *it; + int min_num_args = remap->get_min_num_args(); + int max_num_args = remap->get_max_num_args(); + if (min_num_args <= 1 && max_num_args >= 1) { + remaps.insert(remap); + } + } + + string expected_params; + write_function_forset(out, remaps, 1, 1, + expected_params, 2, true, true, AT_single_arg, + RF_int, false, false); + + out << " if (!_PyErr_OCCURRED()) {\n"; + out << " Dtool_Raise_BadArgumentsError(\n"; + output_quoted(out, 6, expected_params); + out << ");\n"; + out << " }\n"; + out << " return -1;\n"; + out << "}\n\n"; } - - string expected_params; - write_function_forset(out, remaps, 1, 1, - expected_params, 2, true, true, AT_single_arg, - RF_int, false, false); - - out << " if (!_PyErr_OCCURRED()) {\n"; - out << " Dtool_Raise_BadArgumentsError(\n"; - output_quoted(out, 6, expected_params); - out << ");\n"; - out << " }\n"; - out << " return -1;\n"; - out << "}\n\n"; } } @@ -6426,6 +6583,19 @@ record_object(TypeIndex type_index) { } } + if (ielement.has_del_function()) { + FunctionIndex func_index = ielement.get_del_function(); + Function *del_function = record_function(itype, func_index); + if (is_function_legal(del_function)) { + property->_deleter = del_function; + } + } + + if (ielement.is_sequence()) { + FunctionIndex func_index = ielement.get_length_function(); + property->_length_function = record_function(itype, func_index); + } + if (property->_getter != NULL) { object->_properties.push_back(property); } else { diff --git a/dtool/src/interrogate/interrogateBuilder.cxx b/dtool/src/interrogate/interrogateBuilder.cxx index 762747cc42..4d4bee4210 100644 --- a/dtool/src/interrogate/interrogateBuilder.cxx +++ b/dtool/src/interrogate/interrogateBuilder.cxx @@ -1782,9 +1782,9 @@ get_function(CPPInstance *function, string description, } /** - * Adds the indicated make_property to the database, if it is not already - * present. In either case, returns the MakeSeqIndex of the make_seq within - * the database. + * Adds the indicated make_property or make_seq_property to the database, if + * it is not already present. In either case, returns the ElementIndex + * of the created property within the database. */ ElementIndex InterrogateBuilder:: get_make_property(CPPMakeProperty *make_property, CPPStructType *struct_type, CPPScope *scope) { @@ -1805,20 +1805,58 @@ get_make_property(CPPMakeProperty *make_property, CPPStructType *struct_type, CP return index; } + // If we have a length function (ie. this is a sequence property), we should + // find the function that will give us the length. + FunctionIndex length_function = 0; + bool is_seq = false; + + CPPFunctionGroup::Instances::const_iterator fi; + CPPFunctionGroup *fgroup = make_property->_length_function; + if (fgroup != NULL) { + is_seq = true; + + for (fi = fgroup->_instances.begin(); fi != fgroup->_instances.end(); ++fi) { + CPPInstance *function = (*fi); + CPPFunctionType *ftype = + function->_type->as_function_type(); + if (ftype != NULL) { + length_function = get_function(function, "", struct_type, + struct_type->get_scope(), 0); + if (length_function != 0) { + break; + } + } + } + if (length_function == 0) { + cerr << "No instance of length method '" + << fgroup->_name << "' is suitable!\n"; + return 0; + } + } + // Find the getter so we can get its return type. CPPInstance *getter = NULL; CPPType *return_type = NULL; - CPPFunctionGroup *fgroup = make_property->_get_function; + fgroup = make_property->_get_function; if (fgroup != NULL) { CPPFunctionGroup::Instances::const_iterator fi; for (fi = fgroup->_instances.begin(); fi != fgroup->_instances.end(); ++fi) { CPPInstance *function = (*fi); CPPFunctionType *ftype = function->_type->as_function_type(); + if (ftype == NULL) { + continue; + } // The getter must either take no arguments, or all defaults. - if (ftype != NULL && (ftype->_parameters->_parameters.size() == 0 || - ftype->_parameters->_parameters[0]->_initializer != NULL)) { + if (ftype->_parameters->_parameters.size() == (int)is_seq || + (ftype->_parameters->_parameters.size() > (int)is_seq && + ftype->_parameters->_parameters[(int)is_seq]->_initializer != NULL)) { + // If this is a sequence getter, it must take an index argument. + if (is_seq && !TypeManager::is_integer(ftype->_parameters->_parameters[0]->_type)) { + continue; + } + getter = function; return_type = ftype->_return_type; @@ -1860,6 +1898,28 @@ get_make_property(CPPMakeProperty *make_property, CPPStructType *struct_type, CP } } + // And the "deleter". + CPPInstance *deleter = NULL; + + fgroup = make_property->_del_function; + if (fgroup != NULL) { + CPPFunctionGroup::Instances::const_iterator fi; + for (fi = fgroup->_instances.begin(); fi != fgroup->_instances.end(); ++fi) { + CPPInstance *function = (*fi); + CPPFunctionType *ftype = function->_type->as_function_type(); + if (ftype != NULL && ftype->_parameters->_parameters.size() == (int)is_seq) { + deleter = function; + break; + } + } + + if (deleter == NULL || return_type == NULL) { + cerr << "No instance of delete-function '" + << fgroup->_name << "' is suitable!\n"; + return 0; + } + } + InterrogateDatabase *idb = InterrogateDatabase::get_ptr(); // It isn't here, so we'll have to define it. ElementIndex index = idb->get_next_index(); @@ -1875,22 +1935,30 @@ get_make_property(CPPMakeProperty *make_property, CPPStructType *struct_type, CP iproperty._type = 0; } + if (length_function != 0) { + iproperty._flags |= InterrogateElement::F_sequence; + iproperty._length_function = length_function; + } + if (getter != NULL) { iproperty._flags |= InterrogateElement::F_has_getter; iproperty._getter = get_function(getter, "", struct_type, struct_type->get_scope(), 0); - if (iproperty._getter == 0) { - cerr << "failed " << *getter << "\n"; - } + nassertr(iproperty._getter, 0); } if (hasser != NULL) { iproperty._flags |= InterrogateElement::F_has_has_function; iproperty._has_function = get_function(hasser, "", struct_type, struct_type->get_scope(), 0); - if (iproperty._has_function == 0) { - cerr << "failed " << *hasser << "\n"; - } + nassertr(iproperty._has_function, 0); + } + + if (deleter != NULL) { + iproperty._flags |= InterrogateElement::F_has_del_function; + iproperty._del_function = get_function(deleter, "", struct_type, + struct_type->get_scope(), 0); + nassertr(iproperty._del_function, 0); } // See if there happens to be a comment before the MAKE_PROPERTY macro. @@ -1907,9 +1975,7 @@ get_make_property(CPPMakeProperty *make_property, CPPStructType *struct_type, CP iproperty._flags |= InterrogateElement::F_has_setter; iproperty._setter = get_function(function, "", struct_type, struct_type->get_scope(), 0); - if (iproperty._setter == 0) { - cerr << "failed " << *function << "\n"; - } + nassertr(iproperty._setter, 0); break; } } @@ -1922,15 +1988,12 @@ get_make_property(CPPMakeProperty *make_property, CPPStructType *struct_type, CP iproperty._flags |= InterrogateElement::F_has_clear_function; iproperty._clear_function = get_function(function, "", struct_type, struct_type->get_scope(), 0); - if (iproperty._clear_function == 0) { - cerr << "failed " << *function << "\n"; - } + nassertr(iproperty._clear_function, 0); break; } } idb->add_element(index, iproperty); - return index; } diff --git a/dtool/src/interrogatedb/interrogateDatabase.cxx b/dtool/src/interrogatedb/interrogateDatabase.cxx index 22d424b6e9..559f707ca5 100644 --- a/dtool/src/interrogatedb/interrogateDatabase.cxx +++ b/dtool/src/interrogatedb/interrogateDatabase.cxx @@ -20,7 +20,7 @@ InterrogateDatabase *InterrogateDatabase::_global_ptr = NULL; int InterrogateDatabase::_file_major_version = 0; int InterrogateDatabase::_file_minor_version = 0; int InterrogateDatabase::_current_major_version = 3; -int InterrogateDatabase::_current_minor_version = 1; +int InterrogateDatabase::_current_minor_version = 2; /** * diff --git a/dtool/src/interrogatedb/interrogateElement.I b/dtool/src/interrogatedb/interrogateElement.I index 4fea0bf105..7e3ba61f77 100644 --- a/dtool/src/interrogatedb/interrogateElement.I +++ b/dtool/src/interrogatedb/interrogateElement.I @@ -24,6 +24,8 @@ InterrogateElement(InterrogateModuleDef *def) : _setter = 0; _has_function = 0; _clear_function = 0; + _del_function = 0; + _length_function = 0; } /** @@ -48,6 +50,8 @@ operator = (const InterrogateElement ©) { _setter = copy._setter; _has_function = copy._has_function; _clear_function = copy._clear_function; + _del_function = copy._del_function; + _length_function = copy._length_function; } /** @@ -163,6 +167,38 @@ get_clear_function() const { return _clear_function; } +/** + * + */ +INLINE bool InterrogateElement:: +has_del_function() const { + return (_flags & F_has_del_function) != 0; +} + +/** + * + */ +INLINE FunctionIndex InterrogateElement:: +get_del_function() const { + return _del_function; +} + +/** + * + */ +INLINE bool InterrogateElement:: +is_sequence() const { + return (_flags & F_sequence) != 0; +} + +/** + * + */ +INLINE FunctionIndex InterrogateElement:: +get_length_function() const { + return _length_function; +} + INLINE ostream & operator << (ostream &out, const InterrogateElement &element) { diff --git a/dtool/src/interrogatedb/interrogateElement.cxx b/dtool/src/interrogatedb/interrogateElement.cxx index 754f88ba33..a7469b9941 100644 --- a/dtool/src/interrogatedb/interrogateElement.cxx +++ b/dtool/src/interrogatedb/interrogateElement.cxx @@ -27,7 +27,9 @@ output(ostream &out) const { << _getter << " " << _setter << " " << _has_function << " " - << _clear_function << " "; + << _clear_function << " " + << _del_function << " " + << _length_function << " "; idf_output_string(out, _scoped_name); idf_output_string(out, _comment, '\n'); } @@ -41,6 +43,9 @@ input(istream &in) { in >> _flags >> _type >> _getter >> _setter; if (InterrogateDatabase::get_file_minor_version() >= 1) { in >> _has_function >> _clear_function; + if (InterrogateDatabase::get_file_minor_version() >= 2) { + in >> _del_function >> _length_function; + } } idf_input_string(in, _scoped_name); idf_input_string(in, _comment); @@ -55,4 +60,8 @@ remap_indices(const IndexRemapper &remap) { _type = remap.map_from(_type); _getter = remap.map_from(_getter); _setter = remap.map_from(_setter); + _has_function = remap.map_from(_has_function); + _clear_function = remap.map_from(_clear_function); + _del_function = remap.map_from(_del_function); + _length_function = remap.map_from(_length_function); } diff --git a/dtool/src/interrogatedb/interrogateElement.h b/dtool/src/interrogatedb/interrogateElement.h index a69be7f5d1..3506d7b9a8 100644 --- a/dtool/src/interrogatedb/interrogateElement.h +++ b/dtool/src/interrogatedb/interrogateElement.h @@ -47,6 +47,10 @@ public: INLINE FunctionIndex get_has_function() const; INLINE bool has_clear_function() const; INLINE FunctionIndex get_clear_function() const; + INLINE bool has_del_function() const; + INLINE FunctionIndex get_del_function() const; + INLINE bool is_sequence() const; + INLINE FunctionIndex get_length_function() const; void output(ostream &out) const; void input(istream &in); @@ -60,16 +64,21 @@ private: F_has_setter = 0x0004, F_has_has_function= 0x0008, F_has_clear_function= 0x0010, + F_has_del_function= 0x0020, + F_sequence = 0x0040, + F_mapping = 0x0080, }; int _flags; string _scoped_name; string _comment; TypeIndex _type; + FunctionIndex _length_function; FunctionIndex _getter; FunctionIndex _setter; FunctionIndex _has_function; FunctionIndex _clear_function; + FunctionIndex _del_function; friend class InterrogateBuilder; }; diff --git a/dtool/src/interrogatedb/py_panda.I b/dtool/src/interrogatedb/py_panda.I index 51e10db446..3b171f14c7 100644 --- a/dtool/src/interrogatedb/py_panda.I +++ b/dtool/src/interrogatedb/py_panda.I @@ -192,6 +192,14 @@ ALWAYS_INLINE PyObject *Dtool_WrapValue(PyObject *value) { return value; } +ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::vector &value) { +#if PY_MAJOR_VERSION >= 3 + return PyBytes_FromStringAndSize((char *)value.data(), (Py_ssize_t)value.size()); +#else + return PyString_FromStringAndSize((char *)value.data(), (Py_ssize_t)value.size()); +#endif +} + #if PY_MAJOR_VERSION >= 0x02060000 ALWAYS_INLINE PyObject *Dtool_WrapValue(Py_buffer *value) { if (value == (Py_buffer *)NULL) { @@ -201,3 +209,11 @@ ALWAYS_INLINE PyObject *Dtool_WrapValue(Py_buffer *value) { } } #endif + +template +ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::pair &value) { + PyObject *tuple = PyTuple_New(2); + PyTuple_SET_ITEM(tuple, 0, Dtool_WrapValue(value.first)); + PyTuple_SET_ITEM(tuple, 1, Dtool_WrapValue(value.second)); + return tuple; +} diff --git a/dtool/src/interrogatedb/py_panda.cxx b/dtool/src/interrogatedb/py_panda.cxx index a7cfa63ed5..c12734813f 100644 --- a/dtool/src/interrogatedb/py_panda.cxx +++ b/dtool/src/interrogatedb/py_panda.cxx @@ -571,8 +571,19 @@ PyObject *Dtool_PyModuleInitHelper(LibraryDef *defs[], const char *modulename) { return (PyObject *)NULL; } - // Initialize the base class of everything. - Dtool_PyModuleClassInit_DTOOL_SUPER_BASE(NULL); + // Initialize the types we define in py_panda. + static bool dtool_inited = false; + if (!dtool_inited) { + dtool_inited = true; + + if (PyType_Ready(&Dtool_SequenceWrapper_Type) < 0) { + PyErr_SetString(PyExc_TypeError, "PyType_Ready(Dtool_SequenceWrapper)"); + return NULL; + } + + // Initialize the base class of everything. + Dtool_PyModuleClassInit_DTOOL_SUPER_BASE(NULL); + } // the module level function inits.... MethodDefmap functions; @@ -860,4 +871,107 @@ PyObject *map_deepcopy_to_copy(PyObject *self, PyObject *args) { return PyObject_CallMethod(self, (char *)"__copy__", (char *)"()"); } +/** + * This class is returned from properties that require a settable interface, + * ie. something.children[i] = 3. + */ +static void Dtool_SequenceWrapper_dealloc(PyObject *self) { + Dtool_SequenceWrapper *wrap = (Dtool_SequenceWrapper *)self; + nassertv(wrap); + Py_DECREF(wrap->_base); +} + +static Py_ssize_t Dtool_SequenceWrapper_length(PyObject *self) { + Dtool_SequenceWrapper *wrap = (Dtool_SequenceWrapper *)self; + nassertr(wrap, -1); + nassertr(wrap->_len_func, -1); + return wrap->_len_func(wrap->_base); +} + +static PyObject *Dtool_SequenceWrapper_getitem(PyObject *self, Py_ssize_t index) { + Dtool_SequenceWrapper *wrap = (Dtool_SequenceWrapper *)self; + nassertr(wrap, NULL); + nassertr(wrap->_getitem_func, NULL); + return wrap->_getitem_func(wrap->_base, index); +} + +static int Dtool_SequenceWrapper_setitem(PyObject *self, Py_ssize_t index, PyObject *value) { + Dtool_SequenceWrapper *wrap = (Dtool_SequenceWrapper *)self; + nassertr(wrap, -1); + nassertr(wrap->_setitem_func, -1); + return wrap->_setitem_func(wrap->_base, index, value); +} + +static PySequenceMethods Dtool_SequenceWrapper_SequenceMethods = { + Dtool_SequenceWrapper_length, + 0, // sq_concat + 0, // sq_repeat + Dtool_SequenceWrapper_getitem, + 0, // sq_slice + Dtool_SequenceWrapper_setitem, + 0, // sq_ass_slice + 0, // sq_contains + 0, // sq_inplace_concat + 0, // sq_inplace_repeat +}; + +PyTypeObject Dtool_SequenceWrapper_Type = { + PyVarObject_HEAD_INIT(NULL, 0) + "sequence wrapper", + sizeof(Dtool_SequenceWrapper), + 0, // tp_itemsize + Dtool_SequenceWrapper_dealloc, + 0, // tp_print + 0, // tp_getattr + 0, // tp_setattr +#if PY_MAJOR_VERSION >= 3 + 0, // tp_reserved +#else + 0, // tp_compare +#endif + 0, // tp_repr + 0, // tp_as_number + &Dtool_SequenceWrapper_SequenceMethods, + 0, // tp_as_mapping + 0, // tp_hash + 0, // tp_call + 0, // tp_str + PyObject_GenericGetAttr, + PyObject_GenericSetAttr, + 0, // tp_as_buffer + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_CHECKTYPES, + 0, // tp_doc + 0, // tp_traverse + 0, // tp_clear + 0, // tp_richcompare + 0, // tp_weaklistoffset + 0, // tp_iter + 0, // tp_iternext + 0, // tp_methods + 0, // tp_members + 0, // tp_getset + 0, // tp_base + 0, // tp_dict + 0, // tp_descr_get + 0, // tp_descr_set + 0, // tp_dictoffset + 0, // tp_init + PyType_GenericAlloc, + 0, // tp_new + PyObject_Del, + 0, // tp_is_gc + 0, // tp_bases + 0, // tp_mro + 0, // tp_cache + 0, // tp_subclasses + 0, // tp_weaklist + 0, // tp_del +#if PY_VERSION_HEX >= 0x02060000 + 0, // tp_version_tag +#endif +#if PY_VERSION_HEX >= 0x03040000 + 0, // tp_finalize +#endif +}; + #endif // HAVE_PYTHON diff --git a/dtool/src/interrogatedb/py_panda.h b/dtool/src/interrogatedb/py_panda.h index 22891799dd..eebefb036b 100644 --- a/dtool/src/interrogatedb/py_panda.h +++ b/dtool/src/interrogatedb/py_panda.h @@ -441,6 +441,20 @@ copy_from_copy_constructor(PyObject *self, PyObject *noargs); EXPCL_INTERROGATEDB PyObject * map_deepcopy_to_copy(PyObject *self, PyObject *args); +/** + * This class is returned from properties that require a settable interface, + * ie. something.children[i] = 3. + */ +struct Dtool_SequenceWrapper { + PyObject_HEAD + PyObject *_base; + lenfunc _len_func; + ssizeargfunc _getitem_func; + ssizeobjargproc _setitem_func; +}; + +EXPCL_INTERROGATEDB extern PyTypeObject Dtool_SequenceWrapper_Type; + /** * These functions convert a C++ value into the corresponding Python object. * This used to be generated by the code generator, but it seems more reliable @@ -464,11 +478,15 @@ ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::wstring *value); ALWAYS_INLINE PyObject *Dtool_WrapValue(char value); ALWAYS_INLINE PyObject *Dtool_WrapValue(wchar_t value); ALWAYS_INLINE PyObject *Dtool_WrapValue(PyObject *value); +ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::vector &value); #if PY_MAJOR_VERSION >= 0x02060000 ALWAYS_INLINE PyObject *Dtool_WrapValue(Py_buffer *value); #endif +template +ALWAYS_INLINE PyObject *Dtool_WrapValue(const std::pair &value); + EXPCL_INTERROGATEDB extern struct Dtool_PyTypedObject Dtool_DTOOL_SUPER_BASE; EXPCL_INTERROGATEDB extern void Dtool_PyModuleClassInit_DTOOL_SUPER_BASE(PyObject *module); diff --git a/dtool/src/prc/configPage.h b/dtool/src/prc/configPage.h index 63ec9106df..8c143de836 100644 --- a/dtool/src/prc/configPage.h +++ b/dtool/src/prc/configPage.h @@ -44,6 +44,8 @@ PUBLISHED: INLINE bool is_special() const; INLINE bool is_implicit() const; + MAKE_PROPERTY(special, is_special); + MAKE_PROPERTY(implicit, is_implicit); void set_sort(int sort); INLINE int get_sort() const; @@ -72,6 +74,8 @@ PUBLISHED: string get_string_value(size_t n) const; bool is_variable_used(size_t n) const; + MAKE_SEQ_PROPERTY(declarations, get_num_declarations, modify_declaration); + void output(ostream &out) const; void output_brief_signature(ostream &out) const; void write(ostream &out) const; diff --git a/dtool/src/prc/configVariableCore.h b/dtool/src/prc/configVariableCore.h index 11af6061ce..e857dd3cc2 100644 --- a/dtool/src/prc/configVariableCore.h +++ b/dtool/src/prc/configVariableCore.h @@ -75,10 +75,25 @@ PUBLISHED: INLINE size_t get_num_unique_references() const; INLINE const ConfigDeclaration *get_unique_reference(size_t n) const; MAKE_SEQ(get_unique_references, get_num_unique_references, get_unique_reference); + MAKE_SEQ_PROPERTY(declarations, get_num_declarations, get_declaration); void output(ostream &out) const; void write(ostream &out) const; + MAKE_PROPERTY(name, get_name); + MAKE_PROPERTY(used, is_used); + MAKE_PROPERTY(closed, is_closed); + MAKE_PROPERTY(trust_level, get_trust_level); + MAKE_PROPERTY(dynamic, is_dynamic); + + MAKE_PROPERTY(value_type, get_value_type, set_value_type); + MAKE_PROPERTY(description, get_description, set_description); + MAKE_PROPERTY(default_value, get_default_value, set_default_value); + + MAKE_SEQ_PROPERTY(references, get_num_references, get_reference); + MAKE_SEQ_PROPERTY(trusted_references, get_num_trusted_references, get_trusted_reference); + MAKE_SEQ_PROPERTY(unique_references, get_num_unique_references, get_unique_reference); + private: void add_declaration(ConfigDeclaration *decl); void remove_declaration(ConfigDeclaration *decl); diff --git a/dtool/src/prc/configVariableManager.h b/dtool/src/prc/configVariableManager.h index eccdf2945c..78b943fef7 100644 --- a/dtool/src/prc/configVariableManager.h +++ b/dtool/src/prc/configVariableManager.h @@ -48,6 +48,8 @@ PUBLISHED: string get_variable_name(size_t n) const; bool is_variable_used(size_t n) const; + MAKE_SEQ_PROPERTY(variables, get_num_variables, get_variable); + void output(ostream &out) const; void write(ostream &out) const; diff --git a/dtool/src/prc/configVariableSearchPath.h b/dtool/src/prc/configVariableSearchPath.h index 25524b86d4..6a6cfeb0ab 100644 --- a/dtool/src/prc/configVariableSearchPath.h +++ b/dtool/src/prc/configVariableSearchPath.h @@ -68,6 +68,7 @@ PUBLISHED: INLINE size_t get_num_directories() const; INLINE const Filename &get_directory(size_t n) const; MAKE_SEQ(get_directories, get_num_directories, get_directory); + MAKE_SEQ_PROPERTY(directories, get_num_directories, get_directory); INLINE Filename find_file(const Filename &filename) const; INLINE size_t find_all_files(const Filename &filename, diff --git a/dtool/src/prc/encryptStream.I b/dtool/src/prc/encryptStream.I index bdb911ebf8..bad15bd7e7 100644 --- a/dtool/src/prc/encryptStream.I +++ b/dtool/src/prc/encryptStream.I @@ -109,6 +109,29 @@ close() { return *this; } +/** + * Returns the encryption algorithm that was read from the stream. + */ +INLINE const string &OEncryptStream:: +get_algorithm() const { + return _buf.get_algorithm(); +} + +/** + * Returns the encryption key length, in bits, that was read from the stream. + */ +INLINE int OEncryptStream:: +get_key_length() const { + return _buf.get_key_length(); +} + +/** + * Returns the value that was was read from the stream. + */ +INLINE int OEncryptStream:: +get_iteration_count() const { + return _buf.get_iteration_count(); +} /** * Specifies the encryption algorithm that should be used for future calls to diff --git a/dtool/src/prc/encryptStream.h b/dtool/src/prc/encryptStream.h index e69ab0f9a9..3093e5d12f 100644 --- a/dtool/src/prc/encryptStream.h +++ b/dtool/src/prc/encryptStream.h @@ -49,6 +49,10 @@ PUBLISHED: INLINE int get_key_length() const; INLINE int get_iteration_count() const; + MAKE_PROPERTY(algorithm, get_algorithm); + MAKE_PROPERTY(key_length, get_key_length); + MAKE_PROPERTY(iteration_count, get_iteration_count); + private: EncryptStreamBuf _buf; }; @@ -76,10 +80,20 @@ PUBLISHED: const string &password); INLINE OEncryptStream &close(); +public: + INLINE const string &get_algorithm() const; + INLINE int get_key_length() const; + INLINE int get_iteration_count() const; + +PUBLISHED: INLINE void set_algorithm(const string &algorithm); INLINE void set_key_length(int key_length); INLINE void set_iteration_count(int iteration_count); + MAKE_PROPERTY(algorithm, get_algorithm, set_algorithm); + MAKE_PROPERTY(key_length, get_key_length, set_key_length); + MAKE_PROPERTY(iteration_count, get_iteration_count, set_iteration_count); + private: EncryptStreamBuf _buf; }; diff --git a/dtool/src/prc/notifyCategory.h b/dtool/src/prc/notifyCategory.h index fe9a7255e6..343591d122 100644 --- a/dtool/src/prc/notifyCategory.h +++ b/dtool/src/prc/notifyCategory.h @@ -74,6 +74,7 @@ PUBLISHED: size_t get_num_children() const; NotifyCategory *get_child(size_t i) const; MAKE_SEQ(get_children, get_num_children, get_child); + MAKE_SEQ_PROPERTY(children, get_num_children, get_child); static void set_server_delta(long delta); diff --git a/dtool/src/prc/streamReader.h b/dtool/src/prc/streamReader.h index f8f4678537..f281a88f1c 100644 --- a/dtool/src/prc/streamReader.h +++ b/dtool/src/prc/streamReader.h @@ -34,6 +34,7 @@ PUBLISHED: INLINE ~StreamReader(); INLINE istream *get_istream() const; + MAKE_PROPERTY(istream, get_istream); BLOCKING INLINE bool get_bool(); BLOCKING INLINE PN_int8 get_int8(); diff --git a/dtool/src/prc/streamWrapper.h b/dtool/src/prc/streamWrapper.h index de25a4267d..97d391a894 100644 --- a/dtool/src/prc/streamWrapper.h +++ b/dtool/src/prc/streamWrapper.h @@ -53,6 +53,7 @@ PUBLISHED: ~IStreamWrapper(); INLINE istream *get_istream() const; + MAKE_PROPERTY(istream, get_istream); public: void read(char *buffer, streamsize num_bytes); @@ -79,6 +80,7 @@ PUBLISHED: ~OStreamWrapper(); INLINE ostream *get_ostream() const; + MAKE_PROPERTY(ostream, get_ostream); public: void write(const char *buffer, streamsize num_bytes); @@ -114,6 +116,7 @@ PUBLISHED: ~StreamWrapper(); INLINE iostream *get_iostream() const; + MAKE_PROPERTY(iostream, get_iostream); private: iostream *_iostream; diff --git a/dtool/src/prc/streamWriter.h b/dtool/src/prc/streamWriter.h index e21dc3cbed..42157db277 100644 --- a/dtool/src/prc/streamWriter.h +++ b/dtool/src/prc/streamWriter.h @@ -36,6 +36,7 @@ PUBLISHED: INLINE ~StreamWriter(); INLINE ostream *get_ostream() const; + MAKE_PROPERTY(ostream, get_ostream); BLOCKING INLINE void add_bool(bool value); BLOCKING INLINE void add_int8(PN_int8 value); diff --git a/panda/src/chan/animGroup.h b/panda/src/chan/animGroup.h index 8bcb9c41eb..af81aba3b1 100644 --- a/panda/src/chan/animGroup.h +++ b/panda/src/chan/animGroup.h @@ -44,6 +44,8 @@ PUBLISHED: AnimGroup *get_child(int n) const; MAKE_SEQ(get_children, get_num_children, get_child); + MAKE_SEQ_PROPERTY(children, get_num_children, get_child); + AnimGroup *get_child_named(const string &name) const; AnimGroup *find_child(const string &name) const; void sort_descendants(); diff --git a/panda/src/chan/partBundle.h b/panda/src/chan/partBundle.h index 82272df52c..0d22fe5e73 100644 --- a/panda/src/chan/partBundle.h +++ b/panda/src/chan/partBundle.h @@ -113,6 +113,12 @@ PUBLISHED: INLINE PartBundleNode *get_node(int n) const; MAKE_SEQ(get_nodes, get_num_nodes, get_node); + MAKE_PROPERTY(blend_type, get_blend_type, set_blend_type); + MAKE_PROPERTY(anim_blend_flag, get_anim_blend_flag, set_anim_blend_flag); + MAKE_PROPERTY(frame_blend_flag, get_frame_blend_flag, set_frame_blend_flag); + MAKE_PROPERTY(root_xform, get_root_xform, set_root_xform); + MAKE_SEQ_PROPERTY(nodes, get_num_nodes, get_node); + void clear_control_effects(); INLINE void set_control_effect(AnimControl *control, PN_stdfloat effect); INLINE PN_stdfloat get_control_effect(AnimControl *control) const; diff --git a/panda/src/chan/partBundleHandle.h b/panda/src/chan/partBundleHandle.h index 7a5e26e8ce..f62b30c791 100644 --- a/panda/src/chan/partBundleHandle.h +++ b/panda/src/chan/partBundleHandle.h @@ -38,6 +38,8 @@ PUBLISHED: INLINE PartBundle *get_bundle(); INLINE void set_bundle(PartBundle *bundle); + MAKE_PROPERTY(bundle, get_bundle, set_bundle); + private: PT(PartBundle) _bundle; }; diff --git a/panda/src/chan/partBundleNode.h b/panda/src/chan/partBundleNode.h index 5a6de285e1..f4cafaf056 100644 --- a/panda/src/chan/partBundleNode.h +++ b/panda/src/chan/partBundleNode.h @@ -54,6 +54,9 @@ PUBLISHED: INLINE PartBundleHandle *get_bundle_handle(int n) const; MAKE_SEQ(get_bundle_handles, get_num_bundles, get_bundle_handle); + MAKE_SEQ_PROPERTY(bundles, get_num_bundles, get_bundle); + MAKE_SEQ_PROPERTY(bundle_handles, get_num_bundles, get_bundle_handle); + protected: void add_bundle(PartBundle *bundle); void add_bundle_handle(PartBundleHandle *handle); diff --git a/panda/src/chan/partGroup.h b/panda/src/chan/partGroup.h index 16b497f842..0d5967a39a 100644 --- a/panda/src/chan/partGroup.h +++ b/panda/src/chan/partGroup.h @@ -70,6 +70,7 @@ PUBLISHED: int get_num_children() const; PartGroup *get_child(int n) const; MAKE_SEQ(get_children, get_num_children, get_child); + MAKE_SEQ_PROPERTY(children, get_num_children, get_child); PartGroup *get_child_named(const string &name) const; PartGroup *find_child(const string &name) const; diff --git a/panda/src/collide/collisionFloorMesh.h b/panda/src/collide/collisionFloorMesh.h index 02861262c7..44e9d18e32 100644 --- a/panda/src/collide/collisionFloorMesh.h +++ b/panda/src/collide/collisionFloorMesh.h @@ -40,7 +40,6 @@ public: } TriangleIndices; PUBLISHED: - INLINE CollisionFloorMesh(); INLINE void add_vertex(const LPoint3 &vert); @@ -55,6 +54,10 @@ PUBLISHED: virtual LPoint3 get_collision_origin() const; +PUBLISHED: + MAKE_SEQ_PROPERTY(vertices, get_num_vertices, get_vertex); + MAKE_SEQ_PROPERTY(triangles, get_num_triangles, get_triangle); + public: CollisionFloorMesh(const CollisionFloorMesh ©); virtual CollisionSolid *make_copy(); diff --git a/panda/src/collide/collisionHandlerEvent.h b/panda/src/collide/collisionHandlerEvent.h index c5ebfe78c9..a1240882d6 100644 --- a/panda/src/collide/collisionHandlerEvent.h +++ b/panda/src/collide/collisionHandlerEvent.h @@ -60,6 +60,10 @@ PUBLISHED: INLINE string get_out_pattern(int n) const; MAKE_SEQ(get_out_patterns, get_num_out_patterns, get_out_pattern); + MAKE_SEQ_PROPERTY(in_patterns, get_num_in_patterns, get_in_pattern); + MAKE_SEQ_PROPERTY(again_patterns, get_num_again_patterns, get_out_pattern); + MAKE_SEQ_PROPERTY(out_patterns, get_num_out_patterns, get_out_pattern); + void clear(); void flush(); diff --git a/panda/src/collide/collisionHandlerQueue.h b/panda/src/collide/collisionHandlerQueue.h index 397aa11809..0651b545c7 100644 --- a/panda/src/collide/collisionHandlerQueue.h +++ b/panda/src/collide/collisionHandlerQueue.h @@ -40,6 +40,7 @@ PUBLISHED: int get_num_entries() const; CollisionEntry *get_entry(int n) const; MAKE_SEQ(get_entries, get_num_entries, get_entry); + MAKE_SEQ_PROPERTY(entries, get_num_entries, get_entry); void output(ostream &out) const; void write(ostream &out, int indent_level = 0) const; diff --git a/panda/src/collide/collisionNode.h b/panda/src/collide/collisionNode.h index 5a939a284d..6c95e6d435 100644 --- a/panda/src/collide/collisionNode.h +++ b/panda/src/collide/collisionNode.h @@ -68,6 +68,7 @@ PUBLISHED: INLINE void set_solid(int n, CollisionSolid *solid); INLINE void remove_solid(int n); INLINE int add_solid(const CollisionSolid *solid); + MAKE_SEQ_PROPERTY(solids, get_num_solids, get_solid, set_solid, remove_solid); INLINE int get_collider_sort() const; INLINE void set_collider_sort(int sort); diff --git a/panda/src/collide/collisionPolygon.h b/panda/src/collide/collisionPolygon.h index 147920f580..464c0e73b6 100644 --- a/panda/src/collide/collisionPolygon.h +++ b/panda/src/collide/collisionPolygon.h @@ -60,6 +60,7 @@ PUBLISHED: bool is_concave() const; PUBLISHED: + MAKE_SEQ_PROPERTY(points, get_num_points, get_point); MAKE_PROPERTY(valid, is_valid); MAKE_PROPERTY(concave, is_concave); diff --git a/panda/src/collide/collisionTraverser.h b/panda/src/collide/collisionTraverser.h index cd7916fc09..d4f2b2a24b 100644 --- a/panda/src/collide/collisionTraverser.h +++ b/panda/src/collide/collisionTraverser.h @@ -60,6 +60,7 @@ PUBLISHED: MAKE_SEQ(get_colliders, get_num_colliders, get_collider); CollisionHandler *get_handler(const NodePath &collider) const; void clear_colliders(); + MAKE_SEQ_PROPERTY(colliders, get_num_colliders, get_collider); void traverse(const NodePath &root); diff --git a/panda/src/display/graphicsEngine.h b/panda/src/display/graphicsEngine.h index 7945b6d039..1775b49e61 100644 --- a/panda/src/display/graphicsEngine.h +++ b/panda/src/display/graphicsEngine.h @@ -101,6 +101,7 @@ PUBLISHED: int get_num_windows() const; GraphicsOutput *get_window(int n) const; MAKE_SEQ(get_windows, get_num_windows, get_window); + MAKE_SEQ_PROPERTY(windows, get_num_windows, get_window); BLOCKING void render_frame(); BLOCKING void open_windows(); diff --git a/panda/src/display/graphicsOutput.h b/panda/src/display/graphicsOutput.h index 59d94489cf..295467f458 100644 --- a/panda/src/display/graphicsOutput.h +++ b/panda/src/display/graphicsOutput.h @@ -195,6 +195,7 @@ PUBLISHED: INLINE void set_child_sort(int child_sort); INLINE void clear_child_sort(); INLINE int get_child_sort() const; + MAKE_PROPERTY(child_sort, get_child_sort, set_child_sort); INLINE void trigger_copy(); @@ -216,10 +217,12 @@ PUBLISHED: int get_num_display_regions() const; PT(DisplayRegion) get_display_region(int n) const; MAKE_SEQ(get_display_regions, get_num_display_regions, get_display_region); + MAKE_SEQ_PROPERTY(display_regions, get_num_display_regions, get_display_region); int get_num_active_display_regions() const; PT(DisplayRegion) get_active_display_region(int n) const; MAKE_SEQ(get_active_display_regions, get_num_active_display_regions, get_active_display_region); + MAKE_SEQ_PROPERTY(active_display_regions, get_num_active_display_regions, get_active_display_region); GraphicsOutput *make_texture_buffer( const string &name, int x_size, int y_size, diff --git a/panda/src/display/graphicsPipeSelection.h b/panda/src/display/graphicsPipeSelection.h index 2f0955211c..d1dc5b641e 100644 --- a/panda/src/display/graphicsPipeSelection.h +++ b/panda/src/display/graphicsPipeSelection.h @@ -39,6 +39,7 @@ PUBLISHED: int get_num_pipe_types() const; TypeHandle get_pipe_type(int n) const; MAKE_SEQ(get_pipe_types, get_num_pipe_types, get_pipe_type); + MAKE_SEQ_PROPERTY(pipe_types, get_num_pipe_types, get_pipe_type); void print_pipe_types() const; PT(GraphicsPipe) make_pipe(const string &type_name, diff --git a/panda/src/egg/eggCompositePrimitive.h b/panda/src/egg/eggCompositePrimitive.h index 7cbbcf0204..43d25052ea 100644 --- a/panda/src/egg/eggCompositePrimitive.h +++ b/panda/src/egg/eggCompositePrimitive.h @@ -38,6 +38,8 @@ PUBLISHED: MAKE_SEQ(get_components, get_num_components, get_component); INLINE void set_component(int i, const EggAttributes *attrib); + MAKE_PROPERTY(components, get_num_components, get_component, set_component); + INLINE bool triangulate_into(EggGroupNode *container) const; PT(EggCompositePrimitive) triangulate_in_place(); diff --git a/panda/src/egg/eggGroup.h b/panda/src/egg/eggGroup.h index fc23e97554..69d72807a9 100644 --- a/panda/src/egg/eggGroup.h +++ b/panda/src/egg/eggGroup.h @@ -284,6 +284,45 @@ PUBLISHED: INLINE bool has_scrolling_uvs(); + MAKE_PROPERTY(group_type, get_group_type, set_group_type); + MAKE_PROPERTY(billboard_type, get_billboard_type, set_billboard_type); + MAKE_PROPERTY2(billboard_center, has_billboard_center, get_billboard_center, + set_billboard_center, clear_billboard_center); + MAKE_PROPERTY(cs_type, get_cs_type, set_cs_type); + MAKE_PROPERTY(collide_flags, get_collide_flags, set_collide_flags); + MAKE_PROPERTY(collision_name, get_collision_name, set_collision_name); + MAKE_PROPERTY(dcs_type, get_dcs_type, set_dcs_type); + MAKE_PROPERTY(dart_type, get_dart_type, set_dart_type); + MAKE_PROPERTY(switch_flag, get_switch_flag, set_switch_flag); + MAKE_PROPERTY(switch_fps, get_switch_fps, set_switch_fps); + MAKE_SEQ_PROPERTY(object_types, get_num_object_types, get_object_type); + MAKE_PROPERTY(model_flag, get_model_flag, set_model_flag); + MAKE_PROPERTY(texlist_flag, get_texlist_flag, set_texlist_flag); + MAKE_PROPERTY(nofog_flag, get_nofog_flag, set_nofog_flag); + MAKE_PROPERTY(decal_flag, get_decal_flag, set_decal_flag); + MAKE_PROPERTY(direct_flag, get_direct_flag, set_direct_flag); + MAKE_PROPERTY(portal_flag, get_portal_flag, set_portal_flag); + MAKE_PROPERTY(occluder_flag, get_occluder_flag, set_occluder_flag); + MAKE_PROPERTY2(indexed_flag, has_indexed_flag, get_indexed_flag, + set_indexed_flag, clear_indexed_flag); + MAKE_PROPERTY2(collide_mask, has_collide_mask, get_collide_mask, + set_collide_mask, clear_collide_mask); + MAKE_PROPERTY2(from_collide_mask, has_from_collide_mask, get_from_collide_mask, + set_from_collide_mask, clear_from_collide_mask); + MAKE_PROPERTY2(into_collide_mask, has_into_collide_mask, get_into_collide_mask, + set_into_collide_mask, clear_into_collide_mask); + MAKE_PROPERTY(blend_mode, get_blend_mode, set_blend_mode); + MAKE_PROPERTY(blend_operand_a, get_blend_operand_a, set_blend_operand_a); + MAKE_PROPERTY(blend_operand_b, get_blend_operand_b, set_blend_operand_b); + MAKE_PROPERTY2(blend_color, has_blend_color, get_blend_color, + set_blend_color, clear_blend_color); + MAKE_PROPERTY2(lod, has_lod, get_lod, set_lod, clear_lod); + MAKE_PROPERTY(default_pose, get_default_pose, set_default_pose); + MAKE_PROPERTY(scroll_u, get_scroll_u, set_scroll_u); + MAKE_PROPERTY(scroll_v, get_scroll_v, set_scroll_v); + MAKE_PROPERTY(scroll_w, get_scroll_w, set_scroll_w); + MAKE_PROPERTY(scroll_r, get_scroll_r, set_scroll_r); + public: INLINE TagData::const_iterator tag_begin() const; INLINE TagData::const_iterator tag_end() const; diff --git a/panda/src/egg/eggNurbsCurve.h b/panda/src/egg/eggNurbsCurve.h index 29f567573a..5eb8a054c8 100644 --- a/panda/src/egg/eggNurbsCurve.h +++ b/panda/src/egg/eggNurbsCurve.h @@ -50,6 +50,11 @@ PUBLISHED: virtual void write(ostream &out, int indent_level) const; + MAKE_PROPERTY(order, get_order, set_order); + MAKE_PROPERTY(degree, get_degree); + MAKE_PROPERTY(closed, is_closed); + MAKE_SEQ_PROPERTY(knots, get_num_knots, get_knot, set_knot); + private: typedef vector_double Knots; Knots _knots; diff --git a/panda/src/egg/eggPrimitive.I b/panda/src/egg/eggPrimitive.I index 56fa2f8792..68ba3de1e3 100644 --- a/panda/src/egg/eggPrimitive.I +++ b/panda/src/egg/eggPrimitive.I @@ -354,7 +354,7 @@ clear() { /** * */ -INLINE int EggPrimitive:: +INLINE size_t EggPrimitive:: get_num_vertices() const { return size(); } @@ -365,8 +365,8 @@ get_num_vertices() const { * mess with the iterators. */ INLINE void EggPrimitive:: -set_vertex(int index, EggVertex *vertex) { - nassertv(index >= 0 && index < (int)size()); +set_vertex(size_t index, EggVertex *vertex) { + nassertv(index < size()); replace(begin() + index, vertex); } @@ -374,8 +374,8 @@ set_vertex(int index, EggVertex *vertex) { * Returns a particular index based on its index number. */ INLINE EggVertex *EggPrimitive:: -get_vertex(int index) const { - nassertr(index >= 0 && index < (int)size(), NULL); +get_vertex(size_t index) const { + nassertr(index < size(), NULL); return *(begin() + index); } diff --git a/panda/src/egg/eggPrimitive.cxx b/panda/src/egg/eggPrimitive.cxx index 630c784ed3..e3eb0b16d7 100644 --- a/panda/src/egg/eggPrimitive.cxx +++ b/panda/src/egg/eggPrimitive.cxx @@ -684,6 +684,19 @@ remove_vertex(EggVertex *vertex) { } } +/** + * Removes the indicated vertex from the primitive. + */ +void EggPrimitive:: +remove_vertex(size_t index) { + nassertv(index < size()); + iterator i = begin() + index; + + // erase() calls prepare_remove_vertex(). + erase(i); + + test_vref_integrity(); +} /** * Replaces the current primitive's list of vertices with a copy of the list diff --git a/panda/src/egg/eggPrimitive.h b/panda/src/egg/eggPrimitive.h index f1e26c0478..4e8672249e 100644 --- a/panda/src/egg/eggPrimitive.h +++ b/panda/src/egg/eggPrimitive.h @@ -105,6 +105,14 @@ PUBLISHED: INLINE void set_bface_flag(bool flag); INLINE bool get_bface_flag() const; + MAKE_PROPERTY(sort_name, get_sort_name); + MAKE_PROPERTY(shading, get_shading); + MAKE_PROPERTY(connected_shading, get_connected_shading); + + MAKE_SEQ_PROPERTY(textures, get_num_textures, get_texture); + MAKE_PROPERTY2(material, has_material, get_material, set_material, clear_material); + MAKE_PROPERTY(bface_flag, get_bface_flag, set_bface_flag); + void copy_attributes(const EggAttributes &other); void copy_attributes(const EggPrimitive &other); @@ -166,16 +174,20 @@ PUBLISHED: EggVertex *add_vertex(EggVertex *vertex); EggVertex *remove_vertex(EggVertex *vertex); + void remove_vertex(size_t index); void copy_vertices(const EggPrimitive &other); // These are shorthands if you don't want to use the iterators. - INLINE int get_num_vertices() const; - INLINE void set_vertex(int index, EggVertex *vertex); - INLINE EggVertex *get_vertex(int index) const; + INLINE size_t get_num_vertices() const; + INLINE void set_vertex(size_t index, EggVertex *vertex); + INLINE EggVertex *get_vertex(size_t index) const; MAKE_SEQ(get_vertices, get_num_vertices, get_vertex); INLINE EggVertexPool *get_pool() const; + MAKE_SEQ_PROPERTY(vertices, get_num_vertices, get_vertex, set_vertex, remove_vertex); + MAKE_PROPERTY(pool, get_pool); + virtual void write(ostream &out, int indent_level) const=0; #ifdef _DEBUG diff --git a/panda/src/event/asyncTaskManager.h b/panda/src/event/asyncTaskManager.h index e8cdc220b7..967476c4af 100644 --- a/panda/src/event/asyncTaskManager.h +++ b/panda/src/event/asyncTaskManager.h @@ -82,9 +82,13 @@ PUBLISHED: AsyncTaskCollection get_tasks() const; AsyncTaskCollection get_active_tasks() const; AsyncTaskCollection get_sleeping_tasks() const; + MAKE_PROPERTY(tasks, get_tasks); + MAKE_PROPERTY(active_tasks, get_active_tasks); + MAKE_PROPERTY(sleeping_tasks, get_sleeping_tasks); void poll(); double get_next_wake_time() const; + MAKE_PROPERTY(next_wake_time, get_next_wake_time); virtual void output(ostream &out) const; virtual void write(ostream &out, int indent_level = 0) const; diff --git a/panda/src/event/event.h b/panda/src/event/event.h index 47075883b8..e09c4c2500 100644 --- a/panda/src/event/event.h +++ b/panda/src/event/event.h @@ -55,6 +55,10 @@ PUBLISHED: void output(ostream &out) const; + MAKE_PROPERTY(name, get_name, set_name); + MAKE_SEQ_PROPERTY(parameters, get_num_parameters, get_parameter); + MAKE_PROPERTY2(receiver, has_receiver, get_receiver, set_receiver, clear_receiver); + protected: typedef pvector ParameterList; ParameterList _parameters; diff --git a/panda/src/express/virtualFileSystem.h b/panda/src/express/virtualFileSystem.h index ea37d9ebe3..22d6316ce7 100644 --- a/panda/src/express/virtualFileSystem.h +++ b/panda/src/express/virtualFileSystem.h @@ -61,6 +61,7 @@ PUBLISHED: int get_num_mounts() const; PT(VirtualFileMount) get_mount(int n) const; MAKE_SEQ(get_mounts, get_num_mounts, get_mount); + MAKE_SEQ_PROPERTY(mounts, get_num_mounts, get_mount); BLOCKING bool chdir(const Filename &new_directory); BLOCKING Filename get_cwd() const; diff --git a/panda/src/gobj/geom.h b/panda/src/gobj/geom.h index 3d6715b473..6a12e8ee98 100644 --- a/panda/src/gobj/geom.h +++ b/panda/src/gobj/geom.h @@ -95,6 +95,7 @@ PUBLISHED: void add_primitive(const GeomPrimitive *primitive); void remove_primitive(int i); void clear_primitives(); + MAKE_SEQ_PROPERTY(primitives, get_num_primitives, get_primitive, set_primitive, remove_primitive); INLINE PT(Geom) decompose() const; INLINE PT(Geom) doubleside() const; diff --git a/panda/src/gobj/geomVertexArrayFormat.h b/panda/src/gobj/geomVertexArrayFormat.h index 6d252087f3..3b8ca3a221 100644 --- a/panda/src/gobj/geomVertexArrayFormat.h +++ b/panda/src/gobj/geomVertexArrayFormat.h @@ -104,6 +104,7 @@ PUBLISHED: INLINE int get_num_columns() const; INLINE const GeomVertexColumn *get_column(int i) const; MAKE_SEQ(get_columns, get_num_columns, get_column); + MAKE_SEQ_PROPERTY(columns, get_num_columns, get_column); const GeomVertexColumn *get_column(const InternalName *name) const; const GeomVertexColumn *get_column(int start_byte, int num_bytes) const; diff --git a/panda/src/gobj/geomVertexData.h b/panda/src/gobj/geomVertexData.h index d2bf71d957..11f76df880 100644 --- a/panda/src/gobj/geomVertexData.h +++ b/panda/src/gobj/geomVertexData.h @@ -110,6 +110,7 @@ PUBLISHED: MAKE_SEQ(get_arrays, get_num_arrays, get_array); INLINE PT(GeomVertexArrayData) modify_array(int i); INLINE void set_array(int i, const GeomVertexArrayData *array); + MAKE_SEQ_PROPERTY(arrays, get_num_arrays, get_array, set_array); INLINE const TransformTable *get_transform_table() const; void set_transform_table(const TransformTable *table); diff --git a/panda/src/gobj/geomVertexFormat.h b/panda/src/gobj/geomVertexFormat.h index cfafdfddde..c7451225e2 100644 --- a/panda/src/gobj/geomVertexFormat.h +++ b/panda/src/gobj/geomVertexFormat.h @@ -120,6 +120,11 @@ PUBLISHED: MAKE_SEQ(get_morph_bases, get_num_morphs, get_morph_base); MAKE_SEQ(get_morph_deltas, get_num_morphs, get_morph_delta); + MAKE_SEQ_PROPERTY(arrays, get_num_arrays, get_array, set_array, remove_array); + MAKE_SEQ_PROPERTY(columns, get_num_columns, get_column); + MAKE_SEQ_PROPERTY(points, get_num_points, get_point); + MAKE_SEQ_PROPERTY(vectors, get_num_vectors, get_vector); + void output(ostream &out) const; void write(ostream &out, int indent_level = 0) const; void write_with_data(ostream &out, int indent_level, diff --git a/panda/src/gobj/transformBlendTable.h b/panda/src/gobj/transformBlendTable.h index 3981278b04..55d628d349 100644 --- a/panda/src/gobj/transformBlendTable.h +++ b/panda/src/gobj/transformBlendTable.h @@ -55,7 +55,7 @@ PUBLISHED: INLINE size_t get_num_blends() const; INLINE const TransformBlend &get_blend(size_t n) const; MAKE_SEQ(get_blends, get_num_blends, get_blend); - INLINE UpdateSeq get_modified(Thread *current_thread) const; + INLINE UpdateSeq get_modified(Thread *current_thread = Thread::get_current_thread()) const; void set_blend(size_t n, const TransformBlend &blend); void remove_blend(size_t n); @@ -70,6 +70,12 @@ PUBLISHED: void write(ostream &out, int indent_level) const; + MAKE_SEQ_PROPERTY(blends, get_num_blends, get_blend, set_blend, remove_blend); + MAKE_PROPERTY(modified, get_modified); + MAKE_PROPERTY(num_transforms, get_num_transforms); + MAKE_PROPERTY(max_simultaneous_transforms, get_max_simultaneous_transforms); + MAKE_PROPERTY(rows, get_rows, set_rows); + private: class CData; diff --git a/panda/src/gobj/transformTable.h b/panda/src/gobj/transformTable.h index 48fa0abb7e..0483fced99 100644 --- a/panda/src/gobj/transformTable.h +++ b/panda/src/gobj/transformTable.h @@ -48,7 +48,7 @@ PUBLISHED: INLINE size_t get_num_transforms() const; INLINE const VertexTransform *get_transform(size_t n) const; MAKE_SEQ(get_transforms, get_num_transforms, get_transform); - INLINE UpdateSeq get_modified(Thread *current_thread) const; + INLINE UpdateSeq get_modified(Thread *current_thread = Thread::get_current_thread()) const; void set_transform(size_t n, const VertexTransform *transform); void remove_transform(size_t n); @@ -56,6 +56,10 @@ PUBLISHED: void write(ostream &out) const; + MAKE_PROPERTY(registered, is_registered); + MAKE_PROPERTY(modified, get_modified); + MAKE_SEQ_PROPERTY(transforms, get_num_transforms, get_transform, set_transform, remove_transform); + private: void do_register(); void do_unregister(); diff --git a/panda/src/linmath/lmatrix3_src.h b/panda/src/linmath/lmatrix3_src.h index 1960e586e7..fa01ef2c27 100644 --- a/panda/src/linmath/lmatrix3_src.h +++ b/panda/src/linmath/lmatrix3_src.h @@ -86,6 +86,8 @@ PUBLISHED: INLINE_LINMATH FLOATNAME(LVecBase3) get_col(int col) const; MAKE_SEQ(get_rows, size, get_row); MAKE_SEQ(get_cols, size, get_col); + MAKE_SEQ_PROPERTY(rows, size, get_row); + MAKE_SEQ_PROPERTY(cols, size, get_col); INLINE_LINMATH FLOATNAME(LVecBase2) get_row2(int row) const; INLINE_LINMATH FLOATNAME(LVecBase2) get_col2(int col) const; diff --git a/panda/src/linmath/lmatrix4_src.h b/panda/src/linmath/lmatrix4_src.h index eac09f85e9..0b9f1557e5 100644 --- a/panda/src/linmath/lmatrix4_src.h +++ b/panda/src/linmath/lmatrix4_src.h @@ -99,6 +99,8 @@ PUBLISHED: MAKE_SEQ(get_rows, size, get_row); MAKE_SEQ(get_cols, size, get_col); MAKE_SEQ(get_row3s, size, get_row3); + MAKE_SEQ_PROPERTY(rows, size, get_row); + MAKE_SEQ_PROPERTY(cols, size, get_col); // these versions inline better INLINE_LINMATH void get_row(FLOATNAME(LVecBase4) &result_vec, int row) const; diff --git a/panda/src/mathutil/boundingBox.h b/panda/src/mathutil/boundingBox.h index d65aa80dc4..53c24c521d 100644 --- a/panda/src/mathutil/boundingBox.h +++ b/panda/src/mathutil/boundingBox.h @@ -53,6 +53,9 @@ PUBLISHED: INLINE_MATHUTIL LPlane get_plane(int n) const; MAKE_SEQ(get_planes, get_num_planes, get_plane); + MAKE_SEQ_PROPERTY(points, get_num_points, get_point); + MAKE_SEQ_PROPERTY(planes, get_num_planes, get_plane); + INLINE_MATHUTIL void set_min_max(const LPoint3 &min, const LPoint3 &max); public: diff --git a/panda/src/mathutil/boundingHexahedron.h b/panda/src/mathutil/boundingHexahedron.h index a7d55b8643..40851a219f 100644 --- a/panda/src/mathutil/boundingHexahedron.h +++ b/panda/src/mathutil/boundingHexahedron.h @@ -62,6 +62,9 @@ PUBLISHED: INLINE_MATHUTIL LPlane get_plane(int n) const; MAKE_SEQ(get_planes, get_num_planes, get_plane); + MAKE_SEQ_PROPERTY(points, get_num_points, get_point); + MAKE_SEQ_PROPERTY(planes, get_num_planes, get_plane); + public: virtual const BoundingHexahedron *as_bounding_hexahedron() const; diff --git a/panda/src/mathutil/intersectionBoundingVolume.h b/panda/src/mathutil/intersectionBoundingVolume.h index 38759e0d29..74e750acb9 100644 --- a/panda/src/mathutil/intersectionBoundingVolume.h +++ b/panda/src/mathutil/intersectionBoundingVolume.h @@ -47,6 +47,7 @@ PUBLISHED: INLINE_MATHUTIL int get_num_components() const; INLINE_MATHUTIL const GeometricBoundingVolume *get_component(int n) const; MAKE_SEQ(get_components, get_num_components, get_component); + MAKE_SEQ_PROPERTY(components, get_num_components, get_component); void clear_components(); void add_component(const GeometricBoundingVolume *component); diff --git a/panda/src/mathutil/triangulator.h b/panda/src/mathutil/triangulator.h index 8008cef8eb..0514917cfd 100644 --- a/panda/src/mathutil/triangulator.h +++ b/panda/src/mathutil/triangulator.h @@ -40,6 +40,7 @@ PUBLISHED: INLINE int get_num_vertices() const; INLINE const LPoint2d &get_vertex(int n) const; MAKE_SEQ(get_vertices, get_num_vertices, get_vertex); + MAKE_SEQ_PROPERTY(vertices, get_num_vertices, get_vertex); void clear_polygon(); void add_polygon_vertex(int index); diff --git a/panda/src/mathutil/triangulator3.h b/panda/src/mathutil/triangulator3.h index 786b2f581a..d4657668e4 100644 --- a/panda/src/mathutil/triangulator3.h +++ b/panda/src/mathutil/triangulator3.h @@ -40,6 +40,9 @@ PUBLISHED: void triangulate(); INLINE const LPlaned &get_plane() const; + MAKE_SEQ_PROPERTY(vertices, get_num_vertices, get_vertex); + MAKE_PROPERTY(plane, get_plane); + private: typedef pvector Vertices3; Vertices3 _vertices3; diff --git a/panda/src/mathutil/unionBoundingVolume.h b/panda/src/mathutil/unionBoundingVolume.h index dd4366abfb..4af835eae7 100644 --- a/panda/src/mathutil/unionBoundingVolume.h +++ b/panda/src/mathutil/unionBoundingVolume.h @@ -46,6 +46,7 @@ PUBLISHED: INLINE_MATHUTIL int get_num_components() const; INLINE_MATHUTIL const GeometricBoundingVolume *get_component(int n) const; MAKE_SEQ(get_components, get_num_components, get_component); + MAKE_SEQ_PROPERTY(components, get_num_components, get_component); void clear_components(); void add_component(const GeometricBoundingVolume *component); diff --git a/panda/src/movies/microphoneAudio.h b/panda/src/movies/microphoneAudio.h index 2b617ce141..1b8e58bd03 100644 --- a/panda/src/movies/microphoneAudio.h +++ b/panda/src/movies/microphoneAudio.h @@ -34,6 +34,10 @@ class EXPCL_PANDA_MOVIES MicrophoneAudio : public MovieAudio { INLINE int get_channels() const; INLINE int get_rate() const; + MAKE_SEQ_PROPERTY(options, get_num_options, get_option); + MAKE_PROPERTY(channels, get_channels); + MAKE_PROPERTY(rate, get_rate); + virtual PT(MovieAudioCursor) open() = 0; public: diff --git a/panda/src/net/connectionManager.h b/panda/src/net/connectionManager.h index cf5772386c..c6f04ecbe0 100644 --- a/panda/src/net/connectionManager.h +++ b/panda/src/net/connectionManager.h @@ -108,6 +108,9 @@ PUBLISHED: const Interface &get_interface(int n); MAKE_SEQ(get_interfaces, get_num_interfaces, get_interface); + MAKE_PROPERTY(host_name, get_host_name); + MAKE_SEQ_PROPERTY(interfaces, get_num_interfaces, get_interface); + protected: void new_connection(const PT(Connection) &connection); virtual void flush_read_connection(Connection *connection); diff --git a/panda/src/parametrics/nurbsSurfaceEvaluator.h b/panda/src/parametrics/nurbsSurfaceEvaluator.h index ebba47bbc5..a2f468d716 100644 --- a/panda/src/parametrics/nurbsSurfaceEvaluator.h +++ b/panda/src/parametrics/nurbsSurfaceEvaluator.h @@ -79,6 +79,11 @@ PUBLISHED: void output(ostream &out) const; + MAKE_PROPERTY(u_order, get_u_order, set_u_order); + MAKE_PROPERTY(v_order, get_v_order, set_v_order); + MAKE_SEQ_PROPERTY(u_knots, get_num_u_knots, get_u_knot, set_u_knot); + MAKE_SEQ_PROPERTY(v_knots, get_num_v_knots, get_v_knot, set_v_knot); + public: typedef epvector Vert4Array; typedef pvector Vert3Array; diff --git a/panda/src/parametrics/parametricCurveCollection.cxx b/panda/src/parametrics/parametricCurveCollection.cxx index 98e9a0459e..2778161e34 100644 --- a/panda/src/parametrics/parametricCurveCollection.cxx +++ b/panda/src/parametrics/parametricCurveCollection.cxx @@ -87,6 +87,7 @@ remove_curve(ParametricCurve *curve) { return true; } + /** * Removes the indicated ParametricCurve from the collection, by its index * number. @@ -100,6 +101,20 @@ remove_curve(int index) { redraw(); } + +/** + * Replaces the indicated ParametricCurve from the collection, by its index + * number. + */ +void ParametricCurveCollection:: +set_curve(int index, ParametricCurve *curve) { + nassertv(index >= 0 && index < (int)_curves.size()); + prepare_remove_curve(_curves[index]); + prepare_add_curve(curve); + _curves[index] = curve; + redraw(); +} + /** * Returns true if the indicated ParametricCurve appears in this collection, * false otherwise. diff --git a/panda/src/parametrics/parametricCurveCollection.h b/panda/src/parametrics/parametricCurveCollection.h index 446c0a4e8d..42a84c7861 100644 --- a/panda/src/parametrics/parametricCurveCollection.h +++ b/panda/src/parametrics/parametricCurveCollection.h @@ -44,6 +44,7 @@ PUBLISHED: int add_curves(PandaNode *node); bool remove_curve(ParametricCurve *curve); void remove_curve(int index); + void set_curve(int index, ParametricCurve *curve); bool has_curve(ParametricCurve *curve) const; void clear(); void clear_timewarps(); @@ -61,6 +62,13 @@ PUBLISHED: INLINE PN_stdfloat get_max_t() const; + MAKE_SEQ_PROPERTY(curves, get_num_curves, get_curve, set_curve, remove_curve); + MAKE_PROPERTY(xyz_curve, get_xyz_curve); + MAKE_PROPERTY(hpr_curve, get_hpr_curve); + MAKE_PROPERTY(default_curve, get_default_curve); + MAKE_SEQ_PROPERTY(timewarp_curves, get_num_timewarps, get_timewarp_curve); + MAKE_PROPERTY(max_t, get_max_t); + void make_even(PN_stdfloat max_t, PN_stdfloat segments_per_unit); void face_forward(PN_stdfloat segments_per_unit); void reset_max_t(PN_stdfloat max_t); diff --git a/panda/src/pgraph/camera.h b/panda/src/pgraph/camera.h index 8d30d146da..826000fbae 100644 --- a/panda/src/pgraph/camera.h +++ b/panda/src/pgraph/camera.h @@ -55,6 +55,7 @@ PUBLISHED: INLINE int get_num_display_regions() const; INLINE DisplayRegionBase *get_display_region(int n) const; MAKE_SEQ(get_display_regions, get_num_display_regions, get_display_region); + MAKE_SEQ_PROPERTY(display_regions, get_num_display_regions, get_display_region); INLINE void set_camera_mask(DrawMask mask); INLINE DrawMask get_camera_mask() const; diff --git a/panda/src/pgraph/loaderFileTypeRegistry.h b/panda/src/pgraph/loaderFileTypeRegistry.h index 8ae64a51ea..6fedc09406 100644 --- a/panda/src/pgraph/loaderFileTypeRegistry.h +++ b/panda/src/pgraph/loaderFileTypeRegistry.h @@ -39,6 +39,7 @@ PUBLISHED: int get_num_types() const; LoaderFileType *get_type(int n) const; MAKE_SEQ(get_types, get_num_types, get_type); + MAKE_SEQ_PROPERTY(types, get_num_types, get_type); LoaderFileType *get_type_from_extension(const string &extension); void write(ostream &out, int indent_level = 0) const; diff --git a/panda/src/pgraph/nodePath.h b/panda/src/pgraph/nodePath.h index 4f39aa28bb..78c2520faa 100644 --- a/panda/src/pgraph/nodePath.h +++ b/panda/src/pgraph/nodePath.h @@ -203,10 +203,13 @@ PUBLISHED: int get_num_nodes(Thread *current_thread = Thread::get_current_thread()) const; PandaNode *get_node(int index, Thread *current_thread = Thread::get_current_thread()) const; MAKE_SEQ(get_nodes, get_num_nodes, get_node); + MAKE_SEQ_PROPERTY(nodes, get_num_nodes, get_node); NodePath get_ancestor(int index, Thread *current_thread = Thread::get_current_thread()) const; MAKE_SEQ(get_ancestors, get_num_nodes, get_ancestor); + MAKE_SEQ_PROPERTY(ancestors, get_num_nodes, get_ancestor); INLINE ErrorType get_error_type() const; + MAKE_PROPERTY(error_type, get_error_type); INLINE PandaNode *get_top_node(Thread *current_thread = Thread::get_current_thread()) const; NodePath get_top(Thread *current_thread = Thread::get_current_thread()) const; @@ -228,12 +231,18 @@ PUBLISHED: INLINE NodePath get_child(int n, Thread *current_thread = Thread::get_current_thread()) const; NodePathCollection get_stashed_children(Thread *current_thread = Thread::get_current_thread()) const; + MAKE_PROPERTY(children, get_children); + MAKE_PROPERTY(stashed_children, get_stashed_children); + INLINE int count_num_descendants() const; INLINE bool has_parent(Thread *current_thread = Thread::get_current_thread()) const; INLINE NodePath get_parent(Thread *current_thread = Thread::get_current_thread()) const; int get_sort(Thread *current_thread = Thread::get_current_thread()) const; + MAKE_PROPERTY2(parent, has_parent, get_parent); + MAKE_PROPERTY(sort, get_sort); + NodePath find(const string &path) const; NodePath find_path_to(PandaNode *node) const; NodePathCollection find_all_matches(const string &path) const; @@ -910,6 +919,7 @@ PUBLISHED: INLINE void set_name(const string &name); INLINE string get_name() const; + MAKE_PROPERTY(name, get_name, set_name); BLOCKING bool write_bam_file(const Filename &filename) const; BLOCKING bool write_bam_stream(ostream &out) const; diff --git a/panda/src/pgraph/occluderNode.I b/panda/src/pgraph/occluderNode.I index 11ecea9b5c..f84b864b68 100644 --- a/panda/src/pgraph/occluderNode.I +++ b/panda/src/pgraph/occluderNode.I @@ -31,7 +31,7 @@ set_vertices(const LPoint3 &v0, const LPoint3 &v1, * Returns the number of vertices in the occluder polygon. This should always * return 4. */ -INLINE int OccluderNode:: +INLINE size_t OccluderNode:: get_num_vertices() const { return _vertices.size(); } @@ -40,11 +40,20 @@ get_num_vertices() const { * Returns the nth vertex of the occluder polygon. */ INLINE const LPoint3 &OccluderNode:: -get_vertex(int n) const { - nassertr(n >= 0 && n < (int)_vertices.size(), LPoint3::zero()); +get_vertex(size_t n) const { + nassertr(n < _vertices.size(), LPoint3::zero()); return _vertices[n]; } +/** + * Sets the nth vertex of the occluder polygon. + */ +INLINE void OccluderNode:: +set_vertex(size_t n, const LPoint3 &v) { + nassertv(n < _vertices.size()); + _vertices[n] = v; +} + /** * If true, the back-face will also be used to occlude */ diff --git a/panda/src/pgraph/occluderNode.h b/panda/src/pgraph/occluderNode.h index 92e15e4b8d..e9d8c67165 100644 --- a/panda/src/pgraph/occluderNode.h +++ b/panda/src/pgraph/occluderNode.h @@ -53,10 +53,15 @@ PUBLISHED: INLINE PN_stdfloat get_min_coverage(); INLINE void set_vertices(const LPoint3 &v0, const LPoint3 &v1, const LPoint3 &v2, const LPoint3 &v3); - INLINE int get_num_vertices() const; - INLINE const LPoint3 &get_vertex(int n) const; + INLINE size_t get_num_vertices() const; + INLINE const LPoint3 &get_vertex(size_t n) const; + INLINE void set_vertex(size_t n, const LPoint3 &v); MAKE_SEQ(get_vertices, get_num_vertices, get_vertex); + MAKE_PROPERTY(double_sided, is_double_sided, set_double_sided); + MAKE_PROPERTY(min_coverage, get_min_coverage, set_min_coverage); + MAKE_SEQ_PROPERTY(vertices, get_num_vertices, get_vertex, set_vertex); + protected: virtual void compute_internal_bounds(CPT(BoundingVolume) &internal_bounds, int &internal_vertices, diff --git a/panda/src/pgraph/pandaNode.I b/panda/src/pgraph/pandaNode.I index c493ef08f3..fa60e11b41 100644 --- a/panda/src/pgraph/pandaNode.I +++ b/panda/src/pgraph/pandaNode.I @@ -932,7 +932,7 @@ operator = (PandaNode::Children &&from) NOEXCEPT { /** * Returns the number of children of the node. */ -INLINE int PandaNode::Children:: +INLINE size_t PandaNode::Children:: get_num_children() const { nassertr(_down != (Down *)NULL, 0); return _down->size(); @@ -942,9 +942,9 @@ get_num_children() const { * Returns the nth child of the node. */ INLINE PandaNode *PandaNode::Children:: -get_child(int n) const { +get_child(size_t n) const { nassertr(_down != (Down *)NULL, NULL); - nassertr(n >= 0 && n < (int)_down->size(), NULL); + nassertr(n < (size_t)_down->size(), NULL); return (*_down)[n].get_child(); } @@ -953,9 +953,9 @@ get_child(int n) const { * number that was passed to add_child()). See get_num_children(). */ INLINE int PandaNode::Children:: -get_child_sort(int n) const { +get_child_sort(size_t n) const { nassertr(_down != (Down *)NULL, -1); - nassertr(n >= 0 && n < (int)_down->size(), -1); + nassertr(n < _down->size(), -1); return (*_down)[n].get_sort(); } @@ -1014,7 +1014,7 @@ operator = (PandaNode::Stashed &&from) NOEXCEPT { /** * Returns the number of stashed children of the node. */ -INLINE int PandaNode::Stashed:: +INLINE size_t PandaNode::Stashed:: get_num_stashed() const { nassertr(_stashed != (Down *)NULL, 0); return _stashed->size(); @@ -1024,9 +1024,9 @@ get_num_stashed() const { * Returns the nth stashed child of the node. */ INLINE PandaNode *PandaNode::Stashed:: -get_stashed(int n) const { +get_stashed(size_t n) const { nassertr(_stashed != (Down *)NULL, NULL); - nassertr(n >= 0 && n < (int)_stashed->size(), NULL); + nassertr(n < _stashed->size(), NULL); return (*_stashed)[n].get_child(); } @@ -1035,9 +1035,9 @@ get_stashed(int n) const { * number that was passed to add_child()). See get_num_stashed(). */ INLINE int PandaNode::Stashed:: -get_stashed_sort(int n) const { +get_stashed_sort(size_t n) const { nassertr(_stashed != (Down *)NULL, -1); - nassertr(n >= 0 && n < (int)_stashed->size(), -1); + nassertr(n < _stashed->size(), -1); return (*_stashed)[n].get_sort(); } @@ -1096,7 +1096,7 @@ operator = (PandaNode::Parents &&from) NOEXCEPT { /** * Returns the number of parents of the node. */ -INLINE int PandaNode::Parents:: +INLINE size_t PandaNode::Parents:: get_num_parents() const { nassertr(_up != (Up *)NULL, 0); return _up->size(); @@ -1106,9 +1106,9 @@ get_num_parents() const { * Returns the nth parent of the node. */ INLINE PandaNode *PandaNode::Parents:: -get_parent(int n) const { +get_parent(size_t n) const { nassertr(_up != (Up *)NULL, NULL); - nassertr(n >= 0 && n < (int)_up->size(), NULL); + nassertr(n < _up->size(), NULL); return (*_up)[n].get_parent(); } diff --git a/panda/src/pgraph/pandaNode.h b/panda/src/pgraph/pandaNode.h index 94a5912e8c..05bbcaadba 100644 --- a/panda/src/pgraph/pandaNode.h +++ b/panda/src/pgraph/pandaNode.h @@ -680,10 +680,10 @@ private: static PStatCollector _reset_prev_pcollector; static PStatCollector _update_bounds_pcollector; -public: +PUBLISHED: // This class is returned from get_children(). Use it to walk through the // list of children. This is faster, and safer, than walking through the - // children one at a time via get_num_children()get_child(), since the list + // children one at a time via get_num_children()/get_child(), since the list // of children is saved out ahead of time, rather than having to reacquire // the lock with each iteration, or to keep the lock held for the entire // pass. @@ -699,9 +699,13 @@ public: INLINE void operator = (Children &&from) NOEXCEPT; #endif - INLINE int get_num_children() const; - INLINE PandaNode *get_child(int n) const; - INLINE int get_child_sort(int n) const; + INLINE size_t get_num_children() const; + INLINE PandaNode *get_child(size_t n) const; + INLINE int get_child_sort(size_t n) const; + + PUBLISHED: + INLINE PandaNode *operator [](size_t n) const { return get_child(n); } + INLINE size_t size() const { return get_num_children(); } private: CPT(Down) _down; @@ -720,9 +724,13 @@ public: INLINE void operator = (Stashed &&from) NOEXCEPT; #endif - INLINE int get_num_stashed() const; - INLINE PandaNode *get_stashed(int n) const; - INLINE int get_stashed_sort(int n) const; + INLINE size_t get_num_stashed() const; + INLINE PandaNode *get_stashed(size_t n) const; + INLINE int get_stashed_sort(size_t n) const; + + PUBLISHED: + INLINE PandaNode *operator [](size_t n) const { return get_stashed(n); } + INLINE size_t size() const { return get_num_stashed(); } private: CPT(Down) _stashed; @@ -741,13 +749,18 @@ public: INLINE void operator = (Parents &&from) NOEXCEPT; #endif - INLINE int get_num_parents() const; - INLINE PandaNode *get_parent(int n) const; + INLINE size_t get_num_parents() const; + INLINE PandaNode *get_parent(size_t n) const; + + PUBLISHED: + INLINE PandaNode *operator [](size_t n) const { return get_parent(n); } + INLINE size_t size() const { return get_num_parents(); } private: CPT(Up) _up; }; +public: INLINE Children get_children(Thread *current_thread = Thread::get_current_thread()) const; INLINE Stashed get_stashed(Thread *current_thread = Thread::get_current_thread()) const; INLINE Parents get_parents(Thread *current_thread = Thread::get_current_thread()) const; @@ -755,6 +768,11 @@ public: typedef bool SceneRootFunc(const PandaNode *); static void set_scene_root_func(SceneRootFunc *func); +PUBLISHED: + MAKE_PROPERTY(children, get_children); + MAKE_PROPERTY(stashed, get_stashed); + MAKE_PROPERTY(parents, get_parents); + private: static SceneRootFunc *_scene_root_func; diff --git a/panda/src/pgraph/portalNode.h b/panda/src/pgraph/portalNode.h index b315b8abff..3b5c9ae7a3 100644 --- a/panda/src/pgraph/portalNode.h +++ b/panda/src/pgraph/portalNode.h @@ -86,6 +86,17 @@ PUBLISHED: // void draw () const; + MAKE_PROPERTY(into_portal_mask, get_into_portal_mask, set_into_portal_mask); + MAKE_PROPERTY(from_portal_mask, get_from_portal_mask, set_from_portal_mask); + MAKE_PROPERTY(portal_geom, get_portal_geom, set_portal_geom); + MAKE_SEQ_PROPERTY(vertices, get_num_vertices, get_vertex); + MAKE_PROPERTY(cell_in, get_cell_in, set_cell_in); + MAKE_PROPERTY(cell_out, get_cell_out, set_cell_out); + MAKE_PROPERTY(clip_plane, is_clip_plane, set_clip_plane); + MAKE_PROPERTY(visible, is_visible, set_visible); + MAKE_PROPERTY(max_depth, get_max_depth, set_max_depth); + MAKE_PROPERTY(open, is_open, set_open); + protected: virtual void compute_internal_bounds(CPT(BoundingVolume) &internal_bounds, int &internal_vertices, diff --git a/panda/src/pgraphnodes/computeNode.I b/panda/src/pgraphnodes/computeNode.I index 80d93e73ac..06e022515e 100644 --- a/panda/src/pgraphnodes/computeNode.I +++ b/panda/src/pgraphnodes/computeNode.I @@ -45,7 +45,7 @@ clear_dispatches() { /** * Returns the number of times add_dispatch has been called on this object. */ -INLINE int ComputeNode:: +INLINE size_t ComputeNode:: get_num_dispatches() const { Dispatcher::CDReader cdata(_dispatcher->_cycler); return cdata->_dispatches.size(); @@ -55,12 +55,32 @@ get_num_dispatches() const { * Returns the group counts of the nth dispatch associated with this object. */ INLINE const LVecBase3i &ComputeNode:: -get_dispatch(int n) const { +get_dispatch(size_t n) const { Dispatcher::CDReader cdata(_dispatcher->_cycler); - nassertr(n >= 0 && (size_t)n < cdata->_dispatches.size(), LVecBase3i::zero()); + nassertr(n < cdata->_dispatches.size(), LVecBase3i::zero()); return cdata->_dispatches[n]; } +/** + * Sets the group counts of the nth dispatch associated with this object. + */ +INLINE void ComputeNode:: +set_dispatch(size_t n, const LVecBase3i &dispatch) { + Dispatcher::CDWriter cdata(_dispatcher->_cycler); + nassertv(n < cdata->_dispatches.size()); + cdata->_dispatches[n] = dispatch; +} + +/** + * Erases the given dispatch index from the list. + */ +INLINE void ComputeNode:: +remove_dispatch(size_t n) { + Dispatcher::CDWriter cdata(_dispatcher->_cycler); + nassertv(n < cdata->_dispatches.size()); + cdata->_dispatches.erase(cdata->_dispatches.begin() + n); +} + /** * */ diff --git a/panda/src/pgraphnodes/computeNode.h b/panda/src/pgraphnodes/computeNode.h index feeea69006..3210fba40f 100644 --- a/panda/src/pgraphnodes/computeNode.h +++ b/panda/src/pgraphnodes/computeNode.h @@ -31,11 +31,14 @@ PUBLISHED: INLINE void add_dispatch(const LVecBase3i &num_groups); INLINE void add_dispatch(int num_groups_x, int num_groups_y, int num_groups_z); - INLINE int get_num_dispatches() const; - INLINE const LVecBase3i &get_dispatch(int i) const; + INLINE size_t get_num_dispatches() const; + INLINE const LVecBase3i &get_dispatch(size_t i) const; + INLINE void set_dispatch(size_t i, const LVecBase3i &num_groups); + INLINE void remove_dispatch(size_t i); INLINE void clear_dispatches(); MAKE_SEQ(get_dispatches, get_num_dispatches, get_dispatch); + MAKE_SEQ_PROPERTY(dispatches, get_num_dispatches, get_dispatch, set_dispatch, remove_dispatch); public: ComputeNode(const ComputeNode ©); diff --git a/panda/src/pgraphnodes/lodNode.h b/panda/src/pgraphnodes/lodNode.h index 50b17d26e1..6348b4c23a 100644 --- a/panda/src/pgraphnodes/lodNode.h +++ b/panda/src/pgraphnodes/lodNode.h @@ -75,6 +75,13 @@ PUBLISHED: INLINE void set_center(const LPoint3 ¢er); INLINE const LPoint3 &get_center() const; + MAKE_SEQ_PROPERTY(ins, get_num_switches, get_in); + MAKE_SEQ_PROPERTY(outs, get_num_switches, get_out); + MAKE_PROPERTY(lowest_switch, get_lowest_switch); + MAKE_PROPERTY(highest_switch, get_highest_switch); + MAKE_PROPERTY(lod_scale, get_lod_scale, set_lod_scale); + MAKE_PROPERTY(center, get_center, set_center); + void show_switch(int index); void show_switch(int index, const LColor &color); void hide_switch(int index); diff --git a/panda/src/physics/forceNode.I b/panda/src/physics/forceNode.I index 43ac5be849..8fd6845727 100644 --- a/panda/src/physics/forceNode.I +++ b/panda/src/physics/forceNode.I @@ -23,16 +23,15 @@ clear() { */ INLINE BaseForce *ForceNode:: -get_force(int index) const { - nassertr(index >= 0 && index < (int)_forces.size(), - (BaseForce *) NULL); +get_force(size_t index) const { + nassertr(index < _forces.size(), (BaseForce *) NULL); return _forces[index]; } /** */ -INLINE int ForceNode:: +INLINE size_t ForceNode:: get_num_forces() const { return _forces.size(); } diff --git a/panda/src/physics/forceNode.cxx b/panda/src/physics/forceNode.cxx index 09a0b3bc27..c5a998a47e 100644 --- a/panda/src/physics/forceNode.cxx +++ b/panda/src/physics/forceNode.cxx @@ -64,6 +64,20 @@ add_forces_from(const ForceNode &other) { } } +/** + * replace operation + */ +void ForceNode:: +set_force(size_t index, BaseForce *force) { + nassertv(index <= _forces.size()); + + _forces[index]->_force_node = (ForceNode *)NULL; + _forces[index]->_force_node_path.clear(); + _forces[index] = force; + force->_force_node = this; + force->_force_node_path = NodePath(this); +} + /** * remove operation */ @@ -81,8 +95,8 @@ remove_force(BaseForce *f) { * remove operation */ void ForceNode:: -remove_force(int index) { - nassertv(index >= 0 && index <= (int)_forces.size()); +remove_force(size_t index) { + nassertv(index <= _forces.size()); pvector< PT(BaseForce) >::iterator remove; remove = _forces.begin() + index; diff --git a/panda/src/physics/forceNode.h b/panda/src/physics/forceNode.h index 2000e9b0bc..574987ff1a 100644 --- a/panda/src/physics/forceNode.h +++ b/panda/src/physics/forceNode.h @@ -28,14 +28,17 @@ class EXPCL_PANDAPHYSICS ForceNode : public PandaNode { PUBLISHED: ForceNode(const string &name); INLINE void clear(); - INLINE BaseForce *get_force(int index) const; - INLINE int get_num_forces() const; + INLINE BaseForce *get_force(size_t index) const; + INLINE size_t get_num_forces() const; MAKE_SEQ(get_forces, get_num_forces, get_force); INLINE void add_force(BaseForce *force); void add_forces_from(const ForceNode &other); - void remove_force(BaseForce *f); - void remove_force(int index); + void set_force(size_t index, BaseForce *force); + void remove_force(BaseForce *force); + void remove_force(size_t index); + + MAKE_SEQ_PROPERTY(forces, get_num_forces, get_force, set_force, remove_force); virtual void output(ostream &out) const; virtual void write_forces(ostream &out, unsigned int indent=0) const; diff --git a/panda/src/physics/physicalNode.I b/panda/src/physics/physicalNode.I index 6296926055..92e5961ae8 100644 --- a/panda/src/physics/physicalNode.I +++ b/panda/src/physics/physicalNode.I @@ -23,16 +23,15 @@ clear() { */ INLINE Physical *PhysicalNode:: -get_physical(int index) const { - nassertr(index >= 0 && index < (int)_physicals.size(), - (Physical *) NULL); +get_physical(size_t index) const { + nassertr(index < _physicals.size(), (Physical *) NULL); return _physicals[index]; } /** */ -INLINE int PhysicalNode:: +INLINE size_t PhysicalNode:: get_num_physicals() const { return _physicals.size(); } diff --git a/panda/src/physics/physicalNode.cxx b/panda/src/physics/physicalNode.cxx index e10c29b625..381ceeff4f 100644 --- a/panda/src/physics/physicalNode.cxx +++ b/panda/src/physics/physicalNode.cxx @@ -63,6 +63,18 @@ add_physicals_from(const PhysicalNode &other) { } } +/** + * replace operation + */ +void PhysicalNode:: +set_physical(size_t index, Physical *physical) { + nassertv(index <= _physicals.size()); + + _physicals[index]->_physical_node = (PhysicalNode *) NULL; + _physicals[index] = physical; + physical->_physical_node = this; +} + /** * remove operation */ @@ -80,8 +92,8 @@ remove_physical(Physical *physical) { * remove operation */ void PhysicalNode:: -remove_physical(int index) { - nassertv(index >= 0 && index <= (int)_physicals.size()); +remove_physical(size_t index) { + nassertv(index <= _physicals.size()); pvector< PT(Physical) >::iterator remove; remove = _physicals.begin() + index; diff --git a/panda/src/physics/physicalNode.h b/panda/src/physics/physicalNode.h index 80e925dc13..5ab9f36372 100644 --- a/panda/src/physics/physicalNode.h +++ b/panda/src/physics/physicalNode.h @@ -29,14 +29,17 @@ class EXPCL_PANDAPHYSICS PhysicalNode : public PandaNode { PUBLISHED: PhysicalNode(const string &name); INLINE void clear(); - INLINE Physical *get_physical(int index) const; - INLINE int get_num_physicals() const; + INLINE Physical *get_physical(size_t index) const; + INLINE size_t get_num_physicals() const; MAKE_SEQ(get_physicals, get_num_physicals, get_physical); INLINE void add_physical(Physical *physical); void add_physicals_from(const PhysicalNode &other); + void set_physical(size_t index, Physical *physical); void remove_physical(Physical *physical); - void remove_physical(int index); + void remove_physical(size_t index); + + MAKE_SEQ_PROPERTY(physicals, get_num_physicals, get_physical, set_physical, remove_physical); virtual void write(ostream &out, unsigned int indent=0) const; diff --git a/panda/src/pnmimage/pnmFileType.h b/panda/src/pnmimage/pnmFileType.h index d6433ef304..48e4a533fb 100644 --- a/panda/src/pnmimage/pnmFileType.h +++ b/panda/src/pnmimage/pnmFileType.h @@ -44,6 +44,10 @@ PUBLISHED: MAKE_SEQ(get_extensions, get_num_extensions, get_extension); virtual string get_suggested_extension() const; + MAKE_PROPERTY(name, get_name); + MAKE_SEQ_PROPERTY(extensions, get_num_extensions, get_extension); + MAKE_PROPERTY(suggested_extension, get_suggested_extension); + public: virtual bool has_magic_number() const; virtual bool matches_magic_number(const string &magic_number) const; diff --git a/panda/src/pnmimage/pnmFileTypeRegistry.h b/panda/src/pnmimage/pnmFileTypeRegistry.h index 35c8bcbb20..aec9327d49 100644 --- a/panda/src/pnmimage/pnmFileTypeRegistry.h +++ b/panda/src/pnmimage/pnmFileTypeRegistry.h @@ -38,6 +38,7 @@ PUBLISHED: int get_num_types() const; PNMFileType *get_type(int n) const; MAKE_SEQ(get_types, get_num_types, get_type); + MAKE_SEQ_PROPERTY(types, get_num_types, get_type); PNMFileType *get_type_from_extension(const string &filename) const; PNMFileType *get_type_from_magic_number(const string &magic_number) const; diff --git a/panda/src/pstatclient/pStatClient.h b/panda/src/pstatclient/pStatClient.h index c88ef8f5af..05d5dbadea 100644 --- a/panda/src/pstatclient/pStatClient.h +++ b/panda/src/pstatclient/pStatClient.h @@ -80,6 +80,14 @@ PUBLISHED: INLINE double get_real_time() const; + MAKE_PROPERTY(client_name, get_client_name, set_client_name); + MAKE_PROPERTY(max_rate, get_max_rate, set_max_rate); + MAKE_SEQ_PROPERTY(collectors, get_num_collectors, get_collector); + MAKE_SEQ_PROPERTY(threads, get_num_threads, get_thread); + MAKE_PROPERTY(main_thread, get_main_thread); + MAKE_PROPERTY(current_thread, get_current_thread); + MAKE_PROPERTY(real_time, get_real_time); + INLINE static bool connect(const string &hostname = string(), int port = -1); INLINE static void disconnect(); INLINE static bool is_connected(); diff --git a/panda/src/putil/modifierButtons.h b/panda/src/putil/modifierButtons.h index d409b30f35..c95791b2a0 100644 --- a/panda/src/putil/modifierButtons.h +++ b/panda/src/putil/modifierButtons.h @@ -51,6 +51,7 @@ PUBLISHED: INLINE int get_num_buttons() const; INLINE ButtonHandle get_button(int index) const; MAKE_SEQ(get_buttons, get_num_buttons, get_button); + MAKE_SEQ_PROPERTY(buttons, get_num_buttons, get_button); bool button_down(ButtonHandle button); bool button_up(ButtonHandle button); diff --git a/panda/src/text/dynamicTextFont.h b/panda/src/text/dynamicTextFont.h index 773f3a7467..c418ea34c3 100644 --- a/panda/src/text/dynamicTextFont.h +++ b/panda/src/text/dynamicTextFont.h @@ -114,6 +114,7 @@ PUBLISHED: int get_num_pages() const; DynamicTextPage *get_page(int n) const; MAKE_SEQ(get_pages, get_num_pages, get_page); + MAKE_SEQ_PROPERTY(pages, get_num_pages, get_page); int garbage_collect(); void clear(); diff --git a/panda/src/tform/buttonThrower.h b/panda/src/tform/buttonThrower.h index a772326fd6..009055fe3b 100644 --- a/panda/src/tform/buttonThrower.h +++ b/panda/src/tform/buttonThrower.h @@ -77,6 +77,7 @@ PUBLISHED: int get_num_parameters() const; EventParameter get_parameter(int n) const; MAKE_SEQ(get_parameters, get_num_parameters, get_parameter); + MAKE_SEQ_PROPERTY(parameters, get_num_parameters, get_parameter); INLINE const ModifierButtons &get_modifier_buttons() const; INLINE void set_modifier_buttons(const ModifierButtons &mods); diff --git a/panda/src/tform/mouseWatcherBase.h b/panda/src/tform/mouseWatcherBase.h index 962adc53b5..8836f57023 100644 --- a/panda/src/tform/mouseWatcherBase.h +++ b/panda/src/tform/mouseWatcherBase.h @@ -42,10 +42,12 @@ PUBLISHED: void sort_regions(); bool is_sorted() const; + MAKE_PROPERTY(sorted, is_sorted); int get_num_regions() const; MouseWatcherRegion *get_region(int n) const; MAKE_SEQ(get_regions, get_num_regions, get_region); + MAKE_SEQ_PROPERTY(regions, get_num_regions, get_region); void output(ostream &out) const; void write(ostream &out, int indent_level = 0) const; From 18874fa151456d35c26cd869de03493cccffdd22 Mon Sep 17 00:00:00 2001 From: rdb Date: Wed, 11 May 2016 00:27:58 +0200 Subject: [PATCH 9/9] Replace PN_int/uint types with stdint.h types, since all compilers we support have them. Plus, we already had code that relied on them being available anyway. --- direct/src/dcparser/dcLexer.cxx.prebuilt | 12 +- direct/src/dcparser/dcLexer.lxx | 12 +- direct/src/dcparser/dcNumericRange.h | 4 +- direct/src/dcparser/dcPacker.I | 32 +- direct/src/dcparser/dcPacker.cxx | 4 +- direct/src/dcparser/dcPacker.h | 24 +- direct/src/dcparser/dcPackerInterface.I | 48 +- direct/src/dcparser/dcPackerInterface.cxx | 8 +- direct/src/dcparser/dcPackerInterface.h | 20 +- direct/src/dcparser/dcParserDefs.h | 4 +- direct/src/dcparser/dcSimpleParameter.cxx | 164 +++--- direct/src/dcparser/dcSimpleParameter.h | 10 +- direct/src/dcparser/dcbase.h | 18 +- .../distributed/cDistributedSmoothNodeBase.I | 2 +- .../cDistributedSmoothNodeBase.cxx | 2 +- .../distributed/cDistributedSmoothNodeBase.h | 6 +- dtool/src/dtoolbase/addHash.I | 8 +- dtool/src/dtoolbase/addHash.cxx | 16 +- dtool/src/dtoolbase/addHash.h | 4 +- dtool/src/dtoolbase/atomicAdjustI386Impl.h | 2 +- dtool/src/dtoolbase/lookup3.c | 358 ++++++------ dtool/src/dtoolbase/lookup3.h | 6 +- dtool/src/dtoolbase/numeric_types.h | 25 +- dtool/src/dtoolbase/stl_compares.I | 8 +- dtool/src/dtoolbase/typeRegistry.cxx | 8 +- dtool/src/dtoolutil/string_utils.I | 4 +- dtool/src/dtoolutil/string_utils.h | 2 +- dtool/src/prc/configDeclaration.I | 2 +- dtool/src/prc/configDeclaration.cxx | 10 +- dtool/src/prc/configDeclaration.h | 6 +- dtool/src/prc/configVariable.I | 4 +- dtool/src/prc/configVariable.h | 4 +- dtool/src/prc/configVariableInt64.I | 20 +- dtool/src/prc/configVariableInt64.cxx | 2 +- dtool/src/prc/configVariableInt64.h | 22 +- dtool/src/prc/encryptStreamBuf.cxx | 12 +- dtool/src/prc/nativeNumericData.I | 8 +- dtool/src/prc/streamReader.I | 56 +- dtool/src/prc/streamReader.h | 28 +- dtool/src/prc/streamWriter.I | 34 +- dtool/src/prc/streamWriter.h | 28 +- makepanda/makepanda.py | 2 +- panda/src/audiotraits/openalAudioManager.cxx | 2 +- panda/src/audiotraits/openalAudioSound.cxx | 4 +- panda/src/display/displayInformation.cxx | 36 +- panda/src/display/displayInformation.h | 60 +- panda/src/downloader/downloadDb.cxx | 32 +- panda/src/downloader/downloadDb.h | 8 +- panda/src/express/config_express.cxx | 10 +- panda/src/express/datagram.I | 34 +- panda/src/express/datagram.cxx | 4 +- panda/src/express/datagram.h | 28 +- panda/src/express/datagramIterator.I | 56 +- panda/src/express/datagramIterator.cxx | 6 +- panda/src/express/datagramIterator.h | 28 +- panda/src/express/hashVal.cxx | 4 +- panda/src/express/hashVal.h | 6 +- panda/src/express/memoryUsage.cxx | 2 +- panda/src/express/multifile.cxx | 2 +- panda/src/express/patchfile.cxx | 148 ++--- panda/src/express/patchfile.h | 74 +-- panda/src/express/trueClock.cxx | 10 +- panda/src/express/trueClock.h | 6 +- panda/src/express/typedef.h | 4 +- panda/src/ffmpeg/ffmpegAudioCursor.cxx | 8 +- panda/src/ffmpeg/ffmpegAudioCursor.h | 6 +- panda/src/ffmpeg/ffmpegVideoCursor.cxx | 4 +- .../glstuff/glGraphicsStateGuardian_src.cxx | 4 +- panda/src/gobj/geomVertexColumn.cxx | 538 +++++++++--------- panda/src/gobj/geomVertexData.I | 28 +- panda/src/gobj/geomVertexData.cxx | 6 +- panda/src/gobj/geomVertexData.h | 18 +- panda/src/gobj/shader.I | 2 +- panda/src/gobj/texture.cxx | 96 ++-- panda/src/gobj/texture.h | 2 +- panda/src/mathutil/fftCompressor.cxx | 4 +- panda/src/movies/flacAudioCursor.cxx | 2 +- panda/src/movies/flacAudioCursor.h | 2 +- panda/src/movies/microphoneAudioDS.cxx | 6 +- panda/src/movies/movieAudioCursor.I | 2 +- panda/src/movies/movieAudioCursor.cxx | 8 +- panda/src/movies/movieAudioCursor.h | 4 +- panda/src/movies/userDataAudio.cxx | 6 +- panda/src/movies/userDataAudio.h | 6 +- panda/src/movies/userDataAudioCursor.cxx | 2 +- panda/src/movies/userDataAudioCursor.h | 2 +- panda/src/movies/vorbisAudioCursor.cxx | 2 +- panda/src/movies/vorbisAudioCursor.h | 2 +- panda/src/movies/wavAudioCursor.cxx | 16 +- panda/src/movies/wavAudioCursor.h | 2 +- panda/src/nativenet/socket_address.I | 6 +- panda/src/nativenet/socket_fdset.h | 12 +- panda/src/nativenet/socket_tcp_ssl.h | 4 +- panda/src/net/connectionManager.cxx | 4 +- panda/src/net/connectionReader.cxx | 2 +- panda/src/net/datagramTCPHeader.cxx | 4 +- panda/src/net/datagramTCPHeader.h | 4 +- panda/src/net/datagramUDPHeader.cxx | 8 +- panda/src/net/datagramUDPHeader.h | 2 +- panda/src/net/netAddress.cxx | 8 +- panda/src/net/netAddress.h | 4 +- panda/src/ode/odeWorld.cxx | 6 +- panda/src/ode/odeWorld.h | 8 +- panda/src/pgraph/geomNode.cxx | 2 +- panda/src/pgraph/pandaNode.cxx | 4 +- panda/src/pgraph/renderEffects.cxx | 2 +- panda/src/pgraph/renderState.cxx | 2 +- panda/src/putil/bamWriter.cxx | 2 +- panda/src/putil/bitMask.cxx | 6 +- panda/src/putil/bitMask.h | 12 +- panda/src/putil/datagramInputFile.cxx | 6 +- panda/src/putil/datagramOutputFile.cxx | 18 +- panda/src/putil/pbitops.I | 62 +- panda/src/putil/pbitops.h | 36 +- panda/src/putil/uniqueIdAllocator.cxx | 36 +- panda/src/putil/uniqueIdAllocator.h | 26 +- panda/src/text/dynamicTextPage.cxx | 12 +- panda/src/text/textAssembler.cxx | 4 +- .../tinydisplay/tinyGraphicsStateGuardian.cxx | 24 +- panda/src/windisplay/winDetectDx.h | 4 +- panda/src/windisplay/winGraphicsPipe.cxx | 12 +- panda/src/x11display/x11GraphicsWindow.cxx | 6 +- pandatool/src/lwo/iffId.h | 2 +- pandatool/src/lwo/iffInputFile.cxx | 16 +- pandatool/src/lwo/iffInputFile.h | 12 +- pandatool/src/lwo/lwoInputFile.cxx | 4 +- pandatool/src/mayaegg/mayaNodeDesc.cxx | 4 +- pandatool/src/win-stats/winStatsGraph.cxx | 12 +- pandatool/src/win-stats/winStatsPianoRoll.cxx | 20 +- .../src/win-stats/winStatsStripChart.cxx | 20 +- 130 files changed, 1398 insertions(+), 1431 deletions(-) diff --git a/direct/src/dcparser/dcLexer.cxx.prebuilt b/direct/src/dcparser/dcLexer.cxx.prebuilt index c2f607f519..f99b920f81 100644 --- a/direct/src/dcparser/dcLexer.cxx.prebuilt +++ b/direct/src/dcparser/dcLexer.cxx.prebuilt @@ -1550,7 +1550,7 @@ YY_RULE_SETUP dcyylval.u.uint64 = 0; const char *p = dcyytext; while (*p != '\0') { - PN_uint64 next_value = dcyylval.u.uint64 * 10; + uint64_t next_value = dcyylval.u.uint64 * 10; if (next_value < dcyylval.u.uint64) { dcyyerror("Number out of range."); dcyylval.u.uint64 = 1; @@ -1583,9 +1583,9 @@ YY_RULE_SETUP ++p; } - PN_uint64 value = 0; + uint64_t value = 0; while (*p != '\0') { - PN_uint64 next_value = value * 10; + uint64_t next_value = value * 10; if (next_value < value) { dcyyerror("Number out of range."); dcyylval.u.int64 = 1; @@ -1597,13 +1597,13 @@ YY_RULE_SETUP } if (neg) { - dcyylval.u.int64 = -(PN_int64)value; + dcyylval.u.int64 = -(int64_t)value; if (dcyylval.u.int64 > 0) { dcyyerror("Number out of range."); dcyylval.u.int64 = 1; } } else { - dcyylval.u.int64 = (PN_int64)value; + dcyylval.u.int64 = (int64_t)value; if (dcyylval.u.int64 < 0) { dcyyerror("Number out of range."); dcyylval.u.int64 = 1; @@ -1625,7 +1625,7 @@ YY_RULE_SETUP dcyylval.u.uint64 = 0; const char *p = dcyytext + 2; while (*p != '\0') { - PN_uint64 next_value = dcyylval.u.uint64 * 16; + uint64_t next_value = dcyylval.u.uint64 * 16; if (next_value < dcyylval.u.uint64) { dcyyerror("Number out of range."); dcyylval.u.uint64 = 1; diff --git a/direct/src/dcparser/dcLexer.lxx b/direct/src/dcparser/dcLexer.lxx index e6ce9ec44d..4dbd18299d 100644 --- a/direct/src/dcparser/dcLexer.lxx +++ b/direct/src/dcparser/dcLexer.lxx @@ -612,7 +612,7 @@ REALNUM ([+-]?(([0-9]+[.])|([0-9]*[.][0-9]+))([eE][+-]?[0-9]+)?) dcyylval.u.uint64 = 0; const char *p = dcyytext; while (*p != '\0') { - PN_uint64 next_value = dcyylval.u.uint64 * 10; + uint64_t next_value = dcyylval.u.uint64 * 10; if (next_value < dcyylval.u.uint64) { dcyyerror("Number out of range."); dcyylval.u.uint64 = 1; @@ -642,9 +642,9 @@ REALNUM ([+-]?(([0-9]+[.])|([0-9]*[.][0-9]+))([eE][+-]?[0-9]+)?) ++p; } - PN_uint64 value = 0; + uint64_t value = 0; while (*p != '\0') { - PN_uint64 next_value = value * 10; + uint64_t next_value = value * 10; if (next_value < value) { dcyyerror("Number out of range."); dcyylval.u.int64 = 1; @@ -656,13 +656,13 @@ REALNUM ([+-]?(([0-9]+[.])|([0-9]*[.][0-9]+))([eE][+-]?[0-9]+)?) } if (neg) { - dcyylval.u.int64 = -(PN_int64)value; + dcyylval.u.int64 = -(int64_t)value; if (dcyylval.u.int64 > 0) { dcyyerror("Number out of range."); dcyylval.u.int64 = 1; } } else { - dcyylval.u.int64 = (PN_int64)value; + dcyylval.u.int64 = (int64_t)value; if (dcyylval.u.int64 < 0) { dcyyerror("Number out of range."); dcyylval.u.int64 = 1; @@ -681,7 +681,7 @@ REALNUM ([+-]?(([0-9]+[.])|([0-9]*[.][0-9]+))([eE][+-]?[0-9]+)?) dcyylval.u.uint64 = 0; const char *p = dcyytext + 2; while (*p != '\0') { - PN_uint64 next_value = dcyylval.u.uint64 * 16; + uint64_t next_value = dcyylval.u.uint64 * 16; if (next_value < dcyylval.u.uint64) { dcyyerror("Number out of range."); dcyylval.u.uint64 = 1; diff --git a/direct/src/dcparser/dcNumericRange.h b/direct/src/dcparser/dcNumericRange.h index f872f39a7a..6539c05422 100644 --- a/direct/src/dcparser/dcNumericRange.h +++ b/direct/src/dcparser/dcNumericRange.h @@ -71,8 +71,8 @@ private: typedef DCNumericRange DCIntRange; typedef DCNumericRange DCUnsignedIntRange; -typedef DCNumericRange DCInt64Range; -typedef DCNumericRange DCUnsignedInt64Range; +typedef DCNumericRange DCInt64Range; +typedef DCNumericRange DCUnsignedInt64Range; typedef DCNumericRange DCDoubleRange; #endif diff --git a/direct/src/dcparser/dcPacker.I b/direct/src/dcparser/dcPacker.I index bb9a10daf9..c159b0cb77 100644 --- a/direct/src/dcparser/dcPacker.I +++ b/direct/src/dcparser/dcPacker.I @@ -178,7 +178,7 @@ pack_uint(unsigned int value) { * Packs the indicated numeric or string value into the stream. */ INLINE void DCPacker:: -pack_int64(PN_int64 value) { +pack_int64(int64_t value) { nassertv(_mode == M_pack || _mode == M_repack); if (_current_field == NULL) { _pack_error = true; @@ -192,7 +192,7 @@ pack_int64(PN_int64 value) { * Packs the indicated numeric or string value into the stream. */ INLINE void DCPacker:: -pack_uint64(PN_uint64 value) { +pack_uint64(uint64_t value) { nassertv(_mode == M_pack || _mode == M_repack); if (_current_field == NULL) { _pack_error = true; @@ -291,9 +291,9 @@ unpack_uint() { /** * Unpacks the current numeric or string value from the stream. */ -INLINE PN_int64 DCPacker:: +INLINE int64_t DCPacker:: unpack_int64() { - PN_int64 value = 0; + int64_t value = 0; nassertr(_mode == M_unpack, value); if (_current_field == NULL) { _pack_error = true; @@ -310,9 +310,9 @@ unpack_int64() { /** * Unpacks the current numeric or string value from the stream. */ -INLINE PN_uint64 DCPacker:: +INLINE uint64_t DCPacker:: unpack_uint64() { - PN_uint64 value = 0; + uint64_t value = 0; nassertr(_mode == M_unpack, value); if (_current_field == NULL) { _pack_error = true; @@ -409,7 +409,7 @@ unpack_uint(unsigned int &value) { * Unpacks the current numeric or string value from the stream. */ INLINE void DCPacker:: -unpack_int64(PN_int64 &value) { +unpack_int64(int64_t &value) { nassertv(_mode == M_unpack); if (_current_field == NULL) { _pack_error = true; @@ -425,7 +425,7 @@ unpack_int64(PN_int64 &value) { * Unpacks the current numeric or string value from the stream. */ INLINE void DCPacker:: -unpack_uint64(PN_uint64 &value) { +unpack_uint64(uint64_t &value) { nassertv(_mode == M_unpack); if (_current_field == NULL) { _pack_error = true; @@ -668,7 +668,7 @@ raw_pack_int32(int value) { * Packs the data into the buffer between packing sessions. */ INLINE void DCPacker:: -raw_pack_int64(PN_int64 value) { +raw_pack_int64(int64_t value) { nassertv(_mode == M_idle); DCPackerInterface::do_pack_int64(_pack_data.get_write_pointer(8), value); } @@ -704,7 +704,7 @@ raw_pack_uint32(unsigned int value) { * Packs the data into the buffer between packing sessions. */ INLINE void DCPacker:: -raw_pack_uint64(PN_uint64 value) { +raw_pack_uint64(uint64_t value) { nassertv(_mode == M_idle); DCPackerInterface::do_pack_uint64(_pack_data.get_write_pointer(8), value); } @@ -761,9 +761,9 @@ raw_unpack_int32() { /** * Unpacks the data from the buffer between unpacking sessions. */ -INLINE PN_int64 DCPacker:: +INLINE int64_t DCPacker:: raw_unpack_int64() { - PN_int64 value = 0; + int64_t value = 0; raw_unpack_int64(value); return value; } @@ -843,9 +843,9 @@ raw_unpack_uint32() { /** * Unpacks the data from the buffer between unpacking sessions. */ -INLINE PN_uint64 DCPacker:: +INLINE uint64_t DCPacker:: raw_unpack_uint64() { - PN_uint64 value = 0; + uint64_t value = 0; raw_unpack_uint64(value); return value; } @@ -874,7 +874,7 @@ raw_unpack_string() { * Unpacks the data from the buffer between unpacking sessions. */ INLINE void DCPacker:: -raw_unpack_int64(PN_int64 &value) { +raw_unpack_int64(int64_t &value) { nassertv(_mode == M_idle && _unpack_data != NULL); if (_unpack_p + 8 > _unpack_length) { _pack_error = true; @@ -930,7 +930,7 @@ raw_unpack_uint32(unsigned int &value) { * Unpacks the data from the buffer between unpacking sessions. */ INLINE void DCPacker:: -raw_unpack_uint64(PN_uint64 &value) { +raw_unpack_uint64(uint64_t &value) { nassertv(_mode == M_idle && _unpack_data != NULL); if (_unpack_p + 8 > _unpack_length) { _pack_error = true; diff --git a/direct/src/dcparser/dcPacker.cxx b/direct/src/dcparser/dcPacker.cxx index 6b789c945c..fe3461a6c1 100644 --- a/direct/src/dcparser/dcPacker.cxx +++ b/direct/src/dcparser/dcPacker.cxx @@ -858,14 +858,14 @@ unpack_object() { case PT_int64: { - PN_int64 value = unpack_int64(); + int64_t value = unpack_int64(); object = PyLong_FromLongLong(value); } break; case PT_uint64: { - PN_uint64 value = unpack_uint64(); + uint64_t value = unpack_uint64(); object = PyLong_FromUnsignedLongLong(value); } break; diff --git a/direct/src/dcparser/dcPacker.h b/direct/src/dcparser/dcPacker.h index df391a8e48..049429e0ec 100644 --- a/direct/src/dcparser/dcPacker.h +++ b/direct/src/dcparser/dcPacker.h @@ -72,8 +72,8 @@ PUBLISHED: INLINE void pack_double(double value); INLINE void pack_int(int value); INLINE void pack_uint(unsigned int value); - INLINE void pack_int64(PN_int64 value); - INLINE void pack_uint64(PN_uint64 value); + INLINE void pack_int64(int64_t value); + INLINE void pack_uint64(uint64_t value); INLINE void pack_string(const string &value); INLINE void pack_literal_value(const string &value); void pack_default_value(); @@ -81,8 +81,8 @@ PUBLISHED: INLINE double unpack_double(); INLINE int unpack_int(); INLINE unsigned int unpack_uint(); - INLINE PN_int64 unpack_int64(); - INLINE PN_uint64 unpack_uint64(); + INLINE int64_t unpack_int64(); + INLINE uint64_t unpack_uint64(); INLINE string unpack_string(); INLINE string unpack_literal_value(); void unpack_validate(); @@ -94,8 +94,8 @@ public: INLINE void unpack_double(double &value); INLINE void unpack_int(int &value); INLINE void unpack_uint(unsigned int &value); - INLINE void unpack_int64(PN_int64 &value); - INLINE void unpack_uint64(PN_uint64 &value); + INLINE void unpack_int64(int64_t &value); + INLINE void unpack_uint64(uint64_t &value); INLINE void unpack_string(string &value); INLINE void unpack_literal_value(string &value); @@ -141,11 +141,11 @@ PUBLISHED: INLINE void raw_pack_int8(int value); INLINE void raw_pack_int16(int value); INLINE void raw_pack_int32(int value); - INLINE void raw_pack_int64(PN_int64 value); + INLINE void raw_pack_int64(int64_t value); INLINE void raw_pack_uint8(unsigned int value); INLINE void raw_pack_uint16(unsigned int value); INLINE void raw_pack_uint32(unsigned int value); - INLINE void raw_pack_uint64(PN_uint64 value); + INLINE void raw_pack_uint64(uint64_t value); INLINE void raw_pack_float64(double value); INLINE void raw_pack_string(const string &value); @@ -158,11 +158,11 @@ PUBLISHED: INLINE int raw_unpack_int8(); INLINE int raw_unpack_int16(); INLINE int raw_unpack_int32(); - INLINE PN_int64 raw_unpack_int64(); + INLINE int64_t raw_unpack_int64(); INLINE unsigned int raw_unpack_uint8(); INLINE unsigned int raw_unpack_uint16(); INLINE unsigned int raw_unpack_uint32(); - INLINE PN_uint64 raw_unpack_uint64(); + INLINE uint64_t raw_unpack_uint64(); INLINE double raw_unpack_float64(); INLINE string raw_unpack_string(); @@ -170,11 +170,11 @@ public: INLINE void raw_unpack_int8(int &value); INLINE void raw_unpack_int16(int &value); INLINE void raw_unpack_int32(int &value); - INLINE void raw_unpack_int64(PN_int64 &value); + INLINE void raw_unpack_int64(int64_t &value); INLINE void raw_unpack_uint8(unsigned int &value); INLINE void raw_unpack_uint16(unsigned int &value); INLINE void raw_unpack_uint32(unsigned int &value); - INLINE void raw_unpack_uint64(PN_uint64 &value); + INLINE void raw_unpack_uint64(uint64_t &value); INLINE void raw_unpack_float64(double &value); INLINE void raw_unpack_string(string &value); diff --git a/direct/src/dcparser/dcPackerInterface.I b/direct/src/dcparser/dcPackerInterface.I index e9ab9f2fb8..a97964bc47 100644 --- a/direct/src/dcparser/dcPackerInterface.I +++ b/direct/src/dcparser/dcPackerInterface.I @@ -142,7 +142,7 @@ do_pack_int32(char *buffer, int value) { * */ INLINE void DCPackerInterface:: -do_pack_int64(char *buffer, PN_int64 value) { +do_pack_int64(char *buffer, int64_t value) { buffer[0] = (char)(value & 0xff); buffer[1] = (char)((value >> 8) & 0xff); buffer[2] = (char)((value >> 16) & 0xff); @@ -185,7 +185,7 @@ do_pack_uint32(char *buffer, unsigned int value) { * */ INLINE void DCPackerInterface:: -do_pack_uint64(char *buffer, PN_uint64 value) { +do_pack_uint64(char *buffer, uint64_t value) { buffer[0] = (char)(value & 0xff); buffer[1] = (char)((value >> 8) & 0xff); buffer[2] = (char)((value >> 16) & 0xff); @@ -244,16 +244,16 @@ do_unpack_int32(const char *buffer) { /** * */ -INLINE PN_int64 DCPackerInterface:: +INLINE int64_t DCPackerInterface:: do_unpack_int64(const char *buffer) { - return (PN_int64)((PN_uint64)(unsigned char)buffer[0] | - ((PN_uint64)(unsigned char)buffer[1] << 8) | - ((PN_uint64)(unsigned char)buffer[2] << 16) | - ((PN_uint64)(unsigned char)buffer[3] << 24) | - ((PN_uint64)(unsigned char)buffer[4] << 32) | - ((PN_uint64)(unsigned char)buffer[5] << 40) | - ((PN_uint64)(unsigned char)buffer[6] << 48) | - ((PN_int64)(signed char)buffer[7] << 54)); + return (int64_t)((uint64_t)(unsigned char)buffer[0] | + ((uint64_t)(unsigned char)buffer[1] << 8) | + ((uint64_t)(unsigned char)buffer[2] << 16) | + ((uint64_t)(unsigned char)buffer[3] << 24) | + ((uint64_t)(unsigned char)buffer[4] << 32) | + ((uint64_t)(unsigned char)buffer[5] << 40) | + ((uint64_t)(unsigned char)buffer[6] << 48) | + ((int64_t)(signed char)buffer[7] << 54)); } /** * @@ -286,16 +286,16 @@ do_unpack_uint32(const char *buffer) { /** * */ -INLINE PN_uint64 DCPackerInterface:: +INLINE uint64_t DCPackerInterface:: do_unpack_uint64(const char *buffer) { - return ((PN_uint64)(unsigned char)buffer[0] | - ((PN_uint64)(unsigned char)buffer[1] << 8) | - ((PN_uint64)(unsigned char)buffer[2] << 16) | - ((PN_uint64)(unsigned char)buffer[3] << 24) | - ((PN_uint64)(unsigned char)buffer[4] << 32) | - ((PN_uint64)(unsigned char)buffer[5] << 40) | - ((PN_uint64)(unsigned char)buffer[6] << 48) | - ((PN_int64)(signed char)buffer[7] << 54)); + return ((uint64_t)(unsigned char)buffer[0] | + ((uint64_t)(unsigned char)buffer[1] << 8) | + ((uint64_t)(unsigned char)buffer[2] << 16) | + ((uint64_t)(unsigned char)buffer[3] << 24) | + ((uint64_t)(unsigned char)buffer[4] << 32) | + ((uint64_t)(unsigned char)buffer[5] << 40) | + ((uint64_t)(unsigned char)buffer[6] << 48) | + ((int64_t)(signed char)buffer[7] << 54)); } @@ -342,8 +342,8 @@ validate_int_limits(int value, int num_bits, bool &range_error) { * true if it does not. */ INLINE void DCPackerInterface:: -validate_int64_limits(PN_int64 value, int num_bits, bool &range_error) { - PN_int64 mask = ((PN_int64)1 << (num_bits - 1)) - 1; +validate_int64_limits(int64_t value, int num_bits, bool &range_error) { + int64_t mask = ((int64_t)1 << (num_bits - 1)) - 1; value |= mask; if (value != mask && value != -1) { @@ -373,8 +373,8 @@ validate_uint_limits(unsigned int value, int num_bits, bool &range_error) { * range_error true if it does not. */ INLINE void DCPackerInterface:: -validate_uint64_limits(PN_uint64 value, int num_bits, bool &range_error) { - PN_uint64 mask = ((PN_uint64)1 << num_bits) - 1; +validate_uint64_limits(uint64_t value, int num_bits, bool &range_error) { + uint64_t mask = ((uint64_t)1 << num_bits) - 1; value &= ~mask; if (value != 0) { diff --git a/direct/src/dcparser/dcPackerInterface.cxx b/direct/src/dcparser/dcPackerInterface.cxx index 796d11039a..dc731a479a 100644 --- a/direct/src/dcparser/dcPackerInterface.cxx +++ b/direct/src/dcparser/dcPackerInterface.cxx @@ -226,7 +226,7 @@ pack_uint(DCPackData &, unsigned int, bool &pack_error, bool &) const { * Packs the indicated numeric or string value into the stream. */ void DCPackerInterface:: -pack_int64(DCPackData &, PN_int64, bool &pack_error, bool &) const { +pack_int64(DCPackData &, int64_t, bool &pack_error, bool &) const { pack_error = true; } @@ -234,7 +234,7 @@ pack_int64(DCPackData &, PN_int64, bool &pack_error, bool &) const { * Packs the indicated numeric or string value into the stream. */ void DCPackerInterface:: -pack_uint64(DCPackData &, PN_uint64, bool &pack_error, bool &) const { +pack_uint64(DCPackData &, uint64_t, bool &pack_error, bool &) const { pack_error = true; } @@ -284,7 +284,7 @@ unpack_uint(const char *, size_t, size_t &, unsigned int &, bool &pack_error, bo * Unpacks the current numeric or string value from the stream. */ void DCPackerInterface:: -unpack_int64(const char *, size_t, size_t &, PN_int64 &, bool &pack_error, bool &) const { +unpack_int64(const char *, size_t, size_t &, int64_t &, bool &pack_error, bool &) const { pack_error = true; } @@ -292,7 +292,7 @@ unpack_int64(const char *, size_t, size_t &, PN_int64 &, bool &pack_error, bool * Unpacks the current numeric or string value from the stream. */ void DCPackerInterface:: -unpack_uint64(const char *, size_t, size_t &, PN_uint64 &, bool &pack_error, bool &) const { +unpack_uint64(const char *, size_t, size_t &, uint64_t &, bool &pack_error, bool &) const { pack_error = true; } diff --git a/direct/src/dcparser/dcPackerInterface.h b/direct/src/dcparser/dcPackerInterface.h index 788feb3fe7..eca03d3257 100644 --- a/direct/src/dcparser/dcPackerInterface.h +++ b/direct/src/dcparser/dcPackerInterface.h @@ -107,9 +107,9 @@ public: bool &pack_error, bool &range_error) const; virtual void pack_uint(DCPackData &pack_data, unsigned int value, bool &pack_error, bool &range_error) const; - virtual void pack_int64(DCPackData &pack_data, PN_int64 value, + virtual void pack_int64(DCPackData &pack_data, int64_t value, bool &pack_error, bool &range_error) const; - virtual void pack_uint64(DCPackData &pack_data, PN_uint64 value, + virtual void pack_uint64(DCPackData &pack_data, uint64_t value, bool &pack_error, bool &range_error) const; virtual void pack_string(DCPackData &pack_data, const string &value, bool &pack_error, bool &range_error) const; @@ -122,9 +122,9 @@ public: virtual void unpack_uint(const char *data, size_t length, size_t &p, unsigned int &value, bool &pack_error, bool &range_error) const; virtual void unpack_int64(const char *data, size_t length, size_t &p, - PN_int64 &value, bool &pack_error, bool &range_error) const; + int64_t &value, bool &pack_error, bool &range_error) const; virtual void unpack_uint64(const char *data, size_t length, size_t &p, - PN_uint64 &value, bool &pack_error, bool &range_error) const; + uint64_t &value, bool &pack_error, bool &range_error) const; virtual void unpack_string(const char *data, size_t length, size_t &p, string &value, bool &pack_error, bool &range_error) const; virtual bool unpack_validate(const char *data, size_t length, size_t &p, @@ -138,30 +138,30 @@ public: INLINE static void do_pack_int8(char *buffer, int value); INLINE static void do_pack_int16(char *buffer, int value); INLINE static void do_pack_int32(char *buffer, int value); - INLINE static void do_pack_int64(char *buffer, PN_int64 value); + INLINE static void do_pack_int64(char *buffer, int64_t value); INLINE static void do_pack_uint8(char *buffer, unsigned int value); INLINE static void do_pack_uint16(char *buffer, unsigned int value); INLINE static void do_pack_uint32(char *buffer, unsigned int value); - INLINE static void do_pack_uint64(char *buffer, PN_uint64 value); + INLINE static void do_pack_uint64(char *buffer, uint64_t value); INLINE static void do_pack_float64(char *buffer, double value); INLINE static int do_unpack_int8(const char *buffer); INLINE static int do_unpack_int16(const char *buffer); INLINE static int do_unpack_int32(const char *buffer); - INLINE static PN_int64 do_unpack_int64(const char *buffer); + INLINE static int64_t do_unpack_int64(const char *buffer); INLINE static unsigned int do_unpack_uint8(const char *buffer); INLINE static unsigned int do_unpack_uint16(const char *buffer); INLINE static unsigned int do_unpack_uint32(const char *buffer); - INLINE static PN_uint64 do_unpack_uint64(const char *buffer); + INLINE static uint64_t do_unpack_uint64(const char *buffer); INLINE static double do_unpack_float64(const char *buffer); INLINE static void validate_int_limits(int value, int num_bits, bool &range_error); - INLINE static void validate_int64_limits(PN_int64 value, int num_bits, + INLINE static void validate_int64_limits(int64_t value, int num_bits, bool &range_error); INLINE static void validate_uint_limits(unsigned int value, int num_bits, bool &range_error); - INLINE static void validate_uint64_limits(PN_uint64 value, int num_bits, + INLINE static void validate_uint64_limits(uint64_t value, int num_bits, bool &range_error); const DCPackerCatalog *get_catalog() const; diff --git a/direct/src/dcparser/dcParserDefs.h b/direct/src/dcparser/dcParserDefs.h index 4b50553bcf..fec0ab95a5 100644 --- a/direct/src/dcparser/dcParserDefs.h +++ b/direct/src/dcparser/dcParserDefs.h @@ -48,8 +48,8 @@ public: union U { int s_int; unsigned int s_uint; - PN_int64 int64; - PN_uint64 uint64; + int64_t int64; + uint64_t uint64; double real; bool flag; DCClass *dclass; diff --git a/direct/src/dcparser/dcSimpleParameter.cxx b/direct/src/dcparser/dcSimpleParameter.cxx index 54f6ab0007..ceead33a5c 100644 --- a/direct/src/dcparser/dcSimpleParameter.cxx +++ b/direct/src/dcparser/dcSimpleParameter.cxx @@ -313,7 +313,7 @@ set_modulus(double modulus) { bool range_error = false; _double_modulus = modulus * _divisor; - _uint64_modulus = (PN_uint64)floor(_double_modulus + 0.5); + _uint64_modulus = (uint64_t)floor(_double_modulus + 0.5); _uint_modulus = (unsigned int)_uint64_modulus; // Check the range. The legitimate range for a modulus value is 1 through @@ -413,8 +413,8 @@ set_range(const DCDoubleRange &range) { case ST_int8array: _int_range.clear(); for (i = 0; i < num_ranges; i++) { - PN_int64 min = (PN_int64)floor(range.get_min(i) * _divisor + 0.5); - PN_int64 max = (PN_int64)floor(range.get_max(i) * _divisor + 0.5); + int64_t min = (int64_t)floor(range.get_min(i) * _divisor + 0.5); + int64_t max = (int64_t)floor(range.get_max(i) * _divisor + 0.5); validate_int64_limits(min, 8, range_error); validate_int64_limits(max, 8, range_error); _int_range.add_range((int)min, (int)max); @@ -425,8 +425,8 @@ set_range(const DCDoubleRange &range) { case ST_int16array: _int_range.clear(); for (i = 0; i < num_ranges; i++) { - PN_int64 min = (PN_int64)floor(range.get_min(i) * _divisor + 0.5); - PN_int64 max = (PN_int64)floor(range.get_max(i) * _divisor + 0.5); + int64_t min = (int64_t)floor(range.get_min(i) * _divisor + 0.5); + int64_t max = (int64_t)floor(range.get_max(i) * _divisor + 0.5); validate_int64_limits(min, 16, range_error); validate_int64_limits(max, 16, range_error); _int_range.add_range((int)min, (int)max); @@ -437,8 +437,8 @@ set_range(const DCDoubleRange &range) { case ST_int32array: _int_range.clear(); for (i = 0; i < num_ranges; i++) { - PN_int64 min = (PN_int64)floor(range.get_min(i) * _divisor + 0.5); - PN_int64 max = (PN_int64)floor(range.get_max(i) * _divisor + 0.5); + int64_t min = (int64_t)floor(range.get_min(i) * _divisor + 0.5); + int64_t max = (int64_t)floor(range.get_max(i) * _divisor + 0.5); validate_int64_limits(min, 32, range_error); validate_int64_limits(max, 32, range_error); _int_range.add_range((int)min, (int)max); @@ -448,8 +448,8 @@ set_range(const DCDoubleRange &range) { case ST_int64: _int64_range.clear(); for (i = 0; i < num_ranges; i++) { - PN_int64 min = (PN_int64)floor(range.get_min(i) * _divisor + 0.5); - PN_int64 max = (PN_int64)floor(range.get_max(i) * _divisor + 0.5); + int64_t min = (int64_t)floor(range.get_min(i) * _divisor + 0.5); + int64_t max = (int64_t)floor(range.get_max(i) * _divisor + 0.5); _int64_range.add_range(min, max); } break; @@ -459,8 +459,8 @@ set_range(const DCDoubleRange &range) { case ST_uint8array: _uint_range.clear(); for (i = 0; i < num_ranges; i++) { - PN_uint64 min = (PN_uint64)floor(range.get_min(i) * _divisor + 0.5); - PN_uint64 max = (PN_uint64)floor(range.get_max(i) * _divisor + 0.5); + uint64_t min = (uint64_t)floor(range.get_min(i) * _divisor + 0.5); + uint64_t max = (uint64_t)floor(range.get_max(i) * _divisor + 0.5); validate_uint64_limits(min, 8, range_error); validate_uint64_limits(max, 8, range_error); _uint_range.add_range((unsigned int)min, (unsigned int)max); @@ -471,8 +471,8 @@ set_range(const DCDoubleRange &range) { case ST_uint16array: _uint_range.clear(); for (i = 0; i < num_ranges; i++) { - PN_uint64 min = (PN_uint64)floor(range.get_min(i) * _divisor + 0.5); - PN_uint64 max = (PN_uint64)floor(range.get_max(i) * _divisor + 0.5); + uint64_t min = (uint64_t)floor(range.get_min(i) * _divisor + 0.5); + uint64_t max = (uint64_t)floor(range.get_max(i) * _divisor + 0.5); validate_uint64_limits(min, 16, range_error); validate_uint64_limits(max, 16, range_error); _uint_range.add_range((unsigned int)min, (unsigned int)max); @@ -483,8 +483,8 @@ set_range(const DCDoubleRange &range) { case ST_uint32array: _uint_range.clear(); for (i = 0; i < num_ranges; i++) { - PN_uint64 min = (PN_uint64)floor(range.get_min(i) * _divisor + 0.5); - PN_uint64 max = (PN_uint64)floor(range.get_max(i) * _divisor + 0.5); + uint64_t min = (uint64_t)floor(range.get_min(i) * _divisor + 0.5); + uint64_t max = (uint64_t)floor(range.get_max(i) * _divisor + 0.5); validate_uint64_limits(min, 32, range_error); validate_uint64_limits(max, 32, range_error); _uint_range.add_range((unsigned int)min, (unsigned int)max); @@ -494,8 +494,8 @@ set_range(const DCDoubleRange &range) { case ST_uint64: _uint64_range.clear(); for (i = 0; i < num_ranges; i++) { - PN_uint64 min = (PN_uint64)floor(range.get_min(i) * _divisor + 0.5); - PN_uint64 max = (PN_uint64)floor(range.get_max(i) * _divisor + 0.5); + uint64_t min = (uint64_t)floor(range.get_min(i) * _divisor + 0.5); + uint64_t max = (uint64_t)floor(range.get_max(i) * _divisor + 0.5); _uint64_range.add_range(min, max); } break; @@ -513,8 +513,8 @@ set_range(const DCDoubleRange &range) { case ST_blob: _uint_range.clear(); for (i = 0; i < num_ranges; i++) { - PN_uint64 min = (PN_uint64)floor(range.get_min(i) * _divisor + 0.5); - PN_uint64 max = (PN_uint64)floor(range.get_max(i) * _divisor + 0.5); + uint64_t min = (uint64_t)floor(range.get_min(i) * _divisor + 0.5); + uint64_t max = (uint64_t)floor(range.get_max(i) * _divisor + 0.5); validate_uint64_limits(min, 16, range_error); validate_uint64_limits(max, 16, range_error); _uint_range.add_range((unsigned int)min, (unsigned int)max); @@ -536,8 +536,8 @@ set_range(const DCDoubleRange &range) { case ST_blob32: _uint_range.clear(); for (i = 0; i < num_ranges; i++) { - PN_uint64 min = (PN_uint64)floor(range.get_min(i) * _divisor + 0.5); - PN_uint64 max = (PN_uint64)floor(range.get_max(i) * _divisor + 0.5); + uint64_t min = (uint64_t)floor(range.get_min(i) * _divisor + 0.5); + uint64_t max = (uint64_t)floor(range.get_max(i) * _divisor + 0.5); validate_uint64_limits(min, 32, range_error); validate_uint64_limits(max, 32, range_error); _uint_range.add_range((unsigned int)min, (unsigned int)max); @@ -634,7 +634,7 @@ pack_double(DCPackData &pack_data, double value, case ST_int64: { - PN_int64 int64_value = (PN_int64)floor(real_value + 0.5); + int64_t int64_value = (int64_t)floor(real_value + 0.5); _int64_range.validate(int64_value, range_error); do_pack_int64(pack_data.get_write_pointer(8), int64_value); } @@ -669,7 +669,7 @@ pack_double(DCPackData &pack_data, double value, case ST_uint64: { - PN_uint64 int64_value = (PN_uint64)floor(real_value + 0.5); + uint64_t int64_value = (uint64_t)floor(real_value + 0.5); _uint64_range.validate(int64_value, range_error); do_pack_uint64(pack_data.get_write_pointer(8), int64_value); } @@ -696,7 +696,7 @@ pack_int(DCPackData &pack_data, int value, if (value != 0 && (int_value / value) != (int)_divisor) { // If we've experienced overflow after applying the divisor, pack it as an // int64 instead. - pack_int64(pack_data, (PN_int64)value, pack_error, range_error); + pack_int64(pack_data, (int64_t)value, pack_error, range_error); return; } @@ -859,9 +859,9 @@ pack_uint(DCPackData &pack_data, unsigned int value, * Packs the indicated numeric or string value into the stream. */ void DCSimpleParameter:: -pack_int64(DCPackData &pack_data, PN_int64 value, +pack_int64(DCPackData &pack_data, int64_t value, bool &pack_error, bool &range_error) const { - PN_int64 int_value = value * _divisor; + int64_t int_value = value * _divisor; if (_has_modulus && _uint64_modulus != 0) { if (int_value < 0) { int_value = _uint64_modulus - 1 - (-int_value - 1) % _uint64_modulus; @@ -899,35 +899,35 @@ pack_int64(DCPackData &pack_data, PN_int64 value, if (int_value < 0) { range_error = true; } - _uint_range.validate((unsigned int)(PN_uint64)int_value, range_error); - validate_uint64_limits((PN_uint64)int_value, 8, range_error); - do_pack_uint8(pack_data.get_write_pointer(1), (unsigned int)(PN_uint64)int_value); + _uint_range.validate((unsigned int)(uint64_t)int_value, range_error); + validate_uint64_limits((uint64_t)int_value, 8, range_error); + do_pack_uint8(pack_data.get_write_pointer(1), (unsigned int)(uint64_t)int_value); break; case ST_uint16: if (int_value < 0) { range_error = true; } - _uint_range.validate((unsigned int)(PN_uint64)int_value, range_error); - validate_uint64_limits((PN_uint64)int_value, 16, range_error); - do_pack_uint16(pack_data.get_write_pointer(2), (unsigned int)(PN_uint64)int_value); + _uint_range.validate((unsigned int)(uint64_t)int_value, range_error); + validate_uint64_limits((uint64_t)int_value, 16, range_error); + do_pack_uint16(pack_data.get_write_pointer(2), (unsigned int)(uint64_t)int_value); break; case ST_uint32: if (int_value < 0) { range_error = true; } - _uint_range.validate((unsigned int)(PN_uint64)int_value, range_error); - validate_uint64_limits((PN_uint64)int_value, 32, range_error); - do_pack_uint32(pack_data.get_write_pointer(4), (unsigned int)(PN_uint64)int_value); + _uint_range.validate((unsigned int)(uint64_t)int_value, range_error); + validate_uint64_limits((uint64_t)int_value, 32, range_error); + do_pack_uint32(pack_data.get_write_pointer(4), (unsigned int)(uint64_t)int_value); break; case ST_uint64: if (int_value < 0) { range_error = true; } - _uint64_range.validate((PN_uint64)int_value, range_error); - do_pack_uint64(pack_data.get_write_pointer(8), (PN_uint64)int_value); + _uint64_range.validate((uint64_t)int_value, range_error); + do_pack_uint64(pack_data.get_write_pointer(8), (uint64_t)int_value); break; case ST_float64: @@ -944,47 +944,47 @@ pack_int64(DCPackData &pack_data, PN_int64 value, * Packs the indicated numeric or string value into the stream. */ void DCSimpleParameter:: -pack_uint64(DCPackData &pack_data, PN_uint64 value, +pack_uint64(DCPackData &pack_data, uint64_t value, bool &pack_error, bool &range_error) const { - PN_uint64 int_value = value * _divisor; + uint64_t int_value = value * _divisor; if (_has_modulus && _uint64_modulus != 0) { int_value = int_value % _uint64_modulus; } switch (_type) { case ST_int8: - if ((PN_int64)int_value < 0) { + if ((int64_t)int_value < 0) { range_error = true; } - _int_range.validate((int)(PN_int64)int_value, range_error); - validate_int64_limits((PN_int64)int_value, 8, range_error); - do_pack_int8(pack_data.get_write_pointer(1), (int)(PN_int64)int_value); + _int_range.validate((int)(int64_t)int_value, range_error); + validate_int64_limits((int64_t)int_value, 8, range_error); + do_pack_int8(pack_data.get_write_pointer(1), (int)(int64_t)int_value); break; case ST_int16: - if ((PN_int64)int_value < 0) { + if ((int64_t)int_value < 0) { range_error = true; } - _int_range.validate((int)(PN_int64)int_value, range_error); - validate_int64_limits((PN_int64)int_value, 16, range_error); - do_pack_int16(pack_data.get_write_pointer(2), (int)(PN_int64)int_value); + _int_range.validate((int)(int64_t)int_value, range_error); + validate_int64_limits((int64_t)int_value, 16, range_error); + do_pack_int16(pack_data.get_write_pointer(2), (int)(int64_t)int_value); break; case ST_int32: - if ((PN_int64)int_value < 0) { + if ((int64_t)int_value < 0) { range_error = true; } - _int_range.validate((int)(PN_int64)int_value, range_error); - validate_int64_limits((PN_int64)int_value, 32, range_error); - do_pack_int32(pack_data.get_write_pointer(4), (int)(PN_int64)int_value); + _int_range.validate((int)(int64_t)int_value, range_error); + validate_int64_limits((int64_t)int_value, 32, range_error); + do_pack_int32(pack_data.get_write_pointer(4), (int)(int64_t)int_value); break; case ST_int64: - if ((PN_int64)int_value < 0) { + if ((int64_t)int_value < 0) { range_error = true; } - _int64_range.validate((PN_int64)int_value, range_error); - do_pack_int64(pack_data.get_write_pointer(8), (PN_int64)int_value); + _int64_range.validate((int64_t)int_value, range_error); + do_pack_int64(pack_data.get_write_pointer(8), (int64_t)int_value); break; case ST_char: @@ -1213,7 +1213,7 @@ unpack_double(const char *data, size_t length, size_t &p, double &value, pack_error = true; return; } - PN_int64 int_value = do_unpack_int64(data + p); + int64_t int_value = do_unpack_int64(data + p); _int64_range.validate(int_value, range_error); value = (double)int_value; p += 8; @@ -1266,7 +1266,7 @@ unpack_double(const char *data, size_t length, size_t &p, double &value, pack_error = true; return; } - PN_uint64 uint_value = do_unpack_uint64(data + p); + uint64_t uint_value = do_unpack_uint64(data + p); _uint64_range.validate(uint_value, range_error); value = (double)uint_value; p += 8; @@ -1340,7 +1340,7 @@ unpack_int(const char *data, size_t length, size_t &p, int &value, pack_error = true; return; } - PN_int64 int_value = do_unpack_uint64(data + p); + int64_t int_value = do_unpack_uint64(data + p); _int64_range.validate(int_value, range_error); value = (int)int_value; if (value != int_value) { @@ -1400,7 +1400,7 @@ unpack_int(const char *data, size_t length, size_t &p, int &value, pack_error = true; return; } - PN_uint64 uint_value = do_unpack_uint64(data + p); + uint64_t uint_value = do_unpack_uint64(data + p); _uint64_range.validate(uint_value, range_error); value = (int)(unsigned int)uint_value; if ((unsigned int)value != uint_value || value < 0) { @@ -1496,7 +1496,7 @@ unpack_uint(const char *data, size_t length, size_t &p, unsigned int &value, pack_error = true; return; } - PN_int64 int_value = do_unpack_int64(data + p); + int64_t int_value = do_unpack_int64(data + p); _int64_range.validate(int_value, range_error); if (int_value < 0) { pack_error = true; @@ -1546,7 +1546,7 @@ unpack_uint(const char *data, size_t length, size_t &p, unsigned int &value, pack_error = true; return; } - PN_uint64 uint_value = do_unpack_uint64(data + p); + uint64_t uint_value = do_unpack_uint64(data + p); _uint64_range.validate(uint_value, range_error); value = (unsigned int)uint_value; if (value != uint_value) { @@ -1585,7 +1585,7 @@ unpack_uint(const char *data, size_t length, size_t &p, unsigned int &value, * Unpacks the current numeric or string value from the stream. */ void DCSimpleParameter:: -unpack_int64(const char *data, size_t length, size_t &p, PN_int64 &value, +unpack_int64(const char *data, size_t length, size_t &p, int64_t &value, bool &pack_error, bool &range_error) const { switch (_type) { case ST_int8: @@ -1596,7 +1596,7 @@ unpack_int64(const char *data, size_t length, size_t &p, PN_int64 &value, } int int_value = do_unpack_int8(data + p); _int_range.validate(int_value, range_error); - value = (PN_int64)int_value; + value = (int64_t)int_value; p++; } break; @@ -1609,7 +1609,7 @@ unpack_int64(const char *data, size_t length, size_t &p, PN_int64 &value, } int int_value = do_unpack_int16(data + p); _int_range.validate(int_value, range_error); - value = (PN_int64)int_value; + value = (int64_t)int_value; p += 2; } break; @@ -1622,7 +1622,7 @@ unpack_int64(const char *data, size_t length, size_t &p, PN_int64 &value, } int int_value = do_unpack_int32(data + p); _int_range.validate(int_value, range_error); - value = (PN_int64)int_value; + value = (int64_t)int_value; p += 4; } break; @@ -1646,7 +1646,7 @@ unpack_int64(const char *data, size_t length, size_t &p, PN_int64 &value, } unsigned int uint_value = do_unpack_uint8(data + p); _uint_range.validate(uint_value, range_error); - value = (PN_int64)(int)uint_value; + value = (int64_t)(int)uint_value; p++; } break; @@ -1659,7 +1659,7 @@ unpack_int64(const char *data, size_t length, size_t &p, PN_int64 &value, } unsigned int uint_value = do_unpack_uint16(data + p); _uint_range.validate(uint_value, range_error); - value = (PN_int64)(int)uint_value; + value = (int64_t)(int)uint_value; p += 2; } break; @@ -1672,7 +1672,7 @@ unpack_int64(const char *data, size_t length, size_t &p, PN_int64 &value, } unsigned int uint_value = do_unpack_uint32(data + p); _uint_range.validate(uint_value, range_error); - value = (PN_int64)(int)uint_value; + value = (int64_t)(int)uint_value; p += 4; } break; @@ -1683,9 +1683,9 @@ unpack_int64(const char *data, size_t length, size_t &p, PN_int64 &value, pack_error = true; return; } - PN_uint64 uint_value = do_unpack_uint64(data + p); + uint64_t uint_value = do_unpack_uint64(data + p); _uint64_range.validate(uint_value, range_error); - value = (PN_int64)uint_value; + value = (int64_t)uint_value; if (value < 0) { pack_error = true; } @@ -1701,7 +1701,7 @@ unpack_int64(const char *data, size_t length, size_t &p, PN_int64 &value, } double real_value = do_unpack_float64(data + p); _double_range.validate(real_value, range_error); - value = (PN_int64)real_value; + value = (int64_t)real_value; p += 8; } break; @@ -1722,7 +1722,7 @@ unpack_int64(const char *data, size_t length, size_t &p, PN_int64 &value, * Unpacks the current numeric or string value from the stream. */ void DCSimpleParameter:: -unpack_uint64(const char *data, size_t length, size_t &p, PN_uint64 &value, +unpack_uint64(const char *data, size_t length, size_t &p, uint64_t &value, bool &pack_error, bool &range_error) const { switch (_type) { case ST_int8: @@ -1736,7 +1736,7 @@ unpack_uint64(const char *data, size_t length, size_t &p, PN_uint64 &value, if (int_value < 0) { pack_error = true; } - value = (PN_uint64)(unsigned int)int_value; + value = (uint64_t)(unsigned int)int_value; p++; } break; @@ -1752,7 +1752,7 @@ unpack_uint64(const char *data, size_t length, size_t &p, PN_uint64 &value, if (int_value < 0) { pack_error = true; } - value = (PN_uint64)(unsigned int)int_value; + value = (uint64_t)(unsigned int)int_value; p += 2; } break; @@ -1768,7 +1768,7 @@ unpack_uint64(const char *data, size_t length, size_t &p, PN_uint64 &value, if (int_value < 0) { pack_error = true; } - value = (PN_uint64)(unsigned int)int_value; + value = (uint64_t)(unsigned int)int_value; p += 4; } break; @@ -1779,12 +1779,12 @@ unpack_uint64(const char *data, size_t length, size_t &p, PN_uint64 &value, pack_error = true; return; } - PN_int64 int_value = do_unpack_int64(data + p); + int64_t int_value = do_unpack_int64(data + p); _int64_range.validate(int_value, range_error); if (int_value < 0) { pack_error = true; } - value = (PN_uint64)int_value; + value = (uint64_t)int_value; p += 8; } break; @@ -1798,7 +1798,7 @@ unpack_uint64(const char *data, size_t length, size_t &p, PN_uint64 &value, } unsigned int uint_value = do_unpack_uint8(data + p); _uint_range.validate(uint_value, range_error); - value = (PN_uint64)uint_value; + value = (uint64_t)uint_value; p++; } break; @@ -1811,7 +1811,7 @@ unpack_uint64(const char *data, size_t length, size_t &p, PN_uint64 &value, } unsigned int uint_value = do_unpack_uint16(data + p); _uint_range.validate(uint_value, range_error); - value = (PN_uint64)uint_value; + value = (uint64_t)uint_value; p += 2; } break; @@ -1824,7 +1824,7 @@ unpack_uint64(const char *data, size_t length, size_t &p, PN_uint64 &value, } unsigned int uint_value = do_unpack_uint32(data + p); _uint_range.validate(uint_value, range_error); - value = (PN_uint64)uint_value; + value = (uint64_t)uint_value; p += 4; } break; @@ -1847,7 +1847,7 @@ unpack_uint64(const char *data, size_t length, size_t &p, PN_uint64 &value, } double real_value = do_unpack_float64(data + p); _double_range.validate(real_value, range_error); - value = (PN_uint64)real_value; + value = (uint64_t)real_value; p += 8; } break; @@ -1990,7 +1990,7 @@ unpack_validate(const char *data, size_t length, size_t &p, pack_error = true; return true; } - PN_int64 int_value = do_unpack_int64(data + p); + int64_t int_value = do_unpack_int64(data + p); _int64_range.validate(int_value, range_error); p += 8; } @@ -2039,7 +2039,7 @@ unpack_validate(const char *data, size_t length, size_t &p, pack_error = true; return true; } - PN_uint64 uint_value = do_unpack_uint64(data + p); + uint64_t uint_value = do_unpack_uint64(data + p); _uint64_range.validate(uint_value, range_error); p += 8; } diff --git a/direct/src/dcparser/dcSimpleParameter.h b/direct/src/dcparser/dcSimpleParameter.h index 3a8d53c2aa..747950939a 100644 --- a/direct/src/dcparser/dcSimpleParameter.h +++ b/direct/src/dcparser/dcSimpleParameter.h @@ -56,9 +56,9 @@ public: bool &pack_error, bool &range_error) const; virtual void pack_uint(DCPackData &pack_data, unsigned int value, bool &pack_error, bool &range_error) const; - virtual void pack_int64(DCPackData &pack_data, PN_int64 value, + virtual void pack_int64(DCPackData &pack_data, int64_t value, bool &pack_error, bool &range_error) const; - virtual void pack_uint64(DCPackData &pack_data, PN_uint64 value, + virtual void pack_uint64(DCPackData &pack_data, uint64_t value, bool &pack_error, bool &range_error) const; virtual void pack_string(DCPackData &pack_data, const string &value, bool &pack_error, bool &range_error) const; @@ -71,9 +71,9 @@ public: virtual void unpack_uint(const char *data, size_t length, size_t &p, unsigned int &value, bool &pack_error, bool &range_error) const; virtual void unpack_int64(const char *data, size_t length, size_t &p, - PN_int64 &value, bool &pack_error, bool &range_error) const; + int64_t &value, bool &pack_error, bool &range_error) const; virtual void unpack_uint64(const char *data, size_t length, size_t &p, - PN_uint64 &value, bool &pack_error, bool &range_error) const; + uint64_t &value, bool &pack_error, bool &range_error) const; virtual void unpack_string(const char *data, size_t length, size_t &p, string &value, bool &pack_error, bool &range_error) const; virtual bool unpack_validate(const char *data, size_t length, size_t &p, @@ -125,7 +125,7 @@ private: // All of these modulus values will be filled in, regardless of the type. unsigned int _uint_modulus; - PN_uint64 _uint64_modulus; + uint64_t _uint64_modulus; double _double_modulus; static DCClassParameter *_uint32uint8_type; diff --git a/direct/src/dcparser/dcbase.h b/direct/src/dcparser/dcbase.h index 2e28fca2ef..fae53a46f8 100644 --- a/direct/src/dcparser/dcbase.h +++ b/direct/src/dcparser/dcbase.h @@ -102,17 +102,7 @@ typedef string Filename; #define pmap map #define pset set -#ifdef WIN32 -typedef __int64 PN_int64; -typedef unsigned __int64 PN_uint64; -#else -typedef long long PN_int64; -typedef unsigned long long PN_uint64; -#endif - -typedef unsigned char PN_uint8; -typedef unsigned short PN_uint16; -typedef unsigned int PN_uint32; +#include typedef ifstream pifstream; typedef ofstream pofstream; @@ -121,8 +111,8 @@ typedef fstream pfstream; #endif // WITHIN_PANDA // typedef unsigned long CHANNEL_TYPE; -typedef PN_uint64 CHANNEL_TYPE; -typedef PN_uint32 DOID_TYPE; -typedef PN_uint32 ZONEID_TYPE; +typedef uint64_t CHANNEL_TYPE; +typedef uint32_t DOID_TYPE; +typedef uint32_t ZONEID_TYPE; #endif // DCBASE_H diff --git a/direct/src/distributed/cDistributedSmoothNodeBase.I b/direct/src/distributed/cDistributedSmoothNodeBase.I index 5eba579e2b..56dd8595d3 100644 --- a/direct/src/distributed/cDistributedSmoothNodeBase.I +++ b/direct/src/distributed/cDistributedSmoothNodeBase.I @@ -184,7 +184,7 @@ d_setSmPosHpr(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z, PN_stdfloat h, PN_std * */ INLINE void CDistributedSmoothNodeBase:: -d_setSmPosHprL(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z, PN_stdfloat h, PN_stdfloat p, PN_stdfloat r, PN_uint64 l) { +d_setSmPosHprL(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z, PN_stdfloat h, PN_stdfloat p, PN_stdfloat r, uint64_t l) { // cout << "d_setSmPosHprL: " << x << ", " << y << ", " << z << ", " << h << // ", " << p << ", " << r << l << endl; DCPacker packer; diff --git a/direct/src/distributed/cDistributedSmoothNodeBase.cxx b/direct/src/distributed/cDistributedSmoothNodeBase.cxx index 45b65353ee..70a50f33f5 100644 --- a/direct/src/distributed/cDistributedSmoothNodeBase.cxx +++ b/direct/src/distributed/cDistributedSmoothNodeBase.cxx @@ -358,7 +358,7 @@ finish_send_update(DCPacker &packer) { * Appends the timestamp and sends the update. */ void CDistributedSmoothNodeBase:: -set_curr_l(PN_uint64 l) { +set_curr_l(uint64_t l) { _currL[1] = l; } diff --git a/direct/src/distributed/cDistributedSmoothNodeBase.h b/direct/src/distributed/cDistributedSmoothNodeBase.h index b59bd9af2a..53763a6a47 100644 --- a/direct/src/distributed/cDistributedSmoothNodeBase.h +++ b/direct/src/distributed/cDistributedSmoothNodeBase.h @@ -51,7 +51,7 @@ PUBLISHED: void broadcast_pos_hpr_xyh(); void broadcast_pos_hpr_xy(); - void set_curr_l(PN_uint64 l); + void set_curr_l(uint64_t l); void print_curr_l(); private: @@ -67,7 +67,7 @@ private: INLINE void d_setSmXYH(PN_stdfloat x, PN_stdfloat y, PN_stdfloat h); INLINE void d_setSmXYZH(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z, PN_stdfloat h); INLINE void d_setSmPosHpr(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z, PN_stdfloat h, PN_stdfloat p, PN_stdfloat r); - INLINE void d_setSmPosHprL(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z, PN_stdfloat h, PN_stdfloat p, PN_stdfloat r, PN_uint64 l); + INLINE void d_setSmPosHprL(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z, PN_stdfloat h, PN_stdfloat p, PN_stdfloat r, uint64_t l); void begin_send_update(DCPacker &packer, const string &field_name); void finish_send_update(DCPacker &packer); @@ -97,7 +97,7 @@ private: bool _store_stop; // contains most recently sent location info as index 0, index 1 contains // most recently set location info - PN_uint64 _currL[2]; + uint64_t _currL[2]; }; #include "cDistributedSmoothNodeBase.I" diff --git a/dtool/src/dtoolbase/addHash.I b/dtool/src/dtoolbase/addHash.I index ddc1c737fb..57084af72c 100644 --- a/dtool/src/dtoolbase/addHash.I +++ b/dtool/src/dtoolbase/addHash.I @@ -15,8 +15,8 @@ * Adds a linear sequence of uint32 words to the hash. */ INLINE size_t AddHash:: -add_hash(size_t start, const PN_uint32 *words, size_t num_words) { - return (size_t)hashword(words, num_words, (PN_uint32)start); +add_hash(size_t start, const uint32_t *words, size_t num_words) { + return (size_t)hashword(words, num_words, (uint32_t)start); } /** @@ -24,7 +24,7 @@ add_hash(size_t start, const PN_uint32 *words, size_t num_words) { */ INLINE size_t AddHash:: add_hash(size_t start, const PN_float32 *floats, size_t num_floats) { - return add_hash(start, (const PN_uint32 *)floats, num_floats); + return add_hash(start, (const uint32_t *)floats, num_floats); } /** @@ -32,5 +32,5 @@ add_hash(size_t start, const PN_float32 *floats, size_t num_floats) { */ INLINE size_t AddHash:: add_hash(size_t start, const PN_float64 *floats, size_t num_floats) { - return add_hash(start, (const PN_uint32 *)floats, num_floats * 2); + return add_hash(start, (const uint32_t *)floats, num_floats * 2); } diff --git a/dtool/src/dtoolbase/addHash.cxx b/dtool/src/dtoolbase/addHash.cxx index fd3717960d..5d7698b726 100644 --- a/dtool/src/dtoolbase/addHash.cxx +++ b/dtool/src/dtoolbase/addHash.cxx @@ -17,33 +17,33 @@ * Adds a linear sequence of bytes to the hash. */ size_t AddHash:: -add_hash(size_t start, const PN_uint8 *bytes, size_t num_bytes) { +add_hash(size_t start, const uint8_t *bytes, size_t num_bytes) { size_t num_words = num_bytes >> 2; size_t remaining_bytes = num_bytes - (num_words << 2); - size_t hash = (size_t)hashword((const PN_uint32 *)bytes, num_words, (PN_uint32)start); + size_t hash = (size_t)hashword((const uint32_t *)bytes, num_words, (uint32_t)start); switch (remaining_bytes) { case 3: { - PN_uint32 remaining; + uint32_t remaining; remaining = (bytes[num_bytes - 3] << 16) | (bytes[num_bytes - 2] << 8) | (bytes[num_bytes - 1]); - hash = (size_t)hashword(&remaining, 1, (PN_uint32)hash); + hash = (size_t)hashword(&remaining, 1, (uint32_t)hash); } break; case 2: { - PN_uint32 remaining; + uint32_t remaining; remaining = (bytes[num_bytes - 2] << 8) | (bytes[num_bytes - 1]); - hash = (size_t)hashword(&remaining, 1, (PN_uint32)hash); + hash = (size_t)hashword(&remaining, 1, (uint32_t)hash); } break; case 1: { - PN_uint32 remaining; + uint32_t remaining; remaining = (bytes[num_bytes - 1]); - hash = (size_t)hashword(&remaining, 1, (PN_uint32)hash); + hash = (size_t)hashword(&remaining, 1, (uint32_t)hash); } break; diff --git a/dtool/src/dtoolbase/addHash.h b/dtool/src/dtoolbase/addHash.h index fba194b688..11fabf77ce 100644 --- a/dtool/src/dtoolbase/addHash.h +++ b/dtool/src/dtoolbase/addHash.h @@ -25,8 +25,8 @@ */ class EXPCL_DTOOL AddHash { public: - INLINE static size_t add_hash(size_t start, const PN_uint32 *words, size_t num_words); - static size_t add_hash(size_t start, const PN_uint8 *bytes, size_t num_bytes); + INLINE static size_t add_hash(size_t start, const uint32_t *words, size_t num_words); + static size_t add_hash(size_t start, const uint8_t *bytes, size_t num_bytes); INLINE static size_t add_hash(size_t start, const PN_float32 *floats, size_t num_floats); INLINE static size_t add_hash(size_t start, const PN_float64 *floats, size_t num_floats); }; diff --git a/dtool/src/dtoolbase/atomicAdjustI386Impl.h b/dtool/src/dtoolbase/atomicAdjustI386Impl.h index c9db9a806d..3084a7172b 100644 --- a/dtool/src/dtoolbase/atomicAdjustI386Impl.h +++ b/dtool/src/dtoolbase/atomicAdjustI386Impl.h @@ -28,7 +28,7 @@ */ class EXPCL_DTOOL AtomicAdjustI386Impl { public: - typedef ALIGN_4BYTE PN_int32 Integer; + typedef ALIGN_4BYTE int32_t Integer; typedef void *UnalignedPointer; typedef ALIGN_4BYTE UnalignedPointer Pointer; diff --git a/dtool/src/dtoolbase/lookup3.c b/dtool/src/dtoolbase/lookup3.c index 1cd36c58d0..34c8eaa94a 100644 --- a/dtool/src/dtoolbase/lookup3.c +++ b/dtool/src/dtoolbase/lookup3.c @@ -149,25 +149,25 @@ and these came close: /* -------------------------------------------------------------------- This works on all machines. To be useful, it requires - -- that the key be an array of PN_uint32's, and - -- that the length be the number of PN_uint32's in the key + -- that the key be an array of uint32_t's, and + -- that the length be the number of uint32_t's in the key The function hashword() is identical to hashlittle() on little-endian machines, and identical to hashbig() on big-endian machines, - except that the length has to be measured in PN_uint32s rather than in + except that the length has to be measured in uint32_ts rather than in bytes. hashlittle() is more complicated than hashword() only because hashlittle() has to dance around fitting the key bytes into registers. -------------------------------------------------------------------- */ -PN_uint32 hashword( -const PN_uint32 *k, /* the key, an array of PN_uint32 values */ -size_t length, /* the length of the key, in PN_uint32s */ -PN_uint32 initval) /* the previous hash, or an arbitrary value */ +uint32_t hashword( +const uint32_t *k, /* the key, an array of uint32_t values */ +size_t length, /* the length of the key, in uint32_ts */ +uint32_t initval) /* the previous hash, or an arbitrary value */ { - PN_uint32 a,b,c; + uint32_t a,b,c; /* Set up the internal state */ - a = b = c = 0xdeadbeef + (((PN_uint32)length)<<2) + initval; + a = b = c = 0xdeadbeef + (((uint32_t)length)<<2) + initval; /*------------------------------------------------- handle most of the key */ while (length > 3) @@ -180,7 +180,7 @@ PN_uint32 initval) /* the previous hash, or an arbitrary value */ k += 3; } - /*------------------------------------------- handle the last 3 PN_uint32's */ + /*------------------------------------------- handle the last 3 uint32_t's */ switch(length) /* all the case statements fall through */ { case 3 : c+=k[2]; @@ -211,7 +211,7 @@ use a bitmask. For example, if you need only 10 bits, do h = (h & hashmask(10)); In which case, the hash table should have hashsize(10) elements. -If you are hashing n strings (PN_uint8 **)k, do it like this: +If you are hashing n strings (uint8_t **)k, do it like this: for (i=0, h=0; i 12) { - a += k[0] + (((PN_uint32)k[1])<<16); - b += k[2] + (((PN_uint32)k[3])<<16); - c += k[4] + (((PN_uint32)k[5])<<16); + a += k[0] + (((uint32_t)k[1])<<16); + b += k[2] + (((uint32_t)k[3])<<16); + c += k[4] + (((uint32_t)k[5])<<16); mix(a,b,c); length -= 12; k += 6; } /*----------------------------- handle the last (probably partial) block */ - k8 = (const PN_uint8 *)k; + k8 = (const uint8_t *)k; switch(length) { - case 12: c+=k[4]+(((PN_uint32)k[5])<<16); - b+=k[2]+(((PN_uint32)k[3])<<16); - a+=k[0]+(((PN_uint32)k[1])<<16); + case 12: c+=k[4]+(((uint32_t)k[5])<<16); + b+=k[2]+(((uint32_t)k[3])<<16); + a+=k[0]+(((uint32_t)k[1])<<16); break; - case 11: c+=((PN_uint32)k8[10])<<16; /* fall through */ + case 11: c+=((uint32_t)k8[10])<<16; /* fall through */ case 10: c+=k[4]; - b+=k[2]+(((PN_uint32)k[3])<<16); - a+=k[0]+(((PN_uint32)k[1])<<16); + b+=k[2]+(((uint32_t)k[3])<<16); + a+=k[0]+(((uint32_t)k[1])<<16); break; case 9 : c+=k8[8]; /* fall through */ - case 8 : b+=k[2]+(((PN_uint32)k[3])<<16); - a+=k[0]+(((PN_uint32)k[1])<<16); + case 8 : b+=k[2]+(((uint32_t)k[3])<<16); + a+=k[0]+(((uint32_t)k[1])<<16); break; - case 7 : b+=((PN_uint32)k8[6])<<16; /* fall through */ + case 7 : b+=((uint32_t)k8[6])<<16; /* fall through */ case 6 : b+=k[2]; - a+=k[0]+(((PN_uint32)k[1])<<16); + a+=k[0]+(((uint32_t)k[1])<<16); break; case 5 : b+=k8[4]; /* fall through */ - case 4 : a+=k[0]+(((PN_uint32)k[1])<<16); + case 4 : a+=k[0]+(((uint32_t)k[1])<<16); break; - case 3 : a+=((PN_uint32)k8[2])<<16; /* fall through */ + case 3 : a+=((uint32_t)k8[2])<<16; /* fall through */ case 2 : a+=k[0]; break; case 1 : a+=k8[0]; @@ -347,23 +347,23 @@ PN_uint32 hashlittle( const void *key, size_t length, PN_uint32 initval) } } else { /* need to read the key one byte at a time */ - const PN_uint8 *k =(PN_uint8*) key; + const uint8_t *k =(uint8_t*) key; /*--------------- all but the last block: affect some 32 bits of (a,b,c) */ while (length > 12) { a += k[0]; - a += ((PN_uint32)k[1])<<8; - a += ((PN_uint32)k[2])<<16; - a += ((PN_uint32)k[3])<<24; + a += ((uint32_t)k[1])<<8; + a += ((uint32_t)k[2])<<16; + a += ((uint32_t)k[3])<<24; b += k[4]; - b += ((PN_uint32)k[5])<<8; - b += ((PN_uint32)k[6])<<16; - b += ((PN_uint32)k[7])<<24; + b += ((uint32_t)k[5])<<8; + b += ((uint32_t)k[6])<<16; + b += ((uint32_t)k[7])<<24; c += k[8]; - c += ((PN_uint32)k[9])<<8; - c += ((PN_uint32)k[10])<<16; - c += ((PN_uint32)k[11])<<24; + c += ((uint32_t)k[9])<<8; + c += ((uint32_t)k[10])<<16; + c += ((uint32_t)k[11])<<24; mix(a,b,c); length -= 12; k += 12; @@ -372,17 +372,17 @@ PN_uint32 hashlittle( const void *key, size_t length, PN_uint32 initval) /*-------------------------------- last block: affect all 32 bits of (c) */ switch(length) /* all the case statements fall through */ { - case 12: c+=((PN_uint32)k[11])<<24; - case 11: c+=((PN_uint32)k[10])<<16; - case 10: c+=((PN_uint32)k[9])<<8; + case 12: c+=((uint32_t)k[11])<<24; + case 11: c+=((uint32_t)k[10])<<16; + case 10: c+=((uint32_t)k[9])<<8; case 9 : c+=k[8]; - case 8 : b+=((PN_uint32)k[7])<<24; - case 7 : b+=((PN_uint32)k[6])<<16; - case 6 : b+=((PN_uint32)k[5])<<8; + case 8 : b+=((uint32_t)k[7])<<24; + case 7 : b+=((uint32_t)k[6])<<16; + case 6 : b+=((uint32_t)k[5])<<8; case 5 : b+=k[4]; - case 4 : a+=((PN_uint32)k[3])<<24; - case 3 : a+=((PN_uint32)k[2])<<16; - case 2 : a+=((PN_uint32)k[1])<<8; + case 4 : a+=((uint32_t)k[3])<<24; + case 3 : a+=((uint32_t)k[2])<<16; + case 2 : a+=((uint32_t)k[1])<<8; case 1 : a+=k[0]; break; case 0 : return c; @@ -407,21 +407,21 @@ PN_uint32 hashlittle( const void *key, size_t length, PN_uint32 initval) void hashlittle2( const void *key, /* the key to hash */ size_t length, /* length of the key */ - PN_uint32 *pc, /* IN: primary initval, OUT: primary hash */ - PN_uint32 *pb) /* IN: secondary initval, OUT: secondary hash */ + uint32_t *pc, /* IN: primary initval, OUT: primary hash */ + uint32_t *pb) /* IN: secondary initval, OUT: secondary hash */ { - PN_uint32 a,b,c; /* internal state */ + uint32_t a,b,c; /* internal state */ union { const void *ptr; size_t i; } u; /* needed for Mac Powerbook G4 */ /* Set up the internal state */ - a = b = c = 0xdeadbeef + ((PN_uint32)length) + *pc; + a = b = c = 0xdeadbeef + ((uint32_t)length) + *pc; c += *pb; u.ptr = key; if (HASH_LITTLE_ENDIAN && ((u.i & 0x3) == 0)) { - const PN_uint32 *k = (PN_uint32*)key; /* read 32-bit chunks */ + const uint32_t *k = (uint32_t*)key; /* read 32-bit chunks */ #ifdef VALGRIND - const PN_uint8 *k8; + const uint8_t *k8; #endif /*------ all but last block: aligned reads and affect 32 bits of (a,b,c) */ @@ -466,20 +466,20 @@ void hashlittle2( #else /* make valgrind happy */ - k8 = (const PN_uint8 *)k; + k8 = (const uint8_t *)k; switch(length) { case 12: c+=k[2]; b+=k[1]; a+=k[0]; break; - case 11: c+=((PN_uint32)k8[10])<<16; /* fall through */ - case 10: c+=((PN_uint32)k8[9])<<8; /* fall through */ + case 11: c+=((uint32_t)k8[10])<<16; /* fall through */ + case 10: c+=((uint32_t)k8[9])<<8; /* fall through */ case 9 : c+=k8[8]; /* fall through */ case 8 : b+=k[1]; a+=k[0]; break; - case 7 : b+=((PN_uint32)k8[6])<<16; /* fall through */ - case 6 : b+=((PN_uint32)k8[5])<<8; /* fall through */ + case 7 : b+=((uint32_t)k8[6])<<16; /* fall through */ + case 6 : b+=((uint32_t)k8[5])<<8; /* fall through */ case 5 : b+=k8[4]; /* fall through */ case 4 : a+=k[0]; break; - case 3 : a+=((PN_uint32)k8[2])<<16; /* fall through */ - case 2 : a+=((PN_uint32)k8[1])<<8; /* fall through */ + case 3 : a+=((uint32_t)k8[2])<<16; /* fall through */ + case 2 : a+=((uint32_t)k8[1])<<8; /* fall through */ case 1 : a+=k8[0]; break; case 0 : *pc=c; *pb=b; return; /* zero length strings require no mixing */ } @@ -487,45 +487,45 @@ void hashlittle2( #endif /* !valgrind */ } else if (HASH_LITTLE_ENDIAN && ((u.i & 0x1) == 0)) { - const PN_uint16 *k = (PN_uint16*)key; /* read 16-bit chunks */ - const PN_uint8 *k8; + const uint16_t *k = (uint16_t*)key; /* read 16-bit chunks */ + const uint8_t *k8; /*--------------- all but last block: aligned reads and different mixing */ while (length > 12) { - a += k[0] + (((PN_uint32)k[1])<<16); - b += k[2] + (((PN_uint32)k[3])<<16); - c += k[4] + (((PN_uint32)k[5])<<16); + a += k[0] + (((uint32_t)k[1])<<16); + b += k[2] + (((uint32_t)k[3])<<16); + c += k[4] + (((uint32_t)k[5])<<16); mix(a,b,c); length -= 12; k += 6; } /*----------------------------- handle the last (probably partial) block */ - k8 = (const PN_uint8 *)k; + k8 = (const uint8_t *)k; switch(length) { - case 12: c+=k[4]+(((PN_uint32)k[5])<<16); - b+=k[2]+(((PN_uint32)k[3])<<16); - a+=k[0]+(((PN_uint32)k[1])<<16); + case 12: c+=k[4]+(((uint32_t)k[5])<<16); + b+=k[2]+(((uint32_t)k[3])<<16); + a+=k[0]+(((uint32_t)k[1])<<16); break; - case 11: c+=((PN_uint32)k8[10])<<16; /* fall through */ + case 11: c+=((uint32_t)k8[10])<<16; /* fall through */ case 10: c+=k[4]; - b+=k[2]+(((PN_uint32)k[3])<<16); - a+=k[0]+(((PN_uint32)k[1])<<16); + b+=k[2]+(((uint32_t)k[3])<<16); + a+=k[0]+(((uint32_t)k[1])<<16); break; case 9 : c+=k8[8]; /* fall through */ - case 8 : b+=k[2]+(((PN_uint32)k[3])<<16); - a+=k[0]+(((PN_uint32)k[1])<<16); + case 8 : b+=k[2]+(((uint32_t)k[3])<<16); + a+=k[0]+(((uint32_t)k[1])<<16); break; - case 7 : b+=((PN_uint32)k8[6])<<16; /* fall through */ + case 7 : b+=((uint32_t)k8[6])<<16; /* fall through */ case 6 : b+=k[2]; - a+=k[0]+(((PN_uint32)k[1])<<16); + a+=k[0]+(((uint32_t)k[1])<<16); break; case 5 : b+=k8[4]; /* fall through */ - case 4 : a+=k[0]+(((PN_uint32)k[1])<<16); + case 4 : a+=k[0]+(((uint32_t)k[1])<<16); break; - case 3 : a+=((PN_uint32)k8[2])<<16; /* fall through */ + case 3 : a+=((uint32_t)k8[2])<<16; /* fall through */ case 2 : a+=k[0]; break; case 1 : a+=k8[0]; @@ -534,23 +534,23 @@ void hashlittle2( } } else { /* need to read the key one byte at a time */ - const PN_uint8 *k = (PN_uint8*)key; + const uint8_t *k = (uint8_t*)key; /*--------------- all but the last block: affect some 32 bits of (a,b,c) */ while (length > 12) { a += k[0]; - a += ((PN_uint32)k[1])<<8; - a += ((PN_uint32)k[2])<<16; - a += ((PN_uint32)k[3])<<24; + a += ((uint32_t)k[1])<<8; + a += ((uint32_t)k[2])<<16; + a += ((uint32_t)k[3])<<24; b += k[4]; - b += ((PN_uint32)k[5])<<8; - b += ((PN_uint32)k[6])<<16; - b += ((PN_uint32)k[7])<<24; + b += ((uint32_t)k[5])<<8; + b += ((uint32_t)k[6])<<16; + b += ((uint32_t)k[7])<<24; c += k[8]; - c += ((PN_uint32)k[9])<<8; - c += ((PN_uint32)k[10])<<16; - c += ((PN_uint32)k[11])<<24; + c += ((uint32_t)k[9])<<8; + c += ((uint32_t)k[10])<<16; + c += ((uint32_t)k[11])<<24; mix(a,b,c); length -= 12; k += 12; @@ -559,17 +559,17 @@ void hashlittle2( /*-------------------------------- last block: affect all 32 bits of (c) */ switch(length) /* all the case statements fall through */ { - case 12: c+=((PN_uint32)k[11])<<24; - case 11: c+=((PN_uint32)k[10])<<16; - case 10: c+=((PN_uint32)k[9])<<8; + case 12: c+=((uint32_t)k[11])<<24; + case 11: c+=((uint32_t)k[10])<<16; + case 10: c+=((uint32_t)k[9])<<8; case 9 : c+=k[8]; - case 8 : b+=((PN_uint32)k[7])<<24; - case 7 : b+=((PN_uint32)k[6])<<16; - case 6 : b+=((PN_uint32)k[5])<<8; + case 8 : b+=((uint32_t)k[7])<<24; + case 7 : b+=((uint32_t)k[6])<<16; + case 6 : b+=((uint32_t)k[5])<<8; case 5 : b+=k[4]; - case 4 : a+=((PN_uint32)k[3])<<24; - case 3 : a+=((PN_uint32)k[2])<<16; - case 2 : a+=((PN_uint32)k[1])<<8; + case 4 : a+=((uint32_t)k[3])<<24; + case 3 : a+=((uint32_t)k[2])<<16; + case 2 : a+=((uint32_t)k[1])<<8; case 1 : a+=k[0]; break; case 0 : *pc=c; *pb=b; return; /* zero length strings require no mixing */ @@ -588,19 +588,19 @@ void hashlittle2( * from hashlittle() on all machines. hashbig() takes advantage of * big-endian byte ordering. */ -PN_uint32 hashbig( const void *key, size_t length, PN_uint32 initval) +uint32_t hashbig( const void *key, size_t length, uint32_t initval) { - PN_uint32 a,b,c; + uint32_t a,b,c; union { const void *ptr; size_t i; } u; /* to cast key to (size_t) happily */ /* Set up the internal state */ - a = b = c = 0xdeadbeef + ((PN_uint32)length) + initval; + a = b = c = 0xdeadbeef + ((uint32_t)length) + initval; u.ptr = key; if (HASH_BIG_ENDIAN && ((u.i & 0x3) == 0)) { - const PN_uint32 *k = (PN_uint32*)key; /* read 32-bit chunks */ + const uint32_t *k = (uint32_t*)key; /* read 32-bit chunks */ #ifdef VALGRIND - const PN_uint8 *k8; + const uint8_t *k8; #endif /*------ all but last block: aligned reads and affect 32 bits of (a,b,c) */ @@ -645,44 +645,44 @@ PN_uint32 hashbig( const void *key, size_t length, PN_uint32 initval) #else /* make valgrind happy */ - k8 = (const PN_uint8 *)k; + k8 = (const uint8_t *)k; switch(length) /* all the case statements fall through */ { case 12: c+=k[2]; b+=k[1]; a+=k[0]; break; - case 11: c+=((PN_uint32)k8[10])<<8; /* fall through */ - case 10: c+=((PN_uint32)k8[9])<<16; /* fall through */ - case 9 : c+=((PN_uint32)k8[8])<<24; /* fall through */ + case 11: c+=((uint32_t)k8[10])<<8; /* fall through */ + case 10: c+=((uint32_t)k8[9])<<16; /* fall through */ + case 9 : c+=((uint32_t)k8[8])<<24; /* fall through */ case 8 : b+=k[1]; a+=k[0]; break; - case 7 : b+=((PN_uint32)k8[6])<<8; /* fall through */ - case 6 : b+=((PN_uint32)k8[5])<<16; /* fall through */ - case 5 : b+=((PN_uint32)k8[4])<<24; /* fall through */ + case 7 : b+=((uint32_t)k8[6])<<8; /* fall through */ + case 6 : b+=((uint32_t)k8[5])<<16; /* fall through */ + case 5 : b+=((uint32_t)k8[4])<<24; /* fall through */ case 4 : a+=k[0]; break; - case 3 : a+=((PN_uint32)k8[2])<<8; /* fall through */ - case 2 : a+=((PN_uint32)k8[1])<<16; /* fall through */ - case 1 : a+=((PN_uint32)k8[0])<<24; break; + case 3 : a+=((uint32_t)k8[2])<<8; /* fall through */ + case 2 : a+=((uint32_t)k8[1])<<16; /* fall through */ + case 1 : a+=((uint32_t)k8[0])<<24; break; case 0 : return c; } #endif /* !VALGRIND */ } else { /* need to read the key one byte at a time */ - const PN_uint8 *k = (PN_uint8*)key; + const uint8_t *k = (uint8_t*)key; /*--------------- all but the last block: affect some 32 bits of (a,b,c) */ while (length > 12) { - a += ((PN_uint32)k[0])<<24; - a += ((PN_uint32)k[1])<<16; - a += ((PN_uint32)k[2])<<8; - a += ((PN_uint32)k[3]); - b += ((PN_uint32)k[4])<<24; - b += ((PN_uint32)k[5])<<16; - b += ((PN_uint32)k[6])<<8; - b += ((PN_uint32)k[7]); - c += ((PN_uint32)k[8])<<24; - c += ((PN_uint32)k[9])<<16; - c += ((PN_uint32)k[10])<<8; - c += ((PN_uint32)k[11]); + a += ((uint32_t)k[0])<<24; + a += ((uint32_t)k[1])<<16; + a += ((uint32_t)k[2])<<8; + a += ((uint32_t)k[3]); + b += ((uint32_t)k[4])<<24; + b += ((uint32_t)k[5])<<16; + b += ((uint32_t)k[6])<<8; + b += ((uint32_t)k[7]); + c += ((uint32_t)k[8])<<24; + c += ((uint32_t)k[9])<<16; + c += ((uint32_t)k[10])<<8; + c += ((uint32_t)k[11]); mix(a,b,c); length -= 12; k += 12; @@ -692,17 +692,17 @@ PN_uint32 hashbig( const void *key, size_t length, PN_uint32 initval) switch(length) /* all the case statements fall through */ { case 12: c+=k[11]; - case 11: c+=((PN_uint32)k[10])<<8; - case 10: c+=((PN_uint32)k[9])<<16; - case 9 : c+=((PN_uint32)k[8])<<24; + case 11: c+=((uint32_t)k[10])<<8; + case 10: c+=((uint32_t)k[9])<<16; + case 9 : c+=((uint32_t)k[8])<<24; case 8 : b+=k[7]; - case 7 : b+=((PN_uint32)k[6])<<8; - case 6 : b+=((PN_uint32)k[5])<<16; - case 5 : b+=((PN_uint32)k[4])<<24; + case 7 : b+=((uint32_t)k[6])<<8; + case 6 : b+=((uint32_t)k[5])<<16; + case 5 : b+=((uint32_t)k[4])<<24; case 4 : a+=k[3]; - case 3 : a+=((PN_uint32)k[2])<<8; - case 2 : a+=((PN_uint32)k[1])<<16; - case 1 : a+=((PN_uint32)k[0])<<24; + case 3 : a+=((uint32_t)k[2])<<8; + case 2 : a+=((uint32_t)k[1])<<16; + case 1 : a+=((uint32_t)k[0])<<24; break; case 0 : return c; } @@ -718,9 +718,9 @@ PN_uint32 hashbig( const void *key, size_t length, PN_uint32 initval) /* used for timings */ void driver1() { - PN_uint8 buf[256]; - PN_uint32 i; - PN_uint32 h=0; + uint8_t buf[256]; + uint32_t i; + uint32_t h=0; time_t a,z; time(&a); @@ -740,11 +740,11 @@ void driver1() #define MAXLEN 70 void driver2() { - PN_uint8 qa[MAXLEN+1], qb[MAXLEN+2], *a = &qa[0], *b = &qb[1]; - PN_uint32 c[HASHSTATE], d[HASHSTATE], i=0, j=0, k, l, m=0, z; - PN_uint32 e[HASHSTATE],f[HASHSTATE],g[HASHSTATE],h[HASHSTATE]; - PN_uint32 x[HASHSTATE],y[HASHSTATE]; - PN_uint32 hlen; + uint8_t qa[MAXLEN+1], qb[MAXLEN+2], *a = &qa[0], *b = &qb[1]; + uint32_t c[HASHSTATE], d[HASHSTATE], i=0, j=0, k, l, m=0, z; + uint32_t e[HASHSTATE],f[HASHSTATE],g[HASHSTATE],h[HASHSTATE]; + uint32_t x[HASHSTATE],y[HASHSTATE]; + uint32_t hlen; printf("No more than %d trials should ever be needed \n",MAXPAIR/2); for (hlen=0; hlen < MAXLEN; ++hlen) @@ -757,14 +757,14 @@ void driver2() for (m=1; m<8; ++m) /*------------ for serveral possible initvals, */ { for (l=0; l>(8-j)); @@ -810,23 +810,23 @@ void driver2() /* Check for reading beyond the end of the buffer and alignment problems */ void driver3() { - PN_uint8 buf[MAXLEN+20], *b; - PN_uint32 len; - PN_uint8 q[] = "This is the time for all good men to come to the aid of their country..."; - PN_uint32 h; - PN_uint8 qq[] = "xThis is the time for all good men to come to the aid of their country..."; - PN_uint32 i; - PN_uint8 qqq[] = "xxThis is the time for all good men to come to the aid of their country..."; - PN_uint32 j; - PN_uint8 qqqq[] = "xxxThis is the time for all good men to come to the aid of their country..."; - PN_uint32 ref,x,y; - PN_uint8 *p; + uint8_t buf[MAXLEN+20], *b; + uint32_t len; + uint8_t q[] = "This is the time for all good men to come to the aid of their country..."; + uint32_t h; + uint8_t qq[] = "xThis is the time for all good men to come to the aid of their country..."; + uint32_t i; + uint8_t qqq[] = "xxThis is the time for all good men to come to the aid of their country..."; + uint32_t j; + uint8_t qqqq[] = "xxxThis is the time for all good men to come to the aid of their country..."; + uint32_t ref,x,y; + uint8_t *p; printf("Endianness. These lines should all be the same (for values filled in):\n"); printf("%.8x %.8x %.8x\n", - hashword((const PN_uint32 *)q, (sizeof(q)-1)/4, 13), - hashword((const PN_uint32 *)q, (sizeof(q)-5)/4, 13), - hashword((const PN_uint32 *)q, (sizeof(q)-9)/4, 13)); + hashword((const uint32_t *)q, (sizeof(q)-1)/4, 13), + hashword((const uint32_t *)q, (sizeof(q)-5)/4, 13), + hashword((const uint32_t *)q, (sizeof(q)-9)/4, 13)); p = q; printf("%.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x\n", hashlittle(p, sizeof(q)-1, 13), hashlittle(p, sizeof(q)-2, 13), @@ -868,11 +868,11 @@ void driver3() for (j=0; j typedef double PN_float64; typedef float PN_float32; diff --git a/dtool/src/dtoolbase/stl_compares.I b/dtool/src/dtoolbase/stl_compares.I index 5e087faa3e..501435f547 100644 --- a/dtool/src/dtoolbase/stl_compares.I +++ b/dtool/src/dtoolbase/stl_compares.I @@ -99,7 +99,7 @@ is_equal(const Key &a, const Key &b) const { template INLINE size_t integer_hash:: add_hash(size_t hash, const Key &key) { - PN_uint32 key32 = (PN_uint32)(key); + uint32_t key32 = (uint32_t)(key); return AddHash::add_hash(hash, &key32, 1); } @@ -109,7 +109,7 @@ add_hash(size_t hash, const Key &key) { INLINE size_t pointer_hash:: add_hash(size_t hash, const void *key) { // We don't mind if this loses precision. - PN_uint32 key32 = (PN_uint32)reinterpret_cast(key); + uint32_t key32 = (uint32_t)reinterpret_cast(key); return AddHash::add_hash(hash, &key32, 1); } @@ -147,7 +147,7 @@ operator () (const Key &a, const Key &b) const { template INLINE size_t floating_point_hash:: add_hash(size_t hash, const Key &key) const { - PN_uint32 key32 = (PN_uint32)(key / _threshold + 0.5f); + uint32_t key32 = (uint32_t)(key / _threshold + 0.5f); return AddHash::add_hash(hash, &key32, 1); } @@ -173,7 +173,7 @@ add_hash(size_t hash, const Key &key) { } #endif size_t num_bytes = (key.size() * sizeof(key[0])); - return AddHash::add_hash(hash, (const PN_uint8 *)&key[0], num_bytes); + return AddHash::add_hash(hash, (const uint8_t *)&key[0], num_bytes); } /** diff --git a/dtool/src/dtoolbase/typeRegistry.cxx b/dtool/src/dtoolbase/typeRegistry.cxx index a0393cb81c..99ac09be10 100644 --- a/dtool/src/dtoolbase/typeRegistry.cxx +++ b/dtool/src/dtoolbase/typeRegistry.cxx @@ -511,10 +511,10 @@ TypeRegistry() { // Here's a few sanity checks on the sizes of our words. We have to put it // here, at runtime, since there doesn't appear to be a cross-platform // compile-time way to verify that we've chosen the right word sizes. - assert(sizeof(PN_uint8) == 1 && sizeof(PN_int8) == 1); - assert(sizeof(PN_uint16) == 2 && sizeof(PN_int16) == 2); - assert(sizeof(PN_uint32) == 4 && sizeof(PN_int32) == 4); - assert(sizeof(PN_uint64) == 8 && sizeof(PN_int64) == 8); + assert(sizeof(uint8_t) == 1 && sizeof(int8_t) == 1); + assert(sizeof(uint16_t) == 2 && sizeof(int16_t) == 2); + assert(sizeof(uint32_t) == 4 && sizeof(int32_t) == 4); + assert(sizeof(uint64_t) == 8 && sizeof(int64_t) == 8); assert(sizeof(PN_float32) == 4); assert(sizeof(PN_float64) == 8); diff --git a/dtool/src/dtoolutil/string_utils.I b/dtool/src/dtoolutil/string_utils.I index 597a7f603b..e4e71766f8 100644 --- a/dtool/src/dtoolutil/string_utils.I +++ b/dtool/src/dtoolutil/string_utils.I @@ -80,13 +80,13 @@ format_string(int value) { } INLINE string -format_string(PN_int64 value) { +format_string(int64_t value) { char buffer[21]; char *p = buffer + 20; *p = 0; if (value < 0) { - PN_uint64 posv = (PN_uint64)-value; + uint64_t posv = (uint64_t)-value; do { *--p = '0' + (posv % 10); posv /= 10; diff --git a/dtool/src/dtoolutil/string_utils.h b/dtool/src/dtoolutil/string_utils.h index 2737566cdf..a3d931af6e 100644 --- a/dtool/src/dtoolutil/string_utils.h +++ b/dtool/src/dtoolutil/string_utils.h @@ -73,7 +73,7 @@ INLINE string format_string(float value); INLINE string format_string(double value); INLINE string format_string(unsigned int value); INLINE string format_string(int value); -INLINE string format_string(PN_int64 value); +INLINE string format_string(int64_t value); #include "string_utils.I" diff --git a/dtool/src/prc/configDeclaration.I b/dtool/src/prc/configDeclaration.I index 889a01a4c4..a93fbdab10 100644 --- a/dtool/src/prc/configDeclaration.I +++ b/dtool/src/prc/configDeclaration.I @@ -187,7 +187,7 @@ get_int_word(size_t n) const { * Returns the int64 value of the nth word of the declaration's value, or 0 if * there is no nth value. See also has_int64_word(). */ -INLINE PN_int64 ConfigDeclaration:: +INLINE int64_t ConfigDeclaration:: get_int64_word(size_t n) const { // We use has_string_word() instead of has_int64_word(), so we can return a // partial answer if there was one. diff --git a/dtool/src/prc/configDeclaration.cxx b/dtool/src/prc/configDeclaration.cxx index 2c7550e90d..d692bec013 100644 --- a/dtool/src/prc/configDeclaration.cxx +++ b/dtool/src/prc/configDeclaration.cxx @@ -108,7 +108,7 @@ set_int_word(size_t n, int value) { * words. */ void ConfigDeclaration:: -set_int64_word(size_t n, PN_int64 value) { +set_int64_word(size_t n, int64_t value) { set_string_word(n, format_string(value)); _words[n]._flags |= (F_checked_int64 | F_valid_int64); @@ -294,8 +294,8 @@ check_int64_word(size_t n) { ++pi; // Negative number. while (pi != word._str.end() && isdigit(*pi)) { - PN_int64 next = word._int_64 * 10 - (int)((*pi) - '0'); - if ((PN_int64)(next / 10) != word._int_64) { + int64_t next = word._int_64 * 10 - (int)((*pi) - '0'); + if ((int64_t)(next / 10) != word._int_64) { // Overflow. overflow = true; } @@ -306,8 +306,8 @@ check_int64_word(size_t n) { } else { // Positive number. while (pi != word._str.end() && isdigit(*pi)) { - PN_int64 next = word._int_64 * 10 + (int)((*pi) - '0'); - if ((PN_int64)(next / 10) != word._int_64) { + int64_t next = word._int_64 * 10 + (int)((*pi) - '0'); + if ((int64_t)(next / 10) != word._int_64) { // Overflow. overflow = true; } diff --git a/dtool/src/prc/configDeclaration.h b/dtool/src/prc/configDeclaration.h index 7e9c96b6a5..696f4771d4 100644 --- a/dtool/src/prc/configDeclaration.h +++ b/dtool/src/prc/configDeclaration.h @@ -59,13 +59,13 @@ PUBLISHED: INLINE string get_string_word(size_t n) const; INLINE bool get_bool_word(size_t n) const; INLINE int get_int_word(size_t n) const; - INLINE PN_int64 get_int64_word(size_t n) const; + INLINE int64_t get_int64_word(size_t n) const; INLINE double get_double_word(size_t n) const; void set_string_word(size_t n, const string &value); void set_bool_word(size_t n, bool value); void set_int_word(size_t n, int value); - void set_int64_word(size_t n, PN_int64 value); + void set_int64_word(size_t n, int64_t value); void set_double_word(size_t n, double value); INLINE int get_decl_seq() const; @@ -106,7 +106,7 @@ private: string _str; bool _bool; int _int; - PN_int64 _int_64; + int64_t _int_64; double _double; short _flags; }; diff --git a/dtool/src/prc/configVariable.I b/dtool/src/prc/configVariable.I index 65ef0380aa..b46bc63529 100644 --- a/dtool/src/prc/configVariable.I +++ b/dtool/src/prc/configVariable.I @@ -196,7 +196,7 @@ get_int_word(size_t n) const { * Returns the int64 value of the nth word of the variable's value, or 0 if * there is no nth value. See also has_int_word(). */ -INLINE PN_int64 ConfigVariable:: +INLINE int64_t ConfigVariable:: get_int64_word(size_t n) const { nassertr(is_constructed(), 0); const ConfigDeclaration *decl = _core->get_declaration(0); @@ -249,7 +249,7 @@ set_int_word(size_t n, int value) { * words. */ INLINE void ConfigVariable:: -set_int64_word(size_t n, PN_int64 value) { +set_int64_word(size_t n, int64_t value) { nassertv(is_constructed()); _core->make_local_value()->set_int64_word(n, value); } diff --git a/dtool/src/prc/configVariable.h b/dtool/src/prc/configVariable.h index a937b1cdea..c8adb39e65 100644 --- a/dtool/src/prc/configVariable.h +++ b/dtool/src/prc/configVariable.h @@ -56,13 +56,13 @@ protected: INLINE string get_string_word(size_t n) const; INLINE bool get_bool_word(size_t n) const; INLINE int get_int_word(size_t n) const; - INLINE PN_int64 get_int64_word(size_t n) const; + INLINE int64_t get_int64_word(size_t n) const; INLINE double get_double_word(size_t n) const; INLINE void set_string_word(size_t n, const string &value); INLINE void set_bool_word(size_t n, bool value); INLINE void set_int_word(size_t n, int value); - INLINE void set_int64_word(size_t n, PN_int64 value); + INLINE void set_int64_word(size_t n, int64_t value); INLINE void set_double_word(size_t n, double value); protected: diff --git a/dtool/src/prc/configVariableInt64.I b/dtool/src/prc/configVariableInt64.I index 94d405cd76..f7c1c5d66b 100644 --- a/dtool/src/prc/configVariableInt64.I +++ b/dtool/src/prc/configVariableInt64.I @@ -26,7 +26,7 @@ ConfigVariableInt64(const string &name) : * */ INLINE ConfigVariableInt64:: -ConfigVariableInt64(const string &name, PN_int64 default_value, +ConfigVariableInt64(const string &name, int64_t default_value, const string &description, int flags) : #ifdef PRC_SAVE_DESCRIPTIONS ConfigVariable(name, ConfigVariableCore::VT_int64, description, flags), @@ -60,7 +60,7 @@ ConfigVariableInt64(const string &name, const string &default_value, * Reassigns the variable's local value. */ INLINE void ConfigVariableInt64:: -operator = (PN_int64 value) { +operator = (int64_t value) { set_value(value); } @@ -68,7 +68,7 @@ operator = (PN_int64 value) { * Returns the variable's value. */ INLINE ConfigVariableInt64:: -operator PN_int64 () const { +operator int64_t () const { return get_value(); } @@ -83,7 +83,7 @@ size() const { /** * Returns the value of the variable's nth word. */ -INLINE PN_int64 ConfigVariableInt64:: +INLINE int64_t ConfigVariableInt64:: operator [] (size_t n) const { return get_word(n); } @@ -92,7 +92,7 @@ operator [] (size_t n) const { * Reassigns the variable's local value. */ INLINE void ConfigVariableInt64:: -set_value(PN_int64 value) { +set_value(int64_t value) { set_string_value(""); set_int64_word(0, value); } @@ -100,9 +100,9 @@ set_value(PN_int64 value) { /** * Returns the variable's value. */ -INLINE PN_int64 ConfigVariableInt64:: +INLINE int64_t ConfigVariableInt64:: get_value() const { - TAU_PROFILE("PN_int64 ConfigVariableInt64::get_value() const", " ", TAU_USER); + TAU_PROFILE("int64_t ConfigVariableInt64::get_value() const", " ", TAU_USER); if (!is_cache_valid(_local_modified)) { mark_cache_valid(((ConfigVariableInt64 *)this)->_local_modified); ((ConfigVariableInt64 *)this)->_cache = get_int64_word(0); @@ -113,7 +113,7 @@ get_value() const { /** * Returns the variable's default value. */ -INLINE PN_int64 ConfigVariableInt64:: +INLINE int64_t ConfigVariableInt64:: get_default_value() const { const ConfigDeclaration *decl = ConfigVariable::get_default_value(); if (decl != (ConfigDeclaration *)NULL) { @@ -125,7 +125,7 @@ get_default_value() const { /** * Returns the variable's nth value. */ -INLINE PN_int64 ConfigVariableInt64:: +INLINE int64_t ConfigVariableInt64:: get_word(size_t n) const { return get_int64_word(n); } @@ -135,6 +135,6 @@ get_word(size_t n) const { * variable's overall value. */ INLINE void ConfigVariableInt64:: -set_word(size_t n, PN_int64 value) { +set_word(size_t n, int64_t value) { set_int64_word(n, value); } diff --git a/dtool/src/prc/configVariableInt64.cxx b/dtool/src/prc/configVariableInt64.cxx index 5545678685..1b8166d496 100644 --- a/dtool/src/prc/configVariableInt64.cxx +++ b/dtool/src/prc/configVariableInt64.cxx @@ -18,6 +18,6 @@ * */ void ConfigVariableInt64:: -set_default_value(PN_int64 default_value) { +set_default_value(int64_t default_value) { _core->set_default_value(format_string(default_value)); } diff --git a/dtool/src/prc/configVariableInt64.h b/dtool/src/prc/configVariableInt64.h index 835c165f8a..40477f87cc 100644 --- a/dtool/src/prc/configVariableInt64.h +++ b/dtool/src/prc/configVariableInt64.h @@ -25,34 +25,34 @@ class EXPCL_DTOOLCONFIG ConfigVariableInt64 : public ConfigVariable { PUBLISHED: INLINE ConfigVariableInt64(const string &name); - INLINE ConfigVariableInt64(const string &name, PN_int64 default_value, + INLINE ConfigVariableInt64(const string &name, int64_t default_value, const string &description = string(), int flags = 0); INLINE ConfigVariableInt64(const string &name, const string &default_value, const string &description = string(), int flags = 0); - INLINE void operator = (PN_int64 value); - INLINE operator PN_int64 () const; + INLINE void operator = (int64_t value); + INLINE operator int64_t () const; INLINE size_t size() const; - INLINE PN_int64 operator [] (size_t n) const; + INLINE int64_t operator [] (size_t n) const; - INLINE void set_value(PN_int64 value); - INLINE PN_int64 get_value() const; - INLINE PN_int64 get_default_value() const; + INLINE void set_value(int64_t value); + INLINE int64_t get_value() const; + INLINE int64_t get_default_value() const; MAKE_PROPERTY(value, get_value, set_value); MAKE_PROPERTY(default_value, get_default_value); - INLINE PN_int64 get_word(size_t n) const; - INLINE void set_word(size_t n, PN_int64 value); + INLINE int64_t get_word(size_t n) const; + INLINE void set_word(size_t n, int64_t value); private: - void set_default_value(PN_int64 default_value); + void set_default_value(int64_t default_value); private: AtomicAdjust::Integer _local_modified; - PN_int64 _cache; + int64_t _cache; }; #include "configVariableInt64.I" diff --git a/dtool/src/prc/encryptStreamBuf.cxx b/dtool/src/prc/encryptStreamBuf.cxx index a308412797..acf76f9c0a 100644 --- a/dtool/src/prc/encryptStreamBuf.cxx +++ b/dtool/src/prc/encryptStreamBuf.cxx @@ -276,12 +276,12 @@ open_write(ostream *dest, bool owns_dest, const string &password) { // Now write the header information to the stream. StreamWriter sw(_dest, false); - nassertv((PN_uint16)nid == nid); - sw.add_uint16((PN_uint16)nid); - nassertv((PN_uint16)key_length == key_length); - sw.add_uint16((PN_uint16)key_length); - nassertv((PN_uint16)count == count); - sw.add_uint16((PN_uint16)count); + nassertv((uint16_t)nid == nid); + sw.add_uint16((uint16_t)nid); + nassertv((uint16_t)key_length == key_length); + sw.add_uint16((uint16_t)key_length); + nassertv((uint16_t)count == count); + sw.add_uint16((uint16_t)count); sw.append_data(iv, iv_length); _write_valid = true; diff --git a/dtool/src/prc/nativeNumericData.I b/dtool/src/prc/nativeNumericData.I index 9a43707c9f..9f08e4cfe3 100644 --- a/dtool/src/prc/nativeNumericData.I +++ b/dtool/src/prc/nativeNumericData.I @@ -54,24 +54,24 @@ get_data() const { // this is for a intel compile .. it is native format and it is readable off // word boundries -inline void TS_SetVal1(const PN_int8 * src, PN_int8 *dst) +inline void TS_SetVal1(const int8_t * src, int8_t *dst) { *dst = *src; } inline void TS_SetVal2(const char * src, char *dst) { - *(reinterpret_cast(dst)) = *(reinterpret_cast (src)); + *(reinterpret_cast(dst)) = *(reinterpret_cast (src)); } inline void TS_SetVal4(const char * src, char *dst) { - *(reinterpret_cast (dst)) = *(reinterpret_cast (src)); + *(reinterpret_cast (dst)) = *(reinterpret_cast (src)); } inline void TS_SetVal8(const char * src, char *dst) { - *(reinterpret_cast(dst)) = *(reinterpret_cast(src)); + *(reinterpret_cast(dst)) = *(reinterpret_cast(src)); } template inline type TS_GetInteger(type &val,const char * _src) diff --git a/dtool/src/prc/streamReader.I b/dtool/src/prc/streamReader.I index e02e3e9aec..8f96aa85f4 100644 --- a/dtool/src/prc/streamReader.I +++ b/dtool/src/prc/streamReader.I @@ -83,25 +83,25 @@ get_bool() { /** * Extracts a signed 8-bit integer. */ -INLINE PN_int8 StreamReader:: +INLINE int8_t StreamReader:: get_int8() { - return (PN_int8)_in->get(); + return (int8_t)_in->get(); } /** * Extracts an unsigned 8-bit integer. */ -INLINE PN_uint8 StreamReader:: +INLINE uint8_t StreamReader:: get_uint8() { - return (PN_uint8)_in->get(); + return (uint8_t)_in->get(); } /** * Extracts a signed 16-bit integer. */ -INLINE PN_int16 StreamReader:: +INLINE int16_t StreamReader:: get_int16() { - PN_int16 readval, retval; + int16_t readval, retval; _in->read((char *)&readval, sizeof(readval)); LittleEndian s(&readval, 0, sizeof(readval)); s.store_value(&retval, sizeof(retval)); @@ -111,9 +111,9 @@ get_int16() { /** * Extracts a signed 32-bit integer. */ -INLINE PN_int32 StreamReader:: +INLINE int32_t StreamReader:: get_int32() { - PN_int32 readval, retval; + int32_t readval, retval; _in->read((char *)&readval, sizeof(readval)); LittleEndian s(&readval, 0, sizeof(readval)); s.store_value(&retval, sizeof(retval)); @@ -123,9 +123,9 @@ get_int32() { /** * Extracts a signed 64-bit integer. */ -INLINE PN_int64 StreamReader:: +INLINE int64_t StreamReader:: get_int64() { - PN_int64 readval, retval; + int64_t readval, retval; _in->read((char *)&readval, sizeof(readval)); LittleEndian s(&readval, 0, sizeof(readval)); s.store_value(&retval, sizeof(retval)); @@ -135,9 +135,9 @@ get_int64() { /** * Extracts an unsigned 16-bit integer. */ -INLINE PN_uint16 StreamReader:: +INLINE uint16_t StreamReader:: get_uint16() { - PN_uint16 readval, retval; + uint16_t readval, retval; _in->read((char *)&readval, sizeof(readval)); LittleEndian s(&readval, 0, sizeof(readval)); s.store_value(&retval, sizeof(retval)); @@ -147,9 +147,9 @@ get_uint16() { /** * Extracts an unsigned 32-bit integer. */ -INLINE PN_uint32 StreamReader:: +INLINE uint32_t StreamReader:: get_uint32() { - PN_uint32 readval, retval; + uint32_t readval, retval; _in->read((char *)&readval, sizeof(readval)); LittleEndian s(&readval, 0, sizeof(readval)); s.store_value(&retval, sizeof(retval)); @@ -159,9 +159,9 @@ get_uint32() { /** * Extracts an unsigned 64-bit integer. */ -INLINE PN_uint64 StreamReader:: +INLINE uint64_t StreamReader:: get_uint64() { - PN_uint64 readval, retval; + uint64_t readval, retval; _in->read((char *)&readval, sizeof(readval)); LittleEndian s(&readval, 0, sizeof(readval)); s.store_value(&retval, sizeof(retval)); @@ -202,9 +202,9 @@ get_float64() { /** * Extracts a signed big-endian 16-bit integer. */ -INLINE PN_int16 StreamReader:: +INLINE int16_t StreamReader:: get_be_int16() { - PN_int16 readval, retval; + int16_t readval, retval; _in->read((char *)&readval, sizeof(readval)); BigEndian s(&readval, 0, sizeof(readval)); s.store_value(&retval, sizeof(retval)); @@ -214,9 +214,9 @@ get_be_int16() { /** * Extracts a signed big-endian 32-bit integer. */ -INLINE PN_int32 StreamReader:: +INLINE int32_t StreamReader:: get_be_int32() { - PN_int32 readval, retval; + int32_t readval, retval; _in->read((char *)&readval, sizeof(readval)); BigEndian s(&readval, 0, sizeof(readval)); s.store_value(&retval, sizeof(retval)); @@ -226,9 +226,9 @@ get_be_int32() { /** * Extracts a signed big-endian 64-bit integer. */ -INLINE PN_int64 StreamReader:: +INLINE int64_t StreamReader:: get_be_int64() { - PN_int64 readval, retval; + int64_t readval, retval; _in->read((char *)&readval, sizeof(readval)); BigEndian s(&readval, 0, sizeof(readval)); s.store_value(&retval, sizeof(retval)); @@ -238,9 +238,9 @@ get_be_int64() { /** * Extracts an unsigned big-endian 16-bit integer. */ -INLINE PN_uint16 StreamReader:: +INLINE uint16_t StreamReader:: get_be_uint16() { - PN_uint16 readval, retval; + uint16_t readval, retval; _in->read((char *)&readval, sizeof(readval)); BigEndian s(&readval, 0, sizeof(readval)); s.store_value(&retval, sizeof(retval)); @@ -250,9 +250,9 @@ get_be_uint16() { /** * Extracts an unsigned big-endian 32-bit integer. */ -INLINE PN_uint32 StreamReader:: +INLINE uint32_t StreamReader:: get_be_uint32() { - PN_uint32 readval, retval; + uint32_t readval, retval; _in->read((char *)&readval, sizeof(readval)); BigEndian s(&readval, 0, sizeof(readval)); s.store_value(&retval, sizeof(retval)); @@ -262,9 +262,9 @@ get_be_uint32() { /** * Extracts an unsigned big-endian 64-bit integer. */ -INLINE PN_uint64 StreamReader:: +INLINE uint64_t StreamReader:: get_be_uint64() { - PN_uint64 readval, retval; + uint64_t readval, retval; _in->read((char *)&readval, sizeof(readval)); BigEndian s(&readval, 0, sizeof(readval)); s.store_value(&retval, sizeof(retval)); diff --git a/dtool/src/prc/streamReader.h b/dtool/src/prc/streamReader.h index f281a88f1c..1c820253c1 100644 --- a/dtool/src/prc/streamReader.h +++ b/dtool/src/prc/streamReader.h @@ -37,24 +37,24 @@ PUBLISHED: MAKE_PROPERTY(istream, get_istream); BLOCKING INLINE bool get_bool(); - BLOCKING INLINE PN_int8 get_int8(); - BLOCKING INLINE PN_uint8 get_uint8(); + BLOCKING INLINE int8_t get_int8(); + BLOCKING INLINE uint8_t get_uint8(); - BLOCKING INLINE PN_int16 get_int16(); - BLOCKING INLINE PN_int32 get_int32(); - BLOCKING INLINE PN_int64 get_int64(); - BLOCKING INLINE PN_uint16 get_uint16(); - BLOCKING INLINE PN_uint32 get_uint32(); - BLOCKING INLINE PN_uint64 get_uint64(); + BLOCKING INLINE int16_t get_int16(); + BLOCKING INLINE int32_t get_int32(); + BLOCKING INLINE int64_t get_int64(); + BLOCKING INLINE uint16_t get_uint16(); + BLOCKING INLINE uint32_t get_uint32(); + BLOCKING INLINE uint64_t get_uint64(); BLOCKING INLINE float get_float32(); BLOCKING INLINE PN_float64 get_float64(); - BLOCKING INLINE PN_int16 get_be_int16(); - BLOCKING INLINE PN_int32 get_be_int32(); - BLOCKING INLINE PN_int64 get_be_int64(); - BLOCKING INLINE PN_uint16 get_be_uint16(); - BLOCKING INLINE PN_uint32 get_be_uint32(); - BLOCKING INLINE PN_uint64 get_be_uint64(); + BLOCKING INLINE int16_t get_be_int16(); + BLOCKING INLINE int32_t get_be_int32(); + BLOCKING INLINE int64_t get_be_int64(); + BLOCKING INLINE uint16_t get_be_uint16(); + BLOCKING INLINE uint32_t get_be_uint32(); + BLOCKING INLINE uint64_t get_be_uint64(); BLOCKING INLINE float get_be_float32(); BLOCKING INLINE PN_float64 get_be_float64(); diff --git a/dtool/src/prc/streamWriter.I b/dtool/src/prc/streamWriter.I index 9db035094f..8bbe23af62 100644 --- a/dtool/src/prc/streamWriter.I +++ b/dtool/src/prc/streamWriter.I @@ -92,7 +92,7 @@ add_bool(bool b) { * Adds a signed 8-bit integer to the stream. */ INLINE void StreamWriter:: -add_int8(PN_int8 value) { +add_int8(int8_t value) { append_data(&value, 1); } @@ -100,7 +100,7 @@ add_int8(PN_int8 value) { * Adds an unsigned 8-bit integer to the stream. */ INLINE void StreamWriter:: -add_uint8(PN_uint8 value) { +add_uint8(uint8_t value) { append_data(&value, 1); } @@ -108,7 +108,7 @@ add_uint8(PN_uint8 value) { * Adds a signed 16-bit integer to the stream. */ INLINE void StreamWriter:: -add_int16(PN_int16 value) { +add_int16(int16_t value) { LittleEndian s(&value, sizeof(value)); append_data(s.get_data(), sizeof(value)); } @@ -117,7 +117,7 @@ add_int16(PN_int16 value) { * Adds a signed 32-bit integer to the stream. */ INLINE void StreamWriter:: -add_int32(PN_int32 value) { +add_int32(int32_t value) { LittleEndian s(&value, sizeof(value)); append_data(s.get_data(), sizeof(value)); } @@ -126,7 +126,7 @@ add_int32(PN_int32 value) { * Adds a signed 64-bit integer to the stream. */ INLINE void StreamWriter:: -add_int64(PN_int64 value) { +add_int64(int64_t value) { LittleEndian s(&value, sizeof(value)); append_data(s.get_data(), sizeof(value)); } @@ -135,7 +135,7 @@ add_int64(PN_int64 value) { * Adds an unsigned 16-bit integer to the stream. */ INLINE void StreamWriter:: -add_uint16(PN_uint16 value) { +add_uint16(uint16_t value) { LittleEndian s(&value, sizeof(value)); append_data(s.get_data(), sizeof(value)); } @@ -144,7 +144,7 @@ add_uint16(PN_uint16 value) { * Adds an unsigned 32-bit integer to the stream. */ INLINE void StreamWriter:: -add_uint32(PN_uint32 value) { +add_uint32(uint32_t value) { LittleEndian s(&value, sizeof(value)); append_data(s.get_data(), sizeof(value)); } @@ -153,7 +153,7 @@ add_uint32(PN_uint32 value) { * Adds an unsigned 64-bit integer to the stream. */ INLINE void StreamWriter:: -add_uint64(PN_uint64 value) { +add_uint64(uint64_t value) { LittleEndian s(&value, sizeof(value)); append_data(s.get_data(), sizeof(value)); } @@ -186,7 +186,7 @@ add_float64(PN_float64 value) { * Adds a signed 16-bit big-endian integer to the streamWriter. */ INLINE void StreamWriter:: -add_be_int16(PN_int16 value) { +add_be_int16(int16_t value) { BigEndian s(&value, sizeof(value)); append_data(s.get_data(), sizeof(value)); } @@ -195,7 +195,7 @@ add_be_int16(PN_int16 value) { * Adds a signed 32-bit big-endian integer to the streamWriter. */ INLINE void StreamWriter:: -add_be_int32(PN_int32 value) { +add_be_int32(int32_t value) { BigEndian s(&value, sizeof(value)); append_data(s.get_data(), sizeof(value)); } @@ -204,7 +204,7 @@ add_be_int32(PN_int32 value) { * Adds a signed 64-bit big-endian integer to the streamWriter. */ INLINE void StreamWriter:: -add_be_int64(PN_int64 value) { +add_be_int64(int64_t value) { BigEndian s(&value, sizeof(value)); append_data(s.get_data(), sizeof(value)); } @@ -213,7 +213,7 @@ add_be_int64(PN_int64 value) { * Adds an unsigned 16-bit big-endian integer to the streamWriter. */ INLINE void StreamWriter:: -add_be_uint16(PN_uint16 value) { +add_be_uint16(uint16_t value) { BigEndian s(&value, sizeof(value)); append_data(s.get_data(), sizeof(value)); } @@ -222,7 +222,7 @@ add_be_uint16(PN_uint16 value) { * Adds an unsigned 32-bit big-endian integer to the streamWriter. */ INLINE void StreamWriter:: -add_be_uint32(PN_uint32 value) { +add_be_uint32(uint32_t value) { BigEndian s(&value, sizeof(value)); append_data(s.get_data(), sizeof(value)); } @@ -231,7 +231,7 @@ add_be_uint32(PN_uint32 value) { * Adds an unsigned 64-bit big-endian integer to the streamWriter. */ INLINE void StreamWriter:: -add_be_uint64(PN_uint64 value) { +add_be_uint64(uint64_t value) { BigEndian s(&value, sizeof(value)); append_data(s.get_data(), sizeof(value)); } @@ -267,10 +267,10 @@ add_be_float64(PN_float64 value) { INLINE void StreamWriter:: add_string(const string &str) { // The max sendable length for a string is 2^16. - nassertv(str.length() <= (PN_uint16)0xffff); + nassertv(str.length() <= (uint16_t)0xffff); // Strings always are preceded by their length - add_uint16((PN_uint16)str.length()); + add_uint16((uint16_t)str.length()); // Add the string append_data(str); @@ -282,7 +282,7 @@ add_string(const string &str) { INLINE void StreamWriter:: add_string32(const string &str) { // Strings always are preceded by their length - add_uint32((PN_uint32)str.length()); + add_uint32((uint32_t)str.length()); // Add the string append_data(str); diff --git a/dtool/src/prc/streamWriter.h b/dtool/src/prc/streamWriter.h index 42157db277..2f04a9ab8d 100644 --- a/dtool/src/prc/streamWriter.h +++ b/dtool/src/prc/streamWriter.h @@ -39,26 +39,26 @@ PUBLISHED: MAKE_PROPERTY(ostream, get_ostream); BLOCKING INLINE void add_bool(bool value); - BLOCKING INLINE void add_int8(PN_int8 value); - BLOCKING INLINE void add_uint8(PN_uint8 value); + BLOCKING INLINE void add_int8(int8_t value); + BLOCKING INLINE void add_uint8(uint8_t value); // The default numeric packing is little-endian. - BLOCKING INLINE void add_int16(PN_int16 value); - BLOCKING INLINE void add_int32(PN_int32 value); - BLOCKING INLINE void add_int64(PN_int64 value); - BLOCKING INLINE void add_uint16(PN_uint16 value); - BLOCKING INLINE void add_uint32(PN_uint32 value); - BLOCKING INLINE void add_uint64(PN_uint64 value); + BLOCKING INLINE void add_int16(int16_t value); + BLOCKING INLINE void add_int32(int32_t value); + BLOCKING INLINE void add_int64(int64_t value); + BLOCKING INLINE void add_uint16(uint16_t value); + BLOCKING INLINE void add_uint32(uint32_t value); + BLOCKING INLINE void add_uint64(uint64_t value); BLOCKING INLINE void add_float32(float value); BLOCKING INLINE void add_float64(PN_float64 value); // These functions pack numbers big-endian, in case that's desired. - BLOCKING INLINE void add_be_int16(PN_int16 value); - BLOCKING INLINE void add_be_int32(PN_int32 value); - BLOCKING INLINE void add_be_int64(PN_int64 value); - BLOCKING INLINE void add_be_uint16(PN_uint16 value); - BLOCKING INLINE void add_be_uint32(PN_uint32 value); - BLOCKING INLINE void add_be_uint64(PN_uint64 value); + BLOCKING INLINE void add_be_int16(int16_t value); + BLOCKING INLINE void add_be_int32(int32_t value); + BLOCKING INLINE void add_be_int64(int64_t value); + BLOCKING INLINE void add_be_uint16(uint16_t value); + BLOCKING INLINE void add_be_uint32(uint32_t value); + BLOCKING INLINE void add_be_uint64(uint64_t value); BLOCKING INLINE void add_be_float32(float value); BLOCKING INLINE void add_be_float64(PN_float64 value); diff --git a/makepanda/makepanda.py b/makepanda/makepanda.py index 07df329f51..ea89dc7c22 100755 --- a/makepanda/makepanda.py +++ b/makepanda/makepanda.py @@ -2203,7 +2203,7 @@ DTOOL_CONFIG=[ ("PHAVE_DIRENT_H", 'UNDEF', '1'), ("PHAVE_SYS_SOUNDCARD_H", 'UNDEF', '1'), ("PHAVE_UCONTEXT_H", 'UNDEF', '1'), - ("PHAVE_STDINT_H", 'UNDEF', '1'), + ("PHAVE_STDINT_H", '1', '1'), ("HAVE_RTTI", '1', '1'), ("HAVE_X11", 'UNDEF', '1'), ("HAVE_XRANDR", 'UNDEF', '1'), diff --git a/panda/src/audiotraits/openalAudioManager.cxx b/panda/src/audiotraits/openalAudioManager.cxx index c32407970c..ba1b4684a3 100644 --- a/panda/src/audiotraits/openalAudioManager.cxx +++ b/panda/src/audiotraits/openalAudioManager.cxx @@ -438,7 +438,7 @@ get_sound_data(MovieAudio *movie, int mode) { } int channels = stream->audio_channels(); int samples = (int)(stream->length() * stream->audio_rate()); - PN_int16 *data = new PN_int16[samples * channels]; + int16_t *data = new int16_t[samples * channels]; stream->read_samples(samples, data); alBufferData(sd->_sample, (channels>1) ? AL_FORMAT_STEREO16 : AL_FORMAT_MONO16, diff --git a/panda/src/audiotraits/openalAudioSound.cxx b/panda/src/audiotraits/openalAudioSound.cxx index 7237b2fefe..43ebd149cb 100644 --- a/panda/src/audiotraits/openalAudioSound.cxx +++ b/panda/src/audiotraits/openalAudioSound.cxx @@ -383,8 +383,8 @@ read_stream_data(int bytelen, unsigned char *buffer) { if (samples > _sd->_stream->ready()) { samples = _sd->_stream->ready(); } - cursor->read_samples(samples, (PN_int16 *)buffer); - size_t hval = AddHash::add_hash(0, (PN_uint8*)buffer, samples*channels*2); + cursor->read_samples(samples, (int16_t *)buffer); + size_t hval = AddHash::add_hash(0, (uint8_t*)buffer, samples*channels*2); audio_debug("Streaming " << cursor->get_source()->get_name() << " at " << t << " hash " << hval); fill += samples; space -= samples; diff --git a/panda/src/display/displayInformation.cxx b/panda/src/display/displayInformation.cxx index aa83cfdf97..60e3a69e8b 100644 --- a/panda/src/display/displayInformation.cxx +++ b/panda/src/display/displayInformation.cxx @@ -81,8 +81,8 @@ DisplayInformation() { DisplayMode *display_mode_array; int video_memory; int texture_memory; - PN_uint64 physical_memory; - PN_uint64 available_physical_memory; + uint64_t physical_memory; + uint64_t available_physical_memory; state = DisplayInformation::DS_unknown; get_adapter_display_mode_state = false; @@ -325,7 +325,7 @@ update_memory_information() { /** * */ -PN_uint64 DisplayInformation:: +uint64_t DisplayInformation:: get_physical_memory() { return _physical_memory; } @@ -333,7 +333,7 @@ get_physical_memory() { /** * */ -PN_uint64 DisplayInformation:: +uint64_t DisplayInformation:: get_available_physical_memory() { return _available_physical_memory; } @@ -341,7 +341,7 @@ get_available_physical_memory() { /** * */ -PN_uint64 DisplayInformation:: +uint64_t DisplayInformation:: get_page_file_size() { return _page_file_size; } @@ -349,7 +349,7 @@ get_page_file_size() { /** * */ -PN_uint64 DisplayInformation:: +uint64_t DisplayInformation:: get_available_page_file_size() { return _available_page_file_size; } @@ -357,7 +357,7 @@ get_available_page_file_size() { /** * */ -PN_uint64 DisplayInformation:: +uint64_t DisplayInformation:: get_process_virtual_memory() { return _process_virtual_memory; } @@ -365,7 +365,7 @@ get_process_virtual_memory() { /** * */ -PN_uint64 DisplayInformation:: +uint64_t DisplayInformation:: get_available_process_virtual_memory() { return _available_process_virtual_memory; } @@ -381,7 +381,7 @@ get_memory_load() { /** * */ -PN_uint64 DisplayInformation:: +uint64_t DisplayInformation:: get_page_fault_count() { return _page_fault_count; } @@ -389,7 +389,7 @@ get_page_fault_count() { /** * */ -PN_uint64 DisplayInformation:: +uint64_t DisplayInformation:: get_process_memory() { return _process_memory; } @@ -397,7 +397,7 @@ get_process_memory() { /** * */ -PN_uint64 DisplayInformation:: +uint64_t DisplayInformation:: get_peak_process_memory() { return _peak_process_memory; } @@ -405,7 +405,7 @@ get_peak_process_memory() { /** * */ -PN_uint64 DisplayInformation:: +uint64_t DisplayInformation:: get_page_file_usage() { return _page_file_usage; } @@ -413,7 +413,7 @@ get_page_file_usage() { /** * */ -PN_uint64 DisplayInformation:: +uint64_t DisplayInformation:: get_peak_page_file_usage() { return _peak_page_file_usage; } @@ -570,7 +570,7 @@ get_cpu_brand_index() { /** * */ -PN_uint64 DisplayInformation:: +uint64_t DisplayInformation:: get_cpu_frequency() { return _cpu_frequency; } @@ -578,9 +578,9 @@ get_cpu_frequency() { /** * */ -PN_uint64 DisplayInformation:: +uint64_t DisplayInformation:: get_cpu_time() { - PN_uint64 cpu_time; + uint64_t cpu_time; cpu_time = 0; if (_cpu_time_function) { @@ -593,7 +593,7 @@ get_cpu_time() { /** * */ -PN_uint64 DisplayInformation:: +uint64_t DisplayInformation:: get_maximum_cpu_frequency() { return _maximum_cpu_frequency; } @@ -601,7 +601,7 @@ get_maximum_cpu_frequency() { /** * */ -PN_uint64 DisplayInformation:: +uint64_t DisplayInformation:: get_current_cpu_frequency() { return _current_cpu_frequency; } diff --git a/panda/src/display/displayInformation.h b/panda/src/display/displayInformation.h index e8ddfd2a72..440e3e8ee8 100644 --- a/panda/src/display/displayInformation.h +++ b/panda/src/display/displayInformation.h @@ -69,18 +69,18 @@ PUBLISHED: int get_texture_memory(); void update_memory_information(); - PN_uint64 get_physical_memory(); - PN_uint64 get_available_physical_memory(); - PN_uint64 get_page_file_size(); - PN_uint64 get_available_page_file_size(); - PN_uint64 get_process_virtual_memory(); - PN_uint64 get_available_process_virtual_memory(); + uint64_t get_physical_memory(); + uint64_t get_available_physical_memory(); + uint64_t get_page_file_size(); + uint64_t get_available_page_file_size(); + uint64_t get_process_virtual_memory(); + uint64_t get_available_process_virtual_memory(); int get_memory_load(); - PN_uint64 get_page_fault_count(); - PN_uint64 get_process_memory(); - PN_uint64 get_peak_process_memory(); - PN_uint64 get_page_file_usage(); - PN_uint64 get_peak_page_file_usage(); + uint64_t get_page_fault_count(); + uint64_t get_process_memory(); + uint64_t get_peak_process_memory(); + uint64_t get_page_file_usage(); + uint64_t get_peak_page_file_usage(); int get_vendor_id(); int get_device_id(); @@ -103,11 +103,11 @@ PUBLISHED: unsigned int get_cpu_version_information(); unsigned int get_cpu_brand_index(); - PN_uint64 get_cpu_frequency(); - PN_uint64 get_cpu_time(); + uint64_t get_cpu_frequency(); + uint64_t get_cpu_time(); - PN_uint64 get_maximum_cpu_frequency(); - PN_uint64 get_current_cpu_frequency(); + uint64_t get_maximum_cpu_frequency(); + uint64_t get_current_cpu_frequency(); void update_cpu_frequency(int processor_number); int get_num_cpu_cores(); @@ -131,18 +131,18 @@ public: int _video_memory; int _texture_memory; - PN_uint64 _physical_memory; - PN_uint64 _available_physical_memory; - PN_uint64 _page_file_size; - PN_uint64 _available_page_file_size; - PN_uint64 _process_virtual_memory; - PN_uint64 _available_process_virtual_memory; + uint64_t _physical_memory; + uint64_t _available_physical_memory; + uint64_t _page_file_size; + uint64_t _available_page_file_size; + uint64_t _process_virtual_memory; + uint64_t _available_process_virtual_memory; - PN_uint64 _page_fault_count; - PN_uint64 _process_memory; - PN_uint64 _peak_process_memory; - PN_uint64 _page_file_usage; - PN_uint64 _peak_page_file_usage; + uint64_t _page_fault_count; + uint64_t _process_memory; + uint64_t _peak_process_memory; + uint64_t _page_file_usage; + uint64_t _peak_page_file_usage; int _memory_load; @@ -167,16 +167,16 @@ public: unsigned int _cpu_version_information; unsigned int _cpu_brand_index; - PN_uint64 _cpu_frequency; + uint64_t _cpu_frequency; - PN_uint64 _maximum_cpu_frequency; - PN_uint64 _current_cpu_frequency; + uint64_t _maximum_cpu_frequency; + uint64_t _current_cpu_frequency; int _num_cpu_cores; int _num_logical_cpus; void (*_get_memory_information_function) (DisplayInformation *display_information); - PN_uint64 (*_cpu_time_function) (void); + uint64_t (*_cpu_time_function) (void); int (*_update_cpu_frequency_function) (int processor_number, DisplayInformation *display_information); int _os_version_major; diff --git a/panda/src/downloader/downloadDb.cxx b/panda/src/downloader/downloadDb.cxx index 7e56101ffa..f2a734af17 100644 --- a/panda/src/downloader/downloadDb.cxx +++ b/panda/src/downloader/downloadDb.cxx @@ -23,13 +23,13 @@ // Defines // Written at the top of the file so we know this is a downloadDb -PN_uint32 DownloadDb::_magic_number = 0xfeedfeed; +uint32_t DownloadDb::_magic_number = 0xfeedfeed; // Written at the top of the file to signify we are not done writing to the // file yet. If you load a db with this magic number that means the previous // time it got written out was probably interrupted in the middle of the // write. -PN_uint32 DownloadDb::_bogus_magic_number = 0x11111111; +uint32_t DownloadDb::_bogus_magic_number = 0x11111111; static string @@ -505,7 +505,7 @@ add_file_record(PT(FileRecord) fr) { DownloadDb::Db:: Db() { // The head is a magic number and the number of multifiles in the db - _header_length = sizeof(_magic_number) + sizeof(PN_int32); + _header_length = sizeof(_magic_number) + sizeof(int32_t); } @@ -588,7 +588,7 @@ parse_header(const string &data) { // Make sure we have a good header DatagramIterator di(dg); - PN_uint32 magic_number = di.get_uint32(); + uint32_t magic_number = di.get_uint32(); downloader_cat.debug() << "Parsed magic number: " << magic_number << endl; // If the magic number is equal to the bogus magic number it signifies that @@ -608,7 +608,7 @@ parse_header(const string &data) { return -1; } - PN_int32 num_multifiles = di.get_int32(); + int32_t num_multifiles = di.get_int32(); downloader_cat.debug() << "Parsed number of multifiles: " << num_multifiles << endl; @@ -626,7 +626,7 @@ int DownloadDb::Db:: parse_record_header(const string &data) { Datagram dg(data); DatagramIterator di(dg); - PN_int32 record_length = di.get_int32(); + int32_t record_length = di.get_int32(); downloader_cat.spam() << "Parsed record header length: " << record_length << endl; @@ -645,7 +645,7 @@ parse_mfr(const string &data) { Datagram dg(data); DatagramIterator di(dg); - PN_int32 mfr_name_length = di.get_int32(); + int32_t mfr_name_length = di.get_int32(); mfr->_name = di.extract_bytes(mfr_name_length); mfr->_phase = di.get_float64(); mfr->_size = di.get_int32(); @@ -682,7 +682,7 @@ parse_fr(const string &data) { Datagram dg(data); DatagramIterator di(dg); - PN_int32 fr_name_length = di.get_int32(); + int32_t fr_name_length = di.get_int32(); fr->_name = di.extract_bytes(fr_name_length); // At one time, we stored files in the database with a backslash separator. @@ -725,7 +725,7 @@ read(StreamReader &sr, bool want_server_info) { for (int i = 0; i < num_multifiles; i++) { // The multifile record header is just one int which represents the size // of the record - int mfr_header_length = sizeof(PN_int32); + int mfr_header_length = sizeof(int32_t); string mfr_header = sr.extract_bytes(mfr_header_length); if (mfr_header.size() != (size_t)mfr_header_length) { @@ -755,7 +755,7 @@ read(StreamReader &sr, bool want_server_info) { for (int j = 0; j < mfr->_num_files; j++) { // The file record header is just one int which represents the size of // the record - int fr_header_length = sizeof(PN_int32); + int fr_header_length = sizeof(int32_t); // Read the header string fr_header = sr.extract_bytes(fr_header_length); @@ -802,11 +802,11 @@ write(StreamWriter &sw, bool want_server_info) { // Declare these outside the loop so we do not keep creating and deleting // them PN_float64 phase; - PN_int32 size; - PN_int32 status; - PN_int32 num_files; - PN_int32 name_length; - PN_int32 header_length; + int32_t size; + int32_t status; + int32_t num_files; + int32_t name_length; + int32_t header_length; // Iterate over the multifiles writing them to the stream pvector< PT(MultifileRecord) >::const_iterator i = _mfile_records.begin(); @@ -825,7 +825,7 @@ write(StreamWriter &sw, bool want_server_info) { (*i)->_name.length() + // Size of the name string sizeof(phase) + sizeof(size) + sizeof(status) + sizeof(num_files) + - sizeof(PN_uint32)*4; // Size of hash value + sizeof(uint32_t)*4; // Size of hash value // Add the length of this entire datagram sw.add_int32(header_length); diff --git a/panda/src/downloader/downloadDb.h b/panda/src/downloader/downloadDb.h index d46f3a1890..e1605f6295 100644 --- a/panda/src/downloader/downloadDb.h +++ b/panda/src/downloader/downloadDb.h @@ -156,7 +156,7 @@ public: int _size; int _status; HashVal _hash; - PN_int32 _num_files; + int32_t _num_files; FileRecords _file_records; }; @@ -182,7 +182,7 @@ public: bool write_header(ostream &write_stream); bool write_bogus_header(StreamWriter &sw); private: - PN_int32 _header_length; + int32_t _header_length; }; PUBLISHED: @@ -197,8 +197,8 @@ public: Db _server_db; // Magic number for knowing this is a download Db - static PN_uint32 _magic_number; - static PN_uint32 _bogus_magic_number; + static uint32_t _magic_number; + static uint32_t _bogus_magic_number; typedef pvector VectorHash; typedef pmap VersionMap; diff --git a/panda/src/express/config_express.cxx b/panda/src/express/config_express.cxx index 8bf5dff316..dd590fcb38 100644 --- a/panda/src/express/config_express.cxx +++ b/panda/src/express/config_express.cxx @@ -127,15 +127,15 @@ init_libexpress() { // This is a fine place to ensure that the numeric types have been chosen // correctly. - nassertv(sizeof(PN_int8) == 1 && sizeof(PN_uint8) == 1); - nassertv(sizeof(PN_int16) == 2 && sizeof(PN_uint16) == 2); - nassertv(sizeof(PN_int32) == 4 && sizeof(PN_uint32) == 4); - nassertv(sizeof(PN_int64) == 8 && sizeof(PN_uint64) == 8); + nassertv(sizeof(int8_t) == 1 && sizeof(uint8_t) == 1); + nassertv(sizeof(int16_t) == 2 && sizeof(uint16_t) == 2); + nassertv(sizeof(int32_t) == 4 && sizeof(uint32_t) == 4); + nassertv(sizeof(int64_t) == 8 && sizeof(uint64_t) == 8); nassertv(sizeof(PN_float32) == 4); nassertv(sizeof(PN_float64) == 8); // Also, ensure that we have the right endianness. - PN_uint32 word; + uint32_t word; memcpy(&word, "\1\2\3\4", 4); #ifdef WORDS_BIGENDIAN nassertv(word == 0x01020304); diff --git a/panda/src/express/datagram.I b/panda/src/express/datagram.I index ded1a56d09..0ad4007b26 100644 --- a/panda/src/express/datagram.I +++ b/panda/src/express/datagram.I @@ -106,7 +106,7 @@ add_bool(bool b) { * Adds a signed 8-bit integer to the datagram. */ INLINE void Datagram:: -add_int8(PN_int8 value) { +add_int8(int8_t value) { append_data(&value, 1); } @@ -114,7 +114,7 @@ add_int8(PN_int8 value) { * Adds an unsigned 8-bit integer to the datagram. */ INLINE void Datagram:: -add_uint8(PN_uint8 value) { +add_uint8(uint8_t value) { append_data(&value, 1); } @@ -122,7 +122,7 @@ add_uint8(PN_uint8 value) { * Adds a signed 16-bit integer to the datagram. */ INLINE void Datagram:: -add_int16(PN_int16 value) { +add_int16(int16_t value) { LittleEndian s(&value, sizeof(value)); append_data(s.get_data(), sizeof(value)); } @@ -131,7 +131,7 @@ add_int16(PN_int16 value) { * Adds a signed 32-bit integer to the datagram. */ INLINE void Datagram:: -add_int32(PN_int32 value) { +add_int32(int32_t value) { LittleEndian s(&value, sizeof(value)); append_data(s.get_data(), sizeof(value)); } @@ -140,7 +140,7 @@ add_int32(PN_int32 value) { * Adds a signed 64-bit integer to the datagram. */ INLINE void Datagram:: -add_int64(PN_int64 value) { +add_int64(int64_t value) { LittleEndian s(&value, sizeof(value)); append_data(s.get_data(), sizeof(value)); } @@ -149,7 +149,7 @@ add_int64(PN_int64 value) { * Adds an unsigned 16-bit integer to the datagram. */ INLINE void Datagram:: -add_uint16(PN_uint16 value) { +add_uint16(uint16_t value) { LittleEndian s(&value, sizeof(value)); append_data(s.get_data(), sizeof(value)); } @@ -158,7 +158,7 @@ add_uint16(PN_uint16 value) { * Adds an unsigned 32-bit integer to the datagram. */ INLINE void Datagram:: -add_uint32(PN_uint32 value) { +add_uint32(uint32_t value) { LittleEndian s(&value, sizeof(value)); append_data(s.get_data(), sizeof(value)); } @@ -167,7 +167,7 @@ add_uint32(PN_uint32 value) { * Adds an unsigned 64-bit integer to the datagram. */ INLINE void Datagram:: -add_uint64(PN_uint64 value) { +add_uint64(uint64_t value) { LittleEndian s(&value, sizeof(value)); append_data(s.get_data(), sizeof(value)); } @@ -209,7 +209,7 @@ add_stdfloat(PN_stdfloat value) { * Adds a signed 16-bit big-endian integer to the datagram. */ INLINE void Datagram:: -add_be_int16(PN_int16 value) { +add_be_int16(int16_t value) { BigEndian s(&value, sizeof(value)); append_data(s.get_data(), sizeof(value)); } @@ -218,7 +218,7 @@ add_be_int16(PN_int16 value) { * Adds a signed 32-bit big-endian integer to the datagram. */ INLINE void Datagram:: -add_be_int32(PN_int32 value) { +add_be_int32(int32_t value) { BigEndian s(&value, sizeof(value)); append_data(s.get_data(), sizeof(value)); } @@ -227,7 +227,7 @@ add_be_int32(PN_int32 value) { * Adds a signed 64-bit big-endian integer to the datagram. */ INLINE void Datagram:: -add_be_int64(PN_int64 value) { +add_be_int64(int64_t value) { BigEndian s(&value, sizeof(value)); append_data(s.get_data(), sizeof(value)); } @@ -236,7 +236,7 @@ add_be_int64(PN_int64 value) { * Adds an unsigned 16-bit big-endian integer to the datagram. */ INLINE void Datagram:: -add_be_uint16(PN_uint16 value) { +add_be_uint16(uint16_t value) { BigEndian s(&value, sizeof(value)); append_data(s.get_data(), sizeof(value)); } @@ -245,7 +245,7 @@ add_be_uint16(PN_uint16 value) { * Adds an unsigned 32-bit big-endian integer to the datagram. */ INLINE void Datagram:: -add_be_uint32(PN_uint32 value) { +add_be_uint32(uint32_t value) { BigEndian s(&value, sizeof(value)); append_data(s.get_data(), sizeof(value)); } @@ -254,7 +254,7 @@ add_be_uint32(PN_uint32 value) { * Adds an unsigned 64-bit big-endian integer to the datagram. */ INLINE void Datagram:: -add_be_uint64(PN_uint64 value) { +add_be_uint64(uint64_t value) { BigEndian s(&value, sizeof(value)); append_data(s.get_data(), sizeof(value)); } @@ -285,10 +285,10 @@ add_be_float64(PN_float64 value) { INLINE void Datagram:: add_string(const string &str) { // The max sendable length for a string is 2^16. - nassertv(str.length() <= (PN_uint16)0xffff); + nassertv(str.length() <= (uint16_t)0xffff); // Strings always are preceded by their length - add_uint16((PN_uint16)str.length()); + add_uint16((uint16_t)str.length()); // Add the string append_data(str); @@ -301,7 +301,7 @@ add_string(const string &str) { INLINE void Datagram:: add_string32(const string &str) { // Strings always are preceded by their length - add_uint32((PN_uint32)str.length()); + add_uint32((uint32_t)str.length()); // Add the string append_data(str); diff --git a/panda/src/express/datagram.cxx b/panda/src/express/datagram.cxx index cf0d442e14..1121953948 100644 --- a/panda/src/express/datagram.cxx +++ b/panda/src/express/datagram.cxx @@ -82,13 +82,13 @@ dump_hex(ostream &out, unsigned int indent) const { void Datagram:: add_wstring(const wstring &str) { // By convention, wstrings are marked with 32-bit lengths. - add_uint32((PN_uint32)str.length()); + add_uint32((uint32_t)str.length()); // Now append each character in the string. We store each code little- // endian, for no real good reason. wstring::const_iterator ci; for (ci = str.begin(); ci != str.end(); ++ci) { - add_uint16((PN_uint16)*ci); + add_uint16((uint16_t)*ci); } } diff --git a/panda/src/express/datagram.h b/panda/src/express/datagram.h index b599fca10b..c2cb3b4c8b 100644 --- a/panda/src/express/datagram.h +++ b/panda/src/express/datagram.h @@ -54,27 +54,27 @@ PUBLISHED: void dump_hex(ostream &out, unsigned int indent=0) const; INLINE void add_bool(bool value); - INLINE void add_int8(PN_int8 value); - INLINE void add_uint8(PN_uint8 value); + INLINE void add_int8(int8_t value); + INLINE void add_uint8(uint8_t value); // The default numeric packing is little-endian. - INLINE void add_int16(PN_int16 value); - INLINE void add_int32(PN_int32 value); - INLINE void add_int64(PN_int64 value); - INLINE void add_uint16(PN_uint16 value); - INLINE void add_uint32(PN_uint32 value); - INLINE void add_uint64(PN_uint64 value); + INLINE void add_int16(int16_t value); + INLINE void add_int32(int32_t value); + INLINE void add_int64(int64_t value); + INLINE void add_uint16(uint16_t value); + INLINE void add_uint32(uint32_t value); + INLINE void add_uint64(uint64_t value); INLINE void add_float32(PN_float32 value); INLINE void add_float64(PN_float64 value); INLINE void add_stdfloat(PN_stdfloat value); // These functions pack numbers big-endian, in case that's desired. - INLINE void add_be_int16(PN_int16 value); - INLINE void add_be_int32(PN_int32 value); - INLINE void add_be_int64(PN_int64 value); - INLINE void add_be_uint16(PN_uint16 value); - INLINE void add_be_uint32(PN_uint32 value); - INLINE void add_be_uint64(PN_uint64 value); + INLINE void add_be_int16(int16_t value); + INLINE void add_be_int32(int32_t value); + INLINE void add_be_int64(int64_t value); + INLINE void add_be_uint16(uint16_t value); + INLINE void add_be_uint32(uint32_t value); + INLINE void add_be_uint64(uint64_t value); INLINE void add_be_float32(PN_float32 value); INLINE void add_be_float64(PN_float64 value); diff --git a/panda/src/express/datagramIterator.I b/panda/src/express/datagramIterator.I index 0e4fff93f4..6f85656b47 100644 --- a/panda/src/express/datagramIterator.I +++ b/panda/src/express/datagramIterator.I @@ -75,14 +75,14 @@ get_bool() { /** * Extracts a signed 8-bit integer. */ -INLINE PN_int8 DatagramIterator:: +INLINE int8_t DatagramIterator:: get_int8() { nassertr(_datagram != (const Datagram *)NULL, 0); // Avoid reading junk data off the end of the datagram: nassertr(_current_index < _datagram->get_length(), 0); // Get the Data: const char *ptr = (const char *)_datagram->get_data(); - PN_int8 tempvar = (PN_int8)ptr[_current_index]; + int8_t tempvar = (int8_t)ptr[_current_index]; ++_current_index; return tempvar; @@ -91,14 +91,14 @@ get_int8() { /** * Extracts an unsigned 8-bit integer. */ -INLINE PN_uint8 DatagramIterator:: +INLINE uint8_t DatagramIterator:: get_uint8() { nassertr(_datagram != (const Datagram *)NULL, 0); // Avoid reading junk data off the end of the datagram: nassertr(_current_index < _datagram->get_length(), 0); // Get the Data: const char *ptr = (const char *)_datagram->get_data(); - PN_uint8 tempvar = (PN_uint8)ptr[_current_index]; + uint8_t tempvar = (uint8_t)ptr[_current_index]; ++_current_index; return tempvar; @@ -107,12 +107,12 @@ get_uint8() { /** * Extracts a signed 16-bit integer. */ -INLINE PN_int16 DatagramIterator:: +INLINE int16_t DatagramIterator:: get_int16() { nassertr(_datagram != (const Datagram *)NULL, 0); nassertr(_current_index < _datagram->get_length(), 0); - PN_int16 tempvar; + int16_t tempvar; // Avoid reading junk data off the end of the datagram: nassertr(_current_index + sizeof(tempvar) <= _datagram->get_length(), 0); // Get the Data: @@ -126,12 +126,12 @@ get_int16() { /** * Extracts a signed 32-bit integer. */ -INLINE PN_int32 DatagramIterator:: +INLINE int32_t DatagramIterator:: get_int32() { nassertr(_datagram != (const Datagram *)NULL, 0); nassertr(_current_index < _datagram->get_length(), 0); - PN_int32 tempvar; + int32_t tempvar; // Avoid reading junk data off the end of the datagram: nassertr(_current_index + sizeof(tempvar) <= _datagram->get_length(), 0); // Get the Data: @@ -145,12 +145,12 @@ get_int32() { /** * Extracts a signed 64-bit integer. */ -INLINE PN_int64 DatagramIterator:: +INLINE int64_t DatagramIterator:: get_int64() { nassertr(_datagram != (const Datagram *)NULL, 0); nassertr(_current_index < _datagram->get_length(), 0); - PN_int64 tempvar; + int64_t tempvar; // Avoid reading junk data off the end of the datagram: nassertr(_current_index + sizeof(tempvar) <= _datagram->get_length(), 0); // Get the Data: @@ -164,12 +164,12 @@ get_int64() { /** * Extracts an unsigned 16-bit integer. */ -INLINE PN_uint16 DatagramIterator:: +INLINE uint16_t DatagramIterator:: get_uint16() { nassertr(_datagram != (const Datagram *)NULL, 0); nassertr(_current_index < _datagram->get_length(), 0); - PN_uint16 tempvar; + uint16_t tempvar; // Avoid reading junk data off the end of the datagram: nassertr(_current_index + sizeof(tempvar) <= _datagram->get_length(), 0); // Get the Data: @@ -183,12 +183,12 @@ get_uint16() { /** * Extracts an unsigned 32-bit integer. */ -INLINE PN_uint32 DatagramIterator:: +INLINE uint32_t DatagramIterator:: get_uint32() { nassertr(_datagram != (const Datagram *)NULL, 0); nassertr(_current_index < _datagram->get_length(), 0); - PN_uint32 tempvar; + uint32_t tempvar; // Avoid reading junk data off the end of the datagram: nassertr(_current_index + sizeof(tempvar) <= _datagram->get_length(), 0); // Get the Data: @@ -202,12 +202,12 @@ get_uint32() { /** * Extracts an unsigned 64-bit integer. */ -INLINE PN_uint64 DatagramIterator:: +INLINE uint64_t DatagramIterator:: get_uint64() { nassertr(_datagram != (const Datagram *)NULL, 0); nassertr(_current_index < _datagram->get_length(), 0); - PN_uint64 tempvar; + uint64_t tempvar; // Avoid reading junk data off the end of the datagram: nassertr(_current_index + sizeof(tempvar) <= _datagram->get_length(), 0); // Get the Data: @@ -274,12 +274,12 @@ get_stdfloat() { /** * Extracts a signed 16-bit big-endian integer. */ -INLINE PN_int16 DatagramIterator:: +INLINE int16_t DatagramIterator:: get_be_int16() { nassertr(_datagram != (const Datagram *)NULL, 0); nassertr(_current_index < _datagram->get_length(), 0); - PN_int16 tempvar; + int16_t tempvar; // Avoid reading junk data off the end of the datagram: nassertr(_current_index + sizeof(tempvar) <= _datagram->get_length(), 0); // Get the Data: @@ -293,12 +293,12 @@ get_be_int16() { /** * Extracts a signed 32-bit big-endian integer. */ -INLINE PN_int32 DatagramIterator:: +INLINE int32_t DatagramIterator:: get_be_int32() { nassertr(_datagram != (const Datagram *)NULL, 0); nassertr(_current_index < _datagram->get_length(), 0); - PN_int32 tempvar; + int32_t tempvar; // Avoid reading junk data off the end of the datagram: nassertr(_current_index + sizeof(tempvar) <= _datagram->get_length(), 0); // Get the Data: @@ -312,12 +312,12 @@ get_be_int32() { /** * Extracts a signed 64-bit big-endian integer. */ -INLINE PN_int64 DatagramIterator:: +INLINE int64_t DatagramIterator:: get_be_int64() { nassertr(_datagram != (const Datagram *)NULL, 0); nassertr(_current_index < _datagram->get_length(), 0); - PN_int64 tempvar; + int64_t tempvar; // Avoid reading junk data off the end of the datagram: nassertr(_current_index + sizeof(tempvar) <= _datagram->get_length(), 0); // Get the Data: @@ -331,12 +331,12 @@ get_be_int64() { /** * Extracts an unsigned 16-bit big-endian integer. */ -INLINE PN_uint16 DatagramIterator:: +INLINE uint16_t DatagramIterator:: get_be_uint16() { nassertr(_datagram != (const Datagram *)NULL, 0); nassertr(_current_index < _datagram->get_length(), 0); - PN_uint16 tempvar; + uint16_t tempvar; // Avoid reading junk data off the end of the datagram: nassertr(_current_index + sizeof(tempvar) <= _datagram->get_length(), 0); // Get the Data: @@ -350,12 +350,12 @@ get_be_uint16() { /** * Extracts an unsigned 32-bit big-endian integer. */ -INLINE PN_uint32 DatagramIterator:: +INLINE uint32_t DatagramIterator:: get_be_uint32() { nassertr(_datagram != (const Datagram *)NULL, 0); nassertr(_current_index < _datagram->get_length(), 0); - PN_uint32 tempvar; + uint32_t tempvar; // Avoid reading junk data off the end of the datagram: nassertr(_current_index + sizeof(tempvar) <= _datagram->get_length(), 0); // Get the Data: @@ -369,12 +369,12 @@ get_be_uint32() { /** * Extracts an unsigned 64-bit big-endian integer. */ -INLINE PN_uint64 DatagramIterator:: +INLINE uint64_t DatagramIterator:: get_be_uint64() { nassertr(_datagram != (const Datagram *)NULL, 0); nassertr(_current_index < _datagram->get_length(), 0); - PN_uint64 tempvar; + uint64_t tempvar; // Avoid reading junk data off the end of the datagram: nassertr(_current_index + sizeof(tempvar) <= _datagram->get_length(), 0); // Get the Data: diff --git a/panda/src/express/datagramIterator.cxx b/panda/src/express/datagramIterator.cxx index 3dca573cad..22ac9ecb19 100644 --- a/panda/src/express/datagramIterator.cxx +++ b/panda/src/express/datagramIterator.cxx @@ -22,7 +22,7 @@ TypeHandle DatagramIterator::_type_handle; string DatagramIterator:: get_string() { // First, get the length of the string - PN_uint16 s_len = get_uint16(); + uint16_t s_len = get_uint16(); nassertr(_datagram != (const Datagram *)NULL, ""); nassertr(_current_index + s_len <= _datagram->get_length(), ""); @@ -41,7 +41,7 @@ get_string() { string DatagramIterator:: get_string32() { // First, get the length of the string - PN_uint32 s_len = get_uint32(); + uint32_t s_len = get_uint32(); nassertr(_datagram != (const Datagram *)NULL, ""); nassertr(_current_index + s_len <= _datagram->get_length(), ""); @@ -100,7 +100,7 @@ get_fixed_string(size_t size) { wstring DatagramIterator:: get_wstring() { // First, get the length of the string - PN_uint32 s_len = get_uint32(); + uint32_t s_len = get_uint32(); nassertr(_datagram != (const Datagram *)NULL, wstring()); nassertr(_current_index + s_len * 2 <= _datagram->get_length(), wstring()); diff --git a/panda/src/express/datagramIterator.h b/panda/src/express/datagramIterator.h index a6d1dc0b6e..b3a94c6670 100644 --- a/panda/src/express/datagramIterator.h +++ b/panda/src/express/datagramIterator.h @@ -36,25 +36,25 @@ PUBLISHED: INLINE ~DatagramIterator(); INLINE bool get_bool(); - INLINE PN_int8 get_int8(); - INLINE PN_uint8 get_uint8(); + INLINE int8_t get_int8(); + INLINE uint8_t get_uint8(); - INLINE PN_int16 get_int16(); - INLINE PN_int32 get_int32(); - INLINE PN_int64 get_int64(); - INLINE PN_uint16 get_uint16(); - INLINE PN_uint32 get_uint32(); - INLINE PN_uint64 get_uint64(); + INLINE int16_t get_int16(); + INLINE int32_t get_int32(); + INLINE int64_t get_int64(); + INLINE uint16_t get_uint16(); + INLINE uint32_t get_uint32(); + INLINE uint64_t get_uint64(); INLINE PN_float32 get_float32(); INLINE PN_float64 get_float64(); INLINE PN_stdfloat get_stdfloat(); - INLINE PN_int16 get_be_int16(); - INLINE PN_int32 get_be_int32(); - INLINE PN_int64 get_be_int64(); - INLINE PN_uint16 get_be_uint16(); - INLINE PN_uint32 get_be_uint32(); - INLINE PN_uint64 get_be_uint64(); + INLINE int16_t get_be_int16(); + INLINE int32_t get_be_int32(); + INLINE int64_t get_be_int64(); + INLINE uint16_t get_be_uint16(); + INLINE uint32_t get_be_uint32(); + INLINE uint64_t get_be_uint64(); INLINE PN_float32 get_be_float32(); INLINE PN_float64 get_be_float64(); diff --git a/panda/src/express/hashVal.cxx b/panda/src/express/hashVal.cxx index 34a2a3c116..7d52dc5a5e 100644 --- a/panda/src/express/hashVal.cxx +++ b/panda/src/express/hashVal.cxx @@ -258,7 +258,7 @@ hash_buffer(const char *buffer, int length) { * at the indicated buffer and the following 8 positions. */ void HashVal:: -encode_hex(PN_uint32 val, char *buffer) { +encode_hex(uint32_t val, char *buffer) { buffer[0] = tohex(val >> 28); buffer[1] = tohex(val >> 24); buffer[2] = tohex(val >> 20); @@ -273,7 +273,7 @@ encode_hex(PN_uint32 val, char *buffer) { * Decodes the indicated eight-digit hex string into an unsigned integer. */ void HashVal:: -decode_hex(const char *buffer, PN_uint32 &val) { +decode_hex(const char *buffer, uint32_t &val) { unsigned int bytes[8]; for (int i = 0; i < 8; i++) { bytes[i] = fromhex(buffer[i]); diff --git a/panda/src/express/hashVal.h b/panda/src/express/hashVal.h index 3d29fa87af..1002669e43 100644 --- a/panda/src/express/hashVal.h +++ b/panda/src/express/hashVal.h @@ -72,12 +72,12 @@ PUBLISHED: #endif // HAVE_OPENSSL private: - static void encode_hex(PN_uint32 val, char *buffer); - static void decode_hex(const char *buffer, PN_uint32 &val); + static void encode_hex(uint32_t val, char *buffer); + static void decode_hex(const char *buffer, uint32_t &val); INLINE static char tohex(unsigned int nibble); INLINE static unsigned int fromhex(char digit); - PN_uint32 _hv[4]; + uint32_t _hv[4]; }; INLINE ostream &operator << (ostream &out, const HashVal &hv); diff --git a/panda/src/express/memoryUsage.cxx b/panda/src/express/memoryUsage.cxx index 7c689fd1cd..1aea4fe825 100644 --- a/panda/src/express/memoryUsage.cxx +++ b/panda/src/express/memoryUsage.cxx @@ -460,7 +460,7 @@ MemoryUsage(const MemoryHook ©) : MemoryHook(copy) { _count_memory_usage = false; - PN_int64 max_heap_size = ConfigVariableInt64 + int64_t max_heap_size = ConfigVariableInt64 ("max-heap-size", 0, PRC_DESC("If this is nonzero, it is the maximum number of bytes expected " "to be allocated on the heap before we enter report-memory-usage " diff --git a/panda/src/express/multifile.cxx b/panda/src/express/multifile.cxx index 21befb49dc..b0a1952a6c 100644 --- a/panda/src/express/multifile.cxx +++ b/panda/src/express/multifile.cxx @@ -860,7 +860,7 @@ add_signature(const Multifile::CertChain &cert_chain, EVP_PKEY *pkey) { // Now encode that list of certs to a stream in DER form. stringstream der_stream; StreamWriter der_writer(der_stream); - der_writer.add_uint32((PN_uint32)cert_chain.size()); + der_writer.add_uint32((uint32_t)cert_chain.size()); CertChain::const_iterator ci; for (ci = cert_chain.begin(); ci != cert_chain.end(); ++ci) { diff --git a/panda/src/express/patchfile.cxx b/panda/src/express/patchfile.cxx index b43e58456c..73b04139a0 100644 --- a/panda/src/express/patchfile.cxx +++ b/panda/src/express/patchfile.cxx @@ -61,19 +61,19 @@ const int _v1_header_length = 4 + 2 + 4 + 16 + 4 + 16; */ // Defines -const PN_uint32 Patchfile::_v0_magic_number = 0xfeebfaab; -const PN_uint32 Patchfile::_magic_number = 0xfeebfaac; +const uint32_t Patchfile::_v0_magic_number = 0xfeebfaab; +const uint32_t Patchfile::_magic_number = 0xfeebfaac; // Created version 1 on 11202 to store length and MD5 of original file. To // version 2 on 11202 to store copy offsets as relative. -const PN_uint16 Patchfile::_current_version = 2; +const uint16_t Patchfile::_current_version = 2; -const PN_uint32 Patchfile::_HASH_BITS = 24; -const PN_uint32 Patchfile::_HASHTABLESIZE = PN_uint32(1) << Patchfile::_HASH_BITS; -const PN_uint32 Patchfile::_DEFAULT_FOOTPRINT_LENGTH = 9; // this produced the smallest patch file for libpanda.dll when tested, 12/20/2000 -const PN_uint32 Patchfile::_NULL_VALUE = PN_uint32(0) - 1; -const PN_uint32 Patchfile::_MAX_RUN_LENGTH = (PN_uint32(1) << 16) - 1; -const PN_uint32 Patchfile::_HASH_MASK = (PN_uint32(1) << Patchfile::_HASH_BITS) - 1; +const uint32_t Patchfile::_HASH_BITS = 24; +const uint32_t Patchfile::_HASHTABLESIZE = uint32_t(1) << Patchfile::_HASH_BITS; +const uint32_t Patchfile::_DEFAULT_FOOTPRINT_LENGTH = 9; // this produced the smallest patch file for libpanda.dll when tested, 12/20/2000 +const uint32_t Patchfile::_NULL_VALUE = uint32_t(0) - 1; +const uint32_t Patchfile::_MAX_RUN_LENGTH = (uint32_t(1) << 16) - 1; +const uint32_t Patchfile::_HASH_MASK = (uint32_t(1) << Patchfile::_HASH_BITS) - 1; /** * Create a patch file and initializes internal data @@ -118,7 +118,7 @@ init(PT(Buffer) buffer) { */ Patchfile:: ~Patchfile() { - if (_hash_table != (PN_uint32 *)NULL) { + if (_hash_table != (uint32_t *)NULL) { PANDA_FREE_ARRAY(_hash_table); } @@ -261,9 +261,9 @@ run() { // Now patch the file using the given buffer int buflen; int bytes_read; - PN_uint16 ADD_length; - PN_uint16 COPY_length; - PN_int32 COPY_offset; + uint16_t ADD_length; + uint16_t COPY_length; + int32_t COPY_offset; if (_initiated == false) { express_cat.error() @@ -305,9 +305,9 @@ run() { << _write_stream.tellp() << ")" << endl; } - PN_uint32 bytes_left = (PN_uint32)ADD_length; + uint32_t bytes_left = (uint32_t)ADD_length; while (bytes_left > 0) { - PN_uint32 bytes_this_time = (PN_uint32) min(bytes_left, (PN_uint32) buflen); + uint32_t bytes_this_time = (uint32_t) min(bytes_left, (uint32_t) buflen); _patch_stream->read(_buffer->_buffer, bytes_this_time); if (_patch_stream->fail()) { express_cat.error() @@ -368,10 +368,10 @@ run() { } // read the copy bytes from original file and write them to output - PN_uint32 bytes_left = (PN_uint32)COPY_length; + uint32_t bytes_left = (uint32_t)COPY_length; while (bytes_left > 0) { - PN_uint32 bytes_this_time = (PN_uint32) min(bytes_left, (PN_uint32) buflen); + uint32_t bytes_this_time = (uint32_t) min(bytes_left, (uint32_t) buflen); _origfile_stream->read(_buffer->_buffer, bytes_this_time); if (_origfile_stream->fail()) { express_cat.error() @@ -535,7 +535,7 @@ internal_read_header(const Filename &patch_file) { // check the magic number nassertr(_buffer->get_length() >= _v0_header_length, false); - PN_uint32 magic_number = patch_reader.get_uint32(); + uint32_t magic_number = patch_reader.get_uint32(); if (magic_number != _magic_number && magic_number != _v0_magic_number) { express_cat.error() << "Invalid patch file: " << _patch_file << endl; @@ -555,7 +555,7 @@ internal_read_header(const Filename &patch_file) { if (_version_number >= 1) { // Get the length of the source file. - /*PN_uint32 source_file_length =*/ patch_reader.get_uint32(); + /*uint32_t source_file_length =*/ patch_reader.get_uint32(); // get the MD5 of the source file. _MD5_ofSource.read_stream(patch_reader); @@ -578,22 +578,22 @@ internal_read_header(const Filename &patch_file) { /** * */ -PN_uint32 Patchfile:: +uint32_t Patchfile:: calc_hash(const char *buffer) { #ifdef USE_MD5_FOR_HASHTABLE_INDEX_VALUES HashVal hash; hash.hash_buffer(buffer, _footprint_length); - // cout << PN_uint16(hash.get_value(0)) << " "; + // cout << uint16_t(hash.get_value(0)) << " "; - return PN_uint16(hash.get_value(0)); + return uint16_t(hash.get_value(0)); #else - PN_uint32 hash_value = 0; + uint32_t hash_value = 0; for(int i = 0; i < (int)_footprint_length; i++) { // this is probably not such a good hash. to be replaced --> TRIED MD5, // was not worth it for the execution-time hit on 800Mhz PC - hash_value ^= PN_uint32(*buffer) << ((i * 2) % Patchfile::_HASH_BITS); + hash_value ^= uint32_t(*buffer) << ((i * 2) % Patchfile::_HASH_BITS); buffer++; } @@ -624,10 +624,10 @@ calc_hash(const char *buffer) { * can rapidly produce a list of offsets that all have the same footprint. */ void Patchfile:: -build_hash_link_tables(const char *buffer_orig, PN_uint32 length_orig, - PN_uint32 *hash_table, PN_uint32 *link_table) { +build_hash_link_tables(const char *buffer_orig, uint32_t length_orig, + uint32_t *hash_table, uint32_t *link_table) { - PN_uint32 i; + uint32_t i; // clear hash table for(i = 0; i < _HASHTABLESIZE; i++) { @@ -644,7 +644,7 @@ build_hash_link_tables(const char *buffer_orig, PN_uint32 length_orig, // run through original file and hash each footprint for(i = 0; i < (length_orig - _footprint_length); i++) { - PN_uint32 hash_value = calc_hash(&buffer_orig[i]); + uint32_t hash_value = calc_hash(&buffer_orig[i]); // we must now store this file index in the hash table at the offset of // the hash value @@ -669,7 +669,7 @@ build_hash_link_tables(const char *buffer_orig, PN_uint32 length_orig, hash_table[hash_value] = i; } else { // hash entry is taken, go to the link table - PN_uint32 link_offset = hash_table[hash_value]; + uint32_t link_offset = hash_table[hash_value]; while (_NULL_VALUE != link_table[link_offset]) { link_offset = link_table[link_offset]; @@ -684,9 +684,9 @@ build_hash_link_tables(const char *buffer_orig, PN_uint32 length_orig, * * This function calculates the length of a match between two strings of bytes */ -PN_uint32 Patchfile:: -calc_match_length(const char* buf1, const char* buf2, PN_uint32 max_length, - PN_uint32 min_length) { +uint32_t Patchfile:: +calc_match_length(const char* buf1, const char* buf2, uint32_t max_length, + uint32_t min_length) { // early out: look ahead and sample the end of the minimum range if (min_length > 2) { if (min_length >= max_length) @@ -698,7 +698,7 @@ calc_match_length(const char* buf1, const char* buf2, PN_uint32 max_length, } } - PN_uint32 length = 0; + uint32_t length = 0; while ((length < max_length) && (*buf1 == *buf2)) { buf1++, buf2++, length++; } @@ -711,15 +711,15 @@ calc_match_length(const char* buf1, const char* buf2, PN_uint32 max_length, * matches a string in the new file. */ void Patchfile:: -find_longest_match(PN_uint32 new_pos, PN_uint32 ©_pos, PN_uint16 ©_length, - PN_uint32 *hash_table, PN_uint32 *link_table, const char* buffer_orig, - PN_uint32 length_orig, const char* buffer_new, PN_uint32 length_new) { +find_longest_match(uint32_t new_pos, uint32_t ©_pos, uint16_t ©_length, + uint32_t *hash_table, uint32_t *link_table, const char* buffer_orig, + uint32_t length_orig, const char* buffer_new, uint32_t length_new) { // set length to a safe value copy_length = 0; // get offset of matching string (in orig file) from hash table - PN_uint32 hash_value = calc_hash(&buffer_new[new_pos]); + uint32_t hash_value = calc_hash(&buffer_new[new_pos]); // if no match, bail if (_NULL_VALUE == hash_table[hash_value]) @@ -728,7 +728,7 @@ find_longest_match(PN_uint32 new_pos, PN_uint32 ©_pos, PN_uint16 ©_lengt copy_pos = hash_table[hash_value]; // calc match length - copy_length = (PN_uint16)calc_match_length(&buffer_new[new_pos], + copy_length = (uint16_t)calc_match_length(&buffer_new[new_pos], &buffer_orig[copy_pos], min(min((length_new - new_pos), (length_orig - copy_pos)), @@ -736,12 +736,12 @@ find_longest_match(PN_uint32 new_pos, PN_uint32 ©_pos, PN_uint16 ©_lengt 0); // run through link table, see if we find any longer matches - PN_uint32 match_offset; - PN_uint16 match_length; + uint32_t match_offset; + uint16_t match_length; match_offset = link_table[copy_pos]; while (match_offset != _NULL_VALUE) { - match_length = (PN_uint16)calc_match_length(&buffer_new[new_pos], + match_length = (uint16_t)calc_match_length(&buffer_new[new_pos], &buffer_orig[match_offset], min(min((length_new - new_pos), (length_orig - match_offset)), @@ -763,8 +763,8 @@ find_longest_match(PN_uint32 new_pos, PN_uint32 ©_pos, PN_uint16 ©_lengt * */ void Patchfile:: -emit_ADD(ostream &write_stream, PN_uint32 length, const char* buffer) { - nassertv(length == (PN_uint16)length); //we only write a uint16 +emit_ADD(ostream &write_stream, uint32_t length, const char* buffer) { + nassertv(length == (uint16_t)length); //we only write a uint16 if (express_cat.is_spam()) { express_cat.spam() @@ -773,11 +773,11 @@ emit_ADD(ostream &write_stream, PN_uint32 length, const char* buffer) { // write ADD length StreamWriter patch_writer(write_stream); - patch_writer.add_uint16((PN_uint16)length); + patch_writer.add_uint16((uint16_t)length); // if there are bytes to add, add them if (length > 0) { - patch_writer.append_data(buffer, (PN_uint16)length); + patch_writer.append_data(buffer, (uint16_t)length); } _add_pos += length; @@ -787,10 +787,10 @@ emit_ADD(ostream &write_stream, PN_uint32 length, const char* buffer) { * */ void Patchfile:: -emit_COPY(ostream &write_stream, PN_uint32 length, PN_uint32 copy_pos) { - nassertv(length == (PN_uint16)length); //we only write a uint16 +emit_COPY(ostream &write_stream, uint32_t length, uint32_t copy_pos) { + nassertv(length == (uint16_t)length); //we only write a uint16 - PN_int32 offset = (int)copy_pos - (int)_last_copy_pos; + int32_t offset = (int)copy_pos - (int)_last_copy_pos; if (express_cat.is_spam()) { express_cat.spam() << "COPY: " << length << " bytes from offset " << offset @@ -799,9 +799,9 @@ emit_COPY(ostream &write_stream, PN_uint32 length, PN_uint32 copy_pos) { // write COPY length StreamWriter patch_writer(write_stream); - patch_writer.add_uint16((PN_uint16)length); + patch_writer.add_uint16((uint16_t)length); - if ((PN_uint16)length != 0) { + if ((uint16_t)length != 0) { // write COPY offset patch_writer.add_int32(offset); _last_copy_pos = copy_pos + length; @@ -816,14 +816,14 @@ emit_COPY(ostream &write_stream, PN_uint32 length, PN_uint32 copy_pos) { */ void Patchfile:: emit_add_and_copy(ostream &write_stream, - PN_uint32 add_length, const char *add_buffer, - PN_uint32 copy_length, PN_uint32 copy_pos) { + uint32_t add_length, const char *add_buffer, + uint32_t copy_length, uint32_t copy_pos) { if (add_length == 0 && copy_length == 0) { // Don't accidentally emit a termination code. return; } - static const PN_uint16 max_write = 65535; + static const uint16_t max_write = 65535; while (add_length > max_write) { // Overflow. This chunk is too large to fit into a single ADD block, so // we have to write it as multiple ADDs. @@ -852,8 +852,8 @@ emit_add_and_copy(ostream &write_stream, */ void Patchfile:: cache_add_and_copy(ostream &write_stream, - PN_uint32 add_length, const char *add_buffer, - PN_uint32 copy_length, PN_uint32 copy_pos) { + uint32_t add_length, const char *add_buffer, + uint32_t copy_length, uint32_t copy_pos) { if (add_length != 0) { if (_cache_copy_length != 0) { // Have to flush. @@ -912,7 +912,7 @@ write_header(ostream &write_stream, stream_orig.seekg(0, ios::end); streampos source_file_length = stream_orig.tellg(); - patch_writer.add_uint32((PN_uint32)source_file_length); + patch_writer.add_uint32((uint32_t)source_file_length); // calc MD5 of original file _MD5_ofSource.hash_stream(stream_orig); @@ -926,7 +926,7 @@ write_header(ostream &write_stream, stream_new.seekg(0, ios::end); streampos result_file_length = stream_new.tellg(); - patch_writer.add_uint32((PN_uint32)result_file_length); + patch_writer.add_uint32((uint32_t)result_file_length); // calc MD5 of resultant patched file _MD5_ofResult.hash_stream(stream_new); @@ -958,12 +958,12 @@ write_terminator(ostream &write_stream) { */ bool Patchfile:: compute_file_patches(ostream &write_stream, - PN_uint32 offset_orig, PN_uint32 offset_new, + uint32_t offset_orig, uint32_t offset_new, istream &stream_orig, istream &stream_new) { // read in original file stream_orig.seekg(0, ios::end); nassertr(stream_orig, false); - PN_uint32 source_file_length = stream_orig.tellg(); + uint32_t source_file_length = stream_orig.tellg(); if (express_cat.is_debug()) { express_cat.debug() << "Allocating " << source_file_length << " bytes to read orig\n"; @@ -975,7 +975,7 @@ compute_file_patches(ostream &write_stream, // read in new file stream_new.seekg(0, ios::end); - PN_uint32 result_file_length = stream_new.tellg(); + uint32_t result_file_length = stream_new.tellg(); nassertr(stream_new, false); if (express_cat.is_debug()) { express_cat.debug() @@ -987,12 +987,12 @@ compute_file_patches(ostream &write_stream, stream_new.read(buffer_new, result_file_length); // allocate hashlink tables - if (_hash_table == (PN_uint32 *)NULL) { + if (_hash_table == (uint32_t *)NULL) { if (express_cat.is_debug()) { express_cat.debug() << "Allocating hashtable of size " << _HASHTABLESIZE << " * 4\n"; } - _hash_table = (PN_uint32 *)PANDA_MALLOC_ARRAY(_HASHTABLESIZE * sizeof(PN_uint32)); + _hash_table = (uint32_t *)PANDA_MALLOC_ARRAY(_HASHTABLESIZE * sizeof(uint32_t)); } if (express_cat.is_debug()) { @@ -1000,23 +1000,23 @@ compute_file_patches(ostream &write_stream, << "Allocating linktable of size " << source_file_length << " * 4\n"; } - PN_uint32 *link_table = (PN_uint32 *)PANDA_MALLOC_ARRAY(source_file_length * sizeof(PN_uint32)); + uint32_t *link_table = (uint32_t *)PANDA_MALLOC_ARRAY(source_file_length * sizeof(uint32_t)); // build hash and link tables for original file build_hash_link_tables(buffer_orig, source_file_length, _hash_table, link_table); // run through new file - PN_uint32 new_pos = 0; - PN_uint32 start_pos = new_pos; // this is the position for the start of ADD operations + uint32_t new_pos = 0; + uint32_t start_pos = new_pos; // this is the position for the start of ADD operations - if(((PN_uint32) result_file_length) >= _footprint_length) + if(((uint32_t) result_file_length) >= _footprint_length) { while (new_pos < (result_file_length - _footprint_length)) { // find best match for current position - PN_uint32 COPY_pos; - PN_uint16 COPY_length; + uint32_t COPY_pos; + uint16_t COPY_length; find_longest_match(new_pos, COPY_pos, COPY_length, _hash_table, link_table, buffer_orig, source_file_length, buffer_new, result_file_length); @@ -1036,7 +1036,7 @@ compute_file_patches(ostream &write_stream, } cache_add_and_copy(write_stream, num_skipped, &buffer_new[start_pos], COPY_length, COPY_pos + offset_orig); - new_pos += (PN_uint32)COPY_length; + new_pos += (uint32_t)COPY_length; start_pos = new_pos; } } @@ -1053,7 +1053,7 @@ compute_file_patches(ostream &write_stream, if (start_pos != result_file_length) { // emit ADD for all remaining bytes - PN_uint32 remaining_bytes = result_file_length - start_pos; + uint32_t remaining_bytes = result_file_length - start_pos; cache_add_and_copy(write_stream, remaining_bytes, &buffer_new[start_pos], 0, 0); start_pos += remaining_bytes; @@ -1075,7 +1075,7 @@ compute_file_patches(ostream &write_stream, */ bool Patchfile:: compute_mf_patches(ostream &write_stream, - PN_uint32 offset_orig, PN_uint32 offset_new, + uint32_t offset_orig, uint32_t offset_new, istream &stream_orig, istream &stream_new) { Multifile mf_orig, mf_new; IStreamWrapper stream_origw(stream_orig); @@ -1219,7 +1219,7 @@ read_tar(TarDef &tar, istream &stream) { */ bool Patchfile:: compute_tar_patches(ostream &write_stream, - PN_uint32 offset_orig, PN_uint32 offset_new, + uint32_t offset_orig, uint32_t offset_new, istream &stream_orig, istream &stream_new, TarDef &tar_orig, TarDef &tar_new) { @@ -1424,7 +1424,7 @@ build(Filename file_orig, Filename file_new, Filename patch_name) { bool Patchfile:: do_compute_patches(const Filename &file_orig, const Filename &file_new, ostream &write_stream, - PN_uint32 offset_orig, PN_uint32 offset_new, + uint32_t offset_orig, uint32_t offset_new, istream &stream_orig, istream &stream_new) { nassertr(_add_pos + _cache_add_data.size() + _cache_copy_length == offset_new, false); @@ -1505,7 +1505,7 @@ do_compute_patches(const Filename &file_orig, const Filename &file_new, */ bool Patchfile:: patch_subfile(ostream &write_stream, - PN_uint32 offset_orig, PN_uint32 offset_new, + uint32_t offset_orig, uint32_t offset_new, const Filename &filename, IStreamWrapper &stream_orig, streampos orig_start, streampos orig_end, IStreamWrapper &stream_new, streampos new_start, streampos new_end) { diff --git a/panda/src/express/patchfile.h b/panda/src/express/patchfile.h index eee70c0f21..c67b5a039e 100644 --- a/panda/src/express/patchfile.h +++ b/panda/src/express/patchfile.h @@ -79,23 +79,23 @@ private: private: // stuff for the build operation - void build_hash_link_tables(const char *buffer_orig, PN_uint32 length_orig, - PN_uint32 *hash_table, PN_uint32 *link_table); - PN_uint32 calc_hash(const char *buffer); - void find_longest_match(PN_uint32 new_pos, PN_uint32 ©_pos, PN_uint16 ©_length, - PN_uint32 *hash_table, PN_uint32 *link_table, const char* buffer_orig, - PN_uint32 length_orig, const char* buffer_new, PN_uint32 length_new); - PN_uint32 calc_match_length(const char* buf1, const char* buf2, PN_uint32 max_length, - PN_uint32 min_length); + void build_hash_link_tables(const char *buffer_orig, uint32_t length_orig, + uint32_t *hash_table, uint32_t *link_table); + uint32_t calc_hash(const char *buffer); + void find_longest_match(uint32_t new_pos, uint32_t ©_pos, uint16_t ©_length, + uint32_t *hash_table, uint32_t *link_table, const char* buffer_orig, + uint32_t length_orig, const char* buffer_new, uint32_t length_new); + uint32_t calc_match_length(const char* buf1, const char* buf2, uint32_t max_length, + uint32_t min_length); - void emit_ADD(ostream &write_stream, PN_uint32 length, const char* buffer); - void emit_COPY(ostream &write_stream, PN_uint32 length, PN_uint32 COPY_pos); + void emit_ADD(ostream &write_stream, uint32_t length, const char* buffer); + void emit_COPY(ostream &write_stream, uint32_t length, uint32_t COPY_pos); void emit_add_and_copy(ostream &write_stream, - PN_uint32 add_length, const char *add_buffer, - PN_uint32 copy_length, PN_uint32 copy_pos); + uint32_t add_length, const char *add_buffer, + uint32_t copy_length, uint32_t copy_pos); void cache_add_and_copy(ostream &write_stream, - PN_uint32 add_length, const char *add_buffer, - PN_uint32 copy_length, PN_uint32 copy_pos); + uint32_t add_length, const char *add_buffer, + uint32_t copy_length, uint32_t copy_pos); void cache_flush(ostream &write_stream); void write_header(ostream &write_stream, @@ -103,10 +103,10 @@ private: void write_terminator(ostream &write_stream); bool compute_file_patches(ostream &write_stream, - PN_uint32 offset_orig, PN_uint32 offset_new, + uint32_t offset_orig, uint32_t offset_new, istream &stream_orig, istream &stream_new); bool compute_mf_patches(ostream &write_stream, - PN_uint32 offset_orig, PN_uint32 offset_new, + uint32_t offset_orig, uint32_t offset_new, istream &stream_orig, istream &stream_new); #ifdef HAVE_TAR class TarSubfile { @@ -124,7 +124,7 @@ private: bool read_tar(TarDef &tar, istream &stream); bool compute_tar_patches(ostream &write_stream, - PN_uint32 offset_orig, PN_uint32 offset_new, + uint32_t offset_orig, uint32_t offset_new, istream &stream_orig, istream &stream_new, TarDef &tar_orig, TarDef &tar_new); @@ -140,33 +140,33 @@ private: bool do_compute_patches(const Filename &file_orig, const Filename &file_new, ostream &write_stream, - PN_uint32 offset_orig, PN_uint32 offset_new, + uint32_t offset_orig, uint32_t offset_new, istream &stream_orig, istream &stream_new); bool patch_subfile(ostream &write_stream, - PN_uint32 offset_orig, PN_uint32 offset_new, + uint32_t offset_orig, uint32_t offset_new, const Filename &filename, IStreamWrapper &stream_orig, streampos orig_start, streampos orig_end, IStreamWrapper &stream_new, streampos new_start, streampos new_end); - static const PN_uint32 _HASH_BITS; - static const PN_uint32 _HASHTABLESIZE; - static const PN_uint32 _DEFAULT_FOOTPRINT_LENGTH; - static const PN_uint32 _NULL_VALUE; - static const PN_uint32 _MAX_RUN_LENGTH; - static const PN_uint32 _HASH_MASK; + static const uint32_t _HASH_BITS; + static const uint32_t _HASHTABLESIZE; + static const uint32_t _DEFAULT_FOOTPRINT_LENGTH; + static const uint32_t _NULL_VALUE; + static const uint32_t _MAX_RUN_LENGTH; + static const uint32_t _HASH_MASK; bool _allow_multifile; - PN_uint32 _footprint_length; + uint32_t _footprint_length; - PN_uint32 *_hash_table; + uint32_t *_hash_table; - PN_uint32 _add_pos; - PN_uint32 _last_copy_pos; + uint32_t _add_pos; + uint32_t _last_copy_pos; string _cache_add_data; - PN_uint32 _cache_copy_start; - PN_uint32 _cache_copy_length; + uint32_t _cache_copy_start; + uint32_t _cache_copy_length; private: PT(Buffer) _buffer; // this is the work buffer for apply -- used to prevent virtual memory swapping @@ -174,14 +174,14 @@ private: // async patch apply state variables bool _initiated; - PN_uint16 _version_number; + uint16_t _version_number; HashVal _MD5_ofSource; HashVal _MD5_ofResult; - PN_uint32 _total_bytes_to_process; - PN_uint32 _total_bytes_processed; + uint32_t _total_bytes_to_process; + uint32_t _total_bytes_processed; istream *_patch_stream; pofstream _write_stream; @@ -193,9 +193,9 @@ private: bool _rename_output_to_orig; bool _delete_patchfile; - static const PN_uint32 _v0_magic_number; - static const PN_uint32 _magic_number; - static const PN_uint16 _current_version; + static const uint32_t _v0_magic_number; + static const uint32_t _magic_number; + static const uint16_t _current_version; }; #include "patchfile.I" diff --git a/panda/src/express/trueClock.cxx b/panda/src/express/trueClock.cxx index c3db68bbd9..d2104f0ae0 100644 --- a/panda/src/express/trueClock.cxx +++ b/panda/src/express/trueClock.cxx @@ -90,7 +90,7 @@ get_short_raw_time() { * accurate and seems to lose seconds of time per hour, and (d) someone could * be running a program such as Speed Gear which munges this value anyway. */ - PN_int64 count; + int64_t count; QueryPerformanceCounter((LARGE_INTEGER *)&count); time = (double)(count - _init_count) * _recip_frequency; @@ -114,7 +114,7 @@ typedef BOOL (WINAPI * PFNSETPROCESSAFFINITYMASK)(HANDLE, DWORD_PTR); typedef BOOL (WINAPI * PFNGETPROCESSAFFINITYMASK)(HANDLE, DWORD_PTR*, DWORD_PTR*); bool TrueClock:: -set_cpu_affinity(PN_uint32 mask) const { +set_cpu_affinity(uint32_t mask) const { HMODULE hker = GetModuleHandle("kernel32"); if (hker != 0) { PFNGETPROCESSAFFINITYMASK gp = (PFNGETPROCESSAFFINITYMASK) @@ -163,7 +163,7 @@ TrueClock() { } if (get_use_high_res_clock()) { - PN_int64 int_frequency; + int64_t int_frequency; _has_high_res = (QueryPerformanceFrequency((LARGE_INTEGER *)&int_frequency) != 0); if (_has_high_res) { @@ -223,7 +223,7 @@ TrueClock() { double TrueClock:: correct_time(double time) { // First, get the current time of day measurement. - PN_uint64 int_tod; + uint64_t int_tod; GetSystemTimeAsFileTime((FILETIME *)&int_tod); double tod = (double)(int_tod - _init_tod) * _00000001; @@ -545,7 +545,7 @@ get_short_raw_time() { * */ bool TrueClock:: -set_cpu_affinity(PN_uint32 mask) const { +set_cpu_affinity(uint32_t mask) const { return false; } diff --git a/panda/src/express/trueClock.h b/panda/src/express/trueClock.h index 8b7699da96..45ab097e8b 100644 --- a/panda/src/express/trueClock.h +++ b/panda/src/express/trueClock.h @@ -54,7 +54,7 @@ PUBLISHED: INLINE static TrueClock *get_global_ptr(); - bool set_cpu_affinity(PN_uint32 mask) const; + bool set_cpu_affinity(uint32_t mask) const; protected: TrueClock(); @@ -69,10 +69,10 @@ protected: void set_time_scale(double time, double new_time_scale); bool _has_high_res; - PN_int64 _init_count; + int64_t _init_count; double _frequency, _recip_frequency; int _init_tc; - PN_uint64 _init_tod; + uint64_t _init_tod; // The rest of the data structures in this block are strictly for // implementing paranoid_clock: they are designed to allow us to cross-check diff --git a/panda/src/express/typedef.h b/panda/src/express/typedef.h index 32822ae52d..5030e6d77f 100644 --- a/panda/src/express/typedef.h +++ b/panda/src/express/typedef.h @@ -22,8 +22,8 @@ typedef unsigned short ushort; typedef unsigned int uint; typedef unsigned long ulong; -typedef PN_int64 longlong; -typedef PN_uint64 ulonglong; +typedef int64_t longlong; +typedef uint64_t ulonglong; #endif diff --git a/panda/src/ffmpeg/ffmpegAudioCursor.cxx b/panda/src/ffmpeg/ffmpegAudioCursor.cxx index 132f2ff9f9..2f73cff60c 100644 --- a/panda/src/ffmpeg/ffmpegAudioCursor.cxx +++ b/panda/src/ffmpeg/ffmpegAudioCursor.cxx @@ -153,7 +153,7 @@ FfmpegAudioCursor(FfmpegAudio *src) : _packet = new AVPacket; _buffer_size = AVCODEC_MAX_AUDIO_FRAME_SIZE / 2; - _buffer_alloc = new PN_int16[_buffer_size + 64]; + _buffer_alloc = new int16_t[_buffer_size + 64]; // Allocate enough space for 1024 samples per channel. if ((_packet == 0)||(_buffer_alloc == 0)) { @@ -362,8 +362,8 @@ reload_buffer() { */ void FfmpegAudioCursor:: seek(double t) { - PN_int64 target_ts = (PN_int64)(t / _audio_timebase); - if (target_ts < (PN_int64)(_initial_dts)) { + int64_t target_ts = (int64_t)(t / _audio_timebase); + if (target_ts < (int64_t)(_initial_dts)) { // Attempts to seek before the first packet will fail. target_ts = _initial_dts; } @@ -404,7 +404,7 @@ seek(double t) { * audio will be interleaved. */ void FfmpegAudioCursor:: -read_samples(int n, PN_int16 *data) { +read_samples(int n, int16_t *data) { int desired = n * _audio_channels; while (desired > 0) { diff --git a/panda/src/ffmpeg/ffmpegAudioCursor.h b/panda/src/ffmpeg/ffmpegAudioCursor.h index 6d3ddcffb1..21f79dc62d 100644 --- a/panda/src/ffmpeg/ffmpegAudioCursor.h +++ b/panda/src/ffmpeg/ffmpegAudioCursor.h @@ -48,7 +48,7 @@ PUBLISHED: virtual void seek(double offset); public: - virtual void read_samples(int n, PN_int16 *data); + virtual void read_samples(int n, int16_t *data); protected: void fetch_packet(); @@ -66,9 +66,9 @@ protected: double _audio_timebase; AVFrame *_frame; - PN_int16 *_buffer; + int16_t *_buffer; int _buffer_size; - PN_int16 *_buffer_alloc; + int16_t *_buffer_alloc; int _buffer_head; int _buffer_tail; diff --git a/panda/src/ffmpeg/ffmpegVideoCursor.cxx b/panda/src/ffmpeg/ffmpegVideoCursor.cxx index eb33490384..8affe3c116 100644 --- a/panda/src/ffmpeg/ffmpegVideoCursor.cxx +++ b/panda/src/ffmpeg/ffmpegVideoCursor.cxx @@ -884,8 +884,8 @@ seek(int frame, bool backward) { */ void FfmpegVideoCursor:: do_seek(int frame, bool backward) { - PN_int64 target_ts = (PN_int64)frame; - if (target_ts < (PN_int64)(_initial_dts)) { + int64_t target_ts = (int64_t)frame; + if (target_ts < (int64_t)(_initial_dts)) { // Attempts to seek before the first packet will fail. target_ts = _initial_dts; } diff --git a/panda/src/glstuff/glGraphicsStateGuardian_src.cxx b/panda/src/glstuff/glGraphicsStateGuardian_src.cxx index 50a18790a2..f078ce0d8b 100644 --- a/panda/src/glstuff/glGraphicsStateGuardian_src.cxx +++ b/panda/src/glstuff/glGraphicsStateGuardian_src.cxx @@ -10683,7 +10683,7 @@ upload_usage_texture(int width, int height) { // Allocate a temporary array large enough to contain the toplevel mipmap. - PN_uint32 *buffer = (PN_uint32 *)PANDA_MALLOC_ARRAY(width * height * 4); + uint32_t *buffer = (uint32_t *)PANDA_MALLOC_ARRAY(width * height * 4); int n = 0; while (true) { @@ -10696,7 +10696,7 @@ upload_usage_texture(int width, int height) { struct { unsigned char r, g, b, a; } b; - PN_uint32 w; + uint32_t w; } store; store.b.r = (unsigned char)(c[0] * 255.0f); diff --git a/panda/src/gobj/geomVertexColumn.cxx b/panda/src/gobj/geomVertexColumn.cxx index 9ebe98a1e8..3227eb7b42 100644 --- a/panda/src/gobj/geomVertexColumn.cxx +++ b/panda/src/gobj/geomVertexColumn.cxx @@ -165,12 +165,12 @@ setup() { switch (_numeric_type) { case NT_uint16: case NT_int16: - _component_bytes = 2; // sizeof(PN_uint16) + _component_bytes = 2; // sizeof(uint16_t) break; case NT_uint32: case NT_int32: - _component_bytes = 4; // sizeof(PN_uint32) + _component_bytes = 4; // sizeof(uint32_t) break; case NT_uint8: @@ -180,7 +180,7 @@ setup() { case NT_packed_dcba: case NT_packed_dabc: - _component_bytes = 4; // sizeof(PN_uint32) + _component_bytes = 4; // sizeof(uint32_t) _num_values *= 4; break; @@ -197,7 +197,7 @@ setup() { break; case NT_packed_ufloat: - _component_bytes = 4; // sizeof(PN_uint32) + _component_bytes = 4; // sizeof(uint32_t) _num_values *= 3; break; } @@ -451,23 +451,23 @@ float GeomVertexColumn::Packer:: get_data1f(const unsigned char *pointer) { switch (_column->get_numeric_type()) { case NT_uint8: - return *(const PN_uint8 *)pointer; + return *(const uint8_t *)pointer; case NT_uint16: - return *(const PN_uint16 *)pointer; + return *(const uint16_t *)pointer; case NT_uint32: - return *(const PN_uint32 *)pointer; + return *(const uint32_t *)pointer; case NT_packed_dcba: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; return GeomVertexData::unpack_abcd_d(dword); } case NT_packed_dabc: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; return GeomVertexData::unpack_abcd_b(dword); } @@ -478,17 +478,17 @@ get_data1f(const unsigned char *pointer) { return *(const PN_float64 *)pointer; case NT_int8: - return *(const PN_int8 *)pointer; + return *(const int8_t *)pointer; case NT_int16: - return *(const PN_int16 *)pointer; + return *(const int16_t *)pointer; case NT_int32: - return *(const PN_int32 *)pointer; + return *(const int32_t *)pointer; case NT_packed_ufloat: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; return GeomVertexData::unpack_ufloat_a(dword); } @@ -512,28 +512,28 @@ get_data2f(const unsigned char *pointer) { switch (_column->get_numeric_type()) { case NT_uint8: { - const PN_uint8 *pi = (const PN_uint8 *)pointer; + const uint8_t *pi = (const uint8_t *)pointer; _v2.set(pi[0], pi[1]); } return _v2; case NT_uint16: { - const PN_uint16 *pi = (const PN_uint16 *)pointer; + const uint16_t *pi = (const uint16_t *)pointer; _v2.set(pi[0], pi[1]); } return _v2; case NT_uint32: { - const PN_uint32 *pi = (const PN_uint32 *)pointer; + const uint32_t *pi = (const uint32_t *)pointer; _v2.set(pi[0], pi[1]); } return _v2; case NT_packed_dcba: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v2.set(GeomVertexData::unpack_abcd_d(dword), GeomVertexData::unpack_abcd_c(dword)); } @@ -541,7 +541,7 @@ get_data2f(const unsigned char *pointer) { case NT_packed_dabc: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v2.set(GeomVertexData::unpack_abcd_b(dword), GeomVertexData::unpack_abcd_c(dword)); } @@ -567,21 +567,21 @@ get_data2f(const unsigned char *pointer) { case NT_int8: { - const PN_int8 *pi = (const PN_int8 *)pointer; + const int8_t *pi = (const int8_t *)pointer; _v2.set(pi[0], pi[1]); } return _v2; case NT_int16: { - const PN_int16 *pi = (const PN_int16 *)pointer; + const int16_t *pi = (const int16_t *)pointer; _v2.set(pi[0], pi[1]); } return _v2; case NT_int32: { - const PN_int32 *pi = (const PN_int32 *)pointer; + const int32_t *pi = (const int32_t *)pointer; _v2.set(pi[0], pi[1]); } return _v2; @@ -616,28 +616,28 @@ get_data3f(const unsigned char *pointer) { switch (_column->get_numeric_type()) { case NT_uint8: { - const PN_uint8 *pi = (const PN_uint8 *)pointer; + const uint8_t *pi = (const uint8_t *)pointer; _v3.set(pi[0], pi[1], pi[2]); } return _v3; case NT_uint16: { - const PN_uint16 *pi = (const PN_uint16 *)pointer; + const uint16_t *pi = (const uint16_t *)pointer; _v3.set(pi[0], pi[1], pi[2]); } return _v3; case NT_uint32: { - const PN_uint32 *pi = (const PN_uint32 *)pointer; + const uint32_t *pi = (const uint32_t *)pointer; _v3.set(pi[0], pi[1], pi[2]); } return _v3; case NT_packed_dcba: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v3.set(GeomVertexData::unpack_abcd_d(dword), GeomVertexData::unpack_abcd_c(dword), GeomVertexData::unpack_abcd_b(dword)); @@ -646,7 +646,7 @@ get_data3f(const unsigned char *pointer) { case NT_packed_dabc: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v3.set(GeomVertexData::unpack_abcd_b(dword), GeomVertexData::unpack_abcd_c(dword), GeomVertexData::unpack_abcd_d(dword)); @@ -673,28 +673,28 @@ get_data3f(const unsigned char *pointer) { case NT_int8: { - const PN_int8 *pi = (const PN_int8 *)pointer; + const int8_t *pi = (const int8_t *)pointer; _v3.set(pi[0], pi[1], pi[2]); } return _v3; case NT_int16: { - const PN_int16 *pi = (const PN_int16 *)pointer; + const int16_t *pi = (const int16_t *)pointer; _v3.set(pi[0], pi[1], pi[2]); } return _v3; case NT_int32: { - const PN_int32 *pi = (const PN_int32 *)pointer; + const int32_t *pi = (const int32_t *)pointer; _v3.set(pi[0], pi[1], pi[2]); } return _v3; case NT_packed_ufloat: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v3.set(GeomVertexData::unpack_ufloat_a(dword), GeomVertexData::unpack_ufloat_b(dword), GeomVertexData::unpack_ufloat_c(dword)); @@ -734,28 +734,28 @@ get_data4f(const unsigned char *pointer) { switch (_column->get_numeric_type()) { case NT_uint8: { - const PN_uint8 *pi = (const PN_uint8 *)pointer; + const uint8_t *pi = (const uint8_t *)pointer; _v4.set(pi[0], pi[1], pi[2], pi[3]); } return _v4; case NT_uint16: { - const PN_uint16 *pi = (const PN_uint16 *)pointer; + const uint16_t *pi = (const uint16_t *)pointer; _v4.set(pi[0], pi[1], pi[2], pi[3]); } return _v4; case NT_uint32: { - const PN_uint32 *pi = (const PN_uint32 *)pointer; + const uint32_t *pi = (const uint32_t *)pointer; _v4.set(pi[0], pi[1], pi[2], pi[3]); } return _v4; case NT_packed_dcba: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v4.set(GeomVertexData::unpack_abcd_d(dword), GeomVertexData::unpack_abcd_c(dword), GeomVertexData::unpack_abcd_b(dword), @@ -765,7 +765,7 @@ get_data4f(const unsigned char *pointer) { case NT_packed_dabc: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v4.set(GeomVertexData::unpack_abcd_b(dword), GeomVertexData::unpack_abcd_c(dword), GeomVertexData::unpack_abcd_d(dword), @@ -793,21 +793,21 @@ get_data4f(const unsigned char *pointer) { case NT_int8: { - const PN_int8 *pi = (const PN_int8 *)pointer; + const int8_t *pi = (const int8_t *)pointer; _v4.set(pi[0], pi[1], pi[2], pi[3]); } return _v4; case NT_int16: { - const PN_int16 *pi = (const PN_int16 *)pointer; + const int16_t *pi = (const int16_t *)pointer; _v4.set(pi[0], pi[1], pi[2], pi[3]); } return _v4; case NT_int32: { - const PN_int32 *pi = (const PN_int32 *)pointer; + const int32_t *pi = (const int32_t *)pointer; _v4.set(pi[0], pi[1], pi[2], pi[3]); } return _v4; @@ -828,23 +828,23 @@ double GeomVertexColumn::Packer:: get_data1d(const unsigned char *pointer) { switch (_column->get_numeric_type()) { case NT_uint8: - return *(const PN_uint8 *)pointer; + return *(const uint8_t *)pointer; case NT_uint16: - return *(const PN_uint16 *)pointer; + return *(const uint16_t *)pointer; case NT_uint32: - return *(const PN_uint32 *)pointer; + return *(const uint32_t *)pointer; case NT_packed_dcba: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; return GeomVertexData::unpack_abcd_d(dword); } case NT_packed_dabc: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; return GeomVertexData::unpack_abcd_b(dword); } @@ -859,17 +859,17 @@ get_data1d(const unsigned char *pointer) { return 0.0; case NT_int8: - return *(const PN_int8 *)pointer; + return *(const int8_t *)pointer; case NT_int16: - return *(const PN_int16 *)pointer; + return *(const int16_t *)pointer; case NT_int32: - return *(const PN_int32 *)pointer; + return *(const int32_t *)pointer; case NT_packed_ufloat: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; return GeomVertexData::unpack_ufloat_a(dword); } } @@ -890,28 +890,28 @@ get_data2d(const unsigned char *pointer) { switch (_column->get_numeric_type()) { case NT_uint8: { - const PN_uint8 *pi = (const PN_uint8 *)pointer; + const uint8_t *pi = (const uint8_t *)pointer; _v2d.set(pi[0], pi[1]); } return _v2d; case NT_uint16: { - const PN_uint16 *pi = (const PN_uint16 *)pointer; + const uint16_t *pi = (const uint16_t *)pointer; _v2d.set(pi[0], pi[1]); } return _v2d; case NT_uint32: { - const PN_uint32 *pi = (const PN_uint32 *)pointer; + const uint32_t *pi = (const uint32_t *)pointer; _v2d.set(pi[0], pi[1]); } return _v2d; case NT_packed_dcba: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v2d.set(GeomVertexData::unpack_abcd_d(dword), GeomVertexData::unpack_abcd_c(dword)); } @@ -919,7 +919,7 @@ get_data2d(const unsigned char *pointer) { case NT_packed_dabc: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v2d.set(GeomVertexData::unpack_abcd_b(dword), GeomVertexData::unpack_abcd_c(dword)); } @@ -945,21 +945,21 @@ get_data2d(const unsigned char *pointer) { case NT_int8: { - const PN_int8 *pi = (const PN_int8 *)pointer; + const int8_t *pi = (const int8_t *)pointer; _v2d.set(pi[0], pi[1]); } return _v2d; case NT_int16: { - const PN_int16 *pi = (const PN_int16 *)pointer; + const int16_t *pi = (const int16_t *)pointer; _v2d.set(pi[0], pi[1]); } return _v2d; case NT_int32: { - const PN_int32 *pi = (const PN_int32 *)pointer; + const int32_t *pi = (const int32_t *)pointer; _v2d.set(pi[0], pi[1]); } return _v2d; @@ -994,28 +994,28 @@ get_data3d(const unsigned char *pointer) { switch (_column->get_numeric_type()) { case NT_uint8: { - const PN_uint8 *pi = (const PN_uint8 *)pointer; + const uint8_t *pi = (const uint8_t *)pointer; _v3d.set(pi[0], pi[1], pi[2]); } return _v3d; case NT_uint16: { - const PN_uint16 *pi = (const PN_uint16 *)pointer; + const uint16_t *pi = (const uint16_t *)pointer; _v3d.set(pi[0], pi[1], pi[2]); } return _v3d; case NT_uint32: { - const PN_uint32 *pi = (const PN_uint32 *)pointer; + const uint32_t *pi = (const uint32_t *)pointer; _v3d.set(pi[0], pi[1], pi[2]); } return _v3d; case NT_packed_dcba: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v3d.set(GeomVertexData::unpack_abcd_d(dword), GeomVertexData::unpack_abcd_c(dword), GeomVertexData::unpack_abcd_b(dword)); @@ -1024,7 +1024,7 @@ get_data3d(const unsigned char *pointer) { case NT_packed_dabc: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v3d.set(GeomVertexData::unpack_abcd_b(dword), GeomVertexData::unpack_abcd_c(dword), GeomVertexData::unpack_abcd_d(dword)); @@ -1051,28 +1051,28 @@ get_data3d(const unsigned char *pointer) { case NT_int8: { - const PN_int8 *pi = (const PN_int8 *)pointer; + const int8_t *pi = (const int8_t *)pointer; _v3d.set(pi[0], pi[1], pi[2]); } return _v3d; case NT_int16: { - const PN_int16 *pi = (const PN_int16 *)pointer; + const int16_t *pi = (const int16_t *)pointer; _v3d.set(pi[0], pi[1], pi[2]); } return _v3d; case NT_int32: { - const PN_int32 *pi = (const PN_int32 *)pointer; + const int32_t *pi = (const int32_t *)pointer; _v3d.set(pi[0], pi[1], pi[2]); } return _v3d; case NT_packed_ufloat: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v3d.set(GeomVertexData::unpack_ufloat_a(dword), GeomVertexData::unpack_ufloat_b(dword), GeomVertexData::unpack_ufloat_c(dword)); @@ -1112,28 +1112,28 @@ get_data4d(const unsigned char *pointer) { switch (_column->get_numeric_type()) { case NT_uint8: { - const PN_uint8 *pi = (const PN_uint8 *)pointer; + const uint8_t *pi = (const uint8_t *)pointer; _v4d.set(pi[0], pi[1], pi[2], pi[3]); } return _v4d; case NT_uint16: { - const PN_uint16 *pi = (const PN_uint16 *)pointer; + const uint16_t *pi = (const uint16_t *)pointer; _v4d.set(pi[0], pi[1], pi[2], pi[3]); } return _v4d; case NT_uint32: { - const PN_uint32 *pi = (const PN_uint32 *)pointer; + const uint32_t *pi = (const uint32_t *)pointer; _v4d.set(pi[0], pi[1], pi[2], pi[3]); } return _v4d; case NT_packed_dcba: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v4d.set(GeomVertexData::unpack_abcd_d(dword), GeomVertexData::unpack_abcd_c(dword), GeomVertexData::unpack_abcd_b(dword), @@ -1143,7 +1143,7 @@ get_data4d(const unsigned char *pointer) { case NT_packed_dabc: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v4d.set(GeomVertexData::unpack_abcd_b(dword), GeomVertexData::unpack_abcd_c(dword), GeomVertexData::unpack_abcd_d(dword), @@ -1171,21 +1171,21 @@ get_data4d(const unsigned char *pointer) { case NT_int8: { - const PN_int8 *pi = (const PN_int8 *)pointer; + const int8_t *pi = (const int8_t *)pointer; _v4d.set(pi[0], pi[1], pi[2], pi[3]); } return _v4d; case NT_int16: { - const PN_int16 *pi = (const PN_int16 *)pointer; + const int16_t *pi = (const int16_t *)pointer; _v4d.set(pi[0], pi[1], pi[2], pi[3]); } return _v4d; case NT_int32: { - const PN_int32 *pi = (const PN_int32 *)pointer; + const int32_t *pi = (const int32_t *)pointer; _v4d.set(pi[0], pi[1], pi[2], pi[3]); } return _v4d; @@ -1209,20 +1209,20 @@ get_data1i(const unsigned char *pointer) { return *pointer; case NT_uint16: - return *(const PN_uint16 *)pointer; + return *(const uint16_t *)pointer; case NT_uint32: - return *(const PN_uint32 *)pointer; + return *(const uint32_t *)pointer; case NT_packed_dcba: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; return GeomVertexData::unpack_abcd_d(dword); } case NT_packed_dabc: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; return GeomVertexData::unpack_abcd_b(dword); } @@ -1237,17 +1237,17 @@ get_data1i(const unsigned char *pointer) { break; case NT_int8: - return *(const PN_int8 *)pointer; + return *(const int8_t *)pointer; case NT_int16: - return *(const PN_int16 *)pointer; + return *(const int16_t *)pointer; case NT_int32: - return *(const PN_int32 *)pointer; + return *(const int32_t *)pointer; case NT_packed_ufloat: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; return (int)GeomVertexData::unpack_ufloat_a(dword); } } @@ -1273,21 +1273,21 @@ get_data2i(const unsigned char *pointer) { case NT_uint16: { - const PN_uint16 *pi = (const PN_uint16 *)pointer; + const uint16_t *pi = (const uint16_t *)pointer; _v2i.set(pi[0], pi[1]); } return _v2i; case NT_uint32: { - const PN_uint32 *pi = (const PN_uint32 *)pointer; + const uint32_t *pi = (const uint32_t *)pointer; _v2i.set(pi[0], pi[1]); } return _v2i; case NT_packed_dcba: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v2i.set(GeomVertexData::unpack_abcd_d(dword), GeomVertexData::unpack_abcd_c(dword)); } @@ -1295,7 +1295,7 @@ get_data2i(const unsigned char *pointer) { case NT_packed_dabc: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v2i.set(GeomVertexData::unpack_abcd_b(dword), GeomVertexData::unpack_abcd_c(dword)); } @@ -1321,21 +1321,21 @@ get_data2i(const unsigned char *pointer) { case NT_int8: { - const PN_int8 *pi = (const PN_int8 *)pointer; + const int8_t *pi = (const int8_t *)pointer; _v2i.set(pi[0], pi[1]); } return _v2i; case NT_int16: { - const PN_int16 *pi = (const PN_int16 *)pointer; + const int16_t *pi = (const int16_t *)pointer; _v2i.set(pi[0], pi[1]); } return _v2i; case NT_int32: { - const PN_int32 *pi = (const PN_int32 *)pointer; + const int32_t *pi = (const int32_t *)pointer; _v2i.set(pi[0], pi[1]); } return _v2i; @@ -1374,21 +1374,21 @@ get_data3i(const unsigned char *pointer) { case NT_uint16: { - const PN_uint16 *pi = (const PN_uint16 *)pointer; + const uint16_t *pi = (const uint16_t *)pointer; _v3i.set(pi[0], pi[1], pi[2]); } return _v3i; case NT_uint32: { - const PN_uint32 *pi = (const PN_uint32 *)pointer; + const uint32_t *pi = (const uint32_t *)pointer; _v3i.set(pi[0], pi[1], pi[2]); } return _v3i; case NT_packed_dcba: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v3i.set(GeomVertexData::unpack_abcd_d(dword), GeomVertexData::unpack_abcd_c(dword), GeomVertexData::unpack_abcd_b(dword)); @@ -1397,7 +1397,7 @@ get_data3i(const unsigned char *pointer) { case NT_packed_dabc: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v3i.set(GeomVertexData::unpack_abcd_b(dword), GeomVertexData::unpack_abcd_c(dword), GeomVertexData::unpack_abcd_d(dword)); @@ -1424,28 +1424,28 @@ get_data3i(const unsigned char *pointer) { case NT_int8: { - const PN_int8 *pi = (const PN_int8 *)pointer; + const int8_t *pi = (const int8_t *)pointer; _v3i.set(pi[0], pi[1], pi[2]); } return _v3i; case NT_int16: { - const PN_int16 *pi = (const PN_int16 *)pointer; + const int16_t *pi = (const int16_t *)pointer; _v3i.set(pi[0], pi[1], pi[2]); } return _v3i; case NT_int32: { - const PN_int32 *pi = (const PN_int32 *)pointer; + const int32_t *pi = (const int32_t *)pointer; _v3i.set(pi[0], pi[1], pi[2]); } return _v3i; case NT_packed_ufloat: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v3i.set((int)GeomVertexData::unpack_ufloat_a(dword), (int)GeomVertexData::unpack_ufloat_b(dword), (int)GeomVertexData::unpack_ufloat_c(dword)); @@ -1489,21 +1489,21 @@ get_data4i(const unsigned char *pointer) { case NT_uint16: { - const PN_uint16 *pi = (const PN_uint16 *)pointer; + const uint16_t *pi = (const uint16_t *)pointer; _v4i.set(pi[0], pi[1], pi[2], pi[3]); } return _v4i; case NT_uint32: { - const PN_uint32 *pi = (const PN_uint32 *)pointer; + const uint32_t *pi = (const uint32_t *)pointer; _v4i.set(pi[0], pi[1], pi[2], pi[3]); } return _v4i; case NT_packed_dcba: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v4i.set(GeomVertexData::unpack_abcd_d(dword), GeomVertexData::unpack_abcd_c(dword), GeomVertexData::unpack_abcd_b(dword), @@ -1513,7 +1513,7 @@ get_data4i(const unsigned char *pointer) { case NT_packed_dabc: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v4i.set(GeomVertexData::unpack_abcd_b(dword), GeomVertexData::unpack_abcd_c(dword), GeomVertexData::unpack_abcd_d(dword), @@ -1541,21 +1541,21 @@ get_data4i(const unsigned char *pointer) { case NT_int8: { - const PN_int8 *pi = (const PN_int8 *)pointer; + const int8_t *pi = (const int8_t *)pointer; _v4i.set(pi[0], pi[1], pi[2], pi[3]); } return _v4i; case NT_int16: { - const PN_int16 *pi = (const PN_int16 *)pointer; + const int16_t *pi = (const int16_t *)pointer; _v4i.set(pi[0], pi[1], pi[2], pi[3]); } return _v4i; case NT_int32: { - const PN_int32 *pi = (const PN_int32 *)pointer; + const int32_t *pi = (const int32_t *)pointer; _v4i.set(pi[0], pi[1], pi[2], pi[3]); } return _v4i; @@ -1578,15 +1578,15 @@ set_data1f(unsigned char *pointer, float data) { case 1: switch (_column->get_numeric_type()) { case NT_uint8: - *(PN_uint8 *)pointer = (unsigned int)data; + *(uint8_t *)pointer = (unsigned int)data; break; case NT_uint16: - *(PN_uint16 *)pointer = (unsigned int)data; + *(uint16_t *)pointer = (unsigned int)data; break; case NT_uint32: - *(PN_uint32 *)pointer = (unsigned int)data; + *(uint32_t *)pointer = (unsigned int)data; break; case NT_packed_dcba: @@ -1607,15 +1607,15 @@ set_data1f(unsigned char *pointer, float data) { break; case NT_int8: - *(PN_int8 *)pointer = (int)data; + *(int8_t *)pointer = (int)data; break; case NT_int16: - *(PN_int16 *)pointer = (int)data; + *(int16_t *)pointer = (int)data; break; case NT_int32: - *(PN_int32 *)pointer = (int)data; + *(int32_t *)pointer = (int)data; break; case NT_packed_ufloat: @@ -1652,7 +1652,7 @@ set_data2f(unsigned char *pointer, const LVecBase2f &data) { switch (_column->get_numeric_type()) { case NT_uint8: { - PN_uint8 *pi = (PN_uint8 *)pointer; + uint8_t *pi = (uint8_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; } @@ -1660,7 +1660,7 @@ set_data2f(unsigned char *pointer, const LVecBase2f &data) { case NT_uint16: { - PN_uint16 *pi = (PN_uint16 *)pointer; + uint16_t *pi = (uint16_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; } @@ -1668,7 +1668,7 @@ set_data2f(unsigned char *pointer, const LVecBase2f &data) { case NT_uint32: { - PN_uint32 *pi = (PN_uint32 *)pointer; + uint32_t *pi = (uint32_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; } @@ -1701,7 +1701,7 @@ set_data2f(unsigned char *pointer, const LVecBase2f &data) { case NT_int8: { - PN_int8 *pi = (PN_int8 *)pointer; + int8_t *pi = (int8_t *)pointer; pi[0] = (int)data[0]; pi[1] = (int)data[1]; } @@ -1709,7 +1709,7 @@ set_data2f(unsigned char *pointer, const LVecBase2f &data) { case NT_int16: { - PN_int16 *pi = (PN_int16 *)pointer; + int16_t *pi = (int16_t *)pointer; pi[0] = (int)data[0]; pi[1] = (int)data[1]; } @@ -1717,7 +1717,7 @@ set_data2f(unsigned char *pointer, const LVecBase2f &data) { case NT_int32: { - PN_int32 *pi = (PN_int32 *)pointer; + int32_t *pi = (int32_t *)pointer; pi[0] = (int)data[0]; pi[1] = (int)data[1]; } @@ -1757,7 +1757,7 @@ set_data3f(unsigned char *pointer, const LVecBase3f &data) { switch (_column->get_numeric_type()) { case NT_uint8: { - PN_uint8 *pi = (PN_uint8 *)pointer; + uint8_t *pi = (uint8_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; pi[2] = (unsigned int)data[2]; @@ -1766,7 +1766,7 @@ set_data3f(unsigned char *pointer, const LVecBase3f &data) { case NT_uint16: { - PN_uint16 *pi = (PN_uint16 *)pointer; + uint16_t *pi = (uint16_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; pi[2] = (unsigned int)data[2]; @@ -1775,7 +1775,7 @@ set_data3f(unsigned char *pointer, const LVecBase3f &data) { case NT_uint32: { - PN_uint32 *pi = (PN_uint32 *)pointer; + uint32_t *pi = (uint32_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; pi[2] = (unsigned int)data[2]; @@ -1811,7 +1811,7 @@ set_data3f(unsigned char *pointer, const LVecBase3f &data) { case NT_int8: { - PN_int8 *pi = (PN_int8 *)pointer; + int8_t *pi = (int8_t *)pointer; pi[0] = (int)data[0]; pi[1] = (int)data[1]; pi[2] = (int)data[2]; @@ -1820,7 +1820,7 @@ set_data3f(unsigned char *pointer, const LVecBase3f &data) { case NT_int16: { - PN_int16 *pi = (PN_int16 *)pointer; + int16_t *pi = (int16_t *)pointer; pi[0] = (int)data[0]; pi[1] = (int)data[1]; pi[2] = (int)data[2]; @@ -1829,7 +1829,7 @@ set_data3f(unsigned char *pointer, const LVecBase3f &data) { case NT_int32: { - PN_int32 *pi = (PN_int32 *)pointer; + int32_t *pi = (int32_t *)pointer; pi[0] = (int)data[0]; pi[1] = (int)data[1]; pi[2] = (int)data[2]; @@ -1837,7 +1837,7 @@ set_data3f(unsigned char *pointer, const LVecBase3f &data) { break; case NT_packed_ufloat: - *(PN_uint32 *)pointer = GeomVertexData::pack_ufloat(data[0], data[1], data[2]); + *(uint32_t *)pointer = GeomVertexData::pack_ufloat(data[0], data[1], data[2]); break; } break; @@ -1870,7 +1870,7 @@ set_data4f(unsigned char *pointer, const LVecBase4f &data) { switch (_column->get_numeric_type()) { case NT_uint8: { - PN_uint8 *pi = (PN_uint8 *)pointer; + uint8_t *pi = (uint8_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; pi[2] = (unsigned int)data[2]; @@ -1880,7 +1880,7 @@ set_data4f(unsigned char *pointer, const LVecBase4f &data) { case NT_uint16: { - PN_uint16 *pi = (PN_uint16 *)pointer; + uint16_t *pi = (uint16_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; pi[2] = (unsigned int)data[2]; @@ -1890,7 +1890,7 @@ set_data4f(unsigned char *pointer, const LVecBase4f &data) { case NT_uint32: { - PN_uint32 *pi = (PN_uint32 *)pointer; + uint32_t *pi = (uint32_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; pi[2] = (unsigned int)data[2]; @@ -1899,11 +1899,11 @@ set_data4f(unsigned char *pointer, const LVecBase4f &data) { break; case NT_packed_dcba: - *(PN_uint32 *)pointer = GeomVertexData::pack_abcd(data[3], data[2], data[1], data[0]); + *(uint32_t *)pointer = GeomVertexData::pack_abcd(data[3], data[2], data[1], data[0]); break; case NT_packed_dabc: - *(PN_uint32 *)pointer = GeomVertexData::pack_abcd(data[3], data[0], data[1], data[2]); + *(uint32_t *)pointer = GeomVertexData::pack_abcd(data[3], data[0], data[1], data[2]); break; case NT_float32: @@ -1932,7 +1932,7 @@ set_data4f(unsigned char *pointer, const LVecBase4f &data) { case NT_int8: { - PN_int8 *pi = (PN_int8 *)pointer; + int8_t *pi = (int8_t *)pointer; pi[0] = (int)data[0]; pi[1] = (int)data[1]; pi[2] = (int)data[2]; @@ -1942,7 +1942,7 @@ set_data4f(unsigned char *pointer, const LVecBase4f &data) { case NT_int16: { - PN_int16 *pi = (PN_int16 *)pointer; + int16_t *pi = (int16_t *)pointer; pi[0] = (int)data[0]; pi[1] = (int)data[1]; pi[2] = (int)data[2]; @@ -1952,7 +1952,7 @@ set_data4f(unsigned char *pointer, const LVecBase4f &data) { case NT_int32: { - PN_int32 *pi = (PN_int32 *)pointer; + int32_t *pi = (int32_t *)pointer; pi[0] = (int)data[0]; pi[1] = (int)data[1]; pi[2] = (int)data[2]; @@ -1977,15 +1977,15 @@ set_data1d(unsigned char *pointer, double data) { case 1: switch (_column->get_numeric_type()) { case NT_uint8: - *(PN_uint8 *)pointer = (unsigned int)data; + *(uint8_t *)pointer = (unsigned int)data; break; case NT_uint16: - *(PN_uint16 *)pointer = (unsigned int)data; + *(uint16_t *)pointer = (unsigned int)data; break; case NT_uint32: - *(PN_uint32 *)pointer = (unsigned int)data; + *(uint32_t *)pointer = (unsigned int)data; break; case NT_packed_dcba: @@ -2006,15 +2006,15 @@ set_data1d(unsigned char *pointer, double data) { break; case NT_int8: - *(PN_int8 *)pointer = (int)data; + *(int8_t *)pointer = (int)data; break; case NT_int16: - *(PN_int16 *)pointer = (int)data; + *(int16_t *)pointer = (int)data; break; case NT_int32: - *(PN_int32 *)pointer = (int)data; + *(int32_t *)pointer = (int)data; break; case NT_packed_ufloat: @@ -2050,7 +2050,7 @@ set_data2d(unsigned char *pointer, const LVecBase2d &data) { switch (_column->get_numeric_type()) { case NT_uint8: { - PN_uint8 *pi = (PN_uint8 *)pointer; + uint8_t *pi = (uint8_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; } @@ -2058,7 +2058,7 @@ set_data2d(unsigned char *pointer, const LVecBase2d &data) { case NT_uint16: { - PN_uint16 *pi = (PN_uint16 *)pointer; + uint16_t *pi = (uint16_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; } @@ -2066,7 +2066,7 @@ set_data2d(unsigned char *pointer, const LVecBase2d &data) { case NT_uint32: { - PN_uint32 *pi = (PN_uint32 *)pointer; + uint32_t *pi = (uint32_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; } @@ -2099,7 +2099,7 @@ set_data2d(unsigned char *pointer, const LVecBase2d &data) { case NT_int8: { - PN_int8 *pi = (PN_int8 *)pointer; + int8_t *pi = (int8_t *)pointer; pi[0] = (int)data[0]; pi[1] = (int)data[1]; } @@ -2107,7 +2107,7 @@ set_data2d(unsigned char *pointer, const LVecBase2d &data) { case NT_int16: { - PN_int16 *pi = (PN_int16 *)pointer; + int16_t *pi = (int16_t *)pointer; pi[0] = (int)data[0]; pi[1] = (int)data[1]; } @@ -2115,7 +2115,7 @@ set_data2d(unsigned char *pointer, const LVecBase2d &data) { case NT_int32: { - PN_int32 *pi = (PN_int32 *)pointer; + int32_t *pi = (int32_t *)pointer; pi[0] = (int)data[0]; pi[1] = (int)data[1]; } @@ -2155,7 +2155,7 @@ set_data3d(unsigned char *pointer, const LVecBase3d &data) { switch (_column->get_numeric_type()) { case NT_uint8: { - PN_uint8 *pi = (PN_uint8 *)pointer; + uint8_t *pi = (uint8_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; pi[2] = (unsigned int)data[2]; @@ -2164,7 +2164,7 @@ set_data3d(unsigned char *pointer, const LVecBase3d &data) { case NT_uint16: { - PN_uint16 *pi = (PN_uint16 *)pointer; + uint16_t *pi = (uint16_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; pi[2] = (unsigned int)data[2]; @@ -2173,7 +2173,7 @@ set_data3d(unsigned char *pointer, const LVecBase3d &data) { case NT_uint32: { - PN_uint32 *pi = (PN_uint32 *)pointer; + uint32_t *pi = (uint32_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; pi[2] = (unsigned int)data[2]; @@ -2209,7 +2209,7 @@ set_data3d(unsigned char *pointer, const LVecBase3d &data) { case NT_int8: { - PN_int8 *pi = (PN_int8 *)pointer; + int8_t *pi = (int8_t *)pointer; pi[0] = (int)data[0]; pi[1] = (int)data[1]; pi[2] = (int)data[2]; @@ -2218,7 +2218,7 @@ set_data3d(unsigned char *pointer, const LVecBase3d &data) { case NT_int16: { - PN_int16 *pi = (PN_int16 *)pointer; + int16_t *pi = (int16_t *)pointer; pi[0] = (int)data[0]; pi[1] = (int)data[1]; pi[2] = (int)data[2]; @@ -2227,7 +2227,7 @@ set_data3d(unsigned char *pointer, const LVecBase3d &data) { case NT_int32: { - PN_int32 *pi = (PN_int32 *)pointer; + int32_t *pi = (int32_t *)pointer; pi[0] = (int)data[0]; pi[1] = (int)data[1]; pi[2] = (int)data[2]; @@ -2235,7 +2235,7 @@ set_data3d(unsigned char *pointer, const LVecBase3d &data) { break; case NT_packed_ufloat: - *(PN_uint32 *)pointer = GeomVertexData::pack_ufloat(data[0], data[1], data[2]); + *(uint32_t *)pointer = GeomVertexData::pack_ufloat(data[0], data[1], data[2]); break; } break; @@ -2268,7 +2268,7 @@ set_data4d(unsigned char *pointer, const LVecBase4d &data) { switch (_column->get_numeric_type()) { case NT_uint8: { - PN_uint8 *pi = (PN_uint8 *)pointer; + uint8_t *pi = (uint8_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; pi[2] = (unsigned int)data[2]; @@ -2278,7 +2278,7 @@ set_data4d(unsigned char *pointer, const LVecBase4d &data) { case NT_uint16: { - PN_uint16 *pi = (PN_uint16 *)pointer; + uint16_t *pi = (uint16_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; pi[2] = (unsigned int)data[2]; @@ -2288,7 +2288,7 @@ set_data4d(unsigned char *pointer, const LVecBase4d &data) { case NT_uint32: { - PN_uint32 *pi = (PN_uint32 *)pointer; + uint32_t *pi = (uint32_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; pi[2] = (unsigned int)data[2]; @@ -2297,11 +2297,11 @@ set_data4d(unsigned char *pointer, const LVecBase4d &data) { break; case NT_packed_dcba: - *(PN_uint32 *)pointer = GeomVertexData::pack_abcd(data[3], data[2], data[1], data[0]); + *(uint32_t *)pointer = GeomVertexData::pack_abcd(data[3], data[2], data[1], data[0]); break; case NT_packed_dabc: - *(PN_uint32 *)pointer = GeomVertexData::pack_abcd(data[3], data[0], data[1], data[2]); + *(uint32_t *)pointer = GeomVertexData::pack_abcd(data[3], data[0], data[1], data[2]); break; case NT_float32: @@ -2330,7 +2330,7 @@ set_data4d(unsigned char *pointer, const LVecBase4d &data) { case NT_int8: { - PN_int8 *pi = (PN_int8 *)pointer; + int8_t *pi = (int8_t *)pointer; pi[0] = (int)data[0]; pi[1] = (int)data[1]; pi[2] = (int)data[2]; @@ -2340,7 +2340,7 @@ set_data4d(unsigned char *pointer, const LVecBase4d &data) { case NT_int16: { - PN_int16 *pi = (PN_int16 *)pointer; + int16_t *pi = (int16_t *)pointer; pi[0] = (int)data[0]; pi[1] = (int)data[1]; pi[2] = (int)data[2]; @@ -2350,7 +2350,7 @@ set_data4d(unsigned char *pointer, const LVecBase4d &data) { case NT_int32: { - PN_int32 *pi = (PN_int32 *)pointer; + int32_t *pi = (int32_t *)pointer; pi[0] = (int)data[0]; pi[1] = (int)data[1]; pi[2] = (int)data[2]; @@ -2380,12 +2380,12 @@ set_data1i(unsigned char *pointer, int data) { break; case NT_uint16: - *(PN_uint16 *)pointer = data; - nassertv(*(PN_uint16 *)pointer == data); + *(uint16_t *)pointer = data; + nassertv(*(uint16_t *)pointer == data); break; case NT_uint32: - *(PN_uint32 *)pointer = data; + *(uint32_t *)pointer = data; break; case NT_packed_dcba: @@ -2406,17 +2406,17 @@ set_data1i(unsigned char *pointer, int data) { break; case NT_int8: - *(PN_int8 *)pointer = data; - nassertv(*(PN_int8 *)pointer == data); + *(int8_t *)pointer = data; + nassertv(*(int8_t *)pointer == data); break; case NT_int16: - *(PN_int16 *)pointer = data; - nassertv(*(PN_int16 *)pointer == data); + *(int16_t *)pointer = data; + nassertv(*(int16_t *)pointer == data); break; case NT_int32: - *(PN_int32 *)pointer = data; + *(int32_t *)pointer = data; break; case NT_packed_ufloat: @@ -2458,7 +2458,7 @@ set_data2i(unsigned char *pointer, const LVecBase2i &data) { case NT_uint16: { - PN_uint16 *pi = (PN_uint16 *)pointer; + uint16_t *pi = (uint16_t *)pointer; pi[0] = data[0]; pi[1] = data[1]; } @@ -2466,7 +2466,7 @@ set_data2i(unsigned char *pointer, const LVecBase2i &data) { case NT_uint32: { - PN_uint32 *pi = (PN_uint32 *)pointer; + uint32_t *pi = (uint32_t *)pointer; pi[0] = data[0]; pi[1] = data[1]; } @@ -2499,7 +2499,7 @@ set_data2i(unsigned char *pointer, const LVecBase2i &data) { case NT_int8: { - PN_int8 *pi = (PN_int8 *)pointer; + int8_t *pi = (int8_t *)pointer; pi[0] = data[0]; pi[1] = data[1]; } @@ -2507,7 +2507,7 @@ set_data2i(unsigned char *pointer, const LVecBase2i &data) { case NT_int16: { - PN_int16 *pi = (PN_int16 *)pointer; + int16_t *pi = (int16_t *)pointer; pi[0] = data[0]; pi[1] = data[1]; } @@ -2515,7 +2515,7 @@ set_data2i(unsigned char *pointer, const LVecBase2i &data) { case NT_int32: { - PN_int32 *pi = (PN_int32 *)pointer; + int32_t *pi = (int32_t *)pointer; pi[0] = data[0]; pi[1] = data[1]; } @@ -2561,7 +2561,7 @@ set_data3i(unsigned char *pointer, const LVecBase3i &data) { case NT_uint16: { - PN_uint16 *pi = (PN_uint16 *)pointer; + uint16_t *pi = (uint16_t *)pointer; pi[0] = data[0]; pi[1] = data[1]; pi[2] = data[2]; @@ -2570,7 +2570,7 @@ set_data3i(unsigned char *pointer, const LVecBase3i &data) { case NT_uint32: { - PN_uint32 *pi = (PN_uint32 *)pointer; + uint32_t *pi = (uint32_t *)pointer; pi[0] = data[0]; pi[1] = data[1]; pi[2] = data[2]; @@ -2606,7 +2606,7 @@ set_data3i(unsigned char *pointer, const LVecBase3i &data) { case NT_int8: { - PN_int8 *pi = (PN_int8 *)pointer; + int8_t *pi = (int8_t *)pointer; pi[0] = data[0]; pi[1] = data[1]; pi[2] = data[2]; @@ -2615,7 +2615,7 @@ set_data3i(unsigned char *pointer, const LVecBase3i &data) { case NT_int16: { - PN_int16 *pi = (PN_int16 *)pointer; + int16_t *pi = (int16_t *)pointer; pi[0] = data[0]; pi[1] = data[1]; pi[2] = data[2]; @@ -2624,7 +2624,7 @@ set_data3i(unsigned char *pointer, const LVecBase3i &data) { case NT_int32: { - PN_int32 *pi = (PN_int32 *)pointer; + int32_t *pi = (int32_t *)pointer; pi[0] = data[0]; pi[1] = data[1]; pi[2] = data[2]; @@ -2632,7 +2632,7 @@ set_data3i(unsigned char *pointer, const LVecBase3i &data) { break; case NT_packed_ufloat: - *(PN_uint32 *)pointer = GeomVertexData::pack_ufloat(data[0], data[1], data[2]); + *(uint32_t *)pointer = GeomVertexData::pack_ufloat(data[0], data[1], data[2]); break; } break; @@ -2672,7 +2672,7 @@ set_data4i(unsigned char *pointer, const LVecBase4i &data) { case NT_uint16: { - PN_uint16 *pi = (PN_uint16 *)pointer; + uint16_t *pi = (uint16_t *)pointer; pi[0] = data[0]; pi[1] = data[1]; pi[2] = data[2]; @@ -2682,7 +2682,7 @@ set_data4i(unsigned char *pointer, const LVecBase4i &data) { case NT_uint32: { - PN_uint32 *pi = (PN_uint32 *)pointer; + uint32_t *pi = (uint32_t *)pointer; pi[0] = data[0]; pi[1] = data[1]; pi[2] = data[2]; @@ -2691,11 +2691,11 @@ set_data4i(unsigned char *pointer, const LVecBase4i &data) { break; case NT_packed_dcba: - *(PN_uint32 *)pointer = GeomVertexData::pack_abcd(data[3], data[2], data[1], data[0]); + *(uint32_t *)pointer = GeomVertexData::pack_abcd(data[3], data[2], data[1], data[0]); break; case NT_packed_dabc: - *(PN_uint32 *)pointer = GeomVertexData::pack_abcd(data[3], data[0], data[1], data[2]); + *(uint32_t *)pointer = GeomVertexData::pack_abcd(data[3], data[0], data[1], data[2]); break; case NT_float32: @@ -2724,7 +2724,7 @@ set_data4i(unsigned char *pointer, const LVecBase4i &data) { case NT_int8: { - PN_int8 *pi = (PN_int8 *)pointer; + int8_t *pi = (int8_t *)pointer; pi[0] = data[0]; pi[1] = data[1]; pi[2] = data[2]; @@ -2734,7 +2734,7 @@ set_data4i(unsigned char *pointer, const LVecBase4i &data) { case NT_int16: { - PN_int16 *pi = (PN_int16 *)pointer; + int16_t *pi = (int16_t *)pointer; pi[0] = data[0]; pi[1] = data[1]; pi[2] = data[2]; @@ -2744,7 +2744,7 @@ set_data4i(unsigned char *pointer, const LVecBase4i &data) { case NT_int32: { - PN_int32 *pi = (PN_int32 *)pointer; + int32_t *pi = (int32_t *)pointer; pi[0] = data[0]; pi[1] = data[1]; pi[2] = data[2]; @@ -2829,28 +2829,28 @@ get_data4f(const unsigned char *pointer) { switch (_column->get_numeric_type()) { case NT_uint8: { - const PN_uint8 *pi = (const PN_uint8 *)pointer; + const uint8_t *pi = (const uint8_t *)pointer; _v4.set(pi[0], pi[1], pi[2], pi[3]); } return _v4; case NT_uint16: { - const PN_uint16 *pi = (const PN_uint16 *)pointer; + const uint16_t *pi = (const uint16_t *)pointer; _v4.set(pi[0], pi[1], pi[2], pi[3]); } return _v4; case NT_uint32: { - const PN_uint32 *pi = (const PN_uint32 *)pointer; + const uint32_t *pi = (const uint32_t *)pointer; _v4.set(pi[0], pi[1], pi[2], pi[3]); } return _v4; case NT_packed_dcba: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v4.set(GeomVertexData::unpack_abcd_d(dword), GeomVertexData::unpack_abcd_c(dword), GeomVertexData::unpack_abcd_b(dword), @@ -2860,7 +2860,7 @@ get_data4f(const unsigned char *pointer) { case NT_packed_dabc: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v4.set(GeomVertexData::unpack_abcd_b(dword), GeomVertexData::unpack_abcd_c(dword), GeomVertexData::unpack_abcd_d(dword), @@ -2888,21 +2888,21 @@ get_data4f(const unsigned char *pointer) { case NT_int8: { - const PN_int8 *pi = (const PN_int8 *)pointer; + const int8_t *pi = (const int8_t *)pointer; _v4.set(pi[0], pi[1], pi[2], pi[3]); } return _v4; case NT_int16: { - const PN_int16 *pi = (const PN_int16 *)pointer; + const int16_t *pi = (const int16_t *)pointer; _v4.set(pi[0], pi[1], pi[2], pi[3]); } return _v4; case NT_int32: { - const PN_int32 *pi = (const PN_int32 *)pointer; + const int32_t *pi = (const int32_t *)pointer; _v4.set(pi[0], pi[1], pi[2], pi[3]); } return _v4; @@ -2985,28 +2985,28 @@ get_data4d(const unsigned char *pointer) { switch (_column->get_numeric_type()) { case NT_uint8: { - const PN_uint8 *pi = (const PN_uint8 *)pointer; + const uint8_t *pi = (const uint8_t *)pointer; _v4d.set(pi[0], pi[1], pi[2], pi[3]); } return _v4d; case NT_uint16: { - const PN_uint16 *pi = (const PN_uint16 *)pointer; + const uint16_t *pi = (const uint16_t *)pointer; _v4d.set(pi[0], pi[1], pi[2], pi[3]); } return _v4d; case NT_uint32: { - const PN_uint32 *pi = (const PN_uint32 *)pointer; + const uint32_t *pi = (const uint32_t *)pointer; _v4d.set(pi[0], pi[1], pi[2], pi[3]); } return _v4d; case NT_packed_dcba: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v4d.set(GeomVertexData::unpack_abcd_d(dword), GeomVertexData::unpack_abcd_c(dword), GeomVertexData::unpack_abcd_b(dword), @@ -3016,7 +3016,7 @@ get_data4d(const unsigned char *pointer) { case NT_packed_dabc: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v4d.set(GeomVertexData::unpack_abcd_b(dword), GeomVertexData::unpack_abcd_c(dword), GeomVertexData::unpack_abcd_d(dword), @@ -3044,21 +3044,21 @@ get_data4d(const unsigned char *pointer) { case NT_int8: { - const PN_int8 *pi = (const PN_int8 *)pointer; + const int8_t *pi = (const int8_t *)pointer; _v4d.set(pi[0], pi[1], pi[2], pi[3]); } return _v4d; case NT_int16: { - const PN_int16 *pi = (const PN_int16 *)pointer; + const int16_t *pi = (const int16_t *)pointer; _v4d.set(pi[0], pi[1], pi[2], pi[3]); } return _v4d; case NT_int32: { - const PN_int32 *pi = (const PN_int32 *)pointer; + const int32_t *pi = (const int32_t *)pointer; _v4d.set(pi[0], pi[1], pi[2], pi[3]); } return _v4d; @@ -3130,7 +3130,7 @@ set_data4f(unsigned char *pointer, const LVecBase4f &data) { switch (_column->get_numeric_type()) { case NT_uint8: { - PN_uint8 *pi = (PN_uint8 *)pointer; + uint8_t *pi = (uint8_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; pi[2] = (unsigned int)data[2]; @@ -3140,7 +3140,7 @@ set_data4f(unsigned char *pointer, const LVecBase4f &data) { case NT_uint16: { - PN_uint16 *pi = (PN_uint16 *)pointer; + uint16_t *pi = (uint16_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; pi[2] = (unsigned int)data[2]; @@ -3150,7 +3150,7 @@ set_data4f(unsigned char *pointer, const LVecBase4f &data) { case NT_uint32: { - PN_uint32 *pi = (PN_uint32 *)pointer; + uint32_t *pi = (uint32_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; pi[2] = (unsigned int)data[2]; @@ -3159,11 +3159,11 @@ set_data4f(unsigned char *pointer, const LVecBase4f &data) { break; case NT_packed_dcba: - *(PN_uint32 *)pointer = GeomVertexData::pack_abcd(data[3], data[2], data[1], data[0]); + *(uint32_t *)pointer = GeomVertexData::pack_abcd(data[3], data[2], data[1], data[0]); break; case NT_packed_dabc: - *(PN_uint32 *)pointer = GeomVertexData::pack_abcd(data[3], data[0], data[1], data[2]); + *(uint32_t *)pointer = GeomVertexData::pack_abcd(data[3], data[0], data[1], data[2]); break; case NT_float32: @@ -3192,7 +3192,7 @@ set_data4f(unsigned char *pointer, const LVecBase4f &data) { case NT_int8: { - PN_int8 *pi = (PN_int8 *)pointer; + int8_t *pi = (int8_t *)pointer; pi[0] = (int)data[0]; pi[1] = (int)data[1]; pi[2] = (int)data[2]; @@ -3202,7 +3202,7 @@ set_data4f(unsigned char *pointer, const LVecBase4f &data) { case NT_int16: { - PN_int16 *pi = (PN_int16 *)pointer; + int16_t *pi = (int16_t *)pointer; pi[0] = (int)data[0]; pi[1] = (int)data[1]; pi[2] = (int)data[2]; @@ -3212,7 +3212,7 @@ set_data4f(unsigned char *pointer, const LVecBase4f &data) { case NT_int32: { - PN_int32 *pi = (PN_int32 *)pointer; + int32_t *pi = (int32_t *)pointer; pi[0] = (int)data[0]; pi[1] = (int)data[1]; pi[2] = (int)data[2]; @@ -3286,7 +3286,7 @@ set_data4d(unsigned char *pointer, const LVecBase4d &data) { switch (_column->get_numeric_type()) { case NT_uint8: { - PN_uint8 *pi = (PN_uint8 *)pointer; + uint8_t *pi = (uint8_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; pi[2] = (unsigned int)data[2]; @@ -3296,7 +3296,7 @@ set_data4d(unsigned char *pointer, const LVecBase4d &data) { case NT_uint16: { - PN_uint16 *pi = (PN_uint16 *)pointer; + uint16_t *pi = (uint16_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; pi[2] = (unsigned int)data[2]; @@ -3306,7 +3306,7 @@ set_data4d(unsigned char *pointer, const LVecBase4d &data) { case NT_uint32: { - PN_uint32 *pi = (PN_uint32 *)pointer; + uint32_t *pi = (uint32_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; pi[2] = (unsigned int)data[2]; @@ -3315,11 +3315,11 @@ set_data4d(unsigned char *pointer, const LVecBase4d &data) { break; case NT_packed_dcba: - *(PN_uint32 *)pointer = GeomVertexData::pack_abcd(data[3], data[2], data[1], data[0]); + *(uint32_t *)pointer = GeomVertexData::pack_abcd(data[3], data[2], data[1], data[0]); break; case NT_packed_dabc: - *(PN_uint32 *)pointer = GeomVertexData::pack_abcd(data[3], data[0], data[1], data[2]); + *(uint32_t *)pointer = GeomVertexData::pack_abcd(data[3], data[0], data[1], data[2]); break; case NT_float32: @@ -3348,7 +3348,7 @@ set_data4d(unsigned char *pointer, const LVecBase4d &data) { case NT_int8: { - PN_int8 *pi = (PN_int8 *)pointer; + int8_t *pi = (int8_t *)pointer; pi[0] = (int)data[0]; pi[1] = (int)data[1]; pi[2] = (int)data[2]; @@ -3358,7 +3358,7 @@ set_data4d(unsigned char *pointer, const LVecBase4d &data) { case NT_int16: { - PN_int16 *pi = (PN_int16 *)pointer; + int16_t *pi = (int16_t *)pointer; pi[0] = (int)data[0]; pi[1] = (int)data[1]; pi[2] = (int)data[2]; @@ -3368,7 +3368,7 @@ set_data4d(unsigned char *pointer, const LVecBase4d &data) { case NT_int32: { - PN_int32 *pi = (PN_int32 *)pointer; + int32_t *pi = (int32_t *)pointer; pi[0] = (int)data[0]; pi[1] = (int)data[1]; pi[2] = (int)data[2]; @@ -3391,23 +3391,23 @@ float GeomVertexColumn::Packer_color:: get_data1f(const unsigned char *pointer) { switch (_column->get_numeric_type()) { case NT_uint8: - return (*(const PN_uint8 *)pointer) / 255.0f; + return (*(const uint8_t *)pointer) / 255.0f; case NT_uint16: - return (*(const PN_uint16 *)pointer) / 65535.0f; + return (*(const uint16_t *)pointer) / 65535.0f; case NT_uint32: - return (*(const PN_uint32 *)pointer) / 4294967295.0f; + return (*(const uint32_t *)pointer) / 4294967295.0f; case NT_packed_dcba: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; return GeomVertexData::unpack_abcd_d(dword) / 255.0f; } case NT_packed_dabc: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; return GeomVertexData::unpack_abcd_b(dword) / 255.0f; } @@ -3449,7 +3449,7 @@ get_data3f(const unsigned char *pointer) { switch (_column->get_numeric_type()) { case NT_uint8: { - const PN_uint8 *pi = (const PN_uint8 *)pointer; + const uint8_t *pi = (const uint8_t *)pointer; _v3.set(pi[0], pi[1], pi[2]); _v3 /= 255.0f; } @@ -3457,7 +3457,7 @@ get_data3f(const unsigned char *pointer) { case NT_uint16: { - const PN_uint16 *pi = (const PN_uint16 *)pointer; + const uint16_t *pi = (const uint16_t *)pointer; _v3.set(pi[0], pi[1], pi[2]); _v3 /= 65535.0f; } @@ -3465,7 +3465,7 @@ get_data3f(const unsigned char *pointer) { case NT_uint32: { - const PN_uint32 *pi = (const PN_uint32 *)pointer; + const uint32_t *pi = (const uint32_t *)pointer; _v3.set(pi[0], pi[1], pi[2]); _v3 /= 4294967295.0f; } @@ -3499,7 +3499,7 @@ get_data3f(const unsigned char *pointer) { case NT_packed_ufloat: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v3.set(GeomVertexData::unpack_ufloat_a(dword), GeomVertexData::unpack_ufloat_b(dword), GeomVertexData::unpack_ufloat_c(dword)); @@ -3528,7 +3528,7 @@ get_data4f(const unsigned char *pointer) { switch (_column->get_numeric_type()) { case NT_uint8: { - const PN_uint8 *pi = (const PN_uint8 *)pointer; + const uint8_t *pi = (const uint8_t *)pointer; _v4.set(pi[0], pi[1], pi[2], pi[3]); _v4 /= 255.0f; } @@ -3536,7 +3536,7 @@ get_data4f(const unsigned char *pointer) { case NT_uint16: { - const PN_uint16 *pi = (const PN_uint16 *)pointer; + const uint16_t *pi = (const uint16_t *)pointer; _v4.set(pi[0], pi[1], pi[2], pi[3]); _v4 /= 65535.0f; } @@ -3544,7 +3544,7 @@ get_data4f(const unsigned char *pointer) { case NT_uint32: { - const PN_uint32 *pi = (const PN_uint32 *)pointer; + const uint32_t *pi = (const uint32_t *)pointer; _v4.set(pi[0], pi[1], pi[2], pi[3]); _v4 /= 4294967295.0f; } @@ -3552,7 +3552,7 @@ get_data4f(const unsigned char *pointer) { case NT_packed_dcba: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v4.set(GeomVertexData::unpack_abcd_d(dword), GeomVertexData::unpack_abcd_c(dword), GeomVertexData::unpack_abcd_b(dword), @@ -3563,7 +3563,7 @@ get_data4f(const unsigned char *pointer) { case NT_packed_dabc: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v4.set(GeomVertexData::unpack_abcd_b(dword), GeomVertexData::unpack_abcd_c(dword), GeomVertexData::unpack_abcd_d(dword), @@ -3606,23 +3606,23 @@ double GeomVertexColumn::Packer_color:: get_data1d(const unsigned char *pointer) { switch (_column->get_numeric_type()) { case NT_uint8: - return (*(const PN_uint8 *)pointer) / 255.0; + return (*(const uint8_t *)pointer) / 255.0; case NT_uint16: - return (*(const PN_uint16 *)pointer) / 65535.0; + return (*(const uint16_t *)pointer) / 65535.0; case NT_uint32: - return (*(const PN_uint32 *)pointer) / 4294967295.0; + return (*(const uint32_t *)pointer) / 4294967295.0; case NT_packed_dcba: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; return GeomVertexData::unpack_abcd_d(dword) / 255.0; } case NT_packed_dabc: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; return GeomVertexData::unpack_abcd_b(dword) / 255.0; } @@ -3664,7 +3664,7 @@ get_data3d(const unsigned char *pointer) { switch (_column->get_numeric_type()) { case NT_uint8: { - const PN_uint8 *pi = (const PN_uint8 *)pointer; + const uint8_t *pi = (const uint8_t *)pointer; _v3d.set(pi[0], pi[1], pi[2]); _v3d /= 255.0; } @@ -3672,7 +3672,7 @@ get_data3d(const unsigned char *pointer) { case NT_uint16: { - const PN_uint16 *pi = (const PN_uint16 *)pointer; + const uint16_t *pi = (const uint16_t *)pointer; _v3d.set(pi[0], pi[1], pi[2]); _v3d /= 65535.0; } @@ -3680,7 +3680,7 @@ get_data3d(const unsigned char *pointer) { case NT_uint32: { - const PN_uint32 *pi = (const PN_uint32 *)pointer; + const uint32_t *pi = (const uint32_t *)pointer; _v3d.set(pi[0], pi[1], pi[2]); _v3d /= 4294967295.0; } @@ -3714,7 +3714,7 @@ get_data3d(const unsigned char *pointer) { case NT_packed_ufloat: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v3d.set(GeomVertexData::unpack_ufloat_a(dword), GeomVertexData::unpack_ufloat_b(dword), GeomVertexData::unpack_ufloat_c(dword)); @@ -3743,7 +3743,7 @@ get_data4d(const unsigned char *pointer) { switch (_column->get_numeric_type()) { case NT_uint8: { - const PN_uint8 *pi = (const PN_uint8 *)pointer; + const uint8_t *pi = (const uint8_t *)pointer; _v4d.set(pi[0], pi[1], pi[2], pi[3]); _v4d /= 255.0; } @@ -3751,7 +3751,7 @@ get_data4d(const unsigned char *pointer) { case NT_uint16: { - const PN_uint16 *pi = (const PN_uint16 *)pointer; + const uint16_t *pi = (const uint16_t *)pointer; _v4d.set(pi[0], pi[1], pi[2], pi[3]); _v4d /= 65535.0; } @@ -3759,7 +3759,7 @@ get_data4d(const unsigned char *pointer) { case NT_uint32: { - const PN_uint32 *pi = (const PN_uint32 *)pointer; + const uint32_t *pi = (const uint32_t *)pointer; _v4d.set(pi[0], pi[1], pi[2], pi[3]); _v4d /= 4294967295.0; } @@ -3767,7 +3767,7 @@ get_data4d(const unsigned char *pointer) { case NT_packed_dcba: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v4d.set(GeomVertexData::unpack_abcd_d(dword), GeomVertexData::unpack_abcd_c(dword), GeomVertexData::unpack_abcd_b(dword), @@ -3778,7 +3778,7 @@ get_data4d(const unsigned char *pointer) { case NT_packed_dabc: { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v4d.set(GeomVertexData::unpack_abcd_b(dword), GeomVertexData::unpack_abcd_c(dword), GeomVertexData::unpack_abcd_d(dword), @@ -3848,7 +3848,7 @@ set_data3f(unsigned char *pointer, const LVecBase3f &data) { case NT_uint8: { LVecBase3f scaled = data * 255.0f; - PN_uint8 *pi = (PN_uint8 *)pointer; + uint8_t *pi = (uint8_t *)pointer; pi[0] = (unsigned int)scaled[0]; pi[1] = (unsigned int)scaled[1]; pi[2] = (unsigned int)scaled[2]; @@ -3858,7 +3858,7 @@ set_data3f(unsigned char *pointer, const LVecBase3f &data) { case NT_uint16: { LVecBase3f scaled = data * 65535.0f; - PN_uint16 *pi = (PN_uint16 *)pointer; + uint16_t *pi = (uint16_t *)pointer; pi[0] = (unsigned int)scaled[0]; pi[1] = (unsigned int)scaled[1]; pi[2] = (unsigned int)scaled[2]; @@ -3868,7 +3868,7 @@ set_data3f(unsigned char *pointer, const LVecBase3f &data) { case NT_uint32: { LVecBase3f scaled = data * 4294967295.0f; - PN_uint32 *pi = (PN_uint32 *)pointer; + uint32_t *pi = (uint32_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; pi[2] = (unsigned int)data[2]; @@ -3878,7 +3878,7 @@ set_data3f(unsigned char *pointer, const LVecBase3f &data) { case NT_packed_dcba: { LVecBase3f scaled = data * 255.0f; - *(PN_uint32 *)pointer = GeomVertexData::pack_abcd( + *(uint32_t *)pointer = GeomVertexData::pack_abcd( 1.0f, scaled[2], scaled[1], scaled[0]); } break; @@ -3886,7 +3886,7 @@ set_data3f(unsigned char *pointer, const LVecBase3f &data) { case NT_packed_dabc: { LVecBase3f scaled = data * 255.0f; - *(PN_uint32 *)pointer = GeomVertexData::pack_abcd( + *(uint32_t *)pointer = GeomVertexData::pack_abcd( 1.0f, scaled[0], scaled[1], scaled[2]); } break; @@ -3917,7 +3917,7 @@ set_data3f(unsigned char *pointer, const LVecBase3f &data) { break; case NT_packed_ufloat: - *(PN_uint32 *)pointer = GeomVertexData::pack_ufloat(data[0], data[1], data[2]); + *(uint32_t *)pointer = GeomVertexData::pack_ufloat(data[0], data[1], data[2]); break; } } else { @@ -3937,7 +3937,7 @@ set_data4f(unsigned char *pointer, const LVecBase4f &data) { case NT_uint8: { LVecBase4f scaled = data * 255.0f; - PN_uint8 *pi = (PN_uint8 *)pointer; + uint8_t *pi = (uint8_t *)pointer; pi[0] = (unsigned int)scaled[0]; pi[1] = (unsigned int)scaled[1]; pi[2] = (unsigned int)scaled[2]; @@ -3948,7 +3948,7 @@ set_data4f(unsigned char *pointer, const LVecBase4f &data) { case NT_uint16: { LVecBase4f scaled = data * 65535.0f; - PN_uint16 *pi = (PN_uint16 *)pointer; + uint16_t *pi = (uint16_t *)pointer; pi[0] = (unsigned int)scaled[0]; pi[1] = (unsigned int)scaled[1]; pi[2] = (unsigned int)scaled[2]; @@ -3959,7 +3959,7 @@ set_data4f(unsigned char *pointer, const LVecBase4f &data) { case NT_uint32: { LVecBase4f scaled = data * 4294967295.0f; - PN_uint32 *pi = (PN_uint32 *)pointer; + uint32_t *pi = (uint32_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; pi[2] = (unsigned int)data[2]; @@ -3970,7 +3970,7 @@ set_data4f(unsigned char *pointer, const LVecBase4f &data) { case NT_packed_dcba: { LVecBase4f scaled = data * 255.0f; - *(PN_uint32 *)pointer = GeomVertexData::pack_abcd( + *(uint32_t *)pointer = GeomVertexData::pack_abcd( scaled[3], scaled[2], scaled[1], scaled[0]); } break; @@ -3978,7 +3978,7 @@ set_data4f(unsigned char *pointer, const LVecBase4f &data) { case NT_packed_dabc: { LVecBase4f scaled = data * 255.0f; - *(PN_uint32 *)pointer = GeomVertexData::pack_abcd( + *(uint32_t *)pointer = GeomVertexData::pack_abcd( scaled[3], scaled[0], scaled[1], scaled[2]); } break; @@ -4051,7 +4051,7 @@ set_data3d(unsigned char *pointer, const LVecBase3d &data) { case NT_uint8: { LVecBase3d scaled = data * 255.0; - PN_uint8 *pi = (PN_uint8 *)pointer; + uint8_t *pi = (uint8_t *)pointer; pi[0] = (unsigned int)scaled[0]; pi[1] = (unsigned int)scaled[1]; pi[2] = (unsigned int)scaled[2]; @@ -4061,7 +4061,7 @@ set_data3d(unsigned char *pointer, const LVecBase3d &data) { case NT_uint16: { LVecBase3d scaled = data * 65535.0; - PN_uint16 *pi = (PN_uint16 *)pointer; + uint16_t *pi = (uint16_t *)pointer; pi[0] = (unsigned int)scaled[0]; pi[1] = (unsigned int)scaled[1]; pi[2] = (unsigned int)scaled[2]; @@ -4071,7 +4071,7 @@ set_data3d(unsigned char *pointer, const LVecBase3d &data) { case NT_uint32: { LVecBase3d scaled = data * 4294967295.0; - PN_uint32 *pi = (PN_uint32 *)pointer; + uint32_t *pi = (uint32_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; pi[2] = (unsigned int)data[2]; @@ -4081,7 +4081,7 @@ set_data3d(unsigned char *pointer, const LVecBase3d &data) { case NT_packed_dcba: { LVecBase3d scaled = data * 255.0; - *(PN_uint32 *)pointer = GeomVertexData::pack_abcd( + *(uint32_t *)pointer = GeomVertexData::pack_abcd( 1.0, scaled[2], scaled[1], scaled[0]); } break; @@ -4089,7 +4089,7 @@ set_data3d(unsigned char *pointer, const LVecBase3d &data) { case NT_packed_dabc: { LVecBase3d scaled = data * 255.0; - *(PN_uint32 *)pointer = GeomVertexData::pack_abcd( + *(uint32_t *)pointer = GeomVertexData::pack_abcd( 1.0, scaled[0], scaled[1], scaled[2]); } break; @@ -4120,7 +4120,7 @@ set_data3d(unsigned char *pointer, const LVecBase3d &data) { break; case NT_packed_ufloat: - *(PN_uint32 *)pointer = GeomVertexData::pack_ufloat(data[0], data[1], data[2]); + *(uint32_t *)pointer = GeomVertexData::pack_ufloat(data[0], data[1], data[2]); break; } } else { @@ -4140,7 +4140,7 @@ set_data4d(unsigned char *pointer, const LVecBase4d &data) { case NT_uint8: { LVecBase4d scaled = data * 255.0; - PN_uint8 *pi = (PN_uint8 *)pointer; + uint8_t *pi = (uint8_t *)pointer; pi[0] = (unsigned int)scaled[0]; pi[1] = (unsigned int)scaled[1]; pi[2] = (unsigned int)scaled[2]; @@ -4151,7 +4151,7 @@ set_data4d(unsigned char *pointer, const LVecBase4d &data) { case NT_uint16: { LVecBase4d scaled = data * 65535.0; - PN_uint16 *pi = (PN_uint16 *)pointer; + uint16_t *pi = (uint16_t *)pointer; pi[0] = (unsigned int)scaled[0]; pi[1] = (unsigned int)scaled[1]; pi[2] = (unsigned int)scaled[2]; @@ -4162,7 +4162,7 @@ set_data4d(unsigned char *pointer, const LVecBase4d &data) { case NT_uint32: { LVecBase4d scaled = data * 4294967295.0; - PN_uint32 *pi = (PN_uint32 *)pointer; + uint32_t *pi = (uint32_t *)pointer; pi[0] = (unsigned int)data[0]; pi[1] = (unsigned int)data[1]; pi[2] = (unsigned int)data[2]; @@ -4173,7 +4173,7 @@ set_data4d(unsigned char *pointer, const LVecBase4d &data) { case NT_packed_dcba: { LVecBase4d scaled = data * 255.0; - *(PN_uint32 *)pointer = GeomVertexData::pack_abcd( + *(uint32_t *)pointer = GeomVertexData::pack_abcd( scaled[3], scaled[2], scaled[1], scaled[0]); } break; @@ -4181,7 +4181,7 @@ set_data4d(unsigned char *pointer, const LVecBase4d &data) { case NT_packed_dabc: { LVecBase4d scaled = data * 255.0; - *(PN_uint32 *)pointer = GeomVertexData::pack_abcd( + *(uint32_t *)pointer = GeomVertexData::pack_abcd( scaled[3], scaled[0], scaled[1], scaled[2]); } break; @@ -4457,7 +4457,7 @@ get_data4d(const unsigned char *pointer) { */ const LVecBase4f &GeomVertexColumn::Packer_argb_packed:: get_data4f(const unsigned char *pointer) { - PN_uint32 dword = *(const PN_uint32 *)pointer; + uint32_t dword = *(const uint32_t *)pointer; _v4.set(GeomVertexData::unpack_abcd_b(dword), GeomVertexData::unpack_abcd_c(dword), GeomVertexData::unpack_abcd_d(dword), @@ -4473,7 +4473,7 @@ void GeomVertexColumn::Packer_argb_packed:: set_data4f(unsigned char *pointer, const LVecBase4f &data) { // when packing an argb, we want to make sure we cap the input values at 1 // since going above one will cause the value to be truncated. - *(PN_uint32 *)pointer = GeomVertexData::pack_abcd + *(uint32_t *)pointer = GeomVertexData::pack_abcd ((unsigned int)(min(max(data[3], 0.0f), 1.0f) * 255.0f), (unsigned int)(min(max(data[0], 0.0f), 1.0f) * 255.0f), (unsigned int)(min(max(data[1], 0.0f), 1.0f) * 255.0f), @@ -4537,7 +4537,7 @@ get_data4f(const unsigned char *pointer) { */ int GeomVertexColumn::Packer_uint16_1:: get_data1i(const unsigned char *pointer) { - return *(const PN_uint16 *)pointer; + return *(const uint16_t *)pointer; } /** @@ -4545,6 +4545,6 @@ get_data1i(const unsigned char *pointer) { */ void GeomVertexColumn::Packer_uint16_1:: set_data1i(unsigned char *pointer, int data) { - *(PN_uint16 *)pointer = data; - nassertv(*(PN_uint16 *)pointer == data); + *(uint16_t *)pointer = data; + nassertv(*(uint16_t *)pointer == data); } diff --git a/panda/src/gobj/geomVertexData.I b/panda/src/gobj/geomVertexData.I index 0d32813912..dfb2138c1a 100644 --- a/panda/src/gobj/geomVertexData.I +++ b/panda/src/gobj/geomVertexData.I @@ -273,7 +273,7 @@ get_modified(Thread *current_thread) const { /** * Packs four values in a DirectX-style NT_packed_abcd value. */ -INLINE PN_uint32 GeomVertexData:: +INLINE uint32_t GeomVertexData:: pack_abcd(unsigned int a, unsigned int b, unsigned int c, unsigned int d) { return (((a & 0xff) << 24) | @@ -286,7 +286,7 @@ pack_abcd(unsigned int a, unsigned int b, * Returns the first packed value from a DirectX-style NT_packed_abcd. */ INLINE unsigned int GeomVertexData:: -unpack_abcd_a(PN_uint32 data) { +unpack_abcd_a(uint32_t data) { return (data >> 24) & 0xff; } @@ -294,7 +294,7 @@ unpack_abcd_a(PN_uint32 data) { * Returns the second packed value from a DirectX-style NT_packed_abcd. */ INLINE unsigned int GeomVertexData:: -unpack_abcd_b(PN_uint32 data) { +unpack_abcd_b(uint32_t data) { return (data >> 16) & 0xff; } @@ -302,7 +302,7 @@ unpack_abcd_b(PN_uint32 data) { * Returns the third packed value from a DirectX-style NT_packed_abcd. */ INLINE unsigned int GeomVertexData:: -unpack_abcd_c(PN_uint32 data) { +unpack_abcd_c(uint32_t data) { return (data >> 8) & 0xff; } @@ -310,19 +310,19 @@ unpack_abcd_c(PN_uint32 data) { * Returns the fourth packed value from a DirectX-style NT_packed_abcd. */ INLINE unsigned int GeomVertexData:: -unpack_abcd_d(PN_uint32 data) { +unpack_abcd_d(uint32_t data) { return data & 0xff; } /** * Packs three float values in an unsigned 32-bit int. */ -INLINE PN_uint32 GeomVertexData:: +INLINE uint32_t GeomVertexData:: pack_ufloat(float a, float b, float c) { // Since we have to clamp both low exponents and negative numbers to 0, it's // easier to see a float as having a 9-bit signed exponent. union { - PN_int32 _packed; + int32_t _packed; float _float; } f0, f1, f2; @@ -335,7 +335,7 @@ pack_ufloat(float a, float b, float c) { // normalized float 4. exponent 0: denormal float 5. zero or anything // negative, clamped to 0 - PN_uint32 packed = 0; + uint32_t packed = 0; if ((f0._packed & 0x7f800000) == 0x7f800000 && (unsigned)f0._packed != 0xff800000u) { packed |= (f0._packed >> 17) & 0x7ffu; @@ -374,14 +374,14 @@ pack_ufloat(float a, float b, float c) { * Unpacks an unsigned float11 value from an uint32. */ INLINE float GeomVertexData:: -unpack_ufloat_a(PN_uint32 data) { +unpack_ufloat_a(uint32_t data) { if ((data & 0x7c0) == 0) { // Denormal float (includes zero). return ldexpf((data & 63) / 64.0f, -14); } union { - PN_uint32 _packed; + uint32_t _packed; float _float; } value; value._packed = ((data & 0x7ff) << 17); @@ -400,14 +400,14 @@ unpack_ufloat_a(PN_uint32 data) { * Unpacks an unsigned float11 value from an uint32. */ INLINE float GeomVertexData:: -unpack_ufloat_b(PN_uint32 data) { +unpack_ufloat_b(uint32_t data) { if ((data & 0x3e0000) == 0) { // Denormal float (includes zero). return ldexpf(((data >> 11) & 63) / 64.0f, -14); } union { - PN_uint32 _packed; + uint32_t _packed; float _float; } value; value._packed = ((data & 0x3ff800) << 6); @@ -426,14 +426,14 @@ unpack_ufloat_b(PN_uint32 data) { * Unpacks an unsigned float10 value from an uint32. */ INLINE float GeomVertexData:: -unpack_ufloat_c(PN_uint32 data) { +unpack_ufloat_c(uint32_t data) { if ((data & 0xf8000000u) == 0) { // Denormal float (includes zero). return ldexpf(((data >> 22) & 31) / 32.0f, -14); } union { - PN_uint32 _packed; + uint32_t _packed; float _float; } value; value._packed = ((data & 0xffc00000u) >> 4); diff --git a/panda/src/gobj/geomVertexData.cxx b/panda/src/gobj/geomVertexData.cxx index 9b1aa50d84..6b73e4fe0f 100644 --- a/panda/src/gobj/geomVertexData.cxx +++ b/panda/src/gobj/geomVertexData.cxx @@ -1434,7 +1434,7 @@ packed_argb_to_uint8_rgba(unsigned char *to, int to_stride, } while (num_records > 0) { - PN_uint32 dword = *(const PN_uint32 *)from; + uint32_t dword = *(const uint32_t *)from; to[0] = unpack_abcd_b(dword); to[1] = unpack_abcd_c(dword); to[2] = unpack_abcd_d(dword); @@ -1461,7 +1461,7 @@ uint8_rgba_to_packed_argb(unsigned char *to, int to_stride, } while (num_records > 0) { - *(PN_uint32 *)to = pack_abcd(from[3], from[0], from[1], from[2]); + *(uint32_t *)to = pack_abcd(from[3], from[0], from[1], from[2]); to += to_stride; from += from_stride; @@ -2515,7 +2515,7 @@ set_num_rows(int n) { case NT_packed_ufloat: while (pointer < stop) { - *(PN_int32 *)pointer = 0x781e03c0; + *(int32_t *)pointer = 0x781e03c0; pointer += stride; } break; diff --git a/panda/src/gobj/geomVertexData.h b/panda/src/gobj/geomVertexData.h index 11f76df880..cfb592529d 100644 --- a/panda/src/gobj/geomVertexData.h +++ b/panda/src/gobj/geomVertexData.h @@ -170,17 +170,17 @@ PUBLISHED: void clear_cache_stage(); public: - static INLINE PN_uint32 pack_abcd(unsigned int a, unsigned int b, + static INLINE uint32_t pack_abcd(unsigned int a, unsigned int b, unsigned int c, unsigned int d); - static INLINE unsigned int unpack_abcd_a(PN_uint32 data); - static INLINE unsigned int unpack_abcd_b(PN_uint32 data); - static INLINE unsigned int unpack_abcd_c(PN_uint32 data); - static INLINE unsigned int unpack_abcd_d(PN_uint32 data); + static INLINE unsigned int unpack_abcd_a(uint32_t data); + static INLINE unsigned int unpack_abcd_b(uint32_t data); + static INLINE unsigned int unpack_abcd_c(uint32_t data); + static INLINE unsigned int unpack_abcd_d(uint32_t data); - static INLINE PN_uint32 pack_ufloat(float a, float b, float c); - static INLINE float unpack_ufloat_a(PN_uint32 data); - static INLINE float unpack_ufloat_b(PN_uint32 data); - static INLINE float unpack_ufloat_c(PN_uint32 data); + static INLINE uint32_t pack_ufloat(float a, float b, float c); + static INLINE float unpack_ufloat_a(uint32_t data); + static INLINE float unpack_ufloat_b(uint32_t data); + static INLINE float unpack_ufloat_c(uint32_t data); private: static void do_set_color(GeomVertexData *vdata, const LColor &color); diff --git a/panda/src/gobj/shader.I b/panda/src/gobj/shader.I index 1238fc5410..166343f10d 100644 --- a/panda/src/gobj/shader.I +++ b/panda/src/gobj/shader.I @@ -635,7 +635,7 @@ ShaderPtrData(const LVecBase2i &vec) : INLINE void Shader::ShaderPtrData:: write_datagram(Datagram &dg) const { dg.add_uint8(_type); - dg.add_uint32((PN_uint32)_size); + dg.add_uint32((uint32_t)_size); if (_type == SPT_double) { const double *data = (const double *) _ptr; diff --git a/panda/src/gobj/texture.cxx b/panda/src/gobj/texture.cxx index f8654d265c..915be360f6 100644 --- a/panda/src/gobj/texture.cxx +++ b/panda/src/gobj/texture.cxx @@ -1035,7 +1035,7 @@ clear_ram_mipmap_image(int n) { PTA_uchar Texture:: modify_simple_ram_image() { CDWriter cdata(_cycler, true); - cdata->_simple_image_date_generated = (PN_int32)time(NULL); + cdata->_simple_image_date_generated = (int32_t)time(NULL); return cdata->_simple_ram_image._image; } @@ -1053,7 +1053,7 @@ new_simple_ram_image(int x_size, int y_size) { cdata->_simple_y_size = y_size; cdata->_simple_ram_image._image = PTA_uchar::empty_array(expected_page_size); cdata->_simple_ram_image._page_size = expected_page_size; - cdata->_simple_image_date_generated = (PN_int32)time(NULL); + cdata->_simple_image_date_generated = (int32_t)time(NULL); cdata->inc_simple_image_modified(); return cdata->_simple_ram_image._image; @@ -1139,7 +1139,7 @@ generate_simple_ram_image() { convert_from_pnmimage(image, expected_page_size, x_size, 0, 0, 0, scaled, 4, 1); do_set_simple_ram_image(cdata, image, x_size, y_size); - cdata->_simple_image_date_generated = (PN_int32)time(NULL); + cdata->_simple_image_date_generated = (int32_t)time(NULL); } /** @@ -5206,7 +5206,7 @@ do_uncompress_ram_image_bc4(const RamImage &compressed_image, unsigned const char *src = compressed_image._image.p() + z * compressed_image._page_size; // Unconvert one 4 x 4 block at a time. - PN_uint8 tbl[8]; + uint8_t tbl[8]; for (int y = 0; y < y_blocks; ++y) { for (int x = 0; x < x_blocks; ++x) { unsigned char *blk = dest; @@ -5273,8 +5273,8 @@ do_uncompress_ram_image_bc5(const RamImage &compressed_image, unsigned const char *src = compressed_image._image.p() + z * compressed_image._page_size; // Unconvert one 4 x 4 block at a time. - PN_uint8 red[8]; - PN_uint8 grn[8]; + uint8_t red[8]; + uint8_t grn[8]; for (int y = 0; y < y_blocks; ++y) { for (int x = 0; x < x_blocks; ++x) { unsigned char *blk = dest; @@ -6168,11 +6168,11 @@ get_ram_image_as(const string &requested_format) { // These ifs are for optimization of commonly used image types. if (cdata->_component_width == 1) { if (format == "RGBA" && cdata->_num_components == 4) { - const PN_uint32 *src = (const PN_uint32 *)data.p(); - PN_uint32 *dst = (PN_uint32 *)newdata.p(); + const uint32_t *src = (const uint32_t *)data.p(); + uint32_t *dst = (uint32_t *)newdata.p(); for (int p = 0; p < imgsize; ++p) { - PN_uint32 v = *src++; + uint32_t v = *src++; *dst++ = ((v & 0xff00ff00u)) | ((v & 0x00ff0000u) >> 16) | ((v & 0x000000ffu) << 16); @@ -6180,17 +6180,17 @@ get_ram_image_as(const string &requested_format) { return newdata; } if (format == "RGB" && cdata->_num_components == 4) { - const PN_uint32 *src = (const PN_uint32 *)data.p(); - PN_uint32 *dst = (PN_uint32 *)newdata.p(); + const uint32_t *src = (const uint32_t *)data.p(); + uint32_t *dst = (uint32_t *)newdata.p(); // Convert blocks of 4 pixels at a time, so that we can treat both the // source and destination as 32-bit integers. int blocks = imgsize >> 2; for (int i = 0; i < blocks; ++i) { - PN_uint32 v0 = *src++; - PN_uint32 v1 = *src++; - PN_uint32 v2 = *src++; - PN_uint32 v3 = *src++; + uint32_t v0 = *src++; + uint32_t v1 = *src++; + uint32_t v2 = *src++; + uint32_t v3 = *src++; *dst++ = ((v0 & 0x00ff0000u) >> 16) | ((v0 & 0x0000ff00u)) | ((v0 & 0x000000ffu) << 16) | @@ -6207,9 +6207,9 @@ get_ram_image_as(const string &requested_format) { // If the image size wasn't a multiple of 4, we may have a handful of // pixels left over. Convert those the slower way. - PN_uint8 *tail = (PN_uint8 *)dst; + uint8_t *tail = (uint8_t *)dst; for (int i = (imgsize & ~0x3); i < imgsize; ++i) { - PN_uint32 v = *src++; + uint32_t v = *src++; *tail++ = (v & 0x00ff0000u) >> 16; *tail++ = (v & 0x0000ff00u) >> 8; *tail++ = (v & 0x000000ffu); @@ -6217,17 +6217,17 @@ get_ram_image_as(const string &requested_format) { return newdata; } if (format == "BGR" && cdata->_num_components == 4) { - const PN_uint32 *src = (const PN_uint32 *)data.p(); - PN_uint32 *dst = (PN_uint32 *)newdata.p(); + const uint32_t *src = (const uint32_t *)data.p(); + uint32_t *dst = (uint32_t *)newdata.p(); // Convert blocks of 4 pixels at a time, so that we can treat both the // source and destination as 32-bit integers. int blocks = imgsize >> 2; for (int i = 0; i < blocks; ++i) { - PN_uint32 v0 = *src++; - PN_uint32 v1 = *src++; - PN_uint32 v2 = *src++; - PN_uint32 v3 = *src++; + uint32_t v0 = *src++; + uint32_t v1 = *src++; + uint32_t v2 = *src++; + uint32_t v3 = *src++; *dst++ = (v0 & 0x00ffffffu) | ((v1 & 0x000000ffu) << 24); *dst++ = ((v1 & 0x00ffff00u) >> 8) | ((v2 & 0x0000ffffu) << 16); *dst++ = ((v2 & 0x00ff0000u) >> 16) | ((v3 & 0x00ffffffu) << 8); @@ -6235,17 +6235,17 @@ get_ram_image_as(const string &requested_format) { // If the image size wasn't a multiple of 4, we may have a handful of // pixels left over. Convert those the slower way. - PN_uint8 *tail = (PN_uint8 *)dst; + uint8_t *tail = (uint8_t *)dst; for (int i = (imgsize & ~0x3); i < imgsize; ++i) { - PN_uint32 v = *src++; + uint32_t v = *src++; *tail++ = (v & 0x000000ffu); *tail++ = (v & 0x0000ff00u) >> 8; *tail++ = (v & 0x00ff0000u) >> 16; } return newdata; } - const PN_uint8 *src = (const PN_uint8 *)data.p(); - PN_uint8 *dst = (PN_uint8 *)newdata.p(); + const uint8_t *src = (const uint8_t *)data.p(); + uint8_t *dst = (uint8_t *)newdata.p(); if (format == "RGB" && cdata->_num_components == 3) { for (int i = 0; i < imgsize; ++i) { @@ -6335,7 +6335,7 @@ do_set_simple_ram_image(CData *cdata, CPTA_uchar image, int x_size, int y_size) cdata->_simple_y_size = y_size; cdata->_simple_ram_image._image = image.cast_non_const(); cdata->_simple_ram_image._page_size = image.size(); - cdata->_simple_image_date_generated = (PN_int32)time(NULL); + cdata->_simple_image_date_generated = (int32_t)time(NULL); cdata->inc_simple_image_modified(); } @@ -7019,9 +7019,9 @@ read_dds_level_abgr8(Texture *tex, CData *cdata, const DDSHeader &header, int n, unsigned char *p = image.p() + y * row_bytes; in.read((char *)p, row_bytes); - PN_uint32 *pw = (PN_uint32 *)p; + uint32_t *pw = (uint32_t *)p; for (int x = 0; x < x_size; ++x) { - PN_uint32 w = *pw; + uint32_t w = *pw; #ifdef WORDS_BIGENDIAN // bigendian: convert R, G, B, A to B, G, R, A. w = ((w & 0xff00) << 16) | ((w & 0xff000000U) >> 16) | (w & 0xff00ff); @@ -7075,7 +7075,7 @@ read_dds_level_abgr16(Texture *tex, CData *cdata, const DDSHeader &header, int n unsigned char *p = image.p() + y * row_bytes; in.read((char *)p, row_bytes); - PN_uint16 *pw = (PN_uint16 *)p; + uint16_t *pw = (uint16_t *)p; for (int x = 0; x < x_size; ++x) { swap(pw[0], pw[2]); pw += 4; @@ -7102,7 +7102,7 @@ read_dds_level_abgr32(Texture *tex, CData *cdata, const DDSHeader &header, int n unsigned char *p = image.p() + y * row_bytes; in.read((char *)p, row_bytes); - PN_uint32 *pw = (PN_uint32 *)p; + uint32_t *pw = (uint32_t *)p; for (int x = 0; x < x_size; ++x) { swap(pw[0], pw[2]); pw += 4; @@ -7331,8 +7331,8 @@ read_dds_level_bc1(Texture *tex, CData *cdata, const DDSHeader &header, int n, i for (int ci = 0; ci < num_cols; ++ci) { // . . . and (b) within each block, we reverse the 4 individual rows // of 4 pixels. - PN_uint32 *cells = (PN_uint32 *)p; - PN_uint32 w = cells[1]; + uint32_t *cells = (uint32_t *)p; + uint32_t w = cells[1]; w = ((w & 0xff) << 24) | ((w & 0xff00) << 8) | ((w & 0xff0000) >> 8) | ((w & 0xff000000U) >> 24); cells[1] = w; @@ -7346,8 +7346,8 @@ read_dds_level_bc1(Texture *tex, CData *cdata, const DDSHeader &header, int n, i in.read((char *)p, row_length); for (int ci = 0; ci < num_cols; ++ci) { - PN_uint32 *cells = (PN_uint32 *)p; - PN_uint32 w = cells[1]; + uint32_t *cells = (uint32_t *)p; + uint32_t w = cells[1]; w = ((w & 0xff) << 8) | ((w & 0xff00) >> 8); cells[1] = w; @@ -7401,11 +7401,11 @@ read_dds_level_bc2(Texture *tex, CData *cdata, const DDSHeader &header, int n, i for (int ci = 0; ci < num_cols; ++ci) { // . . . and (b) within each block, we reverse the 4 individual rows // of 4 pixels. - PN_uint32 *cells = (PN_uint32 *)p; + uint32_t *cells = (uint32_t *)p; // Alpha. The block is four 16-bit words of pixel data. - PN_uint32 w0 = cells[0]; - PN_uint32 w1 = cells[1]; + uint32_t w0 = cells[0]; + uint32_t w1 = cells[1]; w0 = ((w0 & 0xffff) << 16) | ((w0 & 0xffff0000U) >> 16); w1 = ((w1 & 0xffff) << 16) | ((w1 & 0xffff0000U) >> 16); cells[0] = w1; @@ -7413,7 +7413,7 @@ read_dds_level_bc2(Texture *tex, CData *cdata, const DDSHeader &header, int n, i // Color. Only the second 32-bit dword of the color block represents // the pixel data. - PN_uint32 w = cells[3]; + uint32_t w = cells[3]; w = ((w & 0xff) << 24) | ((w & 0xff00) << 8) | ((w & 0xff0000) >> 8) | ((w & 0xff000000U) >> 24); cells[3] = w; @@ -7427,13 +7427,13 @@ read_dds_level_bc2(Texture *tex, CData *cdata, const DDSHeader &header, int n, i in.read((char *)p, row_length); for (int ci = 0; ci < num_cols; ++ci) { - PN_uint32 *cells = (PN_uint32 *)p; + uint32_t *cells = (uint32_t *)p; - PN_uint32 w0 = cells[0]; + uint32_t w0 = cells[0]; w0 = ((w0 & 0xffff) << 16) | ((w0 & 0xffff0000U) >> 16); cells[0] = w0; - PN_uint32 w = cells[3]; + uint32_t w = cells[3]; w = ((w & 0xff) << 8) | ((w & 0xff00) >> 8); cells[3] = w; @@ -7487,7 +7487,7 @@ read_dds_level_bc3(Texture *tex, CData *cdata, const DDSHeader &header, int n, i for (int ci = 0; ci < num_cols; ++ci) { // . . . and (b) within each block, we reverse the 4 individual rows // of 4 pixels. - PN_uint32 *cells = (PN_uint32 *)p; + uint32_t *cells = (uint32_t *)p; // Alpha. The block is one 16-bit word of reference values, followed // by six words of pixel values, in 12-bit rows. Tricky to invert. @@ -7507,7 +7507,7 @@ read_dds_level_bc3(Texture *tex, CData *cdata, const DDSHeader &header, int n, i // Color. Only the second 32-bit dword of the color block represents // the pixel data. - PN_uint32 w = cells[3]; + uint32_t w = cells[3]; w = ((w & 0xff) << 24) | ((w & 0xff00) << 8) | ((w & 0xff0000) >> 8) | ((w & 0xff000000U) >> 24); cells[3] = w; @@ -7521,7 +7521,7 @@ read_dds_level_bc3(Texture *tex, CData *cdata, const DDSHeader &header, int n, i in.read((char *)p, row_length); for (int ci = 0; ci < num_cols; ++ci) { - PN_uint32 *cells = (PN_uint32 *)p; + uint32_t *cells = (uint32_t *)p; unsigned char p2 = p[2]; unsigned char p3 = p[3]; @@ -7531,11 +7531,11 @@ read_dds_level_bc3(Texture *tex, CData *cdata, const DDSHeader &header, int n, i p[3] = ((p2 & 0xf) << 4) | ((p4 & 0xf0) >> 4); p[4] = ((p3 & 0xf) << 4) | ((p2 & 0xf0) >> 4); - PN_uint32 w0 = cells[0]; + uint32_t w0 = cells[0]; w0 = ((w0 & 0xffff) << 16) | ((w0 & 0xffff0000U) >> 16); cells[0] = w0; - PN_uint32 w = cells[3]; + uint32_t w = cells[3]; w = ((w & 0xff) << 8) | ((w & 0xff00) >> 8); cells[3] = w; diff --git a/panda/src/gobj/texture.h b/panda/src/gobj/texture.h index a7115d4664..71d5784dcf 100644 --- a/panda/src/gobj/texture.h +++ b/panda/src/gobj/texture.h @@ -977,7 +977,7 @@ protected: RamImage _simple_ram_image; int _simple_x_size; int _simple_y_size; - PN_int32 _simple_image_date_generated; + int32_t _simple_image_date_generated; // This is the color that should be used when no image was given. bool _has_clear_color; diff --git a/panda/src/mathutil/fftCompressor.cxx b/panda/src/mathutil/fftCompressor.cxx index 47193445b9..f96c6f5f7c 100644 --- a/panda/src/mathutil/fftCompressor.cxx +++ b/panda/src/mathutil/fftCompressor.cxx @@ -849,7 +849,7 @@ write_run(Datagram &datagram, FFTCompressor::RunWidth run_width, // In the case of RW_double, we only write the numbers one at a time, // each time preceded by the RW_double flag. Hopefully this will happen // only rarely. - datagram.add_int8((PN_int8)RW_double); + datagram.add_int8((int8_t)RW_double); datagram.add_float64(*ri); } break; @@ -869,7 +869,7 @@ write_run(Datagram &datagram, FFTCompressor::RunWidth run_width, */ int FFTCompressor:: read_run(DatagramIterator &di, vector_double &run) { - PN_uint8 start = di.get_uint8(); + uint8_t start = di.get_uint8(); RunWidth run_width; int length; diff --git a/panda/src/movies/flacAudioCursor.cxx b/panda/src/movies/flacAudioCursor.cxx index 5618062536..3ea294c7ce 100644 --- a/panda/src/movies/flacAudioCursor.cxx +++ b/panda/src/movies/flacAudioCursor.cxx @@ -114,7 +114,7 @@ seek(double t) { * audio will be interleaved. */ void FlacAudioCursor:: -read_samples(int n, PN_int16 *data) { +read_samples(int n, int16_t *data) { int desired = n * _audio_channels; _samples_read += drflac_read_s16(_drflac, desired, data) / _audio_channels; } diff --git a/panda/src/movies/flacAudioCursor.h b/panda/src/movies/flacAudioCursor.h index 2b4633c871..4f68eb62a8 100644 --- a/panda/src/movies/flacAudioCursor.h +++ b/panda/src/movies/flacAudioCursor.h @@ -35,7 +35,7 @@ PUBLISHED: virtual void seek(double offset); public: - virtual void read_samples(int n, PN_int16 *data); + virtual void read_samples(int n, int16_t *data); bool _is_valid; diff --git a/panda/src/movies/microphoneAudioDS.cxx b/panda/src/movies/microphoneAudioDS.cxx index 6df15f1cfc..95412fb961 100644 --- a/panda/src/movies/microphoneAudioDS.cxx +++ b/panda/src/movies/microphoneAudioDS.cxx @@ -91,7 +91,7 @@ public: int _samples_per_buffer; public: - virtual void read_samples(int n, PN_int16 *data); + virtual void read_samples(int n, int16_t *data); virtual int ready() const; public: @@ -324,7 +324,7 @@ MicrophoneAudioCursorDS:: * */ void MicrophoneAudioCursorDS:: -read_samples(int n, PN_int16 *data) { +read_samples(int n, int16_t *data) { int orign = n; if (_handle) { while (1) { @@ -334,7 +334,7 @@ read_samples(int n, PN_int16 *data) { } // Find start of data in buffer. - PN_int16 *src = (PN_int16*)(_buffers[index]._storage); + int16_t *src = (int16_t*)(_buffers[index]._storage); src += (_offset * _audio_channels); // Decide how many samples to extract from this buffer. diff --git a/panda/src/movies/movieAudioCursor.I b/panda/src/movies/movieAudioCursor.I index adbb4dd7ba..64e14886fd 100644 --- a/panda/src/movies/movieAudioCursor.I +++ b/panda/src/movies/movieAudioCursor.I @@ -100,5 +100,5 @@ tell() const { */ INLINE void MovieAudioCursor:: skip_samples(int n) { - read_samples(n, (PN_int16*)0); + read_samples(n, (int16_t*)0); } diff --git a/panda/src/movies/movieAudioCursor.cxx b/panda/src/movies/movieAudioCursor.cxx index 2776dbe030..f386401103 100644 --- a/panda/src/movies/movieAudioCursor.cxx +++ b/panda/src/movies/movieAudioCursor.cxx @@ -46,7 +46,7 @@ MovieAudioCursor:: * audio will be interleaved. */ void MovieAudioCursor:: -read_samples(int n, PN_int16 *data) { +read_samples(int n, int16_t *data) { // This is the null implementation, which generates pure silence. Normally, // this method will be overridden by a subclass. @@ -71,7 +71,7 @@ read_samples(int n, PN_int16 *data) { */ void MovieAudioCursor:: read_samples(int n, Datagram *dg) { - PN_int16 tmp[4096]; + int16_t tmp[4096]; while (n > 0) { int blocksize = (4096 / _audio_channels); if (blocksize > n) blocksize = n; @@ -95,14 +95,14 @@ read_samples(int n, Datagram *dg) { string MovieAudioCursor:: read_samples(int n) { ostringstream result; - PN_int16 tmp[4096]; + int16_t tmp[4096]; while (n > 0) { int blocksize = (4096 / _audio_channels); if (blocksize > n) blocksize = n; int words = blocksize * _audio_channels; read_samples(blocksize, tmp); for (int i=0; i>8) & 255)); } diff --git a/panda/src/movies/movieAudioCursor.h b/panda/src/movies/movieAudioCursor.h index 731bc28f98..8d49c26ccf 100644 --- a/panda/src/movies/movieAudioCursor.h +++ b/panda/src/movies/movieAudioCursor.h @@ -51,7 +51,7 @@ PUBLISHED: string read_samples(int n); public: - virtual void read_samples(int n, PN_int16 *data); + virtual void read_samples(int n, int16_t *data); protected: PT(MovieAudio) _source; @@ -62,7 +62,7 @@ protected: bool _can_seek_fast; bool _aborted; double _last_seek; - PN_int64 _samples_read; + int64_t _samples_read; public: static TypeHandle get_class_type() { diff --git a/panda/src/movies/userDataAudio.cxx b/panda/src/movies/userDataAudio.cxx index ca71806f31..7575ad977b 100644 --- a/panda/src/movies/userDataAudio.cxx +++ b/panda/src/movies/userDataAudio.cxx @@ -58,7 +58,7 @@ open() { * audio will be interleaved. */ void UserDataAudio:: -read_samples(int n, PN_int16 *data) { +read_samples(int n, int16_t *data) { int ready = (_data.size() / _desired_channels); int desired = n * _desired_channels; int avail = ready * _desired_channels; @@ -78,7 +78,7 @@ read_samples(int n, PN_int16 *data) { * Appends audio samples to the buffer. */ void UserDataAudio:: -append(PN_int16 *data, int n) { +append(int16_t *data, int n) { nassertv(!_aborted); int words = n * _desired_channels; for (int i=0; i _data; + pdeque _data; bool _aborted; bool _remove_after_read; friend class UserDataAudioCursor; diff --git a/panda/src/movies/userDataAudioCursor.cxx b/panda/src/movies/userDataAudioCursor.cxx index d882195b2f..e0494cf53e 100644 --- a/panda/src/movies/userDataAudioCursor.cxx +++ b/panda/src/movies/userDataAudioCursor.cxx @@ -48,7 +48,7 @@ UserDataAudioCursor:: * audio will be interleaved. */ void UserDataAudioCursor:: -read_samples(int n, PN_int16 *data) { +read_samples(int n, int16_t *data) { UserDataAudio *source = (UserDataAudio*)(MovieAudio*)_source; if(source->_remove_after_read) { diff --git a/panda/src/movies/userDataAudioCursor.h b/panda/src/movies/userDataAudioCursor.h index 4c2ad96bb1..5e0d75b85f 100644 --- a/panda/src/movies/userDataAudioCursor.h +++ b/panda/src/movies/userDataAudioCursor.h @@ -33,7 +33,7 @@ PUBLISHED: virtual ~UserDataAudioCursor(); public: - virtual void read_samples(int n, PN_int16 *data); + virtual void read_samples(int n, int16_t *data); virtual int ready() const; virtual void seek(double offset); diff --git a/panda/src/movies/vorbisAudioCursor.cxx b/panda/src/movies/vorbisAudioCursor.cxx index d006c1878d..9d751629c2 100644 --- a/panda/src/movies/vorbisAudioCursor.cxx +++ b/panda/src/movies/vorbisAudioCursor.cxx @@ -109,7 +109,7 @@ seek(double t) { * audio will be interleaved. */ void VorbisAudioCursor:: -read_samples(int n, PN_int16 *data) { +read_samples(int n, int16_t *data) { int desired = n * _audio_channels; char *buffer = (char*) data; diff --git a/panda/src/movies/vorbisAudioCursor.h b/panda/src/movies/vorbisAudioCursor.h index 177b0a0fe4..2d16368dde 100644 --- a/panda/src/movies/vorbisAudioCursor.h +++ b/panda/src/movies/vorbisAudioCursor.h @@ -35,7 +35,7 @@ PUBLISHED: virtual void seek(double offset); public: - virtual void read_samples(int n, PN_int16 *data); + virtual void read_samples(int n, int16_t *data); bool _is_valid; diff --git a/panda/src/movies/wavAudioCursor.cxx b/panda/src/movies/wavAudioCursor.cxx index 2742b41a9d..3b220749c4 100644 --- a/panda/src/movies/wavAudioCursor.cxx +++ b/panda/src/movies/wavAudioCursor.cxx @@ -17,7 +17,7 @@ #include "wavAudio.h" // Tables for decompressing mu-law and A-law wav files. -static PN_int16 mulaw_table[256] = { +static int16_t mulaw_table[256] = { -32124,-31100,-30076,-29052,-28028,-27004,-25980,-24956, -23932,-22908,-21884,-20860,-19836,-18812,-17788,-16764, -15996,-15484,-14972,-14460,-13948,-13436,-12924,-12412, @@ -52,7 +52,7 @@ static PN_int16 mulaw_table[256] = { 56, 48, 40, 32, 24, 16, 8, 0 }; -static PN_int16 alaw_table[256] = { +static int16_t alaw_table[256] = { -5504, -5248, -6016, -5760, -4480, -4224, -4992, -4736, -7552, -7296, -8064, -7808, -6528, -6272, -7040, -6784, -2752, -2624, -3008, -2880, -2240, -2112, -2496, -2368, @@ -143,7 +143,7 @@ WavAudioCursor(WavAudio *src, istream *stream) : _block_align = _reader.get_uint16(); // We can round up to next multiple of 8. - PN_uint16 bps = _reader.get_uint16(); + uint16_t bps = _reader.get_uint16(); bps = (bps + 7) & 0xfff8; // How many bytes in this chunk we've read so far. @@ -324,7 +324,7 @@ seek(double t) { * audio will be interleaved. */ void WavAudioCursor:: -read_samples(int n, PN_int16 *data) { +read_samples(int n, int16_t *data) { int desired = n * _audio_channels; int read_samples = min(desired, ((int) (_data_size - _data_pos)) / _bytes_per_sample); @@ -359,7 +359,7 @@ read_samples(int n, PN_int16 *data) { } case 4: { // Downsample. - const PN_int32 scale_factor = 0x7fffffff / 0x7fff; + const int32_t scale_factor = 0x7fffffff / 0x7fff; for (int i = 0; i < read_samples; ++i) { data[i] = _reader.get_int32() / scale_factor; @@ -368,7 +368,7 @@ read_samples(int n, PN_int16 *data) { } case 8: { // Downsample. - const PN_int64 scale_factor = 0x7fffffffffffffffLL / 0x7fffLL; + const int64_t scale_factor = 0x7fffffffffffffffLL / 0x7fffLL; for (int i = 0; i < read_samples; ++i) { data[i] = _reader.get_int64() / scale_factor; @@ -386,13 +386,13 @@ read_samples(int n, PN_int16 *data) { switch (_bytes_per_sample) { case 4: for (int i = 0; i < read_samples; ++i) { - data[i] = (PN_int16) (_reader.get_float32() * 0x7fff); + data[i] = (int16_t) (_reader.get_float32() * 0x7fff); } break; case 8: for (int i = 0; i < read_samples; ++i) { - data[i] = (PN_int16) (_reader.get_float64() * 0x7fff); + data[i] = (int16_t) (_reader.get_float64() * 0x7fff); } break; diff --git a/panda/src/movies/wavAudioCursor.h b/panda/src/movies/wavAudioCursor.h index 316dffedd9..e03ee5bdde 100644 --- a/panda/src/movies/wavAudioCursor.h +++ b/panda/src/movies/wavAudioCursor.h @@ -31,7 +31,7 @@ PUBLISHED: virtual void seek(double offset); public: - virtual void read_samples(int n, PN_int16 *data); + virtual void read_samples(int n, int16_t *data); bool _is_valid; diff --git a/panda/src/nativenet/socket_address.I b/panda/src/nativenet/socket_address.I index 6a20ced62c..c29b6b646f 100644 --- a/panda/src/nativenet/socket_address.I +++ b/panda/src/nativenet/socket_address.I @@ -158,7 +158,7 @@ set_host(const std::string &hostname, unsigned short port) { } - PN_uint32 addr = (PN_uint32)inet_addr(hostname.c_str()); + uint32_t addr = (uint32_t)inet_addr(hostname.c_str()); if (addr == INADDR_NONE) { hp = gethostbyname(hostname.c_str()); if (hp == NULL) { @@ -195,7 +195,7 @@ set_host(const std::string &hostname) { * */ INLINE bool Socket_Address:: -set_host(PN_uint32 in_hostname, unsigned short port) { +set_host(uint32_t in_hostname, unsigned short port) { memcpy(&_addr.sin_addr, &in_hostname, sizeof(in_hostname)); _addr.sin_port = htons(port); _addr.sin_family = AF_INET; @@ -227,7 +227,7 @@ operator < (const Socket_Address &in) const { */ INLINE bool Socket_Address:: is_mcast_range(void) const { - PN_uint32 address = ntohl(_addr.sin_addr.s_addr); + uint32_t address = ntohl(_addr.sin_addr.s_addr); // 224.0.0.0-239.255.255.255 .. e0,ef return (address >= 0xe0000000 && address < 0xefffffff); } diff --git a/panda/src/nativenet/socket_fdset.h b/panda/src/nativenet/socket_fdset.h index 3f3edc711a..45c990bf27 100644 --- a/panda/src/nativenet/socket_fdset.h +++ b/panda/src/nativenet/socket_fdset.h @@ -18,9 +18,9 @@ PUBLISHED: inline Socket_fdset(); inline void setForSocket(const Socket_IP &incon); inline bool IsSetFor(const Socket_IP &incon) const; - inline int WaitForRead(bool zeroFds, PN_uint32 sleep_time = 0xffffffff); - inline int WaitForWrite(bool zeroFds, PN_uint32 sleep_time = 0xffffffff); - inline int WaitForError(bool zeroFds, PN_uint32 sleep_time = 0xffffffff); + inline int WaitForRead(bool zeroFds, uint32_t sleep_time = 0xffffffff); + inline int WaitForWrite(bool zeroFds, uint32_t sleep_time = 0xffffffff); + inline int WaitForError(bool zeroFds, uint32_t sleep_time = 0xffffffff); inline int WaitForRead(bool zeroFds, const Time_Span & timeout); inline void clear(); @@ -86,7 +86,7 @@ inline bool Socket_fdset::IsSetFor(const Socket_IP & incon) const /** * */ -inline int Socket_fdset::WaitForRead(bool zeroFds, PN_uint32 sleep_time) +inline int Socket_fdset::WaitForRead(bool zeroFds, uint32_t sleep_time) { int retVal = 0; if (sleep_time == 0xffffffff) { @@ -139,7 +139,7 @@ inline void Socket_fdset::setForSocket(const Socket_IP &incon) * This is the function that will wait till one of the sockets is ready for * writing */ -inline int Socket_fdset::WaitForWrite(bool zeroFds, PN_uint32 sleep_time) +inline int Socket_fdset::WaitForWrite(bool zeroFds, uint32_t sleep_time) { int retVal = 0; if (sleep_time == 0xffffffff) @@ -164,7 +164,7 @@ inline int Socket_fdset::WaitForWrite(bool zeroFds, PN_uint32 sleep_time) * This is the function that will wait till one of the sockets is in error * state */ -inline int Socket_fdset::WaitForError(bool zeroFds, PN_uint32 sleep_time) +inline int Socket_fdset::WaitForError(bool zeroFds, uint32_t sleep_time) { int retVal = 0; if (sleep_time == 0xffffffff) diff --git a/panda/src/nativenet/socket_tcp_ssl.h b/panda/src/nativenet/socket_tcp_ssl.h index e80e0d5647..ef89e384c8 100644 --- a/panda/src/nativenet/socket_tcp_ssl.h +++ b/panda/src/nativenet/socket_tcp_ssl.h @@ -285,12 +285,12 @@ inline void Socket_TCP_SSL::DetailErrorFormat(void) { return; // turn on fir debuging - PN_uint32 l; + uint32_t l; char buf[256]; char buf2[4096]; const char *file,*data; int line,flags; - PN_uint32 es; + uint32_t es; es=CRYPTO_thread_id(); while ((l=ERR_get_error_line_data(&file,&line,&data,&flags)) != 0) diff --git a/panda/src/net/connectionManager.cxx b/panda/src/net/connectionManager.cxx index abfdc2f541..ce2b97ace0 100644 --- a/panda/src/net/connectionManager.cxx +++ b/panda/src/net/connectionManager.cxx @@ -412,7 +412,7 @@ wait_for_readers(double timeout) { wait_timeout = min(wait_timeout, stop - now); } - PN_uint32 wait_timeout_ms = (PN_uint32)(wait_timeout * 1000.0); + uint32_t wait_timeout_ms = (uint32_t)(wait_timeout * 1000.0); if (any_threaded) { // If there are any threaded ConnectionReaders, we can't block at all. wait_timeout_ms = 0; @@ -517,7 +517,7 @@ scan_interfaces() { // Now, we can infer the netmask by the difference between the // network address (the first address) and the broadcast address // (the last address). - PN_uint32 netmask = addresses[0].get_ip() - addresses[2].get_ip() - 1; + uint32_t netmask = addresses[0].get_ip() - addresses[2].get_ip() - 1; Socket_Address sa; sa.set_host(netmask, 0); iface.set_netmask(NetAddress(sa)); diff --git a/panda/src/net/connectionReader.cxx b/panda/src/net/connectionReader.cxx index 7a63d90833..0ca114e476 100644 --- a/panda/src/net/connectionReader.cxx +++ b/panda/src/net/connectionReader.cxx @@ -834,7 +834,7 @@ get_next_available_socket(bool allow_block, int current_thread_index) { _next_index = 0; if (!_shutdown) { - PN_uint32 timeout = (PN_uint32)(get_net_max_block() * 1000.0); + uint32_t timeout = (uint32_t)(get_net_max_block() * 1000.0); if (!allow_block) { timeout = 0; } diff --git a/panda/src/net/datagramTCPHeader.cxx b/panda/src/net/datagramTCPHeader.cxx index 3ad1d53f5b..533e3e671b 100644 --- a/panda/src/net/datagramTCPHeader.cxx +++ b/panda/src/net/datagramTCPHeader.cxx @@ -31,7 +31,7 @@ DatagramTCPHeader(const NetDatagram &datagram, int header_size) { case datagram_tcp16_header_size: { - PN_uint16 size = str.length(); + uint16_t size = str.length(); nassertv(size == str.length()); _header.add_uint16(size); } @@ -39,7 +39,7 @@ DatagramTCPHeader(const NetDatagram &datagram, int header_size) { case datagram_tcp32_header_size: { - PN_uint32 size = str.length(); + uint32_t size = str.length(); nassertv(size == str.length()); _header.add_uint32(size); } diff --git a/panda/src/net/datagramTCPHeader.h b/panda/src/net/datagramTCPHeader.h index ac8119f4fa..51f489e3ed 100644 --- a/panda/src/net/datagramTCPHeader.h +++ b/panda/src/net/datagramTCPHeader.h @@ -21,8 +21,8 @@ #include "datagramIterator.h" #include "numeric_types.h" -static const int datagram_tcp16_header_size = sizeof(PN_uint16); -static const int datagram_tcp32_header_size = sizeof(PN_uint32); +static const int datagram_tcp16_header_size = sizeof(uint16_t); +static const int datagram_tcp32_header_size = sizeof(uint32_t); class NetDatagram; diff --git a/panda/src/net/datagramUDPHeader.cxx b/panda/src/net/datagramUDPHeader.cxx index b9b0938021..b491190187 100644 --- a/panda/src/net/datagramUDPHeader.cxx +++ b/panda/src/net/datagramUDPHeader.cxx @@ -25,9 +25,9 @@ DatagramUDPHeader:: DatagramUDPHeader(const NetDatagram &datagram) { const string &str = datagram.get_message(); - PN_uint16 checksum = 0; + uint16_t checksum = 0; for (size_t p = 0; p < str.size(); p++) { - checksum += (PN_uint16)(PN_uint8)str[p]; + checksum += (uint16_t)(uint8_t)str[p]; } // Now pack the header. @@ -51,9 +51,9 @@ bool DatagramUDPHeader:: verify_datagram(const NetDatagram &datagram) const { const string &str = datagram.get_message(); - PN_uint16 checksum = 0; + uint16_t checksum = 0; for (size_t p = 0; p < str.size(); p++) { - checksum += (PN_uint16)(PN_uint8)str[p]; + checksum += (uint16_t)(uint8_t)str[p]; } if (checksum == get_datagram_checksum()) { diff --git a/panda/src/net/datagramUDPHeader.h b/panda/src/net/datagramUDPHeader.h index fd2abbaa47..e8ee0b8b1a 100644 --- a/panda/src/net/datagramUDPHeader.h +++ b/panda/src/net/datagramUDPHeader.h @@ -21,7 +21,7 @@ #include "datagramIterator.h" #include "numeric_types.h" -static const int datagram_udp_header_size = sizeof(PN_uint16); +static const int datagram_udp_header_size = sizeof(uint16_t); class NetDatagram; diff --git a/panda/src/net/netAddress.cxx b/panda/src/net/netAddress.cxx index 4ae75f3434..ee0ed96ba2 100644 --- a/panda/src/net/netAddress.cxx +++ b/panda/src/net/netAddress.cxx @@ -103,7 +103,7 @@ get_ip_string() const { * Returns the IP address to which this address refers, as a 32-bit integer, * in host byte order. */ -PN_uint32 NetAddress:: +uint32_t NetAddress:: get_ip() const { return _addr.GetIPAddressRaw(); } @@ -113,11 +113,11 @@ get_ip() const { * components; component 0 is the first (leftmost), and component 3 is the * last (rightmost) in the dotted number convention. */ -PN_uint8 NetAddress:: +uint8_t NetAddress:: get_ip_component(int n) const { nassertr(n >= 0 && n < 4, 0); - PN_uint32 ip_long = _addr.GetIPAddressRaw(); - const PN_uint8 *ip = (const PN_uint8 *)&ip_long; + uint32_t ip_long = _addr.GetIPAddressRaw(); + const uint8_t *ip = (const uint8_t *)&ip_long; return ip[n]; } diff --git a/panda/src/net/netAddress.h b/panda/src/net/netAddress.h index e28a7d2443..f10b02041d 100644 --- a/panda/src/net/netAddress.h +++ b/panda/src/net/netAddress.h @@ -37,8 +37,8 @@ PUBLISHED: int get_port() const; void set_port(int port); string get_ip_string() const; - PN_uint32 get_ip() const; - PN_uint8 get_ip_component(int n) const; + uint32_t get_ip() const; + uint8_t get_ip_component(int n) const; const Socket_Address &get_addr() const; diff --git a/panda/src/ode/odeWorld.cxx b/panda/src/ode/odeWorld.cxx index 5e3986b6f5..30b98ddd8b 100644 --- a/panda/src/ode/odeWorld.cxx +++ b/panda/src/ode/odeWorld.cxx @@ -63,7 +63,7 @@ add_body_dampening(OdeBody& body, int surface) { void OdeWorld:: -init_surface_table(PN_uint8 num_surfaces) { +init_surface_table(uint8_t num_surfaces) { _surface_table = new sSurfaceParams[num_surfaces * num_surfaces]; // _dampen_table = new sSurfaceParams[num_surfaces * num_surfaces]; _num_surfaces = num_surfaces; @@ -92,7 +92,7 @@ set_surface(int pos1, int pos2, sSurfaceParams& entry) { sSurfaceParams& OdeWorld:: -get_surface(PN_uint8 surface1, PN_uint8 surface2) { +get_surface(uint8_t surface1, uint8_t surface2) { int true_pos = 0; if(surface1 >= surface2) { true_pos = (surface1 * _num_surfaces) + surface2; @@ -108,7 +108,7 @@ get_surface(PN_uint8 surface1, PN_uint8 surface2) { } void OdeWorld:: -set_surface_entry(PN_uint8 pos1, PN_uint8 pos2, +set_surface_entry(uint8_t pos1, uint8_t pos2, dReal mu, dReal bounce, dReal bounce_vel, diff --git a/panda/src/ode/odeWorld.h b/panda/src/ode/odeWorld.h index 4238700af9..fc17382115 100644 --- a/panda/src/ode/odeWorld.h +++ b/panda/src/ode/odeWorld.h @@ -77,10 +77,10 @@ PUBLISHED: INLINE int compare_to(const OdeWorld &other) const; - void init_surface_table(PN_uint8 num_surfaces); + void init_surface_table(uint8_t num_surfaces); // void assign_surface_body(OdeBody& body, int surface); void add_body_dampening(OdeBody& body, int surface); - void set_surface_entry(PN_uint8 pos1, PN_uint8 pos2, + void set_surface_entry(uint8_t pos1, uint8_t pos2, dReal mu, dReal bounce, dReal bounce_vel, @@ -93,7 +93,7 @@ PUBLISHED: operator bool () const; public: - sSurfaceParams& get_surface(PN_uint8 surface1, PN_uint8 surface2); + sSurfaceParams& get_surface(uint8_t surface1, uint8_t surface2); void set_surface(int pos1, int pos2, sSurfaceParams& entry); sBodyParams get_surface_body(dBodyID id); void set_dampen_on_bodies(dBodyID id1, dBodyID id2,dReal damp); @@ -102,7 +102,7 @@ public: private: dWorldID _id; sSurfaceParams *_surface_table; - PN_uint8 _num_surfaces; + uint8_t _num_surfaces; typedef pmap BodyDampenMap; BodyDampenMap _body_dampen_map; diff --git a/panda/src/pgraph/geomNode.cxx b/panda/src/pgraph/geomNode.cxx index bfbd24f04f..f0000d4ebb 100644 --- a/panda/src/pgraph/geomNode.cxx +++ b/panda/src/pgraph/geomNode.cxx @@ -1099,7 +1099,7 @@ void GeomNode::CData:: write_datagram(BamWriter *manager, Datagram &dg) const { CPT(GeomList) geoms = _geoms.get_read_pointer(); int num_geoms = geoms->size(); - nassertv(num_geoms == (int)(PN_uint16)num_geoms); + nassertv(num_geoms == (int)(uint16_t)num_geoms); dg.add_uint16(num_geoms); GeomList::const_iterator gi; diff --git a/panda/src/pgraph/pandaNode.cxx b/panda/src/pgraph/pandaNode.cxx index 827ae89c31..38a1c5f096 100644 --- a/panda/src/pgraph/pandaNode.cxx +++ b/panda/src/pgraph/pandaNode.cxx @@ -4109,7 +4109,7 @@ write_up_list(const PandaNode::Up &up_list, num_parents++; } } - nassertv(num_parents == (int)(PN_uint16)num_parents); + nassertv(num_parents == (int)(uint16_t)num_parents); dg.add_uint16(num_parents); for (ui = up_list.begin(); ui != up_list.end(); ++ui) { PandaNode *parent_node = (*ui).get_parent(); @@ -4126,7 +4126,7 @@ void PandaNode::CData:: write_down_list(const PandaNode::Down &down_list, BamWriter *manager, Datagram &dg) const { int num_children = down_list.size(); - nassertv(num_children == (int)(PN_uint16)num_children); + nassertv(num_children == (int)(uint16_t)num_children); dg.add_uint16(num_children); // Should we smarten up the writing of the sort number? Most of the time diff --git a/panda/src/pgraph/renderEffects.cxx b/panda/src/pgraph/renderEffects.cxx index 077c496e04..18c7565a3f 100644 --- a/panda/src/pgraph/renderEffects.cxx +++ b/panda/src/pgraph/renderEffects.cxx @@ -685,7 +685,7 @@ write_datagram(BamWriter *manager, Datagram &dg) { TypedWritable::write_datagram(manager, dg); int num_effects = _effects.size(); - nassertv(num_effects == (int)(PN_uint16)num_effects); + nassertv(num_effects == (int)(uint16_t)num_effects); dg.add_uint16(num_effects); Effects::const_iterator ai; diff --git a/panda/src/pgraph/renderState.cxx b/panda/src/pgraph/renderState.cxx index 0555d300a3..de3a58b2ba 100644 --- a/panda/src/pgraph/renderState.cxx +++ b/panda/src/pgraph/renderState.cxx @@ -1996,7 +1996,7 @@ write_datagram(BamWriter *manager, Datagram &dg) { TypedWritable::write_datagram(manager, dg); int num_attribs = _filled_slots.get_num_on_bits(); - nassertv(num_attribs == (int)(PN_uint16)num_attribs); + nassertv(num_attribs == (int)(uint16_t)num_attribs); dg.add_uint16(num_attribs); // **** We should smarten up the writing of the override number--most of the diff --git a/panda/src/putil/bamWriter.cxx b/panda/src/putil/bamWriter.cxx index 2351a96340..679600b664 100644 --- a/panda/src/putil/bamWriter.cxx +++ b/panda/src/putil/bamWriter.cxx @@ -489,7 +489,7 @@ write_handle(Datagram &packet, TypeHandle type) { // TypeHandle. Why not? int index = type.get_index(); - // Also make sure the index number fits within a PN_uint16. + // Also make sure the index number fits within a uint16_t. nassertv(index <= 0xffff); packet.add_uint16(index); diff --git a/panda/src/putil/bitMask.cxx b/panda/src/putil/bitMask.cxx index 22b7370f95..385d773695 100644 --- a/panda/src/putil/bitMask.cxx +++ b/panda/src/putil/bitMask.cxx @@ -18,6 +18,6 @@ #pragma implementation #endif -template class BitMask; -template class BitMask; -template class BitMask; +template class BitMask; +template class BitMask; +template class BitMask; diff --git a/panda/src/putil/bitMask.h b/panda/src/putil/bitMask.h index a2b2bdab13..17c1c9f69d 100644 --- a/panda/src/putil/bitMask.h +++ b/panda/src/putil/bitMask.h @@ -157,16 +157,16 @@ INLINE ostream &operator << (ostream &out, const BitMask &bitmask) // We need to define this temporary macro so we can pass a parameter // containing a comma through the macro. -#define BITMASK16_DEF BitMask -#define BITMASK32_DEF BitMask -#define BITMASK64_DEF BitMask +#define BITMASK16_DEF BitMask +#define BITMASK32_DEF BitMask +#define BITMASK64_DEF BitMask EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_PUTIL, EXPTP_PANDA_PUTIL, BITMASK16_DEF); EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_PUTIL, EXPTP_PANDA_PUTIL, BITMASK32_DEF); EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_PUTIL, EXPTP_PANDA_PUTIL, BITMASK64_DEF); -typedef BitMask BitMask16; -typedef BitMask BitMask32; -typedef BitMask BitMask64; +typedef BitMask BitMask16; +typedef BitMask BitMask32; +typedef BitMask BitMask64; #if NATIVE_WORDSIZE == 32 typedef BitMask32 BitMaskNative; diff --git a/panda/src/putil/datagramInputFile.cxx b/panda/src/putil/datagramInputFile.cxx index 64fa369231..1ac14b58ed 100644 --- a/panda/src/putil/datagramInputFile.cxx +++ b/panda/src/putil/datagramInputFile.cxx @@ -126,7 +126,7 @@ get_datagram(Datagram &data) { // First, get the size of the upcoming datagram. StreamReader reader(_in, false); - PN_uint32 num_bytes_32 = reader.get_uint32(); + uint32_t num_bytes_32 = reader.get_uint32(); if (_in->fail() || _in->eof()) { return false; } @@ -139,7 +139,7 @@ get_datagram(Datagram &data) { } streamsize num_bytes = (streamsize)num_bytes_32; - if (num_bytes_32 == (PN_uint32)-1) { + if (num_bytes_32 == (uint32_t)-1) { // Another special case for a value larger than 32 bits. num_bytes = reader.get_uint64(); } @@ -205,7 +205,7 @@ save_datagram(SubfileInfo &info) { } streamsize num_bytes = (streamsize)num_bytes_32; - if (num_bytes_32 == (PN_uint32)-1) { + if (num_bytes_32 == (uint32_t)-1) { // Another special case for a value larger than 32 bits. num_bytes = reader.get_uint64(); } diff --git a/panda/src/putil/datagramOutputFile.cxx b/panda/src/putil/datagramOutputFile.cxx index 4ead1274c1..cd9a1af2fc 100644 --- a/panda/src/putil/datagramOutputFile.cxx +++ b/panda/src/putil/datagramOutputFile.cxx @@ -110,13 +110,13 @@ put_datagram(const Datagram &data) { // First, write the size of the upcoming datagram. StreamWriter writer(_out, false); size_t num_bytes = data.get_length(); - if (num_bytes == (PN_uint32)-1 || num_bytes != (PN_uint32)num_bytes) { + if (num_bytes == (uint32_t)-1 || num_bytes != (uint32_t)num_bytes) { // Write a large value as a 64-bit size. - writer.add_uint32((PN_uint32)-1); + writer.add_uint32((uint32_t)-1); writer.add_uint64(num_bytes); } else { // Write a value that fits in 32 bits. - writer.add_uint32((PN_uint32)num_bytes); + writer.add_uint32((uint32_t)num_bytes); } // Now, write the datagram itself. @@ -154,13 +154,13 @@ copy_datagram(SubfileInfo &result, const Filename &filename) { streamsize num_remaining = size; StreamWriter writer(_out, false); - if (num_remaining == (PN_uint32)-1 || num_remaining != (PN_uint32)num_remaining) { + if (num_remaining == (uint32_t)-1 || num_remaining != (uint32_t)num_remaining) { // Write a large value as a 64-bit size. - writer.add_uint32((PN_uint32)-1); + writer.add_uint32((uint32_t)-1); writer.add_uint64(num_remaining); } else { // Write a value that fits in 32 bits. - writer.add_uint32((PN_uint32)num_remaining); + writer.add_uint32((uint32_t)num_remaining); } static const size_t buffer_size = 4096; @@ -217,13 +217,13 @@ copy_datagram(SubfileInfo &result, const SubfileInfo &source) { streamsize num_remaining = source.get_size(); StreamWriter writer(_out, false); - if (num_remaining == (PN_uint32)-1 || num_remaining != (PN_uint32)num_remaining) { + if (num_remaining == (uint32_t)-1 || num_remaining != (uint32_t)num_remaining) { // Write a large value as a 64-bit size. - writer.add_uint32((PN_uint32)-1); + writer.add_uint32((uint32_t)-1); writer.add_uint64(num_remaining); } else { // Write a value that fits in 32 bits. - writer.add_uint32((PN_uint32)num_remaining); + writer.add_uint32((uint32_t)num_remaining); } static const size_t buffer_size = 4096; diff --git a/panda/src/putil/pbitops.I b/panda/src/putil/pbitops.I index f746b8ba77..3d830306f4 100644 --- a/panda/src/putil/pbitops.I +++ b/panda/src/putil/pbitops.I @@ -15,7 +15,7 @@ * Returns the number of 1 bits in the indicated word. */ INLINE int -count_bits_in_word(PN_uint16 x) { +count_bits_in_word(uint16_t x) { return (int)num_bits_on[x]; } @@ -23,7 +23,7 @@ count_bits_in_word(PN_uint16 x) { * Returns the number of 1 bits in the indicated word. */ INLINE int -count_bits_in_word(PN_uint32 x) { +count_bits_in_word(uint32_t x) { #if defined(__GNUC__) && defined(__POPCNT__) return __builtin_popcount((unsigned int) x); #else @@ -35,19 +35,19 @@ count_bits_in_word(PN_uint32 x) { * Returns the number of 1 bits in the indicated word. */ INLINE int -count_bits_in_word(PN_uint64 x) { +count_bits_in_word(uint64_t x) { #if defined(__GNUC__) && defined(__POPCNT__) return __builtin_popcountll((unsigned long long) x); #else - return count_bits_in_word((PN_uint32)x) + count_bits_in_word((PN_uint32)(x >> 32)); + return count_bits_in_word((uint32_t)x) + count_bits_in_word((uint32_t)(x >> 32)); #endif } /** * Returns a value such that every bit at or below the highest bit in x is 1. */ -INLINE PN_uint16 -flood_bits_down(PN_uint16 x) { +INLINE uint16_t +flood_bits_down(uint16_t x) { x |= (x >> 1); x |= (x >> 2); x |= (x >> 4); @@ -58,8 +58,8 @@ flood_bits_down(PN_uint16 x) { /** * Returns a value such that every bit at or below the highest bit in x is 1. */ -INLINE PN_uint32 -flood_bits_down(PN_uint32 x) { +INLINE uint32_t +flood_bits_down(uint32_t x) { x |= (x >> 1); x |= (x >> 2); x |= (x >> 4); @@ -71,8 +71,8 @@ flood_bits_down(PN_uint32 x) { /** * Returns a value such that every bit at or below the highest bit in x is 1. */ -INLINE PN_uint64 -flood_bits_down(PN_uint64 x) { +INLINE uint64_t +flood_bits_down(uint64_t x) { x |= (x >> 1); x |= (x >> 2); x |= (x >> 4); @@ -85,8 +85,8 @@ flood_bits_down(PN_uint64 x) { /** * Returns a value such that every bit at or above the highest bit in x is 1. */ -INLINE PN_uint16 -flood_bits_up(PN_uint16 x) { +INLINE uint16_t +flood_bits_up(uint16_t x) { x |= (x << 1); x |= (x << 2); x |= (x << 4); @@ -97,8 +97,8 @@ flood_bits_up(PN_uint16 x) { /** * Returns a value such that every bit at or above the highest bit in x is 1. */ -INLINE PN_uint32 -flood_bits_up(PN_uint32 x) { +INLINE uint32_t +flood_bits_up(uint32_t x) { x |= (x << 1); x |= (x << 2); x |= (x << 4); @@ -110,8 +110,8 @@ flood_bits_up(PN_uint32 x) { /** * Returns a value such that every bit at or above the highest bit in x is 1. */ -INLINE PN_uint64 -flood_bits_up(PN_uint64 x) { +INLINE uint64_t +flood_bits_up(uint64_t x) { x |= (x << 1); x |= (x << 2); x |= (x << 4); @@ -126,7 +126,7 @@ flood_bits_up(PN_uint64 x) { * no 1 bits. */ INLINE int -get_lowest_on_bit(PN_uint16 x) { +get_lowest_on_bit(uint16_t x) { #if defined(_MSC_VER) unsigned long result; return (_BitScanForward(&result, (unsigned long) x) == 0) ? -1 : result; @@ -137,7 +137,7 @@ get_lowest_on_bit(PN_uint16 x) { return -1; } - PN_uint16 w = (x & (~x + 1)); + uint16_t w = (x & (~x + 1)); return (int)num_bits_on[w - 1]; #endif } @@ -147,7 +147,7 @@ get_lowest_on_bit(PN_uint16 x) { * no 1 bits. */ INLINE int -get_lowest_on_bit(PN_uint32 x) { +get_lowest_on_bit(uint32_t x) { #if defined(_MSC_VER) unsigned long result; return (_BitScanForward(&result, (unsigned long) x) == 0) ? -1 : result; @@ -158,7 +158,7 @@ get_lowest_on_bit(PN_uint32 x) { return -1; } - PN_uint32 w = (x & (~x + 1)); + uint32_t w = (x & (~x + 1)); return count_bits_in_word(w - 1); #endif } @@ -168,7 +168,7 @@ get_lowest_on_bit(PN_uint32 x) { * no 1 bits. */ INLINE int -get_lowest_on_bit(PN_uint64 x) { +get_lowest_on_bit(uint64_t x) { #if defined(_MSC_VER) && defined(_M_X64) unsigned long result; return (_BitScanForward64(&result, (unsigned __int64) x) == 0) ? -1 : result; @@ -179,7 +179,7 @@ get_lowest_on_bit(PN_uint64 x) { return -1; } - PN_uint64 w = (x & (~x + 1)); + uint64_t w = (x & (~x + 1)); return count_bits_in_word(w - 1); #endif } @@ -189,14 +189,14 @@ get_lowest_on_bit(PN_uint64 x) { * are no 1 bits. */ INLINE int -get_highest_on_bit(PN_uint16 x) { +get_highest_on_bit(uint16_t x) { #if defined(_MSC_VER) unsigned long result; return (_BitScanReverse(&result, (unsigned long) x) == 0) ? -1 : result; #elif defined(__GNUC__) return (x == 0) ? -1 : 31 - __builtin_clz((unsigned int) x); #else - PN_uint16 w = flood_bits_down(x); + uint16_t w = flood_bits_down(x); return count_bits_in_word(w) - 1; #endif } @@ -206,14 +206,14 @@ get_highest_on_bit(PN_uint16 x) { * are no 1 bits. */ INLINE int -get_highest_on_bit(PN_uint32 x) { +get_highest_on_bit(uint32_t x) { #if defined(_MSC_VER) unsigned long result; return (_BitScanReverse(&result, (unsigned long) x) == 0) ? -1 : result; #elif defined(__GNUC__) return (x == 0) ? -1 : 31 - __builtin_clz((unsigned int) x); #else - PN_uint32 w = flood_bits_down(x); + uint32_t w = flood_bits_down(x); return count_bits_in_word(w) - 1; #endif } @@ -223,14 +223,14 @@ get_highest_on_bit(PN_uint32 x) { * are no 1 bits. */ INLINE int -get_highest_on_bit(PN_uint64 x) { +get_highest_on_bit(uint64_t x) { #if defined(_MSC_VER) && defined(_M_X64) unsigned long result; return (_BitScanReverse64(&result, (unsigned __int64) x) == 0) ? -1 : result; #elif defined(__GNUC__) return (x == 0) ? -1 : 63 - __builtin_clzll((unsigned long long) x); #else - PN_uint64 w = flood_bits_down(x); + uint64_t w = flood_bits_down(x); return count_bits_in_word(w) - 1; #endif } @@ -241,7 +241,7 @@ get_highest_on_bit(PN_uint64 x) { * Returns the smallest number n such that (1 << n) is larger than x. */ INLINE int -get_next_higher_bit(PN_uint16 x) { +get_next_higher_bit(uint16_t x) { return get_highest_on_bit(x) + 1; } @@ -251,7 +251,7 @@ get_next_higher_bit(PN_uint16 x) { * Returns the smallest number n such that (1 << n) is larger than x. */ INLINE int -get_next_higher_bit(PN_uint32 x) { +get_next_higher_bit(uint32_t x) { return get_highest_on_bit(x) + 1; } @@ -261,6 +261,6 @@ get_next_higher_bit(PN_uint32 x) { * Returns the smallest number n such that (1 << n) is larger than x. */ INLINE int -get_next_higher_bit(PN_uint64 x) { +get_next_higher_bit(uint64_t x) { return get_highest_on_bit(x) + 1; } diff --git a/panda/src/putil/pbitops.h b/panda/src/putil/pbitops.h index 545cce9dba..5b4a10b601 100644 --- a/panda/src/putil/pbitops.h +++ b/panda/src/putil/pbitops.h @@ -24,27 +24,27 @@ // This file defines a few low-level bit-operation routines, optimized all to // heck. -INLINE int count_bits_in_word(PN_uint16 x); -INLINE int count_bits_in_word(PN_uint32 x); -INLINE int count_bits_in_word(PN_uint64 x); +INLINE int count_bits_in_word(uint16_t x); +INLINE int count_bits_in_word(uint32_t x); +INLINE int count_bits_in_word(uint64_t x); -INLINE PN_uint16 flood_bits_down(PN_uint16 x); -INLINE PN_uint32 flood_bits_down(PN_uint32 x); -INLINE PN_uint64 flood_bits_down(PN_uint64 x); -INLINE PN_uint16 flood_bits_up(PN_uint16 x); -INLINE PN_uint32 flood_bits_up(PN_uint32 x); -INLINE PN_uint64 flood_bits_up(PN_uint64 x); +INLINE uint16_t flood_bits_down(uint16_t x); +INLINE uint32_t flood_bits_down(uint32_t x); +INLINE uint64_t flood_bits_down(uint64_t x); +INLINE uint16_t flood_bits_up(uint16_t x); +INLINE uint32_t flood_bits_up(uint32_t x); +INLINE uint64_t flood_bits_up(uint64_t x); -INLINE int get_lowest_on_bit(PN_uint16 x); -INLINE int get_lowest_on_bit(PN_uint32 x); -INLINE int get_lowest_on_bit(PN_uint64 x); -INLINE int get_highest_on_bit(PN_uint16 x); -INLINE int get_highest_on_bit(PN_uint32 x); -INLINE int get_highest_on_bit(PN_uint64 x); +INLINE int get_lowest_on_bit(uint16_t x); +INLINE int get_lowest_on_bit(uint32_t x); +INLINE int get_lowest_on_bit(uint64_t x); +INLINE int get_highest_on_bit(uint16_t x); +INLINE int get_highest_on_bit(uint32_t x); +INLINE int get_highest_on_bit(uint64_t x); -INLINE int get_next_higher_bit(PN_uint16 x); -INLINE int get_next_higher_bit(PN_uint32 x); -INLINE int get_next_higher_bit(PN_uint64 x); +INLINE int get_next_higher_bit(uint16_t x); +INLINE int get_next_higher_bit(uint32_t x); +INLINE int get_next_higher_bit(uint64_t x); // This table precomputes the number of on bits in each 16-bit word. extern EXPCL_PANDA_PUTIL const unsigned char num_bits_on[65536]; diff --git a/panda/src/putil/uniqueIdAllocator.cxx b/panda/src/putil/uniqueIdAllocator.cxx index 3bca1d1ea6..0b3307a2af 100644 --- a/panda/src/putil/uniqueIdAllocator.cxx +++ b/panda/src/putil/uniqueIdAllocator.cxx @@ -20,8 +20,8 @@ NotifyCategoryDecl(uniqueIdAllocator, EXPCL_PANDA_PUTIL, EXPTP_PANDA_PUTIL); NotifyCategoryDef(uniqueIdAllocator, ""); -const PN_uint32 UniqueIdAllocator::IndexEnd = (PN_uint32)-1; -const PN_uint32 UniqueIdAllocator::IndexAllocated = (PN_uint32)-2; +const uint32_t UniqueIdAllocator::IndexEnd = (uint32_t)-1; +const uint32_t UniqueIdAllocator::IndexAllocated = (uint32_t)-2; #ifndef NDEBUG //[ // Non-release build: @@ -50,7 +50,7 @@ const PN_uint32 UniqueIdAllocator::IndexAllocated = (PN_uint32)-2; * Create a free id pool in the range [min:max]. */ UniqueIdAllocator:: -UniqueIdAllocator(PN_uint32 min, PN_uint32 max) +UniqueIdAllocator(uint32_t min, uint32_t max) : _min(min), _max(max) { uniqueIdAllocator_debug("UniqueIdAllocator("< 0. - _table = (PN_uint32 *)PANDA_MALLOC_ARRAY(_size * sizeof(PN_uint32)); + _table = (uint32_t *)PANDA_MALLOC_ARRAY(_size * sizeof(uint32_t)); nassertv(_table); // This should be redundant if new throws an exception. - for (PN_uint32 i = 0; i < _size; ++i) { + for (uint32_t i = 0; i < _size; ++i) { _table[i] = i + 1; } _table[_size - 1] = IndexEnd; @@ -84,14 +84,14 @@ UniqueIdAllocator:: * Returns an id between _min and _max (that were passed to the constructor). * IndexEnd is returned if no ids are available. */ -PN_uint32 UniqueIdAllocator:: +uint32_t UniqueIdAllocator:: allocate() { if (_next_free == IndexEnd) { // ...all ids allocated. uniqueIdAllocator_warning("allocate Error: no more free ids."); return IndexEnd; } - PN_uint32 index = _next_free; + uint32_t index = _next_free; nassertr(_table[index] != IndexAllocated, IndexEnd); _next_free = _table[_next_free]; @@ -99,7 +99,7 @@ allocate() { --_free; - PN_uint32 id = index + _min; + uint32_t id = index + _min; uniqueIdAllocator_debug("allocate() returning " << id); return id; } @@ -116,9 +116,9 @@ allocate() { * reserved at any time. */ void UniqueIdAllocator:: -initial_reserve_id(PN_uint32 id) { +initial_reserve_id(uint32_t id) { nassertv(id >= _min && id <= _max); // Attempt to reserve out-of-range id. - PN_uint32 index = id - _min; // Convert to _table index. + uint32_t index = id - _min; // Convert to _table index. nassertv(_table[index] != IndexAllocated); @@ -143,7 +143,7 @@ initial_reserve_id(PN_uint32 id) { * slot right before it, or if not, it usually won't be far before it. */ - PN_uint32 prev_index = index; + uint32_t prev_index = index; while (prev_index > 0 && _table[prev_index - 1] != index) { --prev_index; } @@ -177,11 +177,11 @@ initial_reserve_id(PN_uint32 id) { * passed to the constructor). */ void UniqueIdAllocator:: -free(PN_uint32 id) { +free(uint32_t id) { uniqueIdAllocator_debug("free("<= _min && id <= _max); // Attempt to free out-of-range id. - PN_uint32 index = id - _min; // Convert to _table index. + uint32_t index = id - _min; // Convert to _table index. nassertv(_table[index] == IndexAllocated); // Attempt to free non-allocated id. if (_next_free != IndexEnd) { nassertv(_table[_last_free] == IndexEnd); @@ -223,8 +223,8 @@ output(ostream &out) const { void UniqueIdAllocator:: write(ostream &out) const { out << "_min: " << _min << "; _max: " << _max - << ";\n_next_free: " << PN_int32(_next_free) - << "; _last_free: " << PN_int32(_last_free) + << ";\n_next_free: " << int32_t(_next_free) + << "; _last_free: " << int32_t(_last_free) << "; _size: " << _size << "; _free: " << _free << "; used: " << _size - _free @@ -232,13 +232,13 @@ write(ostream &out) const { << ";\n"; out << "Table:"; - for (PN_uint32 i = 0; i < _size; ++i) { - out << " " << PN_int32(_table[i]); + for (uint32_t i = 0; i < _size; ++i) { + out << " " << int32_t(_table[i]); } out << "\n"; out << "Free chain:"; - PN_uint32 index = _next_free; + uint32_t index = _next_free; while (index != IndexEnd) { out << " " << index + _min; index = _table[index]; diff --git a/panda/src/putil/uniqueIdAllocator.h b/panda/src/putil/uniqueIdAllocator.h index 7dd42ace04..90efcaee69 100644 --- a/panda/src/putil/uniqueIdAllocator.h +++ b/panda/src/putil/uniqueIdAllocator.h @@ -37,21 +37,21 @@ */ class EXPCL_PANDA_PUTIL UniqueIdAllocator { PUBLISHED: - UniqueIdAllocator(PN_uint32 min=0, PN_uint32 max=20); + UniqueIdAllocator(uint32_t min=0, uint32_t max=20); ~UniqueIdAllocator(); - PN_uint32 allocate(); - void initial_reserve_id(PN_uint32 id); + uint32_t allocate(); + void initial_reserve_id(uint32_t id); - void free(PN_uint32 index); + void free(uint32_t index); PN_stdfloat fraction_used() const; void output(ostream &out) const; void write(ostream &out) const; public: - static const PN_uint32 IndexEnd; - static const PN_uint32 IndexAllocated; + static const uint32_t IndexEnd; + static const uint32_t IndexAllocated; protected: // _table stores an array of _size words, corresponding to each allocatable @@ -63,27 +63,27 @@ protected: // For an allocated id, the table entry at the corresponding index contains // IndexAllocated. - PN_uint32 *_table; + uint32_t *_table; // The minimum and maximum as passed to the constructor. - PN_uint32 _min; - PN_uint32 _max; + uint32_t _min; + uint32_t _max; // This is the head of the free chain: as elements are allocated, they are // taken from _table[_next_free]. If the free chain is empty, _next_free == // IndexEnd. - PN_uint32 _next_free; + uint32_t _next_free; // This is the tail of the free chain: as elements are freed, they are // stored in _table[_last_free]. Normally, _table[_last_free] is the end of // the free chain, unless the free chain is empty. - PN_uint32 _last_free; + uint32_t _last_free; // The total number of elements in _table. - PN_uint32 _size; + uint32_t _size; // The number of free elements in _table. - PN_uint32 _free; + uint32_t _free; }; #endif //] diff --git a/panda/src/text/dynamicTextPage.cxx b/panda/src/text/dynamicTextPage.cxx index 093f6fda2d..fbe1b93486 100644 --- a/panda/src/text/dynamicTextPage.cxx +++ b/panda/src/text/dynamicTextPage.cxx @@ -110,15 +110,15 @@ fill_region(int x, int y, int x_size, int y_size, const LColor &color) { union { unsigned char p[2]; - PN_uint16 v; + uint16_t v; } v; v.p[0] = (unsigned char)(color[0] * 255.0f); v.p[1] = (unsigned char)(color[3] * 255.0f); - PN_uint16 *image = (PN_uint16 *)modify_ram_image().p(); + uint16_t *image = (uint16_t *)modify_ram_image().p(); for (int yi = y; yi < y + y_size; yi++) { - PN_uint16 *row = image + yi * _size[0] ; + uint16_t *row = image + yi * _size[0] ; for (int xi = x; xi < x + x_size; xi++) { row[xi] = v.v; } @@ -145,7 +145,7 @@ fill_region(int x, int y, int x_size, int y_size, const LColor &color) { // RGBA. union { unsigned char p[4]; - PN_uint32 v; + uint32_t v; } v; v.p[0] = (unsigned char)(color[2] * 255.0f); @@ -153,9 +153,9 @@ fill_region(int x, int y, int x_size, int y_size, const LColor &color) { v.p[2] = (unsigned char)(color[0] * 255.0f); v.p[3] = (unsigned char)(color[3] * 255.0f); - PN_uint32 *image = (PN_uint32 *)modify_ram_image().p(); + uint32_t *image = (uint32_t *)modify_ram_image().p(); for (int yi = y; yi < y + y_size; yi++) { - PN_uint32 *row = image + yi * _size[0]; + uint32_t *row = image + yi * _size[0]; for (int xi = x; xi < x + x_size; xi++) { row[xi] = v.v; } diff --git a/panda/src/text/textAssembler.cxx b/panda/src/text/textAssembler.cxx index c2092fec6b..996713a85a 100644 --- a/panda/src/text/textAssembler.cxx +++ b/panda/src/text/textAssembler.cxx @@ -1163,7 +1163,7 @@ generate_quads(GeomNode *geom_node, const QuadMap &quad_map) { // 32-bit index case. PT(GeomVertexArrayDataHandle) idx_handle = indices->modify_handle(); idx_handle->unclean_set_num_rows(quads.size() * 6); - PN_uint32 *idx_ptr = (PN_uint32 *)idx_handle->get_write_pointer(); + uint32_t *idx_ptr = (uint32_t *)idx_handle->get_write_pointer(); QuadDefs::const_iterator qi; for (qi = quads.begin(); qi != quads.end(); ++qi) { @@ -1219,7 +1219,7 @@ generate_quads(GeomNode *geom_node, const QuadMap &quad_map) { // 16-bit index case. PT(GeomVertexArrayDataHandle) idx_handle = indices->modify_handle(); idx_handle->unclean_set_num_rows(quads.size() * 6); - PN_uint16 *idx_ptr = (PN_uint16 *)idx_handle->get_write_pointer(); + uint16_t *idx_ptr = (uint16_t *)idx_handle->get_write_pointer(); QuadDefs::const_iterator qi; for (qi = quads.begin(); qi != quads.end(); ++qi) { diff --git a/panda/src/tinydisplay/tinyGraphicsStateGuardian.cxx b/panda/src/tinydisplay/tinyGraphicsStateGuardian.cxx index dacb90c88e..9e37c67037 100644 --- a/panda/src/tinydisplay/tinyGraphicsStateGuardian.cxx +++ b/panda/src/tinydisplay/tinyGraphicsStateGuardian.cxx @@ -960,7 +960,7 @@ draw_triangles(const GeomPrimitivePipelineReader *reader, bool force) { switch (reader->get_index_type()) { case Geom::NT_uint8: { - PN_uint8 *index = (PN_uint8 *)reader->get_read_pointer(force); + uint8_t *index = (uint8_t *)reader->get_read_pointer(force); if (index == NULL) { return false; } @@ -975,7 +975,7 @@ draw_triangles(const GeomPrimitivePipelineReader *reader, bool force) { case Geom::NT_uint16: { - PN_uint16 *index = (PN_uint16 *)reader->get_read_pointer(force); + uint16_t *index = (uint16_t *)reader->get_read_pointer(force); if (index == NULL) { return false; } @@ -990,7 +990,7 @@ draw_triangles(const GeomPrimitivePipelineReader *reader, bool force) { case Geom::NT_uint32: { - PN_uint32 *index = (PN_uint32 *)reader->get_read_pointer(force); + uint32_t *index = (uint32_t *)reader->get_read_pointer(force); if (index == NULL) { return false; } @@ -1051,7 +1051,7 @@ draw_tristrips(const GeomPrimitivePipelineReader *reader, bool force) { switch (reader->get_index_type()) { case Geom::NT_uint8: { - PN_uint8 *index = (PN_uint8 *)reader->get_read_pointer(force); + uint8_t *index = (uint8_t *)reader->get_read_pointer(force); if (index == NULL) { return false; } @@ -1076,7 +1076,7 @@ draw_tristrips(const GeomPrimitivePipelineReader *reader, bool force) { case Geom::NT_uint16: { - PN_uint16 *index = (PN_uint16 *)reader->get_read_pointer(force); + uint16_t *index = (uint16_t *)reader->get_read_pointer(force); if (index == NULL) { return false; } @@ -1101,7 +1101,7 @@ draw_tristrips(const GeomPrimitivePipelineReader *reader, bool force) { case Geom::NT_uint32: { - PN_uint32 *index = (PN_uint32 *)reader->get_read_pointer(force); + uint32_t *index = (uint32_t *)reader->get_read_pointer(force); if (index == NULL) { return false; } @@ -1182,7 +1182,7 @@ draw_lines(const GeomPrimitivePipelineReader *reader, bool force) { switch (reader->get_index_type()) { case Geom::NT_uint8: { - PN_uint8 *index = (PN_uint8 *)reader->get_read_pointer(force); + uint8_t *index = (uint8_t *)reader->get_read_pointer(force); if (index == NULL) { return false; } @@ -1196,7 +1196,7 @@ draw_lines(const GeomPrimitivePipelineReader *reader, bool force) { case Geom::NT_uint16: { - PN_uint16 *index = (PN_uint16 *)reader->get_read_pointer(force); + uint16_t *index = (uint16_t *)reader->get_read_pointer(force); if (index == NULL) { return false; } @@ -1210,7 +1210,7 @@ draw_lines(const GeomPrimitivePipelineReader *reader, bool force) { case Geom::NT_uint32: { - PN_uint32 *index = (PN_uint32 *)reader->get_read_pointer(force); + uint32_t *index = (uint32_t *)reader->get_read_pointer(force); if (index == NULL) { return false; } @@ -1259,7 +1259,7 @@ draw_points(const GeomPrimitivePipelineReader *reader, bool force) { switch (reader->get_index_type()) { case Geom::NT_uint8: { - PN_uint8 *index = (PN_uint8 *)reader->get_read_pointer(force); + uint8_t *index = (uint8_t *)reader->get_read_pointer(force); if (index == NULL) { return false; } @@ -1272,7 +1272,7 @@ draw_points(const GeomPrimitivePipelineReader *reader, bool force) { case Geom::NT_uint16: { - PN_uint16 *index = (PN_uint16 *)reader->get_read_pointer(force); + uint16_t *index = (uint16_t *)reader->get_read_pointer(force); if (index == NULL) { return false; } @@ -1285,7 +1285,7 @@ draw_points(const GeomPrimitivePipelineReader *reader, bool force) { case Geom::NT_uint32: { - PN_uint32 *index = (PN_uint32 *)reader->get_read_pointer(force); + uint32_t *index = (uint32_t *)reader->get_read_pointer(force); if (index == NULL) { return false; } diff --git a/panda/src/windisplay/winDetectDx.h b/panda/src/windisplay/winDetectDx.h index b57c6575a0..8a3a9c340e 100644 --- a/panda/src/windisplay/winDetectDx.h +++ b/panda/src/windisplay/winDetectDx.h @@ -133,8 +133,8 @@ static int get_display_information (DisplaySearchParameters &display_search_para int total_display_modes; DisplayMode *display_mode_array; - PN_uint64 physical_memory; - PN_uint64 available_physical_memory; + uint64_t physical_memory; + uint64_t available_physical_memory; int vendor_id; int device_id; diff --git a/panda/src/windisplay/winGraphicsPipe.cxx b/panda/src/windisplay/winGraphicsPipe.cxx index 64623d6bfe..01d9ab4068 100644 --- a/panda/src/windisplay/winGraphicsPipe.cxx +++ b/panda/src/windisplay/winGraphicsPipe.cxx @@ -123,11 +123,11 @@ void get_memory_information (DisplayInformation *display_information) { } typedef union { - PN_uint64 long_integer; + uint64_t long_integer; } LONG_INTEGER; -PN_uint64 cpu_time_function (void) { +uint64_t cpu_time_function (void) { #ifdef _WIN64 return __rdtsc(); #else @@ -594,7 +594,7 @@ int update_cpu_frequency_function(int processor_number, DisplayInformation *disp processor_power_information = processor_power_information_array; for (i = 0; i < MAXIMUM_PROCESSORS; i++) { if (processor_power_information->Number == processor_number) { - PN_uint64 value; + uint64_t value; value = processor_power_information->MaxMhz; display_information->_maximum_cpu_frequency = value * 1000000; @@ -662,7 +662,7 @@ count_number_of_cpus(DisplayInformation *display_information) { num_cpu_cores++; // A hyperthreaded core supplies more than one logical processor. - num_logical_cpus += count_bits_in_word((PN_uint64)(ptr->ProcessorMask)); + num_logical_cpus += count_bits_in_word((uint64_t)(ptr->ProcessorMask)); } ++ptr; } @@ -810,8 +810,8 @@ lookup_cpu_data() { _display_information->_cpu_time_function = cpu_time_function; // determine CPU frequency - PN_uint64 time; - PN_uint64 end_time; + uint64_t time; + uint64_t end_time; LARGE_INTEGER counter; LARGE_INTEGER end; LARGE_INTEGER frequency; diff --git a/panda/src/x11display/x11GraphicsWindow.cxx b/panda/src/x11display/x11GraphicsWindow.cxx index 6ea711b3b5..6940f2d592 100644 --- a/panda/src/x11display/x11GraphicsWindow.cxx +++ b/panda/src/x11display/x11GraphicsWindow.cxx @@ -1068,11 +1068,11 @@ set_wm_properties(const WindowProperties &properties, bool already_mapped) { // to set certain properties as a "type"; the other one as a "state". We'll // try to honor both. static const int max_type_data = 32; - PN_int32 type_data[max_type_data]; + int32_t type_data[max_type_data]; int next_type_data = 0; static const int max_state_data = 32; - PN_int32 state_data[max_state_data]; + int32_t state_data[max_state_data]; int next_state_data = 0; static const int max_set_data = 32; @@ -1162,7 +1162,7 @@ set_wm_properties(const WindowProperties &properties, bool already_mapped) { nassertv(next_set_data < max_set_data); // Add the process ID as a convenience for other applications. - PN_int32 pid = getpid(); + int32_t pid = getpid(); XChangeProperty(_display, _xwindow, x11_pipe->_net_wm_pid, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&pid, 1); diff --git a/pandatool/src/lwo/iffId.h b/pandatool/src/lwo/iffId.h index ff48a7e443..2d20b9b99c 100644 --- a/pandatool/src/lwo/iffId.h +++ b/pandatool/src/lwo/iffId.h @@ -40,7 +40,7 @@ public: private: union { - PN_uint32 _n; + uint32_t _n; char _c[4]; } _id; }; diff --git a/pandatool/src/lwo/iffInputFile.cxx b/pandatool/src/lwo/iffInputFile.cxx index 0707d78044..17f4225625 100644 --- a/pandatool/src/lwo/iffInputFile.cxx +++ b/pandatool/src/lwo/iffInputFile.cxx @@ -83,7 +83,7 @@ set_input(istream *input, bool owns_istream) { /** * Extracts a signed 8-bit integer. */ -PN_int8 IffInputFile:: +int8_t IffInputFile:: get_int8() { Datagram dg; if (!read_bytes(dg, 1)) { @@ -96,7 +96,7 @@ get_int8() { /** * Extracts an unsigned 8-bit integer. */ -PN_uint8 IffInputFile:: +uint8_t IffInputFile:: get_uint8() { Datagram dg; if (!read_bytes(dg, 1)) { @@ -109,7 +109,7 @@ get_uint8() { /** * Extracts a signed 16-bit big-endian integer. */ -PN_int16 IffInputFile:: +int16_t IffInputFile:: get_be_int16() { Datagram dg; if (!read_bytes(dg, 2)) { @@ -122,7 +122,7 @@ get_be_int16() { /** * Extracts a signed 32-bit big-endian integer. */ -PN_int32 IffInputFile:: +int32_t IffInputFile:: get_be_int32() { Datagram dg; if (!read_bytes(dg, 4)) { @@ -135,7 +135,7 @@ get_be_int32() { /** * Extracts an unsigned 16-bit big-endian integer. */ -PN_uint16 IffInputFile:: +uint16_t IffInputFile:: get_be_uint16() { Datagram dg; if (!read_bytes(dg, 2)) { @@ -148,7 +148,7 @@ get_be_uint16() { /** * Extracts an unsigned 32-bit big-endian integer. */ -PN_uint32 IffInputFile:: +uint32_t IffInputFile:: get_be_uint32() { Datagram dg; if (!read_bytes(dg, 4)) { @@ -215,7 +215,7 @@ get_chunk() { } IffId id = get_id(); - PN_uint32 length = get_be_uint32(); + uint32_t length = get_be_uint32(); if (!is_eof()) { PT(IffChunk) chunk = make_new_chunk(id); @@ -265,7 +265,7 @@ get_subchunk(IffChunk *context) { } IffId id = get_id(); - PN_uint16 length = get_be_uint16(); + uint16_t length = get_be_uint16(); if (!is_eof()) { PT(IffChunk) chunk = context->make_new_chunk(this, id); diff --git a/pandatool/src/lwo/iffInputFile.h b/pandatool/src/lwo/iffInputFile.h index 3afe12bae8..2b788f07a0 100644 --- a/pandatool/src/lwo/iffInputFile.h +++ b/pandatool/src/lwo/iffInputFile.h @@ -43,13 +43,13 @@ public: INLINE void align(); - PN_int8 get_int8(); - PN_uint8 get_uint8(); + int8_t get_int8(); + uint8_t get_uint8(); - PN_int16 get_be_int16(); - PN_int32 get_be_int32(); - PN_uint16 get_be_uint16(); - PN_uint32 get_be_uint32(); + int16_t get_be_int16(); + int32_t get_be_int32(); + uint16_t get_be_uint16(); + uint32_t get_be_uint32(); PN_stdfloat get_be_float32(); string get_string(); diff --git a/pandatool/src/lwo/lwoInputFile.cxx b/pandatool/src/lwo/lwoInputFile.cxx index 63f3b51731..78e7dfa10c 100644 --- a/pandatool/src/lwo/lwoInputFile.cxx +++ b/pandatool/src/lwo/lwoInputFile.cxx @@ -46,10 +46,10 @@ LwoInputFile:: */ int LwoInputFile:: get_vx() { - PN_uint16 top = get_be_uint16(); + uint16_t top = get_be_uint16(); if ((top & 0xff00) == 0xff00) { // The first byte is 0xff, which indicates we have a 4-byte integer. - PN_uint16 bottom = get_be_uint16(); + uint16_t bottom = get_be_uint16(); return ((int)(top & 0xff) << 16) | bottom; } diff --git a/pandatool/src/mayaegg/mayaNodeDesc.cxx b/pandatool/src/mayaegg/mayaNodeDesc.cxx index 72c8854976..efef4879a8 100644 --- a/pandatool/src/mayaegg/mayaNodeDesc.cxx +++ b/pandatool/src/mayaegg/mayaNodeDesc.cxx @@ -333,9 +333,9 @@ mark_joint_parent() { */ void MayaNodeDesc:: check_pseudo_joints(bool joint_above) { - static PN_uint32 space_count = 0; + static uint32_t space_count = 0; string space; - for (PN_uint32 idx=0; idx= 0) { set_drag_mode(DM_guide_bar); - PN_int16 x = LOWORD(lparam); + int16_t x = LOWORD(lparam); _drag_start_x = x; SetCapture(_graph_window); return 0; @@ -231,8 +231,8 @@ graph_window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { case WM_MOUSEMOVE: if (_drag_mode == DM_none && _potential_drag_mode == DM_none) { // When the mouse is over a color bar, highlight it. - PN_int16 x = LOWORD(lparam); - PN_int16 y = HIWORD(lparam); + int16_t x = LOWORD(lparam); + int16_t y = HIWORD(lparam); _label_stack.highlight_label(get_collector_under_pixel(x, y)); // Now we want to get a WM_MOUSELEAVE when the mouse leaves the graph @@ -251,7 +251,7 @@ graph_window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { } if (_drag_mode == DM_scale) { - PN_int16 x = LOWORD(lparam); + int16_t x = LOWORD(lparam); double ratio = (double)x / (double)get_xsize(); if (ratio > 0.0f) { set_horizontal_scale(_drag_scale_start / ratio); @@ -261,7 +261,7 @@ graph_window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { } else if (_drag_mode == DM_new_guide_bar) { // We haven't created the new guide bar yet; we won't until the mouse // comes within the graph's region. - PN_int16 x = LOWORD(lparam); + int16_t x = LOWORD(lparam); if (x >= 0 && x < get_xsize()) { set_drag_mode(DM_guide_bar); _drag_guide_bar = add_user_guide_bar(pixel_to_height(x)); @@ -269,7 +269,7 @@ graph_window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { } } else if (_drag_mode == DM_guide_bar) { - PN_int16 x = LOWORD(lparam); + int16_t x = LOWORD(lparam); move_user_guide_bar(_drag_guide_bar, pixel_to_height(x)); return 0; } @@ -287,7 +287,7 @@ graph_window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { return 0; } else if (_drag_mode == DM_guide_bar) { - PN_int16 x = LOWORD(lparam); + int16_t x = LOWORD(lparam); if (x < 0 || x >= get_xsize()) { remove_user_guide_bar(_drag_guide_bar); } else { @@ -303,8 +303,8 @@ graph_window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { { // Double-clicking on a color bar in the graph is the same as double- // clicking on the corresponding label. - PN_int16 x = LOWORD(lparam); - PN_int16 y = HIWORD(lparam); + int16_t x = LOWORD(lparam); + int16_t y = HIWORD(lparam); clicked_label(get_collector_under_pixel(x, y)); return 0; } diff --git a/pandatool/src/win-stats/winStatsStripChart.cxx b/pandatool/src/win-stats/winStatsStripChart.cxx index 2e1d346f3b..066673aecd 100644 --- a/pandatool/src/win-stats/winStatsStripChart.cxx +++ b/pandatool/src/win-stats/winStatsStripChart.cxx @@ -370,14 +370,14 @@ graph_window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { case WM_LBUTTONDOWN: if (_potential_drag_mode == DM_none) { set_drag_mode(DM_scale); - PN_int16 y = HIWORD(lparam); + int16_t y = HIWORD(lparam); _drag_scale_start = pixel_to_height(y); SetCapture(_graph_window); return 0; } else if (_potential_drag_mode == DM_guide_bar && _drag_guide_bar >= 0) { set_drag_mode(DM_guide_bar); - PN_int16 y = HIWORD(lparam); + int16_t y = HIWORD(lparam); _drag_start_y = y; SetCapture(_graph_window); return 0; @@ -387,8 +387,8 @@ graph_window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { case WM_MOUSEMOVE: if (_drag_mode == DM_none && _potential_drag_mode == DM_none) { // When the mouse is over a color bar, highlight it. - PN_int16 x = LOWORD(lparam); - PN_int16 y = HIWORD(lparam); + int16_t x = LOWORD(lparam); + int16_t y = HIWORD(lparam); _label_stack.highlight_label(get_collector_under_pixel(x, y)); // Now we want to get a WM_MOUSELEAVE when the mouse leaves the graph @@ -407,7 +407,7 @@ graph_window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { } if (_drag_mode == DM_scale) { - PN_int16 y = HIWORD(lparam); + int16_t y = HIWORD(lparam); double ratio = 1.0f - ((double)y / (double)get_ysize()); if (ratio > 0.0f) { set_vertical_scale(_drag_scale_start / ratio); @@ -417,7 +417,7 @@ graph_window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { } else if (_drag_mode == DM_new_guide_bar) { // We haven't created the new guide bar yet; we won't until the mouse // comes within the graph's region. - PN_int16 y = HIWORD(lparam); + int16_t y = HIWORD(lparam); if (y >= 0 && y < get_ysize()) { set_drag_mode(DM_guide_bar); _drag_guide_bar = add_user_guide_bar(pixel_to_height(y)); @@ -425,7 +425,7 @@ graph_window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { } } else if (_drag_mode == DM_guide_bar) { - PN_int16 y = HIWORD(lparam); + int16_t y = HIWORD(lparam); move_user_guide_bar(_drag_guide_bar, pixel_to_height(y)); return 0; } @@ -443,7 +443,7 @@ graph_window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { return 0; } else if (_drag_mode == DM_guide_bar) { - PN_int16 y = HIWORD(lparam); + int16_t y = HIWORD(lparam); if (y < 0 || y >= get_ysize()) { remove_user_guide_bar(_drag_guide_bar); } else { @@ -459,8 +459,8 @@ graph_window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { { // Double-clicking on a color bar in the graph is the same as double- // clicking on the corresponding label. - PN_int16 x = LOWORD(lparam); - PN_int16 y = HIWORD(lparam); + int16_t x = LOWORD(lparam); + int16_t y = HIWORD(lparam); clicked_label(get_collector_under_pixel(x, y)); return 0; }