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