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

Generated by: LCOV version 1.11