LCOV - code coverage report
Current view: top level - jenkins/02/workspace/oss.Equalizer.documentation/build_type/Debug/platform/cscsviz-vm/build/eq/server - parser.cpp (source / functions) Hit Total Coverage
Test: Equalizer Lines: 703 963 73.0 %
Date: 2017-12-16 05:07:20 Functions: 6 8 75.0 %

          Line data    Source code
       1             : 
       2             : /* A Bison parser, made by GNU Bison 2.4.1.  */
       3             : 
       4             : /* Skeleton implementation for Bison's Yacc-like parsers in C
       5             :    
       6             :       Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
       7             :    Free Software Foundation, Inc.
       8             :    
       9             :    This program is free software: you can redistribute it and/or modify
      10             :    it under the terms of the GNU General Public License as published by
      11             :    the Free Software Foundation, either version 3 of the License, or
      12             :    (at your option) any later version.
      13             :    
      14             :    This program is distributed in the hope that it will be useful,
      15             :    but WITHOUT ANY WARRANTY; without even the implied warranty of
      16             :    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      17             :    GNU General Public License for more details.
      18             :    
      19             :    You should have received a copy of the GNU General Public License
      20             :    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
      21             : 
      22             : /* As a special exception, you may create a larger work that contains
      23             :    part or all of the Bison parser skeleton and distribute that work
      24             :    under terms of your choice, so long as that work isn't itself a
      25             :    parser generator using the skeleton or a modified version thereof
      26             :    as a parser skeleton.  Alternatively, if you modify or redistribute
      27             :    the parser skeleton itself, you may (at your option) remove this
      28             :    special exception, which will cause the skeleton and the resulting
      29             :    Bison output files to be licensed under the GNU General Public
      30             :    License without this special exception.
      31             :    
      32             :    This special exception was added by the Free Software Foundation in
      33             :    version 2.2 of Bison.  */
      34             : 
      35             : /* C LALR(1) parser skeleton written by Richard Stallman, by
      36             :    simplifying the original so-called "semantic" parser.  */
      37             : 
      38             : /* All symbols defined below should begin with yy or YY, to avoid
      39             :    infringing on user name space.  This should be done even for local
      40             :    variables, as they might otherwise be expanded by user macros.
      41             :    There are some unavoidable exceptions within include files to
      42             :    define necessary library symbols; they are noted "INFRINGES ON
      43             :    USER NAME SPACE" below.  */
      44             : 
      45             : /* Identify Bison output.  */
      46             : #define YYBISON 1
      47             : 
      48             : /* Bison version.  */
      49             : #define YYBISON_VERSION "2.4.1"
      50             : 
      51             : /* Skeleton name.  */
      52             : #define YYSKELETON_NAME "yacc.c"
      53             : 
      54             : /* Pure parsers.  */
      55             : #define YYPURE 0
      56             : 
      57             : /* Push parsers.  */
      58             : #define YYPUSH 0
      59             : 
      60             : /* Pull parsers.  */
      61             : #define YYPULL 1
      62             : 
      63             : /* Using locations.  */
      64             : #define YYLSP_NEEDED 0
      65             : 
      66             : /* Substitute the variable and function names.  */
      67             : #define yyparse         eqLoader_parse
      68             : #define yylex           eqLoader_lex
      69             : #define yyerror         eqLoader_error
      70             : #define yylval          eqLoader_lval
      71             : #define yychar          eqLoader_char
      72             : #define yydebug         eqLoader_debug
      73             : #define yynerrs         eqLoader_nerrs
      74             : 
      75             : 
      76             : /* Copy the first part of user declarations.  */
      77             : 
      78             : 
      79             : #include "loader.h"
      80             : 
      81             : #include "canvas.h"
      82             : #include "channel.h"
      83             : #include "compound.h"
      84             : #include "equalizers/dfrEqualizer.h"
      85             : #include "equalizers/framerateEqualizer.h"
      86             : #include "equalizers/loadEqualizer.h"
      87             : #include "equalizers/treeEqualizer.h"
      88             : #include "equalizers/monitorEqualizer.h"
      89             : #include "equalizers/viewEqualizer.h"
      90             : #include "equalizers/tileEqualizer.h"
      91             : #include "frame.h"
      92             : #include "tileQueue.h"
      93             : #include "global.h"
      94             : #include "layout.h"
      95             : #include "node.h"
      96             : #include "observer.h"
      97             : #include "pipe.h"
      98             : #include "segment.h"
      99             : #include "server.h"
     100             : #include "view.h"
     101             : #include "window.h"
     102             : 
     103             : #include <eq/fabric/paths.h>
     104             : #include <lunchbox/os.h>
     105             : #include <lunchbox/file.h>
     106             : 
     107             : #include <locale.h>
     108             : #include <string>
     109             : 
     110             : #pragma warning(disable: 4065)
     111             : 
     112             :     namespace eq
     113             :     {
     114             :     namespace loader
     115             :     {
     116             :         static eq::server::Loader*      loader = 0;
     117          20 :         std::string filename;
     118             : 
     119          20 :         static eq::server::ServerPtr    server;
     120             :         static eq::server::Config*      config = 0;
     121             :         static eq::server::Node*        node = 0;
     122             :         static eq::server::Pipe*        eqPipe = 0; // avoid name clash
     123             :         static eq::server::Window*      window = 0;
     124             :         static eq::server::Channel*     channel = 0;
     125             :         static eq::server::Layout*      layout = 0;
     126             :         static eq::server::View*        view = 0;
     127             :         static eq::server::Canvas*      canvas = 0;
     128             :         static eq::server::Segment*     segment = 0;
     129             :         static eq::server::Observer*    observer = 0;
     130             :         static eq::server::Compound*    eqCompound = 0; // avoid name clash
     131             :         static eq::server::DFREqualizer* dfrEqualizer = 0;
     132             :         static eq::server::LoadEqualizer* loadEqualizer = 0;
     133             :         static eq::server::TreeEqualizer* treeEqualizer = 0;
     134             :         static eq::server::TileEqualizer* tileEqualizer = 0;
     135          20 :         static eq::server::SwapBarrierPtr swapBarrier;
     136             :         static eq::server::Frame*       frame = 0;
     137             :         static eq::server::TileQueue*   tileQueue = 0;
     138          20 :         static co::ConnectionDescriptionPtr connectionDescription;
     139          20 :         static eq::fabric::Wall         wall;
     140          20 :         static eq::fabric::Projection   projection;
     141             :         static fabric::Frame::Buffer buffers = fabric::Frame::Buffer::none;
     142             :     }
     143             :     }
     144             : 
     145             :     using namespace lunchbox;
     146             :     using namespace eq::loader;
     147             : 
     148             :     int eqLoader_lex();
     149             : 
     150             :     #define yylineno eqLoader_lineno
     151             :     void yyerror( const char *errmsg );
     152             :     extern char* yytext;
     153             :     extern FILE*       yyin;
     154             :     extern const char* yyinString;
     155             :     extern int yylineno;
     156             : 
     157             : 
     158             : 
     159             : /* Enabling traces.  */
     160             : #ifndef YYDEBUG
     161             : # define YYDEBUG 0
     162             : #endif
     163             : 
     164             : /* Enabling verbose error messages.  */
     165             : #ifdef YYERROR_VERBOSE
     166             : # undef YYERROR_VERBOSE
     167             : # define YYERROR_VERBOSE 1
     168             : #else
     169             : # define YYERROR_VERBOSE 0
     170             : #endif
     171             : 
     172             : /* Enabling the token table.  */
     173             : #ifndef YYTOKEN_TABLE
     174             : # define YYTOKEN_TABLE 0
     175             : #endif
     176             : 
     177             : 
     178             : /* Tokens.  */
     179             : #ifndef YYTOKENTYPE
     180             : # define YYTOKENTYPE
     181             :    /* Put the tokens into the symbol table, so that GDB and other debuggers
     182             :       know about them.  */
     183             :    enum yytokentype {
     184             :      EQTOKEN_HEADER = 258,
     185             :      EQTOKEN_ASCII = 259,
     186             :      EQTOKEN_GLOBAL = 260,
     187             :      EQTOKEN_CHANNEL_IATTR_HINT_STATISTICS = 261,
     188             :      EQTOKEN_CHANNEL_IATTR_HINT_SENDTOKEN = 262,
     189             :      EQTOKEN_CHANNEL_SATTR_DUMP_IMAGE = 263,
     190             :      EQTOKEN_COMPOUND_IATTR_STEREO_MODE = 264,
     191             :      EQTOKEN_COMPOUND_IATTR_STEREO_ANAGLYPH_LEFT_MASK = 265,
     192             :      EQTOKEN_COMPOUND_IATTR_STEREO_ANAGLYPH_RIGHT_MASK = 266,
     193             :      EQTOKEN_COMPOUND_IATTR_UPDATE_FOV = 267,
     194             :      EQTOKEN_CONNECTION_SATTR_FILENAME = 268,
     195             :      EQTOKEN_CONNECTION_SATTR_HOSTNAME = 269,
     196             :      EQTOKEN_CONNECTION_IATTR_BANDWIDTH = 270,
     197             :      EQTOKEN_CONNECTION_IATTR_TYPE = 271,
     198             :      EQTOKEN_CONNECTION_IATTR_PORT = 272,
     199             :      EQTOKEN_CONFIG_FATTR_EYE_BASE = 273,
     200             :      EQTOKEN_CONFIG_IATTR_ROBUSTNESS = 274,
     201             :      EQTOKEN_NODE_SATTR_LAUNCH_COMMAND = 275,
     202             :      EQTOKEN_NODE_CATTR_LAUNCH_COMMAND_QUOTE = 276,
     203             :      EQTOKEN_NODE_IATTR_THREAD_MODEL = 277,
     204             :      EQTOKEN_NODE_IATTR_HINT_AFFINITY = 278,
     205             :      EQTOKEN_NODE_IATTR_HINT_STATISTICS = 279,
     206             :      EQTOKEN_NODE_IATTR_LAUNCH_TIMEOUT = 280,
     207             :      EQTOKEN_PIPE_IATTR_HINT_THREAD = 281,
     208             :      EQTOKEN_PIPE_IATTR_HINT_AFFINITY = 282,
     209             :      EQTOKEN_VIEW_SATTR_DEFLECT_HOST = 283,
     210             :      EQTOKEN_WINDOW_IATTR_HINT_CORE_PROFILE = 284,
     211             :      EQTOKEN_WINDOW_IATTR_HINT_OPENGL_MAJOR = 285,
     212             :      EQTOKEN_WINDOW_IATTR_HINT_OPENGL_MINOR = 286,
     213             :      EQTOKEN_WINDOW_IATTR_HINT_STEREO = 287,
     214             :      EQTOKEN_WINDOW_IATTR_HINT_DOUBLEBUFFER = 288,
     215             :      EQTOKEN_WINDOW_IATTR_HINT_FULLSCREEN = 289,
     216             :      EQTOKEN_WINDOW_IATTR_HINT_DECORATION = 290,
     217             :      EQTOKEN_WINDOW_IATTR_HINT_SWAPSYNC = 291,
     218             :      EQTOKEN_WINDOW_IATTR_HINT_DRAWABLE = 292,
     219             :      EQTOKEN_WINDOW_IATTR_HINT_STATISTICS = 293,
     220             :      EQTOKEN_WINDOW_IATTR_HINT_SCREENSAVER = 294,
     221             :      EQTOKEN_WINDOW_IATTR_HINT_GRAB_POINTER = 295,
     222             :      EQTOKEN_WINDOW_IATTR_HINT_HEIGHT = 296,
     223             :      EQTOKEN_WINDOW_IATTR_HINT_WIDTH = 297,
     224             :      EQTOKEN_WINDOW_IATTR_PLANES_ACCUM = 298,
     225             :      EQTOKEN_WINDOW_IATTR_PLANES_ACCUM_ALPHA = 299,
     226             :      EQTOKEN_WINDOW_IATTR_PLANES_ALPHA = 300,
     227             :      EQTOKEN_WINDOW_IATTR_PLANES_COLOR = 301,
     228             :      EQTOKEN_WINDOW_IATTR_PLANES_DEPTH = 302,
     229             :      EQTOKEN_WINDOW_IATTR_PLANES_SAMPLES = 303,
     230             :      EQTOKEN_WINDOW_IATTR_PLANES_STENCIL = 304,
     231             :      EQTOKEN_SERVER = 305,
     232             :      EQTOKEN_CONFIG = 306,
     233             :      EQTOKEN_APPNODE = 307,
     234             :      EQTOKEN_NODE = 308,
     235             :      EQTOKEN_PIPE = 309,
     236             :      EQTOKEN_WINDOW = 310,
     237             :      EQTOKEN_ATTRIBUTES = 311,
     238             :      EQTOKEN_HINT_CORE_PROFILE = 312,
     239             :      EQTOKEN_HINT_OPENGL_MAJOR = 313,
     240             :      EQTOKEN_HINT_OPENGL_MINOR = 314,
     241             :      EQTOKEN_HINT_STEREO = 315,
     242             :      EQTOKEN_HINT_DOUBLEBUFFER = 316,
     243             :      EQTOKEN_HINT_FULLSCREEN = 317,
     244             :      EQTOKEN_HINT_DECORATION = 318,
     245             :      EQTOKEN_HINT_STATISTICS = 319,
     246             :      EQTOKEN_HINT_SENDTOKEN = 320,
     247             :      EQTOKEN_HINT_SWAPSYNC = 321,
     248             :      EQTOKEN_HINT_DRAWABLE = 322,
     249             :      EQTOKEN_HINT_THREAD = 323,
     250             :      EQTOKEN_HINT_AFFINITY = 324,
     251             :      EQTOKEN_HINT_SCREENSAVER = 325,
     252             :      EQTOKEN_HINT_GRAB_POINTER = 326,
     253             :      EQTOKEN_PLANES_COLOR = 327,
     254             :      EQTOKEN_PLANES_ALPHA = 328,
     255             :      EQTOKEN_PLANES_DEPTH = 329,
     256             :      EQTOKEN_PLANES_STENCIL = 330,
     257             :      EQTOKEN_PLANES_ACCUM = 331,
     258             :      EQTOKEN_PLANES_ACCUM_ALPHA = 332,
     259             :      EQTOKEN_PLANES_SAMPLES = 333,
     260             :      EQTOKEN_ON = 334,
     261             :      EQTOKEN_OFF = 335,
     262             :      EQTOKEN_AUTO = 336,
     263             :      EQTOKEN_FASTEST = 337,
     264             :      EQTOKEN_NICEST = 338,
     265             :      EQTOKEN_QUAD = 339,
     266             :      EQTOKEN_ANAGLYPH = 340,
     267             :      EQTOKEN_PASSIVE = 341,
     268             :      EQTOKEN_RED = 342,
     269             :      EQTOKEN_GREEN = 343,
     270             :      EQTOKEN_BLUE = 344,
     271             :      EQTOKEN_HORIZONTAL = 345,
     272             :      EQTOKEN_VERTICAL = 346,
     273             :      EQTOKEN_FRAMERATE = 347,
     274             :      EQTOKEN_CHANNEL = 348,
     275             :      EQTOKEN_OBSERVER = 349,
     276             :      EQTOKEN_LAYOUT = 350,
     277             :      EQTOKEN_VIEW = 351,
     278             :      EQTOKEN_CANVAS = 352,
     279             :      EQTOKEN_SEGMENT = 353,
     280             :      EQTOKEN_COMPOUND = 354,
     281             :      EQTOKEN_DFREQUALIZER = 355,
     282             :      EQTOKEN_FRAMERATEEQUALIZER = 356,
     283             :      EQTOKEN_LOADEQUALIZER = 357,
     284             :      EQTOKEN_TREEEQUALIZER = 358,
     285             :      EQTOKEN_MONITOREQUALIZER = 359,
     286             :      EQTOKEN_VIEWEQUALIZER = 360,
     287             :      EQTOKEN_TILEEQUALIZER = 361,
     288             :      EQTOKEN_DAMPING = 362,
     289             :      EQTOKEN_CONNECTION = 363,
     290             :      EQTOKEN_NAME = 364,
     291             :      EQTOKEN_TYPE = 365,
     292             :      EQTOKEN_TCPIP = 366,
     293             :      EQTOKEN_RSP = 367,
     294             :      EQTOKEN_RDMA = 368,
     295             :      EQTOKEN_UDT = 369,
     296             :      EQTOKEN_TEXTURE = 370,
     297             :      EQTOKEN_MEMORY = 371,
     298             :      EQTOKEN_FIXED = 372,
     299             :      EQTOKEN_RELATIVE_TO_ORIGIN = 373,
     300             :      EQTOKEN_RELATIVE_TO_OBSERVER = 374,
     301             :      EQTOKEN_HMD = 375,
     302             :      EQTOKEN_HOST = 376,
     303             :      EQTOKEN_HOSTNAME = 377,
     304             :      EQTOKEN_INTERFACE = 378,
     305             :      EQTOKEN_LAUNCH_COMMAND = 379,
     306             :      EQTOKEN_LAUNCH_COMMAND_QUOTE = 380,
     307             :      EQTOKEN_LAUNCH_TIMEOUT = 381,
     308             :      EQTOKEN_PORT = 382,
     309             :      EQTOKEN_FILENAME = 383,
     310             :      EQTOKEN_TASK = 384,
     311             :      EQTOKEN_EYE = 385,
     312             :      EQTOKEN_EYE_BASE = 386,
     313             :      EQTOKEN_EYE_LEFT = 387,
     314             :      EQTOKEN_EYE_CYCLOP = 388,
     315             :      EQTOKEN_EYE_RIGHT = 389,
     316             :      EQTOKEN_FOCUS_DISTANCE = 390,
     317             :      EQTOKEN_FOCUS_MODE = 391,
     318             :      EQTOKEN_OPENCV_CAMERA = 392,
     319             :      EQTOKEN_VRPN_TRACKER = 393,
     320             :      EQTOKEN_ROBUSTNESS = 394,
     321             :      EQTOKEN_THREAD_MODEL = 395,
     322             :      EQTOKEN_ASYNC = 396,
     323             :      EQTOKEN_DRAW_SYNC = 397,
     324             :      EQTOKEN_LOCAL_SYNC = 398,
     325             :      EQTOKEN_BUFFER = 399,
     326             :      EQTOKEN_CLEAR = 400,
     327             :      EQTOKEN_DRAW = 401,
     328             :      EQTOKEN_ASSEMBLE = 402,
     329             :      EQTOKEN_READBACK = 403,
     330             :      EQTOKEN_COLOR = 404,
     331             :      EQTOKEN_DEPTH = 405,
     332             :      EQTOKEN_CYCLOP = 406,
     333             :      EQTOKEN_LEFT = 407,
     334             :      EQTOKEN_RIGHT = 408,
     335             :      EQTOKEN_VIEWPORT = 409,
     336             :      EQTOKEN_RANGE = 410,
     337             :      EQTOKEN_PERIOD = 411,
     338             :      EQTOKEN_PHASE = 412,
     339             :      EQTOKEN_PIXEL = 413,
     340             :      EQTOKEN_SUBPIXEL = 414,
     341             :      EQTOKEN_BANDWIDTH = 415,
     342             :      EQTOKEN_DEVICE = 416,
     343             :      EQTOKEN_WALL = 417,
     344             :      EQTOKEN_BOTTOM_LEFT = 418,
     345             :      EQTOKEN_BOTTOM_RIGHT = 419,
     346             :      EQTOKEN_TOP_LEFT = 420,
     347             :      EQTOKEN_PROJECTION = 421,
     348             :      EQTOKEN_ORIGIN = 422,
     349             :      EQTOKEN_DISTANCE = 423,
     350             :      EQTOKEN_FOV = 424,
     351             :      EQTOKEN_HPR = 425,
     352             :      EQTOKEN_LATENCY = 426,
     353             :      EQTOKEN_SWAPBARRIER = 427,
     354             :      EQTOKEN_NVGROUP = 428,
     355             :      EQTOKEN_NVBARRIER = 429,
     356             :      EQTOKEN_OUTPUTFRAME = 430,
     357             :      EQTOKEN_INPUTFRAME = 431,
     358             :      EQTOKEN_OUTPUTTILES = 432,
     359             :      EQTOKEN_INPUTTILES = 433,
     360             :      EQTOKEN_STEREO_MODE = 434,
     361             :      EQTOKEN_STEREO_ANAGLYPH_LEFT_MASK = 435,
     362             :      EQTOKEN_STEREO_ANAGLYPH_RIGHT_MASK = 436,
     363             :      EQTOKEN_UPDATE_FOV = 437,
     364             :      EQTOKEN_PBUFFER = 438,
     365             :      EQTOKEN_FBO = 439,
     366             :      EQTOKEN_RGBA16F = 440,
     367             :      EQTOKEN_RGBA32F = 441,
     368             :      EQTOKEN_MODE = 442,
     369             :      EQTOKEN_2D = 443,
     370             :      EQTOKEN_ASSEMBLE_ONLY_LIMIT = 444,
     371             :      EQTOKEN_DB = 445,
     372             :      EQTOKEN_BOUNDARY = 446,
     373             :      EQTOKEN_RESISTANCE = 447,
     374             :      EQTOKEN_ZOOM = 448,
     375             :      EQTOKEN_MONO = 449,
     376             :      EQTOKEN_STEREO = 450,
     377             :      EQTOKEN_STRING = 451,
     378             :      EQTOKEN_CHARACTER = 452,
     379             :      EQTOKEN_FLOAT = 453,
     380             :      EQTOKEN_INTEGER = 454,
     381             :      EQTOKEN_UNSIGNED = 455,
     382             :      EQTOKEN_SIZE = 456,
     383             :      EQTOKEN_CORE = 457,
     384             :      EQTOKEN_SOCKET = 458,
     385             :      EQTOKEN_DEFLECT_HOST = 459,
     386             :      EQTOKEN_DUMP_IMAGE = 460
     387             :    };
     388             : #endif
     389             : 
     390             : 
     391             : 
     392             : #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
     393             : typedef union YYSTYPE
     394             : {
     395             : 
     396             : 
     397             :     const char*             _string;
     398             :     char                    _character;
     399             :     int                     _int;
     400             :     unsigned                _unsigned;
     401             :     float                   _float;
     402             :     co::ConnectionType   _connectionType;
     403             :     eq::server::LoadEqualizer::Mode _loadEqualizerMode;
     404             :     eq::server::TreeEqualizer::Mode _treeEqualizerMode;
     405             :     float                   _viewport[4];
     406             : 
     407             : 
     408             : 
     409             : } YYSTYPE;
     410             : # define YYSTYPE_IS_TRIVIAL 1
     411             : # define yystype YYSTYPE /* obsolescent; will be withdrawn */
     412             : # define YYSTYPE_IS_DECLARED 1
     413             : #endif
     414             : 
     415             : 
     416             : /* Copy the second part of user declarations.  */
     417             : 
     418             : 
     419             : 
     420             : #ifdef short
     421             : # undef short
     422             : #endif
     423             : 
     424             : #ifdef YYTYPE_UINT8
     425             : typedef YYTYPE_UINT8 yytype_uint8;
     426             : #else
     427             : typedef unsigned char yytype_uint8;
     428             : #endif
     429             : 
     430             : #ifdef YYTYPE_INT8
     431             : typedef YYTYPE_INT8 yytype_int8;
     432             : #elif (defined __STDC__ || defined __C99__FUNC__ \
     433             :      || defined __cplusplus || defined _MSC_VER)
     434             : typedef signed char yytype_int8;
     435             : #else
     436             : typedef short int yytype_int8;
     437             : #endif
     438             : 
     439             : #ifdef YYTYPE_UINT16
     440             : typedef YYTYPE_UINT16 yytype_uint16;
     441             : #else
     442             : typedef unsigned short int yytype_uint16;
     443             : #endif
     444             : 
     445             : #ifdef YYTYPE_INT16
     446             : typedef YYTYPE_INT16 yytype_int16;
     447             : #else
     448             : typedef short int yytype_int16;
     449             : #endif
     450             : 
     451             : #ifndef YYSIZE_T
     452             : # ifdef __SIZE_TYPE__
     453             : #  define YYSIZE_T __SIZE_TYPE__
     454             : # elif defined size_t
     455             : #  define YYSIZE_T size_t
     456             : # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
     457             :      || defined __cplusplus || defined _MSC_VER)
     458             : #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
     459             : #  define YYSIZE_T size_t
     460             : # else
     461             : #  define YYSIZE_T unsigned int
     462             : # endif
     463             : #endif
     464             : 
     465             : #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
     466             : 
     467             : #ifndef YY_
     468             : # if YYENABLE_NLS
     469             : #  if ENABLE_NLS
     470             : #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
     471             : #   define YY_(msgid) dgettext ("bison-runtime", msgid)
     472             : #  endif
     473             : # endif
     474             : # ifndef YY_
     475             : #  define YY_(msgid) msgid
     476             : # endif
     477             : #endif
     478             : 
     479             : /* Suppress unused-variable warnings by "using" E.  */
     480             : #if ! defined lint || defined __GNUC__
     481             : # define YYUSE(e) ((void) (e))
     482             : #else
     483             : # define YYUSE(e) /* empty */
     484             : #endif
     485             : 
     486             : /* Identity function, used to suppress warnings about constant conditions.  */
     487             : #ifndef lint
     488             : # define YYID(n) (n)
     489             : #else
     490             : #if (defined __STDC__ || defined __C99__FUNC__ \
     491             :      || defined __cplusplus || defined _MSC_VER)
     492             : static int
     493             : YYID (int yyi)
     494             : #else
     495             : static int
     496             : YYID (yyi)
     497             :     int yyi;
     498             : #endif
     499             : {
     500             :   return yyi;
     501             : }
     502             : #endif
     503             : 
     504             : #if ! defined yyoverflow || YYERROR_VERBOSE
     505             : 
     506             : /* The parser invokes alloca or malloc; define the necessary symbols.  */
     507             : 
     508             : # ifdef YYSTACK_USE_ALLOCA
     509             : #  if YYSTACK_USE_ALLOCA
     510             : #   ifdef __GNUC__
     511             : #    define YYSTACK_ALLOC __builtin_alloca
     512             : #   elif defined __BUILTIN_VA_ARG_INCR
     513             : #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
     514             : #   elif defined _AIX
     515             : #    define YYSTACK_ALLOC __alloca
     516             : #   elif defined _MSC_VER
     517             : #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
     518             : #    define alloca _alloca
     519             : #   else
     520             : #    define YYSTACK_ALLOC alloca
     521             : #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
     522             :      || defined __cplusplus || defined _MSC_VER)
     523             : #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
     524             : #     ifndef _STDLIB_H
     525             : #      define _STDLIB_H 1
     526             : #     endif
     527             : #    endif
     528             : #   endif
     529             : #  endif
     530             : # endif
     531             : 
     532             : # ifdef YYSTACK_ALLOC
     533             :    /* Pacify GCC's `empty if-body' warning.  */
     534             : #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
     535             : #  ifndef YYSTACK_ALLOC_MAXIMUM
     536             :     /* The OS might guarantee only one guard page at the bottom of the stack,
     537             :        and a page size can be as small as 4096 bytes.  So we cannot safely
     538             :        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
     539             :        to allow for a few compiler-allocated temporary stack slots.  */
     540             : #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
     541             : #  endif
     542             : # else
     543             : #  define YYSTACK_ALLOC YYMALLOC
     544             : #  define YYSTACK_FREE YYFREE
     545             : #  ifndef YYSTACK_ALLOC_MAXIMUM
     546             : #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
     547             : #  endif
     548             : #  if (defined __cplusplus && ! defined _STDLIB_H \
     549             :        && ! ((defined YYMALLOC || defined malloc) \
     550             :              && (defined YYFREE || defined free)))
     551             : #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
     552             : #   ifndef _STDLIB_H
     553             : #    define _STDLIB_H 1
     554             : #   endif
     555             : #  endif
     556             : #  ifndef YYMALLOC
     557             : #   define YYMALLOC malloc
     558             : #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
     559             :      || defined __cplusplus || defined _MSC_VER)
     560             : void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
     561             : #   endif
     562             : #  endif
     563             : #  ifndef YYFREE
     564             : #   define YYFREE free
     565             : #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
     566             :      || defined __cplusplus || defined _MSC_VER)
     567             : void free (void *); /* INFRINGES ON USER NAME SPACE */
     568             : #   endif
     569             : #  endif
     570             : # endif
     571             : #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
     572             : 
     573             : 
     574             : #if (! defined yyoverflow \
     575             :      && (! defined __cplusplus \
     576             :          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
     577             : 
     578             : /* A type that is properly aligned for any stack member.  */
     579             : union yyalloc
     580             : {
     581             :   yytype_int16 yyss_alloc;
     582             :   YYSTYPE yyvs_alloc;
     583             : };
     584             : 
     585             : /* The size of the maximum gap between one aligned stack and the next.  */
     586             : # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
     587             : 
     588             : /* The size of an array large to enough to hold all stacks, each with
     589             :    N elements.  */
     590             : # define YYSTACK_BYTES(N) \
     591             :      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
     592             :       + YYSTACK_GAP_MAXIMUM)
     593             : 
     594             : /* Copy COUNT objects from FROM to TO.  The source and destination do
     595             :    not overlap.  */
     596             : # ifndef YYCOPY
     597             : #  if defined __GNUC__ && 1 < __GNUC__
     598             : #   define YYCOPY(To, From, Count) \
     599             :       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
     600             : #  else
     601             : #   define YYCOPY(To, From, Count)              \
     602             :       do                                        \
     603             :         {                                       \
     604             :           YYSIZE_T yyi;                         \
     605             :           for (yyi = 0; yyi < (Count); yyi++)        \
     606             :             (To)[yyi] = (From)[yyi];            \
     607             :         }                                       \
     608             :       while (YYID (0))
     609             : #  endif
     610             : # endif
     611             : 
     612             : /* Relocate STACK from its old location to the new one.  The
     613             :    local variables YYSIZE and YYSTACKSIZE give the old and new number of
     614             :    elements in the stack, and YYPTR gives the new location of the
     615             :    stack.  Advance YYPTR to a properly aligned location for the next
     616             :    stack.  */
     617             : # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
     618             :     do                                                                  \
     619             :       {                                                                 \
     620             :         YYSIZE_T yynewbytes;                                            \
     621             :         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                     \
     622             :         Stack = &yyptr->Stack_alloc;                                     \
     623             :         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
     624             :         yyptr += yynewbytes / sizeof (*yyptr);                          \
     625             :       }                                                                 \
     626             :     while (YYID (0))
     627             : 
     628             : #endif
     629             : 
     630             : /* YYFINAL -- State number of the termination state.  */
     631             : #define YYFINAL  10
     632             : /* YYLAST -- Last index in YYTABLE.  */
     633             : #define YYLAST   1288
     634             : 
     635             : /* YYNTOKENS -- Number of terminals.  */
     636             : #define YYNTOKENS  212
     637             : /* YYNNTS -- Number of nonterminals.  */
     638             : #define YYNNTS  154
     639             : /* YYNRULES -- Number of rules.  */
     640             : #define YYNRULES  434
     641             : /* YYNRULES -- Number of states.  */
     642             : #define YYNSTATES  768
     643             : 
     644             : /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     645             : #define YYUNDEFTOK  2
     646             : #define YYMAXUTOK   460
     647             : 
     648             : #define YYTRANSLATE(YYX)                                                \
     649             :   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
     650             : 
     651             : /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
     652             : static const yytype_uint8 yytranslate[] =
     653             : {
     654             :        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     655             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     656             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     657             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     658             :      210,   211,     2,     2,     2,     2,     2,     2,     2,     2,
     659             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     660             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     661             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     662             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     663             :        2,   208,     2,   209,     2,     2,     2,     2,     2,     2,
     664             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     665             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     666             :        2,     2,     2,   206,     2,   207,     2,     2,     2,     2,
     667             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     668             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     669             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     670             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     671             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     672             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     673             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     674             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     675             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     676             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     677             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     678             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     679             :        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
     680             :        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     681             :       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     682             :       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
     683             :       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
     684             :       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
     685             :       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
     686             :       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
     687             :       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
     688             :       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
     689             :       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     690             :      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     691             :      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
     692             :      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
     693             :      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
     694             :      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
     695             :      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
     696             :      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
     697             :      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
     698             :      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     699             :      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
     700             :      205
     701             : };
     702             : 
     703             : #if YYDEBUG
     704             : /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
     705             :    YYRHS.  */
     706             : static const yytype_uint16 yyprhs[] =
     707             : {
     708             :        0,     0,     3,     7,    11,    12,    16,    21,    22,    23,
     709             :       26,    29,    32,    35,    38,    41,    44,    47,    50,    53,
     710             :       56,    59,    62,    65,    68,    71,    74,    77,    80,    83,
     711             :       86,    89,    92,    95,    98,   101,   104,   107,   110,   113,
     712             :      116,   119,   122,   125,   128,   131,   134,   137,   140,   143,
     713             :      146,   149,   152,   155,   158,   160,   162,   164,   166,   168,
     714             :      169,   176,   177,   180,   181,   187,   189,   192,   193,   199,
     715             :      200,   203,   205,   208,   210,   212,   214,   216,   219,   224,
     716             :      225,   228,   231,   234,   236,   238,   239,   245,   246,   252,
     717             :      253,   256,   259,   262,   264,   266,   271,   272,   278,   279,
     718             :      282,   285,   288,   291,   294,   297,   300,   301,   304,   307,
     719             :      310,   313,   316,   319,   322,   323,   329,   330,   333,   335,
     720             :      340,   343,   346,   349,   352,   353,   356,   359,   362,   363,
     721             :      369,   370,   373,   375,   380,   383,   386,   387,   390,   393,
     722             :      396,   399,   402,   405,   408,   411,   414,   417,   420,   423,
     723             :      426,   429,   432,   435,   438,   441,   444,   447,   448,   454,
     724             :      455,   458,   461,   466,   469,   470,   473,   476,   479,   482,
     725             :      483,   489,   490,   493,   496,   499,   506,   513,   520,   523,
     726             :      526,   529,   532,   533,   539,   540,   543,   546,   548,   549,
     727             :      555,   556,   559,   564,   567,   568,   572,   575,   577,   579,
     728             :      582,   585,   587,   589,   590,   593,   596,   597,   603,   604,
     729             :      607,   610,   613,   615,   618,   621,   623,   625,   627,   628,
     730             :      634,   635,   638,   641,   644,   645,   651,   654,   656,   658,
     731             :      660,   661,   664,   666,   668,   670,   671,   677,   678,   681,
     732             :      683,   686,   689,   692,   693,   699,   700,   706,   707,   713,
     733             :      716,   722,   725,   728,   734,   742,   748,   750,   752,   754,
     734             :      756,   758,   760,   762,   764,   769,   770,   775,   776,   779,
     735             :      782,   785,   788,   791,   794,   797,   800,   803,   804,   807,
     736             :      809,   811,   813,   815,   816,   819,   821,   823,   825,   826,
     737             :      829,   831,   833,   834,   840,   841,   844,   851,   858,   865,
     738             :      868,   870,   872,   873,   879,   880,   883,   890,   893,   899,
     739             :      906,   908,   910,   912,   914,   916,   918,   920,   921,   927,
     740             :      931,   932,   938,   939,   945,   949,   953,   954,   960,   961,
     741             :      964,   967,   970,   971,   974,   977,   983,   986,   989,   992,
     742             :      998,  1001,  1003,  1005,  1007,  1009,  1010,  1013,  1016,  1022,
     743             :     1025,  1028,  1034,  1037,  1039,  1041,  1043,  1045,  1046,  1049,
     744             :     1052,  1058,  1059,  1065,  1066,  1069,  1072,  1075,  1078,  1079,
     745             :     1085,  1086,  1092,  1093,  1096,  1099,  1102,  1105,  1106,  1112,
     746             :     1118,  1120,  1122,  1123,  1129,  1130,  1136,  1137,  1140,  1143,
     747             :     1149,  1150,  1153,  1156,  1159,  1162,  1165,  1172,  1176,  1177,
     748             :     1179,  1182,  1184,  1186,  1188,  1190,  1192,  1194,  1196,  1198,
     749             :     1200,  1202,  1204,  1206,  1208,  1210,  1212,  1214,  1216,  1218,
     750             :     1220,  1222,  1224,  1226,  1228,  1230,  1232,  1235,  1238,  1240,
     751             :     1242,  1244,  1246,  1248,  1250
     752             : };
     753             : 
     754             : /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
     755             : static const yytype_int16 yyrhs[] =
     756             : {
     757             :      213,     0,    -1,   214,   215,   218,    -1,   214,   215,   224,
     758             :       -1,    -1,     3,   363,     4,    -1,     5,   206,   216,   207,
     759             :       -1,    -1,    -1,   216,   215,    -1,    14,   361,    -1,    16,
     760             :      217,    -1,    17,   365,    -1,    13,   361,    -1,    15,   365,
     761             :       -1,    18,   363,    -1,    19,   360,    -1,    20,   361,    -1,
     762             :       21,   362,    -1,    22,   360,    -1,    23,   360,    -1,    25,
     763             :      365,    -1,    24,   360,    -1,    26,   360,    -1,    27,   360,
     764             :       -1,    29,   360,    -1,    30,   360,    -1,    31,   360,    -1,
     765             :       32,   360,    -1,    33,   360,    -1,    34,   360,    -1,    35,
     766             :      360,    -1,    36,   360,    -1,    37,   360,    -1,    38,   360,
     767             :       -1,    39,   360,    -1,    40,   360,    -1,    41,   360,    -1,
     768             :       42,   360,    -1,    46,   360,    -1,    45,   360,    -1,    47,
     769             :      360,    -1,    49,   360,    -1,    43,   360,    -1,    44,   360,
     770             :       -1,    48,   360,    -1,     6,   360,    -1,     7,   360,    -1,
     771             :        9,   360,    -1,    10,   357,    -1,    11,   357,    -1,    12,
     772             :      360,    -1,     8,   361,    -1,    28,   361,    -1,   111,    -1,
     773             :       54,    -1,   112,    -1,   113,    -1,   114,    -1,    -1,    50,
     774             :      206,   219,   220,   223,   207,    -1,    -1,   220,   221,    -1,
     775             :       -1,   108,   206,   222,   239,   207,    -1,   224,    -1,   223,
     776             :      224,    -1,    -1,    51,   206,   225,   226,   207,    -1,    -1,
     777             :      226,   227,    -1,   230,    -1,   109,   361,    -1,   261,    -1,
     778             :      265,    -1,   277,    -1,   288,    -1,   171,   365,    -1,    56,
     779             :      206,   228,   207,    -1,    -1,   228,   229,    -1,   131,   363,
     780             :       -1,   139,   360,    -1,   233,    -1,   231,    -1,    -1,    53,
     781             :      206,   232,   235,   207,    -1,    -1,    52,   206,   234,   235,
     782             :      207,    -1,    -1,   235,   236,    -1,   109,   361,    -1,   121,
     783             :      361,    -1,   237,    -1,   243,    -1,    56,   206,   241,   207,
     784             :       -1,    -1,   108,   206,   238,   239,   207,    -1,    -1,   239,
     785             :      240,    -1,   110,   217,    -1,   122,   361,    -1,   123,   361,
     786             :       -1,   127,   365,    -1,   160,   365,    -1,   128,   361,    -1,
     787             :       -1,   241,   242,    -1,   124,   361,    -1,   125,   362,    -1,
     788             :      140,   360,    -1,   126,   360,    -1,    64,   360,    -1,    69,
     789             :      360,    -1,    -1,    54,   206,   244,   245,   207,    -1,    -1,
     790             :      245,   246,    -1,   249,    -1,    56,   206,   247,   207,    -1,
     791             :      109,   361,    -1,   127,   365,    -1,   161,   365,    -1,   154,
     792             :      356,    -1,    -1,   247,   248,    -1,    68,   360,    -1,    69,
     793             :      360,    -1,    -1,    55,   206,   250,   251,   207,    -1,    -1,
     794             :      251,   252,    -1,   255,    -1,    56,   206,   253,   207,    -1,
     795             :      109,   361,    -1,   154,   356,    -1,    -1,   253,   254,    -1,
     796             :       57,   360,    -1,    58,   360,    -1,    59,   360,    -1,    60,
     797             :      360,    -1,    61,   360,    -1,    62,   360,    -1,    63,   360,
     798             :       -1,    66,   360,    -1,    67,   360,    -1,    64,   360,    -1,
     799             :       70,   360,    -1,    71,   360,    -1,    72,   360,    -1,    73,
     800             :      360,    -1,    74,   360,    -1,    75,   360,    -1,    76,   360,
     801             :       -1,    77,   360,    -1,    78,   360,    -1,    -1,    93,   206,
     802             :      256,   257,   207,    -1,    -1,   257,   258,    -1,   109,   361,
     803             :       -1,    56,   206,   259,   207,    -1,   154,   356,    -1,    -1,
     804             :      259,   260,    -1,    64,   360,    -1,    65,   360,    -1,   205,
     805             :      361,    -1,    -1,    94,   206,   262,   263,   207,    -1,    -1,
     806             :      263,   264,    -1,   109,   361,    -1,   131,   363,    -1,   132,
     807             :      208,   363,   363,   363,   209,    -1,   133,   208,   363,   363,
     808             :      363,   209,    -1,   134,   208,   363,   363,   363,   209,    -1,
     809             :      135,   363,    -1,   136,   360,    -1,   137,   360,    -1,   138,
     810             :      361,    -1,    -1,    95,   206,   266,   267,   207,    -1,    -1,
     811             :      267,   268,    -1,   109,   361,    -1,   269,    -1,    -1,    96,
     812             :      206,   270,   271,   207,    -1,    -1,   271,   272,    -1,    56,
     813             :      206,   275,   207,    -1,   109,   361,    -1,    -1,   187,   273,
     814             :      274,    -1,   154,   356,    -1,   305,    -1,   310,    -1,    94,
     815             :      361,    -1,    94,   365,    -1,   194,    -1,   195,    -1,    -1,
     816             :      275,   276,    -1,   204,   361,    -1,    -1,    97,   206,   278,
     817             :      279,   207,    -1,    -1,   279,   280,    -1,   109,   361,    -1,
     818             :       95,   361,    -1,   336,    -1,    95,   365,    -1,    95,    80,
     819             :       -1,   305,    -1,   310,    -1,   281,    -1,    -1,    98,   206,
     820             :      282,   283,   207,    -1,    -1,   283,   284,    -1,   109,   361,
     821             :       -1,    93,   361,    -1,    -1,   130,   208,   285,   286,   209,
     822             :       -1,   154,   356,    -1,   336,    -1,   305,    -1,   310,    -1,
     823             :       -1,   286,   287,    -1,   151,    -1,   152,    -1,   153,    -1,
     824             :       -1,    99,   206,   289,   290,   207,    -1,    -1,   290,   291,
     825             :       -1,   288,    -1,   109,   361,    -1,    93,   361,    -1,    93,
     826             :      295,    -1,    -1,   129,   208,   292,   299,   209,    -1,    -1,
     827             :      130,   208,   293,   301,   209,    -1,    -1,   144,   208,   294,
     828             :      303,   209,    -1,   154,   356,    -1,   155,   208,   363,   363,
     829             :      209,    -1,   156,   365,    -1,   157,   365,    -1,   193,   208,
     830             :      363,   363,   209,    -1,   158,   208,   365,   365,   365,   365,
     831             :      209,    -1,   159,   208,   365,   365,   209,    -1,   305,    -1,
     832             :      310,    -1,   314,    -1,   336,    -1,   340,    -1,   342,    -1,
     833             :      348,    -1,   350,    -1,    56,   206,   354,   207,    -1,    -1,
     834             :      210,   296,   297,   211,    -1,    -1,   297,   298,    -1,    97,
     835             :      361,    -1,    97,   365,    -1,    98,   361,    -1,    98,   365,
     836             :       -1,    95,   361,    -1,    95,   365,    -1,    96,   361,    -1,
     837             :       96,   365,    -1,    -1,   299,   300,    -1,   145,    -1,   146,
     838             :       -1,   147,    -1,   148,    -1,    -1,   301,   302,    -1,   151,
     839             :       -1,   152,    -1,   153,    -1,    -1,   303,   304,    -1,   149,
     840             :       -1,   150,    -1,    -1,   162,   206,   306,   307,   207,    -1,
     841             :       -1,   307,   308,    -1,   163,   208,   363,   363,   363,   209,
     842             :       -1,   164,   208,   363,   363,   363,   209,    -1,   165,   208,
     843             :      363,   363,   363,   209,    -1,   110,   309,    -1,   117,    -1,
     844             :      120,    -1,    -1,   166,   206,   311,   312,   207,    -1,    -1,
     845             :      312,   313,    -1,   167,   208,   363,   363,   363,   209,    -1,
     846             :      168,   363,    -1,   169,   208,   363,   363,   209,    -1,   170,
     847             :      208,   363,   363,   363,   209,    -1,   315,    -1,   317,    -1,
     848             :      318,    -1,   320,    -1,   322,    -1,   323,    -1,   324,    -1,
     849             :       -1,   100,   206,   316,   326,   207,    -1,   101,   206,   207,
     850             :       -1,    -1,   102,   206,   319,   328,   207,    -1,    -1,   103,
     851             :      206,   321,   331,   207,    -1,   104,   206,   207,    -1,   105,
     852             :      206,   207,    -1,    -1,   106,   206,   325,   334,   207,    -1,
     853             :       -1,   326,   327,    -1,   107,   363,    -1,    92,   363,    -1,
     854             :       -1,   328,   329,    -1,   107,   363,    -1,   191,   208,   365,
     855             :      365,   209,    -1,   189,   363,    -1,   191,   363,    -1,   187,
     856             :      330,    -1,   192,   208,   365,   365,   209,    -1,   192,   363,
     857             :       -1,   188,    -1,   190,    -1,    90,    -1,    91,    -1,    -1,
     858             :      331,   332,    -1,   107,   363,    -1,   191,   208,   365,   365,
     859             :      209,    -1,   191,   363,    -1,   187,   333,    -1,   192,   208,
     860             :      365,   365,   209,    -1,   192,   363,    -1,   188,    -1,   190,
     861             :       -1,    90,    -1,    91,    -1,    -1,   334,   335,    -1,   109,
     862             :      361,    -1,   201,   208,   365,   365,   209,    -1,    -1,   172,
     863             :      206,   337,   338,   207,    -1,    -1,   338,   339,    -1,   109,
     864             :      361,    -1,   173,   360,    -1,   174,   360,    -1,    -1,   175,
     865             :      206,   341,   344,   207,    -1,    -1,   176,   206,   343,   344,
     866             :      207,    -1,    -1,   344,   345,    -1,   109,   361,    -1,   110,
     867             :      347,    -1,   154,   356,    -1,    -1,   144,   208,   346,   303,
     868             :      209,    -1,   193,   208,   363,   363,   209,    -1,   115,    -1,
     869             :      116,    -1,    -1,   177,   206,   349,   352,   207,    -1,    -1,
     870             :      178,   206,   351,   352,   207,    -1,    -1,   352,   353,    -1,
     871             :      109,   361,    -1,   201,   208,   365,   365,   209,    -1,    -1,
     872             :      354,   355,    -1,   179,   360,    -1,   180,   357,    -1,   181,
     873             :      357,    -1,   182,   360,    -1,   208,   363,   363,   363,   363,
     874             :      209,    -1,   208,   358,   209,    -1,    -1,   359,    -1,   358,
     875             :      359,    -1,    87,    -1,    88,    -1,    89,    -1,    79,    -1,
     876             :       80,    -1,    81,    -1,    82,    -1,    90,    -1,    83,    -1,
     877             :       84,    -1,    85,    -1,    86,    -1,    91,    -1,    55,    -1,
     878             :      184,    -1,   183,    -1,   141,    -1,   142,    -1,   143,    -1,
     879             :      185,    -1,   186,    -1,   117,    -1,   118,    -1,   119,    -1,
     880             :      364,    -1,   202,   364,    -1,   203,   364,    -1,   196,    -1,
     881             :      197,    -1,   198,    -1,   364,    -1,   199,    -1,   365,    -1,
     882             :      200,    -1
     883             : };
     884             : 
     885             : /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
     886             : static const yytype_uint16 yyrline[] =
     887             : {
     888             :        0,   328,   328,   328,   330,   330,   336,   337,   340,   340,
     889             :      343,   348,   353,   358,   363,   368,   373,   378,   383,   388,
     890             :      393,   398,   403,   408,   413,   418,   423,   428,   433,   438,
     891             :      443,   448,   453,   458,   463,   468,   473,   478,   483,   488,
     892             :      493,   498,   503,   508,   513,   518,   523,   528,   533,   538,
     893             :      543,   548,   553,   558,   565,   566,   567,   568,   569,   571,
     894             :      571,   575,   575,   577,   576,   588,   588,   590,   589,   597,
     895             :      597,   599,   600,   601,   602,   603,   604,   605,   606,   607,
     896             :      607,   609,   611,   614,   614,   615,   615,   621,   620,   627,
     897             :      627,   629,   630,   631,   632,   633,   636,   635,   642,   642,
     898             :      644,   645,   646,   647,   648,   649,   651,   651,   653,   655,
     899             :      658,   660,   662,   668,   673,   672,   678,   678,   680,   681,
     900             :      682,   683,   684,   685,   690,   690,   692,   694,   698,   697,
     901             :      704,   704,   706,   707,   708,   709,   718,   718,   720,   722,
     902             :      724,   726,   728,   730,   732,   734,   736,   738,   740,   742,
     903             :      744,   746,   748,   750,   752,   754,   756,   760,   759,   766,
     904             :      766,   768,   769,   770,   779,   779,   781,   784,   787,   790,
     905             :      790,   792,   792,   794,   795,   805,   810,   815,   820,   821,
     906             :      823,   824,   826,   826,   828,   828,   830,   831,   833,   833,
     907             :      835,   835,   837,   838,   839,   839,   841,   844,   845,   846,
     908             :      857,   871,   872,   874,   874,   876,   881,   881,   883,   883,
     909             :      885,   886,   897,   898,   910,   914,   915,   916,   918,   918,
     910             :      920,   920,   922,   923,   934,   934,   936,   939,   940,   941,
     911             :      943,   943,   945,   946,   947,   950,   949,   959,   959,   961,
     912             :      962,   963,   974,   998,   998,  1000,  1000,  1002,  1002,  1005,
     913             :     1008,  1010,  1011,  1012,  1014,  1016,  1018,  1019,  1020,  1021,
     914             :     1022,  1023,  1024,  1025,  1026,  1029,  1029,  1037,  1037,  1039,
     915             :     1049,  1059,  1066,  1073,  1083,  1093,  1100,  1108,  1108,  1110,
     916             :     1111,  1112,  1113,  1115,  1115,  1117,  1118,  1119,  1121,  1121,
     917             :     1123,  1124,  1126,  1126,  1128,  1128,  1130,  1132,  1134,  1136,
     918             :     1139,  1140,  1142,  1142,  1145,  1145,  1147,  1149,  1151,  1153,
     919             :     1156,  1156,  1156,  1156,  1157,  1157,  1157,  1160,  1159,  1166,
     920             :     1171,  1170,  1178,  1177,  1184,  1188,  1193,  1192,  1200,  1200,
     921             :     1202,  1203,  1205,  1205,  1207,  1208,  1210,  1212,  1213,  1214,
     922             :     1216,  1219,  1220,  1221,  1222,  1224,  1224,  1226,  1227,  1229,
     923             :     1230,  1231,  1233,  1236,  1237,  1238,  1239,  1241,  1241,  1243,
     924             :     1244,  1248,  1248,  1251,  1251,  1252,  1253,  1254,  1258,  1258,
     925             :     1264,  1264,  1270,  1270,  1272,  1273,  1274,  1277,  1277,  1280,
     926             :     1284,  1285,  1287,  1287,  1293,  1293,  1299,  1299,  1301,  1302,
     927             :     1305,  1305,  1307,  1309,  1312,  1315,  1318,  1326,  1328,  1329,
     928             :     1330,  1332,  1333,  1334,  1337,  1338,  1339,  1340,  1341,  1342,
     929             :     1343,  1344,  1345,  1346,  1347,  1348,  1349,  1354,  1355,  1356,
     930             :     1357,  1358,  1359,  1360,  1361,  1362,  1363,  1364,  1366,  1375,
     931             :     1377,  1378,  1380,  1381,  1382
     932             : };
     933             : #endif
     934             : 
     935             : #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
     936             : /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
     937             :    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
     938             : static const char *const yytname[] =
     939             : {
     940             :   "$end", "error", "$undefined", "EQTOKEN_HEADER", "EQTOKEN_ASCII",
     941             :   "EQTOKEN_GLOBAL", "EQTOKEN_CHANNEL_IATTR_HINT_STATISTICS",
     942             :   "EQTOKEN_CHANNEL_IATTR_HINT_SENDTOKEN",
     943             :   "EQTOKEN_CHANNEL_SATTR_DUMP_IMAGE", "EQTOKEN_COMPOUND_IATTR_STEREO_MODE",
     944             :   "EQTOKEN_COMPOUND_IATTR_STEREO_ANAGLYPH_LEFT_MASK",
     945             :   "EQTOKEN_COMPOUND_IATTR_STEREO_ANAGLYPH_RIGHT_MASK",
     946             :   "EQTOKEN_COMPOUND_IATTR_UPDATE_FOV", "EQTOKEN_CONNECTION_SATTR_FILENAME",
     947             :   "EQTOKEN_CONNECTION_SATTR_HOSTNAME",
     948             :   "EQTOKEN_CONNECTION_IATTR_BANDWIDTH", "EQTOKEN_CONNECTION_IATTR_TYPE",
     949             :   "EQTOKEN_CONNECTION_IATTR_PORT", "EQTOKEN_CONFIG_FATTR_EYE_BASE",
     950             :   "EQTOKEN_CONFIG_IATTR_ROBUSTNESS", "EQTOKEN_NODE_SATTR_LAUNCH_COMMAND",
     951             :   "EQTOKEN_NODE_CATTR_LAUNCH_COMMAND_QUOTE",
     952             :   "EQTOKEN_NODE_IATTR_THREAD_MODEL", "EQTOKEN_NODE_IATTR_HINT_AFFINITY",
     953             :   "EQTOKEN_NODE_IATTR_HINT_STATISTICS",
     954             :   "EQTOKEN_NODE_IATTR_LAUNCH_TIMEOUT", "EQTOKEN_PIPE_IATTR_HINT_THREAD",
     955             :   "EQTOKEN_PIPE_IATTR_HINT_AFFINITY", "EQTOKEN_VIEW_SATTR_DEFLECT_HOST",
     956             :   "EQTOKEN_WINDOW_IATTR_HINT_CORE_PROFILE",
     957             :   "EQTOKEN_WINDOW_IATTR_HINT_OPENGL_MAJOR",
     958             :   "EQTOKEN_WINDOW_IATTR_HINT_OPENGL_MINOR",
     959             :   "EQTOKEN_WINDOW_IATTR_HINT_STEREO",
     960             :   "EQTOKEN_WINDOW_IATTR_HINT_DOUBLEBUFFER",
     961             :   "EQTOKEN_WINDOW_IATTR_HINT_FULLSCREEN",
     962             :   "EQTOKEN_WINDOW_IATTR_HINT_DECORATION",
     963             :   "EQTOKEN_WINDOW_IATTR_HINT_SWAPSYNC",
     964             :   "EQTOKEN_WINDOW_IATTR_HINT_DRAWABLE",
     965             :   "EQTOKEN_WINDOW_IATTR_HINT_STATISTICS",
     966             :   "EQTOKEN_WINDOW_IATTR_HINT_SCREENSAVER",
     967             :   "EQTOKEN_WINDOW_IATTR_HINT_GRAB_POINTER",
     968             :   "EQTOKEN_WINDOW_IATTR_HINT_HEIGHT", "EQTOKEN_WINDOW_IATTR_HINT_WIDTH",
     969             :   "EQTOKEN_WINDOW_IATTR_PLANES_ACCUM",
     970             :   "EQTOKEN_WINDOW_IATTR_PLANES_ACCUM_ALPHA",
     971             :   "EQTOKEN_WINDOW_IATTR_PLANES_ALPHA", "EQTOKEN_WINDOW_IATTR_PLANES_COLOR",
     972             :   "EQTOKEN_WINDOW_IATTR_PLANES_DEPTH",
     973             :   "EQTOKEN_WINDOW_IATTR_PLANES_SAMPLES",
     974             :   "EQTOKEN_WINDOW_IATTR_PLANES_STENCIL", "EQTOKEN_SERVER",
     975             :   "EQTOKEN_CONFIG", "EQTOKEN_APPNODE", "EQTOKEN_NODE", "EQTOKEN_PIPE",
     976             :   "EQTOKEN_WINDOW", "EQTOKEN_ATTRIBUTES", "EQTOKEN_HINT_CORE_PROFILE",
     977             :   "EQTOKEN_HINT_OPENGL_MAJOR", "EQTOKEN_HINT_OPENGL_MINOR",
     978             :   "EQTOKEN_HINT_STEREO", "EQTOKEN_HINT_DOUBLEBUFFER",
     979             :   "EQTOKEN_HINT_FULLSCREEN", "EQTOKEN_HINT_DECORATION",
     980             :   "EQTOKEN_HINT_STATISTICS", "EQTOKEN_HINT_SENDTOKEN",
     981             :   "EQTOKEN_HINT_SWAPSYNC", "EQTOKEN_HINT_DRAWABLE", "EQTOKEN_HINT_THREAD",
     982             :   "EQTOKEN_HINT_AFFINITY", "EQTOKEN_HINT_SCREENSAVER",
     983             :   "EQTOKEN_HINT_GRAB_POINTER", "EQTOKEN_PLANES_COLOR",
     984             :   "EQTOKEN_PLANES_ALPHA", "EQTOKEN_PLANES_DEPTH", "EQTOKEN_PLANES_STENCIL",
     985             :   "EQTOKEN_PLANES_ACCUM", "EQTOKEN_PLANES_ACCUM_ALPHA",
     986             :   "EQTOKEN_PLANES_SAMPLES", "EQTOKEN_ON", "EQTOKEN_OFF", "EQTOKEN_AUTO",
     987             :   "EQTOKEN_FASTEST", "EQTOKEN_NICEST", "EQTOKEN_QUAD", "EQTOKEN_ANAGLYPH",
     988             :   "EQTOKEN_PASSIVE", "EQTOKEN_RED", "EQTOKEN_GREEN", "EQTOKEN_BLUE",
     989             :   "EQTOKEN_HORIZONTAL", "EQTOKEN_VERTICAL", "EQTOKEN_FRAMERATE",
     990             :   "EQTOKEN_CHANNEL", "EQTOKEN_OBSERVER", "EQTOKEN_LAYOUT", "EQTOKEN_VIEW",
     991             :   "EQTOKEN_CANVAS", "EQTOKEN_SEGMENT", "EQTOKEN_COMPOUND",
     992             :   "EQTOKEN_DFREQUALIZER", "EQTOKEN_FRAMERATEEQUALIZER",
     993             :   "EQTOKEN_LOADEQUALIZER", "EQTOKEN_TREEEQUALIZER",
     994             :   "EQTOKEN_MONITOREQUALIZER", "EQTOKEN_VIEWEQUALIZER",
     995             :   "EQTOKEN_TILEEQUALIZER", "EQTOKEN_DAMPING", "EQTOKEN_CONNECTION",
     996             :   "EQTOKEN_NAME", "EQTOKEN_TYPE", "EQTOKEN_TCPIP", "EQTOKEN_RSP",
     997             :   "EQTOKEN_RDMA", "EQTOKEN_UDT", "EQTOKEN_TEXTURE", "EQTOKEN_MEMORY",
     998             :   "EQTOKEN_FIXED", "EQTOKEN_RELATIVE_TO_ORIGIN",
     999             :   "EQTOKEN_RELATIVE_TO_OBSERVER", "EQTOKEN_HMD", "EQTOKEN_HOST",
    1000             :   "EQTOKEN_HOSTNAME", "EQTOKEN_INTERFACE", "EQTOKEN_LAUNCH_COMMAND",
    1001             :   "EQTOKEN_LAUNCH_COMMAND_QUOTE", "EQTOKEN_LAUNCH_TIMEOUT", "EQTOKEN_PORT",
    1002             :   "EQTOKEN_FILENAME", "EQTOKEN_TASK", "EQTOKEN_EYE", "EQTOKEN_EYE_BASE",
    1003             :   "EQTOKEN_EYE_LEFT", "EQTOKEN_EYE_CYCLOP", "EQTOKEN_EYE_RIGHT",
    1004             :   "EQTOKEN_FOCUS_DISTANCE", "EQTOKEN_FOCUS_MODE", "EQTOKEN_OPENCV_CAMERA",
    1005             :   "EQTOKEN_VRPN_TRACKER", "EQTOKEN_ROBUSTNESS", "EQTOKEN_THREAD_MODEL",
    1006             :   "EQTOKEN_ASYNC", "EQTOKEN_DRAW_SYNC", "EQTOKEN_LOCAL_SYNC",
    1007             :   "EQTOKEN_BUFFER", "EQTOKEN_CLEAR", "EQTOKEN_DRAW", "EQTOKEN_ASSEMBLE",
    1008             :   "EQTOKEN_READBACK", "EQTOKEN_COLOR", "EQTOKEN_DEPTH", "EQTOKEN_CYCLOP",
    1009             :   "EQTOKEN_LEFT", "EQTOKEN_RIGHT", "EQTOKEN_VIEWPORT", "EQTOKEN_RANGE",
    1010             :   "EQTOKEN_PERIOD", "EQTOKEN_PHASE", "EQTOKEN_PIXEL", "EQTOKEN_SUBPIXEL",
    1011             :   "EQTOKEN_BANDWIDTH", "EQTOKEN_DEVICE", "EQTOKEN_WALL",
    1012             :   "EQTOKEN_BOTTOM_LEFT", "EQTOKEN_BOTTOM_RIGHT", "EQTOKEN_TOP_LEFT",
    1013             :   "EQTOKEN_PROJECTION", "EQTOKEN_ORIGIN", "EQTOKEN_DISTANCE",
    1014             :   "EQTOKEN_FOV", "EQTOKEN_HPR", "EQTOKEN_LATENCY", "EQTOKEN_SWAPBARRIER",
    1015             :   "EQTOKEN_NVGROUP", "EQTOKEN_NVBARRIER", "EQTOKEN_OUTPUTFRAME",
    1016             :   "EQTOKEN_INPUTFRAME", "EQTOKEN_OUTPUTTILES", "EQTOKEN_INPUTTILES",
    1017             :   "EQTOKEN_STEREO_MODE", "EQTOKEN_STEREO_ANAGLYPH_LEFT_MASK",
    1018             :   "EQTOKEN_STEREO_ANAGLYPH_RIGHT_MASK", "EQTOKEN_UPDATE_FOV",
    1019             :   "EQTOKEN_PBUFFER", "EQTOKEN_FBO", "EQTOKEN_RGBA16F", "EQTOKEN_RGBA32F",
    1020             :   "EQTOKEN_MODE", "EQTOKEN_2D", "EQTOKEN_ASSEMBLE_ONLY_LIMIT",
    1021             :   "EQTOKEN_DB", "EQTOKEN_BOUNDARY", "EQTOKEN_RESISTANCE", "EQTOKEN_ZOOM",
    1022             :   "EQTOKEN_MONO", "EQTOKEN_STEREO", "EQTOKEN_STRING", "EQTOKEN_CHARACTER",
    1023             :   "EQTOKEN_FLOAT", "EQTOKEN_INTEGER", "EQTOKEN_UNSIGNED", "EQTOKEN_SIZE",
    1024             :   "EQTOKEN_CORE", "EQTOKEN_SOCKET", "EQTOKEN_DEFLECT_HOST",
    1025             :   "EQTOKEN_DUMP_IMAGE", "'{'", "'}'", "'['", "']'", "'('", "')'",
    1026             :   "$accept", "file", "header", "global", "globals", "connectionType",
    1027             :   "server", "$@1", "serverConnections", "serverConnection", "$@2",
    1028             :   "configs", "config", "$@3", "configFields", "configField",
    1029             :   "configAttributes", "configAttribute", "node", "renderNode", "$@4",
    1030             :   "appNode", "$@5", "nodeFields", "nodeField", "connection", "$@6",
    1031             :   "connectionFields", "connectionField", "nodeAttributes", "nodeAttribute",
    1032             :   "pipe", "$@7", "pipeFields", "pipeField", "pipeAttributes",
    1033             :   "pipeAttribute", "window", "$@8", "windowFields", "windowField",
    1034             :   "windowAttributes", "windowAttribute", "channel", "$@9", "channelFields",
    1035             :   "channelField", "channelAttributes", "channelAttribute", "observer",
    1036             :   "$@10", "observerFields", "observerField", "layout", "$@11",
    1037             :   "layoutFields", "layoutField", "view", "$@12", "viewFields", "viewField",
    1038             :   "$@13", "viewMode", "viewAttributes", "viewAttribute", "canvas", "$@14",
    1039             :   "canvasFields", "canvasField", "segment", "$@15", "segmentFields",
    1040             :   "segmentField", "$@16", "segmentEyes", "segumentEye", "compound", "$@17",
    1041             :   "compoundFields", "compoundField", "$@18", "$@19", "$@20",
    1042             :   "viewSegmentRef", "$@21", "viewSegmentRefFields", "viewSegmentRefField",
    1043             :   "compoundTasks", "compoundTask", "compoundEyes", "compoundEye",
    1044             :   "buffers", "buffer", "wall", "$@22", "wallFields", "wallField",
    1045             :   "wallType", "projection", "$@23", "projectionFields", "projectionField",
    1046             :   "equalizer", "dfrEqualizer", "$@24", "framerateEqualizer",
    1047             :   "loadEqualizer", "$@25", "treeEqualizer", "$@26", "monitorEqualizer",
    1048             :   "viewEqualizer", "tileEqualizer", "$@27", "dfrEqualizerFields",
    1049             :   "dfrEqualizerField", "loadEqualizerFields", "loadEqualizerField",
    1050             :   "loadEqualizerMode", "treeEqualizerFields", "treeEqualizerField",
    1051             :   "treeEqualizerMode", "tileEqualizerFields", "tileEqualizerField",
    1052             :   "swapBarrier", "$@28", "swapBarrierFields", "swapBarrierField",
    1053             :   "outputFrame", "$@29", "inputFrame", "$@30", "frameFields", "frameField",
    1054             :   "$@31", "frameType", "outputTiles", "$@32", "inputTiles", "$@33",
    1055             :   "tileQueueFields", "tileQueueField", "compoundAttributes",
    1056             :   "compoundAttribute", "viewport", "colorMask", "colorMaskBits",
    1057             :   "colorMaskBit", "IATTR", "STRING", "CHARACTER", "FLOAT", "INTEGER",
    1058             :   "UNSIGNED", 0
    1059             : };
    1060             : #endif
    1061             : 
    1062             : # ifdef YYPRINT
    1063             : /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
    1064             :    token YYLEX-NUM.  */
    1065             : static const yytype_uint16 yytoknum[] =
    1066             : {
    1067             :        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
    1068             :      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
    1069             :      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
    1070             :      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
    1071             :      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
    1072             :      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
    1073             :      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
    1074             :      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
    1075             :      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
    1076             :      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
    1077             :      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
    1078             :      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
    1079             :      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
    1080             :      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
    1081             :      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
    1082             :      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
    1083             :      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
    1084             :      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
    1085             :      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
    1086             :      445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
    1087             :      455,   456,   457,   458,   459,   460,   123,   125,    91,    93,
    1088             :       40,    41
    1089             : };
    1090             : # endif
    1091             : 
    1092             : /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
    1093             : static const yytype_uint16 yyr1[] =
    1094             : {
    1095             :        0,   212,   213,   213,   214,   214,   215,   215,   216,   216,
    1096             :      215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
    1097             :      215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
    1098             :      215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
    1099             :      215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
    1100             :      215,   215,   215,   215,   217,   217,   217,   217,   217,   219,
    1101             :      218,   220,   220,   222,   221,   223,   223,   225,   224,   226,
    1102             :      226,   227,   227,   227,   227,   227,   227,   227,   227,   228,
    1103             :      228,   229,   229,   230,   230,   232,   231,   234,   233,   235,
    1104             :      235,   236,   236,   236,   236,   236,   238,   237,   239,   239,
    1105             :      240,   240,   240,   240,   240,   240,   241,   241,   242,   242,
    1106             :      242,   242,   242,   242,   244,   243,   245,   245,   246,   246,
    1107             :      246,   246,   246,   246,   247,   247,   248,   248,   250,   249,
    1108             :      251,   251,   252,   252,   252,   252,   253,   253,   254,   254,
    1109             :      254,   254,   254,   254,   254,   254,   254,   254,   254,   254,
    1110             :      254,   254,   254,   254,   254,   254,   254,   256,   255,   257,
    1111             :      257,   258,   258,   258,   259,   259,   260,   260,   260,   262,
    1112             :      261,   263,   263,   264,   264,   264,   264,   264,   264,   264,
    1113             :      264,   264,   266,   265,   267,   267,   268,   268,   270,   269,
    1114             :      271,   271,   272,   272,   273,   272,   272,   272,   272,   272,
    1115             :      272,   274,   274,   275,   275,   276,   278,   277,   279,   279,
    1116             :      280,   280,   280,   280,   280,   280,   280,   280,   282,   281,
    1117             :      283,   283,   284,   284,   285,   284,   284,   284,   284,   284,
    1118             :      286,   286,   287,   287,   287,   289,   288,   290,   290,   291,
    1119             :      291,   291,   291,   292,   291,   293,   291,   294,   291,   291,
    1120             :      291,   291,   291,   291,   291,   291,   291,   291,   291,   291,
    1121             :      291,   291,   291,   291,   291,   296,   295,   297,   297,   298,
    1122             :      298,   298,   298,   298,   298,   298,   298,   299,   299,   300,
    1123             :      300,   300,   300,   301,   301,   302,   302,   302,   303,   303,
    1124             :      304,   304,   306,   305,   307,   307,   308,   308,   308,   308,
    1125             :      309,   309,   311,   310,   312,   312,   313,   313,   313,   313,
    1126             :      314,   314,   314,   314,   314,   314,   314,   316,   315,   317,
    1127             :      319,   318,   321,   320,   322,   323,   325,   324,   326,   326,
    1128             :      327,   327,   328,   328,   329,   329,   329,   329,   329,   329,
    1129             :      329,   330,   330,   330,   330,   331,   331,   332,   332,   332,
    1130             :      332,   332,   332,   333,   333,   333,   333,   334,   334,   335,
    1131             :      335,   337,   336,   338,   338,   339,   339,   339,   341,   340,
    1132             :      343,   342,   344,   344,   345,   345,   345,   346,   345,   345,
    1133             :      347,   347,   349,   348,   351,   350,   352,   352,   353,   353,
    1134             :      354,   354,   355,   355,   355,   355,   356,   357,   358,   358,
    1135             :      358,   359,   359,   359,   360,   360,   360,   360,   360,   360,
    1136             :      360,   360,   360,   360,   360,   360,   360,   360,   360,   360,
    1137             :      360,   360,   360,   360,   360,   360,   360,   360,   361,   362,
    1138             :      363,   363,   364,   364,   365
    1139             : };
    1140             : 
    1141             : /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
    1142             : static const yytype_uint8 yyr2[] =
    1143             : {
    1144             :        0,     2,     3,     3,     0,     3,     4,     0,     0,     2,
    1145             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    1146             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    1147             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    1148             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    1149             :        2,     2,     2,     2,     1,     1,     1,     1,     1,     0,
    1150             :        6,     0,     2,     0,     5,     1,     2,     0,     5,     0,
    1151             :        2,     1,     2,     1,     1,     1,     1,     2,     4,     0,
    1152             :        2,     2,     2,     1,     1,     0,     5,     0,     5,     0,
    1153             :        2,     2,     2,     1,     1,     4,     0,     5,     0,     2,
    1154             :        2,     2,     2,     2,     2,     2,     0,     2,     2,     2,
    1155             :        2,     2,     2,     2,     0,     5,     0,     2,     1,     4,
    1156             :        2,     2,     2,     2,     0,     2,     2,     2,     0,     5,
    1157             :        0,     2,     1,     4,     2,     2,     0,     2,     2,     2,
    1158             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    1159             :        2,     2,     2,     2,     2,     2,     2,     0,     5,     0,
    1160             :        2,     2,     4,     2,     0,     2,     2,     2,     2,     0,
    1161             :        5,     0,     2,     2,     2,     6,     6,     6,     2,     2,
    1162             :        2,     2,     0,     5,     0,     2,     2,     1,     0,     5,
    1163             :        0,     2,     4,     2,     0,     3,     2,     1,     1,     2,
    1164             :        2,     1,     1,     0,     2,     2,     0,     5,     0,     2,
    1165             :        2,     2,     1,     2,     2,     1,     1,     1,     0,     5,
    1166             :        0,     2,     2,     2,     0,     5,     2,     1,     1,     1,
    1167             :        0,     2,     1,     1,     1,     0,     5,     0,     2,     1,
    1168             :        2,     2,     2,     0,     5,     0,     5,     0,     5,     2,
    1169             :        5,     2,     2,     5,     7,     5,     1,     1,     1,     1,
    1170             :        1,     1,     1,     1,     4,     0,     4,     0,     2,     2,
    1171             :        2,     2,     2,     2,     2,     2,     2,     0,     2,     1,
    1172             :        1,     1,     1,     0,     2,     1,     1,     1,     0,     2,
    1173             :        1,     1,     0,     5,     0,     2,     6,     6,     6,     2,
    1174             :        1,     1,     0,     5,     0,     2,     6,     2,     5,     6,
    1175             :        1,     1,     1,     1,     1,     1,     1,     0,     5,     3,
    1176             :        0,     5,     0,     5,     3,     3,     0,     5,     0,     2,
    1177             :        2,     2,     0,     2,     2,     5,     2,     2,     2,     5,
    1178             :        2,     1,     1,     1,     1,     0,     2,     2,     5,     2,
    1179             :        2,     5,     2,     1,     1,     1,     1,     0,     2,     2,
    1180             :        5,     0,     5,     0,     2,     2,     2,     2,     0,     5,
    1181             :        0,     5,     0,     2,     2,     2,     2,     0,     5,     5,
    1182             :        1,     1,     0,     5,     0,     5,     0,     2,     2,     5,
    1183             :        0,     2,     2,     2,     2,     2,     6,     3,     0,     1,
    1184             :        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1185             :        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1186             :        1,     1,     1,     1,     1,     1,     2,     2,     1,     1,
    1187             :        1,     1,     1,     1,     1
    1188             : };
    1189             : 
    1190             : /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
    1191             :    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
    1192             :    means the default is an error.  */
    1193             : static const yytype_uint16 yydefact[] =
    1194             : {
    1195             :        4,     0,     0,     7,   430,   432,   434,     0,   431,   433,
    1196             :        1,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1197             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1198             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1199             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1200             :        0,     0,     0,     0,     0,     0,     0,     5,     8,   414,
    1201             :      404,   405,   406,   407,   409,   410,   411,   412,   408,   413,
    1202             :      422,   423,   424,   417,   418,   419,   416,   415,   420,   421,
    1203             :        0,     0,    46,   425,    47,   428,    52,    48,   398,    49,
    1204             :       50,    51,    13,    10,    14,    55,    54,    56,    57,    58,
    1205             :       11,    12,    15,    16,    17,   429,    18,    19,    20,    22,
    1206             :       21,    23,    24,    53,    25,    26,    27,    28,    29,    30,
    1207             :       31,    32,    33,    34,    35,    36,    37,    38,    43,    44,
    1208             :       40,    39,    41,    45,    42,     0,     0,     2,     3,     0,
    1209             :      426,   427,   401,   402,   403,     0,   399,    59,    67,     6,
    1210             :        9,   397,   400,    61,    69,     0,     0,     0,    62,     0,
    1211             :       65,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1212             :       68,    70,    71,    84,    83,    73,    74,    75,    76,    63,
    1213             :       60,    66,    87,    85,    79,   169,   182,   206,   235,    72,
    1214             :       77,    98,    89,    89,     0,   171,   184,   208,   237,     0,
    1215             :        0,     0,     0,     0,    78,    80,     0,     0,     0,     0,
    1216             :        0,     0,     0,     0,     0,     0,    64,    99,     0,     0,
    1217             :        0,     0,     0,    88,    90,    93,    94,    86,    81,    82,
    1218             :        0,     0,     0,     0,     0,     0,     0,     0,     0,   170,
    1219             :      172,     0,     0,   183,   185,   187,     0,     0,     0,     0,
    1220             :        0,     0,   207,   209,   217,   215,   216,   212,     0,     0,
    1221             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1222             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1223             :        0,     0,   236,   239,   238,   256,   257,   258,   310,   311,
    1224             :      312,   313,   314,   315,   316,   259,   260,   261,   262,   263,
    1225             :      100,   101,   102,   103,   105,   104,   114,   106,    96,    91,
    1226             :       92,   173,   174,     0,     0,     0,   178,   179,   180,   181,
    1227             :      188,   186,   214,   211,   213,   218,   210,   292,   302,   361,
    1228             :      390,   265,   242,   241,   317,     0,   320,   322,     0,     0,
    1229             :      326,   240,   243,   245,   247,     0,   249,     0,   251,   252,
    1230             :        0,     0,   368,   370,   382,   384,     0,   116,     0,    98,
    1231             :        0,     0,     0,   190,   220,   294,   304,   363,     0,   267,
    1232             :      328,   319,   332,   345,   324,   325,   357,   277,   283,   288,
    1233             :        0,     0,     0,     0,   372,   372,   386,   386,     0,     0,
    1234             :        0,     0,     0,     0,     0,     0,    95,   107,     0,     0,
    1235             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1236             :        0,   264,   391,     0,     0,     0,     0,     0,     0,     0,
    1237             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1238             :        0,     0,     0,     0,     0,     0,   115,   117,   118,   112,
    1239             :      113,   108,   109,   111,   110,    97,     0,     0,     0,     0,
    1240             :        0,     0,     0,   194,   189,   191,   197,   198,     0,     0,
    1241             :        0,     0,   219,   221,   228,   229,   227,     0,     0,     0,
    1242             :        0,   293,   295,     0,     0,     0,     0,   303,   305,     0,
    1243             :        0,     0,   362,   364,   392,   393,   394,   395,     0,     0,
    1244             :        0,     0,   266,   268,     0,     0,   318,   329,     0,     0,
    1245             :        0,     0,     0,   321,   333,     0,     0,     0,     0,   323,
    1246             :      346,     0,     0,   327,   358,   279,   280,   281,   282,   244,
    1247             :      278,   285,   286,   287,   246,   284,   290,   291,   248,   289,
    1248             :        0,   250,     0,   255,     0,     0,     0,     0,     0,   369,
    1249             :      373,   371,     0,     0,   383,   387,   385,   253,   128,   124,
    1250             :      120,   121,   123,   122,   175,   176,   177,   203,   199,   200,
    1251             :      193,   196,     0,   223,   222,   224,   226,   300,   301,   299,
    1252             :        0,     0,     0,     0,   307,     0,     0,   365,   366,   367,
    1253             :      273,   274,   275,   276,   269,   270,   271,   272,   331,   330,
    1254             :      334,   343,   344,   341,   342,   338,   336,     0,   337,     0,
    1255             :      340,   347,   355,   356,   353,   354,   350,     0,   349,     0,
    1256             :      352,   359,     0,     0,     0,   374,   380,   381,   375,   377,
    1257             :      376,     0,   388,     0,   130,     0,     0,   201,   202,   195,
    1258             :      230,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1259             :        0,     0,   396,   254,   288,     0,     0,     0,     0,     0,
    1260             :      119,   125,     0,   192,   204,     0,     0,     0,     0,     0,
    1261             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1262             :        0,     0,     0,     0,   129,   131,   132,   126,   127,   205,
    1263             :      232,   233,   234,   225,   231,     0,     0,     0,     0,   308,
    1264             :        0,   335,   339,   348,   351,   360,   378,   379,   389,   136,
    1265             :      157,   134,   135,   296,   297,   298,   306,   309,     0,   159,
    1266             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1267             :        0,     0,     0,     0,     0,     0,     0,     0,     0,   133,
    1268             :      137,     0,   138,   139,   140,   141,   142,   143,   144,   147,
    1269             :      145,   146,   148,   149,   150,   151,   152,   153,   154,   155,
    1270             :      156,     0,     0,     0,   158,   160,   164,   161,   163,     0,
    1271             :        0,     0,     0,   162,   165,   166,   167,   168
    1272             : };
    1273             : 
    1274             : /* YYDEFGOTO[NTERM-NUM].  */
    1275             : static const yytype_int16 yydefgoto[] =
    1276             : {
    1277             :       -1,     2,     3,    56,   139,   100,   137,   153,   155,   158,
    1278             :      191,   159,   138,   154,   156,   171,   194,   205,   172,   173,
    1279             :      193,   174,   192,   200,   224,   225,   359,   199,   217,   358,
    1280             :      397,   226,   357,   389,   437,   625,   651,   438,   624,   647,
    1281             :      675,   708,   730,   676,   709,   731,   755,   759,   764,   175,
    1282             :      195,   206,   240,   176,   196,   207,   244,   245,   363,   402,
    1283             :      455,   562,   629,   626,   654,   177,   197,   208,   253,   254,
    1284             :      364,   403,   463,   630,   655,   684,   178,   198,   209,   284,
    1285             :      377,   378,   379,   332,   369,   413,   493,   418,   520,   419,
    1286             :      525,   420,   529,   255,   365,   404,   472,   569,   256,   366,
    1287             :      405,   478,   287,   288,   370,   289,   290,   372,   291,   373,
    1288             :      292,   293,   294,   376,   414,   497,   415,   504,   595,   416,
    1289             :      510,   606,   417,   514,   257,   367,   406,   483,   296,   384,
    1290             :      297,   385,   425,   540,   644,   618,   298,   386,   299,   387,
    1291             :      427,   545,   368,   412,   346,    89,   145,   146,    82,    86,
    1292             :      106,     7,    83,     9
    1293             : };
    1294             : 
    1295             : /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    1296             :    STATE-NUM.  */
    1297             : #define YYPACT_NINF -390
    1298             : static const yytype_int16 yypact[] =
    1299             : {
    1300             :       46,    98,    67,  1195,  -390,  -390,  -390,    83,  -390,  -390,
    1301             :     -390,  -109,   345,   345,   -86,   345,   -91,   -91,   345,   -86,
    1302             :      -86,   -77,   326,   -77,    98,   345,   -86,   -58,   345,   345,
    1303             :      345,   -77,   345,   345,   -86,   345,   345,   345,   345,   345,
    1304             :      345,   345,   345,   345,   345,   345,   345,   345,   345,   345,
    1305             :      345,   345,   345,   345,   345,   345,    52,  -390,  -390,  -390,
    1306             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1307             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1308             :       89,    89,  -390,  -390,  -390,  -390,  -390,  -390,   222,  -390,
    1309             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1310             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1311             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1312             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1313             :     -390,  -390,  -390,  -390,  -390,   -75,   -63,  -390,  -390,  1081,
    1314             :     -390,  -390,  -390,  -390,  -390,    17,  -390,  -390,  -390,  -390,
    1315             :     -390,  -390,  -390,  -390,  -390,    32,   -43,   -56,  -390,   -44,
    1316             :     -390,   -30,   -26,   -11,    11,    21,    33,    65,   -86,   -77,
    1317             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1318             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1319             :     -390,  -390,  -390,  -390,   116,  -390,  -390,  -390,  -390,   180,
    1320             :       -1,     3,    98,   345,  -390,  -390,   144,   -88,    56,   213,
    1321             :      326,   -86,   -86,   -77,   -86,   -77,  -390,  -390,    68,    88,
    1322             :      114,   -86,   -86,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1323             :      -86,    98,   -47,   -20,    60,    98,   345,   345,   -86,  -390,
    1324             :     -390,   115,   -86,  -390,  -390,  -390,   -66,   118,   -86,   124,
    1325             :      125,   127,  -390,  -390,  -390,  -390,  -390,  -390,   128,   -97,
    1326             :      129,   135,   150,   157,   159,   160,   167,   -86,    96,   142,
    1327             :      166,   168,   176,   -77,   -77,   188,   190,   193,   195,   196,
    1328             :      198,   197,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1329             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1330             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1331             :     -390,  -390,  -390,    98,    98,    98,  -390,  -390,  -390,  -390,
    1332             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1333             :     -390,  -390,  -390,  -390,  -390,     2,  -390,  -390,    12,    41,
    1334             :     -390,  -390,  -390,  -390,  -390,    98,  -390,    98,  -390,  -390,
    1335             :      -77,   -77,  -390,  -390,  -390,  -390,    98,  -390,     1,  -390,
    1336             :       98,    98,    98,  -390,  -390,  -390,  -390,  -390,   266,  -390,
    1337             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1338             :       98,    98,   -77,   -77,  -390,  -390,  -390,  -390,    98,     5,
    1339             :      345,   345,   -86,   -58,   345,   345,  -390,  -390,   226,    98,
    1340             :       98,    98,     6,    49,   122,   282,     9,   345,   -91,   -91,
    1341             :      345,  -390,  -390,    40,    -6,    42,    50,    13,   214,   174,
    1342             :       -5,    98,    55,   -77,   204,    37,   151,    58,    66,   205,
    1343             :      212,   215,   -86,   -77,   168,   -77,  -390,  -390,  -390,  -390,
    1344             :     -390,  -390,  -390,  -390,  -390,  -390,   206,   210,   223,   216,
    1345             :      -67,   -86,   168,  -390,  -390,  -390,  -390,  -390,   -86,   -86,
    1346             :      233,   168,  -390,  -390,  -390,  -390,  -390,    85,   235,   246,
    1347             :      247,  -390,  -390,   252,    98,   253,   257,  -390,  -390,   -86,
    1348             :      345,   345,  -390,  -390,  -390,  -390,  -390,  -390,   -67,   -67,
    1349             :      -67,   -67,  -390,  -390,    98,    98,  -390,  -390,    98,   -17,
    1350             :       98,   -14,   147,  -390,  -390,    98,    62,   209,   271,  -390,
    1351             :     -390,   -86,   258,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1352             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1353             :       98,  -390,   -77,  -390,   -86,   185,   264,   168,   268,  -390,
    1354             :     -390,  -390,   -86,   272,  -390,  -390,  -390,  -390,  -390,  -390,
    1355             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1356             :     -390,  -390,   -39,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1357             :       98,    98,    98,    98,  -390,    98,    98,  -390,  -390,  -390,
    1358             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1359             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,   -77,  -390,   -77,
    1360             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,   -77,  -390,   -77,
    1361             :     -390,  -390,   -77,   225,   275,  -390,  -390,  -390,  -390,  -390,
    1362             :     -390,    98,  -390,   -77,  -390,     0,    36,  -390,  -390,  -390,
    1363             :     -390,    98,    98,    98,    98,    98,    98,   -77,   -77,   -77,
    1364             :      -77,   -77,  -390,  -390,  -390,    98,   -77,   -45,   345,   345,
    1365             :     -390,  -390,   -86,  -390,  -390,   186,    98,    98,    98,    98,
    1366             :      281,    98,   283,   284,   285,   286,   290,   143,   291,   292,
    1367             :      296,   298,   -86,   168,  -390,  -390,  -390,  -390,  -390,  -390,
    1368             :     -390,  -390,  -390,  -390,  -390,   297,   299,   300,   301,  -390,
    1369             :      302,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1370             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,    18,  -390,
    1371             :      345,   345,   345,   345,   345,   345,   345,   345,   345,   345,
    1372             :      345,   345,   345,   345,   345,   345,   345,   345,   345,  -390,
    1373             :     -390,   -38,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1374             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1375             :     -390,   310,   -86,   168,  -390,  -390,  -390,  -390,  -390,   -18,
    1376             :      345,   345,   -86,  -390,  -390,  -390,  -390,  -390
    1377             : };
    1378             : 
    1379             : /* YYPGOTO[NTERM-NUM].  */
    1380             : static const yytype_int16 yypgoto[] =
    1381             : {
    1382             :     -390,  -390,  -390,   119,  -390,   295,  -390,  -390,  -390,  -390,
    1383             :     -390,  -390,    15,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1384             :     -390,  -390,  -390,   288,  -390,  -390,  -390,   132,  -390,  -390,
    1385             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1386             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1387             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1388             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1389             :     -390,  -390,  -390,  -390,  -390,  -390,   308,  -390,  -390,  -390,
    1390             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1391             :     -390,  -137,  -390,  -206,  -390,  -390,  -390,  -390,  -203,  -390,
    1392             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1393             :     -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1394             :     -390,  -390,  -390,  -390,  -205,  -390,  -390,  -390,  -390,  -390,
    1395             :     -390,  -390,   134,  -390,  -390,  -390,  -390,  -390,  -390,  -390,
    1396             :      133,  -390,  -390,  -390,  -389,   -16,  -390,   376,   -13,    24,
    1397             :      130,   379,    97,   553
    1398             : };
    1399             : 
    1400             : /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    1401             :    positive, shift that token.  If negative, reduce the rule which
    1402             :    number is the opposite.  If zero, do what YYDEFACT says.
    1403             :    If YYTABLE_NINF, syntax error.  */
    1404             : #define YYTABLE_NINF -1
    1405             : static const yytype_uint16 yytable[] =
    1406             : {
    1407             :       84,    90,    87,   285,   295,    91,   286,   136,   241,   161,
    1408             :      162,   670,   103,   163,   322,   107,   108,   109,   751,   111,
    1409             :      112,   242,   114,   115,   116,   117,   118,   119,   120,   121,
    1410             :      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
    1411             :      132,   133,   134,    92,    93,   552,   760,   761,   671,     1,
    1412             :      104,   164,   165,   218,   166,   219,   167,   218,   113,   219,
    1413             :      430,   431,   449,   561,   672,   390,   168,    10,   648,   649,
    1414             :      391,   752,   566,   591,   592,   710,   711,   712,   713,   714,
    1415             :      715,   716,   717,   136,   718,   719,   494,    57,   720,   721,
    1416             :      722,   723,   724,   725,   726,   727,   728,    58,     8,    85,
    1417             :      450,   495,   135,   136,   142,   143,   144,   220,   221,   673,
    1418             :       85,   220,   221,   331,   432,   451,   753,    88,   479,   243,
    1419             :      222,     8,   511,     6,   222,   392,   393,   394,   169,    85,
    1420             :       85,   147,   433,     6,     6,   488,   489,   490,   491,   105,
    1421             :      157,   395,   458,   148,   526,   527,   534,   535,   620,   498,
    1422             :      179,   246,   602,   603,   247,   627,   628,   505,   459,   434,
    1423             :      452,   313,   674,   180,   170,   248,   435,   542,   249,   754,
    1424             :      160,   593,   250,   594,   181,   542,   182,   140,   141,   460,
    1425             :      183,   536,   480,   481,     4,     5,     6,   762,   314,   763,
    1426             :      229,   537,   189,   453,   597,   184,   456,   464,   466,   457,
    1427             :      465,   496,   567,   461,   528,   568,   223,   650,   396,   371,
    1428             :      227,   249,   436,   454,   512,   250,   482,   185,   249,   374,
    1429             :      513,   251,   250,   317,   318,   729,   151,   186,   251,   499,
    1430             :      538,   500,   467,   501,   502,   301,   302,   506,   304,   187,
    1431             :      652,   507,   508,   653,   539,   309,   310,   202,   375,   503,
    1432             :      604,   492,   605,   230,   311,   203,   462,   509,   150,   543,
    1433             :      534,   535,   319,   252,   531,   544,   321,   543,   315,   258,
    1434             :      323,   188,   326,   546,   306,   231,   232,   233,   234,   235,
    1435             :      236,   237,   238,   333,   702,   468,   469,   470,     5,     6,
    1436             :      210,   341,   526,   527,   307,   536,     4,     5,     6,     8,
    1437             :      616,   617,   211,   212,   342,   537,   259,   213,   214,   142,
    1438             :      143,   144,   167,   260,   261,   262,   263,   264,   265,   266,
    1439             :      308,   320,   267,   204,   325,   521,   522,   523,     8,   471,
    1440             :      327,   328,     8,   329,   330,   334,   210,   680,   681,   682,
    1441             :      215,   335,   268,   269,   538,     4,     5,     6,   211,   212,
    1442             :      343,   239,   696,   213,   214,   599,   336,   270,   541,   515,
    1443             :      516,   517,   518,   337,   758,   338,   339,   271,   272,   273,
    1444             :      274,   275,   276,   340,   344,   249,   345,   439,   440,   250,
    1445             :       95,   443,   444,   524,   347,   251,   215,   216,   277,   278,
    1446             :      279,   280,   485,   486,   484,   683,   350,   487,   351,   352,
    1447             :       59,   353,   354,   102,   355,   356,   281,     4,     5,     6,
    1448             :        8,     8,     8,   533,   547,   554,   441,   607,   548,   555,
    1449             :      282,   549,   557,   519,    60,    61,    62,    63,    64,    65,
    1450             :       66,    67,   556,   445,   642,    68,    69,    96,    97,    98,
    1451             :       99,   565,     8,   570,     8,   407,   408,   409,   410,   473,
    1452             :      474,   475,   476,     8,   571,   572,   550,     8,     8,     8,
    1453             :      573,   575,    70,    71,    72,   576,   612,   578,   579,     4,
    1454             :        5,     6,   619,   411,   558,   560,   621,     8,     8,   609,
    1455             :      623,   201,   563,   564,   643,     8,    73,    74,    75,   477,
    1456             :      689,   398,   691,   692,   693,   694,     8,     8,     8,   695,
    1457             :      697,   698,   699,   577,   700,   300,   703,   667,   704,   705,
    1458             :      706,   707,   580,   582,   584,   586,   756,   283,     8,   426,
    1459             :      428,   152,     0,   442,     0,     0,     0,     0,    76,    77,
    1460             :       78,    79,     0,     0,     0,   611,     0,     0,     0,     0,
    1461             :        0,     0,     0,     0,     5,     6,     0,    80,    81,     0,
    1462             :        0,     0,     0,     0,     0,     0,     0,     0,   615,     0,
    1463             :        0,     0,     0,     0,     0,     0,   622,     0,     0,     0,
    1464             :        0,     8,     0,     0,    94,     0,   101,     0,     0,     0,
    1465             :        0,   228,     0,     0,   110,     0,     0,     0,     0,     0,
    1466             :        0,     8,     8,     0,     0,     8,     0,     8,     8,     8,
    1467             :        0,     0,     8,     0,     8,     8,     0,     0,     0,     0,
    1468             :      312,     0,     0,     0,   316,     0,     0,     0,     0,     0,
    1469             :        0,     0,     0,     0,     0,     0,     0,     8,     0,     0,
    1470             :        0,     0,     0,     0,     0,   677,   678,     0,     0,     0,
    1471             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1472             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1473             :        0,     0,     0,     0,     0,     0,     0,     8,     8,     8,
    1474             :        8,     0,     8,     8,     0,     0,   679,     0,     0,     0,
    1475             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1476             :        0,     0,   360,   361,   362,     0,   701,   732,   733,   734,
    1477             :      735,   736,   737,   738,   739,   740,   741,   742,   743,   744,
    1478             :      745,   746,   747,   748,   749,   750,     0,     0,     8,     0,
    1479             :        0,     0,   190,     0,   380,     0,   381,     0,     8,     8,
    1480             :        8,     8,     8,     8,     0,   388,     0,     0,     0,   399,
    1481             :      400,   401,     8,     0,     0,     0,     0,   765,   766,     0,
    1482             :        0,     0,     0,     8,     8,     8,     8,     0,     8,   421,
    1483             :      422,     0,     0,     0,     0,     0,   303,   429,   305,     0,
    1484             :        0,     0,     0,     0,     0,     0,   757,     0,   446,   447,
    1485             :      448,     0,     0,     0,     0,     0,   767,     0,     0,     0,
    1486             :        0,     0,     0,     0,     0,     0,     0,     0,     0,   324,
    1487             :      530,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1488             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1489             :        0,     0,     0,     0,     0,     0,   348,   349,     0,     0,
    1490             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1491             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1492             :        0,     0,     0,   574,     0,     0,     0,     0,     0,     0,
    1493             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1494             :        0,     0,     0,   588,   589,     0,     0,   590,     0,   596,
    1495             :      598,   600,     0,     0,   601,     0,   608,   610,     0,     0,
    1496             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1497             :        0,     0,     0,   382,   383,     0,     0,     0,     0,   613,
    1498             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1499             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1500             :        0,     0,     0,     0,     0,   423,   424,     0,     0,     0,
    1501             :        0,     0,     0,     0,     0,     0,     0,     0,     0,   631,
    1502             :      632,   633,   634,     0,   635,   636,     0,     0,     0,     0,
    1503             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1504             :        0,     0,     0,     0,     0,     0,   532,     0,     0,     0,
    1505             :        0,     0,     0,     0,     0,     0,   551,     0,   553,     0,
    1506             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1507             :      645,     0,     0,   559,     0,     0,     0,     0,     0,     0,
    1508             :      656,   657,   658,   659,   660,   661,     0,     0,     0,     0,
    1509             :        0,     0,     0,     0,   668,     0,     0,     0,     0,     0,
    1510             :        0,     0,     0,     0,     0,   685,   686,   687,   688,     0,
    1511             :      690,   581,   583,   585,   587,     0,     0,     0,     0,     0,
    1512             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1513             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1514             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1515             :        0,     0,     0,     0,     0,   614,    11,    12,    13,    14,
    1516             :       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    1517             :       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
    1518             :       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
    1519             :       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
    1520             :       55,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1521             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1522             :      637,     0,   638,     0,     0,     0,     0,     0,     0,     0,
    1523             :      639,     0,   640,     0,     0,   641,     0,     0,     0,     0,
    1524             :        0,     0,     0,     0,     0,     0,   646,     0,     0,     0,
    1525             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1526             :      662,   663,   664,   665,   666,     0,     0,     0,     0,   669,
    1527             :       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    1528             :       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
    1529             :       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
    1530             :       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
    1531             :       51,    52,    53,    54,    55,     0,     0,     0,     0,     0,
    1532             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1533             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1534             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1535             :        0,     0,     0,     0,     0,     0,     0,     0,   149
    1536             : };
    1537             : 
    1538             : static const yytype_int16 yycheck[] =
    1539             : {
    1540             :       13,    17,    15,   209,   209,    18,   209,    51,    96,    52,
    1541             :       53,    56,    25,    56,    80,    28,    29,    30,    56,    32,
    1542             :       33,   109,    35,    36,    37,    38,    39,    40,    41,    42,
    1543             :       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
    1544             :       53,    54,    55,    19,    20,   434,    64,    65,    93,     3,
    1545             :       26,    94,    95,    54,    97,    56,    99,    54,    34,    56,
    1546             :       55,    56,    56,   452,   109,    64,   109,     0,    68,    69,
    1547             :       69,   109,   461,    90,    91,    57,    58,    59,    60,    61,
    1548             :       62,    63,    64,    51,    66,    67,    92,     4,    70,    71,
    1549             :       72,    73,    74,    75,    76,    77,    78,   206,     1,   196,
    1550             :       94,   107,    50,    51,    87,    88,    89,   108,   109,   154,
    1551             :      196,   108,   109,   210,   109,   109,   154,   208,   109,   207,
    1552             :      121,    24,   109,   200,   121,   124,   125,   126,   171,   196,
    1553             :      196,   206,   127,   200,   200,    95,    96,    97,    98,   197,
    1554             :      108,   140,    93,   206,   149,   150,   109,   110,   537,   107,
    1555             :      206,    95,    90,    91,    98,   194,   195,   107,   109,   154,
    1556             :      154,   208,   207,   207,   207,   109,   161,   109,   162,   207,
    1557             :      155,   188,   166,   190,   159,   109,   206,    80,    81,   130,
    1558             :      206,   144,   173,   174,   198,   199,   200,   205,   208,   207,
    1559             :      203,   154,   168,   187,   208,   206,   402,   403,   403,   402,
    1560             :      403,   207,   117,   154,   209,   120,   207,   207,   207,   207,
    1561             :      207,   162,   207,   207,   201,   166,   207,   206,   162,   207,
    1562             :      207,   172,   166,   236,   237,   207,   209,   206,   172,   187,
    1563             :      193,   189,   110,   191,   192,   211,   212,   187,   214,   206,
    1564             :      204,   191,   192,   207,   207,   221,   222,   131,   207,   207,
    1565             :      188,   211,   190,   109,   230,   139,   207,   207,   139,   201,
    1566             :      109,   110,   238,   207,   209,   207,   242,   201,   208,    56,
    1567             :      246,   206,   248,   207,   206,   131,   132,   133,   134,   135,
    1568             :      136,   137,   138,   259,   673,   163,   164,   165,   199,   200,
    1569             :      110,   267,   149,   150,   206,   144,   198,   199,   200,   202,
    1570             :      115,   116,   122,   123,   208,   154,    93,   127,   128,    87,
    1571             :       88,    89,    99,   100,   101,   102,   103,   104,   105,   106,
    1572             :      206,   206,   109,   207,   206,   151,   152,   153,   231,   207,
    1573             :      206,   206,   235,   206,   206,   206,   110,   151,   152,   153,
    1574             :      160,   206,   129,   130,   193,   198,   199,   200,   122,   123,
    1575             :      208,   207,   209,   127,   128,   208,   206,   144,   207,   145,
    1576             :      146,   147,   148,   206,   753,   206,   206,   154,   155,   156,
    1577             :      157,   158,   159,   206,   208,   162,   208,   390,   391,   166,
    1578             :       54,   394,   395,   209,   208,   172,   160,   207,   175,   176,
    1579             :      177,   178,   408,   409,   407,   209,   208,   410,   208,   206,
    1580             :       55,   206,   206,    24,   206,   208,   193,   198,   199,   200,
    1581             :      313,   314,   315,   209,   209,   209,   392,   208,   206,   209,
    1582             :      207,   206,   206,   209,    79,    80,    81,    82,    83,    84,
    1583             :       85,    86,   209,   207,   209,    90,    91,   111,   112,   113,
    1584             :      114,   208,   345,   208,   347,   179,   180,   181,   182,   167,
    1585             :      168,   169,   170,   356,   208,   208,   432,   360,   361,   362,
    1586             :      208,   208,   117,   118,   119,   208,   208,   480,   481,   198,
    1587             :      199,   200,   208,   207,   450,   451,   208,   380,   381,   208,
    1588             :      208,   193,   458,   459,   209,   388,   141,   142,   143,   207,
    1589             :      209,   359,   209,   209,   209,   209,   399,   400,   401,   209,
    1590             :      209,   209,   206,   479,   206,   210,   209,   644,   209,   209,
    1591             :      209,   209,   488,   489,   490,   491,   206,   209,   421,   385,
    1592             :      387,   145,    -1,   393,    -1,    -1,    -1,    -1,   183,   184,
    1593             :      185,   186,    -1,    -1,    -1,   511,    -1,    -1,    -1,    -1,
    1594             :       -1,    -1,    -1,    -1,   199,   200,    -1,   202,   203,    -1,
    1595             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   534,    -1,
    1596             :       -1,    -1,    -1,    -1,    -1,    -1,   542,    -1,    -1,    -1,
    1597             :       -1,   474,    -1,    -1,    21,    -1,    23,    -1,    -1,    -1,
    1598             :       -1,   202,    -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,
    1599             :       -1,   494,   495,    -1,    -1,   498,    -1,   500,   501,   502,
    1600             :       -1,    -1,   505,    -1,   507,   508,    -1,    -1,    -1,    -1,
    1601             :      231,    -1,    -1,    -1,   235,    -1,    -1,    -1,    -1,    -1,
    1602             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,    -1,
    1603             :       -1,    -1,    -1,    -1,    -1,   648,   649,    -1,    -1,    -1,
    1604             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1605             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1606             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,   570,   571,   572,
    1607             :      573,    -1,   575,   576,    -1,    -1,   652,    -1,    -1,    -1,
    1608             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1609             :       -1,    -1,   313,   314,   315,    -1,   672,   710,   711,   712,
    1610             :      713,   714,   715,   716,   717,   718,   719,   720,   721,   722,
    1611             :      723,   724,   725,   726,   727,   728,    -1,    -1,   621,    -1,
    1612             :       -1,    -1,   169,    -1,   345,    -1,   347,    -1,   631,   632,
    1613             :      633,   634,   635,   636,    -1,   356,    -1,    -1,    -1,   360,
    1614             :      361,   362,   645,    -1,    -1,    -1,    -1,   760,   761,    -1,
    1615             :       -1,    -1,    -1,   656,   657,   658,   659,    -1,   661,   380,
    1616             :      381,    -1,    -1,    -1,    -1,    -1,   213,   388,   215,    -1,
    1617             :       -1,    -1,    -1,    -1,    -1,    -1,   752,    -1,   399,   400,
    1618             :      401,    -1,    -1,    -1,    -1,    -1,   762,    -1,    -1,    -1,
    1619             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   246,
    1620             :      421,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1621             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1622             :       -1,    -1,    -1,    -1,    -1,    -1,   273,   274,    -1,    -1,
    1623             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1624             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1625             :       -1,    -1,    -1,   474,    -1,    -1,    -1,    -1,    -1,    -1,
    1626             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1627             :       -1,    -1,    -1,   494,   495,    -1,    -1,   498,    -1,   500,
    1628             :      501,   502,    -1,    -1,   505,    -1,   507,   508,    -1,    -1,
    1629             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1630             :       -1,    -1,    -1,   350,   351,    -1,    -1,    -1,    -1,   530,
    1631             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1632             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1633             :       -1,    -1,    -1,    -1,    -1,   382,   383,    -1,    -1,    -1,
    1634             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   570,
    1635             :      571,   572,   573,    -1,   575,   576,    -1,    -1,    -1,    -1,
    1636             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1637             :       -1,    -1,    -1,    -1,    -1,    -1,   423,    -1,    -1,    -1,
    1638             :       -1,    -1,    -1,    -1,    -1,    -1,   433,    -1,   435,    -1,
    1639             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1640             :      621,    -1,    -1,   450,    -1,    -1,    -1,    -1,    -1,    -1,
    1641             :      631,   632,   633,   634,   635,   636,    -1,    -1,    -1,    -1,
    1642             :       -1,    -1,    -1,    -1,   645,    -1,    -1,    -1,    -1,    -1,
    1643             :       -1,    -1,    -1,    -1,    -1,   656,   657,   658,   659,    -1,
    1644             :      661,   488,   489,   490,   491,    -1,    -1,    -1,    -1,    -1,
    1645             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1646             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1647             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1648             :       -1,    -1,    -1,    -1,    -1,   532,     5,     6,     7,     8,
    1649             :        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    1650             :       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    1651             :       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
    1652             :       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
    1653             :       49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1654             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1655             :      597,    -1,   599,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1656             :      607,    -1,   609,    -1,    -1,   612,    -1,    -1,    -1,    -1,
    1657             :       -1,    -1,    -1,    -1,    -1,    -1,   623,    -1,    -1,    -1,
    1658             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1659             :      637,   638,   639,   640,   641,    -1,    -1,    -1,    -1,   646,
    1660             :        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    1661             :       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    1662             :       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
    1663             :       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
    1664             :       45,    46,    47,    48,    49,    -1,    -1,    -1,    -1,    -1,
    1665             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1666             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1667             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1668             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   207
    1669             : };
    1670             : 
    1671             : /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    1672             :    symbol of state STATE-NUM.  */
    1673             : static const yytype_uint16 yystos[] =
    1674             : {
    1675             :        0,     3,   213,   214,   198,   199,   200,   363,   364,   365,
    1676             :        0,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    1677             :       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    1678             :       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
    1679             :       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
    1680             :       44,    45,    46,    47,    48,    49,   215,     4,   206,    55,
    1681             :       79,    80,    81,    82,    83,    84,    85,    86,    90,    91,
    1682             :      117,   118,   119,   141,   142,   143,   183,   184,   185,   186,
    1683             :      202,   203,   360,   364,   360,   196,   361,   360,   208,   357,
    1684             :      357,   360,   361,   361,   365,    54,   111,   112,   113,   114,
    1685             :      217,   365,   363,   360,   361,   197,   362,   360,   360,   360,
    1686             :      365,   360,   360,   361,   360,   360,   360,   360,   360,   360,
    1687             :      360,   360,   360,   360,   360,   360,   360,   360,   360,   360,
    1688             :      360,   360,   360,   360,   360,    50,    51,   218,   224,   216,
    1689             :      364,   364,    87,    88,    89,   358,   359,   206,   206,   207,
    1690             :      215,   209,   359,   219,   225,   220,   226,   108,   221,   223,
    1691             :      224,    52,    53,    56,    94,    95,    97,    99,   109,   171,
    1692             :      207,   227,   230,   231,   233,   261,   265,   277,   288,   206,
    1693             :      207,   224,   206,   206,   206,   206,   206,   206,   206,   361,
    1694             :      365,   222,   234,   232,   228,   262,   266,   278,   289,   239,
    1695             :      235,   235,   131,   139,   207,   229,   263,   267,   279,   290,
    1696             :      110,   122,   123,   127,   128,   160,   207,   240,    54,    56,
    1697             :      108,   109,   121,   207,   236,   237,   243,   207,   363,   360,
    1698             :      109,   131,   132,   133,   134,   135,   136,   137,   138,   207,
    1699             :      264,    96,   109,   207,   268,   269,    95,    98,   109,   162,
    1700             :      166,   172,   207,   280,   281,   305,   310,   336,    56,    93,
    1701             :      100,   101,   102,   103,   104,   105,   106,   109,   129,   130,
    1702             :      144,   154,   155,   156,   157,   158,   159,   175,   176,   177,
    1703             :      178,   193,   207,   288,   291,   305,   310,   314,   315,   317,
    1704             :      318,   320,   322,   323,   324,   336,   340,   342,   348,   350,
    1705             :      217,   361,   361,   365,   361,   365,   206,   206,   206,   361,
    1706             :      361,   361,   363,   208,   208,   208,   363,   360,   360,   361,
    1707             :      206,   361,    80,   361,   365,   206,   361,   206,   206,   206,
    1708             :      206,   210,   295,   361,   206,   206,   206,   206,   206,   206,
    1709             :      206,   361,   208,   208,   208,   208,   356,   208,   365,   365,
    1710             :      208,   208,   206,   206,   206,   206,   208,   244,   241,   238,
    1711             :      363,   363,   363,   270,   282,   306,   311,   337,   354,   296,
    1712             :      316,   207,   319,   321,   207,   207,   325,   292,   293,   294,
    1713             :      363,   363,   365,   365,   341,   343,   349,   351,   363,   245,
    1714             :       64,    69,   124,   125,   126,   140,   207,   242,   239,   363,
    1715             :      363,   363,   271,   283,   307,   312,   338,   179,   180,   181,
    1716             :      182,   207,   355,   297,   326,   328,   331,   334,   299,   301,
    1717             :      303,   363,   363,   365,   365,   344,   344,   352,   352,   363,
    1718             :       55,    56,   109,   127,   154,   161,   207,   246,   249,   360,
    1719             :      360,   361,   362,   360,   360,   207,   363,   363,   363,    56,
    1720             :       94,   109,   154,   187,   207,   272,   305,   310,    93,   109,
    1721             :      130,   154,   207,   284,   305,   310,   336,   110,   163,   164,
    1722             :      165,   207,   308,   167,   168,   169,   170,   207,   313,   109,
    1723             :      173,   174,   207,   339,   360,   357,   357,   360,    95,    96,
    1724             :       97,    98,   211,   298,    92,   107,   207,   327,   107,   187,
    1725             :      189,   191,   192,   207,   329,   107,   187,   191,   192,   207,
    1726             :      332,   109,   201,   207,   335,   145,   146,   147,   148,   209,
    1727             :      300,   151,   152,   153,   209,   302,   149,   150,   209,   304,
    1728             :      363,   209,   365,   209,   109,   110,   144,   154,   193,   207,
    1729             :      345,   207,   109,   201,   207,   353,   207,   209,   206,   206,
    1730             :      361,   365,   356,   365,   209,   209,   209,   206,   361,   365,
    1731             :      361,   356,   273,   361,   361,   208,   356,   117,   120,   309,
    1732             :      208,   208,   208,   208,   363,   208,   208,   361,   360,   360,
    1733             :      361,   365,   361,   365,   361,   365,   361,   365,   363,   363,
    1734             :      363,    90,    91,   188,   190,   330,   363,   208,   363,   208,
    1735             :      363,   363,    90,    91,   188,   190,   333,   208,   363,   208,
    1736             :      363,   361,   208,   363,   365,   361,   115,   116,   347,   208,
    1737             :      356,   208,   361,   208,   250,   247,   275,   194,   195,   274,
    1738             :      285,   363,   363,   363,   363,   363,   363,   365,   365,   365,
    1739             :      365,   365,   209,   209,   346,   363,   365,   251,    68,    69,
    1740             :      207,   248,   204,   207,   276,   286,   363,   363,   363,   363,
    1741             :      363,   363,   365,   365,   365,   365,   365,   303,   363,   365,
    1742             :       56,    93,   109,   154,   207,   252,   255,   360,   360,   361,
    1743             :      151,   152,   153,   209,   287,   363,   363,   363,   363,   209,
    1744             :      363,   209,   209,   209,   209,   209,   209,   209,   209,   206,
    1745             :      206,   361,   356,   209,   209,   209,   209,   209,   253,   256,
    1746             :       57,    58,    59,    60,    61,    62,    63,    64,    66,    67,
    1747             :       70,    71,    72,    73,    74,    75,    76,    77,    78,   207,
    1748             :      254,   257,   360,   360,   360,   360,   360,   360,   360,   360,
    1749             :      360,   360,   360,   360,   360,   360,   360,   360,   360,   360,
    1750             :      360,    56,   109,   154,   207,   258,   206,   361,   356,   259,
    1751             :       64,    65,   205,   207,   260,   360,   360,   361
    1752             : };
    1753             : 
    1754             : #define yyerrok         (yyerrstatus = 0)
    1755             : #define yyclearin       (yychar = YYEMPTY)
    1756             : #define YYEMPTY         (-2)
    1757             : #define YYEOF           0
    1758             : 
    1759             : #define YYACCEPT        goto yyacceptlab
    1760             : #define YYABORT         goto yyabortlab
    1761             : #define YYERROR         goto yyerrorlab
    1762             : 
    1763             : 
    1764             : /* Like YYERROR except do call yyerror.  This remains here temporarily
    1765             :    to ease the transition to the new meaning of YYERROR, for GCC.
    1766             :    Once GCC version 2 has supplanted version 1, this can go.  */
    1767             : 
    1768             : #define YYFAIL          goto yyerrlab
    1769             : 
    1770             : #define YYRECOVERING()  (!!yyerrstatus)
    1771             : 
    1772             : #define YYBACKUP(Token, Value)                                  \
    1773             : do                                                              \
    1774             :   if (yychar == YYEMPTY && yylen == 1)                          \
    1775             :     {                                                           \
    1776             :       yychar = (Token);                                         \
    1777             :       yylval = (Value);                                         \
    1778             :       yytoken = YYTRANSLATE (yychar);                           \
    1779             :       YYPOPSTACK (1);                                           \
    1780             :       goto yybackup;                                            \
    1781             :     }                                                           \
    1782             :   else                                                          \
    1783             :     {                                                           \
    1784             :       yyerror (YY_("syntax error: cannot back up")); \
    1785             :       YYERROR;                                                  \
    1786             :     }                                                           \
    1787             : while (YYID (0))
    1788             : 
    1789             : 
    1790             : #define YYTERROR        1
    1791             : #define YYERRCODE       256
    1792             : 
    1793             : 
    1794             : /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
    1795             :    If N is 0, then set CURRENT to the empty location which ends
    1796             :    the previous symbol: RHS[0] (always defined).  */
    1797             : 
    1798             : #define YYRHSLOC(Rhs, K) ((Rhs)[K])
    1799             : #ifndef YYLLOC_DEFAULT
    1800             : # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
    1801             :     do                                                                  \
    1802             :       if (YYID (N))                                                    \
    1803             :         {                                                               \
    1804             :           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
    1805             :           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
    1806             :           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
    1807             :           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
    1808             :         }                                                               \
    1809             :       else                                                              \
    1810             :         {                                                               \
    1811             :           (Current).first_line   = (Current).last_line   =              \
    1812             :             YYRHSLOC (Rhs, 0).last_line;                                \
    1813             :           (Current).first_column = (Current).last_column =              \
    1814             :             YYRHSLOC (Rhs, 0).last_column;                              \
    1815             :         }                                                               \
    1816             :     while (YYID (0))
    1817             : #endif
    1818             : 
    1819             : 
    1820             : /* YY_LOCATION_PRINT -- Print the location on the stream.
    1821             :    This macro was not mandated originally: define only if we know
    1822             :    we won't break user code: when these are the locations we know.  */
    1823             : 
    1824             : #ifndef YY_LOCATION_PRINT
    1825             : # if YYLTYPE_IS_TRIVIAL
    1826             : #  define YY_LOCATION_PRINT(File, Loc)                  \
    1827             :      fprintf (File, "%d.%d-%d.%d",                    \
    1828             :               (Loc).first_line, (Loc).first_column,     \
    1829             :               (Loc).last_line,  (Loc).last_column)
    1830             : # else
    1831             : #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
    1832             : # endif
    1833             : #endif
    1834             : 
    1835             : 
    1836             : /* YYLEX -- calling `yylex' with the right arguments.  */
    1837             : 
    1838             : #ifdef YYLEX_PARAM
    1839             : # define YYLEX yylex (YYLEX_PARAM)
    1840             : #else
    1841             : # define YYLEX yylex ()
    1842             : #endif
    1843             : 
    1844             : /* Enable debugging if requested.  */
    1845             : #if YYDEBUG
    1846             : 
    1847             : # ifndef YYFPRINTF
    1848             : #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
    1849             : #  define YYFPRINTF fprintf
    1850             : # endif
    1851             : 
    1852             : # define YYDPRINTF(Args)                        \
    1853             : do {                                            \
    1854             :   if (yydebug)                                  \
    1855             :     YYFPRINTF Args;                             \
    1856             : } while (YYID (0))
    1857             : 
    1858             : # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
    1859             : do {                                                                      \
    1860             :   if (yydebug)                                                            \
    1861             :     {                                                                     \
    1862             :       YYFPRINTF (stderr, "%s ", Title);                                         \
    1863             :       yy_symbol_print (stderr,                                            \
    1864             :                   Type, Value); \
    1865             :       YYFPRINTF (stderr, "\n");                                                 \
    1866             :     }                                                                     \
    1867             : } while (YYID (0))
    1868             : 
    1869             : 
    1870             : /*--------------------------------.
    1871             : | Print this symbol on YYOUTPUT.  |
    1872             : `--------------------------------*/
    1873             : 
    1874             : /*ARGSUSED*/
    1875             : #if (defined __STDC__ || defined __C99__FUNC__ \
    1876             :      || defined __cplusplus || defined _MSC_VER)
    1877             : static void
    1878             : yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
    1879             : #else
    1880             : static void
    1881             : yy_symbol_value_print (yyoutput, yytype, yyvaluep)
    1882             :     FILE *yyoutput;
    1883             :     int yytype;
    1884             :     YYSTYPE const * const yyvaluep;
    1885             : #endif
    1886             : {
    1887             :   if (!yyvaluep)
    1888             :     return;
    1889             : # ifdef YYPRINT
    1890             :   if (yytype < YYNTOKENS)
    1891             :     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
    1892             : # else
    1893             :   YYUSE (yyoutput);
    1894             : # endif
    1895             :   switch (yytype)
    1896             :     {
    1897             :       default:
    1898             :         break;
    1899             :     }
    1900             : }
    1901             : 
    1902             : 
    1903             : /*--------------------------------.
    1904             : | Print this symbol on YYOUTPUT.  |
    1905             : `--------------------------------*/
    1906             : 
    1907             : #if (defined __STDC__ || defined __C99__FUNC__ \
    1908             :      || defined __cplusplus || defined _MSC_VER)
    1909             : static void
    1910             : yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
    1911             : #else
    1912             : static void
    1913             : yy_symbol_print (yyoutput, yytype, yyvaluep)
    1914             :     FILE *yyoutput;
    1915             :     int yytype;
    1916             :     YYSTYPE const * const yyvaluep;
    1917             : #endif
    1918             : {
    1919             :   if (yytype < YYNTOKENS)
    1920             :     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
    1921             :   else
    1922             :     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
    1923             : 
    1924             :   yy_symbol_value_print (yyoutput, yytype, yyvaluep);
    1925             :   YYFPRINTF (yyoutput, ")");
    1926             : }
    1927             : 
    1928             : /*------------------------------------------------------------------.
    1929             : | yy_stack_print -- Print the state stack from its BOTTOM up to its |
    1930             : | TOP (included).                                                   |
    1931             : `------------------------------------------------------------------*/
    1932             : 
    1933             : #if (defined __STDC__ || defined __C99__FUNC__ \
    1934             :      || defined __cplusplus || defined _MSC_VER)
    1935             : static void
    1936             : yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
    1937             : #else
    1938             : static void
    1939             : yy_stack_print (yybottom, yytop)
    1940             :     yytype_int16 *yybottom;
    1941             :     yytype_int16 *yytop;
    1942             : #endif
    1943             : {
    1944             :   YYFPRINTF (stderr, "Stack now");
    1945             :   for (; yybottom <= yytop; yybottom++)
    1946             :     {
    1947             :       int yybot = *yybottom;
    1948             :       YYFPRINTF (stderr, " %d", yybot);
    1949             :     }
    1950             :   YYFPRINTF (stderr, "\n");
    1951             : }
    1952             : 
    1953             : # define YY_STACK_PRINT(Bottom, Top)                            \
    1954             : do {                                                            \
    1955             :   if (yydebug)                                                  \
    1956             :     yy_stack_print ((Bottom), (Top));                           \
    1957             : } while (YYID (0))
    1958             : 
    1959             : 
    1960             : /*------------------------------------------------.
    1961             : | Report that the YYRULE is going to be reduced.  |
    1962             : `------------------------------------------------*/
    1963             : 
    1964             : #if (defined __STDC__ || defined __C99__FUNC__ \
    1965             :      || defined __cplusplus || defined _MSC_VER)
    1966             : static void
    1967             : yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
    1968             : #else
    1969             : static void
    1970             : yy_reduce_print (yyvsp, yyrule)
    1971             :     YYSTYPE *yyvsp;
    1972             :     int yyrule;
    1973             : #endif
    1974             : {
    1975             :   int yynrhs = yyr2[yyrule];
    1976             :   int yyi;
    1977             :   unsigned long int yylno = yyrline[yyrule];
    1978             :   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
    1979             :              yyrule - 1, yylno);
    1980             :   /* The symbols being reduced.  */
    1981             :   for (yyi = 0; yyi < yynrhs; yyi++)
    1982             :     {
    1983             :       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
    1984             :       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
    1985             :                        &(yyvsp[(yyi + 1) - (yynrhs)])
    1986             :                                        );
    1987             :       YYFPRINTF (stderr, "\n");
    1988             :     }
    1989             : }
    1990             : 
    1991             : # define YY_REDUCE_PRINT(Rule)          \
    1992             : do {                                    \
    1993             :   if (yydebug)                          \
    1994             :     yy_reduce_print (yyvsp, Rule); \
    1995             : } while (YYID (0))
    1996             : 
    1997             : /* Nonzero means print parse trace.  It is left uninitialized so that
    1998             :    multiple parsers can coexist.  */
    1999             : int yydebug;
    2000             : #else /* !YYDEBUG */
    2001             : # define YYDPRINTF(Args)
    2002             : # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
    2003             : # define YY_STACK_PRINT(Bottom, Top)
    2004             : # define YY_REDUCE_PRINT(Rule)
    2005             : #endif /* !YYDEBUG */
    2006             : 
    2007             : 
    2008             : /* YYINITDEPTH -- initial size of the parser's stacks.  */
    2009             : #ifndef YYINITDEPTH
    2010             : # define YYINITDEPTH 200
    2011             : #endif
    2012             : 
    2013             : /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
    2014             :    if the built-in stack extension method is used).
    2015             : 
    2016             :    Do not make this value too large; the results are undefined if
    2017             :    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
    2018             :    evaluated with infinite-precision integer arithmetic.  */
    2019             : 
    2020             : #ifndef YYMAXDEPTH
    2021             : # define YYMAXDEPTH 10000
    2022             : #endif
    2023             : 
    2024             : 
    2025             : 
    2026             : #if YYERROR_VERBOSE
    2027             : 
    2028             : # ifndef yystrlen
    2029             : #  if defined __GLIBC__ && defined _STRING_H
    2030             : #   define yystrlen strlen
    2031             : #  else
    2032             : /* Return the length of YYSTR.  */
    2033             : #if (defined __STDC__ || defined __C99__FUNC__ \
    2034             :      || defined __cplusplus || defined _MSC_VER)
    2035             : static YYSIZE_T
    2036             : yystrlen (const char *yystr)
    2037             : #else
    2038             : static YYSIZE_T
    2039             : yystrlen (yystr)
    2040             :     const char *yystr;
    2041             : #endif
    2042             : {
    2043             :   YYSIZE_T yylen;
    2044             :   for (yylen = 0; yystr[yylen]; yylen++)
    2045             :     continue;
    2046             :   return yylen;
    2047             : }
    2048             : #  endif
    2049             : # endif
    2050             : 
    2051             : # ifndef yystpcpy
    2052             : #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
    2053             : #   define yystpcpy stpcpy
    2054             : #  else
    2055             : /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
    2056             :    YYDEST.  */
    2057             : #if (defined __STDC__ || defined __C99__FUNC__ \
    2058             :      || defined __cplusplus || defined _MSC_VER)
    2059             : static char *
    2060             : yystpcpy (char *yydest, const char *yysrc)
    2061             : #else
    2062             : static char *
    2063             : yystpcpy (yydest, yysrc)
    2064             :     char *yydest;
    2065             :     const char *yysrc;
    2066             : #endif
    2067             : {
    2068             :   char *yyd = yydest;
    2069             :   const char *yys = yysrc;
    2070             : 
    2071             :   while ((*yyd++ = *yys++) != '\0')
    2072             :     continue;
    2073             : 
    2074             :   return yyd - 1;
    2075             : }
    2076             : #  endif
    2077             : # endif
    2078             : 
    2079             : # ifndef yytnamerr
    2080             : /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
    2081             :    quotes and backslashes, so that it's suitable for yyerror.  The
    2082             :    heuristic is that double-quoting is unnecessary unless the string
    2083             :    contains an apostrophe, a comma, or backslash (other than
    2084             :    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
    2085             :    null, do not copy; instead, return the length of what the result
    2086             :    would have been.  */
    2087             : static YYSIZE_T
    2088             : yytnamerr (char *yyres, const char *yystr)
    2089             : {
    2090             :   if (*yystr == '"')
    2091             :     {
    2092             :       YYSIZE_T yyn = 0;
    2093             :       char const *yyp = yystr;
    2094             : 
    2095             :       for (;;)
    2096             :         switch (*++yyp)
    2097             :           {
    2098             :           case '\'':
    2099             :           case ',':
    2100             :             goto do_not_strip_quotes;
    2101             : 
    2102             :           case '\\':
    2103             :             if (*++yyp != '\\')
    2104             :               goto do_not_strip_quotes;
    2105             :             /* Fall through.  */
    2106             :           default:
    2107             :             if (yyres)
    2108             :               yyres[yyn] = *yyp;
    2109             :             yyn++;
    2110             :             break;
    2111             : 
    2112             :           case '"':
    2113             :             if (yyres)
    2114             :               yyres[yyn] = '\0';
    2115             :             return yyn;
    2116             :           }
    2117             :     do_not_strip_quotes: ;
    2118             :     }
    2119             : 
    2120             :   if (! yyres)
    2121             :     return yystrlen (yystr);
    2122             : 
    2123             :   return yystpcpy (yyres, yystr) - yyres;
    2124             : }
    2125             : # endif
    2126             : 
    2127             : /* Copy into YYRESULT an error message about the unexpected token
    2128             :    YYCHAR while in state YYSTATE.  Return the number of bytes copied,
    2129             :    including the terminating null byte.  If YYRESULT is null, do not
    2130             :    copy anything; just return the number of bytes that would be
    2131             :    copied.  As a special case, return 0 if an ordinary "syntax error"
    2132             :    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
    2133             :    size calculation.  */
    2134             : static YYSIZE_T
    2135             : yysyntax_error (char *yyresult, int yystate, int yychar)
    2136             : {
    2137             :   int yyn = yypact[yystate];
    2138             : 
    2139             :   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
    2140             :     return 0;
    2141             :   else
    2142             :     {
    2143             :       int yytype = YYTRANSLATE (yychar);
    2144             :       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
    2145             :       YYSIZE_T yysize = yysize0;
    2146             :       YYSIZE_T yysize1;
    2147             :       int yysize_overflow = 0;
    2148             :       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
    2149             :       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
    2150             :       int yyx;
    2151             : 
    2152             : # if 0
    2153             :       /* This is so xgettext sees the translatable formats that are
    2154             :          constructed on the fly.  */
    2155             :       YY_("syntax error, unexpected %s");
    2156             :       YY_("syntax error, unexpected %s, expecting %s");
    2157             :       YY_("syntax error, unexpected %s, expecting %s or %s");
    2158             :       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
    2159             :       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
    2160             : # endif
    2161             :       char *yyfmt;
    2162             :       char const *yyf;
    2163             :       static char const yyunexpected[] = "syntax error, unexpected %s";
    2164             :       static char const yyexpecting[] = ", expecting %s";
    2165             :       static char const yyor[] = " or %s";
    2166             :       char yyformat[sizeof yyunexpected
    2167             :                     + sizeof yyexpecting - 1
    2168             :                     + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
    2169             :                        * (sizeof yyor - 1))];
    2170             :       char const *yyprefix = yyexpecting;
    2171             : 
    2172             :       /* Start YYX at -YYN if negative to avoid negative indexes in
    2173             :          YYCHECK.  */
    2174             :       int yyxbegin = yyn < 0 ? -yyn : 0;
    2175             : 
    2176             :       /* Stay within bounds of both yycheck and yytname.  */
    2177             :       int yychecklim = YYLAST - yyn + 1;
    2178             :       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
    2179             :       int yycount = 1;
    2180             : 
    2181             :       yyarg[0] = yytname[yytype];
    2182             :       yyfmt = yystpcpy (yyformat, yyunexpected);
    2183             : 
    2184             :       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
    2185             :         if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
    2186             :           {
    2187             :             if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
    2188             :               {
    2189             :                 yycount = 1;
    2190             :                 yysize = yysize0;
    2191             :                 yyformat[sizeof yyunexpected - 1] = '\0';
    2192             :                 break;
    2193             :               }
    2194             :             yyarg[yycount++] = yytname[yyx];
    2195             :             yysize1 = yysize + yytnamerr (0, yytname[yyx]);
    2196             :             yysize_overflow |= (yysize1 < yysize);
    2197             :             yysize = yysize1;
    2198             :             yyfmt = yystpcpy (yyfmt, yyprefix);
    2199             :             yyprefix = yyor;
    2200             :           }
    2201             : 
    2202             :       yyf = YY_(yyformat);
    2203             :       yysize1 = yysize + yystrlen (yyf);
    2204             :       yysize_overflow |= (yysize1 < yysize);
    2205             :       yysize = yysize1;
    2206             : 
    2207             :       if (yysize_overflow)
    2208             :         return YYSIZE_MAXIMUM;
    2209             : 
    2210             :       if (yyresult)
    2211             :         {
    2212             :           /* Avoid sprintf, as that infringes on the user's name space.
    2213             :              Don't have undefined behavior even if the translation
    2214             :              produced a string with the wrong number of "%s"s.  */
    2215             :           char *yyp = yyresult;
    2216             :           int yyi = 0;
    2217             :           while ((*yyp = *yyf) != '\0')
    2218             :             {
    2219             :               if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
    2220             :                 {
    2221             :                   yyp += yytnamerr (yyp, yyarg[yyi++]);
    2222             :                   yyf += 2;
    2223             :                 }
    2224             :               else
    2225             :                 {
    2226             :                   yyp++;
    2227             :                   yyf++;
    2228             :                 }
    2229             :             }
    2230             :         }
    2231             :       return yysize;
    2232             :     }
    2233             : }
    2234             : #endif /* YYERROR_VERBOSE */
    2235             : 
    2236             : 
    2237             : /*-----------------------------------------------.
    2238             : | Release the memory associated to this symbol.  |
    2239             : `-----------------------------------------------*/
    2240             : 
    2241             : /*ARGSUSED*/
    2242             : #if (defined __STDC__ || defined __C99__FUNC__ \
    2243             :      || defined __cplusplus || defined _MSC_VER)
    2244             : static void
    2245         810 : yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
    2246             : #else
    2247             : static void
    2248             : yydestruct (yymsg, yytype, yyvaluep)
    2249             :     const char *yymsg;
    2250             :     int yytype;
    2251             :     YYSTYPE *yyvaluep;
    2252             : #endif
    2253             : {
    2254             :   YYUSE (yyvaluep);
    2255             : 
    2256         810 :   if (!yymsg)
    2257           0 :     yymsg = "Deleting";
    2258             :   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
    2259             : 
    2260             :   switch (yytype)
    2261             :     {
    2262             : 
    2263             :       default:
    2264         810 :         break;
    2265             :     }
    2266         810 : }
    2267             : 
    2268             : /* Prevent warnings from -Wmissing-prototypes.  */
    2269             : #ifdef YYPARSE_PARAM
    2270             : #if defined __STDC__ || defined __cplusplus
    2271             : int yyparse (void *YYPARSE_PARAM);
    2272             : #else
    2273             : int yyparse ();
    2274             : #endif
    2275             : #else /* ! YYPARSE_PARAM */
    2276             : #if defined __STDC__ || defined __cplusplus
    2277             : int yyparse (void);
    2278             : #else
    2279             : int yyparse ();
    2280             : #endif
    2281             : #endif /* ! YYPARSE_PARAM */
    2282             : 
    2283             : 
    2284             : /* The lookahead symbol.  */
    2285             : int yychar;
    2286             : 
    2287             : /* The semantic value of the lookahead symbol.  */
    2288             : YYSTYPE yylval;
    2289             : 
    2290             : /* Number of syntax errors so far.  */
    2291             : int yynerrs;
    2292             : 
    2293             : 
    2294             : 
    2295             : /*-------------------------.
    2296             : | yyparse or yypush_parse.  |
    2297             : `-------------------------*/
    2298             : 
    2299             : #ifdef YYPARSE_PARAM
    2300             : #if (defined __STDC__ || defined __C99__FUNC__ \
    2301             :      || defined __cplusplus || defined _MSC_VER)
    2302             : int
    2303             : yyparse (void *YYPARSE_PARAM)
    2304             : #else
    2305             : int
    2306             : yyparse (YYPARSE_PARAM)
    2307             :     void *YYPARSE_PARAM;
    2308             : #endif
    2309             : #else /* ! YYPARSE_PARAM */
    2310             : #if (defined __STDC__ || defined __C99__FUNC__ \
    2311             :      || defined __cplusplus || defined _MSC_VER)
    2312             : int
    2313         404 : yyparse (void)
    2314             : #else
    2315             : int
    2316             : yyparse ()
    2317             : 
    2318             : #endif
    2319             : #endif
    2320             : {
    2321             : 
    2322             : 
    2323             :     int yystate;
    2324             :     /* Number of tokens to shift before error messages enabled.  */
    2325             :     int yyerrstatus;
    2326             : 
    2327             :     /* The stacks and their tools:
    2328             :        `yyss': related to states.
    2329             :        `yyvs': related to semantic values.
    2330             : 
    2331             :        Refer to the stacks thru separate pointers, to allow yyoverflow
    2332             :        to reallocate them elsewhere.  */
    2333             : 
    2334             :     /* The state stack.  */
    2335             :     yytype_int16 yyssa[YYINITDEPTH];
    2336             :     yytype_int16 *yyss;
    2337             :     yytype_int16 *yyssp;
    2338             : 
    2339             :     /* The semantic value stack.  */
    2340             :     YYSTYPE yyvsa[YYINITDEPTH];
    2341             :     YYSTYPE *yyvs;
    2342             :     YYSTYPE *yyvsp;
    2343             : 
    2344             :     YYSIZE_T yystacksize;
    2345             : 
    2346             :   int yyn;
    2347             :   int yyresult;
    2348             :   /* Lookahead token as an internal (translated) token number.  */
    2349             :   int yytoken;
    2350             :   /* The variables used to return semantic value and location from the
    2351             :      action routines.  */
    2352             :   YYSTYPE yyval;
    2353             : 
    2354             : #if YYERROR_VERBOSE
    2355             :   /* Buffer for error messages, and its allocated size.  */
    2356             :   char yymsgbuf[128];
    2357             :   char *yymsg = yymsgbuf;
    2358             :   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
    2359             : #endif
    2360             : 
    2361             : #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
    2362             : 
    2363             :   /* The number of symbols on the RHS of the reduced rule.
    2364             :      Keep to zero when no symbol should be popped.  */
    2365         404 :   int yylen = 0;
    2366             : 
    2367         404 :   yytoken = 0;
    2368         404 :   yyss = yyssa;
    2369         404 :   yyvs = yyvsa;
    2370         404 :   yystacksize = YYINITDEPTH;
    2371             : 
    2372             :   YYDPRINTF ((stderr, "Starting parse\n"));
    2373             : 
    2374         404 :   yystate = 0;
    2375         404 :   yyerrstatus = 0;
    2376         404 :   yynerrs = 0;
    2377         404 :   yychar = YYEMPTY; /* Cause a token to be read.  */
    2378             : 
    2379             :   /* Initialize stack pointers.
    2380             :      Waste one element of value and location stack
    2381             :      so that they stay on the same level as the state stack.
    2382             :      The wasted elements are never initialized.  */
    2383         404 :   yyssp = yyss;
    2384         404 :   yyvsp = yyvs;
    2385             : 
    2386         404 :   goto yysetstate;
    2387             : 
    2388             : /*------------------------------------------------------------.
    2389             : | yynewstate -- Push a new state, which is found in yystate.  |
    2390             : `------------------------------------------------------------*/
    2391             :  yynewstate:
    2392             :   /* In all cases, when you get here, the value and location stacks
    2393             :      have just been pushed.  So pushing a state here evens the stacks.  */
    2394      431944 :   yyssp++;
    2395             : 
    2396             :  yysetstate:
    2397      432348 :   *yyssp = yystate;
    2398             : 
    2399      432348 :   if (yyss + yystacksize - 1 <= yyssp)
    2400             :     {
    2401             :       /* Get the current used size of the three stacks, in elements.  */
    2402           0 :       YYSIZE_T yysize = yyssp - yyss + 1;
    2403             : 
    2404             : #ifdef yyoverflow
    2405             :       {
    2406             :         /* Give user a chance to reallocate the stack.  Use copies of
    2407             :            these so that the &'s don't force the real ones into
    2408             :            memory.  */
    2409             :         YYSTYPE *yyvs1 = yyvs;
    2410             :         yytype_int16 *yyss1 = yyss;
    2411             : 
    2412             :         /* Each stack pointer address is followed by the size of the
    2413             :            data in use in that stack, in bytes.  This used to be a
    2414             :            conditional around just the two extra args, but that might
    2415             :            be undefined if yyoverflow is a macro.  */
    2416             :         yyoverflow (YY_("memory exhausted"),
    2417             :                     &yyss1, yysize * sizeof (*yyssp),
    2418             :                     &yyvs1, yysize * sizeof (*yyvsp),
    2419             :                     &yystacksize);
    2420             : 
    2421             :         yyss = yyss1;
    2422             :         yyvs = yyvs1;
    2423             :       }
    2424             : #else /* no yyoverflow */
    2425             : # ifndef YYSTACK_RELOCATE
    2426             :       goto yyexhaustedlab;
    2427             : # else
    2428             :       /* Extend the stack our own way.  */
    2429           0 :       if (YYMAXDEPTH <= yystacksize)
    2430           0 :         goto yyexhaustedlab;
    2431           0 :       yystacksize *= 2;
    2432           0 :       if (YYMAXDEPTH < yystacksize)
    2433           0 :         yystacksize = YYMAXDEPTH;
    2434             : 
    2435             :       {
    2436           0 :         yytype_int16 *yyss1 = yyss;
    2437             :         union yyalloc *yyptr =
    2438           0 :           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
    2439           0 :         if (! yyptr)
    2440           0 :           goto yyexhaustedlab;
    2441           0 :         YYSTACK_RELOCATE (yyss_alloc, yyss);
    2442           0 :         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
    2443             : #  undef YYSTACK_RELOCATE
    2444           0 :         if (yyss1 != yyssa)
    2445           0 :           YYSTACK_FREE (yyss1);
    2446             :       }
    2447             : # endif
    2448             : #endif /* no yyoverflow */
    2449             : 
    2450           0 :       yyssp = yyss + yysize - 1;
    2451           0 :       yyvsp = yyvs + yysize - 1;
    2452             : 
    2453             :       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
    2454             :                   (unsigned long int) yystacksize));
    2455             : 
    2456           0 :       if (yyss + yystacksize - 1 <= yyssp)
    2457           0 :         YYABORT;
    2458             :     }
    2459             : 
    2460             :   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
    2461             : 
    2462      432348 :   if (yystate == YYFINAL)
    2463         402 :     YYACCEPT;
    2464             : 
    2465      431946 :   goto yybackup;
    2466             : 
    2467             : /*-----------.
    2468             : | yybackup.  |
    2469             : `-----------*/
    2470             : yybackup:
    2471             : 
    2472             :   /* Do appropriate processing given the current state.  Read a
    2473             :      lookahead token if we need one and don't already have one.  */
    2474             : 
    2475             :   /* First try to decide what to do without reference to lookahead token.  */
    2476      431946 :   yyn = yypact[yystate];
    2477      431946 :   if (yyn == YYPACT_NINF)
    2478      259944 :     goto yydefault;
    2479             : 
    2480             :   /* Not known => get a lookahead token if don't already have one.  */
    2481             : 
    2482             :   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
    2483      172002 :   if (yychar == YYEMPTY)
    2484             :     {
    2485             :       YYDPRINTF ((stderr, "Reading a token: "));
    2486      171902 :       yychar = YYLEX;
    2487             :     }
    2488             : 
    2489      172002 :   if (yychar <= YYEOF)
    2490             :     {
    2491         402 :       yychar = yytoken = YYEOF;
    2492             :       YYDPRINTF ((stderr, "Now at end of input.\n"));
    2493             :     }
    2494             :   else
    2495             :     {
    2496      171600 :       yytoken = YYTRANSLATE (yychar);
    2497             :       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
    2498             :     }
    2499             : 
    2500             :   /* If the proper action on seeing token YYTOKEN is to reduce or to
    2501             :      detect an error, take that action.  */
    2502      172002 :   yyn += yytoken;
    2503      172002 :   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
    2504             :     goto yydefault;
    2505      171900 :   yyn = yytable[yyn];
    2506      171900 :   if (yyn <= 0)
    2507             :     {
    2508           0 :       if (yyn == 0 || yyn == YYTABLE_NINF)
    2509             :         goto yyerrlab;
    2510           0 :       yyn = -yyn;
    2511           0 :       goto yyreduce;
    2512             :     }
    2513             : 
    2514             :   /* Count tokens shifted since error; after three, turn off error
    2515             :      status.  */
    2516      171900 :   if (yyerrstatus)
    2517           0 :     yyerrstatus--;
    2518             : 
    2519             :   /* Shift the lookahead token.  */
    2520             :   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
    2521             : 
    2522             :   /* Discard the shifted token.  */
    2523      171900 :   yychar = YYEMPTY;
    2524             : 
    2525      171900 :   yystate = yyn;
    2526      171900 :   *++yyvsp = yylval;
    2527             : 
    2528      171900 :   goto yynewstate;
    2529             : 
    2530             : 
    2531             : /*-----------------------------------------------------------.
    2532             : | yydefault -- do the default action for the current state.  |
    2533             : `-----------------------------------------------------------*/
    2534             : yydefault:
    2535      260046 :   yyn = yydefact[yystate];
    2536      260046 :   if (yyn == 0)
    2537           2 :     goto yyerrlab;
    2538      260044 :   goto yyreduce;
    2539             : 
    2540             : 
    2541             : /*-----------------------------.
    2542             : | yyreduce -- Do a reduction.  |
    2543             : `-----------------------------*/
    2544             : yyreduce:
    2545             :   /* yyn is the number of a rule to reduce with.  */
    2546      260044 :   yylen = yyr2[yyn];
    2547             : 
    2548             :   /* If YYLEN is nonzero, implement the default value of the action:
    2549             :      `$$ = $1'.
    2550             : 
    2551             :      Otherwise, the following line sets YYVAL to garbage.
    2552             :      This behavior is undocumented and Bison
    2553             :      users should not rely upon it.  Assigning to YYVAL
    2554             :      unconditionally makes the parser a bit smaller, and it avoids a
    2555             :      GCC warning that YYVAL may be used uninitialized.  */
    2556      260044 :   yyval = yyvsp[1-yylen];
    2557             : 
    2558             : 
    2559             :   YY_REDUCE_PRINT (yyn);
    2560      260044 :   switch (yyn)
    2561             :     {
    2562             :         case 5:
    2563             : 
    2564             :     {
    2565         402 :         eq::server::Global::instance()->setConfigFAttribute(
    2566         804 :             eq::server::Config::FATTR_VERSION, (yyvsp[(2) - (3)]._float) );
    2567             :     ;}
    2568         402 :     break;
    2569             : 
    2570             :   case 10:
    2571             : 
    2572             :     {
    2573           8 :          eq::server::Global::instance()->setConnectionSAttribute(
    2574           4 :              eq::server::ConnectionDescription::SATTR_HOSTNAME, (yyvsp[(2) - (2)]._string) );
    2575             :      ;}
    2576           4 :     break;
    2577             : 
    2578             :   case 11:
    2579             : 
    2580             :     {
    2581           2 :          eq::server::Global::instance()->setConnectionIAttribute(
    2582           4 :              eq::server::ConnectionDescription::IATTR_TYPE, (yyvsp[(2) - (2)]._connectionType) );
    2583             :      ;}
    2584           2 :     break;
    2585             : 
    2586             :   case 12:
    2587             : 
    2588             :     {
    2589           2 :          eq::server::Global::instance()->setConnectionIAttribute(
    2590           4 :              eq::server::ConnectionDescription::IATTR_PORT, (yyvsp[(2) - (2)]._unsigned) );
    2591             :      ;}
    2592           2 :     break;
    2593             : 
    2594             :   case 13:
    2595             : 
    2596             :     {
    2597           8 :          eq::server::Global::instance()->setConnectionSAttribute(
    2598           4 :              eq::server::ConnectionDescription::SATTR_FILENAME, (yyvsp[(2) - (2)]._string) );
    2599             :      ;}
    2600           4 :     break;
    2601             : 
    2602             :   case 14:
    2603             : 
    2604             :     {
    2605           0 :          eq::server::Global::instance()->setConnectionIAttribute(
    2606           0 :              eq::server::ConnectionDescription::IATTR_BANDWIDTH, (yyvsp[(2) - (2)]._unsigned) );
    2607             :      ;}
    2608           0 :     break;
    2609             : 
    2610             :   case 15:
    2611             : 
    2612             :     {
    2613           8 :          eq::server::Global::instance()->setConfigFAttribute(
    2614           8 :              eq::server::Config::FATTR_EYE_BASE, (yyvsp[(2) - (2)]._float) );
    2615             :      ;}
    2616           8 :     break;
    2617             : 
    2618             :   case 16:
    2619             : 
    2620             :     {
    2621           4 :          eq::server::Global::instance()->setConfigIAttribute(
    2622           4 :              eq::server::Config::IATTR_ROBUSTNESS, (yyvsp[(2) - (2)]._int) );
    2623             :      ;}
    2624           4 :     break;
    2625             : 
    2626             :   case 17:
    2627             : 
    2628             :     {
    2629           8 :          eq::server::Global::instance()->setNodeSAttribute(
    2630           4 :              eq::server::Node::SATTR_LAUNCH_COMMAND, (yyvsp[(2) - (2)]._string) );
    2631             :      ;}
    2632           4 :     break;
    2633             : 
    2634             :   case 18:
    2635             : 
    2636             :     {
    2637           4 :          eq::server::Global::instance()->setNodeCAttribute(
    2638           8 :              eq::server::Node::CATTR_LAUNCH_COMMAND_QUOTE, (yyvsp[(2) - (2)]._character) );
    2639             :      ;}
    2640           4 :     break;
    2641             : 
    2642             :   case 19:
    2643             : 
    2644             :     {
    2645           8 :          eq::server::Global::instance()->setNodeIAttribute(
    2646           8 :              eq::server::Node::IATTR_THREAD_MODEL, (yyvsp[(2) - (2)]._int) );
    2647             :      ;}
    2648           8 :     break;
    2649             : 
    2650             :   case 20:
    2651             : 
    2652             :     {
    2653           0 :          eq::server::Global::instance()->setNodeIAttribute(
    2654           0 :              eq::server::Node::IATTR_HINT_AFFINITY, (yyvsp[(2) - (2)]._int) );
    2655             :      ;}
    2656           0 :     break;
    2657             : 
    2658             :   case 21:
    2659             : 
    2660             :     {
    2661           4 :          eq::server::Global::instance()->setNodeIAttribute(
    2662           8 :              eq::server::Node::IATTR_LAUNCH_TIMEOUT, (yyvsp[(2) - (2)]._unsigned) );
    2663             :      ;}
    2664           4 :     break;
    2665             : 
    2666             :   case 22:
    2667             : 
    2668             :     {
    2669           0 :          LBWARN << "Ignoring deprecated attribute Node::IATTR_HINT_STATISTICS"
    2670           0 :                 << std::endl;
    2671             :      ;}
    2672           0 :     break;
    2673             : 
    2674             :   case 23:
    2675             : 
    2676             :     {
    2677           6 :          eq::server::Global::instance()->setPipeIAttribute(
    2678           6 :              eq::server::Pipe::IATTR_HINT_THREAD, (yyvsp[(2) - (2)]._int) );
    2679             :      ;}
    2680           6 :     break;
    2681             : 
    2682             :   case 24:
    2683             : 
    2684             :     {
    2685           2 :          eq::server::Global::instance()->setPipeIAttribute(
    2686           2 :              eq::server::Pipe::IATTR_HINT_AFFINITY, (yyvsp[(2) - (2)]._int) );
    2687             :      ;}
    2688           2 :     break;
    2689             : 
    2690             :   case 25:
    2691             : 
    2692             :     {
    2693           0 :          eq::server::Global::instance()->setWindowIAttribute(
    2694           0 :              eq::server::WindowSettings::IATTR_HINT_CORE_PROFILE, (yyvsp[(2) - (2)]._int) );
    2695             :      ;}
    2696           0 :     break;
    2697             : 
    2698             :   case 26:
    2699             : 
    2700             :     {
    2701           0 :          eq::server::Global::instance()->setWindowIAttribute(
    2702           0 :              eq::server::WindowSettings::IATTR_HINT_OPENGL_MAJOR, (yyvsp[(2) - (2)]._int) );
    2703             :      ;}
    2704           0 :     break;
    2705             : 
    2706             :   case 27:
    2707             : 
    2708             :     {
    2709           0 :          eq::server::Global::instance()->setWindowIAttribute(
    2710           0 :              eq::server::WindowSettings::IATTR_HINT_OPENGL_MINOR, (yyvsp[(2) - (2)]._int) );
    2711             :      ;}
    2712           0 :     break;
    2713             : 
    2714             :   case 28:
    2715             : 
    2716             :     {
    2717           4 :          eq::server::Global::instance()->setWindowIAttribute(
    2718           4 :              eq::server::WindowSettings::IATTR_HINT_STEREO, (yyvsp[(2) - (2)]._int) );
    2719             :      ;}
    2720           4 :     break;
    2721             : 
    2722             :   case 29:
    2723             : 
    2724             :     {
    2725          12 :          eq::server::Global::instance()->setWindowIAttribute(
    2726          12 :              eq::server::WindowSettings::IATTR_HINT_DOUBLEBUFFER, (yyvsp[(2) - (2)]._int) );
    2727             :      ;}
    2728          12 :     break;
    2729             : 
    2730             :   case 30:
    2731             : 
    2732             :     {
    2733          86 :          eq::server::Global::instance()->setWindowIAttribute(
    2734          86 :              eq::server::WindowSettings::IATTR_HINT_FULLSCREEN, (yyvsp[(2) - (2)]._int) );
    2735             :      ;}
    2736          86 :     break;
    2737             : 
    2738             :   case 31:
    2739             : 
    2740             :     {
    2741          24 :          eq::server::Global::instance()->setWindowIAttribute(
    2742          24 :              eq::server::WindowSettings::IATTR_HINT_DECORATION, (yyvsp[(2) - (2)]._int) );
    2743             :      ;}
    2744          24 :     break;
    2745             : 
    2746             :   case 32:
    2747             : 
    2748             :     {
    2749          28 :          eq::server::Global::instance()->setWindowIAttribute(
    2750          28 :              eq::server::WindowSettings::IATTR_HINT_SWAPSYNC, (yyvsp[(2) - (2)]._int) );
    2751             :      ;}
    2752          28 :     break;
    2753             : 
    2754             :   case 33:
    2755             : 
    2756             :     {
    2757          18 :          eq::server::Global::instance()->setWindowIAttribute(
    2758          18 :              eq::server::WindowSettings::IATTR_HINT_DRAWABLE, (yyvsp[(2) - (2)]._int) );
    2759             :      ;}
    2760          18 :     break;
    2761             : 
    2762             :   case 34:
    2763             : 
    2764             :     {
    2765          12 :          eq::server::Global::instance()->setWindowIAttribute(
    2766          12 :              eq::server::WindowSettings::IATTR_HINT_STATISTICS, (yyvsp[(2) - (2)]._int) );
    2767             :      ;}
    2768          12 :     break;
    2769             : 
    2770             :   case 35:
    2771             : 
    2772             :     {
    2773           0 :          eq::server::Global::instance()->setWindowIAttribute(
    2774           0 :              eq::server::WindowSettings::IATTR_HINT_SCREENSAVER, (yyvsp[(2) - (2)]._int) );
    2775             :      ;}
    2776           0 :     break;
    2777             : 
    2778             :   case 36:
    2779             : 
    2780             :     {
    2781           4 :          eq::server::Global::instance()->setWindowIAttribute(
    2782           4 :              eq::server::WindowSettings::IATTR_HINT_GRAB_POINTER, (yyvsp[(2) - (2)]._int) );
    2783             :      ;}
    2784           4 :     break;
    2785             : 
    2786             :   case 37:
    2787             : 
    2788             :     {
    2789           0 :          eq::server::Global::instance()->setWindowIAttribute(
    2790           0 :              eq::server::WindowSettings::IATTR_HINT_HEIGHT, (yyvsp[(2) - (2)]._int) );
    2791             :      ;}
    2792           0 :     break;
    2793             : 
    2794             :   case 38:
    2795             : 
    2796             :     {
    2797           0 :          eq::server::Global::instance()->setWindowIAttribute(
    2798           0 :              eq::server::WindowSettings::IATTR_HINT_WIDTH, (yyvsp[(2) - (2)]._int) );
    2799             :      ;}
    2800           0 :     break;
    2801             : 
    2802             :   case 39:
    2803             : 
    2804             :     {
    2805           4 :          eq::server::Global::instance()->setWindowIAttribute(
    2806           4 :              eq::server::WindowSettings::IATTR_PLANES_COLOR, (yyvsp[(2) - (2)]._int) );
    2807             :      ;}
    2808           4 :     break;
    2809             : 
    2810             :   case 40:
    2811             : 
    2812             :     {
    2813           4 :          eq::server::Global::instance()->setWindowIAttribute(
    2814           4 :              eq::server::WindowSettings::IATTR_PLANES_ALPHA, (yyvsp[(2) - (2)]._int) );
    2815             :      ;}
    2816           4 :     break;
    2817             : 
    2818             :   case 41:
    2819             : 
    2820             :     {
    2821           4 :          eq::server::Global::instance()->setWindowIAttribute(
    2822           4 :              eq::server::WindowSettings::IATTR_PLANES_DEPTH, (yyvsp[(2) - (2)]._int) );
    2823             :      ;}
    2824           4 :     break;
    2825             : 
    2826             :   case 42:
    2827             : 
    2828             :     {
    2829         100 :          eq::server::Global::instance()->setWindowIAttribute(
    2830         100 :              eq::server::WindowSettings::IATTR_PLANES_STENCIL, (yyvsp[(2) - (2)]._int) );
    2831             :      ;}
    2832         100 :     break;
    2833             : 
    2834             :   case 43:
    2835             : 
    2836             :     {
    2837           4 :          eq::server::Global::instance()->setWindowIAttribute(
    2838           4 :              eq::server::WindowSettings::IATTR_PLANES_ACCUM, (yyvsp[(2) - (2)]._int) );
    2839             :      ;}
    2840           4 :     break;
    2841             : 
    2842             :   case 44:
    2843             : 
    2844             :     {
    2845           4 :          eq::server::Global::instance()->setWindowIAttribute(
    2846           4 :              eq::server::WindowSettings::IATTR_PLANES_ACCUM_ALPHA, (yyvsp[(2) - (2)]._int) );
    2847             :      ;}
    2848           4 :     break;
    2849             : 
    2850             :   case 45:
    2851             : 
    2852             :     {
    2853           8 :          eq::server::Global::instance()->setWindowIAttribute(
    2854           8 :              eq::server::WindowSettings::IATTR_PLANES_SAMPLES, (yyvsp[(2) - (2)]._int) );
    2855             :      ;}
    2856           8 :     break;
    2857             : 
    2858             :   case 46:
    2859             : 
    2860             :     {
    2861           6 :          eq::server::Global::instance()->setChannelIAttribute(
    2862           6 :              eq::server::Channel::IATTR_HINT_STATISTICS, (yyvsp[(2) - (2)]._int) );
    2863             :      ;}
    2864           6 :     break;
    2865             : 
    2866             :   case 47:
    2867             : 
    2868             :     {
    2869           0 :          eq::server::Global::instance()->setChannelIAttribute(
    2870           0 :              eq::server::Channel::IATTR_HINT_SENDTOKEN, (yyvsp[(2) - (2)]._int) );
    2871             :      ;}
    2872           0 :     break;
    2873             : 
    2874             :   case 48:
    2875             : 
    2876             :     {
    2877          12 :          eq::server::Global::instance()->setCompoundIAttribute(
    2878          12 :              eq::server::Compound::IATTR_STEREO_MODE, (yyvsp[(2) - (2)]._int) );
    2879             :      ;}
    2880          12 :     break;
    2881             : 
    2882             :   case 49:
    2883             : 
    2884             :     {
    2885           4 :          eq::server::Global::instance()->setCompoundIAttribute(
    2886           8 :              eq::server::Compound::IATTR_STEREO_ANAGLYPH_LEFT_MASK, (yyvsp[(2) - (2)]._unsigned) );
    2887             :      ;}
    2888           4 :     break;
    2889             : 
    2890             :   case 50:
    2891             : 
    2892             :     {
    2893           4 :          eq::server::Global::instance()->setCompoundIAttribute(
    2894           8 :              eq::server::Compound::IATTR_STEREO_ANAGLYPH_RIGHT_MASK, (yyvsp[(2) - (2)]._unsigned) );
    2895             :      ;}
    2896           4 :     break;
    2897             : 
    2898             :   case 51:
    2899             : 
    2900             :     {
    2901           0 :          LBWARN << "ignoring removed attribute EQ_COMPOUND_IATTR_UPDATE_FOV"
    2902           0 :                 << std::endl;
    2903             :      ;}
    2904           0 :     break;
    2905             : 
    2906             :   case 52:
    2907             : 
    2908             :     {
    2909           8 :         eq::server::Global::instance()->setChannelSAttribute(
    2910           4 :             eq::server::Channel::SATTR_DUMP_IMAGE, (yyvsp[(2) - (2)]._string) );
    2911             :      ;}
    2912           4 :     break;
    2913             : 
    2914             :   case 53:
    2915             : 
    2916             :     {
    2917           0 :         eq::server::Global::instance()->setViewSAttribute(
    2918           0 :             eq::server::View::SATTR_DEFLECT_HOST, (yyvsp[(2) - (2)]._string) );
    2919             :      ;}
    2920           0 :     break;
    2921             : 
    2922             :   case 54:
    2923             : 
    2924         450 :     { (yyval._connectionType) = co::CONNECTIONTYPE_TCPIP; ;}
    2925         450 :     break;
    2926             : 
    2927             :   case 55:
    2928             : 
    2929           0 :     { (yyval._connectionType) = co::CONNECTIONTYPE_NAMEDPIPE; ;}
    2930           0 :     break;
    2931             : 
    2932             :   case 56:
    2933             : 
    2934          64 :     { (yyval._connectionType) = co::CONNECTIONTYPE_RSP; ;}
    2935          64 :     break;
    2936             : 
    2937             :   case 57:
    2938             : 
    2939           0 :     { (yyval._connectionType) = co::CONNECTIONTYPE_RDMA; ;}
    2940           0 :     break;
    2941             : 
    2942             :   case 58:
    2943             : 
    2944           0 :     { (yyval._connectionType) = co::CONNECTIONTYPE_UDT; ;}
    2945           0 :     break;
    2946             : 
    2947             :   case 59:
    2948             : 
    2949         402 :     { server = new eq::server::Server(); ;}
    2950         402 :     break;
    2951             : 
    2952             :   case 63:
    2953             : 
    2954             :     {
    2955         374 :                 connectionDescription = new eq::server::ConnectionDescription;
    2956         374 :                 connectionDescription->setHostname( "" );
    2957         374 :                 connectionDescription->port = 0; // OS chosen port
    2958             :             ;}
    2959         374 :     break;
    2960             : 
    2961             :   case 64:
    2962             : 
    2963             :     {
    2964         374 :                 server->addConnectionDescription( connectionDescription.get( ));
    2965         374 :                 connectionDescription = 0;
    2966             :             ;}
    2967         374 :     break;
    2968             : 
    2969             :   case 67:
    2970             : 
    2971             :     {
    2972         402 :                 config = new eq::server::Config( server );
    2973         402 :                 config->setName( filename );
    2974         402 :                 node = new eq::server::Node( config );
    2975         402 :                 node->setApplicationNode( true );
    2976             :             ;}
    2977         402 :     break;
    2978             : 
    2979             :   case 68:
    2980             : 
    2981         402 :     { config = 0; ;}
    2982         402 :     break;
    2983             : 
    2984             :   case 72:
    2985             : 
    2986         200 :     { config->setName( (yyvsp[(2) - (2)]._string) ); ;}
    2987         200 :     break;
    2988             : 
    2989             :   case 77:
    2990             : 
    2991          38 :     { config->setLatency( (yyvsp[(2) - (2)]._unsigned) ); ;}
    2992          38 :     break;
    2993             : 
    2994             :   case 81:
    2995             : 
    2996         202 :     { config->setFAttribute(
    2997         202 :                              eq::server::Config::FATTR_EYE_BASE, (yyvsp[(2) - (2)]._float) ); ;}
    2998         202 :     break;
    2999             : 
    3000             :   case 82:
    3001             : 
    3002         202 :     { config->setIAttribute(
    3003         202 :                                  eq::server::Config::IATTR_ROBUSTNESS, (yyvsp[(2) - (2)]._int) ); ;}
    3004         202 :     break;
    3005             : 
    3006             :   case 85:
    3007             : 
    3008             :     {
    3009         424 :                                  node = new eq::server::Node( config );
    3010             :                              ;}
    3011         424 :     break;
    3012             : 
    3013             :   case 86:
    3014             : 
    3015         424 :     { node = 0; ;}
    3016         424 :     break;
    3017             : 
    3018             :   case 87:
    3019             : 
    3020             :     {
    3021         394 :                 node = config->findApplicationNode();
    3022         394 :                 LBASSERT( node );
    3023             :             ;}
    3024         394 :     break;
    3025             : 
    3026             :   case 88:
    3027             : 
    3028         394 :     { node = 0; ;}
    3029         394 :     break;
    3030             : 
    3031             :   case 91:
    3032             : 
    3033          36 :     { node->setName( (yyvsp[(2) - (2)]._string) ); ;}
    3034          36 :     break;
    3035             : 
    3036             :   case 92:
    3037             : 
    3038         250 :     { node->setHost( (yyvsp[(2) - (2)]._string) ); ;}
    3039         250 :     break;
    3040             : 
    3041             :   case 96:
    3042             : 
    3043         588 :     { connectionDescription = new eq::server::ConnectionDescription; ;}
    3044         588 :     break;
    3045             : 
    3046             :   case 97:
    3047             : 
    3048             :     {
    3049         588 :                  node->addConnectionDescription( connectionDescription );
    3050         588 :                  connectionDescription = 0;
    3051             :              ;}
    3052         588 :     break;
    3053             : 
    3054             :   case 100:
    3055             : 
    3056         512 :     { connectionDescription->type = (yyvsp[(2) - (2)]._connectionType); ;}
    3057         512 :     break;
    3058             : 
    3059             :   case 101:
    3060             : 
    3061         962 :     { connectionDescription->setHostname((yyvsp[(2) - (2)]._string)); ;}
    3062         962 :     break;
    3063             : 
    3064             :   case 102:
    3065             : 
    3066           0 :     { connectionDescription->setInterface((yyvsp[(2) - (2)]._string)); ;}
    3067           0 :     break;
    3068             : 
    3069             :   case 103:
    3070             : 
    3071           4 :     { connectionDescription->port = (yyvsp[(2) - (2)]._unsigned); ;}
    3072           4 :     break;
    3073             : 
    3074             :   case 104:
    3075             : 
    3076           0 :     { connectionDescription->bandwidth = (yyvsp[(2) - (2)]._unsigned); ;}
    3077           0 :     break;
    3078             : 
    3079             :   case 105:
    3080             : 
    3081         480 :     { connectionDescription->setFilename((yyvsp[(2) - (2)]._string)); ;}
    3082         480 :     break;
    3083             : 
    3084             :   case 108:
    3085             : 
    3086           0 :     { node->setSAttribute( eq::server::Node::SATTR_LAUNCH_COMMAND, (yyvsp[(2) - (2)]._string) ); ;}
    3087           0 :     break;
    3088             : 
    3089             :   case 109:
    3090             : 
    3091           0 :     { node->setCAttribute( eq::server::Node::CATTR_LAUNCH_COMMAND_QUOTE,
    3092           0 :                                (yyvsp[(2) - (2)]._character) ); ;}
    3093           0 :     break;
    3094             : 
    3095             :   case 110:
    3096             : 
    3097           0 :     { node->setIAttribute( eq::server::Node::IATTR_THREAD_MODEL, (yyvsp[(2) - (2)]._int) ); ;}
    3098           0 :     break;
    3099             : 
    3100             :   case 111:
    3101             : 
    3102           0 :     { node->setIAttribute( eq::server::Node::IATTR_LAUNCH_TIMEOUT, (yyvsp[(2) - (2)]._int) ); ;}
    3103           0 :     break;
    3104             : 
    3105             :   case 112:
    3106             : 
    3107             :     {
    3108           0 :             LBWARN
    3109           0 :                 << "Ignoring deprecated attribute Node::IATTR_HINT_STATISTICS"
    3110           0 :                 << std::endl;
    3111             :         ;}
    3112           0 :     break;
    3113             : 
    3114             :   case 113:
    3115             : 
    3116           0 :     { node->setIAttribute( eq::server::Node::IATTR_HINT_AFFINITY, (yyvsp[(2) - (2)]._int) ); ;}
    3117           0 :     break;
    3118             : 
    3119             :   case 114:
    3120             : 
    3121             :     {
    3122        1146 :                 eqPipe = new eq::server::Pipe( node );
    3123             :             ;}
    3124        1146 :     break;
    3125             : 
    3126             :   case 115:
    3127             : 
    3128        1146 :     { eqPipe = 0; ;}
    3129        1146 :     break;
    3130             : 
    3131             :   case 120:
    3132             : 
    3133         164 :     { eqPipe->setName( (yyvsp[(2) - (2)]._string) ); ;}
    3134         164 :     break;
    3135             : 
    3136             :   case 121:
    3137             : 
    3138           0 :     { eqPipe->setPort( (yyvsp[(2) - (2)]._unsigned) ); ;}
    3139           0 :     break;
    3140             : 
    3141             :   case 122:
    3142             : 
    3143         124 :     { eqPipe->setDevice( (yyvsp[(2) - (2)]._unsigned) ); ;}
    3144         124 :     break;
    3145             : 
    3146             :   case 123:
    3147             : 
    3148             :     {
    3149           0 :             eqPipe->setPixelViewport( eq::fabric::PixelViewport
    3150           0 :                         ( (int)(yyvsp[(2) - (2)]._viewport)[0], (int)(yyvsp[(2) - (2)]._viewport)[1], (int)(yyvsp[(2) - (2)]._viewport)[2], (int)(yyvsp[(2) - (2)]._viewport)[3] ));
    3151             :         ;}
    3152           0 :     break;
    3153             : 
    3154             :   case 126:
    3155             : 
    3156          20 :     { eqPipe->setIAttribute( eq::server::Pipe::IATTR_HINT_THREAD, (yyvsp[(2) - (2)]._int) ); ;}
    3157          20 :     break;
    3158             : 
    3159             :   case 127:
    3160             : 
    3161           0 :     { eqPipe->setIAttribute( eq::server::Pipe::IATTR_HINT_AFFINITY, (yyvsp[(2) - (2)]._int)); ;}
    3162           0 :     break;
    3163             : 
    3164             :   case 128:
    3165             : 
    3166             :     {
    3167        1490 :                 window = new eq::server::Window( eqPipe );
    3168        1490 :                 window->init(); // not in ctor, virtual method
    3169             :             ;}
    3170        1490 :     break;
    3171             : 
    3172             :   case 129:
    3173             : 
    3174        1490 :     { window = 0; ;}
    3175        1490 :     break;
    3176             : 
    3177             :   case 134:
    3178             : 
    3179         540 :     { window->setName( (yyvsp[(2) - (2)]._string) ); ;}
    3180         540 :     break;
    3181             : 
    3182             :   case 135:
    3183             : 
    3184             :     {
    3185        1292 :             if( (yyvsp[(2) - (2)]._viewport)[2] > 1 || (yyvsp[(2) - (2)]._viewport)[3] > 1 )
    3186        3460 :                 window->setPixelViewport( eq::fabric::PixelViewport
    3187        4152 :                         ( (int)(yyvsp[(2) - (2)]._viewport)[0], (int)(yyvsp[(2) - (2)]._viewport)[1], (int)(yyvsp[(2) - (2)]._viewport)[2], (int)(yyvsp[(2) - (2)]._viewport)[3] ));
    3188             :             else
    3189        1200 :                 window->setViewport( eq::fabric::Viewport((yyvsp[(2) - (2)]._viewport)[0], (yyvsp[(2) - (2)]._viewport)[1],
    3190         600 :                                                           (yyvsp[(2) - (2)]._viewport)[2], (yyvsp[(2) - (2)]._viewport)[3]));
    3191             :         ;}
    3192        1292 :     break;
    3193             : 
    3194             :   case 138:
    3195             : 
    3196           0 :     { window->setIAttribute( eq::server::WindowSettings::IATTR_HINT_CORE_PROFILE, (yyvsp[(2) - (2)]._int) ); ;}
    3197           0 :     break;
    3198             : 
    3199             :   case 139:
    3200             : 
    3201           0 :     { window->setIAttribute( eq::server::WindowSettings::IATTR_HINT_OPENGL_MAJOR, (yyvsp[(2) - (2)]._int) ); ;}
    3202           0 :     break;
    3203             : 
    3204             :   case 140:
    3205             : 
    3206           0 :     { window->setIAttribute( eq::server::WindowSettings::IATTR_HINT_OPENGL_MINOR, (yyvsp[(2) - (2)]._int) ); ;}
    3207           0 :     break;
    3208             : 
    3209             :   case 141:
    3210             : 
    3211           4 :     { window->setIAttribute( eq::server::WindowSettings::IATTR_HINT_STEREO, (yyvsp[(2) - (2)]._int) ); ;}
    3212           4 :     break;
    3213             : 
    3214             :   case 142:
    3215             : 
    3216          12 :     { window->setIAttribute( eq::server::WindowSettings::IATTR_HINT_DOUBLEBUFFER, (yyvsp[(2) - (2)]._int) ); ;}
    3217          12 :     break;
    3218             : 
    3219             :   case 143:
    3220             : 
    3221          76 :     { window->setIAttribute( eq::server::WindowSettings::IATTR_HINT_FULLSCREEN, (yyvsp[(2) - (2)]._int) ); ;}
    3222          76 :     break;
    3223             : 
    3224             :   case 144:
    3225             : 
    3226          14 :     { window->setIAttribute( eq::server::WindowSettings::IATTR_HINT_DECORATION, (yyvsp[(2) - (2)]._int) ); ;}
    3227          14 :     break;
    3228             : 
    3229             :   case 145:
    3230             : 
    3231          38 :     { window->setIAttribute( eq::server::WindowSettings::IATTR_HINT_SWAPSYNC, (yyvsp[(2) - (2)]._int) ); ;}
    3232          38 :     break;
    3233             : 
    3234             :   case 146:
    3235             : 
    3236          70 :     { window->setIAttribute( eq::server::WindowSettings::IATTR_HINT_DRAWABLE, (yyvsp[(2) - (2)]._int) ); ;}
    3237          70 :     break;
    3238             : 
    3239             :   case 147:
    3240             : 
    3241           8 :     { window->setIAttribute( eq::server::WindowSettings::IATTR_HINT_STATISTICS, (yyvsp[(2) - (2)]._int) ); ;}
    3242           8 :     break;
    3243             : 
    3244             :   case 148:
    3245             : 
    3246           0 :     { window->setIAttribute( eq::server::WindowSettings::IATTR_HINT_SCREENSAVER, (yyvsp[(2) - (2)]._int) ); ;}
    3247           0 :     break;
    3248             : 
    3249             :   case 149:
    3250             : 
    3251           2 :     { window->setIAttribute( eq::server::WindowSettings::IATTR_HINT_GRAB_POINTER, (yyvsp[(2) - (2)]._int) ); ;}
    3252           2 :     break;
    3253             : 
    3254             :   case 150:
    3255             : 
    3256          16 :     { window->setIAttribute( eq::server::WindowSettings::IATTR_PLANES_COLOR, (yyvsp[(2) - (2)]._int) ); ;}
    3257          16 :     break;
    3258             : 
    3259             :   case 151:
    3260             : 
    3261           4 :     { window->setIAttribute( eq::server::WindowSettings::IATTR_PLANES_ALPHA, (yyvsp[(2) - (2)]._int) ); ;}
    3262           4 :     break;
    3263             : 
    3264             :   case 152:
    3265             : 
    3266           8 :     { window->setIAttribute( eq::server::WindowSettings::IATTR_PLANES_DEPTH, (yyvsp[(2) - (2)]._int) ); ;}
    3267           8 :     break;
    3268             : 
    3269             :   case 153:
    3270             : 
    3271          54 :     { window->setIAttribute( eq::server::WindowSettings::IATTR_PLANES_STENCIL, (yyvsp[(2) - (2)]._int) ); ;}
    3272          54 :     break;
    3273             : 
    3274             :   case 154:
    3275             : 
    3276           2 :     { window->setIAttribute( eq::server::WindowSettings::IATTR_PLANES_ACCUM, (yyvsp[(2) - (2)]._int) ); ;}
    3277           2 :     break;
    3278             : 
    3279             :   case 155:
    3280             : 
    3281           2 :     { window->setIAttribute( eq::server::WindowSettings::IATTR_PLANES_ACCUM_ALPHA, (yyvsp[(2) - (2)]._int) ); ;}
    3282           2 :     break;
    3283             : 
    3284             :   case 156:
    3285             : 
    3286           8 :     { window->setIAttribute( eq::server::WindowSettings::IATTR_PLANES_SAMPLES, (yyvsp[(2) - (2)]._int) ); ;}
    3287           8 :     break;
    3288             : 
    3289             :   case 157:
    3290             : 
    3291             :     {
    3292        1646 :                 channel = new eq::server::Channel( window );
    3293        1646 :                 channel->init(); // not in ctor, virtual method
    3294             :             ;}
    3295        1646 :     break;
    3296             : 
    3297             :   case 158:
    3298             : 
    3299        1646 :     { channel = 0; ;}
    3300        1646 :     break;
    3301             : 
    3302             :   case 161:
    3303             : 
    3304        1646 :     { channel->setName( (yyvsp[(2) - (2)]._string) ); ;}
    3305        1646 :     break;
    3306             : 
    3307             :   case 163:
    3308             : 
    3309             :     {
    3310        1278 :             if( (yyvsp[(2) - (2)]._viewport)[2] > 1 || (yyvsp[(2) - (2)]._viewport)[3] > 1 )
    3311        1900 :                 channel->setPixelViewport( eq::fabric::PixelViewport
    3312        2280 :                     ( (int)(yyvsp[(2) - (2)]._viewport)[0], (int)(yyvsp[(2) - (2)]._viewport)[1], (int)(yyvsp[(2) - (2)]._viewport)[2], (int)(yyvsp[(2) - (2)]._viewport)[3] ));
    3313             :             else
    3314        1796 :                 channel->setViewport(eq::fabric::Viewport( (yyvsp[(2) - (2)]._viewport)[0], (yyvsp[(2) - (2)]._viewport)[1],
    3315         898 :                                                            (yyvsp[(2) - (2)]._viewport)[2], (yyvsp[(2) - (2)]._viewport)[3]));
    3316             :         ;}
    3317        1278 :     break;
    3318             : 
    3319             :   case 166:
    3320             : 
    3321           0 :     { channel->setIAttribute( eq::server::Channel::IATTR_HINT_STATISTICS,
    3322           0 :                                   (yyvsp[(2) - (2)]._int) ); ;}
    3323           0 :     break;
    3324             : 
    3325             :   case 167:
    3326             : 
    3327           0 :     { channel->setIAttribute( eq::server::Channel::IATTR_HINT_SENDTOKEN,
    3328           0 :                                   (yyvsp[(2) - (2)]._int) ); ;}
    3329           0 :     break;
    3330             : 
    3331             :   case 168:
    3332             : 
    3333           4 :     { channel->setSAttribute( eq::server::Channel::SATTR_DUMP_IMAGE,
    3334           2 :                                   (yyvsp[(2) - (2)]._string) ); ;}
    3335           2 :     break;
    3336             : 
    3337             :   case 169:
    3338             : 
    3339         394 :     { observer = new eq::server::Observer( config );;}
    3340         394 :     break;
    3341             : 
    3342             :   case 170:
    3343             : 
    3344         394 :     { observer = 0; ;}
    3345         394 :     break;
    3346             : 
    3347             :   case 173:
    3348             : 
    3349           8 :     { observer->setName( (yyvsp[(2) - (2)]._string) ); ;}
    3350           8 :     break;
    3351             : 
    3352             :   case 174:
    3353             : 
    3354             :     {
    3355           0 :         const float eyeBase_2 = (yyvsp[(2) - (2)]._float) * .5f;
    3356           0 :         observer->setEyePosition( eq::fabric::EYE_LEFT,
    3357           0 :                                   eq::fabric::Vector3f( -eyeBase_2, 0.f, 0.f ));
    3358           0 :         observer->setEyePosition( eq::fabric::EYE_CYCLOP,
    3359           0 :                                   eq::fabric::Vector3f( ));
    3360           0 :         observer->setEyePosition( eq::fabric::EYE_RIGHT,
    3361           0 :                                   eq::fabric::Vector3f( eyeBase_2, 0.f, 0.f ));
    3362             :     ;}
    3363           0 :     break;
    3364             : 
    3365             :   case 175:
    3366             : 
    3367             :     {
    3368         202 :         observer->setEyePosition( eq::fabric::EYE_LEFT,
    3369         404 :                                   eq::fabric::Vector3f( (yyvsp[(3) - (6)]._float), (yyvsp[(4) - (6)]._float), (yyvsp[(5) - (6)]._float) ));
    3370             :     ;}
    3371         202 :     break;
    3372             : 
    3373             :   case 176:
    3374             : 
    3375             :     {
    3376         202 :         observer->setEyePosition( eq::fabric::EYE_CYCLOP,
    3377         404 :                                   eq::fabric::Vector3f( (yyvsp[(3) - (6)]._float), (yyvsp[(4) - (6)]._float), (yyvsp[(5) - (6)]._float) ));
    3378             :     ;}
    3379         202 :     break;
    3380             : 
    3381             :   case 177:
    3382             : 
    3383             :     {
    3384         202 :         observer->setEyePosition( eq::fabric::EYE_RIGHT,
    3385         404 :                                   eq::fabric::Vector3f( (yyvsp[(3) - (6)]._float), (yyvsp[(4) - (6)]._float), (yyvsp[(5) - (6)]._float) ));
    3386             :     ;}
    3387         202 :     break;
    3388             : 
    3389             :   case 178:
    3390             : 
    3391         204 :     { observer->setFocusDistance( (yyvsp[(2) - (2)]._float) ); ;}
    3392         204 :     break;
    3393             : 
    3394             :   case 179:
    3395             : 
    3396         204 :     { observer->setFocusMode( eq::fabric::FocusMode( (yyvsp[(2) - (2)]._int) )); ;}
    3397         204 :     break;
    3398             : 
    3399             :   case 180:
    3400             : 
    3401         202 :     { observer->setOpenCVCamera( (yyvsp[(2) - (2)]._int) ); ;}
    3402         202 :     break;
    3403             : 
    3404             :   case 181:
    3405             : 
    3406           0 :     { observer->setVRPNTracker( (yyvsp[(2) - (2)]._string) ); ;}
    3407           0 :     break;
    3408             : 
    3409             :   case 182:
    3410             : 
    3411         630 :     { layout = new eq::server::Layout( config ); ;}
    3412         630 :     break;
    3413             : 
    3414             :   case 183:
    3415             : 
    3416         630 :     { layout = 0; ;}
    3417         630 :     break;
    3418             : 
    3419             :   case 186:
    3420             : 
    3421         304 :     { layout->setName( (yyvsp[(2) - (2)]._string) ); ;}
    3422         304 :     break;
    3423             : 
    3424             :   case 188:
    3425             : 
    3426         698 :     { view = new eq::server::View( layout ); ;}
    3427         698 :     break;
    3428             : 
    3429             :   case 189:
    3430             : 
    3431         698 :     { view = 0; ;}
    3432         698 :     break;
    3433             : 
    3434             :   case 193:
    3435             : 
    3436           4 :     { view->setName( (yyvsp[(2) - (2)]._string) ); ;}
    3437           4 :     break;
    3438             : 
    3439             :   case 194:
    3440             : 
    3441          88 :     { view->changeMode( eq::server::View::MODE_MONO ); ;}
    3442          88 :     break;
    3443             : 
    3444             :   case 196:
    3445             : 
    3446         472 :     { view->setViewport( eq::fabric::Viewport( (yyvsp[(2) - (2)]._viewport)[0], (yyvsp[(2) - (2)]._viewport)[1],
    3447         236 :                                                    (yyvsp[(2) - (2)]._viewport)[2], (yyvsp[(2) - (2)]._viewport)[3] ));;}
    3448         236 :     break;
    3449             : 
    3450             :   case 197:
    3451             : 
    3452         232 :     { view->setWall( wall ); ;}
    3453         232 :     break;
    3454             : 
    3455             :   case 198:
    3456             : 
    3457           0 :     { view->setProjection( projection ); ;}
    3458           0 :     break;
    3459             : 
    3460             :   case 199:
    3461             : 
    3462             :     {
    3463         348 :           eq::server::Observer* ob = config->find< eq::server::Observer >( (yyvsp[(2) - (2)]._string) );
    3464         348 :           if( ob )
    3465         348 :               view->setObserver( ob );
    3466             :           else
    3467             :           {
    3468           0 :               yyerror( "No observer of the given name" );
    3469           0 :               YYERROR;
    3470             :           }
    3471             :       ;}
    3472         348 :     break;
    3473             : 
    3474             :   case 200:
    3475             : 
    3476             :     {
    3477         300 :           const eq::server::ObserverPath path( (yyvsp[(2) - (2)]._unsigned) );
    3478         300 :           eq::server::Observer* ob = config->getObserver( path );
    3479         300 :           if( ob )
    3480         300 :               view->setObserver( ob );
    3481             :           else
    3482             :           {
    3483           0 :               yyerror( "No observer of the given index" );
    3484           0 :               YYERROR;
    3485             :           }
    3486             :       ;}
    3487         300 :     break;
    3488             : 
    3489             :   case 201:
    3490             : 
    3491           0 :     { view->changeMode( eq::server::View::MODE_MONO ); ;}
    3492           0 :     break;
    3493             : 
    3494             :   case 202:
    3495             : 
    3496          88 :     { view->changeMode( eq::server::View::MODE_STEREO ); ;}
    3497          88 :     break;
    3498             : 
    3499             :   case 205:
    3500             : 
    3501             :     {
    3502           2 :         view->setSAttribute( eq::server::View::SATTR_DEFLECT_HOST, (yyvsp[(2) - (2)]._string) );
    3503             :      ;}
    3504           2 :     break;
    3505             : 
    3506             :   case 206:
    3507             : 
    3508         418 :     { canvas = new eq::server::Canvas( config ); ;}
    3509         418 :     break;
    3510             : 
    3511             :   case 207:
    3512             : 
    3513         418 :     { config->activateCanvas( canvas ); canvas = 0; ;}
    3514         418 :     break;
    3515             : 
    3516             :   case 210:
    3517             : 
    3518          12 :     { canvas->setName( (yyvsp[(2) - (2)]._string) ); ;}
    3519          12 :     break;
    3520             : 
    3521             :   case 211:
    3522             : 
    3523             :     {
    3524         472 :           eq::server::Layout* l = config->find< eq::server::Layout >( (yyvsp[(2) - (2)]._string) );
    3525         472 :           if( l )
    3526         472 :               canvas->addLayout( l );
    3527             :           else
    3528             :           {
    3529           0 :               yyerror( "No layout of the given name" );
    3530           0 :               YYERROR;
    3531             :           }
    3532             :       ;}
    3533         472 :     break;
    3534             : 
    3535             :   case 212:
    3536             : 
    3537           8 :     { canvas->setSwapBarrier( swapBarrier ); swapBarrier = 0; ;}
    3538           8 :     break;
    3539             : 
    3540             :   case 213:
    3541             : 
    3542             :     {
    3543         166 :           const eq::server::LayoutPath path( (yyvsp[(2) - (2)]._unsigned) );
    3544         166 :           eq::server::Layout* l = config->getLayout( path );
    3545         166 :           if( l )
    3546         166 :               canvas->addLayout( l );
    3547             :           else
    3548             :           {
    3549           0 :               yyerror( "No layout of the given index" );
    3550           0 :               YYERROR;
    3551             :           }
    3552             :       ;}
    3553         166 :     break;
    3554             : 
    3555             :   case 214:
    3556             : 
    3557             :     {
    3558           4 :           canvas->addLayout( 0 );
    3559             :       ;}
    3560           4 :     break;
    3561             : 
    3562             :   case 215:
    3563             : 
    3564         394 :     { canvas->setWall( wall ); ;}
    3565         394 :     break;
    3566             : 
    3567             :   case 216:
    3568             : 
    3569           0 :     { canvas->setProjection( projection ); ;}
    3570           0 :     break;
    3571             : 
    3572             :   case 218:
    3573             : 
    3574         790 :     { segment = new eq::server::Segment( canvas ); ;}
    3575         790 :     break;
    3576             : 
    3577             :   case 222:
    3578             : 
    3579           0 :     { segment->setName( (yyvsp[(2) - (2)]._string) ); ;}
    3580           0 :     break;
    3581             : 
    3582             :   case 223:
    3583             : 
    3584             :     {
    3585         790 :             eq::server::Channel* ch = config->find< eq::server::Channel >( (yyvsp[(2) - (2)]._string) );
    3586         790 :             if( ch )
    3587         790 :                 segment->setChannel( ch );
    3588             :             else
    3589             :             {
    3590           0 :                 yyerror( "No channel of the given name" );
    3591           0 :                 YYERROR;
    3592             :             }
    3593             :         ;}
    3594         790 :     break;
    3595             : 
    3596             :   case 224:
    3597             : 
    3598         108 :     { segment->setEyes( eq::fabric::EYE_UNDEFINED );;}
    3599         108 :     break;
    3600             : 
    3601             :   case 226:
    3602             : 
    3603         608 :     { segment->setViewport( eq::fabric::Viewport( (yyvsp[(2) - (2)]._viewport)[0], (yyvsp[(2) - (2)]._viewport)[1],
    3604         304 :                                                       (yyvsp[(2) - (2)]._viewport)[2], (yyvsp[(2) - (2)]._viewport)[3] ));;}
    3605         304 :     break;
    3606             : 
    3607             :   case 227:
    3608             : 
    3609           0 :     { segment->setSwapBarrier( swapBarrier ); swapBarrier = 0; ;}
    3610           0 :     break;
    3611             : 
    3612             :   case 228:
    3613             : 
    3614         256 :     { segment->setWall( wall ); ;}
    3615         256 :     break;
    3616             : 
    3617             :   case 229:
    3618             : 
    3619          68 :     { segment->setProjection( projection ); ;}
    3620          68 :     break;
    3621             : 
    3622             :   case 232:
    3623             : 
    3624          96 :     { segment->enableEye( eq::fabric::EYE_CYCLOP ); ;}
    3625          96 :     break;
    3626             : 
    3627             :   case 233:
    3628             : 
    3629          52 :     { segment->enableEye( eq::fabric::EYE_LEFT ); ;}
    3630          52 :     break;
    3631             : 
    3632             :   case 234:
    3633             : 
    3634          52 :     { segment->enableEye( eq::fabric::EYE_RIGHT ); ;}
    3635          52 :     break;
    3636             : 
    3637             :   case 235:
    3638             : 
    3639             :     {
    3640        3828 :                   if( eqCompound )
    3641        3242 :                       eqCompound = new eq::server::Compound( eqCompound );
    3642             :                   else
    3643         586 :                       eqCompound = new eq::server::Compound( config );
    3644             :               ;}
    3645        3828 :     break;
    3646             : 
    3647             :   case 236:
    3648             : 
    3649        3828 :     { eqCompound = eqCompound->getParent(); ;}
    3650        3828 :     break;
    3651             : 
    3652             :   case 240:
    3653             : 
    3654          16 :     { eqCompound->setName( (yyvsp[(2) - (2)]._string) ); ;}
    3655          16 :     break;
    3656             : 
    3657             :   case 241:
    3658             : 
    3659             :     {
    3660        1668 :           eq::server::Channel* ch = config->find< eq::server::Channel >( (yyvsp[(2) - (2)]._string) );
    3661        1668 :           if( ch )
    3662        1668 :               eqCompound->setChannel( ch );
    3663             :           else
    3664             :           {
    3665           0 :               yyerror( "No channel of the given name" );
    3666           0 :               YYERROR;
    3667             :           }
    3668             :       ;}
    3669        1668 :     break;
    3670             : 
    3671             :   case 242:
    3672             : 
    3673             :     {
    3674        1040 :           if( !segment || !view )
    3675             :           {
    3676           0 :               yyerror( "Incomplete channel reference (view or segment missing)" );
    3677           0 :               YYERROR;
    3678             :           }
    3679             :           else
    3680             :           {
    3681        1040 :               eq::server::Channel* ch = config->findChannel( segment, view );
    3682        1040 :               if( ch )
    3683        1040 :                   eqCompound->setChannel( ch );
    3684             :               else
    3685             :               {
    3686           0 :                   yyerror( "No channel for the given view and segment" );
    3687           0 :                   YYERROR;
    3688             :               }
    3689             :           }
    3690             : 
    3691        1040 :           canvas = 0;
    3692        1040 :           segment = 0;
    3693        1040 :           layout = 0;
    3694        1040 :           view = 0;
    3695             :       ;}
    3696        1040 :     break;
    3697             : 
    3698             :   case 243:
    3699             : 
    3700         368 :     { eqCompound->setTasks( eq::fabric::TASK_NONE ); ;}
    3701         368 :     break;
    3702             : 
    3703             :   case 245:
    3704             : 
    3705         200 :     { eqCompound->setEyes( eq::fabric::EYE_UNDEFINED );;}
    3706         200 :     break;
    3707             : 
    3708             :   case 247:
    3709             : 
    3710         188 :     { buffers = eq::fabric::Frame::Buffer::none; ;}
    3711         188 :     break;
    3712             : 
    3713             :   case 248:
    3714             : 
    3715         188 :     { eqCompound->setBuffers( buffers );
    3716         188 :                       buffers = eq::fabric::Frame::Buffer::none; ;}
    3717         188 :     break;
    3718             : 
    3719             :   case 249:
    3720             : 
    3721         496 :     { eqCompound->setViewport( eq::fabric::Viewport( (yyvsp[(2) - (2)]._viewport)[0], (yyvsp[(2) - (2)]._viewport)[1],
    3722         248 :                                                          (yyvsp[(2) - (2)]._viewport)[2], (yyvsp[(2) - (2)]._viewport)[3] ));;}
    3723         248 :     break;
    3724             : 
    3725             :   case 250:
    3726             : 
    3727         692 :     { eqCompound->setRange( eq::fabric::Range( (yyvsp[(3) - (5)]._float), (yyvsp[(4) - (5)]._float) )); ;}
    3728         692 :     break;
    3729             : 
    3730             :   case 251:
    3731             : 
    3732          68 :     { eqCompound->setPeriod( (yyvsp[(2) - (2)]._unsigned) ); ;}
    3733          68 :     break;
    3734             : 
    3735             :   case 252:
    3736             : 
    3737          68 :     { eqCompound->setPhase( (yyvsp[(2) - (2)]._unsigned) ); ;}
    3738          68 :     break;
    3739             : 
    3740             :   case 253:
    3741             : 
    3742           4 :     { eqCompound->setZoom( eq::fabric::Zoom( (yyvsp[(3) - (5)]._float), (yyvsp[(4) - (5)]._float) )); ;}
    3743           4 :     break;
    3744             : 
    3745             :   case 254:
    3746             : 
    3747          92 :     { eqCompound->setPixel( eq::fabric::Pixel( (yyvsp[(3) - (7)]._unsigned), (yyvsp[(4) - (7)]._unsigned), (yyvsp[(5) - (7)]._unsigned), (yyvsp[(6) - (7)]._unsigned) )); ;}
    3748          92 :     break;
    3749             : 
    3750             :   case 255:
    3751             : 
    3752          44 :     { eqCompound->setSubPixel( eq::fabric::SubPixel( (yyvsp[(3) - (5)]._unsigned), (yyvsp[(4) - (5)]._unsigned) )); ;}
    3753          44 :     break;
    3754             : 
    3755             :   case 256:
    3756             : 
    3757          56 :     { eqCompound->setWall( wall ); ;}
    3758          56 :     break;
    3759             : 
    3760             :   case 257:
    3761             : 
    3762           0 :     { eqCompound->setProjection( projection ); ;}
    3763           0 :     break;
    3764             : 
    3765             :   case 259:
    3766             : 
    3767         428 :     { eqCompound->setSwapBarrier(swapBarrier); swapBarrier = 0; ;}
    3768         428 :     break;
    3769             : 
    3770             :   case 265:
    3771             : 
    3772             :     {
    3773        1040 :             canvas = 0;
    3774        1040 :             segment = config->getSegment( eq::server::SegmentPath( 0 ));
    3775        1040 :             layout = 0;
    3776        1040 :             view = config->getView( eq::server::ViewPath( 0 ));;
    3777             :         ;}
    3778        1040 :     break;
    3779             : 
    3780             :   case 269:
    3781             : 
    3782             :     {
    3783          16 :             canvas = config->find< eq::server::Canvas >( (yyvsp[(2) - (2)]._string) );
    3784          16 :             if( !canvas )
    3785             :             {
    3786           0 :                 yyerror( "Can't find canvas" );
    3787           0 :                 YYERROR;
    3788             :             }
    3789          16 :             segment = canvas->getSegment( eq::server::SegmentPath( 0 ));
    3790             :         ;}
    3791          16 :     break;
    3792             : 
    3793             :   case 270:
    3794             : 
    3795             :     {
    3796         616 :             canvas = config->getCanvas( eq::server::CanvasPath( (yyvsp[(2) - (2)]._unsigned) ));
    3797         616 :             if( !canvas )
    3798             :             {
    3799           0 :                 yyerror( "Can't find canvas" );
    3800           0 :                 YYERROR;
    3801             :             }
    3802         616 :             segment = canvas->getSegment( eq::server::SegmentPath( 0 ));
    3803             :         ;}
    3804         616 :     break;
    3805             : 
    3806             :   case 271:
    3807             : 
    3808             :     {
    3809           0 :             if( canvas )
    3810           0 :                 segment = canvas->findSegment( (yyvsp[(2) - (2)]._string) );
    3811             :             else
    3812           0 :                 segment = config->find< eq::server::Segment >( (yyvsp[(2) - (2)]._string) );
    3813             :         ;}
    3814           0 :     break;
    3815             : 
    3816             :   case 272:
    3817             : 
    3818             :     {
    3819        1034 :             if( canvas )
    3820         632 :                 segment = canvas->getSegment( eq::server::SegmentPath( (yyvsp[(2) - (2)]._unsigned) ));
    3821             :             else
    3822         402 :                 segment = config->getSegment( eq::server::SegmentPath( (yyvsp[(2) - (2)]._unsigned) ));
    3823             :         ;}
    3824        1034 :     break;
    3825             : 
    3826             :   case 273:
    3827             : 
    3828             :     {
    3829         510 :             layout = config->find< eq::server::Layout >( (yyvsp[(2) - (2)]._string) );
    3830         510 :             if( !layout )
    3831             :             {
    3832           0 :                 yyerror( "Can't find layout" );
    3833           0 :                 YYERROR;
    3834             :             }
    3835         510 :             view = layout->getView( eq::server::ViewPath( 0 ));;
    3836             :         ;}
    3837         510 :     break;
    3838             : 
    3839             :   case 274:
    3840             : 
    3841             :     {
    3842         324 :             layout = config->getLayout( eq::server::LayoutPath( (yyvsp[(2) - (2)]._unsigned) ));
    3843         324 :             if( !layout )
    3844             :             {
    3845           0 :                 yyerror( "Can't find layout" );
    3846           0 :                 YYERROR;
    3847             :             }
    3848         324 :             view = layout->getView( eq::server::ViewPath( 0 ));;
    3849             :         ;}
    3850         324 :     break;
    3851             : 
    3852             :   case 275:
    3853             : 
    3854             :     {
    3855           2 :             if( layout )
    3856           2 :                 view = layout->findView( (yyvsp[(2) - (2)]._string) );
    3857             :             else
    3858           0 :                 view = config->find< eq::server::View >( (yyvsp[(2) - (2)]._string) );
    3859             :         ;}
    3860           2 :     break;
    3861             : 
    3862             :   case 276:
    3863             : 
    3864             :     {
    3865        1032 :             if( layout )
    3866         826 :                 view = layout->getView( eq::server::ViewPath( (yyvsp[(2) - (2)]._unsigned) ));
    3867             :             else
    3868         206 :                 view = config->getView( eq::server::ViewPath( (yyvsp[(2) - (2)]._unsigned) ));
    3869             :         ;}
    3870        1032 :     break;
    3871             : 
    3872             :   case 279:
    3873             : 
    3874         176 :     { eqCompound->enableTask( eq::fabric::TASK_CLEAR ); ;}
    3875         176 :     break;
    3876             : 
    3877             :   case 280:
    3878             : 
    3879           8 :     { eqCompound->enableTask( eq::fabric::TASK_DRAW ); ;}
    3880           8 :     break;
    3881             : 
    3882             :   case 281:
    3883             : 
    3884         232 :     { eqCompound->enableTask( eq::fabric::TASK_ASSEMBLE );;}
    3885         232 :     break;
    3886             : 
    3887             :   case 282:
    3888             : 
    3889         144 :     { eqCompound->enableTask( eq::fabric::TASK_READBACK );;}
    3890         144 :     break;
    3891             : 
    3892             :   case 285:
    3893             : 
    3894         140 :     { eqCompound->enableEye( eq::fabric::EYE_CYCLOP ); ;}
    3895         140 :     break;
    3896             : 
    3897             :   case 286:
    3898             : 
    3899          96 :     { eqCompound->enableEye( eq::fabric::EYE_LEFT ); ;}
    3900          96 :     break;
    3901             : 
    3902             :   case 287:
    3903             : 
    3904         100 :     { eqCompound->enableEye( eq::fabric::EYE_RIGHT ); ;}
    3905         100 :     break;
    3906             : 
    3907             :   case 290:
    3908             : 
    3909         436 :     { buffers |= eq::fabric::Frame::Buffer::color; ;}
    3910         436 :     break;
    3911             : 
    3912             :   case 291:
    3913             : 
    3914         188 :     { buffers |= eq::fabric::Frame::Buffer::depth; ;}
    3915         188 :     break;
    3916             : 
    3917             :   case 292:
    3918             : 
    3919         938 :     { wall = eq::fabric::Wall(); ;}
    3920         938 :     break;
    3921             : 
    3922             :   case 296:
    3923             : 
    3924         780 :     { wall.bottomLeft = eq::fabric::Vector3f( (yyvsp[(3) - (6)]._float), (yyvsp[(4) - (6)]._float), (yyvsp[(5) - (6)]._float) ); ;}
    3925         780 :     break;
    3926             : 
    3927             :   case 297:
    3928             : 
    3929         780 :     { wall.bottomRight = eq::fabric::Vector3f( (yyvsp[(3) - (6)]._float), (yyvsp[(4) - (6)]._float), (yyvsp[(5) - (6)]._float) ); ;}
    3930         780 :     break;
    3931             : 
    3932             :   case 298:
    3933             : 
    3934         780 :     { wall.topLeft = eq::fabric::Vector3f( (yyvsp[(3) - (6)]._float), (yyvsp[(4) - (6)]._float), (yyvsp[(5) - (6)]._float) ); ;}
    3935         780 :     break;
    3936             : 
    3937             :   case 300:
    3938             : 
    3939           0 :     { wall.type = eq::fabric::Wall::TYPE_FIXED; ;}
    3940           0 :     break;
    3941             : 
    3942             :   case 301:
    3943             : 
    3944          26 :     { wall.type = eq::fabric::Wall::TYPE_HMD; ;}
    3945          26 :     break;
    3946             : 
    3947             :   case 302:
    3948             : 
    3949          68 :     { projection = eq::fabric::Projection(); ;}
    3950          68 :     break;
    3951             : 
    3952             :   case 306:
    3953             : 
    3954          40 :     { projection.origin = eq::fabric::Vector3f( (yyvsp[(3) - (6)]._float), (yyvsp[(4) - (6)]._float), (yyvsp[(5) - (6)]._float) ); ;}
    3955          40 :     break;
    3956             : 
    3957             :   case 307:
    3958             : 
    3959          68 :     { projection.distance = (yyvsp[(2) - (2)]._float); ;}
    3960          68 :     break;
    3961             : 
    3962             :   case 308:
    3963             : 
    3964          68 :     { projection.fov = eq::fabric::Vector2f( (yyvsp[(3) - (5)]._float), (yyvsp[(4) - (5)]._float) ); ;}
    3965          68 :     break;
    3966             : 
    3967             :   case 309:
    3968             : 
    3969          68 :     { projection.hpr = eq::fabric::Vector3f( (yyvsp[(3) - (6)]._float), (yyvsp[(4) - (6)]._float), (yyvsp[(5) - (6)]._float) ); ;}
    3970          68 :     break;
    3971             : 
    3972             :   case 317:
    3973             : 
    3974          16 :     { dfrEqualizer = new eq::server::DFREqualizer; ;}
    3975          16 :     break;
    3976             : 
    3977             :   case 318:
    3978             : 
    3979             :     {
    3980          16 :         eqCompound->addEqualizer( dfrEqualizer );
    3981          16 :         dfrEqualizer = 0;
    3982             :     ;}
    3983          16 :     break;
    3984             : 
    3985             :   case 319:
    3986             : 
    3987             :     {
    3988          28 :         eqCompound->addEqualizer( new eq::server::FramerateEqualizer );
    3989             :     ;}
    3990          28 :     break;
    3991             : 
    3992             :   case 320:
    3993             : 
    3994         188 :     { loadEqualizer = new eq::server::LoadEqualizer; ;}
    3995         188 :     break;
    3996             : 
    3997             :   case 321:
    3998             : 
    3999             :     {
    4000         188 :         eqCompound->addEqualizer( loadEqualizer );
    4001         188 :         loadEqualizer = 0;
    4002             :     ;}
    4003         188 :     break;
    4004             : 
    4005             :   case 322:
    4006             : 
    4007           0 :     { treeEqualizer = new eq::server::TreeEqualizer; ;}
    4008           0 :     break;
    4009             : 
    4010             :   case 323:
    4011             : 
    4012             :     {
    4013           0 :         eqCompound->addEqualizer( treeEqualizer );
    4014           0 :         treeEqualizer = 0;
    4015             :     ;}
    4016           0 :     break;
    4017             : 
    4018             :   case 324:
    4019             : 
    4020             :     {
    4021           4 :         eqCompound->addEqualizer( new eq::server::MonitorEqualizer );
    4022             :     ;}
    4023           4 :     break;
    4024             : 
    4025             :   case 325:
    4026             : 
    4027             :     {
    4028          32 :         eqCompound->addEqualizer( new eq::server::ViewEqualizer );
    4029             :     ;}
    4030          32 :     break;
    4031             : 
    4032             :   case 326:
    4033             : 
    4034           8 :     { tileEqualizer = new eq::server::TileEqualizer; ;}
    4035           8 :     break;
    4036             : 
    4037             :   case 327:
    4038             : 
    4039             :     {
    4040           8 :         eqCompound->addEqualizer( tileEqualizer );
    4041           8 :         tileEqualizer = 0;
    4042             :     ;}
    4043           8 :     break;
    4044             : 
    4045             :   case 330:
    4046             : 
    4047           2 :     { dfrEqualizer->setDamping( (yyvsp[(2) - (2)]._float) ); ;}
    4048           2 :     break;
    4049             : 
    4050             :   case 331:
    4051             : 
    4052          16 :     { dfrEqualizer->setFrameRate( (yyvsp[(2) - (2)]._float) ); ;}
    4053          16 :     break;
    4054             : 
    4055             :   case 334:
    4056             : 
    4057           8 :     { loadEqualizer->setDamping( (yyvsp[(2) - (2)]._float) ); ;}
    4058           8 :     break;
    4059             : 
    4060             :   case 335:
    4061             : 
    4062           0 :     { loadEqualizer->setBoundary( eq::fabric::Vector2i( (yyvsp[(3) - (5)]._unsigned), (yyvsp[(4) - (5)]._unsigned) )); ;}
    4063           0 :     break;
    4064             : 
    4065             :   case 336:
    4066             : 
    4067           0 :     { loadEqualizer->setAssembleOnlyLimit( (yyvsp[(2) - (2)]._float) ); ;}
    4068           0 :     break;
    4069             : 
    4070             :   case 337:
    4071             : 
    4072           0 :     { loadEqualizer->setBoundary( (yyvsp[(2) - (2)]._float) ); ;}
    4073           0 :     break;
    4074             : 
    4075             :   case 338:
    4076             : 
    4077         140 :     { loadEqualizer->setMode( (yyvsp[(2) - (2)]._loadEqualizerMode) ); ;}
    4078         140 :     break;
    4079             : 
    4080             :   case 339:
    4081             : 
    4082           0 :     { loadEqualizer->setResistance( eq::fabric::Vector2i( (yyvsp[(3) - (5)]._unsigned), (yyvsp[(4) - (5)]._unsigned) )); ;}
    4083           0 :     break;
    4084             : 
    4085             :   case 340:
    4086             : 
    4087           0 :     { loadEqualizer->setResistance( (yyvsp[(2) - (2)]._float) ); ;}
    4088           0 :     break;
    4089             : 
    4090             :   case 341:
    4091             : 
    4092          92 :     { (yyval._loadEqualizerMode) = eq::server::LoadEqualizer::MODE_2D; ;}
    4093          92 :     break;
    4094             : 
    4095             :   case 342:
    4096             : 
    4097          24 :     { (yyval._loadEqualizerMode) = eq::server::LoadEqualizer::MODE_DB; ;}
    4098          24 :     break;
    4099             : 
    4100             :   case 343:
    4101             : 
    4102          16 :     { (yyval._loadEqualizerMode) = eq::server::LoadEqualizer::MODE_HORIZONTAL; ;}
    4103          16 :     break;
    4104             : 
    4105             :   case 344:
    4106             : 
    4107           8 :     { (yyval._loadEqualizerMode) = eq::server::LoadEqualizer::MODE_VERTICAL; ;}
    4108           8 :     break;
    4109             : 
    4110             :   case 347:
    4111             : 
    4112           0 :     { treeEqualizer->setDamping( (yyvsp[(2) - (2)]._float) ); ;}
    4113           0 :     break;
    4114             : 
    4115             :   case 348:
    4116             : 
    4117           0 :     { treeEqualizer->setBoundary( eq::fabric::Vector2i( (yyvsp[(3) - (5)]._unsigned), (yyvsp[(4) - (5)]._unsigned) )); ;}
    4118           0 :     break;
    4119             : 
    4120             :   case 349:
    4121             : 
    4122           0 :     { treeEqualizer->setBoundary( (yyvsp[(2) - (2)]._float) ); ;}
    4123           0 :     break;
    4124             : 
    4125             :   case 350:
    4126             : 
    4127           0 :     { treeEqualizer->setMode( (yyvsp[(2) - (2)]._treeEqualizerMode) ); ;}
    4128           0 :     break;
    4129             : 
    4130             :   case 351:
    4131             : 
    4132           0 :     { treeEqualizer->setResistance( eq::fabric::Vector2i( (yyvsp[(3) - (5)]._unsigned), (yyvsp[(4) - (5)]._unsigned) )); ;}
    4133           0 :     break;
    4134             : 
    4135             :   case 352:
    4136             : 
    4137           0 :     { treeEqualizer->setResistance( (yyvsp[(2) - (2)]._float) ); ;}
    4138           0 :     break;
    4139             : 
    4140             :   case 353:
    4141             : 
    4142           0 :     { (yyval._treeEqualizerMode) = eq::server::TreeEqualizer::MODE_2D; ;}
    4143           0 :     break;
    4144             : 
    4145             :   case 354:
    4146             : 
    4147           0 :     { (yyval._treeEqualizerMode) = eq::server::TreeEqualizer::MODE_DB; ;}
    4148           0 :     break;
    4149             : 
    4150             :   case 355:
    4151             : 
    4152           0 :     { (yyval._treeEqualizerMode) = eq::server::TreeEqualizer::MODE_HORIZONTAL; ;}
    4153           0 :     break;
    4154             : 
    4155             :   case 356:
    4156             : 
    4157           0 :     { (yyval._treeEqualizerMode) = eq::server::TreeEqualizer::MODE_VERTICAL; ;}
    4158           0 :     break;
    4159             : 
    4160             :   case 359:
    4161             : 
    4162           4 :     { tileEqualizer->setName( (yyvsp[(2) - (2)]._string) ); ;}
    4163           4 :     break;
    4164             : 
    4165             :   case 360:
    4166             : 
    4167           4 :     { tileEqualizer->setTileSize( eq::fabric::Vector2i( (yyvsp[(3) - (5)]._unsigned), (yyvsp[(4) - (5)]._unsigned) )); ;}
    4168           4 :     break;
    4169             : 
    4170             :   case 361:
    4171             : 
    4172         436 :     { swapBarrier = new eq::server::SwapBarrier; ;}
    4173         436 :     break;
    4174             : 
    4175             :   case 365:
    4176             : 
    4177         236 :     { swapBarrier->setName( (yyvsp[(2) - (2)]._string) ); ;}
    4178         236 :     break;
    4179             : 
    4180             :   case 366:
    4181             : 
    4182           8 :     { swapBarrier->setNVSwapGroup( (yyvsp[(2) - (2)]._int) ); ;}
    4183           8 :     break;
    4184             : 
    4185             :   case 367:
    4186             : 
    4187           8 :     { swapBarrier->setNVSwapBarrier( (yyvsp[(2) - (2)]._int) ); ;}
    4188           8 :     break;
    4189             : 
    4190             :   case 368:
    4191             : 
    4192        2708 :     { frame = new eq::server::Frame; ;}
    4193        2708 :     break;
    4194             : 
    4195             :   case 369:
    4196             : 
    4197             :     {
    4198        2708 :             eqCompound->addOutputFrame( frame );
    4199        2708 :             frame = 0;
    4200             :         ;}
    4201        2708 :     break;
    4202             : 
    4203             :   case 370:
    4204             : 
    4205        2776 :     { frame = new eq::server::Frame; ;}
    4206        2776 :     break;
    4207             : 
    4208             :   case 371:
    4209             : 
    4210             :     {
    4211        2776 :             eqCompound->addInputFrame( frame );
    4212        2776 :             frame = 0;
    4213             :         ;}
    4214        2776 :     break;
    4215             : 
    4216             :   case 374:
    4217             : 
    4218        4940 :     { frame->setName( (yyvsp[(2) - (2)]._string) ); ;}
    4219        4940 :     break;
    4220             : 
    4221             :   case 376:
    4222             : 
    4223        2952 :     { frame->setViewport(eq::fabric::Viewport( (yyvsp[(2) - (2)]._viewport)[0], (yyvsp[(2) - (2)]._viewport)[1],
    4224        1476 :                                                    (yyvsp[(2) - (2)]._viewport)[2], (yyvsp[(2) - (2)]._viewport)[3])); ;}
    4225        1476 :     break;
    4226             : 
    4227             :   case 377:
    4228             : 
    4229         248 :     { buffers = eq::fabric::Frame::Buffer::none; ;}
    4230         248 :     break;
    4231             : 
    4232             :   case 378:
    4233             : 
    4234         248 :     { frame->setBuffers( buffers );
    4235         248 :                       buffers = eq::fabric::Frame::Buffer::none; ;}
    4236         248 :     break;
    4237             : 
    4238             :   case 379:
    4239             : 
    4240           0 :     { frame->setNativeZoom( eq::fabric::Zoom( (yyvsp[(3) - (5)]._float), (yyvsp[(4) - (5)]._float) )); ;}
    4241           0 :     break;
    4242             : 
    4243             :   case 380:
    4244             : 
    4245         124 :     { frame->setType( eq::fabric::Frame::TYPE_TEXTURE ); ;}
    4246         124 :     break;
    4247             : 
    4248             :   case 381:
    4249             : 
    4250           0 :     { frame->setType( eq::fabric::Frame::TYPE_MEMORY ); ;}
    4251           0 :     break;
    4252             : 
    4253             :   case 382:
    4254             : 
    4255           0 :     { tileQueue = new eq::server::TileQueue; ;}
    4256           0 :     break;
    4257             : 
    4258             :   case 383:
    4259             : 
    4260             :     {
    4261           0 :             eqCompound->addOutputTileQueue( tileQueue );
    4262           0 :             tileQueue = 0;
    4263             :         ;}
    4264           0 :     break;
    4265             : 
    4266             :   case 384:
    4267             : 
    4268           0 :     { tileQueue = new eq::server::TileQueue; ;}
    4269           0 :     break;
    4270             : 
    4271             :   case 385:
    4272             : 
    4273             :     {
    4274           0 :             eqCompound->addInputTileQueue( tileQueue );
    4275           0 :             tileQueue = 0;
    4276             :         ;}
    4277           0 :     break;
    4278             : 
    4279             :   case 388:
    4280             : 
    4281           0 :     { tileQueue->setName( (yyvsp[(2) - (2)]._string) ); ;}
    4282           0 :     break;
    4283             : 
    4284             :   case 389:
    4285             : 
    4286           0 :     { tileQueue->setTileSize( eq::fabric::Vector2i( (yyvsp[(3) - (5)]._unsigned), (yyvsp[(4) - (5)]._unsigned) )); ;}
    4287           0 :     break;
    4288             : 
    4289             :   case 392:
    4290             : 
    4291          12 :     { eqCompound->setIAttribute( eq::server::Compound::IATTR_STEREO_MODE, (yyvsp[(2) - (2)]._int) ); ;}
    4292          12 :     break;
    4293             : 
    4294             :   case 393:
    4295             : 
    4296           8 :     { eqCompound->setIAttribute(
    4297          16 :                 eq::server::Compound::IATTR_STEREO_ANAGLYPH_LEFT_MASK, (yyvsp[(2) - (2)]._unsigned) ); ;}
    4298           8 :     break;
    4299             : 
    4300             :   case 394:
    4301             : 
    4302           8 :     { eqCompound->setIAttribute(
    4303          16 :                 eq::server::Compound::IATTR_STEREO_ANAGLYPH_RIGHT_MASK, (yyvsp[(2) - (2)]._unsigned) ); ;}
    4304           8 :     break;
    4305             : 
    4306             :   case 395:
    4307             : 
    4308           0 :     { LBWARN << "ignoring removed attribute update_FOV" << std::endl; ;}
    4309           0 :     break;
    4310             : 
    4311             :   case 396:
    4312             : 
    4313             :     {
    4314        4834 :          (yyval._viewport)[0] = (yyvsp[(2) - (6)]._float);
    4315        4834 :          (yyval._viewport)[1] = (yyvsp[(3) - (6)]._float);
    4316        4834 :          (yyval._viewport)[2] = (yyvsp[(4) - (6)]._float);
    4317        4834 :          (yyval._viewport)[3] = (yyvsp[(5) - (6)]._float);
    4318             :      ;}
    4319        4834 :     break;
    4320             : 
    4321             :   case 397:
    4322             : 
    4323          24 :     { (yyval._unsigned) = (yyvsp[(2) - (3)]._unsigned); ;}
    4324          24 :     break;
    4325             : 
    4326             :   case 398:
    4327             : 
    4328           0 :     { (yyval._unsigned) =eq::server::Compound::COLOR_MASK_NONE; ;}
    4329           0 :     break;
    4330             : 
    4331             :   case 399:
    4332             : 
    4333          24 :     { (yyval._unsigned) = (yyvsp[(1) - (1)]._unsigned); ;}
    4334          24 :     break;
    4335             : 
    4336             :   case 400:
    4337             : 
    4338          36 :     { (yyval._unsigned) = ((yyvsp[(1) - (2)]._unsigned) | (yyvsp[(2) - (2)]._unsigned));;}
    4339          36 :     break;
    4340             : 
    4341             :   case 401:
    4342             : 
    4343          20 :     { (yyval._unsigned) = eq::server::Compound::COLOR_MASK_RED; ;}
    4344          20 :     break;
    4345             : 
    4346             :   case 402:
    4347             : 
    4348          20 :     { (yyval._unsigned) = eq::server::Compound::COLOR_MASK_GREEN; ;}
    4349          20 :     break;
    4350             : 
    4351             :   case 403:
    4352             : 
    4353          20 :     { (yyval._unsigned) = eq::server::Compound::COLOR_MASK_BLUE; ;}
    4354          20 :     break;
    4355             : 
    4356             :   case 404:
    4357             : 
    4358         276 :     { (yyval._int) = eq::fabric::ON; ;}
    4359         276 :     break;
    4360             : 
    4361             :   case 405:
    4362             : 
    4363         398 :     { (yyval._int) = eq::fabric::OFF; ;}
    4364         398 :     break;
    4365             : 
    4366             :   case 406:
    4367             : 
    4368         208 :     { (yyval._int) = eq::fabric::AUTO; ;}
    4369         208 :     break;
    4370             : 
    4371             :   case 407:
    4372             : 
    4373           2 :     { (yyval._int) = eq::fabric::FASTEST; ;}
    4374           2 :     break;
    4375             : 
    4376             :   case 408:
    4377             : 
    4378           0 :     { (yyval._int) = eq::fabric::HORIZONTAL; ;}
    4379           0 :     break;
    4380             : 
    4381             :   case 409:
    4382             : 
    4383          10 :     { (yyval._int) = eq::fabric::NICEST; ;}
    4384          10 :     break;
    4385             : 
    4386             :   case 410:
    4387             : 
    4388           0 :     { (yyval._int) = eq::fabric::QUAD; ;}
    4389           0 :     break;
    4390             : 
    4391             :   case 411:
    4392             : 
    4393          20 :     { (yyval._int) = eq::fabric::ANAGLYPH; ;}
    4394          20 :     break;
    4395             : 
    4396             :   case 412:
    4397             : 
    4398           4 :     { (yyval._int) = eq::fabric::PASSIVE; ;}
    4399           4 :     break;
    4400             : 
    4401             :   case 413:
    4402             : 
    4403           0 :     { (yyval._int) = eq::fabric::VERTICAL; ;}
    4404           0 :     break;
    4405             : 
    4406             :   case 414:
    4407             : 
    4408          18 :     { (yyval._int) = eq::fabric::WINDOW; ;}
    4409          18 :     break;
    4410             : 
    4411             :   case 415:
    4412             : 
    4413          70 :     { (yyval._int) = eq::fabric::FBO; ;}
    4414          70 :     break;
    4415             : 
    4416             :   case 416:
    4417             : 
    4418             :     {
    4419           0 :         (yyval._int) = eq::fabric::FBO;
    4420           0 :         LBERROR << "Using FBO in place of removed PBuffer support" << std::endl;
    4421             :     ;}
    4422           0 :     break;
    4423             : 
    4424             :   case 417:
    4425             : 
    4426           2 :     { (yyval._int) = eq::fabric::ASYNC; ;}
    4427           2 :     break;
    4428             : 
    4429             :   case 418:
    4430             : 
    4431           2 :     { (yyval._int) = eq::fabric::DRAW_SYNC; ;}
    4432           2 :     break;
    4433             : 
    4434             :   case 419:
    4435             : 
    4436           4 :     { (yyval._int) = eq::fabric::LOCAL_SYNC; ;}
    4437           4 :     break;
    4438             : 
    4439             :   case 420:
    4440             : 
    4441           8 :     { (yyval._int) = eq::fabric::RGBA16F; ;}
    4442           8 :     break;
    4443             : 
    4444             :   case 421:
    4445             : 
    4446           4 :     { (yyval._int) = eq::fabric::RGBA32F; ;}
    4447           4 :     break;
    4448             : 
    4449             :   case 422:
    4450             : 
    4451         200 :     { (yyval._int) = eq::fabric::FIXED; ;}
    4452         200 :     break;
    4453             : 
    4454             :   case 423:
    4455             : 
    4456           0 :     { (yyval._int) = eq::fabric::RELATIVE_TO_ORIGIN; ;}
    4457           0 :     break;
    4458             : 
    4459             :   case 424:
    4460             : 
    4461           4 :     { (yyval._int) = eq::fabric::RELATIVE_TO_OBSERVER; ;}
    4462           4 :     break;
    4463             : 
    4464             :   case 425:
    4465             : 
    4466          98 :     { (yyval._int) = (yyvsp[(1) - (1)]._int); ;}
    4467          98 :     break;
    4468             : 
    4469             :   case 426:
    4470             : 
    4471           0 :     { (yyval._int) = eq::fabric::CORE + (yyvsp[(2) - (2)]._int); ;}
    4472           0 :     break;
    4473             : 
    4474             :   case 427:
    4475             : 
    4476           0 :     { (yyval._int) = eq::fabric::SOCKET  + (yyvsp[(2) - (2)]._int); ;}
    4477           0 :     break;
    4478             : 
    4479             :   case 428:
    4480             : 
    4481             :     {
    4482       13628 :          static std::string stringBuf;
    4483       13628 :          stringBuf = yytext;
    4484       13628 :          stringBuf.erase( 0, 1 );                  // Leading '"'
    4485       13628 :          stringBuf.erase( stringBuf.size()-1, 1 ); // Trailing '"'
    4486       13628 :          (yyval._string) = stringBuf.c_str();
    4487             :      ;}
    4488       13628 :     break;
    4489             : 
    4490             :   case 429:
    4491             : 
    4492           4 :     { (yyval._character) = yytext[1]; ;}
    4493           4 :     break;
    4494             : 
    4495             :   case 430:
    4496             : 
    4497       17466 :     { (yyval._float) = atof( yytext ); ;}
    4498       17466 :     break;
    4499             : 
    4500             :   case 431:
    4501             : 
    4502       13470 :     { (yyval._float) = (yyvsp[(1) - (1)]._int); ;}
    4503       13470 :     break;
    4504             : 
    4505             :   case 432:
    4506             : 
    4507         664 :     { (yyval._int) = atoi( yytext ); ;}
    4508         664 :     break;
    4509             : 
    4510             :   case 433:
    4511             : 
    4512       12904 :     { (yyval._int) = (yyvsp[(1) - (1)]._unsigned); ;}
    4513       12904 :     break;
    4514             : 
    4515             :   case 434:
    4516             : 
    4517       17148 :     { (yyval._unsigned) = atoi( yytext ); ;}
    4518       17148 :     break;
    4519             : 
    4520             : 
    4521             : 
    4522      102606 :       default: break;
    4523             :     }
    4524             :   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
    4525             : 
    4526      260044 :   YYPOPSTACK (yylen);
    4527      260044 :   yylen = 0;
    4528             :   YY_STACK_PRINT (yyss, yyssp);
    4529             : 
    4530      260044 :   *++yyvsp = yyval;
    4531             : 
    4532             :   /* Now `shift' the result of the reduction.  Determine what state
    4533             :      that goes to, based on the state we popped back to and the rule
    4534             :      number reduced by.  */
    4535             : 
    4536      260044 :   yyn = yyr1[yyn];
    4537             : 
    4538      260044 :   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
    4539      260044 :   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
    4540       82858 :     yystate = yytable[yystate];
    4541             :   else
    4542      177186 :     yystate = yydefgoto[yyn - YYNTOKENS];
    4543             : 
    4544      260044 :   goto yynewstate;
    4545             : 
    4546             : 
    4547             : /*------------------------------------.
    4548             : | yyerrlab -- here on detecting error |
    4549             : `------------------------------------*/
    4550             : yyerrlab:
    4551             :   /* If not already recovering from an error, report this error.  */
    4552           2 :   if (!yyerrstatus)
    4553             :     {
    4554           2 :       ++yynerrs;
    4555             : #if ! YYERROR_VERBOSE
    4556           2 :       yyerror (YY_("syntax error"));
    4557             : #else
    4558             :       {
    4559             :         YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
    4560             :         if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
    4561             :           {
    4562             :             YYSIZE_T yyalloc = 2 * yysize;
    4563             :             if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
    4564             :               yyalloc = YYSTACK_ALLOC_MAXIMUM;
    4565             :             if (yymsg != yymsgbuf)
    4566             :               YYSTACK_FREE (yymsg);
    4567             :             yymsg = (char *) YYSTACK_ALLOC (yyalloc);
    4568             :             if (yymsg)
    4569             :               yymsg_alloc = yyalloc;
    4570             :             else
    4571             :               {
    4572             :                 yymsg = yymsgbuf;
    4573             :                 yymsg_alloc = sizeof yymsgbuf;
    4574             :               }
    4575             :           }
    4576             : 
    4577             :         if (0 < yysize && yysize <= yymsg_alloc)
    4578             :           {
    4579             :             (void) yysyntax_error (yymsg, yystate, yychar);
    4580             :             yyerror (yymsg);
    4581             :           }
    4582             :         else
    4583             :           {
    4584             :             yyerror (YY_("syntax error"));
    4585             :             if (yysize != 0)
    4586             :               goto yyexhaustedlab;
    4587             :           }
    4588             :       }
    4589             : #endif
    4590             :     }
    4591             : 
    4592             : 
    4593             : 
    4594           2 :   if (yyerrstatus == 3)
    4595             :     {
    4596             :       /* If just tried and failed to reuse lookahead token after an
    4597             :          error, discard it.  */
    4598             : 
    4599           0 :       if (yychar <= YYEOF)
    4600             :         {
    4601             :           /* Return failure if at end of input.  */
    4602           0 :           if (yychar == YYEOF)
    4603           0 :             YYABORT;
    4604             :         }
    4605             :       else
    4606             :         {
    4607             :           yydestruct ("Error: discarding",
    4608           0 :                       yytoken, &yylval);
    4609           0 :           yychar = YYEMPTY;
    4610             :         }
    4611             :     }
    4612             : 
    4613             :   /* Else will try to reuse lookahead token after shifting the error
    4614             :      token.  */
    4615           2 :   goto yyerrlab1;
    4616             : 
    4617             : 
    4618             : /*---------------------------------------------------.
    4619             : | yyerrorlab -- error raised explicitly by YYERROR.  |
    4620             : `---------------------------------------------------*/
    4621             : yyerrorlab:
    4622             : 
    4623             :   /* Pacify compilers like GCC when the user code never invokes
    4624             :      YYERROR and the label yyerrorlab therefore never appears in user
    4625             :      code.  */
    4626             :   if (/*CONSTCOND*/ 0)
    4627             :      goto yyerrorlab;
    4628             : 
    4629             :   /* Do not reclaim the symbols of the rule which action triggered
    4630             :      this YYERROR.  */
    4631           0 :   YYPOPSTACK (yylen);
    4632           0 :   yylen = 0;
    4633             :   YY_STACK_PRINT (yyss, yyssp);
    4634           0 :   yystate = *yyssp;
    4635           0 :   goto yyerrlab1;
    4636             : 
    4637             : 
    4638             : /*-------------------------------------------------------------.
    4639             : | yyerrlab1 -- common code for both syntax error and YYERROR.  |
    4640             : `-------------------------------------------------------------*/
    4641             : yyerrlab1:
    4642           2 :   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
    4643             : 
    4644             :   for (;;)
    4645             :     {
    4646          10 :       yyn = yypact[yystate];
    4647           6 :       if (yyn != YYPACT_NINF)
    4648             :         {
    4649           6 :           yyn += YYTERROR;
    4650           6 :           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
    4651             :             {
    4652           0 :               yyn = yytable[yyn];
    4653           0 :               if (0 < yyn)
    4654           0 :                 break;
    4655             :             }
    4656             :         }
    4657             : 
    4658             :       /* Pop the current state because it cannot handle the error token.  */
    4659           6 :       if (yyssp == yyss)
    4660           2 :         YYABORT;
    4661             : 
    4662             : 
    4663           4 :       yydestruct ("Error: popping",
    4664           8 :                   yystos[yystate], yyvsp);
    4665           4 :       YYPOPSTACK (1);
    4666           4 :       yystate = *yyssp;
    4667             :       YY_STACK_PRINT (yyss, yyssp);
    4668             :     }
    4669             : 
    4670           0 :   *++yyvsp = yylval;
    4671             : 
    4672             : 
    4673             :   /* Shift the error token.  */
    4674             :   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
    4675             : 
    4676           0 :   yystate = yyn;
    4677           0 :   goto yynewstate;
    4678             : 
    4679             : 
    4680             : /*-------------------------------------.
    4681             : | yyacceptlab -- YYACCEPT comes here.  |
    4682             : `-------------------------------------*/
    4683             : yyacceptlab:
    4684         402 :   yyresult = 0;
    4685         402 :   goto yyreturn;
    4686             : 
    4687             : /*-----------------------------------.
    4688             : | yyabortlab -- YYABORT comes here.  |
    4689             : `-----------------------------------*/
    4690             : yyabortlab:
    4691           2 :   yyresult = 1;
    4692           2 :   goto yyreturn;
    4693             : 
    4694             : #if !defined(yyoverflow) || YYERROR_VERBOSE
    4695             : /*-------------------------------------------------.
    4696             : | yyexhaustedlab -- memory exhaustion comes here.  |
    4697             : `-------------------------------------------------*/
    4698             : yyexhaustedlab:
    4699           0 :   yyerror (YY_("memory exhausted"));
    4700           0 :   yyresult = 2;
    4701             :   /* Fall through.  */
    4702             : #endif
    4703             : 
    4704             : yyreturn:
    4705         404 :   if (yychar != YYEMPTY)
    4706             :      yydestruct ("Cleanup: discarding lookahead",
    4707           2 :                  yytoken, &yylval);
    4708             :   /* Do not reclaim the symbols of the rule which action triggered
    4709             :      this YYABORT or YYACCEPT.  */
    4710         404 :   YYPOPSTACK (yylen);
    4711             :   YY_STACK_PRINT (yyss, yyssp);
    4712        2012 :   while (yyssp != yyss)
    4713             :     {
    4714         804 :       yydestruct ("Cleanup: popping",
    4715        1608 :                   yystos[*yyssp], yyvsp);
    4716         804 :       YYPOPSTACK (1);
    4717             :     }
    4718             : #ifndef yyoverflow
    4719         404 :   if (yyss != yyssa)
    4720           0 :     YYSTACK_FREE (yyss);
    4721             : #endif
    4722             : #if YYERROR_VERBOSE
    4723             :   if (yymsg != yymsgbuf)
    4724             :     YYSTACK_FREE (yymsg);
    4725             : #endif
    4726             :   /* Make sure YYID is used.  */
    4727         404 :   return YYID (yyresult);
    4728             : }
    4729             : 
    4730             : 
    4731             : 
    4732             : 
    4733             : 
    4734             : namespace eq
    4735             : {
    4736             : namespace server
    4737             : {
    4738             : 
    4739             : //---------------------------------------------------------------------------
    4740             : // loader
    4741             : //---------------------------------------------------------------------------
    4742         404 : ServerPtr Loader::loadFile( const std::string& filename )
    4743             : {
    4744         404 :     yyin       = fopen( filename.c_str(), "r" );
    4745         404 :     yyinString = 0;
    4746             : 
    4747         404 :     if( !yyin )
    4748             :     {
    4749           0 :         LBERROR << "Can't open config file " << filename << std::endl;
    4750           0 :         return 0;
    4751             :     }
    4752             : 
    4753         404 :     loader::filename = filename;
    4754         404 :     _parse();
    4755         404 :     loader::filename.clear();
    4756             : 
    4757         404 :     fclose( yyin );
    4758             : 
    4759         808 :     eq::server::ServerPtr server = loader::server;
    4760         404 :     loader::server = 0;
    4761         404 :     return server;
    4762             : }
    4763             : 
    4764           0 : void Loader::_parseString( const char* data )
    4765             : {
    4766           0 :     yyin       = 0;
    4767           0 :     yyinString = data;
    4768           0 :     _parse();
    4769           0 : }
    4770             : 
    4771         404 : void Loader::_parse()
    4772             : {
    4773         404 :     LBASSERTINFO( !eq::loader::loader, "Config file loader is not reentrant" );
    4774         404 :     eq::loader::loader = this;
    4775             : 
    4776         404 :     loader::server = 0;
    4777         404 :     config = 0;
    4778         404 :     yylineno = 0;
    4779             : 
    4780         808 :     const std::string oldLocale = setlocale( LC_NUMERIC, "C" );
    4781         404 :     const bool error = ( eqLoader_parse() != 0 );
    4782         404 :     setlocale( LC_NUMERIC, oldLocale.c_str( ));
    4783             : 
    4784         404 :     if( error )
    4785           2 :         loader::server = 0;
    4786             : 
    4787         404 :     eq::loader::loader = 0;
    4788         404 : }
    4789             : 
    4790           0 : ServerPtr Loader::parseServer( const char* data )
    4791             : {
    4792           0 :     _parseString( data );
    4793             : 
    4794           0 :     eq::server::ServerPtr server = loader::server;
    4795           0 :     loader::server = 0;
    4796           0 :     return server;
    4797             : }
    4798             : 
    4799             : }
    4800          60 : }
    4801             : 

Generated by: LCOV version 1.11