root/OpenSceneGraph/trunk/src/osgPlugins/cfg/ConfigParser.cpp @ 12597

Revision 12597, 66.6 kB (checked in by robert, 3 years ago)

Resolved warnings reported by g++ 4.6's -Wunused-but-set-variable.

Warnings were:

/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osg/ShapeDrawable.cpp: In member function ‘void PrimitiveShapeVisitor::createHalfSphere(unsigned int, unsigned int, float, int, float, const Matrix&)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osg/ShapeDrawable.cpp:1409:11: warning: variable ‘nzBase’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osg/ShapeDrawable.cpp:1410:11: warning: variable ‘nRatioBase’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgUtil/DelaunayTriangulator.cpp: In function ‘osgUtil::Triangle_list osgUtil::fillHole(osg::Vec3Array*, std::vector<unsigned int, std::allocator<unsigned int> >)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgUtil/DelaunayTriangulator.cpp:569:27: warning: variable ‘ptest’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgUtil/DelaunayTriangulator.cpp: In member function ‘bool osgUtil::DelaunayTriangulator::triangulate()’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgUtil/DelaunayTriangulator.cpp:979:45: warning: variable ‘curp’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgUtil/RenderStage.cpp: In member function ‘void osgUtil::RenderStage::runCameraSetUp(osg::RenderInfo?&)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgUtil/RenderStage.cpp:631:18: warning: variable ‘stencilAttached’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgText/FadeText.cpp: In member function ‘void FadeTextPolytopeData::buildPolytope()’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgText/FadeText.cpp:74:20: warning: variable ‘edge23’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgText/FadeText.cpp:75:20: warning: variable ‘edge30’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgText/Text.cpp: In member function ‘void osgText::Text::computeBackdropPositions(unsigned int) const’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgText/Text.cpp:747:10: warning: variable ‘is_valid_size’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgGA/NodeTrackerManipulator.cpp: In member function ‘virtual bool osgGA::NodeTrackerManipulator::performMovementLeftMouseButton(double, double, double)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgGA/NodeTrackerManipulator.cpp:257:21: warning: variable ‘lookVector’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgGA/NodeTrackerManipulator.cpp:259:21: warning: variable ‘upVector’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgGA/TerrainManipulator.cpp: In member function ‘virtual bool osgGA::TerrainManipulator::performMovementMiddleMouseButton(double, double, double)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgGA/TerrainManipulator.cpp:217:11: warning: variable ‘lookVector’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgGA/TerrainManipulator.cpp:219:11: warning: variable ‘upVector’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgVolume/FixedFunctionTechnique.cpp: In member function ‘virtual void osgVolume::FixedFunctionTechnique::init()’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgVolume/FixedFunctionTechnique.cpp:124:30: warning: variable ‘tf’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgParticle/FluidProgram.cpp: In member function ‘virtual void osgParticle::FluidProgram::execute(double)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgParticle/FluidProgram.cpp:38:23: warning: variable ‘velBefore’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgShadow/ParallelSplitShadowMap.cpp: In member function ‘virtual void osgShadow::ParallelSplitShadowMap::cull(osgUtil::CullVisitor?&)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgShadow/ParallelSplitShadowMap.cpp:593:22: warning: variable ‘bb’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgTerrain/GeometryTechnique.cpp: In member function ‘virtual void osgTerrain::GeometryTechnique::generateGeometry(osgTerrain::GeometryTechnique::BufferData?&, osgTerrain::Locator*, const osg::Vec3d&)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgTerrain/GeometryTechnique.cpp:777:12: warning: variable ‘i_sampleFactor’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgTerrain/GeometryTechnique.cpp:778:12: warning: variable ‘j_sampleFactor’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/dds/ReaderWriterDDS.cpp: In function ‘osg::Image* ReadDDSFile(std::istream&)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/dds/ReaderWriterDDS.cpp:314:10: warning: variable ‘is3dImage’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/dds/ReaderWriterDDS.cpp: In function ‘bool WriteDDSFile(const osg::Image*, std::ostream&)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/dds/ReaderWriterDDS.cpp:721:10: warning: variable ‘is3dImage’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/hdr/hdrloader.cpp: In static member function ‘static bool HDRLoader::load(const char*, bool, HDRLoaderResult&)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/hdr/hdrloader.cpp:101:10: warning: variable ‘cmd’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/vtf/ReaderWriterVTF.cpp: In function ‘osg::Image* ReadVTFFile(std::istream&)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/vtf/ReaderWriterVTF.cpp:360:23: warning: variable ‘base’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/jp2/ReaderWriterJP2.cpp: In function ‘int putdata(jas_stream_t*, jas_image_t*, int)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/jp2/ReaderWriterJP2.cpp:41:13: warning: variable ‘linelen’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/Inventor/ConvertToInventor.cpp: In member function ‘void ConvertToInventor::processGeometry(const osg::Geometry*, ConvertToInventor::InventorState?*)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/Inventor/ConvertToInventor.cpp:1639:10: warning: variable ‘ok’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/Inventor/ConvertFromInventor.cpp: In member function ‘virtual SbBool? SoVRMLImageTextureOsg::readInstance(SoInput?*, short unsigned int)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/Inventor/ConvertFromInventor.cpp:1264:16: warning: variable ‘retval’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/OpenFlight/GeometryRecords.cpp: In member function ‘virtual void flt::Face::readRecord(flt::RecordInputStream?&, flt::Document&)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/OpenFlight/GeometryRecords.cpp:369:19: warning: variable ‘secondaryPackedColor’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/OpenFlight/GeometryRecords.cpp: In member function ‘virtual void flt::Mesh::readRecord(flt::RecordInputStream?&, flt::Document&)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/OpenFlight/GeometryRecords.cpp:942:19: warning: variable ‘secondaryPackedColor’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/OpenFlight/ReaderWriterFLT.cpp: In member function ‘virtual osgDB::ReaderWriter::ReadResult? FLTReaderWriter::readNode(std::istream&, const Options*) const’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/OpenFlight/ReaderWriterFLT.cpp:427:40: warning: variable ‘pos’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/ive/ShapeAttributeList.cpp: In member function ‘void ive::ShapeAttributeList::write(ive::DataOutputStream?*)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/ive/ShapeAttributeList.cpp:31:48: warning: variable ‘it’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/ac/Geode.cpp: In member function ‘void ac3d::Geode::ProcessGeometry?(std::ostream&, unsigned int)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/ac/Geode.cpp:806:35: warning: variable ‘fRep_s’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/ac/Geode.cpp:806:43: warning: variable ‘fRep_t’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/ac/Geode.cpp:807:35: warning: variable ‘fOffset_s’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/ac/Geode.cpp:807:46: warning: variable ‘fOffset_t’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/ac/Geode.cpp:932:38: warning: variable ‘primLength’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/txp/trpage_geom.cpp: In member function ‘virtual bool trpgGeometry::Write(trpgWriteBuffer&)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/txp/trpage_geom.cpp:615:19: warning: variable ‘u’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/txp/trpage_material.cpp: In member function ‘int trpgMatTable::AddMaterial?(const trpgMaterial&, bool)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/txp/trpage_material.cpp:103:10: warning: variable ‘spaceInTable’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/txp/trpage_rarchive.cpp: In member function ‘virtual bool trpgr_Archive::ReadHeader?(bool)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/txp/trpage_rarchive.cpp:261:14: warning: variable ‘headerHasTexTable’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/zip/unzip.cpp: In member function ‘ZRESULT TUnzip::Get(int, ZIPENTRY*)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/zip/unzip.cpp:4055:8: warning: variable ‘hidden’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/zip/unzip.cpp:4055:22: warning: variable ‘system’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/zip/unzip.cpp:4055:36: warning: variable ‘archive’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/zip/ZipArchive.cpp: In member function ‘virtual bool ZipArchive::getFileNames(osgDB::Archive::FileNameList?&) const’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/zip/ZipArchive.cpp:91:37: warning: variable ‘iterEnd’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/pvr/ReaderWriterPVR.cpp: In member function ‘osgDB::ReaderWriter::ReadResult? ReaderWriterPVR::readPVRStream(std::istream&) const’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/pvr/ReaderWriterPVR.cpp:155:14: warning: variable ‘hasAlpha’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgViewer/View.cpp: In function ‘osg::Geometry* create3DSphericalDisplayDistortionMesh(const Vec3&, const Vec3&, const Vec3&, double, double, osg::Image*, const Matrix&)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgViewer/View.cpp:737:15: warning: variable ‘cursor’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgViewer/View.cpp: In function ‘osg::Geometry* createParoramicSphericalDisplayDistortionMesh(const Vec3&, const Vec3&, const Vec3&, double, double, osg::Image*, const Matrix&)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgViewer/View.cpp:1130:19: warning: variable ‘cursor’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgViewer/View.cpp:1118:15: warning: variable ‘dx’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgViewer/GraphicsWindowX11.cpp: In member function ‘virtual void osgViewer::GraphicsWindowX11::checkEvents()’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgViewer/GraphicsWindowX11.cpp:1181:10: warning: variable ‘destroyWindowRequested’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/cfg/ConfigParser.cpp: In member function ‘bool osgProducer::CameraConfig::parseFile(const string&)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/cfg/ConfigParser.cpp:2247:13: warning: variable ‘result’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgQt/QGraphicsViewAdapter.cpp: In member function ‘bool osgQt::QGraphicsViewAdapter::handlePointerEvent(int, int, int)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgQt/QGraphicsViewAdapter.cpp:344:17: warning: variable ‘viewportGeometry’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgdistortion/osgdistortion.cpp: In function ‘osg::Node* createDistortionSubgraph(osg::Node*, const Vec4&)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgdistortion/osgdistortion.cpp:125:19: warning: variable ‘cursor’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgdistortion/osgdistortion.cpp:126:19: warning: variable ‘texcoord’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgdistortion/osgdistortion.cpp: In function ‘osg::Geometry* createDomeDistortionMesh(const Vec3&, const Vec3&, const Vec3&, osg::ArgumentParser?&)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgdistortion/osgdistortion.cpp:358:15: warning: variable ‘cursor’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgposter/osgposter.cpp: In function ‘int main(int, char**)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgposter/osgposter.cpp:253:31: warning: variable ‘outputTiles’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgthreadedterrain/osgthreadedterrain.cpp: In function ‘int main(int, char**)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgthreadedterrain/osgthreadedterrain.cpp:669:10: warning: variable ‘readParameter’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgtext3D/TextNode.cpp: In member function ‘virtual void osgText::Layout::layout(osgText::TextNode?&) const’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgtext3D/TextNode.cpp:80:11: warning: variable ‘characterHeightScale’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgvolume/osgvolume.cpp: In function ‘int main(int, char**)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgvolume/osgvolume.cpp:678:38: warning: variable ‘internalFormatMode’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgwidgetcanvas/osgwidgetcanvas.cpp: In function ‘bool windowMouseOver(osgWidget::Event&)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgwidgetcanvas/osgwidgetcanvas.cpp:27:24: warning: variable ‘xy’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgwidgetcanvas/osgwidgetcanvas.cpp: In function ‘bool widgetMouseOver(osgWidget::Event&)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/examples/osgwidgetcanvas/osgwidgetcanvas.cpp:35:24: warning: variable ‘xy’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/p3d/ReaderWriterP3D.cpp: In member function ‘osg::Node* ReaderWriterP3DXML::parseXmlGraph(osgDB::XmlNode?*, bool, osgDB::Options*) const’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/src/osgPlugins/p3d/ReaderWriterP3D.cpp:2121:10: warning: variable ‘readSlide’ set but not used [-Wunused-but-set-variable]
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/applications/present3D/present3D.cpp: In function ‘int main(int, char**)’:
/home/stephan/Dev/LibSources/OpenSceneGraph-3.0.0-rc2/applications/present3D/present3D.cpp:639:10: warning: variable ‘sizesSpecified’ set but not used [-Wunused-but-set-variable]

  • Property svn:eol-style set to native
