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