Line 
1/* A Bison parser, made by GNU Bison 1.875.  */
2
3/* Skeleton parser for Yacc-like parsing with Bison,
4   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
5
6   This program is free software; you can redistribute it and/or modify
7   it under the terms of the GNU General Public License as published by
8   the Free Software Foundation; either version 2, or (at your option)
9   any later version.
10
11   This program is distributed in the hope that it will be useful,
12   but WITHOUT ANY WARRANTY; without even the implied warranty of
13   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   GNU General Public License for more details.
15
16   You should have received a copy of the GNU General Public License
17   along with this program; if not, write to the Free Software
18   Foundation, Inc., 59 Temple Place - Suite 330,
19   Boston, MA 02111-1307, USA.  */
20
21/* As a special exception, when this file is copied by Bison into a
22   Bison output file, you may use that output file without restriction.
23   This special exception was added by the Free Software Foundation
24   in version 1.24 of Bison.  */
25
26/* Written by Richard Stallman by simplifying the original so called
27   ``semantic'' parser.  */
28
29/* All symbols defined below should begin with yy or YY, to avoid
30   infringing on user name space.  This should be done even for local
31   variables, as they might otherwise be expanded by user macros.
32   There are some unavoidable exceptions within include files to
33   define necessary library symbols; they are noted "INFRINGES ON
34   USER NAME SPACE" below.  */
35
36/* Identify Bison output.  */
37#define YYBISON 1
38
39/* Skeleton name.  */
40#define YYSKELETON_NAME "yacc.c"
41
42/* Pure parsers.  */
43#define YYPURE 0
44
45/* Using locations.  */
46#define YYLSP_NEEDED 0
47
48/* If NAME_PREFIX is specified substitute the variables and functions
49   names.  */
50#define yyparse ConfigParser_parse
51#define yylex   ConfigParser_lex
52#define yyerror ConfigParser_error
53#define yylval  ConfigParser_lval
54#define yychar  ConfigParser_char
55#define yydebug ConfigParser_debug
56#define yynerrs ConfigParser_nerrs
57
58
59/* Tokens.  */
60#ifndef YYTOKENTYPE
61# define YYTOKENTYPE
62   /* Put the tokens into the symbol table, so that GDB and other debuggers
63      know about them.  */
64   enum yytokentype {
65     PRTOKEN_VISUAL = 258,
66     PRTOKEN_SET_SIMPLE = 259,
67     PRTOKEN_VISUAL_ID = 260,
68     PRTOKEN_BUFFER_SIZE = 261,
69     PRTOKEN_LEVEL = 262,
70     PRTOKEN_RGBA = 263,
71     PRTOKEN_DOUBLEBUFFER = 264,
72     PRTOKEN_STEREO = 265,
73     PRTOKEN_AUX_BUFFERS = 266,
74     PRTOKEN_RED_SIZE = 267,
75     PRTOKEN_GREEN_SIZE = 268,
76     PRTOKEN_BLUE_SIZE = 269,
77     PRTOKEN_ALPHA_SIZE = 270,
78     PRTOKEN_DEPTH_SIZE = 271,
79     PRTOKEN_STENCIL_SIZE = 272,
80     PRTOKEN_ACCUM_RED_SIZE = 273,
81     PRTOKEN_ACCUM_GREEN_SIZE = 274,
82     PRTOKEN_ACCUM_BLUE_SIZE = 275,
83     PRTOKEN_ACCUM_ALPHA_SIZE = 276,
84     PRTOKEN_SAMPLES = 277,
85     PRTOKEN_SAMPLE_BUFFERS = 278,
86     PRTOKEN_RENDER_SURFACE = 279,
87     PRTOKEN_WINDOW_RECT = 280,
88     PRTOKEN_INPUT_RECT = 281,
89     PRTOKEN_HOSTNAME = 282,
90     PRTOKEN_DISPLAY = 283,
91     PRTOKEN_SCREEN = 284,
92     PRTOKEN_BORDER = 285,
93     PRTOKEN_DRAWABLE_TYPE = 286,
94     PRTOKEN_WINDOW_TYPE = 287,
95     PRTOKEN_PBUFFER_TYPE = 288,
96     PRTOKEN_CAMERA_GROUP = 289,
97     PRTOKEN_CAMERA = 290,
98     PRTOKEN_PROJECTION_RECT = 291,
99     PRTOKEN_LENS = 292,
100     PRTOKEN_FRUSTUM = 293,
101     PRTOKEN_PERSPECTIVE = 294,
102     PRTOKEN_ORTHO = 295,
103     PRTOKEN_OFFSET = 296,
104     PRTOKEN_ROTATE = 297,
105     PRTOKEN_TRANSLATE = 298,
106     PRTOKEN_SCALE = 299,
107     PRTOKEN_SHEAR = 300,
108     PRTOKEN_CLEAR_COLOR = 301,
109     PRTOKEN_INPUT_AREA = 302,
110     PRTOKEN_ERROR = 303,
111     PRTOKEN_INTEGER = 304,
112     PRTOKEN_HEX_INTEGER = 305,
113     PRTOKEN_FLOAT = 306,
114     PRTOKEN_TRUE = 307,
115     PRTOKEN_FALSE = 308,
116     PRTOKEN_QUOTED_STRING = 309,
117     PRTOKEN_STEREO_SYSTEM_COMMANDS = 310,
118     PRTOKEN_CUSTOM_FULL_SCREEN_RECTANGLE = 311,
119     PRTOKEN_METHOD = 312,
120     PRTOKEN_PREMULTIPLY = 313,
121     PRTOKEN_POSTMULTIPLY = 314,
122     PRTOKEN_OVERRIDE_REDIRECT = 315,
123     PRTOKEN_SHARELENS = 316,
124     PRTOKEN_SHAREVIEW = 317,
125     PRTOKEN_READ_DRAWABLE = 318,
126     PRTOKEN_SET_RTT_MODE = 319,
127     PRTOKEN_RTT_MODE_NONE = 320,
128     PRTOKEN_RTT_MODE_RGB = 321,
129     PRTOKEN_RTT_MODE_RGBA = 322,
130     PRTOKEN_THREAD_MODEL = 323,
131     PRTOKEN_SINGLE_THREADED = 324,
132     PRTOKEN_THREAD_PER_CAMERA = 325,
133     PRTOKEN_THREAD_PER_RENDER_SURFACE = 326
134   };
135#endif
136#define PRTOKEN_VISUAL 258
137#define PRTOKEN_SET_SIMPLE 259
138#define PRTOKEN_VISUAL_ID 260
139#define PRTOKEN_BUFFER_SIZE 261
140#define PRTOKEN_LEVEL 262
141#define PRTOKEN_RGBA 263
142#define PRTOKEN_DOUBLEBUFFER 264
143#define PRTOKEN_STEREO 265
144#define PRTOKEN_AUX_BUFFERS 266
145#define PRTOKEN_RED_SIZE 267
146#define PRTOKEN_GREEN_SIZE 268
147#define PRTOKEN_BLUE_SIZE 269
148#define PRTOKEN_ALPHA_SIZE 270
149#define PRTOKEN_DEPTH_SIZE 271
150#define PRTOKEN_STENCIL_SIZE 272
151#define PRTOKEN_ACCUM_RED_SIZE 273
152#define PRTOKEN_ACCUM_GREEN_SIZE 274
153#define PRTOKEN_ACCUM_BLUE_SIZE 275
154#define PRTOKEN_ACCUM_ALPHA_SIZE 276
155#define PRTOKEN_SAMPLES 277
156#define PRTOKEN_SAMPLE_BUFFERS 278
157#define PRTOKEN_RENDER_SURFACE 279
158#define PRTOKEN_WINDOW_RECT 280
159#define PRTOKEN_INPUT_RECT 281
160#define PRTOKEN_HOSTNAME 282
161#define PRTOKEN_DISPLAY 283
162#define PRTOKEN_SCREEN 284
163#define PRTOKEN_BORDER 285
164#define PRTOKEN_DRAWABLE_TYPE 286
165#define PRTOKEN_WINDOW_TYPE 287
166#define PRTOKEN_PBUFFER_TYPE 288
167#define PRTOKEN_CAMERA_GROUP 289
168#define PRTOKEN_CAMERA 290
169#define PRTOKEN_PROJECTION_RECT 291
170#define PRTOKEN_LENS 292
171#define PRTOKEN_FRUSTUM 293
172#define PRTOKEN_PERSPECTIVE 294
173#define PRTOKEN_ORTHO 295
174#define PRTOKEN_OFFSET 296
175#define PRTOKEN_ROTATE 297
176#define PRTOKEN_TRANSLATE 298
177#define PRTOKEN_SCALE 299
178#define PRTOKEN_SHEAR 300
179#define PRTOKEN_CLEAR_COLOR 301
180#define PRTOKEN_INPUT_AREA 302
181#define PRTOKEN_ERROR 303
182#define PRTOKEN_INTEGER 304
183#define PRTOKEN_HEX_INTEGER 305
184#define PRTOKEN_FLOAT 306
185#define PRTOKEN_TRUE 307
186#define PRTOKEN_FALSE 308
187#define PRTOKEN_QUOTED_STRING 309
188#define PRTOKEN_STEREO_SYSTEM_COMMANDS 310
189#define PRTOKEN_CUSTOM_FULL_SCREEN_RECTANGLE 311
190#define PRTOKEN_METHOD 312
191#define PRTOKEN_PREMULTIPLY 313
192#define PRTOKEN_POSTMULTIPLY 314
193#define PRTOKEN_OVERRIDE_REDIRECT 315
194#define PRTOKEN_SHARELENS 316
195#define PRTOKEN_SHAREVIEW 317
196#define PRTOKEN_READ_DRAWABLE 318
197#define PRTOKEN_SET_RTT_MODE 319
198#define PRTOKEN_RTT_MODE_NONE 320
199#define PRTOKEN_RTT_MODE_RGB 321
200#define PRTOKEN_RTT_MODE_RGBA 322
201#define PRTOKEN_THREAD_MODEL 323
202#define PRTOKEN_SINGLE_THREADED 324
203#define PRTOKEN_THREAD_PER_CAMERA 325
204#define PRTOKEN_THREAD_PER_RENDER_SURFACE 326
205
206
207
208
209/* Copy the first part of user declarations.  */
210
211
212
213#ifndef WIN32
214#include <unistd.h>
215#include <sys/wait.h>
216#include <stdlib.h>
217#include <fcntl.h>
218#endif
219
220#ifndef WIN32
221#define SUPPORT_CPP 1
222#endif
223
224#include <osgDB/fstream>
225
226#include <string.h>
227#include <stdio.h>
228#include <errno.h>
229#include <string>
230
231#include "FlexLexer.h"
232
233#include "CameraConfig.h"
234
235
236using namespace std;
237using namespace osgProducer;
238
239static void ConfigParser_error( const char * );
240static CameraConfig *cfg = 0L;
241static std::string fileName = "(stdin)";
242
243static yyFlexLexer *flexer = 0L;
244
245static int yylex()
246{
247    if( flexer == 0L )
248        fprintf( stderr, "Internal error!\n" );
249    return flexer->yylex();
250}
251
252
253
254/* Enabling traces.  */
255#ifndef YYDEBUG
256# define YYDEBUG 0
257#endif
258
259/* Enabling verbose error messages.  */
260#ifdef YYERROR_VERBOSE
261# undef YYERROR_VERBOSE
262# define YYERROR_VERBOSE 1
263#else
264# define YYERROR_VERBOSE 0
265#endif
266
267#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
268
269typedef union YYSTYPE {
270    char * string;
271    int    integer;
272    float  real;
273    bool boolean;
274} YYSTYPE;
275/* Line 191 of yacc.c.  */
276
277# define yystype YYSTYPE /* obsolescent; will be withdrawn */
278# define YYSTYPE_IS_DECLARED 1
279# define YYSTYPE_IS_TRIVIAL 1
280#endif
281
282
283
284/* Copy the second part of user declarations.  */
285
286
287/* Line 214 of yacc.c.  */
288
289
290#if ! defined (yyoverflow) || YYERROR_VERBOSE
291
292/* The parser invokes alloca or malloc; define the necessary symbols.  */
293
294# if YYSTACK_USE_ALLOCA
295define YYSTACK_ALLOC alloca
296# else
297ifndef YYSTACK_USE_ALLOCA
298#   if defined (alloca) || defined (_ALLOCA_H)
299#    define YYSTACK_ALLOC alloca
300#   else
301#    ifdef __GNUC__
302#     define YYSTACK_ALLOC __builtin_alloca
303#    endif
304#   endif
305endif
306# endif
307
308# ifdef YYSTACK_ALLOC
309   /* Pacify GCC's `empty if-body' warning. */
310define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
311# else
312if defined (__STDC__) || defined (__cplusplus)
313#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
314#   define YYSIZE_T size_t
315endif
316define YYSTACK_ALLOC malloc
317define YYSTACK_FREE free
318# endif
319#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
320
321
322#if (! defined (yyoverflow) \
323     && (! defined (__cplusplus) \
324     || (YYSTYPE_IS_TRIVIAL)))
325
326/* A type that is properly aligned for any stack member.  */
327union yyalloc
328{
329  short yyss;
330  YYSTYPE yyvs;
331  };
332
333/* The size of the maximum gap between one aligned stack and the next.  */
334# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
335
336/* The size of an array large to enough to hold all stacks, each with
337   N elements.  */
338# define YYSTACK_BYTES(N) \
339     ((N) * (sizeof (short) + sizeof (YYSTYPE))                \
340      + YYSTACK_GAP_MAXIMUM)
341
342/* Copy COUNT objects from FROM to TO.  The source and destination do
343   not overlap.  */
344# ifndef YYCOPY
345if 1 < __GNUC__
346#   define YYCOPY(To, From, Count) \
347      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
348else
349#   define YYCOPY(To, From, Count)        \
350      do                    \
351    {                    \
352      register YYSIZE_T yyi;        \
353      for (yyi = 0; yyi < (Count); yyi++)    \
354        (To)[yyi] = (From)[yyi];        \
355    }                    \
356      while (0)
357endif
358# endif
359
360/* Relocate STACK from its old location to the new one.  The
361   local variables YYSIZE and YYSTACKSIZE give the old and new number of
362   elements in the stack, and YYPTR gives the new location of the
363   stack.  Advance YYPTR to a properly aligned location for the next
364   stack.  */
365# define YYSTACK_RELOCATE(Stack)                    \
366    do                                    \
367      {                                    \
368    YYSIZE_T yynewbytes;                        \
369    YYCOPY (&yyptr->Stack, Stack, yysize);                \
370    Stack = &yyptr->Stack;                        \
371    yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
372    yyptr += yynewbytes / sizeof (*yyptr);                \
373      }                                    \
374    while (0)
375
376#endif
377
378#if defined (__STDC__) || defined (__cplusplus)
379   typedef signed char yysigned_char;
380#else
381   typedef short yysigned_char;
382#endif
383
384/* YYFINAL -- State number of the termination state. */
385#define YYFINAL  32
386/* YYLAST -- Last index in YYTABLE.  */
387#define YYLAST   279
388
389/* YYNTOKENS -- Number of terminals. */
390#define YYNTOKENS  76
391/* YYNNTS -- Number of nonterminals. */
392#define YYNNTS  45
393/* YYNRULES -- Number of rules. */
394#define YYNRULES  122
395/* YYNRULES -- Number of states. */
396#define YYNSTATES  266
397
398/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
399#define YYUNDEFTOK  2
400#define YYMAXUTOK   326
401
402#define YYTRANSLATE(YYX)                         \
403  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
404
405/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
406static const unsigned char yytranslate[] =
407{
408       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
409       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
410       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
411       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
412       2,     2,     2,     2,    75,     2,     2,     2,     2,     2,
413       2,     2,     2,     2,     2,     2,     2,     2,     2,    72,
414       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
415       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
416       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
417       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
418       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
419       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
420       2,     2,     2,    73,     2,    74,     2,     2,     2,     2,
421       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
422       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
423       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
424       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
425       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
426       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
427       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
428       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
429       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
430       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
431       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
432       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
433       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
434       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
435      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
436      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
437      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
438      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
439      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
440      65,    66,    67,    68,    69,    70,    71
441};
442
443#if YYDEBUG
444/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
445   YYRHS.  */
446static const unsigned short yyprhs[] =
447{
448       0,     0,     3,     5,     7,    10,    12,    14,    16,    18,
449      20,    22,    24,    26,    29,    33,    35,    37,    39,    45,
450      50,    52,    53,    55,    58,    59,    66,    68,    71,    72,
451      76,    78,    85,    89,    93,   100,   102,   104,   105,   111,
452     113,   116,   121,   128,   134,   140,   144,   146,   148,   153,
453     155,   158,   159,   168,   179,   186,   195,   204,   215,   220,
454     221,   228,   230,   233,   234,   238,   240,   247,   254,   258,
455     262,   266,   270,   277,   281,   285,   289,   293,   295,   297,
456     299,   301,   303,   304,   311,   312,   318,   320,   324,   326,
457     329,   332,   335,   337,   339,   341,   344,   347,   350,   353,
458     356,   359,   362,   365,   368,   371,   374,   377,   379,   382,
459     383,   389,   391,   394,   398,   400,   402,   404,   406,   408,
460     410,   412,   414
461};
462
463/* YYRHS -- A `-1'-separated list of the rules' RHS. */
464static const yysigned_char yyrhs[] =
465{
466      77,     0,    -1,    78,    -1,    79,    -1,    78,    79,    -1,
467     105,    -1,    99,    -1,    87,    -1,   110,    -1,    84,    -1,
468      83,    -1,    80,    -1,    81,    -1,    80,    81,    -1,    68,
469      82,    72,    -1,    69,    -1,    70,    -1,    71,    -1,    55,
470     116,   118,   118,    72,    -1,    34,    73,    85,    74,    -1,
471      86,    -1,    -1,    87,    -1,    86,    87,    -1,    -1,    35,
472     117,    88,    73,    89,    74,    -1,    90,    -1,    89,    90,
473      -1,    -1,    24,   117,    72,    -1,    99,    -1,    36,   114,
474     114,   114,   114,    72,    -1,    61,   120,    72,    -1,    62,
475     120,    72,    -1,    46,   114,   114,   114,   114,    72,    -1,
476      96,    -1,    91,    -1,    -1,    41,    73,    92,    93,    74,
477      -1,    94,    -1,    93,    94,    -1,    45,   114,   114,    72,
478      -1,    42,   114,   114,   114,   114,    72,    -1,    43,   114,
479     114,   114,    72,    -1,    44,   114,   114,   114,    72,    -1,
480      57,    95,    72,    -1,    58,    -1,    59,    -1,    37,    73,
481      97,    74,    -1,    98,    -1,    97,    98,    -1,    -1,    40,
482     114,   114,   114,   114,   114,   114,    72,    -1,    40,   114,
483     114,   114,   114,   114,   114,   114,   114,    72,    -1,    39,
484     114,   114,   114,   114,    72,    -1,    39,   114,   114,   114,
485     114,   114,   114,    72,    -1,    38,   114,   114,   114,   114,
486     114,   114,    72,    -1,    38,   114,   114,   114,   114,   114,
487     114,   114,   114,    72,    -1,    45,   114,   114,    72,    -1,
488      -1,    24,   117,   100,    73,   101,    74,    -1,   102,    -1,
489     101,   102,    -1,    -1,     3,   117,    72,    -1,   105,    -1,
490      25,   116,   116,   116,   116,    72,    -1,    26,   115,   115,
491     115,   115,    72,    -1,    27,   117,    72,    -1,    28,   116,
492      72,    -1,    29,   116,    72,    -1,    30,   120,    72,    -1,
493      56,   116,   116,   116,   116,    72,    -1,    60,   120,    72,
494      -1,    31,   103,    72,    -1,    63,   117,    72,    -1,    64,
495     104,    72,    -1,    32,    -1,    33,    -1,    65,    -1,    66,
496      -1,    67,    -1,    -1,     3,   117,   106,    73,   108,    74,
497      -1,    -1,     3,   107,    73,   108,    74,    -1,   109,    -1,
498     108,    75,   109,    -1,     4,    -1,     5,   119,    -1,     6,
499     116,    -1,     7,   116,    -1,     8,    -1,     9,    -1,    10,
500      -1,    11,   116,    -1,    12,   116,    -1,    13,   116,    -1,
501      14,   116,    -1,    15,   116,    -1,    16,   116,    -1,    17,
502     116,    -1,    18,   116,    -1,    19,   116,    -1,    20,   116,
503      -1,    21,   116,    -1,    22,   116,    -1,    23,    -1,   116,
504     116,    -1,    -1,    47,   111,    73,   112,    74,    -1,   113,
505      -1,   112,   113,    -1,    24,   117,    72,    -1,    51,    -1,
506      49,    -1,    51,    -1,    49,    -1,    54,    -1,    54,    -1,
507      50,    -1,    52,    -1,    53,    -1
508};
509
510/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
511static const unsigned short yyrline[] =
512{
513       0,   144,   144,   147,   147,   150,   150,   150,   150,   150,
514     150,   150,   153,   153,   157,   165,   166,   167,   170,   176,
515     179,   182,   182,   182,   186,   185,   194,   194,   197,   199,
516     203,   207,   211,   215,   219,   223,   224,   228,   227,   237,
517     237,   241,   245,   249,   253,   257,   264,   265,   268,   271,
518     271,   274,   276,   280,   284,   288,   292,   296,   300,   307,
519     306,   317,   318,   321,   323,   327,   331,   335,   339,   343,
520     347,   351,   355,   359,   363,   368,   372,   379,   380,   384,
521     385,   386,   391,   390,   400,   399,   410,   410,   413,   417,
522     422,   426,   431,   435,   439,   443,   447,   452,   457,   461,
523     465,   469,   473,   477,   481,   485,   489,   493,   497,   504,
524     503,   509,   509,   513,   519,   523,   530,   536,   542,   548,
525     555,   563,   563
526};
527#endif
528
529#if YYDEBUG || YYERROR_VERBOSE
530/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
531   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
532static const char *const yytname[] =
533{
534  "$end", "error", "$undefined", "PRTOKEN_VISUAL", "PRTOKEN_SET_SIMPLE",
535  "PRTOKEN_VISUAL_ID", "PRTOKEN_BUFFER_SIZE", "PRTOKEN_LEVEL",
536  "PRTOKEN_RGBA", "PRTOKEN_DOUBLEBUFFER", "PRTOKEN_STEREO",
537  "PRTOKEN_AUX_BUFFERS", "PRTOKEN_RED_SIZE", "PRTOKEN_GREEN_SIZE",
538  "PRTOKEN_BLUE_SIZE", "PRTOKEN_ALPHA_SIZE", "PRTOKEN_DEPTH_SIZE",
539  "PRTOKEN_STENCIL_SIZE", "PRTOKEN_ACCUM_RED_SIZE",
540  "PRTOKEN_ACCUM_GREEN_SIZE", "PRTOKEN_ACCUM_BLUE_SIZE",
541  "PRTOKEN_ACCUM_ALPHA_SIZE", "PRTOKEN_SAMPLES", "PRTOKEN_SAMPLE_BUFFERS",
542  "PRTOKEN_RENDER_SURFACE", "PRTOKEN_WINDOW_RECT", "PRTOKEN_INPUT_RECT",
543  "PRTOKEN_HOSTNAME", "PRTOKEN_DISPLAY", "PRTOKEN_SCREEN",
544  "PRTOKEN_BORDER", "PRTOKEN_DRAWABLE_TYPE", "PRTOKEN_WINDOW_TYPE",
545  "PRTOKEN_PBUFFER_TYPE", "PRTOKEN_CAMERA_GROUP", "PRTOKEN_CAMERA",
546  "PRTOKEN_PROJECTION_RECT", "PRTOKEN_LENS", "PRTOKEN_FRUSTUM",
547  "PRTOKEN_PERSPECTIVE", "PRTOKEN_ORTHO", "PRTOKEN_OFFSET",
548  "PRTOKEN_ROTATE", "PRTOKEN_TRANSLATE", "PRTOKEN_SCALE", "PRTOKEN_SHEAR",
549  "PRTOKEN_CLEAR_COLOR", "PRTOKEN_INPUT_AREA", "PRTOKEN_ERROR",
550  "PRTOKEN_INTEGER", "PRTOKEN_HEX_INTEGER", "PRTOKEN_FLOAT",
551  "PRTOKEN_TRUE", "PRTOKEN_FALSE", "PRTOKEN_QUOTED_STRING",
552  "PRTOKEN_STEREO_SYSTEM_COMMANDS",
553  "PRTOKEN_CUSTOM_FULL_SCREEN_RECTANGLE", "PRTOKEN_METHOD",
554  "PRTOKEN_PREMULTIPLY", "PRTOKEN_POSTMULTIPLY",
555  "PRTOKEN_OVERRIDE_REDIRECT", "PRTOKEN_SHARELENS", "PRTOKEN_SHAREVIEW",
556  "PRTOKEN_READ_DRAWABLE", "PRTOKEN_SET_RTT_MODE",
557  "PRTOKEN_RTT_MODE_NONE", "PRTOKEN_RTT_MODE_RGB",
558  "PRTOKEN_RTT_MODE_RGBA", "PRTOKEN_THREAD_MODEL",
559  "PRTOKEN_SINGLE_THREADED", "PRTOKEN_THREAD_PER_CAMERA",
560  "PRTOKEN_THREAD_PER_RENDER_SURFACE", "';'", "'{'", "'}'", "','",
561  "$accept", "config", "entries", "entry", "system_params",
562  "system_param", "threadModelDirective", "stereo_param", "camera_group",
563  "camera_group_attributes", "cameras", "camera", "@1",
564  "camera_attributes", "camera_attribute", "camera_offset", "@2",
565  "camera_offset_attributes", "camera_offset_attribute",
566  "offset_multiply_method", "lens", "lens_attributes", "lens_attribute",
567  "render_surface", "@3", "render_surface_attributes",
568  "render_surface_attribute", "drawableType", "rtt_mode", "visual", "@4",
569  "@5", "visual_attributes", "visual_attribute", "input_area", "@6",
570  "input_area_entries", "input_area_entry", "real", "floatparam",
571  "intparam", "name", "string", "hex_integer", "bool", 0
572};
573#endif
574
575# ifdef YYPRINT
576/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
577   token YYLEX-NUM.  */
578static const unsigned short yytoknum[] =
579{
580       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
581     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
582     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
583     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
584     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
585     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
586     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
587     325,   326,    59,   123,   125,    44
588};
589# endif
590
591/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
592static const unsigned char yyr1[] =
593{
594       0,    76,    77,    78,    78,    79,    79,    79,    79,    79,
595      79,    79,    80,    80,    81,    82,    82,    82,    83,    84,
596      85,    86,    86,    86,    88,    87,    89,    89,    90,    90,
597      90,    90,    90,    90,    90,    90,    90,    92,    91,    93,
598      93,    94,    94,    94,    94,    94,    95,    95,    96,    97,
599      97,    98,    98,    98,    98,    98,    98,    98,    98,   100,
600      99,   101,   101,   102,   102,   102,   102,   102,   102,   102,
601     102,   102,   102,   102,   102,   102,   102,   103,   103,   104,
602     104,   104,   106,   105,   107,   105,   108,   108,   109,   109,
603     109,   109,   109,   109,   109,   109,   109,   109,   109,   109,
604     109,   109,   109,   109,   109,   109,   109,   109,   109,   111,
605     110,   112,   112,   113,   114,   114,   115,   116,   117,   118,
606     119,   120,   120
607};
608
609/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
610static const unsigned char yyr2[] =
611{
612       0,     2,     1,     1,     2,     1,     1,     1,     1,     1,
613       1,     1,     1,     2,     3,     1,     1,     1,     5,     4,
614       1,     0,     1,     2,     0,     6,     1,     2,     0,     3,
615       1,     6,     3,     3,     6,     1,     1,     0,     5,     1,
616       2,     4,     6,     5,     5,     3,     1,     1,     4,     1,
617       2,     0,     8,    10,     6,     8,     8,    10,     4,     0,
618       6,     1,     2,     0,     3,     1,     6,     6,     3,     3,
619       3,     3,     6,     3,     3,     3,     3,     1,     1,     1,
620       1,     1,     0,     6,     0,     5,     1,     3,     1,     2,
621       2,     2,     1,     1,     1,     2,     2,     2,     2,     2,
622       2,     2,     2,     2,     2,     2,     2,     1,     2,     0,
623       5,     1,     2,     3,     1,     1,     1,     1,     1,     1,
624       1,     1,     1
625};
626
627/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
628   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
629   means the default is an error.  */
630static const unsigned char yydefact[] =
631{
632       0,    84,     0,     0,     0,   109,     0,     0,     0,     2,
633       3,    11,    12,    10,     9,     7,     6,     5,     8,   118,
634       0,    82,    59,    21,    24,     0,   117,     0,    15,    16,
635      17,     0,     1,     4,    13,     0,     0,     0,     0,    20,
636      22,     0,     0,   119,     0,    14,    88,     0,     0,     0,
637      92,    93,    94,     0,     0,     0,     0,     0,     0,     0,
638       0,     0,     0,     0,     0,   107,     0,    86,     0,     0,
639      63,    19,    23,    28,     0,     0,   111,     0,   120,    89,
640      90,    91,    95,    96,    97,    98,    99,   100,   101,   102,
641     103,   104,   105,   106,    85,     0,   108,     0,    84,     0,
642       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
643       0,    61,    65,     0,     0,     0,     0,     0,     0,     0,
644       0,    26,    36,    35,    30,     0,   110,   112,    18,    87,
645      83,    82,     0,   116,     0,     0,     0,     0,   121,   122,
646       0,    77,    78,     0,     0,     0,     0,    79,    80,    81,
647       0,    60,    62,    59,   115,   114,     0,    51,    37,     0,
648       0,     0,    25,    27,   113,    64,     0,     0,    68,    69,
649      70,    71,    74,     0,    73,    75,    76,    29,     0,     0,
650       0,     0,     0,     0,    49,     0,     0,    32,    33,     0,
651       0,     0,     0,     0,     0,     0,     0,    48,    50,     0,
652       0,     0,     0,     0,     0,    39,     0,     0,     0,     0,
653       0,     0,     0,     0,     0,     0,     0,     0,     0,    46,
654      47,     0,    38,    40,     0,    66,    67,    72,    31,     0,
655       0,     0,    58,     0,     0,     0,     0,    45,    34,     0,
656       0,     0,     0,     0,     0,    41,     0,    54,     0,     0,
657       0,    43,    44,     0,     0,     0,    42,    56,     0,    55,
658      52,     0,     0,     0,    57,    53
659};
660
661/* YYDEFGOTO[NTERM-NUM]. */
662static const short yydefgoto[] =
663{
664      -1,     8,     9,    10,    11,    12,    31,    13,    14,    38,
665      39,    15,    41,   120,   121,   122,   185,   204,   205,   221,
666     123,   183,   184,    16,    37,   110,   111,   143,   150,    17,
667      36,    20,    66,    67,    18,    25,    75,    76,   156,   134,
668      68,    21,    44,    79,   140
669};
670
671/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
672   STATE-NUM.  */
673#define YYPACT_NINF -130
674static const short yypact[] =
675{
676      36,   -51,   -51,   -66,   -51,  -130,   -33,   -34,    26,    36,
677    -130,    10,  -130,  -130,  -130,  -130,  -130,  -130,  -130,  -130,
678      13,  -130,  -130,    57,  -130,    22,  -130,    45,  -130,  -130,
679    -130,    39,  -130,  -130,  -130,   230,    50,    51,    60,    57,
680    -130,    52,   111,  -130,    45,  -130,  -130,    86,   -33,   -33,
681    -130,  -130,  -130,   -33,   -33,   -33,   -33,   -33,   -33,   -33,
682     -33,   -33,   -33,   -33,   -33,  -130,   -62,  -130,   -33,   230,
683     202,  -130,  -130,    66,   -51,   -10,  -130,    65,  -130,  -130,
684    -130,  -130,  -130,  -130,  -130,  -130,  -130,  -130,  -130,  -130,
685    -130,  -130,  -130,  -130,  -130,   230,  -130,   -54,   -51,   -33,
686      96,   -51,   -33,   -33,    16,    73,   -33,    16,   -51,    15,
687       3,  -130,  -130,   -51,    24,    76,    77,    24,    16,    16,
688      48,  -130,  -130,  -130,  -130,    67,  -130,  -130,  -130,  -130,
689    -130,    79,   -33,  -130,    96,    80,    81,    87,  -130,  -130,
690      93,  -130,  -130,    94,   -33,   100,   109,  -130,  -130,  -130,
691     110,  -130,  -130,   112,  -130,  -130,    24,   131,  -130,    24,
692     114,   115,  -130,  -130,  -130,  -130,   -33,    96,  -130,  -130,
693    -130,  -130,  -130,   -33,  -130,  -130,  -130,  -130,    24,    24,
694      24,    24,    24,   -30,  -130,    88,    24,  -130,  -130,   -33,
695      96,   -33,    24,    24,    24,    24,    24,  -130,  -130,    24,
696      24,    24,    24,    61,    72,  -130,    24,   116,   117,   118,
697     122,    24,    24,    24,   126,    24,    24,    24,    24,  -130,
698    -130,   127,  -130,  -130,   128,  -130,  -130,  -130,  -130,    24,
699      24,    24,  -130,    24,    24,    24,   134,  -130,  -130,    24,
700     -32,    24,    24,   135,   137,  -130,    24,  -130,    24,    24,
701     140,  -130,  -130,   -27,   141,   -26,  -130,  -130,    24,  -130,
702    -130,    24,   142,   144,  -130,  -130
703};
704
705/* YYPGOTO[NTERM-NUM].  */
706static const short yypgoto[] =
707{
708    -130,  -130,  -130,   209,  -130,   208,  -130,  -130,  -130,  -130,
709    -130,   -12,  -130,  -130,   101,  -130,  -130,  -130,    18,  -130,
710    -130,  -130,    41,   -55,  -130,  -130,   145,  -130,  -130,   -69,
711    -130,  -130,   156,   159,  -130,  -130,  -130,   151,   -38,  -129,
712      -6,     0,   212,  -130,   -31
713};
714
715/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
716   positive, shift that token.  If negative, reduce the rule which
717   number is the opposite.  If zero, do what YYDEFACT says.
718   If YYTABLE_NINF, syntax error.  */
719#define YYTABLE_NINF -1
720static const unsigned short yytable[] =
721{
722      27,   112,    22,    19,    24,   167,    98,    23,   179,   180,
723     181,    40,    94,    95,    74,   182,    26,   154,   124,   155,
724     130,    95,   154,   154,   155,   155,    32,    72,    99,   100,
725     101,   102,   103,   104,   105,    28,    29,    30,   190,     1,
726     247,   112,    80,    81,   197,   257,   260,    82,    83,    84,
727      85,    86,    87,    88,    89,    90,    91,    92,    93,   106,
728       2,   208,    96,   107,   126,   124,   108,   109,   138,   139,
729       3,     4,   113,   154,   125,   155,   145,   151,     7,   159,
730     147,   148,   149,     5,   114,   115,    35,   160,   161,   116,
731     113,     6,     4,   132,   117,    42,   136,   137,   131,    43,
732     144,   135,   114,   115,     7,   141,   142,   116,   146,   118,
733     119,    45,   117,   153,   199,   200,   201,   202,   178,   219,
734     220,   186,   162,    69,    70,    73,   166,   118,   119,   203,
735     199,   200,   201,   202,    71,    74,    78,   128,   173,   164,
736     192,   193,   194,   195,   196,   203,   222,   133,   206,   157,
737     158,   165,   168,   169,   210,   211,   212,   213,   214,   170,
738     189,   215,   216,   217,   218,   171,   172,   191,   224,   179,
739     180,   181,   174,   229,   230,   231,   182,   233,   234,   235,
740     236,   175,   176,   207,   177,   209,   187,   188,   225,   226,
741     227,   239,   240,   241,   228,   242,   243,   244,   232,   237,
742     238,   246,   248,   249,   250,    98,   245,   251,   253,   252,
743     254,   255,   256,   259,   264,   258,   265,   261,    33,    34,
744     262,   163,   223,   263,   198,    97,   127,    99,   100,   101,
745     102,   103,   104,   105,    46,    47,    48,    49,    50,    51,
746      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
747      62,    63,    64,    65,   129,   152,    77,     0,   106,     0,
748       0,     0,   107,     0,     0,   108,   109,     0,     0,     0,
749       0,     0,     0,     0,     0,     0,     0,     0,     0,    26
750};
751
752static const short yycheck[] =
753{
754       6,    70,     2,    54,     4,   134,     3,    73,    38,    39,
755      40,    23,    74,    75,    24,    45,    49,    49,    73,    51,
756      74,    75,    49,    49,    51,    51,     0,    39,    25,    26,
757      27,    28,    29,    30,    31,    69,    70,    71,   167,     3,
758      72,   110,    48,    49,    74,    72,    72,    53,    54,    55,
759      56,    57,    58,    59,    60,    61,    62,    63,    64,    56,
760      24,   190,    68,    60,    74,   120,    63,    64,    52,    53,
761      34,    35,    24,    49,    74,    51,   107,    74,    68,   117,
762      65,    66,    67,    47,    36,    37,    73,   118,   119,    41,
763      24,    55,    35,    99,    46,    73,   102,   103,    98,    54,
764     106,   101,    36,    37,    68,    32,    33,    41,   108,    61,
765      62,    72,    46,   113,    42,    43,    44,    45,   156,    58,
766      59,   159,    74,    73,    73,    73,   132,    61,    62,    57,
767      42,    43,    44,    45,    74,    24,    50,    72,   144,    72,
768     178,   179,   180,   181,   182,    57,    74,    51,   186,    73,
769      73,    72,    72,    72,   192,   193,   194,   195,   196,    72,
770     166,   199,   200,   201,   202,    72,    72,   173,   206,    38,
771      39,    40,    72,   211,   212,   213,    45,   215,   216,   217,
772     218,    72,    72,   189,    72,   191,    72,    72,    72,    72,
773      72,   229,   230,   231,    72,   233,   234,   235,    72,    72,
774      72,   239,   240,   241,   242,     3,    72,    72,   246,    72,
775     248,   249,    72,    72,    72,   253,    72,   255,     9,    11,
776     258,   120,   204,   261,   183,    69,    75,    25,    26,    27,
777      28,    29,    30,    31,     4,     5,     6,     7,     8,     9,
778      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
779      20,    21,    22,    23,    95,   110,    44,    -1,    56,    -1,
780      -1,    -1,    60,    -1,    -1,    63,    64,    -1,    -1,    -1,
781      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    49
782};
783
784/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
785   symbol of state STATE-NUM.  */
786static const unsigned char yystos[] =
787{
788       0,     3,    24,    34,    35,    47,    55,    68,    77,    78,
789      79,    80,    81,    83,    84,    87,    99,   105,   110,    54,
790     107,   117,   117,    73,   117,   111,    49,   116,    69,    70,
791      71,    82,     0,    79,    81,    73,   106,   100,    85,    86,
792      87,    88,    73,    54,   118,    72,     4,     5,     6,     7,
793       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
794      18,    19,    20,    21,    22,    23,   108,   109,   116,    73,
795      73,    74,    87,    73,    24,   112,   113,   118,    50,   119,
796     116,   116,   116,   116,   116,   116,   116,   116,   116,   116,
797     116,   116,   116,   116,    74,    75,   116,   108,     3,    25,
798      26,    27,    28,    29,    30,    31,    56,    60,    63,    64,
799     101,   102,   105,    24,    36,    37,    41,    46,    61,    62,
800      89,    90,    91,    96,    99,   117,    74,   113,    72,   109,
801      74,   117,   116,    51,   115,   117,   116,   116,    52,    53,
802     120,    32,    33,   103,   116,   120,   117,    65,    66,    67,
803     104,    74,   102,   117,    49,    51,   114,    73,    73,   114,
804     120,   120,    74,    90,    72,    72,   116,   115,    72,    72,
805      72,    72,    72,   116,    72,    72,    72,    72,   114,    38,
806      39,    40,    45,    97,    98,    92,   114,    72,    72,   116,
807     115,   116,   114,   114,   114,   114,   114,    74,    98,    42,
808      43,    44,    45,    57,    93,    94,   114,   116,   115,   116,
809     114,   114,   114,   114,   114,   114,   114,   114,   114,    58,
810      59,    95,    74,    94,   114,    72,    72,    72,    72,   114,
811     114,   114,    72,   114,   114,   114,   114,    72,    72,   114,
812     114,   114,   114,   114,   114,    72,   114,    72,   114,   114,
813     114,    72,    72,   114,   114,   114,    72,    72,   114,    72,
814      72,   114,   114,   114,    72,    72
815};
816
817#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
818# define YYSIZE_T __SIZE_TYPE__
819#endif
820#if ! defined (YYSIZE_T) && defined (size_t)
821# define YYSIZE_T size_t
822#endif
823#if ! defined (YYSIZE_T)
824# if defined (__STDC__) || defined (__cplusplus)
825include <stddef.h> /* INFRINGES ON USER NAME SPACE */
826define YYSIZE_T size_t
827# endif
828#endif
829#if ! defined (YYSIZE_T)
830# define YYSIZE_T unsigned int
831#endif
832
833#define yyerrok        (yyerrstatus = 0)
834#define yyclearin    (yychar = YYEMPTY)
835#define YYEMPTY        (-2)
836#define YYEOF        0
837
838#define YYACCEPT    goto yyacceptlab
839#define YYABORT        goto yyabortlab
840#define YYERROR        goto yyerrlab1
841
842/* Like YYERROR except do call yyerror.  This remains here temporarily
843   to ease the transition to the new meaning of YYERROR, for GCC.
844   Once GCC version 2 has supplanted version 1, this can go.  */
845
846#define YYFAIL        goto yyerrlab
847
848#define YYRECOVERING()  (!!yyerrstatus)
849
850#define YYBACKUP(Token, Value)                    \
851do                                \
852  if (yychar == YYEMPTY && yylen == 1)                \
853    {                                \
854      yychar = (Token);                        \
855      yylval = (Value);                        \
856      yytoken = YYTRANSLATE (yychar);                \
857      YYPOPSTACK;                        \
858      goto yybackup;                        \
859    }                                \
860  else                                \
861    {                                 \
862      yyerror ("syntax error: cannot back up");\
863      YYERROR;                            \
864    }                                \
865while (0)
866
867#define YYTERROR    1
868#define YYERRCODE    256
869
870/* YYLLOC_DEFAULT -- Compute the default location (before the actions
871   are run).  */
872
873#ifndef YYLLOC_DEFAULT
874# define YYLLOC_DEFAULT(Current, Rhs, N)         \
875  Current.first_line   = Rhs[1].first_line;      \
876  Current.first_column = Rhs[1].first_column;    \
877  Current.last_line    = Rhs[N].last_line;       \
878  Current.last_column  = Rhs[N].last_column;
879#endif
880
881/* YYLEX -- calling `yylex' with the right arguments.  */
882
883#ifdef YYLEX_PARAM
884# define YYLEX yylex (YYLEX_PARAM)
885#else
886# define YYLEX yylex ()
887#endif
888
889/* Enable debugging if requested.  */
890#if YYDEBUG
891
892# ifndef YYFPRINTF
893include <stdio.h> /* INFRINGES ON USER NAME SPACE */
894define YYFPRINTF fprintf
895# endif
896
897# define YYDPRINTF(Args)            \
898do {                        \
899  if (yydebug)                    \
900    YYFPRINTF Args;                \
901} while (0)
902
903# define YYDSYMPRINT(Args)            \
904do {                        \
905  if (yydebug)                    \
906    yysymprint Args;                \
907} while (0)
908
909# define YYDSYMPRINTF(Title, Token, Value, Location)        \
910do {                                \
911  if (yydebug)                            \
912    {                                \
913      YYFPRINTF (stderr, "%s ", Title);                \
914      yysymprint (stderr,                     \
915                  Token, Value);    \
916      YYFPRINTF (stderr, "\n");                    \
917    }                                \
918} while (0)
919
920/*------------------------------------------------------------------.
921| yy_stack_print -- Print the state stack from its BOTTOM up to its |
922| TOP (cinluded).                                                   |
923`------------------------------------------------------------------*/
924
925#if defined (__STDC__) || defined (__cplusplus)
926static void
927yy_stack_print (short *bottom, short *top)
928#else
929static void
930yy_stack_print (bottom, top)
931    short *bottom;
932    short *top;
933#endif
934{
935  YYFPRINTF (stderr, "Stack now");
936  for (/* Nothing. */; bottom <= top; ++bottom)
937    YYFPRINTF (stderr, " %d", *bottom);
938  YYFPRINTF (stderr, "\n");
939}
940
941# define YY_STACK_PRINT(Bottom, Top)                \
942do {                                \
943  if (yydebug)                            \
944    yy_stack_print ((Bottom), (Top));                \
945} while (0)
946
947
948/*------------------------------------------------.
949| Report that the YYRULE is going to be reduced.  |
950`------------------------------------------------*/
951
952#if defined (__STDC__) || defined (__cplusplus)
953static void
954yy_reduce_print (int yyrule)
955#else
956static void
957yy_reduce_print (yyrule)
958    int yyrule;
959#endif
960{
961  int yyi;
962  unsigned int yylineno = yyrline[yyrule];
963  YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
964             yyrule - 1, yylineno);
965  /* Print the symbols being reduced, and their result.  */
966  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
967    YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
968  YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
969}
970
971# define YY_REDUCE_PRINT(Rule)        \
972do {                    \
973  if (yydebug)                \
974    yy_reduce_print (Rule);        \
975} while (0)
976
977/* Nonzero means print parse trace.  It is left uninitialized so that
978   multiple parsers can coexist.  */
979int yydebug;
980#else /* !YYDEBUG */
981# define YYDPRINTF(Args)
982# define YYDSYMPRINT(Args)
983# define YYDSYMPRINTF(Title, Token, Value, Location)
984# define YY_STACK_PRINT(Bottom, Top)
985# define YY_REDUCE_PRINT(Rule)
986#endif /* !YYDEBUG */
987
988
989/* YYINITDEPTH -- initial size of the parser's stacks.  */
990#ifndef    YYINITDEPTH
991# define YYINITDEPTH 200
992#endif
993
994/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
995   if the built-in stack extension method is used).
996
997   Do not make this value too large; the results are undefined if
998   SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
999   evaluated with infinite-precision integer arithmetic.  */
1000
1001#if YYMAXDEPTH == 0
1002# undef YYMAXDEPTH
1003#endif
1004
1005#ifndef YYMAXDEPTH
1006# define YYMAXDEPTH 10000
1007#endif
1008
1009
1010
1011#if YYERROR_VERBOSE
1012
1013# ifndef yystrlen
1014if defined (__GLIBC__) && defined (_STRING_H)
1015#   define yystrlen strlen
1016else
1017/* Return the length of YYSTR.  */
1018static YYSIZE_T
1019#   if defined (__STDC__) || defined (__cplusplus)
1020yystrlen (const char *yystr)
1021#   else
1022yystrlen (yystr)
1023     const char *yystr;
1024#   endif
1025{
1026  register const char *yys = yystr;
1027
1028  while (*yys++ != '\0')
1029    continue;
1030
1031  return yys - yystr - 1;
1032}
1033endif
1034# endif
1035
1036# ifndef yystpcpy
1037if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
1038#   define yystpcpy stpcpy
1039else
1040/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1041   YYDEST.  */
1042static char *
1043#   if defined (__STDC__) || defined (__cplusplus)
1044yystpcpy (char *yydest, const char *yysrc)
1045#   else
1046yystpcpy (yydest, yysrc)
1047     char *yydest;
1048     const char *yysrc;
1049#   endif
1050{
1051  register char *yyd = yydest;
1052  register const char *yys = yysrc;
1053
1054  while ((*yyd++ = *yys++) != '\0')
1055    continue;
1056
1057  return yyd - 1;
1058}
1059endif
1060# endif
1061
1062#endif /* !YYERROR_VERBOSE */
1063
1064
1065
1066#if YYDEBUG
1067/*--------------------------------.
1068| Print this symbol on YYOUTPUT.  |
1069`--------------------------------*/
1070
1071#if defined (__STDC__) || defined (__cplusplus)
1072static void
1073yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
1074#else
1075static void
1076yysymprint (yyoutput, yytype, yyvaluep)
1077    FILE *yyoutput;
1078    int yytype;
1079    YYSTYPE *yyvaluep;
1080#endif
1081{
1082  /* Pacify ``unused variable'' warnings.  */
1083  (void) yyvaluep;
1084
1085  if (yytype < YYNTOKENS)
1086    {
1087      YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1088# ifdef YYPRINT
1089      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1090# endif
1091    }
1092  else
1093    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1094
1095  switch (yytype)
1096    {
1097      default:
1098        break;
1099    }
1100  YYFPRINTF (yyoutput, ")");
1101}
1102
1103#endif /* ! YYDEBUG */
1104/*-----------------------------------------------.
1105| Release the memory associated to this symbol.  |
1106`-----------------------------------------------*/
1107
1108#if defined (__STDC__) || defined (__cplusplus)
1109static void
1110yydestruct (int yytype, YYSTYPE *yyvaluep)
1111#else
1112static void
1113yydestruct (yytype, yyvaluep)
1114    int yytype;
1115    YYSTYPE *yyvaluep;
1116#endif
1117{
1118  /* Pacify ``unused variable'' warnings.  */
1119  (void) yyvaluep;
1120
1121}
1122
1123/* Prevent warnings from -Wmissing-prototypes.  */
1124
1125#ifdef YYPARSE_PARAM
1126# if defined (__STDC__) || defined (__cplusplus)
1127int yyparse (void *YYPARSE_PARAM);
1128# else
1129int yyparse ();
1130# endif
1131#else /* ! YYPARSE_PARAM */
1132#if defined (__STDC__) || defined (__cplusplus)
1133int yyparse (void);
1134#else
1135int yyparse ();
1136#endif
1137#endif /* ! YYPARSE_PARAM */
1138
1139
1140
1141/* The lookahead symbol.  */
1142int yychar;
1143
1144/* The semantic value of the lookahead symbol.  */
1145YYSTYPE yylval;
1146
1147/* Number of syntax errors so far.  */
1148int yynerrs;
1149
1150
1151
1152/*----------.
1153| yyparse.  |
1154`----------*/
1155
1156#ifdef YYPARSE_PARAM
1157# if defined (__STDC__) || defined (__cplusplus)
1158int yyparse (void *YYPARSE_PARAM)
1159# else
1160int yyparse (YYPARSE_PARAM)
1161  void *YYPARSE_PARAM;
1162# endif
1163#else /* ! YYPARSE_PARAM */
1164#if defined (__STDC__) || defined (__cplusplus)
1165int
1166yyparse (void)
1167#else
1168int
1169yyparse ()
1170
1171#endif
1172#endif
1173{
1174 
1175  register int yystate;
1176  register int yyn;
1177  int yyresult;
1178  /* Number of tokens to shift before error messages enabled.  */
1179  int yyerrstatus;
1180  /* Lookahead token as an internal (translated) token number.  */
1181  int yytoken = 0;
1182
1183  /* Three stacks and their tools:
1184     `yyss': related to states,
1185     `yyvs': related to semantic values,
1186     `yyls': related to locations.
1187
1188     Refer to the stacks thru separate pointers, to allow yyoverflow
1189     to reallocate them elsewhere.  */
1190
1191  /* The state stack.  */
1192  short    yyssa[YYINITDEPTH];
1193  short *yyss = yyssa;
1194  register short *yyssp;
1195
1196  /* The semantic value stack.  */
1197  YYSTYPE yyvsa[YYINITDEPTH];
1198  YYSTYPE *yyvs = yyvsa;
1199  register YYSTYPE *yyvsp;
1200
1201
1202
1203#define YYPOPSTACK   (yyvsp--, yyssp--)
1204
1205  YYSIZE_T yystacksize = YYINITDEPTH;
1206
1207  /* The variables used to return semantic value and location from the
1208     action routines.  */
1209  YYSTYPE yyval;
1210
1211
1212  /* When reducing, the number of symbols on the RHS of the reduced
1213     rule.  */
1214  int yylen;
1215
1216  YYDPRINTF ((stderr, "Starting parse\n"));
1217
1218  yystate = 0;
1219  yyerrstatus = 0;
1220  yynerrs = 0;
1221  yychar = YYEMPTY;        /* Cause a token to be read.  */
1222
1223  /* Initialize stack pointers.
1224     Waste one element of value and location stack
1225     so that they stay on the same level as the state stack.
1226     The wasted elements are never initialized.  */
1227
1228  yyssp = yyss;
1229  yyvsp = yyvs;
1230
1231  goto yysetstate;
1232
1233/*------------------------------------------------------------.
1234| yynewstate -- Push a new state, which is found in yystate.  |
1235`------------------------------------------------------------*/
1236 yynewstate:
1237  /* In all cases, when you get here, the value and location stacks
1238     have just been pushed. so pushing a state here evens the stacks.
1239     */
1240  yyssp++;
1241
1242 yysetstate:
1243  *yyssp = yystate;
1244
1245  if (yyss + yystacksize - 1 <= yyssp)
1246    {
1247      /* Get the current used size of the three stacks, in elements.  */
1248      YYSIZE_T yysize = yyssp - yyss + 1;
1249
1250#ifdef yyoverflow
1251      {
1252    /* Give user a chance to reallocate the stack. Use copies of
1253       these so that the &'s don't force the real ones into
1254       memory.  */
1255    YYSTYPE *yyvs1 = yyvs;
1256    short *yyss1 = yyss;
1257
1258
1259    /* Each stack pointer address is followed by the size of the
1260       data in use in that stack, in bytes.  This used to be a
1261       conditional around just the two extra args, but that might
1262       be undefined if yyoverflow is a macro.  */
1263    yyoverflow ("parser stack overflow",
1264            &yyss1, yysize * sizeof (*yyssp),
1265            &yyvs1, yysize * sizeof (*yyvsp),
1266
1267            &yystacksize);
1268
1269    yyss = yyss1;
1270    yyvs = yyvs1;
1271      }
1272#else /* no yyoverflow */
1273# ifndef YYSTACK_RELOCATE
1274      goto yyoverflowlab;
1275# else
1276      /* Extend the stack our own way.  */
1277      if (YYMAXDEPTH <= yystacksize)
1278    goto yyoverflowlab;
1279      yystacksize *= 2;
1280      if (YYMAXDEPTH < yystacksize)
1281    yystacksize = YYMAXDEPTH;
1282
1283      {
1284    short *yyss1 = yyss;
1285    union yyalloc *yyptr =
1286      (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1287    if (! yyptr)
1288      goto yyoverflowlab;
1289    YYSTACK_RELOCATE (yyss);
1290    YYSTACK_RELOCATE (yyvs);
1291
1292undef YYSTACK_RELOCATE
1293    if (yyss1 != yyssa)
1294      YYSTACK_FREE (yyss1);
1295      }
1296# endif
1297#endif /* no yyoverflow */
1298
1299      yyssp = yyss + yysize - 1;
1300      yyvsp = yyvs + yysize - 1;
1301
1302
1303      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1304          (unsigned long int) yystacksize));
1305
1306      if (yyss + yystacksize - 1 <= yyssp)
1307    YYABORT;
1308    }
1309
1310  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1311
1312  goto yybackup;
1313
1314/*-----------.
1315| yybackup.  |
1316`-----------*/
1317yybackup:
1318
1319/* Do appropriate processing given the current state.  */
1320/* Read a lookahead token if we need one and don't already have one.  */
1321/* yyresume: */
1322
1323  /* First try to decide what to do without reference to lookahead token.  */
1324
1325  yyn = yypact[yystate];
1326  if (yyn == YYPACT_NINF)
1327    goto yydefault;
1328
1329  /* Not known => get a lookahead token if don't already have one.  */
1330
1331  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
1332  if (yychar == YYEMPTY)
1333    {
1334      YYDPRINTF ((stderr, "Reading a token: "));
1335      yychar = YYLEX;
1336    }
1337
1338  if (yychar <= YYEOF)
1339    {
1340      yychar = yytoken = YYEOF;
1341      YYDPRINTF ((stderr, "Now at end of input.\n"));
1342    }
1343  else
1344    {
1345      yytoken = YYTRANSLATE (yychar);
1346      YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
1347    }
1348
1349  /* If the proper action on seeing token YYTOKEN is to reduce or to
1350     detect an error, take that action.  */
1351  yyn += yytoken;
1352  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1353    goto yydefault;
1354  yyn = yytable[yyn];
1355  if (yyn <= 0)
1356    {
1357      if (yyn == 0 || yyn == YYTABLE_NINF)
1358    goto yyerrlab;
1359      yyn = -yyn;
1360      goto yyreduce;
1361    }
1362
1363  if (yyn == YYFINAL)
1364    YYACCEPT;
1365
1366  /* Shift the lookahead token.  */
1367  YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
1368
1369  /* Discard the token being shifted unless it is eof.  */
1370  if (yychar != YYEOF)
1371    yychar = YYEMPTY;
1372
1373  *++yyvsp = yylval;
1374
1375
1376  /* Count tokens shifted since error; after three, turn off error
1377     status.  */
1378  if (yyerrstatus)
1379    yyerrstatus--;
1380
1381  yystate = yyn;
1382  goto yynewstate;
1383
1384
1385/*-----------------------------------------------------------.
1386| yydefault -- do the default action for the current state.  |
1387`-----------------------------------------------------------*/
1388yydefault:
1389  yyn = yydefact[yystate];
1390  if (yyn == 0)
1391    goto yyerrlab;
1392  goto yyreduce;
1393
1394
1395/*-----------------------------.
1396| yyreduce -- Do a reduction.  |
1397`-----------------------------*/
1398yyreduce:
1399  /* yyn is the number of a rule to reduce with.  */
1400  yylen = yyr2[yyn];
1401
1402  /* If YYLEN is nonzero, implement the default value of the action:
1403     `$$ = $1'.
1404
1405     Otherwise, the following line sets YYVAL to garbage.
1406     This behavior is undocumented and Bison
1407     users should not rely upon it.  Assigning to YYVAL
1408     unconditionally makes the parser a bit smaller, and it avoids a
1409     GCC warning that YYVAL may be used uninitialized.  */
1410  yyval = yyvsp[1-yylen];
1411
1412
1413  YY_REDUCE_PRINT (yyn);
1414  switch (yyn)
1415    {
1416        case 14:
1417
1418    {
1419            osgProducer::CameraGroup::ThreadModel tm = (osgProducer::CameraGroup::ThreadModel)yyvsp[-1].integer;
1420            cfg->setThreadModelDirective( tm );
1421        ;}
1422    break;
1423
1424  case 15:
1425
1426    { yyval.integer = CameraGroup::SingleThreaded; ;}
1427    break;
1428
1429  case 16:
1430
1431    { yyval.integer = CameraGroup::ThreadPerCamera; ;}
1432    break;
1433
1434  case 17:
1435
1436    { yyval.integer = CameraGroup::ThreadPerRenderSurface; ;}
1437    break;
1438
1439  case 18:
1440
1441    {
1442           cfg->addStereoSystemCommand( yyvsp[-3].integer, yyvsp[-2].string, yyvsp[-1].string );
1443        ;}
1444    break;
1445
1446  case 24:
1447
1448    {
1449        cfg->beginCamera( yyvsp[0].string );
1450     ;}
1451    break;
1452
1453  case 25:
1454
1455    {
1456        cfg->endCamera();
1457     ;}
1458    break;
1459
1460  case 29:
1461
1462    {
1463        cfg->setCameraRenderSurface( yyvsp[-1].string );
1464    ;}
1465    break;
1466
1467  case 30:
1468
1469    {
1470        cfg->setCameraRenderSurface();
1471    ;}
1472    break;
1473
1474  case 31:
1475
1476    {
1477        cfg->setCameraProjectionRectangle( yyvsp[-4].real, yyvsp[-3].real, yyvsp[-2].real, yyvsp[-1].real );
1478    ;}
1479    break;
1480
1481  case 32:
1482
1483    {
1484        cfg->setCameraShareLens( yyvsp[-1].boolean );
1485    ;}
1486    break;
1487
1488  case 33:
1489
1490    {
1491        cfg->setCameraShareView( yyvsp[-1].boolean );
1492    ;}
1493    break;
1494
1495  case 34:
1496
1497    {
1498        cfg->setCameraClearColor( yyvsp[-4].real, yyvsp[-3].real, yyvsp[-2].real, yyvsp[-1].real );
1499    ;}
1500    break;
1501
1502  case 37:
1503
1504    {
1505        cfg->beginCameraOffset();
1506    ;}
1507    break;
1508
1509  case 38:
1510
1511    {
1512        cfg->endCameraOffset();
1513    ;}
1514    break;
1515
1516  case 41:
1517
1518    {
1519        cfg->shearCameraOffset( yyvsp[-2].real, yyvsp[-1].real );
1520      ;}
1521    break;
1522
1523  case 42:
1524
1525    {
1526        cfg->rotateCameraOffset( yyvsp[-4].real, yyvsp[-3].real, yyvsp[-2].real, yyvsp[-1].real );
1527      ;}
1528    break;
1529
1530  case 43:
1531
1532    {
1533        cfg->translateCameraOffset( yyvsp[-3].real, yyvsp[-2].real, yyvsp[-1].real );
1534      ;}
1535    break;
1536
1537  case 44:
1538
1539    {
1540        cfg->scaleCameraOffset( yyvsp[-3].real, yyvsp[-2].real, yyvsp[-1].real );
1541      ;}
1542    break;
1543
1544  case 45:
1545
1546    {
1547        cfg->setCameraOffsetMultiplyMethod( (osgProducer::Camera::Offset::MultiplyMethod)yyvsp[-1].integer );
1548      ;}
1549    break;
1550
1551  case 46:
1552
1553    { yyval.integer = osgProducer::Camera::Offset::PreMultiply; ;}
1554    break;
1555
1556  case 47:
1557
1558    { yyval.integer = osgProducer::Camera::Offset::PostMultiply; ;}
1559    break;
1560
1561  case 52:
1562
1563    {
1564          cfg->setCameraOrtho( yyvsp[-6].real, yyvsp[-5].real, yyvsp[-4].real, yyvsp[-3].real, yyvsp[-2].real, yyvsp[-1].real );
1565      ;}
1566    break;
1567
1568  case 53:
1569
1570    {
1571          cfg->setCameraOrtho( yyvsp[-8].real, yyvsp[-7].real, yyvsp[-6].real, yyvsp[-5].real, yyvsp[-4].real, yyvsp[-3].real, yyvsp[-2].real, yyvsp[-1].real );
1572      ;}
1573    break;
1574
1575  case 54:
1576
1577    {
1578          cfg->setCameraPerspective( yyvsp[-4].real, yyvsp[-3].real, yyvsp[-2].real, yyvsp[-1].real );
1579      ;}
1580    break;
1581
1582  case 55:
1583
1584    {
1585          cfg->setCameraPerspective( yyvsp[-6].real, yyvsp[-5].real, yyvsp[-4].real, yyvsp[-3].real, yyvsp[-2].real, yyvsp[-1].real );
1586      ;}
1587    break;
1588
1589  case 56:
1590
1591    {
1592          cfg->setCameraFrustum( yyvsp[-6].real, yyvsp[-5].real, yyvsp[-4].real, yyvsp[-3].real, yyvsp[-2].real, yyvsp[-1].real );
1593      ;}
1594    break;
1595
1596  case 57:
1597
1598    {
1599          cfg->setCameraFrustum( yyvsp[-8].real, yyvsp[-7].real, yyvsp[-6].real, yyvsp[-5].real, yyvsp[-4].real, yyvsp[-3].real, yyvsp[-2].real, yyvsp[-1].real );
1600      ;}
1601    break;
1602
1603  case 58:
1604
1605    {
1606          cfg->setCameraLensShear( yyvsp[-2].real, yyvsp[-1].real );
1607      ;}
1608    break;
1609
1610  case 59:
1611
1612    {
1613         cfg->beginRenderSurface( yyvsp[0].string );
1614     ;}
1615    break;
1616
1617  case 60:
1618
1619    {
1620         cfg->endRenderSurface();
1621     ;}
1622    break;
1623
1624  case 64:
1625
1626    {
1627        cfg->setRenderSurfaceVisualChooser( yyvsp[-1].string );
1628    ;}
1629    break;
1630
1631  case 65:
1632
1633    {
1634        cfg->setRenderSurfaceVisualChooser();
1635    ;}
1636    break;
1637
1638  case 66:
1639
1640    {
1641        cfg->setRenderSurfaceWindowRectangle( yyvsp[-4].integer, yyvsp[-3].integer, yyvsp[-2].integer, yyvsp[-1].integer );
1642    ;}
1643    break;
1644
1645  case 67:
1646
1647    {
1648        cfg->setRenderSurfaceInputRectangle( yyvsp[-4].real, yyvsp[-3].real, yyvsp[-2].real, yyvsp[-1].real );
1649    ;}
1650    break;
1651
1652  case 68:
1653
1654    {
1655        cfg->setRenderSurfaceHostName( std::string(yyvsp[-1].string) );
1656    ;}
1657    break;
1658
1659  case 69:
1660
1661    {
1662        cfg->setRenderSurfaceDisplayNum( yyvsp[-1].integer );
1663    ;}
1664    break;
1665
1666  case 70:
1667
1668    {
1669        cfg->setRenderSurfaceScreen( yyvsp[-1].integer );
1670    ;}
1671    break;
1672
1673  case 71:
1674
1675    {   
1676        cfg->setRenderSurfaceBorder( yyvsp[-1].boolean );
1677    ;}
1678    break;
1679
1680  case 72:
1681
1682    {
1683        cfg->setRenderSurfaceCustomFullScreenRectangle( yyvsp[-4].integer, yyvsp[-3].integer, yyvsp[-2].integer, yyvsp[-1].integer );
1684    ;}
1685    break;
1686
1687  case 73:
1688
1689    {
1690        cfg->setRenderSurfaceOverrideRedirect( yyvsp[-1].boolean );
1691    ;}
1692    break;
1693
1694  case 74:
1695
1696    {
1697        osgProducer::RenderSurface::DrawableType drawableType = (RenderSurface::DrawableType)yyvsp[-1].integer;
1698        cfg->setRenderSurfaceDrawableType( drawableType );
1699    ;}
1700    break;
1701
1702  case 75:
1703
1704    {
1705        cfg->setRenderSurfaceReadDrawable( yyvsp[-1].string );
1706    ;}
1707    break;
1708
1709  case 76:
1710
1711    {
1712        cfg->setRenderSurfaceRenderToTextureMode( (osgProducer::RenderSurface::RenderToTextureMode)yyvsp[-1].integer );
1713    ;}
1714    break;
1715
1716  case 77:
1717
1718    { yyval.integer =  RenderSurface::DrawableType_Window; ;}
1719    break;
1720
1721  case 78:
1722
1723    { yyval.integer =  RenderSurface::DrawableType_PBuffer; ;}
1724    break;
1725
1726  case 79:
1727
1728    { yyval.integer = RenderSurface::RenderToTextureMode_None; ;}
1729    break;
1730
1731  case 80:
1732
1733    { yyval.integer = RenderSurface::RenderToRGBTexture; ;}
1734    break;
1735
1736  case 81:
1737
1738    { yyval.integer = RenderSurface::RenderToRGBATexture; ;}
1739    break;
1740
1741  case 82:
1742
1743    {
1744         cfg->beginVisual( yyvsp[0].string );
1745     ;}
1746    break;
1747
1748  case 83:
1749
1750    {
1751         cfg->endVisual();
1752     ;}
1753    break;
1754
1755  case 84:
1756
1757    {
1758         cfg->beginVisual();
1759     ;}
1760    break;
1761
1762  case 85:
1763
1764    {
1765         cfg->endVisual();
1766     ;}
1767    break;
1768
1769  case 88:
1770
1771    {
1772          cfg->setVisualSimpleConfiguration();
1773      ;}
1774    break;
1775
1776  case 89:
1777
1778    {
1779          cfg->setVisualByID( yyvsp[0].integer );
1780      ;}
1781    break;
1782
1783  case 90:
1784
1785    {
1786          cfg->addVisualAttribute( VisualChooser::BufferSize, yyvsp[0].integer );
1787      ;}
1788    break;
1789
1790  case 91:
1791
1792    {
1793          cfg->addVisualAttribute( VisualChooser::Level, yyvsp[0].integer );
1794      ;}
1795    break;
1796
1797  case 92:
1798
1799    {
1800          cfg->addVisualAttribute( VisualChooser::RGBA );
1801      ;}
1802    break;
1803
1804  case 93:
1805
1806    {
1807          cfg->addVisualAttribute( VisualChooser::DoubleBuffer );
1808      ;}
1809    break;
1810
1811  case 94:
1812
1813    {
1814          cfg->addVisualAttribute( VisualChooser::Stereo );
1815      ;}
1816    break;
1817
1818  case 95:
1819
1820    {
1821          cfg->addVisualAttribute( VisualChooser::AuxBuffers, yyvsp[0].integer );
1822      ;}
1823    break;
1824
1825  case 96:
1826
1827    {
1828          cfg->addVisualAttribute( VisualChooser::RedSize, yyvsp[0].integer );
1829      ;}
1830    break;
1831
1832  case 97:
1833
1834    {
1835          cfg->addVisualAttribute( VisualChooser::GreenSize, yyvsp[0].integer );
1836      ;}
1837    break;
1838
1839  case 98:
1840
1841    {
1842          cfg->addVisualAttribute( VisualChooser::BlueSize, yyvsp[0].integer );
1843      ;}
1844    break;
1845
1846  case 99:
1847
1848    {
1849          cfg->addVisualAttribute( VisualChooser::AlphaSize, yyvsp[0].integer );
1850      ;}
1851    break;
1852
1853  case 100:
1854
1855    {
1856          cfg->addVisualAttribute( VisualChooser::DepthSize, yyvsp[0].integer );
1857      ;}
1858    break;
1859
1860  case 101:
1861
1862    {
1863          cfg->addVisualAttribute( VisualChooser::StencilSize, yyvsp[0].integer );
1864      ;}
1865    break;
1866
1867  case 102:
1868
1869    {
1870          cfg->addVisualAttribute( VisualChooser::AccumRedSize, yyvsp[0].integer );
1871      ;}
1872    break;
1873
1874  case 103:
1875
1876    {
1877          cfg->addVisualAttribute( VisualChooser::AccumGreenSize, yyvsp[0].integer );
1878      ;}
1879    break;
1880
1881  case 104:
1882
1883    {
1884          cfg->addVisualAttribute( VisualChooser::AccumBlueSize, yyvsp[0].integer );
1885      ;}
1886    break;
1887
1888  case 105:
1889
1890    {
1891          cfg->addVisualAttribute( VisualChooser::AccumAlphaSize, yyvsp[0].integer );
1892      ;}
1893    break;
1894
1895  case 106:
1896
1897    {
1898          cfg->addVisualAttribute( VisualChooser::Samples, yyvsp[0].integer );
1899      ;}
1900    break;
1901
1902  case 107:
1903
1904    {
1905          cfg->addVisualAttribute( VisualChooser::SampleBuffers );
1906      ;}
1907    break;
1908
1909  case 108:
1910
1911    {
1912          cfg->addVisualExtendedAttribute( yyvsp[-1].integer, yyvsp[0].integer );
1913      ;}
1914    break;
1915
1916  case 109:
1917
1918    { cfg->beginInputArea(); ;}
1919    break;
1920
1921  case 110:
1922
1923    { cfg->endInputArea(); ;}
1924    break;
1925
1926  case 113:
1927
1928    {
1929            cfg->addInputAreaEntry( yyvsp[-1].string );
1930        ;}
1931    break;
1932
1933  case 114:
1934
1935    {
1936        yyval.real = osg::asciiToFloat(flexer->YYText());
1937    ;}
1938    break;
1939
1940  case 115:
1941
1942    {
1943        yyval.real = osg::asciiToFloat(flexer->YYText());
1944    ;}
1945    break;
1946
1947  case 116:
1948
1949    {
1950        yyval.real = osg::asciiToFloat(flexer->YYText());
1951    ;}
1952    break;
1953
1954  case 117:
1955
1956    {
1957        yyval.integer = atoi( flexer->YYText() );
1958    ;}
1959    break;
1960
1961  case 118:
1962
1963    {
1964        yyval.string = strdup( flexer->YYText() );
1965    ;}
1966    break;
1967
1968  case 119:
1969
1970    {
1971        yyval.string = strdup( flexer->YYText() );
1972    ;}
1973    break;
1974
1975  case 120:
1976
1977    {
1978        unsigned int n;
1979        sscanf( flexer->YYText(), "0x%x", &n );
1980        yyval.integer = n;
1981    ;}
1982    break;
1983
1984  case 121:
1985
1986    { yyval.boolean = true;;}
1987    break;
1988
1989  case 122:
1990
1991    { yyval.boolean = false; ;}
1992    break;
1993
1994
1995    }
1996
1997/* Line 991 of yacc.c.  */
1998
1999
2000  yyvsp -= yylen;
2001  yyssp -= yylen;
2002
2003
2004  YY_STACK_PRINT (yyss, yyssp);
2005
2006  *++yyvsp = yyval;
2007
2008
2009  /* Now `shift' the result of the reduction.  Determine what state
2010     that goes to, based on the state we popped back to and the rule
2011     number reduced by.  */
2012
2013  yyn = yyr1[yyn];
2014
2015  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
2016  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2017    yystate = yytable[yystate];
2018  else
2019    yystate = yydefgoto[yyn - YYNTOKENS];
2020
2021  goto yynewstate;
2022
2023
2024/*------------------------------------.
2025| yyerrlab -- here on detecting error |
2026`------------------------------------*/
2027yyerrlab:
2028  /* If not already recovering from an error, report this error.  */
2029  if (!yyerrstatus)
2030    {
2031      ++yynerrs;
2032#if YYERROR_VERBOSE
2033      yyn = yypact[yystate];
2034
2035      if (YYPACT_NINF < yyn && yyn < YYLAST)
2036    {
2037      YYSIZE_T yysize = 0;
2038      int yytype = YYTRANSLATE (yychar);
2039      char *yymsg;
2040      int yyx, yycount;
2041
2042      yycount = 0;
2043      /* Start YYX at -YYN if negative to avoid negative indexes in
2044         YYCHECK.  */
2045      for (yyx = yyn < 0 ? -yyn : 0;
2046           yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
2047        if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2048          yysize += yystrlen (yytname[yyx]) + 15, yycount++;
2049      yysize += yystrlen ("syntax error, unexpected ") + 1;
2050      yysize += yystrlen (yytname[yytype]);
2051      yymsg = (char *) YYSTACK_ALLOC (yysize);
2052      if (yymsg != 0)
2053        {
2054          char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
2055          yyp = yystpcpy (yyp, yytname[yytype]);
2056
2057          if (yycount < 5)
2058        {
2059          yycount = 0;
2060          for (yyx = yyn < 0 ? -yyn : 0;
2061               yyx < (int) (sizeof (yytname) / sizeof (char *));
2062               yyx++)
2063            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2064              {
2065            const char *yyq = ! yycount ? ", expecting " : " or ";
2066            yyp = yystpcpy (yyp, yyq);
2067            yyp = yystpcpy (yyp, yytname[yyx]);
2068            yycount++;
2069              }
2070        }
2071          yyerror (yymsg);
2072          YYSTACK_FREE (yymsg);
2073        }
2074      else
2075        yyerror ("syntax error; also virtual memory exhausted");
2076    }
2077      else
2078#endif /* YYERROR_VERBOSE */
2079    yyerror ("syntax error");
2080    }
2081
2082
2083
2084  if (yyerrstatus == 3)
2085    {
2086      /* If just tried and failed to reuse lookahead token after an
2087     error, discard it.  */
2088
2089      /* Return failure if at end of input.  */
2090      if (yychar == YYEOF)
2091        {
2092      /* Pop the error token.  */
2093          YYPOPSTACK;
2094      /* Pop the rest of the stack.  */
2095      while (yyss < yyssp)
2096        {
2097          YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
2098          yydestruct (yystos[*yyssp], yyvsp);
2099          YYPOPSTACK;
2100        }
2101      YYABORT;
2102        }
2103
2104      YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
2105      yydestruct (yytoken, &yylval);
2106      yychar = YYEMPTY;
2107
2108    }
2109
2110  /* Else will try to reuse lookahead token after shifting the error
2111     token.  */
2112  goto yyerrlab2;
2113
2114#if 0
2115/*----------------------------------------------------.
2116| yyerrlab1 -- error raised explicitly by an action.  |
2117`----------------------------------------------------*/
2118yyerrlab1:
2119
2120  /* Suppress GCC warning that yyerrlab1 is unused when no action
2121     invokes YYERROR.  */
2122#if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__) \
2123    && !defined __cplusplus
2124  __attribute__ ((__unused__))
2125#endif
2126
2127
2128  goto yyerrlab2;
2129#endif
2130
2131/*---------------------------------------------------------------.
2132| yyerrlab2 -- pop states until the error token can be shifted.  |
2133`---------------------------------------------------------------*/
2134yyerrlab2:
2135  yyerrstatus = 3;    /* Each real token shifted decrements this.  */
2136
2137  for (;;)
2138    {
2139      yyn = yypact[yystate];
2140      if (yyn != YYPACT_NINF)
2141    {
2142      yyn += YYTERROR;
2143      if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
2144        {
2145          yyn = yytable[yyn];
2146          if (0 < yyn)
2147        break;
2148        }
2149    }
2150
2151      /* Pop the current state because it cannot handle the error token.  */
2152      if (yyssp == yyss)
2153    YYABORT;
2154
2155      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
2156      yydestruct (yystos[yystate], yyvsp);
2157      yyvsp--;
2158      yystate = *--yyssp;
2159
2160      YY_STACK_PRINT (yyss, yyssp);
2161    }
2162
2163  if (yyn == YYFINAL)
2164    YYACCEPT;
2165
2166  YYDPRINTF ((stderr, "Shifting error token, "));
2167
2168  *++yyvsp = yylval;
2169
2170
2171  yystate = yyn;
2172  goto yynewstate;
2173
2174
2175/*-------------------------------------.
2176| yyacceptlab -- YYACCEPT comes here.  |
2177`-------------------------------------*/
2178yyacceptlab:
2179  yyresult = 0;
2180  goto yyreturn;
2181
2182/*-----------------------------------.
2183| yyabortlab -- YYABORT comes here.  |
2184`-----------------------------------*/
2185yyabortlab:
2186  yyresult = 1;
2187  goto yyreturn;
2188
2189#ifndef yyoverflow
2190/*----------------------------------------------.
2191| yyoverflowlab -- parser overflow comes here.  |
2192`----------------------------------------------*/
2193yyoverflowlab:
2194  yyerror ("parser stack overflow");
2195  yyresult = 2;
2196  /* Fall through.  */
2197#endif
2198
2199yyreturn:
2200#ifndef yyoverflow
2201  if (yyss != yyssa)
2202    YYSTACK_FREE (yyss);
2203#endif
2204  return yyresult;
2205}
2206
2207
2208
2209
2210
2211static void yyerror( const char *errmsg )
2212{
2213    fprintf( stderr,
2214        "CameraConfig::parseFile(\"%s\") : %s - Line %d at or before \"%s\"\n",
2215        fileName.c_str(),
2216        errmsg,
2217        flexer->lineno(),
2218        flexer->YYText() );
2219}
2220
2221bool CameraConfig::parseFile( const std::string &file )
2222{
2223    fileName.clear();
2224
2225    fileName = findFile(file);
2226
2227    if( fileName.empty() )
2228    {
2229        fprintf( stderr, "CameraConfig::parseFile() - Can't find file \"%s\".\n", file.c_str() );
2230        return false;
2231    }
2232
2233    bool retval = true;
2234
2235#if defined (SUPPORT_CPP)
2236
2237    const char *cpp_path =
2238  #if defined(__APPLE__)
2239                "/usr/bin/cpp";
2240  #else
2241                "/lib/cpp";
2242  #endif
2243
2244    if( access( cpp_path, X_OK ) == 0 )
2245    {
2246
2247        int pd[2];
2248        int result = pipe( pd );
2249        if (result<0)
2250        {
2251            fprintf( stderr, "CameraConfig::parseFile() - pipe() failed, errno= \"%d\".\n",  errno);
2252            return false;
2253        }
2254
2255        flexer = new yyFlexLexer;
2256        if( fork() == 0 )
2257        {
2258            // we don't want to read from the pipe in the child, so close it.
2259            close( pd[0] );
2260            close( 1 );
2261            int result = dup( pd[1] );
2262            if (result<0)
2263            {
2264                fprintf( stderr, "CameraConfig::parseFile() - dup() failed, errno= \"%d\".\n",  errno);
2265                return false;
2266            }
2267
2268
2269            /* This was here to allow reading a config file from stdin.
2270             * This has never been directly supported, so commenting out.
2271            if( fileName.empty() )
2272                execlp( cpp_path, "cpp",  "-P", 0L );
2273            else
2274            */
2275            execlp( cpp_path, "cpp""-P", fileName.c_str(), (char *)NULL );
2276
2277            // This should not execute unless an error happens
2278            perror( "execlp" );
2279        }
2280        else
2281        {
2282            close( pd[1]);
2283            close( 0 );
2284            int result = dup( pd[0] );
2285            if (result<0)
2286            {
2287                fprintf( stderr, "CameraConfig::parseFile() - dup() failed, errno= \"%d\".\n",  errno);
2288                return false;
2289            }
2290
2291            cfg = this;
2292
2293            retval = ConfigParser_parse() == 0 ? true : false;
2294
2295            // Wait on child process to finish
2296            int stat;
2297            wait( &stat );
2298        }
2299    }
2300    else
2301#endif
2302    {
2303        osgDB::ifstream ifs(fileName.c_str());
2304        flexer = new yyFlexLexer(&ifs);
2305        cfg = this;
2306        retval = ConfigParser_parse() == 0 ? true : false;
2307        ifs.close();
2308        delete flexer;
2309    }
2310    return retval;
2311}
2312
Note: See TracBrowser for help on using the browser.