Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(70)

Side by Side Diff: third_party/mesa/chromium_gensrc/mesa/glsl_parser.cc

Issue 17028009: Checked in sources which are normally autogenerated during Mesa's build process. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
Property Changes:
Added: svn:eol-style
+ LF
OLDNEW
(Empty)
1 /* A Bison parser, made by GNU Bison 2.5. */
2
3 /* Bison implementation for Yacc-like parsers in C
4
5 Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
6
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20 /* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
29
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
32
33 /* C LALR(1) parser skeleton written by Richard Stallman, by
34 simplifying the original so-called "semantic" parser. */
35
36 /* All symbols defined below should begin with yy or YY, to avoid
37 infringing on user name space. This should be done even for local
38 variables, as they might otherwise be expanded by user macros.
39 There are some unavoidable exceptions within include files to
40 define necessary library symbols; they are noted "INFRINGES ON
41 USER NAME SPACE" below. */
42
43 /* Identify Bison output. */
44 #define YYBISON 1
45
46 /* Bison version. */
47 #define YYBISON_VERSION "2.5"
48
49 /* Skeleton name. */
50 #define YYSKELETON_NAME "yacc.c"
51
52 /* Pure parsers. */
53 #define YYPURE 1
54
55 /* Push parsers. */
56 #define YYPUSH 0
57
58 /* Pull parsers. */
59 #define YYPULL 1
60
61 /* Using locations. */
62 #define YYLSP_NEEDED 1
63
64 /* Substitute the variable and function names. */
65 #define yyparse _mesa_glsl_parse
66 #define yylex _mesa_glsl_lex
67 #define yyerror _mesa_glsl_error
68 #define yylval _mesa_glsl_lval
69 #define yychar _mesa_glsl_char
70 #define yydebug _mesa_glsl_debug
71 #define yynerrs _mesa_glsl_nerrs
72 #define yylloc _mesa_glsl_lloc
73
74 /* Copy the first part of user declarations. */
75
76 /* Line 268 of yacc.c */
77 #line 1 "src/src/glsl/glsl_parser.yy"
78
79 /*
80 * Copyright © 2008, 2009 Intel Corporation
81 *
82 * Permission is hereby granted, free of charge, to any person obtaining a
83 * copy of this software and associated documentation files (the "Software"),
84 * to deal in the Software without restriction, including without limitation
85 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
86 * and/or sell copies of the Software, and to permit persons to whom the
87 * Software is furnished to do so, subject to the following conditions:
88 *
89 * The above copyright notice and this permission notice (including the next
90 * paragraph) shall be included in all copies or substantial portions of the
91 * Software.
92 *
93 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
94 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
95 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
96 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
97 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
98 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
99 * DEALINGS IN THE SOFTWARE.
100 */
101 #include <stdio.h>
102 #include <stdlib.h>
103 #include <string.h>
104 #include <assert.h>
105
106 #include "ast.h"
107 #include "glsl_parser_extras.h"
108 #include "glsl_types.h"
109 #include "main/context.h"
110
111 #define YYLEX_PARAM state->scanner
112
113 #undef yyerror
114
115 static void yyerror(YYLTYPE *loc, _mesa_glsl_parse_state *st, const char *msg)
116 {
117 _mesa_glsl_error(loc, st, "%s", msg);
118 }
119
120
121 /* Line 268 of yacc.c */
122 #line 123 "src/chromium_gensrc/mesa/glsl_parser.cc"
123
124 /* Enabling traces. */
125 #ifndef YYDEBUG
126 # define YYDEBUG 0
127 #endif
128
129 /* Enabling verbose error messages. */
130 #ifdef YYERROR_VERBOSE
131 # undef YYERROR_VERBOSE
132 # define YYERROR_VERBOSE 1
133 #else
134 # define YYERROR_VERBOSE 1
135 #endif
136
137 /* Enabling the token table. */
138 #ifndef YYTOKEN_TABLE
139 # define YYTOKEN_TABLE 0
140 #endif
141
142
143 /* Tokens. */
144 #ifndef YYTOKENTYPE
145 # define YYTOKENTYPE
146 /* Put the tokens into the symbol table, so that GDB and other debuggers
147 know about them. */
148 enum yytokentype {
149 ATTRIBUTE = 258,
150 CONST_TOK = 259,
151 BOOL_TOK = 260,
152 FLOAT_TOK = 261,
153 INT_TOK = 262,
154 UINT_TOK = 263,
155 BREAK = 264,
156 CONTINUE = 265,
157 DO = 266,
158 ELSE = 267,
159 FOR = 268,
160 IF = 269,
161 DISCARD = 270,
162 RETURN = 271,
163 SWITCH = 272,
164 CASE = 273,
165 DEFAULT = 274,
166 BVEC2 = 275,
167 BVEC3 = 276,
168 BVEC4 = 277,
169 IVEC2 = 278,
170 IVEC3 = 279,
171 IVEC4 = 280,
172 UVEC2 = 281,
173 UVEC3 = 282,
174 UVEC4 = 283,
175 VEC2 = 284,
176 VEC3 = 285,
177 VEC4 = 286,
178 CENTROID = 287,
179 IN_TOK = 288,
180 OUT_TOK = 289,
181 INOUT_TOK = 290,
182 UNIFORM = 291,
183 VARYING = 292,
184 NOPERSPECTIVE = 293,
185 FLAT = 294,
186 SMOOTH = 295,
187 MAT2X2 = 296,
188 MAT2X3 = 297,
189 MAT2X4 = 298,
190 MAT3X2 = 299,
191 MAT3X3 = 300,
192 MAT3X4 = 301,
193 MAT4X2 = 302,
194 MAT4X3 = 303,
195 MAT4X4 = 304,
196 SAMPLER1D = 305,
197 SAMPLER2D = 306,
198 SAMPLER3D = 307,
199 SAMPLERCUBE = 308,
200 SAMPLER1DSHADOW = 309,
201 SAMPLER2DSHADOW = 310,
202 SAMPLERCUBESHADOW = 311,
203 SAMPLER1DARRAY = 312,
204 SAMPLER2DARRAY = 313,
205 SAMPLER1DARRAYSHADOW = 314,
206 SAMPLER2DARRAYSHADOW = 315,
207 ISAMPLER1D = 316,
208 ISAMPLER2D = 317,
209 ISAMPLER3D = 318,
210 ISAMPLERCUBE = 319,
211 ISAMPLER1DARRAY = 320,
212 ISAMPLER2DARRAY = 321,
213 USAMPLER1D = 322,
214 USAMPLER2D = 323,
215 USAMPLER3D = 324,
216 USAMPLERCUBE = 325,
217 USAMPLER1DARRAY = 326,
218 USAMPLER2DARRAY = 327,
219 SAMPLER2DRECT = 328,
220 ISAMPLER2DRECT = 329,
221 USAMPLER2DRECT = 330,
222 SAMPLER2DRECTSHADOW = 331,
223 SAMPLERBUFFER = 332,
224 ISAMPLERBUFFER = 333,
225 USAMPLERBUFFER = 334,
226 SAMPLEREXTERNALOES = 335,
227 STRUCT = 336,
228 VOID_TOK = 337,
229 WHILE = 338,
230 IDENTIFIER = 339,
231 TYPE_IDENTIFIER = 340,
232 NEW_IDENTIFIER = 341,
233 FLOATCONSTANT = 342,
234 INTCONSTANT = 343,
235 UINTCONSTANT = 344,
236 BOOLCONSTANT = 345,
237 FIELD_SELECTION = 346,
238 LEFT_OP = 347,
239 RIGHT_OP = 348,
240 INC_OP = 349,
241 DEC_OP = 350,
242 LE_OP = 351,
243 GE_OP = 352,
244 EQ_OP = 353,
245 NE_OP = 354,
246 AND_OP = 355,
247 OR_OP = 356,
248 XOR_OP = 357,
249 MUL_ASSIGN = 358,
250 DIV_ASSIGN = 359,
251 ADD_ASSIGN = 360,
252 MOD_ASSIGN = 361,
253 LEFT_ASSIGN = 362,
254 RIGHT_ASSIGN = 363,
255 AND_ASSIGN = 364,
256 XOR_ASSIGN = 365,
257 OR_ASSIGN = 366,
258 SUB_ASSIGN = 367,
259 INVARIANT = 368,
260 LOWP = 369,
261 MEDIUMP = 370,
262 HIGHP = 371,
263 SUPERP = 372,
264 PRECISION = 373,
265 VERSION_TOK = 374,
266 EXTENSION = 375,
267 LINE = 376,
268 COLON = 377,
269 EOL = 378,
270 INTERFACE = 379,
271 OUTPUT = 380,
272 PRAGMA_DEBUG_ON = 381,
273 PRAGMA_DEBUG_OFF = 382,
274 PRAGMA_OPTIMIZE_ON = 383,
275 PRAGMA_OPTIMIZE_OFF = 384,
276 PRAGMA_INVARIANT_ALL = 385,
277 LAYOUT_TOK = 386,
278 ASM = 387,
279 CLASS = 388,
280 UNION = 389,
281 ENUM = 390,
282 TYPEDEF = 391,
283 TEMPLATE = 392,
284 THIS = 393,
285 PACKED_TOK = 394,
286 GOTO = 395,
287 INLINE_TOK = 396,
288 NOINLINE = 397,
289 VOLATILE = 398,
290 PUBLIC_TOK = 399,
291 STATIC = 400,
292 EXTERN = 401,
293 EXTERNAL = 402,
294 LONG_TOK = 403,
295 SHORT_TOK = 404,
296 DOUBLE_TOK = 405,
297 HALF = 406,
298 FIXED_TOK = 407,
299 UNSIGNED = 408,
300 INPUT_TOK = 409,
301 OUPTUT = 410,
302 HVEC2 = 411,
303 HVEC3 = 412,
304 HVEC4 = 413,
305 DVEC2 = 414,
306 DVEC3 = 415,
307 DVEC4 = 416,
308 FVEC2 = 417,
309 FVEC3 = 418,
310 FVEC4 = 419,
311 SAMPLER3DRECT = 420,
312 SIZEOF = 421,
313 CAST = 422,
314 NAMESPACE = 423,
315 USING = 424,
316 ERROR_TOK = 425,
317 COMMON = 426,
318 PARTITION = 427,
319 ACTIVE = 428,
320 FILTER = 429,
321 IMAGE1D = 430,
322 IMAGE2D = 431,
323 IMAGE3D = 432,
324 IMAGECUBE = 433,
325 IMAGE1DARRAY = 434,
326 IMAGE2DARRAY = 435,
327 IIMAGE1D = 436,
328 IIMAGE2D = 437,
329 IIMAGE3D = 438,
330 IIMAGECUBE = 439,
331 IIMAGE1DARRAY = 440,
332 IIMAGE2DARRAY = 441,
333 UIMAGE1D = 442,
334 UIMAGE2D = 443,
335 UIMAGE3D = 444,
336 UIMAGECUBE = 445,
337 UIMAGE1DARRAY = 446,
338 UIMAGE2DARRAY = 447,
339 IMAGE1DSHADOW = 448,
340 IMAGE2DSHADOW = 449,
341 IMAGEBUFFER = 450,
342 IIMAGEBUFFER = 451,
343 UIMAGEBUFFER = 452,
344 IMAGE1DARRAYSHADOW = 453,
345 IMAGE2DARRAYSHADOW = 454,
346 ROW_MAJOR = 455
347 };
348 #endif
349 /* Tokens. */
350 #define ATTRIBUTE 258
351 #define CONST_TOK 259
352 #define BOOL_TOK 260
353 #define FLOAT_TOK 261
354 #define INT_TOK 262
355 #define UINT_TOK 263
356 #define BREAK 264
357 #define CONTINUE 265
358 #define DO 266
359 #define ELSE 267
360 #define FOR 268
361 #define IF 269
362 #define DISCARD 270
363 #define RETURN 271
364 #define SWITCH 272
365 #define CASE 273
366 #define DEFAULT 274
367 #define BVEC2 275
368 #define BVEC3 276
369 #define BVEC4 277
370 #define IVEC2 278
371 #define IVEC3 279
372 #define IVEC4 280
373 #define UVEC2 281
374 #define UVEC3 282
375 #define UVEC4 283
376 #define VEC2 284
377 #define VEC3 285
378 #define VEC4 286
379 #define CENTROID 287
380 #define IN_TOK 288
381 #define OUT_TOK 289
382 #define INOUT_TOK 290
383 #define UNIFORM 291
384 #define VARYING 292
385 #define NOPERSPECTIVE 293
386 #define FLAT 294
387 #define SMOOTH 295
388 #define MAT2X2 296
389 #define MAT2X3 297
390 #define MAT2X4 298
391 #define MAT3X2 299
392 #define MAT3X3 300
393 #define MAT3X4 301
394 #define MAT4X2 302
395 #define MAT4X3 303
396 #define MAT4X4 304
397 #define SAMPLER1D 305
398 #define SAMPLER2D 306
399 #define SAMPLER3D 307
400 #define SAMPLERCUBE 308
401 #define SAMPLER1DSHADOW 309
402 #define SAMPLER2DSHADOW 310
403 #define SAMPLERCUBESHADOW 311
404 #define SAMPLER1DARRAY 312
405 #define SAMPLER2DARRAY 313
406 #define SAMPLER1DARRAYSHADOW 314
407 #define SAMPLER2DARRAYSHADOW 315
408 #define ISAMPLER1D 316
409 #define ISAMPLER2D 317
410 #define ISAMPLER3D 318
411 #define ISAMPLERCUBE 319
412 #define ISAMPLER1DARRAY 320
413 #define ISAMPLER2DARRAY 321
414 #define USAMPLER1D 322
415 #define USAMPLER2D 323
416 #define USAMPLER3D 324
417 #define USAMPLERCUBE 325
418 #define USAMPLER1DARRAY 326
419 #define USAMPLER2DARRAY 327
420 #define SAMPLER2DRECT 328
421 #define ISAMPLER2DRECT 329
422 #define USAMPLER2DRECT 330
423 #define SAMPLER2DRECTSHADOW 331
424 #define SAMPLERBUFFER 332
425 #define ISAMPLERBUFFER 333
426 #define USAMPLERBUFFER 334
427 #define SAMPLEREXTERNALOES 335
428 #define STRUCT 336
429 #define VOID_TOK 337
430 #define WHILE 338
431 #define IDENTIFIER 339
432 #define TYPE_IDENTIFIER 340
433 #define NEW_IDENTIFIER 341
434 #define FLOATCONSTANT 342
435 #define INTCONSTANT 343
436 #define UINTCONSTANT 344
437 #define BOOLCONSTANT 345
438 #define FIELD_SELECTION 346
439 #define LEFT_OP 347
440 #define RIGHT_OP 348
441 #define INC_OP 349
442 #define DEC_OP 350
443 #define LE_OP 351
444 #define GE_OP 352
445 #define EQ_OP 353
446 #define NE_OP 354
447 #define AND_OP 355
448 #define OR_OP 356
449 #define XOR_OP 357
450 #define MUL_ASSIGN 358
451 #define DIV_ASSIGN 359
452 #define ADD_ASSIGN 360
453 #define MOD_ASSIGN 361
454 #define LEFT_ASSIGN 362
455 #define RIGHT_ASSIGN 363
456 #define AND_ASSIGN 364
457 #define XOR_ASSIGN 365
458 #define OR_ASSIGN 366
459 #define SUB_ASSIGN 367
460 #define INVARIANT 368
461 #define LOWP 369
462 #define MEDIUMP 370
463 #define HIGHP 371
464 #define SUPERP 372
465 #define PRECISION 373
466 #define VERSION_TOK 374
467 #define EXTENSION 375
468 #define LINE 376
469 #define COLON 377
470 #define EOL 378
471 #define INTERFACE 379
472 #define OUTPUT 380
473 #define PRAGMA_DEBUG_ON 381
474 #define PRAGMA_DEBUG_OFF 382
475 #define PRAGMA_OPTIMIZE_ON 383
476 #define PRAGMA_OPTIMIZE_OFF 384
477 #define PRAGMA_INVARIANT_ALL 385
478 #define LAYOUT_TOK 386
479 #define ASM 387
480 #define CLASS 388
481 #define UNION 389
482 #define ENUM 390
483 #define TYPEDEF 391
484 #define TEMPLATE 392
485 #define THIS 393
486 #define PACKED_TOK 394
487 #define GOTO 395
488 #define INLINE_TOK 396
489 #define NOINLINE 397
490 #define VOLATILE 398
491 #define PUBLIC_TOK 399
492 #define STATIC 400
493 #define EXTERN 401
494 #define EXTERNAL 402
495 #define LONG_TOK 403
496 #define SHORT_TOK 404
497 #define DOUBLE_TOK 405
498 #define HALF 406
499 #define FIXED_TOK 407
500 #define UNSIGNED 408
501 #define INPUT_TOK 409
502 #define OUPTUT 410
503 #define HVEC2 411
504 #define HVEC3 412
505 #define HVEC4 413
506 #define DVEC2 414
507 #define DVEC3 415
508 #define DVEC4 416
509 #define FVEC2 417
510 #define FVEC3 418
511 #define FVEC4 419
512 #define SAMPLER3DRECT 420
513 #define SIZEOF 421
514 #define CAST 422
515 #define NAMESPACE 423
516 #define USING 424
517 #define ERROR_TOK 425
518 #define COMMON 426
519 #define PARTITION 427
520 #define ACTIVE 428
521 #define FILTER 429
522 #define IMAGE1D 430
523 #define IMAGE2D 431
524 #define IMAGE3D 432
525 #define IMAGECUBE 433
526 #define IMAGE1DARRAY 434
527 #define IMAGE2DARRAY 435
528 #define IIMAGE1D 436
529 #define IIMAGE2D 437
530 #define IIMAGE3D 438
531 #define IIMAGECUBE 439
532 #define IIMAGE1DARRAY 440
533 #define IIMAGE2DARRAY 441
534 #define UIMAGE1D 442
535 #define UIMAGE2D 443
536 #define UIMAGE3D 444
537 #define UIMAGECUBE 445
538 #define UIMAGE1DARRAY 446
539 #define UIMAGE2DARRAY 447
540 #define IMAGE1DSHADOW 448
541 #define IMAGE2DSHADOW 449
542 #define IMAGEBUFFER 450
543 #define IIMAGEBUFFER 451
544 #define UIMAGEBUFFER 452
545 #define IMAGE1DARRAYSHADOW 453
546 #define IMAGE2DARRAYSHADOW 454
547 #define ROW_MAJOR 455
548
549
550
551
552 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
553 typedef union YYSTYPE
554 {
555
556 /* Line 293 of yacc.c */
557 #line 59 "src/src/glsl/glsl_parser.yy"
558
559 int n;
560 float real;
561 const char *identifier;
562
563 struct ast_type_qualifier type_qualifier;
564
565 ast_node *node;
566 ast_type_specifier *type_specifier;
567 ast_fully_specified_type *fully_specified_type;
568 ast_function *function;
569 ast_parameter_declarator *parameter_declarator;
570 ast_function_definition *function_definition;
571 ast_compound_statement *compound_statement;
572 ast_expression *expression;
573 ast_declarator_list *declarator_list;
574 ast_struct_specifier *struct_specifier;
575 ast_declaration *declaration;
576 ast_switch_body *switch_body;
577 ast_case_label *case_label;
578 ast_case_label_list *case_label_list;
579 ast_case_statement *case_statement;
580 ast_case_statement_list *case_statement_list;
581
582 struct {
583 ast_node *cond;
584 ast_expression *rest;
585 } for_rest_statement;
586
587 struct {
588 ast_node *then_statement;
589 ast_node *else_statement;
590 } selection_rest_statement;
591
592
593
594 /* Line 293 of yacc.c */
595 #line 596 "src/chromium_gensrc/mesa/glsl_parser.cc"
596 } YYSTYPE;
597 # define YYSTYPE_IS_TRIVIAL 1
598 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
599 # define YYSTYPE_IS_DECLARED 1
600 #endif
601
602 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
603 typedef struct YYLTYPE
604 {
605 int first_line;
606 int first_column;
607 int last_line;
608 int last_column;
609 } YYLTYPE;
610 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
611 # define YYLTYPE_IS_DECLARED 1
612 # define YYLTYPE_IS_TRIVIAL 1
613 #endif
614
615
616 /* Copy the second part of user declarations. */
617
618
619 /* Line 343 of yacc.c */
620 #line 621 "src/chromium_gensrc/mesa/glsl_parser.cc"
621
622 #ifdef short
623 # undef short
624 #endif
625
626 #ifdef YYTYPE_UINT8
627 typedef YYTYPE_UINT8 yytype_uint8;
628 #else
629 typedef unsigned char yytype_uint8;
630 #endif
631
632 #ifdef YYTYPE_INT8
633 typedef YYTYPE_INT8 yytype_int8;
634 #elif (defined __STDC__ || defined __C99__FUNC__ \
635 || defined __cplusplus || defined _MSC_VER)
636 typedef signed char yytype_int8;
637 #else
638 typedef short int yytype_int8;
639 #endif
640
641 #ifdef YYTYPE_UINT16
642 typedef YYTYPE_UINT16 yytype_uint16;
643 #else
644 typedef unsigned short int yytype_uint16;
645 #endif
646
647 #ifdef YYTYPE_INT16
648 typedef YYTYPE_INT16 yytype_int16;
649 #else
650 typedef short int yytype_int16;
651 #endif
652
653 #ifndef YYSIZE_T
654 # ifdef __SIZE_TYPE__
655 # define YYSIZE_T __SIZE_TYPE__
656 # elif defined size_t
657 # define YYSIZE_T size_t
658 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
659 || defined __cplusplus || defined _MSC_VER)
660 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
661 # define YYSIZE_T size_t
662 # else
663 # define YYSIZE_T unsigned int
664 # endif
665 #endif
666
667 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
668
669 #ifndef YY_
670 # if defined YYENABLE_NLS && YYENABLE_NLS
671 # if ENABLE_NLS
672 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
673 # define YY_(msgid) dgettext ("bison-runtime", msgid)
674 # endif
675 # endif
676 # ifndef YY_
677 # define YY_(msgid) msgid
678 # endif
679 #endif
680
681 /* Suppress unused-variable warnings by "using" E. */
682 #if ! defined lint || defined __GNUC__
683 # define YYUSE(e) ((void) (e))
684 #else
685 # define YYUSE(e) /* empty */
686 #endif
687
688 /* Identity function, used to suppress warnings about constant conditions. */
689 #ifndef lint
690 # define YYID(n) (n)
691 #else
692 #if (defined __STDC__ || defined __C99__FUNC__ \
693 || defined __cplusplus || defined _MSC_VER)
694 static int
695 YYID (int yyi)
696 #else
697 static int
698 YYID (yyi)
699 int yyi;
700 #endif
701 {
702 return yyi;
703 }
704 #endif
705
706 #if ! defined yyoverflow || YYERROR_VERBOSE
707
708 /* The parser invokes alloca or malloc; define the necessary symbols. */
709
710 # ifdef YYSTACK_USE_ALLOCA
711 # if YYSTACK_USE_ALLOCA
712 # ifdef __GNUC__
713 # define YYSTACK_ALLOC __builtin_alloca
714 # elif defined __BUILTIN_VA_ARG_INCR
715 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
716 # elif defined _AIX
717 # define YYSTACK_ALLOC __alloca
718 # elif defined _MSC_VER
719 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
720 # define alloca _alloca
721 # else
722 # define YYSTACK_ALLOC alloca
723 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || de fined __C99__FUNC__ \
724 || defined __cplusplus || defined _MSC_VER)
725 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
726 # ifndef EXIT_SUCCESS
727 # define EXIT_SUCCESS 0
728 # endif
729 # endif
730 # endif
731 # endif
732 # endif
733
734 # ifdef YYSTACK_ALLOC
735 /* Pacify GCC's `empty if-body' warning. */
736 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
737 # ifndef YYSTACK_ALLOC_MAXIMUM
738 /* The OS might guarantee only one guard page at the bottom of the stack,
739 and a page size can be as small as 4096 bytes. So we cannot safely
740 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
741 to allow for a few compiler-allocated temporary stack slots. */
742 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
743 # endif
744 # else
745 # define YYSTACK_ALLOC YYMALLOC
746 # define YYSTACK_FREE YYFREE
747 # ifndef YYSTACK_ALLOC_MAXIMUM
748 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
749 # endif
750 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
751 && ! ((defined YYMALLOC || defined malloc) \
752 && (defined YYFREE || defined free)))
753 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
754 # ifndef EXIT_SUCCESS
755 # define EXIT_SUCCESS 0
756 # endif
757 # endif
758 # ifndef YYMALLOC
759 # define YYMALLOC malloc
760 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || define d __C99__FUNC__ \
761 || defined __cplusplus || defined _MSC_VER)
762 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
763 # endif
764 # endif
765 # ifndef YYFREE
766 # define YYFREE free
767 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
768 || defined __cplusplus || defined _MSC_VER)
769 void free (void *); /* INFRINGES ON USER NAME SPACE */
770 # endif
771 # endif
772 # endif
773 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
774
775
776 #if (! defined yyoverflow \
777 && (! defined __cplusplus \
778 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
779 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
780
781 /* A type that is properly aligned for any stack member. */
782 union yyalloc
783 {
784 yytype_int16 yyss_alloc;
785 YYSTYPE yyvs_alloc;
786 YYLTYPE yyls_alloc;
787 };
788
789 /* The size of the maximum gap between one aligned stack and the next. */
790 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
791
792 /* The size of an array large to enough to hold all stacks, each with
793 N elements. */
794 # define YYSTACK_BYTES(N) \
795 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
796 + 2 * YYSTACK_GAP_MAXIMUM)
797
798 # define YYCOPY_NEEDED 1
799
800 /* Relocate STACK from its old location to the new one. The
801 local variables YYSIZE and YYSTACKSIZE give the old and new number of
802 elements in the stack, and YYPTR gives the new location of the
803 stack. Advance YYPTR to a properly aligned location for the next
804 stack. */
805 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
806 do \
807 { \
808 YYSIZE_T yynewbytes; \
809 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
810 Stack = &yyptr->Stack_alloc; \
811 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
812 yyptr += yynewbytes / sizeof (*yyptr); \
813 } \
814 while (YYID (0))
815
816 #endif
817
818 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
819 /* Copy COUNT objects from FROM to TO. The source and destination do
820 not overlap. */
821 # ifndef YYCOPY
822 # if defined __GNUC__ && 1 < __GNUC__
823 # define YYCOPY(To, From, Count) \
824 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
825 # else
826 # define YYCOPY(To, From, Count) \
827 do \
828 { \
829 YYSIZE_T yyi; \
830 for (yyi = 0; yyi < (Count); yyi++) \
831 (To)[yyi] = (From)[yyi]; \
832 } \
833 while (YYID (0))
834 # endif
835 # endif
836 #endif /* !YYCOPY_NEEDED */
837
838 /* YYFINAL -- State number of the termination state. */
839 #define YYFINAL 5
840 /* YYLAST -- Last index in YYTABLE. */
841 #define YYLAST 3101
842
843 /* YYNTOKENS -- Number of terminals. */
844 #define YYNTOKENS 225
845 /* YYNNTS -- Number of nonterminals. */
846 #define YYNNTS 103
847 /* YYNRULES -- Number of rules. */
848 #define YYNRULES 318
849 /* YYNRULES -- Number of states. */
850 #define YYNSTATES 483
851
852 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
853 #define YYUNDEFTOK 2
854 #define YYMAXUTOK 455
855
856 #define YYTRANSLATE(YYX) \
857 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
858
859 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
860 static const yytype_uint8 yytranslate[] =
861 {
862 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
863 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
864 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
865 2, 2, 2, 209, 2, 2, 2, 213, 216, 2,
866 201, 202, 211, 207, 206, 208, 205, 212, 2, 2,
867 2, 2, 2, 2, 2, 2, 2, 2, 220, 222,
868 214, 221, 215, 219, 2, 2, 2, 2, 2, 2,
869 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
870 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
871 2, 203, 2, 204, 217, 2, 2, 2, 2, 2,
872 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
873 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
874 2, 2, 2, 223, 218, 224, 210, 2, 2, 2,
875 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
876 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
877 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
878 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
879 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
880 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
881 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
882 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
883 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
884 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
885 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
886 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
887 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
888 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
889 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
890 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
891 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
892 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
893 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
894 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
895 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
896 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
897 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
898 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
899 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
900 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
901 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
902 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
903 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
904 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
905 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
906 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
907 195, 196, 197, 198, 199, 200
908 };
909
910 #if YYDEBUG
911 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
912 YYRHS. */
913 static const yytype_uint16 yyprhs[] =
914 {
915 0, 0, 3, 4, 9, 10, 14, 17, 20, 23,
916 26, 29, 30, 33, 35, 37, 39, 45, 47, 50,
917 52, 54, 56, 58, 60, 62, 64, 68, 70, 75,
918 77, 81, 84, 87, 89, 91, 93, 97, 100, 103,
919 106, 108, 111, 115, 118, 120, 122, 124, 127, 130,
920 133, 135, 138, 142, 145, 147, 150, 153, 156, 158,
921 160, 162, 164, 166, 170, 174, 178, 180, 184, 188,
922 190, 194, 198, 200, 204, 208, 212, 216, 218, 222,
923 226, 228, 232, 234, 238, 240, 244, 246, 250, 252,
924 256, 258, 262, 264, 270, 272, 276, 278, 280, 282,
925 284, 286, 288, 290, 292, 294, 296, 298, 300, 304,
926 306, 309, 312, 317, 319, 322, 324, 326, 329, 333,
927 337, 340, 346, 350, 353, 357, 360, 361, 363, 365,
928 367, 369, 371, 375, 381, 388, 396, 405, 411, 413,
929 416, 421, 427, 434, 442, 447, 450, 452, 455, 460,
930 462, 466, 468, 472, 474, 476, 478, 480, 482, 484,
931 486, 488, 490, 493, 495, 498, 501, 505, 507, 509,
932 511, 513, 516, 518, 520, 523, 526, 528, 530, 533,
933 535, 539, 544, 546, 548, 550, 552, 554, 556, 558,
934 560, 562, 564, 566, 568, 570, 572, 574, 576, 578,
935 580, 582, 584, 586, 588, 590, 592, 594, 596, 598,
936 600, 602, 604, 606, 608, 610, 612, 614, 616, 618,
937 620, 622, 624, 626, 628, 630, 632, 634, 636, 638,
938 640, 642, 644, 646, 648, 650, 652, 654, 656, 658,
939 660, 662, 664, 666, 668, 670, 676, 681, 683, 686,
940 690, 692, 696, 698, 703, 705, 707, 709, 711, 713,
941 715, 717, 719, 721, 723, 726, 727, 732, 734, 736,
942 739, 743, 745, 748, 750, 753, 759, 763, 765, 767,
943 772, 778, 781, 785, 789, 792, 794, 797, 800, 803,
944 805, 808, 814, 822, 829, 831, 833, 835, 836, 839,
945 843, 846, 849, 852, 856, 859, 861, 863, 865, 867,
946 870, 877, 885, 887, 890, 891, 893, 899, 904
947 };
948
949 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
950 static const yytype_int16 yyrhs[] =
951 {
952 226, 0, -1, -1, 228, 230, 227, 233, -1, -1,
953 119, 88, 123, -1, 126, 123, -1, 127, 123, -1,
954 128, 123, -1, 129, 123, -1, 130, 123, -1, -1,
955 230, 232, -1, 84, -1, 85, -1, 86, -1, 120,
956 231, 122, 231, 123, -1, 321, -1, 233, 321, -1,
957 84, -1, 86, -1, 234, -1, 88, -1, 89, -1,
958 87, -1, 90, -1, 201, 265, 202, -1, 235, -1,
959 236, 203, 237, 204, -1, 238, -1, 236, 205, 231,
960 -1, 236, 94, -1, 236, 95, -1, 265, -1, 239,
961 -1, 240, -1, 236, 205, 245, -1, 242, 202, -1,
962 241, 202, -1, 243, 82, -1, 243, -1, 243, 263,
963 -1, 242, 206, 263, -1, 244, 201, -1, 287, -1,
964 234, -1, 91, -1, 247, 202, -1, 246, 202, -1,
965 248, 82, -1, 248, -1, 248, 263, -1, 247, 206,
966 263, -1, 234, 201, -1, 236, -1, 94, 249, -1,
967 95, 249, -1, 250, 249, -1, 207, -1, 208, -1,
968 209, -1, 210, -1, 249, -1, 251, 211, 249, -1,
969 251, 212, 249, -1, 251, 213, 249, -1, 251, -1,
970 252, 207, 251, -1, 252, 208, 251, -1, 252, -1,
971 253, 92, 252, -1, 253, 93, 252, -1, 253, -1,
972 254, 214, 253, -1, 254, 215, 253, -1, 254, 96,
973 253, -1, 254, 97, 253, -1, 254, -1, 255, 98,
974 254, -1, 255, 99, 254, -1, 255, -1, 256, 216,
975 255, -1, 256, -1, 257, 217, 256, -1, 257, -1,
976 258, 218, 257, -1, 258, -1, 259, 100, 258, -1,
977 259, -1, 260, 102, 259, -1, 260, -1, 261, 101,
978 260, -1, 261, -1, 261, 219, 265, 220, 263, -1,
979 262, -1, 249, 264, 263, -1, 221, -1, 103, -1,
980 104, -1, 106, -1, 105, -1, 112, -1, 107, -1,
981 108, -1, 109, -1, 110, -1, 111, -1, 263, -1,
982 265, 206, 263, -1, 262, -1, 268, 222, -1, 276,
983 222, -1, 118, 291, 288, 222, -1, 323, -1, 269,
984 202, -1, 271, -1, 270, -1, 271, 273, -1, 270,
985 206, 273, -1, 278, 234, 201, -1, 287, 231, -1,
986 287, 231, 203, 266, 204, -1, 284, 274, 272, -1,
987 274, 272, -1, 284, 274, 275, -1, 274, 275, -1,
988 -1, 33, -1, 34, -1, 35, -1, 287, -1, 277,
989 -1, 276, 206, 231, -1, 276, 206, 231, 203, 204,
990 -1, 276, 206, 231, 203, 266, 204, -1, 276, 206,
991 231, 203, 204, 221, 297, -1, 276, 206, 231, 203,
992 266, 204, 221, 297, -1, 276, 206, 231, 221, 297,
993 -1, 278, -1, 278, 231, -1, 278, 231, 203, 204,
994 -1, 278, 231, 203, 266, 204, -1, 278, 231, 203,
995 204, 221, 297, -1, 278, 231, 203, 266, 204, 221,
996 297, -1, 278, 231, 221, 297, -1, 113, 234, -1,
997 287, -1, 285, 287, -1, 131, 201, 280, 202, -1,
998 281, -1, 280, 206, 281, -1, 231, -1, 231, 221,
999 88, -1, 282, -1, 200, -1, 139, -1, 40, -1,
1000 39, -1, 38, -1, 4, -1, 286, -1, 279, -1,
1001 279, 286, -1, 283, -1, 283, 286, -1, 113, 286,
1002 -1, 113, 283, 286, -1, 113, -1, 4, -1, 3,
1003 -1, 37, -1, 32, 37, -1, 33, -1, 34, -1,
1004 32, 33, -1, 32, 34, -1, 36, -1, 288, -1,
1005 291, 288, -1, 289, -1, 289, 203, 204, -1, 289,
1006 203, 266, 204, -1, 290, -1, 292, -1, 85, -1,
1007 82, -1, 6, -1, 7, -1, 8, -1, 5, -1,
1008 29, -1, 30, -1, 31, -1, 20, -1, 21, -1,
1009 22, -1, 23, -1, 24, -1, 25, -1, 26, -1,
1010 27, -1, 28, -1, 41, -1, 42, -1, 43, -1,
1011 44, -1, 45, -1, 46, -1, 47, -1, 48, -1,
1012 49, -1, 50, -1, 51, -1, 73, -1, 52, -1,
1013 53, -1, 80, -1, 54, -1, 55, -1, 76, -1,
1014 56, -1, 57, -1, 58, -1, 59, -1, 60, -1,
1015 77, -1, 61, -1, 62, -1, 74, -1, 63, -1,
1016 64, -1, 65, -1, 66, -1, 78, -1, 67, -1,
1017 68, -1, 75, -1, 69, -1, 70, -1, 71, -1,
1018 72, -1, 79, -1, 116, -1, 115, -1, 114, -1,
1019 81, 231, 223, 293, 224, -1, 81, 223, 293, 224,
1020 -1, 294, -1, 293, 294, -1, 287, 295, 222, -1,
1021 296, -1, 295, 206, 296, -1, 231, -1, 231, 203,
1022 266, 204, -1, 263, -1, 267, -1, 301, -1, 300,
1023 -1, 298, -1, 306, -1, 307, -1, 310, -1, 316,
1024 -1, 320, -1, 223, 224, -1, -1, 223, 302, 305,
1025 224, -1, 304, -1, 300, -1, 223, 224, -1, 223,
1026 305, 224, -1, 299, -1, 305, 299, -1, 222, -1,
1027 265, 222, -1, 14, 201, 265, 202, 308, -1, 299,
1028 12, 299, -1, 299, -1, 265, -1, 278, 231, 221,
1029 297, -1, 17, 201, 265, 202, 311, -1, 223, 224,
1030 -1, 223, 315, 224, -1, 18, 265, 220, -1, 19,
1031 220, -1, 312, -1, 313, 312, -1, 313, 299, -1,
1032 314, 299, -1, 314, -1, 315, 314, -1, 83, 201,
1033 309, 202, 303, -1, 11, 299, 83, 201, 265, 202,
1034 222, -1, 13, 201, 317, 319, 202, 303, -1, 306,
1035 -1, 298, -1, 309, -1, -1, 318, 222, -1, 318,
1036 222, 265, -1, 10, 222, -1, 9, 222, -1, 16,
1037 222, -1, 16, 265, 222, -1, 15, 222, -1, 322,
1038 -1, 267, -1, 229, -1, 327, -1, 268, 304, -1,
1039 36, 86, 223, 324, 224, 222, -1, 279, 36, 86,
1040 223, 324, 224, 222, -1, 326, -1, 326, 324, -1,
1041 -1, 36, -1, 279, 325, 287, 295, 222, -1, 325,
1042 287, 295, 222, -1, 279, 36, 222, -1
1043 };
1044
1045 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
1046 static const yytype_uint16 yyrline[] =
1047 {
1048 0, 243, 243, 242, 254, 256, 309, 310, 311, 312,
1049 313, 325, 327, 331, 332, 333, 337, 346, 354, 365,
1050 366, 370, 377, 384, 391, 398, 405, 412, 413, 419,
1051 423, 430, 436, 445, 449, 453, 454, 463, 464, 468,
1052 469, 473, 479, 491, 495, 501, 508, 518, 519, 523,
1053 524, 528, 534, 546, 557, 558, 564, 570, 580, 581,
1054 582, 583, 587, 588, 594, 600, 609, 610, 616, 625,
1055 626, 632, 641, 642, 648, 654, 660, 669, 670, 676,
1056 685, 686, 695, 696, 705, 706, 715, 716, 725, 726,
1057 735, 736, 745, 746, 755, 756, 765, 766, 767, 768,
1058 769, 770, 771, 772, 773, 774, 775, 779, 783, 799,
1059 803, 808, 812, 818, 825, 829, 830, 834, 839, 847,
1060 861, 871, 886, 893, 898, 909, 922, 925, 930, 935,
1061 944, 948, 949, 959, 969, 979, 989, 999, 1013, 1020,
1062 1029, 1038, 1047, 1056, 1065, 1074, 1088, 1095, 1106, 1113,
1063 1114, 1124, 1192, 1238, 1260, 1265, 1273, 1278, 1283, 1291,
1064 1299, 1300, 1301, 1306, 1307, 1312, 1317, 1323, 1331, 1336,
1065 1341, 1346, 1352, 1357, 1362, 1367, 1372, 1380, 1384, 1392,
1066 1393, 1399, 1408, 1414, 1420, 1429, 1430, 1431, 1432, 1433,
1067 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443,
1068 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453,
1069 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463,
1070 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473,
1071 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483,
1072 1484, 1485, 1489, 1499, 1509, 1522, 1529, 1538, 1543, 1551,
1073 1566, 1571, 1579, 1585, 1594, 1598, 1604, 1605, 1609, 1610,
1074 1611, 1612, 1613, 1614, 1618, 1625, 1624, 1638, 1639, 1643,
1075 1649, 1658, 1668, 1680, 1686, 1695, 1704, 1709, 1717, 1721,
1076 1739, 1747, 1752, 1760, 1765, 1773, 1781, 1789, 1797, 1805,
1077 1813, 1821, 1828, 1835, 1845, 1846, 1850, 1852, 1858, 1863,
1078 1872, 1878, 1884, 1890, 1896, 1905, 1906, 1907, 1908, 1912,
1079 1926, 1942, 1965, 1970, 1978, 1980, 1984, 1999, 2016
1080 };
1081 #endif
1082
1083 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1084 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1085 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1086 static const char *const yytname[] =
1087 {
1088 "$end", "error", "$undefined", "ATTRIBUTE", "CONST_TOK", "BOOL_TOK",
1089 "FLOAT_TOK", "INT_TOK", "UINT_TOK", "BREAK", "CONTINUE", "DO", "ELSE",
1090 "FOR", "IF", "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "BVEC2",
1091 "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4", "UVEC2", "UVEC3", "UVEC4",
1092 "VEC2", "VEC3", "VEC4", "CENTROID", "IN_TOK", "OUT_TOK", "INOUT_TOK",
1093 "UNIFORM", "VARYING", "NOPERSPECTIVE", "FLAT", "SMOOTH", "MAT2X2",
1094 "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3",
1095 "MAT4X4", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
1096 "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW",
1097 "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW",
1098 "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D",
1099 "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D",
1100 "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY",
1101 "USAMPLER2DARRAY", "SAMPLER2DRECT", "ISAMPLER2DRECT", "USAMPLER2DRECT",
1102 "SAMPLER2DRECTSHADOW", "SAMPLERBUFFER", "ISAMPLERBUFFER",
1103 "USAMPLERBUFFER", "SAMPLEREXTERNALOES", "STRUCT", "VOID_TOK", "WHILE",
1104 "IDENTIFIER", "TYPE_IDENTIFIER", "NEW_IDENTIFIER", "FLOATCONSTANT",
1105 "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT", "FIELD_SELECTION",
1106 "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP", "GE_OP", "EQ_OP",
1107 "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN",
1108 "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN",
1109 "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "INVARIANT", "LOWP", "MEDIUMP",
1110 "HIGHP", "SUPERP", "PRECISION", "VERSION_TOK", "EXTENSION", "LINE",
1111 "COLON", "EOL", "INTERFACE", "OUTPUT", "PRAGMA_DEBUG_ON",
1112 "PRAGMA_DEBUG_OFF", "PRAGMA_OPTIMIZE_ON", "PRAGMA_OPTIMIZE_OFF",
1113 "PRAGMA_INVARIANT_ALL", "LAYOUT_TOK", "ASM", "CLASS", "UNION", "ENUM",
1114 "TYPEDEF", "TEMPLATE", "THIS", "PACKED_TOK", "GOTO", "INLINE_TOK",
1115 "NOINLINE", "VOLATILE", "PUBLIC_TOK", "STATIC", "EXTERN", "EXTERNAL",
1116 "LONG_TOK", "SHORT_TOK", "DOUBLE_TOK", "HALF", "FIXED_TOK", "UNSIGNED",
1117 "INPUT_TOK", "OUPTUT", "HVEC2", "HVEC3", "HVEC4", "DVEC2", "DVEC3",
1118 "DVEC4", "FVEC2", "FVEC3", "FVEC4", "SAMPLER3DRECT", "SIZEOF", "CAST",
1119 "NAMESPACE", "USING", "ERROR_TOK", "COMMON", "PARTITION", "ACTIVE",
1120 "FILTER", "IMAGE1D", "IMAGE2D", "IMAGE3D", "IMAGECUBE", "IMAGE1DARRAY",
1121 "IMAGE2DARRAY", "IIMAGE1D", "IIMAGE2D", "IIMAGE3D", "IIMAGECUBE",
1122 "IIMAGE1DARRAY", "IIMAGE2DARRAY", "UIMAGE1D", "UIMAGE2D", "UIMAGE3D",
1123 "UIMAGECUBE", "UIMAGE1DARRAY", "UIMAGE2DARRAY", "IMAGE1DSHADOW",
1124 "IMAGE2DSHADOW", "IMAGEBUFFER", "IIMAGEBUFFER", "UIMAGEBUFFER",
1125 "IMAGE1DARRAYSHADOW", "IMAGE2DARRAYSHADOW", "ROW_MAJOR", "'('", "')'",
1126 "'['", "']'", "'.'", "','", "'+'", "'-'", "'!'", "'~'", "'*'", "'/'",
1127 "'%'", "'<'", "'>'", "'&'", "'^'", "'|'", "'?'", "':'", "'='", "';'",
1128 "'{'", "'}'", "$accept", "translation_unit", "$@1", "version_statement",
1129 "pragma_statement", "extension_statement_list", "any_identifier",
1130 "extension_statement", "external_declaration_list",
1131 "variable_identifier", "primary_expression", "postfix_expression",
1132 "integer_expression", "function_call", "function_call_or_method",
1133 "function_call_generic", "function_call_header_no_parameters",
1134 "function_call_header_with_parameters", "function_call_header",
1135 "function_identifier", "method_call_generic",
1136 "method_call_header_no_parameters", "method_call_header_with_parameters",
1137 "method_call_header", "unary_expression", "unary_operator",
1138 "multiplicative_expression", "additive_expression", "shift_expression",
1139 "relational_expression", "equality_expression", "and_expression",
1140 "exclusive_or_expression", "inclusive_or_expression",
1141 "logical_and_expression", "logical_xor_expression",
1142 "logical_or_expression", "conditional_expression",
1143 "assignment_expression", "assignment_operator", "expression",
1144 "constant_expression", "declaration", "function_prototype",
1145 "function_declarator", "function_header_with_parameters",
1146 "function_header", "parameter_declarator", "parameter_declaration",
1147 "parameter_qualifier", "parameter_type_specifier",
1148 "init_declarator_list", "single_declaration", "fully_specified_type",
1149 "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id",
1150 "uniform_block_layout_qualifier", "interpolation_qualifier",
1151 "parameter_type_qualifier", "type_qualifier", "storage_qualifier",
1152 "type_specifier", "type_specifier_no_prec", "type_specifier_nonarray",
1153 "basic_type_specifier_nonarray", "precision_qualifier",
1154 "struct_specifier", "struct_declaration_list", "struct_declaration",
1155 "struct_declarator_list", "struct_declarator", "initializer",
1156 "declaration_statement", "statement", "simple_statement",
1157 "compound_statement", "$@2", "statement_no_new_scope",
1158 "compound_statement_no_new_scope", "statement_list",
1159 "expression_statement", "selection_statement",
1160 "selection_rest_statement", "condition", "switch_statement",
1161 "switch_body", "case_label", "case_label_list", "case_statement",
1162 "case_statement_list", "iteration_statement", "for_init_statement",
1163 "conditionopt", "for_rest_statement", "jump_statement",
1164 "external_declaration", "function_definition", "uniform_block",
1165 "member_list", "uniformopt", "member_declaration", "layout_defaults", 0
1166 };
1167 #endif
1168
1169 # ifdef YYPRINT
1170 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1171 token YYLEX-NUM. */
1172 static const yytype_uint16 yytoknum[] =
1173 {
1174 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1175 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1176 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1177 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1178 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1179 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1180 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1181 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1182 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1183 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1184 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1185 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1186 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1187 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1188 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1189 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1190 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1191 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1192 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1193 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
1194 455, 40, 41, 91, 93, 46, 44, 43, 45, 33,
1195 126, 42, 47, 37, 60, 62, 38, 94, 124, 63,
1196 58, 61, 59, 123, 125
1197 };
1198 # endif
1199
1200 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1201 static const yytype_uint16 yyr1[] =
1202 {
1203 0, 225, 227, 226, 228, 228, 229, 229, 229, 229,
1204 229, 230, 230, 231, 231, 231, 232, 233, 233, 234,
1205 234, 235, 235, 235, 235, 235, 235, 236, 236, 236,
1206 236, 236, 236, 237, 238, 239, 239, 240, 240, 241,
1207 241, 242, 242, 243, 244, 244, 244, 245, 245, 246,
1208 246, 247, 247, 248, 249, 249, 249, 249, 250, 250,
1209 250, 250, 251, 251, 251, 251, 252, 252, 252, 253,
1210 253, 253, 254, 254, 254, 254, 254, 255, 255, 255,
1211 256, 256, 257, 257, 258, 258, 259, 259, 260, 260,
1212 261, 261, 262, 262, 263, 263, 264, 264, 264, 264,
1213 264, 264, 264, 264, 264, 264, 264, 265, 265, 266,
1214 267, 267, 267, 267, 268, 269, 269, 270, 270, 271,
1215 272, 272, 273, 273, 273, 273, 274, 274, 274, 274,
1216 275, 276, 276, 276, 276, 276, 276, 276, 277, 277,
1217 277, 277, 277, 277, 277, 277, 278, 278, 279, 280,
1218 280, 281, 281, 281, 282, 282, 283, 283, 283, 284,
1219 285, 285, 285, 285, 285, 285, 285, 285, 286, 286,
1220 286, 286, 286, 286, 286, 286, 286, 287, 287, 288,
1221 288, 288, 289, 289, 289, 290, 290, 290, 290, 290,
1222 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
1223 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
1224 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
1225 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
1226 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
1227 290, 290, 291, 291, 291, 292, 292, 293, 293, 294,
1228 295, 295, 296, 296, 297, 298, 299, 299, 300, 300,
1229 300, 300, 300, 300, 301, 302, 301, 303, 303, 304,
1230 304, 305, 305, 306, 306, 307, 308, 308, 309, 309,
1231 310, 311, 311, 312, 312, 313, 313, 314, 314, 315,
1232 315, 316, 316, 316, 317, 317, 318, 318, 319, 319,
1233 320, 320, 320, 320, 320, 321, 321, 321, 321, 322,
1234 323, 323, 324, 324, 325, 325, 326, 326, 327
1235 };
1236
1237 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
1238 static const yytype_uint8 yyr2[] =
1239 {
1240 0, 2, 0, 4, 0, 3, 2, 2, 2, 2,
1241 2, 0, 2, 1, 1, 1, 5, 1, 2, 1,
1242 1, 1, 1, 1, 1, 1, 3, 1, 4, 1,
1243 3, 2, 2, 1, 1, 1, 3, 2, 2, 2,
1244 1, 2, 3, 2, 1, 1, 1, 2, 2, 2,
1245 1, 2, 3, 2, 1, 2, 2, 2, 1, 1,
1246 1, 1, 1, 3, 3, 3, 1, 3, 3, 1,
1247 3, 3, 1, 3, 3, 3, 3, 1, 3, 3,
1248 1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
1249 1, 3, 1, 5, 1, 3, 1, 1, 1, 1,
1250 1, 1, 1, 1, 1, 1, 1, 1, 3, 1,
1251 2, 2, 4, 1, 2, 1, 1, 2, 3, 3,
1252 2, 5, 3, 2, 3, 2, 0, 1, 1, 1,
1253 1, 1, 3, 5, 6, 7, 8, 5, 1, 2,
1254 4, 5, 6, 7, 4, 2, 1, 2, 4, 1,
1255 3, 1, 3, 1, 1, 1, 1, 1, 1, 1,
1256 1, 1, 2, 1, 2, 2, 3, 1, 1, 1,
1257 1, 2, 1, 1, 2, 2, 1, 1, 2, 1,
1258 3, 4, 1, 1, 1, 1, 1, 1, 1, 1,
1259 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1260 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1261 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1262 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1263 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1264 1, 1, 1, 1, 1, 5, 4, 1, 2, 3,
1265 1, 3, 1, 4, 1, 1, 1, 1, 1, 1,
1266 1, 1, 1, 1, 2, 0, 4, 1, 1, 2,
1267 3, 1, 2, 1, 2, 5, 3, 1, 1, 4,
1268 5, 2, 3, 3, 2, 1, 2, 2, 2, 1,
1269 2, 5, 7, 6, 1, 1, 1, 0, 2, 3,
1270 2, 2, 2, 3, 2, 1, 1, 1, 1, 2,
1271 6, 7, 1, 2, 0, 1, 5, 4, 3
1272 };
1273
1274 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1275 Performed when YYTABLE doesn't specify something else to do. Zero
1276 means the default is an error. */
1277 static const yytype_uint16 yydefact[] =
1278 {
1279 4, 0, 0, 11, 0, 1, 2, 5, 0, 0,
1280 12, 13, 14, 15, 0, 169, 168, 189, 186, 187,
1281 188, 193, 194, 195, 196, 197, 198, 199, 200, 201,
1282 190, 191, 192, 0, 172, 173, 176, 170, 158, 157,
1283 156, 202, 203, 204, 205, 206, 207, 208, 209, 210,
1284 211, 212, 214, 215, 217, 218, 220, 221, 222, 223,
1285 224, 226, 227, 229, 230, 231, 232, 234, 235, 237,
1286 238, 239, 240, 213, 228, 236, 219, 225, 233, 241,
1287 216, 0, 185, 184, 167, 244, 243, 242, 0, 0,
1288 0, 0, 0, 0, 0, 307, 3, 306, 0, 0,
1289 116, 126, 0, 131, 138, 161, 163, 0, 160, 146,
1290 177, 179, 182, 0, 183, 17, 305, 113, 308, 0,
1291 174, 175, 171, 0, 0, 0, 176, 19, 20, 145,
1292 0, 165, 0, 6, 7, 8, 9, 10, 0, 18,
1293 110, 0, 309, 114, 126, 159, 127, 128, 129, 117,
1294 0, 126, 0, 111, 13, 15, 139, 0, 176, 162,
1295 164, 147, 0, 178, 0, 314, 0, 0, 247, 0,
1296 166, 0, 155, 154, 151, 0, 149, 153, 0, 0,
1297 0, 0, 0, 0, 0, 0, 0, 24, 22, 23,
1298 25, 46, 0, 0, 0, 58, 59, 60, 61, 273,
1299 265, 269, 21, 27, 54, 29, 34, 35, 0, 0,
1300 40, 0, 62, 0, 66, 69, 72, 77, 80, 82,
1301 84, 86, 88, 90, 92, 94, 107, 0, 255, 0,
1302 161, 146, 258, 271, 257, 256, 0, 259, 260, 261,
1303 262, 263, 118, 123, 125, 130, 0, 132, 0, 0,
1304 119, 0, 318, 180, 62, 109, 0, 44, 16, 315,
1305 314, 0, 0, 314, 252, 0, 250, 246, 248, 0,
1306 112, 0, 148, 0, 301, 300, 0, 0, 0, 304,
1307 302, 0, 0, 0, 55, 56, 0, 264, 0, 31,
1308 32, 0, 0, 38, 37, 0, 185, 41, 43, 97,
1309 98, 100, 99, 102, 103, 104, 105, 106, 101, 96,
1310 0, 57, 0, 0, 0, 0, 0, 0, 0, 0,
1311 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1312 0, 0, 0, 274, 176, 270, 272, 120, 122, 124,
1313 0, 0, 140, 0, 254, 144, 314, 181, 0, 0,
1314 0, 313, 0, 0, 249, 245, 152, 150, 0, 295,
1315 294, 297, 0, 303, 0, 167, 278, 0, 161, 0,
1316 26, 0, 0, 33, 30, 0, 36, 0, 0, 50,
1317 42, 95, 63, 64, 65, 67, 68, 70, 71, 75,
1318 76, 73, 74, 78, 79, 81, 83, 85, 87, 89,
1319 91, 0, 108, 0, 133, 0, 137, 0, 141, 0,
1320 0, 310, 0, 0, 251, 0, 296, 0, 0, 0,
1321 0, 0, 0, 266, 28, 53, 48, 47, 0, 185,
1322 51, 0, 0, 0, 134, 142, 0, 0, 0, 317,
1323 253, 0, 298, 0, 277, 275, 0, 280, 0, 268,
1324 291, 267, 52, 93, 121, 135, 0, 143, 311, 316,
1325 0, 299, 293, 0, 0, 0, 281, 285, 0, 289,
1326 0, 279, 136, 292, 276, 0, 284, 287, 286, 288,
1327 282, 290, 283
1328 };
1329
1330 /* YYDEFGOTO[NTERM-NUM]. */
1331 static const yytype_int16 yydefgoto[] =
1332 {
1333 -1, 2, 9, 3, 95, 6, 264, 10, 96, 202,
1334 203, 204, 372, 205, 206, 207, 208, 209, 210, 211,
1335 376, 377, 378, 379, 212, 213, 214, 215, 216, 217,
1336 218, 219, 220, 221, 222, 223, 224, 225, 226, 310,
1337 227, 256, 228, 229, 99, 100, 101, 243, 149, 150,
1338 244, 102, 103, 104, 230, 175, 176, 177, 106, 151,
1339 107, 108, 257, 110, 111, 112, 113, 114, 167, 168,
1340 265, 266, 345, 232, 233, 234, 235, 288, 450, 451,
1341 236, 237, 238, 445, 369, 239, 447, 467, 468, 469,
1342 470, 240, 361, 417, 418, 241, 115, 116, 117, 261,
1343 262, 263, 118
1344 };
1345
1346 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1347 STATE-NUM. */
1348 #define YYPACT_NINF -373
1349 static const yytype_int16 yypact[] =
1350 {
1351 -75, -37, 53, -373, -50, -373, -19, -373, 160, 2970,
1352 -373, -373, -373, -373, -36, -373, -373, -373, -373, -373,
1353 -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
1354 -373, -373, -373, 130, -373, -373, 28, -373, -373, -373,
1355 -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
1356 -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
1357 -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
1358 -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
1359 -373, -58, -373, -373, 43, -373, -373, -373, 147, 0,
1360 17, 20, 26, 46, -26, -373, 2970, -373, -166, -15,
1361 -8, 2, -128, -373, 196, 173, 198, 1003, -373, -373,
1362 -373, 5, -373, 1225, -373, -373, -373, -373, -373, 160,
1363 -373, -373, -373, -20, 1003, 10, -373, -373, -373, -373,
1364 198, -373, 1225, -373, -373, -373, -373, -373, -54, -373,
1365 -373, 460, -373, -373, 100, -373, -373, -373, -373, -373,
1366 1003, 181, 160, -373, 19, 35, -162, 38, -78, -373,
1367 -373, -373, 2180, -373, 95, -3, 160, 559, -373, 1003,
1368 -373, 42, -373, -373, 21, -157, -373, -373, 47, 49,
1369 1347, 40, 64, 50, 1875, 75, 90, -373, -373, -373,
1370 -373, -373, 2568, 2568, 2568, -373, -373, -373, -373, -373,
1371 60, -373, 96, -373, -52, -373, -373, -373, 48, -114,
1372 2759, 98, -42, 2568, 83, -53, 101, -76, 113, 84,
1373 85, 86, 201, 204, -89, -373, -373, -122, -373, 81,
1374 222, 106, -373, -373, -373, -373, 682, -373, -373, -373,
1375 -373, -373, -373, -373, -373, 160, 1003, -149, 2280, 2568,
1376 -373, 87, -373, -373, -373, -373, 104, -373, -373, -373,
1377 273, 91, 1003, -25, 108, -113, -373, -373, -373, 781,
1378 -373, 226, -373, -54, -373, -373, 252, 1776, 2568, -373,
1379 -373, -111, 2568, 2083, -373, -373, -45, -373, 1347, -373,
1380 -373, 2568, 196, -373, -373, 2568, 134, -373, -373, -373,
1381 -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
1382 2568, -373, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568,
1383 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568, 2568,
1384 2568, 2568, 2568, -373, 251, -373, -373, 135, -373, -373,
1385 2471, 2568, 129, 149, -373, -373, -3, -373, 1003, 132,
1386 160, -373, 2568, 160, -373, -373, -373, -373, 150, -373,
1387 -373, 2083, -34, -373, -24, 309, 151, 160, 198, 156,
1388 -373, 904, 155, 151, -373, 162, -373, 159, -22, 2856,
1389 -373, -373, -373, -373, -373, 83, 83, -53, -53, 101,
1390 101, 101, 101, -76, -76, 113, 84, 85, 86, 201,
1391 204, -107, -373, 2568, 143, 161, -373, 2568, 145, 144,
1392 160, -373, -86, 163, -373, 2568, -373, 148, 167, 1347,
1393 152, 153, 1568, -373, -373, -373, -373, -373, 2568, 169,
1394 -373, 2568, 168, 2568, 157, -373, 2568, 154, -80, -373,
1395 -373, -21, 2568, 1568, 361, -373, -5, -373, 2568, -373,
1396 -373, -373, -373, -373, -373, -373, 2568, -373, -373, -373,
1397 158, 151, -373, 1347, 2568, 164, -373, -373, 1126, 1347,
1398 -2, -373, -373, -373, -373, -101, -373, -373, -373, -373,
1399 -373, 1347, -373
1400 };
1401
1402 /* YYPGOTO[NTERM-NUM]. */
1403 static const yytype_int16 yypgoto[] =
1404 {
1405 -373, -373, -373, -373, -373, -373, -7, -373, -373, -79,
1406 -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
1407 -373, -373, -373, -373, 4, -373, -92, -70, -130, -95,
1408 52, 55, 56, 51, 57, 58, -373, -152, -158, -373,
1409 -175, -230, 6, 29, -373, -373, -373, 136, 241, 236,
1410 146, -373, -373, -243, -6, -373, 116, -373, -77, -373,
1411 -373, -82, -9, -74, -373, -373, 302, -373, 224, -145,
1412 -321, 41, -286, 114, -176, -372, -373, -373, -48, 298,
1413 109, 121, -373, -373, 39, -373, -373, -69, -373, -68,
1414 -373, -373, -373, -373, -373, -373, 305, -373, -373, -229,
1415 165, -373, -373
1416 };
1417
1418 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1419 positive, shift that token. If negative, reduce the rule which
1420 number is the opposite. If YYTABLE_NINF, syntax error. */
1421 #define YYTABLE_NINF -313
1422 static const yytype_int16 yytable[] =
1423 {
1424 109, 14, 131, 105, 276, 129, 145, 130, 251, 281,
1425 255, 259, 330, 464, 465, 97, 464, 465, 343, 286,
1426 319, 320, 268, 159, 160, 157, 11, 12, 13, 412,
1427 11, 12, 13, 259, 351, 146, 147, 148, 98, 163,
1428 367, 248, 289, 290, 1, 272, 15, 16, 170, 273,
1429 449, 4, 297, 5, 340, 406, 140, 141, 171, 249,
1430 336, 299, 300, 301, 302, 303, 304, 305, 306, 307,
1431 308, 449, 341, 7, 125, 33, 34, 35, 152, 126,
1432 37, 38, 39, 40, 332, 172, 119, 109, 294, 438,
1433 105, 344, 295, 353, 153, 332, 255, 156, 161, 332,
1434 333, 8, 97, 362, 145, 332, 94, 364, 366, 354,
1435 405, 363, 164, 431, 123, 166, 373, 409, 367, 482,
1436 353, 435, 413, 133, 268, 98, 353, 127, 94, 128,
1437 331, 174, 231, 146, 147, 148, 439, 380, 321, 322,
1438 134, 245, 459, 135, 252, 247, 173, 455, 159, 136,
1439 457, 291, 381, 292, 315, 316, 401, 370, 166, 260,
1440 166, 332, 471, 120, 121, 124, 254, 122, 419, 137,
1441 472, 231, 332, 432, 402, 138, 15, 16, 420, 309,
1442 427, 460, 332, 344, 428, 332, 366, 143, 255, 389,
1443 390, 391, 392, 317, 318, 336, 284, 285, 144, -312,
1444 255, 15, 16, 165, -115, 33, 34, 35, 162, 158,
1445 37, 323, 324, 375, 146, 147, 148, 311, 258, 466,
1446 -19, 430, 480, 385, 386, 15, 16, 231, 393, 394,
1447 33, 34, 35, 169, 126, 37, -20, 245, 337, 250,
1448 441, 277, 271, 444, 11, 12, 13, 387, 388, 344,
1449 293, 255, 254, 350, 33, 34, 35, 260, 334, 37,
1450 166, 85, 86, 87, 270, 278, 174, 461, 231, 274,
1451 452, 275, 279, 453, 231, 344, 282, 368, 344, 231,
1452 154, 12, 155, 131, 287, 374, 159, 474, 130, 475,
1453 344, 283, 477, 479, 312, 313, 314, -45, 344, 298,
1454 325, 328, 326, 140, 327, 479, 329, -44, 347, 259,
1455 346, 352, 15, 16, 356, 349, 382, 383, 384, 254,
1456 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
1457 254, 254, 254, 254, 254, 358, -39, 251, 403, 410,
1458 260, 33, 34, 35, 254, 126, 37, 38, 39, 40,
1459 407, 415, 231, 408, 411, 368, 254, 332, 422, 424,
1460 421, 426, 231, 425, 433, 434, 436, 440, 437, 443,
1461 442, -49, 454, 463, 448, 446, 458, 395, 456, 398,
1462 473, 396, 338, 397, 476, 242, 399, 246, 400, 357,
1463 132, 359, 339, 269, 414, 462, 142, 371, 360, 478,
1464 416, 139, 481, 0, 0, 0, 0, 254, 0, 0,
1465 231, 0, 0, 231, 0, 0, 0, 0, 0, 0,
1466 0, 0, 0, 0, 0, 348, 0, 0, 0, 0,
1467 0, 0, 0, 0, 231, 0, 0, 0, 0, 0,
1468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1469 0, 0, 0, 0, 231, 0, 0, 0, 0, 231,
1470 231, 0, 0, 15, 16, 17, 18, 19, 20, 178,
1471 179, 180, 231, 181, 182, 183, 184, 185, 0, 0,
1472 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1473 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
1474 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1475 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1476 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1477 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1478 80, 81, 82, 186, 127, 83, 128, 187, 188, 189,
1479 190, 191, 0, 0, 192, 193, 0, 0, 0, 0,
1480 0, 0, 0, 0, 17, 18, 19, 20, 0, 0,
1481 0, 0, 0, 84, 85, 86, 87, 0, 88, 21,
1482 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1483 32, 94, 0, 0, 0, 0, 0, 0, 0, 0,
1484 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1485 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1486 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1487 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1488 81, 82, 0, 0, 83, 0, 0, 0, 0, 0,
1489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1490 0, 194, 0, 0, 0, 0, 0, 195, 196, 197,
1491 198, 0, 0, 85, 86, 87, 0, 0, 0, 0,
1492 0, 0, 199, 200, 201, 15, 16, 17, 18, 19,
1493 20, 178, 179, 180, 0, 181, 182, 183, 184, 185,
1494 0, 0, 21, 22, 23, 24, 25, 26, 27, 28,
1495 29, 30, 31, 32, 33, 34, 35, 0, 36, 37,
1496 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1497 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1498 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1499 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1500 78, 79, 80, 81, 82, 186, 127, 83, 128, 187,
1501 188, 189, 190, 191, 0, 0, 192, 193, 0, 0,
1502 0, 0, 0, 267, 0, 0, 17, 18, 19, 20,
1503 0, 0, 0, 0, 0, 84, 85, 86, 87, 0,
1504 88, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1505 30, 31, 32, 94, 0, 0, 0, 0, 0, 0,
1506 0, 0, 41, 42, 43, 44, 45, 46, 47, 48,
1507 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1508 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1509 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1510 79, 80, 81, 82, 0, 0, 83, 0, 0, 0,
1511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1512 0, 0, 0, 194, 0, 0, 0, 0, 0, 195,
1513 196, 197, 198, 0, 0, 85, 86, 87, 0, 0,
1514 0, 0, 0, 0, 199, 200, 335, 15, 16, 17,
1515 18, 19, 20, 178, 179, 180, 0, 181, 182, 183,
1516 184, 185, 0, 0, 21, 22, 23, 24, 25, 26,
1517 27, 28, 29, 30, 31, 32, 33, 34, 35, 0,
1518 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1519 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1520 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1521 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1522 76, 77, 78, 79, 80, 81, 82, 186, 127, 83,
1523 128, 187, 188, 189, 190, 191, 0, 0, 192, 193,
1524 0, 0, 0, 0, 0, 355, 0, 0, 17, 18,
1525 19, 20, 0, 0, 0, 0, 0, 84, 85, 86,
1526 87, 0, 88, 21, 22, 23, 24, 25, 26, 27,
1527 28, 29, 30, 31, 32, 94, 0, 0, 0, 0,
1528 0, 0, 0, 0, 41, 42, 43, 44, 45, 46,
1529 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1530 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1531 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1532 77, 78, 79, 80, 81, 82, 0, 0, 83, 0,
1533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1534 0, 0, 0, 0, 0, 194, 0, 0, 0, 0,
1535 0, 195, 196, 197, 198, 0, 0, 85, 86, 87,
1536 0, 0, 0, 0, 0, 0, 199, 200, 423, 15,
1537 16, 17, 18, 19, 20, 178, 179, 180, 0, 181,
1538 182, 183, 184, 185, 464, 465, 21, 22, 23, 24,
1539 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1540 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
1541 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1542 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1543 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1544 74, 75, 76, 77, 78, 79, 80, 81, 82, 186,
1545 127, 83, 128, 187, 188, 189, 190, 191, 0, 0,
1546 192, 193, 0, 0, 0, 0, 0, 0, 0, 0,
1547 17, 18, 19, 20, 0, 0, 0, 0, 0, 84,
1548 85, 86, 87, 0, 88, 21, 22, 23, 24, 25,
1549 26, 27, 28, 29, 30, 31, 32, 94, 0, 0,
1550 0, 0, 0, 0, 0, 0, 41, 42, 43, 44,
1551 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1552 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1553 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1554 75, 76, 77, 78, 79, 80, 81, 82, 0, 0,
1555 83, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1556 0, 0, 0, 0, 0, 0, 0, 194, 0, 0,
1557 0, 0, 0, 195, 196, 197, 198, 0, 0, 0,
1558 0, 0, 0, 0, 0, 0, 0, 0, 199, 200,
1559 15, 16, 17, 18, 19, 20, 178, 179, 180, 0,
1560 181, 182, 183, 184, 185, 0, 0, 21, 22, 23,
1561 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1562 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
1563 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1564 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1565 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1566 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1567 186, 127, 83, 128, 187, 188, 189, 190, 191, 0,
1568 0, 192, 193, 0, 0, 0, 0, 0, 0, 0,
1569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1570 84, 85, 86, 87, 0, 88, 0, 0, 0, 0,
1571 0, 0, 0, 0, 0, 0, 0, 0, 94, 0,
1572 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1575 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1576 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1577 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1578 0, 0, 0, 0, 0, 0, 0, 0, 194, 0,
1579 0, 0, 0, 0, 195, 196, 197, 198, 0, 0,
1580 0, 0, 0, 0, 0, 0, 0, 0, 0, 199,
1581 200, 15, 16, 17, 18, 19, 20, 178, 179, 180,
1582 0, 181, 182, 183, 184, 185, 0, 0, 21, 22,
1583 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1584 33, 34, 35, 0, 36, 37, 38, 39, 40, 41,
1585 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1586 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1587 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1588 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1589 82, 186, 127, 83, 128, 187, 188, 189, 190, 191,
1590 0, 0, 192, 193, 0, 0, 0, 0, 0, 0,
1591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1592 0, 84, 85, 86, 87, 0, 88, 0, 0, 0,
1593 0, 0, 0, 0, 0, 0, 0, 0, 0, 94,
1594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1595 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1596 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1600 0, 0, 0, 0, 0, 0, 0, 0, 0, 194,
1601 0, 0, 0, 0, 0, 195, 196, 197, 198, 15,
1602 16, 17, 18, 19, 20, 0, 0, 0, 0, 0,
1603 199, 141, 0, 0, 0, 0, 21, 22, 23, 24,
1604 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1605 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
1606 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1607 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1608 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1609 74, 75, 76, 77, 78, 79, 80, 81, 82, 0,
1610 127, 83, 128, 187, 188, 189, 190, 191, 0, 0,
1611 192, 193, 0, 0, 0, 0, 0, 0, 0, 0,
1612 17, 18, 19, 20, 0, 0, 0, 0, 0, 84,
1613 85, 86, 87, 0, 88, 21, 22, 23, 24, 25,
1614 26, 27, 28, 29, 30, 31, 32, 94, 0, 0,
1615 0, 0, 0, 0, 0, 0, 41, 42, 43, 44,
1616 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1617 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1618 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1619 75, 76, 77, 78, 79, 80, 81, 82, 0, 127,
1620 83, 128, 187, 188, 189, 190, 191, 0, 0, 192,
1621 193, 0, 0, 0, 0, 0, 0, 194, 0, 0,
1622 0, 0, 0, 195, 196, 197, 198, 0, 0, 85,
1623 86, 87, 0, 0, 0, 0, 0, 0, 199, 0,
1624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1625 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1626 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1627 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1631 0, 0, 0, 0, 0, 0, 194, 0, 0, 0,
1632 0, 0, 195, 196, 197, 198, 15, 16, 17, 18,
1633 19, 20, 0, 0, 0, 0, 0, 280, 0, 0,
1634 0, 0, 0, 21, 22, 23, 24, 25, 26, 27,
1635 28, 29, 30, 31, 32, 33, 34, 35, 0, 126,
1636 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1637 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1638 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1639 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1640 77, 78, 79, 80, 81, 82, 0, 127, 83, 128,
1641 187, 188, 189, 190, 191, 0, 0, 192, 193, 0,
1642 0, 0, 0, 0, 0, 17, 18, 19, 20, 0,
1643 0, 0, 0, 0, 0, 0, 365, 85, 86, 87,
1644 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1645 31, 32, 0, 0, 94, 0, 0, 0, 0, 0,
1646 0, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1647 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1648 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1649 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1650 80, 81, 82, 0, 127, 83, 128, 187, 188, 189,
1651 190, 191, 0, 0, 192, 193, 0, 0, 0, 0,
1652 0, 0, 0, 0, 194, 17, 18, 19, 20, 0,
1653 195, 196, 197, 198, 85, 86, 87, 0, 0, 0,
1654 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1655 31, 32, 0, 0, 0, 0, 0, 0, 0, 0,
1656 0, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1657 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1658 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1659 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1660 80, 81, 82, 0, 127, 83, 128, 187, 188, 189,
1661 190, 191, 0, 0, 192, 193, 0, 0, 0, 0,
1662 0, 194, 0, 0, 253, 0, 0, 195, 196, 197,
1663 198, 0, 0, 0, 85, 86, 87, 0, 0, 0,
1664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1671 0, 0, 0, 0, 0, 0, 17, 18, 19, 20,
1672 0, 194, 0, 0, 342, 0, 0, 195, 196, 197,
1673 198, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1674 30, 31, 32, 0, 0, 0, 0, 0, 0, 0,
1675 0, 0, 41, 42, 43, 44, 45, 46, 47, 48,
1676 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1677 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1678 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1679 79, 80, 81, 82, 0, 127, 83, 128, 187, 188,
1680 189, 190, 191, 0, 0, 192, 193, 0, 0, 0,
1681 0, 0, 0, 17, 18, 19, 20, 0, 0, 0,
1682 0, 0, 0, 0, 0, 85, 86, 87, 21, 22,
1683 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1684 0, 0, 0, 0, 0, 0, 0, 0, 0, 41,
1685 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1686 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1687 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1688 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1689 82, 0, 127, 83, 128, 187, 188, 189, 190, 191,
1690 0, 0, 192, 193, 0, 0, 0, 0, 0, 0,
1691 0, 0, 194, 0, 0, 404, 0, 0, 195, 196,
1692 197, 198, 85, 86, 87, 0, 0, 0, 0, 0,
1693 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1694 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1695 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1697 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1698 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1700 0, 0, 0, 0, 17, 18, 19, 20, 0, 194,
1701 0, 0, 0, 0, 0, 195, 196, 197, 198, 21,
1702 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1703 32, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1704 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1705 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1706 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1707 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1708 81, 296, 0, 127, 83, 128, 187, 188, 189, 190,
1709 191, 0, 0, 192, 193, 0, 0, 0, 0, 0,
1710 0, 17, 18, 19, 20, 0, 0, 0, 0, 0,
1711 0, 0, 0, 85, 86, 87, 21, 22, 23, 24,
1712 25, 26, 27, 28, 29, 30, 31, 32, 0, 0,
1713 0, 0, 0, 0, 0, 0, 0, 41, 42, 43,
1714 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1715 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1716 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1717 74, 75, 76, 77, 78, 79, 80, 81, 429, 0,
1718 127, 83, 128, 187, 188, 189, 190, 191, 0, 0,
1719 192, 193, 0, 0, 0, 0, 0, 0, 0, 0,
1720 194, 0, 0, 0, 0, 0, 195, 196, 197, 198,
1721 85, 86, 87, 15, 16, 17, 18, 19, 20, 0,
1722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1723 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1724 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
1725 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1726 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1727 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1728 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1729 80, 81, 82, 0, 0, 83, 0, 194, 0, 0,
1730 0, 0, 0, 195, 196, 197, 198, 0, 0, 0,
1731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1732 0, 0, 0, 84, 85, 86, 87, 0, 88, 0,
1733 0, 0, 0, 0, 0, 0, 89, 90, 91, 92,
1734 93, 94
1735 };
1736
1737 #define yypact_value_is_default(yystate) \
1738 ((yystate) == (-373))
1739
1740 #define yytable_value_is_error(yytable_value) \
1741 YYID (0)
1742
1743 static const yytype_int16 yycheck[] =
1744 {
1745 9, 8, 84, 9, 180, 84, 4, 84, 86, 184,
1746 162, 36, 101, 18, 19, 9, 18, 19, 248, 194,
1747 96, 97, 167, 105, 106, 104, 84, 85, 86, 350,
1748 84, 85, 86, 36, 263, 33, 34, 35, 9, 113,
1749 283, 203, 94, 95, 119, 202, 3, 4, 130, 206,
1750 422, 88, 210, 0, 203, 341, 222, 223, 132, 221,
1751 236, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1752 112, 443, 221, 123, 81, 32, 33, 34, 206, 36,
1753 37, 38, 39, 40, 206, 139, 122, 96, 202, 410,
1754 96, 249, 206, 206, 222, 206, 248, 104, 107, 206,
1755 222, 120, 96, 278, 4, 206, 131, 282, 283, 222,
1756 340, 222, 119, 220, 86, 124, 291, 346, 361, 220,
1757 206, 407, 352, 123, 269, 96, 206, 84, 131, 86,
1758 219, 138, 141, 33, 34, 35, 222, 295, 214, 215,
1759 123, 150, 222, 123, 222, 152, 200, 433, 230, 123,
1760 436, 203, 310, 205, 207, 208, 331, 202, 167, 165,
1761 169, 206, 448, 33, 34, 223, 162, 37, 202, 123,
1762 456, 180, 206, 403, 332, 201, 3, 4, 202, 221,
1763 202, 202, 206, 341, 206, 206, 361, 202, 340, 319,
1764 320, 321, 322, 92, 93, 371, 192, 193, 206, 224,
1765 352, 3, 4, 223, 202, 32, 33, 34, 203, 36,
1766 37, 98, 99, 292, 33, 34, 35, 213, 123, 224,
1767 201, 379, 224, 315, 316, 3, 4, 236, 323, 324,
1768 32, 33, 34, 223, 36, 37, 201, 246, 245, 201,
1769 415, 201, 221, 419, 84, 85, 86, 317, 318, 407,
1770 202, 403, 248, 262, 32, 33, 34, 263, 36, 37,
1771 269, 114, 115, 116, 222, 201, 273, 442, 277, 222,
1772 428, 222, 222, 431, 283, 433, 201, 283, 436, 288,
1773 84, 85, 86, 365, 224, 292, 368, 463, 365, 464,
1774 448, 201, 468, 469, 211, 212, 213, 201, 456, 201,
1775 216, 100, 217, 222, 218, 481, 102, 201, 204, 36,
1776 223, 203, 3, 4, 88, 224, 312, 313, 314, 315,
1777 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
1778 326, 327, 328, 329, 330, 83, 202, 86, 203, 348,
1779 346, 32, 33, 34, 340, 36, 37, 38, 39, 40,
1780 221, 201, 361, 204, 222, 361, 352, 206, 202, 204,
1781 367, 202, 371, 201, 221, 204, 221, 204, 224, 202,
1782 222, 202, 204, 12, 221, 223, 222, 325, 221, 328,
1783 222, 326, 246, 327, 220, 144, 329, 151, 330, 273,
1784 88, 277, 246, 169, 353, 443, 98, 288, 277, 468,
1785 361, 96, 470, -1, -1, -1, -1, 403, -1, -1,
1786 419, -1, -1, 422, -1, -1, -1, -1, -1, -1,
1787 -1, -1, -1, -1, -1, 260, -1, -1, -1, -1,
1788 -1, -1, -1, -1, 443, -1, -1, -1, -1, -1,
1789 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1790 -1, -1, -1, -1, 463, -1, -1, -1, -1, 468,
1791 469, -1, -1, 3, 4, 5, 6, 7, 8, 9,
1792 10, 11, 481, 13, 14, 15, 16, 17, -1, -1,
1793 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1794 30, 31, 32, 33, 34, -1, 36, 37, 38, 39,
1795 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1796 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1797 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1798 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1799 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1800 90, 91, -1, -1, 94, 95, -1, -1, -1, -1,
1801 -1, -1, -1, -1, 5, 6, 7, 8, -1, -1,
1802 -1, -1, -1, 113, 114, 115, 116, -1, 118, 20,
1803 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1804 31, 131, -1, -1, -1, -1, -1, -1, -1, -1,
1805 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1806 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1807 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1808 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1809 81, 82, -1, -1, 85, -1, -1, -1, -1, -1,
1810 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1811 -1, 201, -1, -1, -1, -1, -1, 207, 208, 209,
1812 210, -1, -1, 114, 115, 116, -1, -1, -1, -1,
1813 -1, -1, 222, 223, 224, 3, 4, 5, 6, 7,
1814 8, 9, 10, 11, -1, 13, 14, 15, 16, 17,
1815 -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
1816 28, 29, 30, 31, 32, 33, 34, -1, 36, 37,
1817 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1818 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1819 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1820 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1821 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1822 88, 89, 90, 91, -1, -1, 94, 95, -1, -1,
1823 -1, -1, -1, 224, -1, -1, 5, 6, 7, 8,
1824 -1, -1, -1, -1, -1, 113, 114, 115, 116, -1,
1825 118, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1826 29, 30, 31, 131, -1, -1, -1, -1, -1, -1,
1827 -1, -1, 41, 42, 43, 44, 45, 46, 47, 48,
1828 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1829 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1830 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1831 79, 80, 81, 82, -1, -1, 85, -1, -1, -1,
1832 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1833 -1, -1, -1, 201, -1, -1, -1, -1, -1, 207,
1834 208, 209, 210, -1, -1, 114, 115, 116, -1, -1,
1835 -1, -1, -1, -1, 222, 223, 224, 3, 4, 5,
1836 6, 7, 8, 9, 10, 11, -1, 13, 14, 15,
1837 16, 17, -1, -1, 20, 21, 22, 23, 24, 25,
1838 26, 27, 28, 29, 30, 31, 32, 33, 34, -1,
1839 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1840 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1841 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1842 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1843 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1844 86, 87, 88, 89, 90, 91, -1, -1, 94, 95,
1845 -1, -1, -1, -1, -1, 224, -1, -1, 5, 6,
1846 7, 8, -1, -1, -1, -1, -1, 113, 114, 115,
1847 116, -1, 118, 20, 21, 22, 23, 24, 25, 26,
1848 27, 28, 29, 30, 31, 131, -1, -1, -1, -1,
1849 -1, -1, -1, -1, 41, 42, 43, 44, 45, 46,
1850 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1851 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1852 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1853 77, 78, 79, 80, 81, 82, -1, -1, 85, -1,
1854 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1855 -1, -1, -1, -1, -1, 201, -1, -1, -1, -1,
1856 -1, 207, 208, 209, 210, -1, -1, 114, 115, 116,
1857 -1, -1, -1, -1, -1, -1, 222, 223, 224, 3,
1858 4, 5, 6, 7, 8, 9, 10, 11, -1, 13,
1859 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1860 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1861 34, -1, 36, 37, 38, 39, 40, 41, 42, 43,
1862 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1863 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1864 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1865 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1866 84, 85, 86, 87, 88, 89, 90, 91, -1, -1,
1867 94, 95, -1, -1, -1, -1, -1, -1, -1, -1,
1868 5, 6, 7, 8, -1, -1, -1, -1, -1, 113,
1869 114, 115, 116, -1, 118, 20, 21, 22, 23, 24,
1870 25, 26, 27, 28, 29, 30, 31, 131, -1, -1,
1871 -1, -1, -1, -1, -1, -1, 41, 42, 43, 44,
1872 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1873 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1874 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1875 75, 76, 77, 78, 79, 80, 81, 82, -1, -1,
1876 85, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1877 -1, -1, -1, -1, -1, -1, -1, 201, -1, -1,
1878 -1, -1, -1, 207, 208, 209, 210, -1, -1, -1,
1879 -1, -1, -1, -1, -1, -1, -1, -1, 222, 223,
1880 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1881 13, 14, 15, 16, 17, -1, -1, 20, 21, 22,
1882 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1883 33, 34, -1, 36, 37, 38, 39, 40, 41, 42,
1884 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1885 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1886 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1887 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1888 83, 84, 85, 86, 87, 88, 89, 90, 91, -1,
1889 -1, 94, 95, -1, -1, -1, -1, -1, -1, -1,
1890 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1891 113, 114, 115, 116, -1, 118, -1, -1, -1, -1,
1892 -1, -1, -1, -1, -1, -1, -1, -1, 131, -1,
1893 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1894 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1895 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1896 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1897 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1898 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1899 -1, -1, -1, -1, -1, -1, -1, -1, 201, -1,
1900 -1, -1, -1, -1, 207, 208, 209, 210, -1, -1,
1901 -1, -1, -1, -1, -1, -1, -1, -1, -1, 222,
1902 223, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1903 -1, 13, 14, 15, 16, 17, -1, -1, 20, 21,
1904 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1905 32, 33, 34, -1, 36, 37, 38, 39, 40, 41,
1906 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1907 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1908 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1909 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1910 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1911 -1, -1, 94, 95, -1, -1, -1, -1, -1, -1,
1912 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1913 -1, 113, 114, 115, 116, -1, 118, -1, -1, -1,
1914 -1, -1, -1, -1, -1, -1, -1, -1, -1, 131,
1915 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1916 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1917 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1918 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1919 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1920 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1921 -1, -1, -1, -1, -1, -1, -1, -1, -1, 201,
1922 -1, -1, -1, -1, -1, 207, 208, 209, 210, 3,
1923 4, 5, 6, 7, 8, -1, -1, -1, -1, -1,
1924 222, 223, -1, -1, -1, -1, 20, 21, 22, 23,
1925 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1926 34, -1, 36, 37, 38, 39, 40, 41, 42, 43,
1927 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1928 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1929 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1930 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
1931 84, 85, 86, 87, 88, 89, 90, 91, -1, -1,
1932 94, 95, -1, -1, -1, -1, -1, -1, -1, -1,
1933 5, 6, 7, 8, -1, -1, -1, -1, -1, 113,
1934 114, 115, 116, -1, 118, 20, 21, 22, 23, 24,
1935 25, 26, 27, 28, 29, 30, 31, 131, -1, -1,
1936 -1, -1, -1, -1, -1, -1, 41, 42, 43, 44,
1937 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1938 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1939 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1940 75, 76, 77, 78, 79, 80, 81, 82, -1, 84,
1941 85, 86, 87, 88, 89, 90, 91, -1, -1, 94,
1942 95, -1, -1, -1, -1, -1, -1, 201, -1, -1,
1943 -1, -1, -1, 207, 208, 209, 210, -1, -1, 114,
1944 115, 116, -1, -1, -1, -1, -1, -1, 222, -1,
1945 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1946 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1947 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1948 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1949 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1950 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1951 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1952 -1, -1, -1, -1, -1, -1, 201, -1, -1, -1,
1953 -1, -1, 207, 208, 209, 210, 3, 4, 5, 6,
1954 7, 8, -1, -1, -1, -1, -1, 222, -1, -1,
1955 -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
1956 27, 28, 29, 30, 31, 32, 33, 34, -1, 36,
1957 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1958 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1959 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1960 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1961 77, 78, 79, 80, 81, 82, -1, 84, 85, 86,
1962 87, 88, 89, 90, 91, -1, -1, 94, 95, -1,
1963 -1, -1, -1, -1, -1, 5, 6, 7, 8, -1,
1964 -1, -1, -1, -1, -1, -1, 113, 114, 115, 116,
1965 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1966 30, 31, -1, -1, 131, -1, -1, -1, -1, -1,
1967 -1, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1968 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1969 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1970 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1971 80, 81, 82, -1, 84, 85, 86, 87, 88, 89,
1972 90, 91, -1, -1, 94, 95, -1, -1, -1, -1,
1973 -1, -1, -1, -1, 201, 5, 6, 7, 8, -1,
1974 207, 208, 209, 210, 114, 115, 116, -1, -1, -1,
1975 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1976 30, 31, -1, -1, -1, -1, -1, -1, -1, -1,
1977 -1, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1978 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1979 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1980 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1981 80, 81, 82, -1, 84, 85, 86, 87, 88, 89,
1982 90, 91, -1, -1, 94, 95, -1, -1, -1, -1,
1983 -1, 201, -1, -1, 204, -1, -1, 207, 208, 209,
1984 210, -1, -1, -1, 114, 115, 116, -1, -1, -1,
1985 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1986 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1987 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1988 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1989 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1990 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1991 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1992 -1, -1, -1, -1, -1, -1, 5, 6, 7, 8,
1993 -1, 201, -1, -1, 204, -1, -1, 207, 208, 209,
1994 210, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1995 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
1996 -1, -1, 41, 42, 43, 44, 45, 46, 47, 48,
1997 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1998 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1999 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
2000 79, 80, 81, 82, -1, 84, 85, 86, 87, 88,
2001 89, 90, 91, -1, -1, 94, 95, -1, -1, -1,
2002 -1, -1, -1, 5, 6, 7, 8, -1, -1, -1,
2003 -1, -1, -1, -1, -1, 114, 115, 116, 20, 21,
2004 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
2005 -1, -1, -1, -1, -1, -1, -1, -1, -1, 41,
2006 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2007 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
2008 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
2009 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
2010 82, -1, 84, 85, 86, 87, 88, 89, 90, 91,
2011 -1, -1, 94, 95, -1, -1, -1, -1, -1, -1,
2012 -1, -1, 201, -1, -1, 204, -1, -1, 207, 208,
2013 209, 210, 114, 115, 116, -1, -1, -1, -1, -1,
2014 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2015 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2016 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2017 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2018 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2019 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2020 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2021 -1, -1, -1, -1, 5, 6, 7, 8, -1, 201,
2022 -1, -1, -1, -1, -1, 207, 208, 209, 210, 20,
2023 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
2024 31, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2025 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2026 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
2027 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
2028 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
2029 81, 82, -1, 84, 85, 86, 87, 88, 89, 90,
2030 91, -1, -1, 94, 95, -1, -1, -1, -1, -1,
2031 -1, 5, 6, 7, 8, -1, -1, -1, -1, -1,
2032 -1, -1, -1, 114, 115, 116, 20, 21, 22, 23,
2033 24, 25, 26, 27, 28, 29, 30, 31, -1, -1,
2034 -1, -1, -1, -1, -1, -1, -1, 41, 42, 43,
2035 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2036 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
2037 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
2038 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
2039 84, 85, 86, 87, 88, 89, 90, 91, -1, -1,
2040 94, 95, -1, -1, -1, -1, -1, -1, -1, -1,
2041 201, -1, -1, -1, -1, -1, 207, 208, 209, 210,
2042 114, 115, 116, 3, 4, 5, 6, 7, 8, -1,
2043 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2044 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2045 30, 31, 32, 33, 34, -1, 36, 37, 38, 39,
2046 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2047 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2048 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2049 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2050 80, 81, 82, -1, -1, 85, -1, 201, -1, -1,
2051 -1, -1, -1, 207, 208, 209, 210, -1, -1, -1,
2052 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2053 -1, -1, -1, 113, 114, 115, 116, -1, 118, -1,
2054 -1, -1, -1, -1, -1, -1, 126, 127, 128, 129,
2055 130, 131
2056 };
2057
2058 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2059 symbol of state STATE-NUM. */
2060 static const yytype_uint16 yystos[] =
2061 {
2062 0, 119, 226, 228, 88, 0, 230, 123, 120, 227,
2063 232, 84, 85, 86, 231, 3, 4, 5, 6, 7,
2064 8, 20, 21, 22, 23, 24, 25, 26, 27, 28,
2065 29, 30, 31, 32, 33, 34, 36, 37, 38, 39,
2066 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2067 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2068 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2069 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2070 80, 81, 82, 85, 113, 114, 115, 116, 118, 126,
2071 127, 128, 129, 130, 131, 229, 233, 267, 268, 269,
2072 270, 271, 276, 277, 278, 279, 283, 285, 286, 287,
2073 288, 289, 290, 291, 292, 321, 322, 323, 327, 122,
2074 33, 34, 37, 86, 223, 231, 36, 84, 86, 234,
2075 283, 286, 291, 123, 123, 123, 123, 123, 201, 321,
2076 222, 223, 304, 202, 206, 4, 33, 34, 35, 273,
2077 274, 284, 206, 222, 84, 86, 231, 234, 36, 286,
2078 286, 287, 203, 288, 231, 223, 287, 293, 294, 223,
2079 286, 288, 139, 200, 231, 280, 281, 282, 9, 10,
2080 11, 13, 14, 15, 16, 17, 83, 87, 88, 89,
2081 90, 91, 94, 95, 201, 207, 208, 209, 210, 222,
2082 223, 224, 234, 235, 236, 238, 239, 240, 241, 242,
2083 243, 244, 249, 250, 251, 252, 253, 254, 255, 256,
2084 257, 258, 259, 260, 261, 262, 263, 265, 267, 268,
2085 279, 287, 298, 299, 300, 301, 305, 306, 307, 310,
2086 316, 320, 273, 272, 275, 287, 274, 231, 203, 221,
2087 201, 86, 222, 204, 249, 262, 266, 287, 123, 36,
2088 279, 324, 325, 326, 231, 295, 296, 224, 294, 293,
2089 222, 221, 202, 206, 222, 222, 299, 201, 201, 222,
2090 222, 265, 201, 201, 249, 249, 265, 224, 302, 94,
2091 95, 203, 205, 202, 202, 206, 82, 263, 201, 103,
2092 104, 105, 106, 107, 108, 109, 110, 111, 112, 221,
2093 264, 249, 211, 212, 213, 207, 208, 92, 93, 96,
2094 97, 214, 215, 98, 99, 216, 217, 218, 100, 102,
2095 101, 219, 206, 222, 36, 224, 299, 231, 272, 275,
2096 203, 221, 204, 266, 263, 297, 223, 204, 325, 224,
2097 287, 324, 203, 206, 222, 224, 88, 281, 83, 298,
2098 306, 317, 265, 222, 265, 113, 265, 278, 279, 309,
2099 202, 305, 237, 265, 231, 234, 245, 246, 247, 248,
2100 263, 263, 249, 249, 249, 251, 251, 252, 252, 253,
2101 253, 253, 253, 254, 254, 255, 256, 257, 258, 259,
2102 260, 265, 263, 203, 204, 266, 297, 221, 204, 324,
2103 287, 222, 295, 266, 296, 201, 309, 318, 319, 202,
2104 202, 231, 202, 224, 204, 201, 202, 202, 206, 82,
2105 263, 220, 266, 221, 204, 297, 221, 224, 295, 222,
2106 204, 265, 222, 202, 299, 308, 223, 311, 221, 300,
2107 303, 304, 263, 263, 204, 297, 221, 297, 222, 222,
2108 202, 265, 303, 12, 18, 19, 224, 312, 313, 314,
2109 315, 297, 297, 222, 299, 265, 220, 299, 312, 299,
2110 224, 314, 220
2111 };
2112
2113 #define yyerrok (yyerrstatus = 0)
2114 #define yyclearin (yychar = YYEMPTY)
2115 #define YYEMPTY (-2)
2116 #define YYEOF 0
2117
2118 #define YYACCEPT goto yyacceptlab
2119 #define YYABORT goto yyabortlab
2120 #define YYERROR goto yyerrorlab
2121
2122
2123 /* Like YYERROR except do call yyerror. This remains here temporarily
2124 to ease the transition to the new meaning of YYERROR, for GCC.
2125 Once GCC version 2 has supplanted version 1, this can go. However,
2126 YYFAIL appears to be in use. Nevertheless, it is formally deprecated
2127 in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2128 discussed. */
2129
2130 #define YYFAIL goto yyerrlab
2131 #if defined YYFAIL
2132 /* This is here to suppress warnings from the GCC cpp's
2133 -Wunused-macros. Normally we don't worry about that warning, but
2134 some users do, and we want to make it easy for users to remove
2135 YYFAIL uses, which will produce warnings from Bison 2.5. */
2136 #endif
2137
2138 #define YYRECOVERING() (!!yyerrstatus)
2139
2140 #define YYBACKUP(Token, Value) \
2141 do \
2142 if (yychar == YYEMPTY && yylen == 1) \
2143 { \
2144 yychar = (Token); \
2145 yylval = (Value); \
2146 YYPOPSTACK (1); \
2147 goto yybackup; \
2148 } \
2149 else \
2150 { \
2151 yyerror (&yylloc, state, YY_("syntax error: cannot back up")); \
2152 YYERROR; \
2153 } \
2154 while (YYID (0))
2155
2156
2157 #define YYTERROR 1
2158 #define YYERRCODE 256
2159
2160
2161 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2162 If N is 0, then set CURRENT to the empty location which ends
2163 the previous symbol: RHS[0] (always defined). */
2164
2165 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2166 #ifndef YYLLOC_DEFAULT
2167 # define YYLLOC_DEFAULT(Current, Rhs, N) \
2168 do \
2169 if (YYID (N)) \
2170 { \
2171 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
2172 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
2173 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
2174 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
2175 } \
2176 else \
2177 { \
2178 (Current).first_line = (Current).last_line = \
2179 YYRHSLOC (Rhs, 0).last_line; \
2180 (Current).first_column = (Current).last_column = \
2181 YYRHSLOC (Rhs, 0).last_column; \
2182 } \
2183 while (YYID (0))
2184 #endif
2185
2186
2187 /* YY_LOCATION_PRINT -- Print the location on the stream.
2188 This macro was not mandated originally: define only if we know
2189 we won't break user code: when these are the locations we know. */
2190
2191 #ifndef YY_LOCATION_PRINT
2192 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2193 # define YY_LOCATION_PRINT(File, Loc) \
2194 fprintf (File, "%d.%d-%d.%d", \
2195 (Loc).first_line, (Loc).first_column, \
2196 (Loc).last_line, (Loc).last_column)
2197 # else
2198 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2199 # endif
2200 #endif
2201
2202
2203 /* YYLEX -- calling `yylex' with the right arguments. */
2204
2205 #ifdef YYLEX_PARAM
2206 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
2207 #else
2208 # define YYLEX yylex (&yylval, &yylloc, scanner)
2209 #endif
2210
2211 /* Enable debugging if requested. */
2212 #if YYDEBUG
2213
2214 # ifndef YYFPRINTF
2215 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2216 # define YYFPRINTF fprintf
2217 # endif
2218
2219 # define YYDPRINTF(Args) \
2220 do { \
2221 if (yydebug) \
2222 YYFPRINTF Args; \
2223 } while (YYID (0))
2224
2225 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2226 do { \
2227 if (yydebug) \
2228 { \
2229 YYFPRINTF (stderr, "%s ", Title); \
2230 yy_symbol_print (stderr, \
2231 Type, Value, Location, state); \
2232 YYFPRINTF (stderr, "\n"); \
2233 } \
2234 } while (YYID (0))
2235
2236
2237 /*--------------------------------.
2238 | Print this symbol on YYOUTPUT. |
2239 `--------------------------------*/
2240
2241 /*ARGSUSED*/
2242 #if (defined __STDC__ || defined __C99__FUNC__ \
2243 || defined __cplusplus || defined _MSC_VER)
2244 static void
2245 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvalue p, YYLTYPE const * const yylocationp, struct _mesa_glsl_parse_state *state)
2246 #else
2247 static void
2248 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, state)
2249 FILE *yyoutput;
2250 int yytype;
2251 YYSTYPE const * const yyvaluep;
2252 YYLTYPE const * const yylocationp;
2253 struct _mesa_glsl_parse_state *state;
2254 #endif
2255 {
2256 if (!yyvaluep)
2257 return;
2258 YYUSE (yylocationp);
2259 YYUSE (state);
2260 # ifdef YYPRINT
2261 if (yytype < YYNTOKENS)
2262 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2263 # else
2264 YYUSE (yyoutput);
2265 # endif
2266 switch (yytype)
2267 {
2268 default:
2269 break;
2270 }
2271 }
2272
2273
2274 /*--------------------------------.
2275 | Print this symbol on YYOUTPUT. |
2276 `--------------------------------*/
2277
2278 #if (defined __STDC__ || defined __C99__FUNC__ \
2279 || defined __cplusplus || defined _MSC_VER)
2280 static void
2281 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYL TYPE const * const yylocationp, struct _mesa_glsl_parse_state *state)
2282 #else
2283 static void
2284 yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, state)
2285 FILE *yyoutput;
2286 int yytype;
2287 YYSTYPE const * const yyvaluep;
2288 YYLTYPE const * const yylocationp;
2289 struct _mesa_glsl_parse_state *state;
2290 #endif
2291 {
2292 if (yytype < YYNTOKENS)
2293 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2294 else
2295 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2296
2297 YY_LOCATION_PRINT (yyoutput, *yylocationp);
2298 YYFPRINTF (yyoutput, ": ");
2299 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, state);
2300 YYFPRINTF (yyoutput, ")");
2301 }
2302
2303 /*------------------------------------------------------------------.
2304 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2305 | TOP (included). |
2306 `------------------------------------------------------------------*/
2307
2308 #if (defined __STDC__ || defined __C99__FUNC__ \
2309 || defined __cplusplus || defined _MSC_VER)
2310 static void
2311 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2312 #else
2313 static void
2314 yy_stack_print (yybottom, yytop)
2315 yytype_int16 *yybottom;
2316 yytype_int16 *yytop;
2317 #endif
2318 {
2319 YYFPRINTF (stderr, "Stack now");
2320 for (; yybottom <= yytop; yybottom++)
2321 {
2322 int yybot = *yybottom;
2323 YYFPRINTF (stderr, " %d", yybot);
2324 }
2325 YYFPRINTF (stderr, "\n");
2326 }
2327
2328 # define YY_STACK_PRINT(Bottom, Top) \
2329 do { \
2330 if (yydebug) \
2331 yy_stack_print ((Bottom), (Top)); \
2332 } while (YYID (0))
2333
2334
2335 /*------------------------------------------------.
2336 | Report that the YYRULE is going to be reduced. |
2337 `------------------------------------------------*/
2338
2339 #if (defined __STDC__ || defined __C99__FUNC__ \
2340 || defined __cplusplus || defined _MSC_VER)
2341 static void
2342 yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, struct _mesa_glsl_p arse_state *state)
2343 #else
2344 static void
2345 yy_reduce_print (yyvsp, yylsp, yyrule, state)
2346 YYSTYPE *yyvsp;
2347 YYLTYPE *yylsp;
2348 int yyrule;
2349 struct _mesa_glsl_parse_state *state;
2350 #endif
2351 {
2352 int yynrhs = yyr2[yyrule];
2353 int yyi;
2354 unsigned long int yylno = yyrline[yyrule];
2355 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2356 yyrule - 1, yylno);
2357 /* The symbols being reduced. */
2358 for (yyi = 0; yyi < yynrhs; yyi++)
2359 {
2360 YYFPRINTF (stderr, " $%d = ", yyi + 1);
2361 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2362 &(yyvsp[(yyi + 1) - (yynrhs)])
2363 , &(yylsp[(yyi + 1) - (yynrhs)]) , state);
2364 YYFPRINTF (stderr, "\n");
2365 }
2366 }
2367
2368 # define YY_REDUCE_PRINT(Rule) \
2369 do { \
2370 if (yydebug) \
2371 yy_reduce_print (yyvsp, yylsp, Rule, state); \
2372 } while (YYID (0))
2373
2374 /* Nonzero means print parse trace. It is left uninitialized so that
2375 multiple parsers can coexist. */
2376 int yydebug;
2377 #else /* !YYDEBUG */
2378 # define YYDPRINTF(Args)
2379 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2380 # define YY_STACK_PRINT(Bottom, Top)
2381 # define YY_REDUCE_PRINT(Rule)
2382 #endif /* !YYDEBUG */
2383
2384
2385 /* YYINITDEPTH -- initial size of the parser's stacks. */
2386 #ifndef YYINITDEPTH
2387 # define YYINITDEPTH 200
2388 #endif
2389
2390 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2391 if the built-in stack extension method is used).
2392
2393 Do not make this value too large; the results are undefined if
2394 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2395 evaluated with infinite-precision integer arithmetic. */
2396
2397 #ifndef YYMAXDEPTH
2398 # define YYMAXDEPTH 10000
2399 #endif
2400
2401
2402 #if YYERROR_VERBOSE
2403
2404 # ifndef yystrlen
2405 # if defined __GLIBC__ && defined _STRING_H
2406 # define yystrlen strlen
2407 # else
2408 /* Return the length of YYSTR. */
2409 #if (defined __STDC__ || defined __C99__FUNC__ \
2410 || defined __cplusplus || defined _MSC_VER)
2411 static YYSIZE_T
2412 yystrlen (const char *yystr)
2413 #else
2414 static YYSIZE_T
2415 yystrlen (yystr)
2416 const char *yystr;
2417 #endif
2418 {
2419 YYSIZE_T yylen;
2420 for (yylen = 0; yystr[yylen]; yylen++)
2421 continue;
2422 return yylen;
2423 }
2424 # endif
2425 # endif
2426
2427 # ifndef yystpcpy
2428 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2429 # define yystpcpy stpcpy
2430 # else
2431 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2432 YYDEST. */
2433 #if (defined __STDC__ || defined __C99__FUNC__ \
2434 || defined __cplusplus || defined _MSC_VER)
2435 static char *
2436 yystpcpy (char *yydest, const char *yysrc)
2437 #else
2438 static char *
2439 yystpcpy (yydest, yysrc)
2440 char *yydest;
2441 const char *yysrc;
2442 #endif
2443 {
2444 char *yyd = yydest;
2445 const char *yys = yysrc;
2446
2447 while ((*yyd++ = *yys++) != '\0')
2448 continue;
2449
2450 return yyd - 1;
2451 }
2452 # endif
2453 # endif
2454
2455 # ifndef yytnamerr
2456 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2457 quotes and backslashes, so that it's suitable for yyerror. The
2458 heuristic is that double-quoting is unnecessary unless the string
2459 contains an apostrophe, a comma, or backslash (other than
2460 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2461 null, do not copy; instead, return the length of what the result
2462 would have been. */
2463 static YYSIZE_T
2464 yytnamerr (char *yyres, const char *yystr)
2465 {
2466 if (*yystr == '"')
2467 {
2468 YYSIZE_T yyn = 0;
2469 char const *yyp = yystr;
2470
2471 for (;;)
2472 switch (*++yyp)
2473 {
2474 case '\'':
2475 case ',':
2476 goto do_not_strip_quotes;
2477
2478 case '\\':
2479 if (*++yyp != '\\')
2480 goto do_not_strip_quotes;
2481 /* Fall through. */
2482 default:
2483 if (yyres)
2484 yyres[yyn] = *yyp;
2485 yyn++;
2486 break;
2487
2488 case '"':
2489 if (yyres)
2490 yyres[yyn] = '\0';
2491 return yyn;
2492 }
2493 do_not_strip_quotes: ;
2494 }
2495
2496 if (! yyres)
2497 return yystrlen (yystr);
2498
2499 return yystpcpy (yyres, yystr) - yyres;
2500 }
2501 # endif
2502
2503 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2504 about the unexpected token YYTOKEN for the state stack whose top is
2505 YYSSP.
2506
2507 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
2508 not large enough to hold the message. In that case, also set
2509 *YYMSG_ALLOC to the required number of bytes. Return 2 if the
2510 required number of bytes is too large to store. */
2511 static int
2512 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2513 yytype_int16 *yyssp, int yytoken)
2514 {
2515 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
2516 YYSIZE_T yysize = yysize0;
2517 YYSIZE_T yysize1;
2518 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2519 /* Internationalized format string. */
2520 const char *yyformat = 0;
2521 /* Arguments of yyformat. */
2522 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2523 /* Number of reported tokens (one for the "unexpected", one per
2524 "expected"). */
2525 int yycount = 0;
2526
2527 /* There are many possibilities here to consider:
2528 - Assume YYFAIL is not used. It's too flawed to consider. See
2529 <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
2530 for details. YYERROR is fine as it does not invoke this
2531 function.
2532 - If this state is a consistent state with a default action, then
2533 the only way this function was invoked is if the default action
2534 is an error action. In that case, don't check for expected
2535 tokens because there are none.
2536 - The only way there can be no lookahead present (in yychar) is if
2537 this state is a consistent state with a default action. Thus,
2538 detecting the absence of a lookahead is sufficient to determine
2539 that there is no unexpected or expected token to report. In that
2540 case, just report a simple "syntax error".
2541 - Don't assume there isn't a lookahead just because this state is a
2542 consistent state with a default action. There might have been a
2543 previous inconsistent state, consistent state with a non-default
2544 action, or user semantic action that manipulated yychar.
2545 - Of course, the expected token list depends on states to have
2546 correct lookahead information, and it depends on the parser not
2547 to perform extra reductions after fetching a lookahead from the
2548 scanner and before detecting a syntax error. Thus, state merging
2549 (from LALR or IELR) and default reductions corrupt the expected
2550 token list. However, the list is correct for canonical LR with
2551 one exception: it will still contain any token that will not be
2552 accepted due to an error action in a later state.
2553 */
2554 if (yytoken != YYEMPTY)
2555 {
2556 int yyn = yypact[*yyssp];
2557 yyarg[yycount++] = yytname[yytoken];
2558 if (!yypact_value_is_default (yyn))
2559 {
2560 /* Start YYX at -YYN if negative to avoid negative indexes in
2561 YYCHECK. In other words, skip the first -YYN actions for
2562 this state because they are default actions. */
2563 int yyxbegin = yyn < 0 ? -yyn : 0;
2564 /* Stay within bounds of both yycheck and yytname. */
2565 int yychecklim = YYLAST - yyn + 1;
2566 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2567 int yyx;
2568
2569 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2570 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
2571 && !yytable_value_is_error (yytable[yyx + yyn]))
2572 {
2573 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2574 {
2575 yycount = 1;
2576 yysize = yysize0;
2577 break;
2578 }
2579 yyarg[yycount++] = yytname[yyx];
2580 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2581 if (! (yysize <= yysize1
2582 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2583 return 2;
2584 yysize = yysize1;
2585 }
2586 }
2587 }
2588
2589 switch (yycount)
2590 {
2591 # define YYCASE_(N, S) \
2592 case N: \
2593 yyformat = S; \
2594 break
2595 YYCASE_(0, YY_("syntax error"));
2596 YYCASE_(1, YY_("syntax error, unexpected %s"));
2597 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2598 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2599 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2600 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or % s"));
2601 # undef YYCASE_
2602 }
2603
2604 yysize1 = yysize + yystrlen (yyformat);
2605 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2606 return 2;
2607 yysize = yysize1;
2608
2609 if (*yymsg_alloc < yysize)
2610 {
2611 *yymsg_alloc = 2 * yysize;
2612 if (! (yysize <= *yymsg_alloc
2613 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2614 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2615 return 1;
2616 }
2617
2618 /* Avoid sprintf, as that infringes on the user's name space.
2619 Don't have undefined behavior even if the translation
2620 produced a string with the wrong number of "%s"s. */
2621 {
2622 char *yyp = *yymsg;
2623 int yyi = 0;
2624 while ((*yyp = *yyformat) != '\0')
2625 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2626 {
2627 yyp += yytnamerr (yyp, yyarg[yyi++]);
2628 yyformat += 2;
2629 }
2630 else
2631 {
2632 yyp++;
2633 yyformat++;
2634 }
2635 }
2636 return 0;
2637 }
2638 #endif /* YYERROR_VERBOSE */
2639
2640 /*-----------------------------------------------.
2641 | Release the memory associated to this symbol. |
2642 `-----------------------------------------------*/
2643
2644 /*ARGSUSED*/
2645 #if (defined __STDC__ || defined __C99__FUNC__ \
2646 || defined __cplusplus || defined _MSC_VER)
2647 static void
2648 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio np, struct _mesa_glsl_parse_state *state)
2649 #else
2650 static void
2651 yydestruct (yymsg, yytype, yyvaluep, yylocationp, state)
2652 const char *yymsg;
2653 int yytype;
2654 YYSTYPE *yyvaluep;
2655 YYLTYPE *yylocationp;
2656 struct _mesa_glsl_parse_state *state;
2657 #endif
2658 {
2659 YYUSE (yyvaluep);
2660 YYUSE (yylocationp);
2661 YYUSE (state);
2662
2663 if (!yymsg)
2664 yymsg = "Deleting";
2665 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2666
2667 switch (yytype)
2668 {
2669
2670 default:
2671 break;
2672 }
2673 }
2674
2675
2676 /* Prevent warnings from -Wmissing-prototypes. */
2677 #ifdef YYPARSE_PARAM
2678 #if defined __STDC__ || defined __cplusplus
2679 int yyparse (void *YYPARSE_PARAM);
2680 #else
2681 int yyparse ();
2682 #endif
2683 #else /* ! YYPARSE_PARAM */
2684 #if defined __STDC__ || defined __cplusplus
2685 int yyparse (struct _mesa_glsl_parse_state *state);
2686 #else
2687 int yyparse ();
2688 #endif
2689 #endif /* ! YYPARSE_PARAM */
2690
2691
2692 /*----------.
2693 | yyparse. |
2694 `----------*/
2695
2696 #ifdef YYPARSE_PARAM
2697 #if (defined __STDC__ || defined __C99__FUNC__ \
2698 || defined __cplusplus || defined _MSC_VER)
2699 int
2700 yyparse (void *YYPARSE_PARAM)
2701 #else
2702 int
2703 yyparse (YYPARSE_PARAM)
2704 void *YYPARSE_PARAM;
2705 #endif
2706 #else /* ! YYPARSE_PARAM */
2707 #if (defined __STDC__ || defined __C99__FUNC__ \
2708 || defined __cplusplus || defined _MSC_VER)
2709 int
2710 yyparse (struct _mesa_glsl_parse_state *state)
2711 #else
2712 int
2713 yyparse (state)
2714 struct _mesa_glsl_parse_state *state;
2715 #endif
2716 #endif
2717 {
2718 /* The lookahead symbol. */
2719 int yychar;
2720
2721 /* The semantic value of the lookahead symbol. */
2722 YYSTYPE yylval;
2723
2724 /* Location data for the lookahead symbol. */
2725 YYLTYPE yylloc;
2726
2727 /* Number of syntax errors so far. */
2728 int yynerrs;
2729
2730 int yystate;
2731 /* Number of tokens to shift before error messages enabled. */
2732 int yyerrstatus;
2733
2734 /* The stacks and their tools:
2735 `yyss': related to states.
2736 `yyvs': related to semantic values.
2737 `yyls': related to locations.
2738
2739 Refer to the stacks thru separate pointers, to allow yyoverflow
2740 to reallocate them elsewhere. */
2741
2742 /* The state stack. */
2743 yytype_int16 yyssa[YYINITDEPTH];
2744 yytype_int16 *yyss;
2745 yytype_int16 *yyssp;
2746
2747 /* The semantic value stack. */
2748 YYSTYPE yyvsa[YYINITDEPTH];
2749 YYSTYPE *yyvs;
2750 YYSTYPE *yyvsp;
2751
2752 /* The location stack. */
2753 YYLTYPE yylsa[YYINITDEPTH];
2754 YYLTYPE *yyls;
2755 YYLTYPE *yylsp;
2756
2757 /* The locations where the error started and ended. */
2758 YYLTYPE yyerror_range[3];
2759
2760 YYSIZE_T yystacksize;
2761
2762 int yyn;
2763 int yyresult;
2764 /* Lookahead token as an internal (translated) token number. */
2765 int yytoken;
2766 /* The variables used to return semantic value and location from the
2767 action routines. */
2768 YYSTYPE yyval;
2769 YYLTYPE yyloc;
2770
2771 #if YYERROR_VERBOSE
2772 /* Buffer for error messages, and its allocated size. */
2773 char yymsgbuf[128];
2774 char *yymsg = yymsgbuf;
2775 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
2776 #endif
2777
2778 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
2779
2780 /* The number of symbols on the RHS of the reduced rule.
2781 Keep to zero when no symbol should be popped. */
2782 int yylen = 0;
2783
2784 yytoken = 0;
2785 yyss = yyssa;
2786 yyvs = yyvsa;
2787 yyls = yylsa;
2788 yystacksize = YYINITDEPTH;
2789
2790 YYDPRINTF ((stderr, "Starting parse\n"));
2791
2792 yystate = 0;
2793 yyerrstatus = 0;
2794 yynerrs = 0;
2795 yychar = YYEMPTY; /* Cause a token to be read. */
2796
2797 /* Initialize stack pointers.
2798 Waste one element of value and location stack
2799 so that they stay on the same level as the state stack.
2800 The wasted elements are never initialized. */
2801 yyssp = yyss;
2802 yyvsp = yyvs;
2803 yylsp = yyls;
2804
2805 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2806 /* Initialize the default location before parsing starts. */
2807 yylloc.first_line = yylloc.last_line = 1;
2808 yylloc.first_column = yylloc.last_column = 1;
2809 #endif
2810
2811 /* User initialization code. */
2812
2813 /* Line 1590 of yacc.c */
2814 #line 48 "src/src/glsl/glsl_parser.yy"
2815 {
2816 yylloc.first_line = 1;
2817 yylloc.first_column = 1;
2818 yylloc.last_line = 1;
2819 yylloc.last_column = 1;
2820 yylloc.source = 0;
2821 }
2822
2823 /* Line 1590 of yacc.c */
2824 #line 2825 "src/chromium_gensrc/mesa/glsl_parser.cc"
2825 yylsp[0] = yylloc;
2826
2827 goto yysetstate;
2828
2829 /*------------------------------------------------------------.
2830 | yynewstate -- Push a new state, which is found in yystate. |
2831 `------------------------------------------------------------*/
2832 yynewstate:
2833 /* In all cases, when you get here, the value and location stacks
2834 have just been pushed. So pushing a state here evens the stacks. */
2835 yyssp++;
2836
2837 yysetstate:
2838 *yyssp = yystate;
2839
2840 if (yyss + yystacksize - 1 <= yyssp)
2841 {
2842 /* Get the current used size of the three stacks, in elements. */
2843 YYSIZE_T yysize = yyssp - yyss + 1;
2844
2845 #ifdef yyoverflow
2846 {
2847 /* Give user a chance to reallocate the stack. Use copies of
2848 these so that the &'s don't force the real ones into
2849 memory. */
2850 YYSTYPE *yyvs1 = yyvs;
2851 yytype_int16 *yyss1 = yyss;
2852 YYLTYPE *yyls1 = yyls;
2853
2854 /* Each stack pointer address is followed by the size of the
2855 data in use in that stack, in bytes. This used to be a
2856 conditional around just the two extra args, but that might
2857 be undefined if yyoverflow is a macro. */
2858 yyoverflow (YY_("memory exhausted"),
2859 &yyss1, yysize * sizeof (*yyssp),
2860 &yyvs1, yysize * sizeof (*yyvsp),
2861 &yyls1, yysize * sizeof (*yylsp),
2862 &yystacksize);
2863
2864 yyls = yyls1;
2865 yyss = yyss1;
2866 yyvs = yyvs1;
2867 }
2868 #else /* no yyoverflow */
2869 # ifndef YYSTACK_RELOCATE
2870 goto yyexhaustedlab;
2871 # else
2872 /* Extend the stack our own way. */
2873 if (YYMAXDEPTH <= yystacksize)
2874 goto yyexhaustedlab;
2875 yystacksize *= 2;
2876 if (YYMAXDEPTH < yystacksize)
2877 yystacksize = YYMAXDEPTH;
2878
2879 {
2880 yytype_int16 *yyss1 = yyss;
2881 union yyalloc *yyptr =
2882 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2883 if (! yyptr)
2884 goto yyexhaustedlab;
2885 YYSTACK_RELOCATE (yyss_alloc, yyss);
2886 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2887 YYSTACK_RELOCATE (yyls_alloc, yyls);
2888 # undef YYSTACK_RELOCATE
2889 if (yyss1 != yyssa)
2890 YYSTACK_FREE (yyss1);
2891 }
2892 # endif
2893 #endif /* no yyoverflow */
2894
2895 yyssp = yyss + yysize - 1;
2896 yyvsp = yyvs + yysize - 1;
2897 yylsp = yyls + yysize - 1;
2898
2899 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2900 (unsigned long int) yystacksize));
2901
2902 if (yyss + yystacksize - 1 <= yyssp)
2903 YYABORT;
2904 }
2905
2906 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2907
2908 if (yystate == YYFINAL)
2909 YYACCEPT;
2910
2911 goto yybackup;
2912
2913 /*-----------.
2914 | yybackup. |
2915 `-----------*/
2916 yybackup:
2917
2918 /* Do appropriate processing given the current state. Read a
2919 lookahead token if we need one and don't already have one. */
2920
2921 /* First try to decide what to do without reference to lookahead token. */
2922 yyn = yypact[yystate];
2923 if (yypact_value_is_default (yyn))
2924 goto yydefault;
2925
2926 /* Not known => get a lookahead token if don't already have one. */
2927
2928 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
2929 if (yychar == YYEMPTY)
2930 {
2931 YYDPRINTF ((stderr, "Reading a token: "));
2932 yychar = YYLEX;
2933 }
2934
2935 if (yychar <= YYEOF)
2936 {
2937 yychar = yytoken = YYEOF;
2938 YYDPRINTF ((stderr, "Now at end of input.\n"));
2939 }
2940 else
2941 {
2942 yytoken = YYTRANSLATE (yychar);
2943 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2944 }
2945
2946 /* If the proper action on seeing token YYTOKEN is to reduce or to
2947 detect an error, take that action. */
2948 yyn += yytoken;
2949 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2950 goto yydefault;
2951 yyn = yytable[yyn];
2952 if (yyn <= 0)
2953 {
2954 if (yytable_value_is_error (yyn))
2955 goto yyerrlab;
2956 yyn = -yyn;
2957 goto yyreduce;
2958 }
2959
2960 /* Count tokens shifted since error; after three, turn off error
2961 status. */
2962 if (yyerrstatus)
2963 yyerrstatus--;
2964
2965 /* Shift the lookahead token. */
2966 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2967
2968 /* Discard the shifted token. */
2969 yychar = YYEMPTY;
2970
2971 yystate = yyn;
2972 *++yyvsp = yylval;
2973 *++yylsp = yylloc;
2974 goto yynewstate;
2975
2976
2977 /*-----------------------------------------------------------.
2978 | yydefault -- do the default action for the current state. |
2979 `-----------------------------------------------------------*/
2980 yydefault:
2981 yyn = yydefact[yystate];
2982 if (yyn == 0)
2983 goto yyerrlab;
2984 goto yyreduce;
2985
2986
2987 /*-----------------------------.
2988 | yyreduce -- Do a reduction. |
2989 `-----------------------------*/
2990 yyreduce:
2991 /* yyn is the number of a rule to reduce with. */
2992 yylen = yyr2[yyn];
2993
2994 /* If YYLEN is nonzero, implement the default value of the action:
2995 `$$ = $1'.
2996
2997 Otherwise, the following line sets YYVAL to garbage.
2998 This behavior is undocumented and Bison
2999 users should not rely upon it. Assigning to YYVAL
3000 unconditionally makes the parser a bit smaller, and it avoids a
3001 GCC warning that YYVAL may be used uninitialized. */
3002 yyval = yyvsp[1-yylen];
3003
3004 /* Default location. */
3005 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
3006 YY_REDUCE_PRINT (yyn);
3007 switch (yyn)
3008 {
3009 case 2:
3010
3011 /* Line 1806 of yacc.c */
3012 #line 243 "src/src/glsl/glsl_parser.yy"
3013 {
3014 _mesa_glsl_initialize_types(state);
3015 }
3016 break;
3017
3018 case 3:
3019
3020 /* Line 1806 of yacc.c */
3021 #line 247 "src/src/glsl/glsl_parser.yy"
3022 {
3023 delete state->symbols;
3024 state->symbols = new(ralloc_parent(state)) glsl_symbol_table;
3025 _mesa_glsl_initialize_types(state);
3026 }
3027 break;
3028
3029 case 5:
3030
3031 /* Line 1806 of yacc.c */
3032 #line 257 "src/src/glsl/glsl_parser.yy"
3033 {
3034 bool supported = false;
3035
3036 switch ((yyvsp[(2) - (3)].n)) {
3037 case 100:
3038 state->es_shader = true;
3039 supported = state->ctx->API == API_OPENGLES2 ||
3040 state->ctx->Extensions.ARB_ES2_compatibility;
3041 break;
3042 case 110:
3043 case 120:
3044 /* FINISHME: Once the OpenGL 3.0 'forward compatible' context or
3045 * the OpenGL 3.2 Core context is supported, this logic will need
3046 * change. Older versions of GLSL are no longer supported
3047 * outside the compatibility contexts of 3.x.
3048 */
3049 case 130:
3050 case 140:
3051 case 150:
3052 case 330:
3053 case 400:
3054 case 410:
3055 case 420:
3056 supported = _mesa_is_desktop_gl(state->ctx) &&
3057 ((unsigned) (yyvsp[(2) - (3)].n)) <= state->ctx->Const .GLSLVersion;
3058 break;
3059 default:
3060 supported = false;
3061 break;
3062 }
3063
3064 state->language_version = (yyvsp[(2) - (3)].n);
3065 state->version_string =
3066 ralloc_asprintf(state, "GLSL%s %d.%02d",
3067 state->es_shader ? " ES" : "",
3068 state->language_version / 100,
3069 state->language_version % 100);
3070
3071 if (!supported) {
3072 _mesa_glsl_error(& (yylsp[(2) - (3)]), state, "%s is not supported . "
3073 "Supported versions are: %s\n",
3074 state->version_string,
3075 state->supported_version_string);
3076 }
3077
3078 if (state->language_version >= 140) {
3079 state->ARB_uniform_buffer_object_enable = true;
3080 }
3081 }
3082 break;
3083
3084 case 10:
3085
3086 /* Line 1806 of yacc.c */
3087 #line 314 "src/src/glsl/glsl_parser.yy"
3088 {
3089 if (state->language_version == 110) {
3090 _mesa_glsl_warning(& (yylsp[(1) - (2)]), state,
3091 "pragma `invariant(all)' not supported in %s",
3092 state->version_string);
3093 } else {
3094 state->all_invariant = true;
3095 }
3096 }
3097 break;
3098
3099 case 16:
3100
3101 /* Line 1806 of yacc.c */
3102 #line 338 "src/src/glsl/glsl_parser.yy"
3103 {
3104 if (!_mesa_glsl_process_extension((yyvsp[(2) - (5)].identifier), & (y ylsp[(2) - (5)]), (yyvsp[(4) - (5)].identifier), & (yylsp[(4) - (5)]), state)) {
3105 YYERROR;
3106 }
3107 }
3108 break;
3109
3110 case 17:
3111
3112 /* Line 1806 of yacc.c */
3113 #line 347 "src/src/glsl/glsl_parser.yy"
3114 {
3115 /* FINISHME: The NULL test is required because pragmas are set to
3116 * FINISHME: NULL. (See production rule for external_declaration.)
3117 */
3118 if ((yyvsp[(1) - (1)].node) != NULL)
3119 state->translation_unit.push_tail(& (yyvsp[(1) - (1)].node)->link) ;
3120 }
3121 break;
3122
3123 case 18:
3124
3125 /* Line 1806 of yacc.c */
3126 #line 355 "src/src/glsl/glsl_parser.yy"
3127 {
3128 /* FINISHME: The NULL test is required because pragmas are set to
3129 * FINISHME: NULL. (See production rule for external_declaration.)
3130 */
3131 if ((yyvsp[(2) - (2)].node) != NULL)
3132 state->translation_unit.push_tail(& (yyvsp[(2) - (2)].node)->link) ;
3133 }
3134 break;
3135
3136 case 21:
3137
3138 /* Line 1806 of yacc.c */
3139 #line 371 "src/src/glsl/glsl_parser.yy"
3140 {
3141 void *ctx = state;
3142 (yyval.expression) = new(ctx) ast_expression(ast_identifier, NULL, NU LL, NULL);
3143 (yyval.expression)->set_location(yylloc);
3144 (yyval.expression)->primary_expression.identifier = (yyvsp[(1) - (1)] .identifier);
3145 }
3146 break;
3147
3148 case 22:
3149
3150 /* Line 1806 of yacc.c */
3151 #line 378 "src/src/glsl/glsl_parser.yy"
3152 {
3153 void *ctx = state;
3154 (yyval.expression) = new(ctx) ast_expression(ast_int_constant, NULL, NULL, NULL);
3155 (yyval.expression)->set_location(yylloc);
3156 (yyval.expression)->primary_expression.int_constant = (yyvsp[(1) - (1 )].n);
3157 }
3158 break;
3159
3160 case 23:
3161
3162 /* Line 1806 of yacc.c */
3163 #line 385 "src/src/glsl/glsl_parser.yy"
3164 {
3165 void *ctx = state;
3166 (yyval.expression) = new(ctx) ast_expression(ast_uint_constant, NULL, NULL, NULL);
3167 (yyval.expression)->set_location(yylloc);
3168 (yyval.expression)->primary_expression.uint_constant = (yyvsp[(1) - ( 1)].n);
3169 }
3170 break;
3171
3172 case 24:
3173
3174 /* Line 1806 of yacc.c */
3175 #line 392 "src/src/glsl/glsl_parser.yy"
3176 {
3177 void *ctx = state;
3178 (yyval.expression) = new(ctx) ast_expression(ast_float_constant, NULL , NULL, NULL);
3179 (yyval.expression)->set_location(yylloc);
3180 (yyval.expression)->primary_expression.float_constant = (yyvsp[(1) - (1)].real);
3181 }
3182 break;
3183
3184 case 25:
3185
3186 /* Line 1806 of yacc.c */
3187 #line 399 "src/src/glsl/glsl_parser.yy"
3188 {
3189 void *ctx = state;
3190 (yyval.expression) = new(ctx) ast_expression(ast_bool_constant, NULL, NULL, NULL);
3191 (yyval.expression)->set_location(yylloc);
3192 (yyval.expression)->primary_expression.bool_constant = (yyvsp[(1) - ( 1)].n);
3193 }
3194 break;
3195
3196 case 26:
3197
3198 /* Line 1806 of yacc.c */
3199 #line 406 "src/src/glsl/glsl_parser.yy"
3200 {
3201 (yyval.expression) = (yyvsp[(2) - (3)].expression);
3202 }
3203 break;
3204
3205 case 28:
3206
3207 /* Line 1806 of yacc.c */
3208 #line 414 "src/src/glsl/glsl_parser.yy"
3209 {
3210 void *ctx = state;
3211 (yyval.expression) = new(ctx) ast_expression(ast_array_index, (yyvsp[ (1) - (4)].expression), (yyvsp[(3) - (4)].expression), NULL);
3212 (yyval.expression)->set_location(yylloc);
3213 }
3214 break;
3215
3216 case 29:
3217
3218 /* Line 1806 of yacc.c */
3219 #line 420 "src/src/glsl/glsl_parser.yy"
3220 {
3221 (yyval.expression) = (yyvsp[(1) - (1)].expression);
3222 }
3223 break;
3224
3225 case 30:
3226
3227 /* Line 1806 of yacc.c */
3228 #line 424 "src/src/glsl/glsl_parser.yy"
3229 {
3230 void *ctx = state;
3231 (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yy vsp[(1) - (3)].expression), NULL, NULL);
3232 (yyval.expression)->set_location(yylloc);
3233 (yyval.expression)->primary_expression.identifier = (yyvsp[(3) - (3)] .identifier);
3234 }
3235 break;
3236
3237 case 31:
3238
3239 /* Line 1806 of yacc.c */
3240 #line 431 "src/src/glsl/glsl_parser.yy"
3241 {
3242 void *ctx = state;
3243 (yyval.expression) = new(ctx) ast_expression(ast_post_inc, (yyvsp[(1) - (2)].expression), NULL, NULL);
3244 (yyval.expression)->set_location(yylloc);
3245 }
3246 break;
3247
3248 case 32:
3249
3250 /* Line 1806 of yacc.c */
3251 #line 437 "src/src/glsl/glsl_parser.yy"
3252 {
3253 void *ctx = state;
3254 (yyval.expression) = new(ctx) ast_expression(ast_post_dec, (yyvsp[(1) - (2)].expression), NULL, NULL);
3255 (yyval.expression)->set_location(yylloc);
3256 }
3257 break;
3258
3259 case 36:
3260
3261 /* Line 1806 of yacc.c */
3262 #line 455 "src/src/glsl/glsl_parser.yy"
3263 {
3264 void *ctx = state;
3265 (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yy vsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL);
3266 (yyval.expression)->set_location(yylloc);
3267 }
3268 break;
3269
3270 case 41:
3271
3272 /* Line 1806 of yacc.c */
3273 #line 474 "src/src/glsl/glsl_parser.yy"
3274 {
3275 (yyval.expression) = (yyvsp[(1) - (2)].expression);
3276 (yyval.expression)->set_location(yylloc);
3277 (yyval.expression)->expressions.push_tail(& (yyvsp[(2) - (2)].express ion)->link);
3278 }
3279 break;
3280
3281 case 42:
3282
3283 /* Line 1806 of yacc.c */
3284 #line 480 "src/src/glsl/glsl_parser.yy"
3285 {
3286 (yyval.expression) = (yyvsp[(1) - (3)].expression);
3287 (yyval.expression)->set_location(yylloc);
3288 (yyval.expression)->expressions.push_tail(& (yyvsp[(3) - (3)].express ion)->link);
3289 }
3290 break;
3291
3292 case 44:
3293
3294 /* Line 1806 of yacc.c */
3295 #line 496 "src/src/glsl/glsl_parser.yy"
3296 {
3297 void *ctx = state;
3298 (yyval.expression) = new(ctx) ast_function_expression((yyvsp[(1) - (1 )].type_specifier));
3299 (yyval.expression)->set_location(yylloc);
3300 }
3301 break;
3302
3303 case 45:
3304
3305 /* Line 1806 of yacc.c */
3306 #line 502 "src/src/glsl/glsl_parser.yy"
3307 {
3308 void *ctx = state;
3309 ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].id entifier));
3310 (yyval.expression) = new(ctx) ast_function_expression(callee);
3311 (yyval.expression)->set_location(yylloc);
3312 }
3313 break;
3314
3315 case 46:
3316
3317 /* Line 1806 of yacc.c */
3318 #line 509 "src/src/glsl/glsl_parser.yy"
3319 {
3320 void *ctx = state;
3321 ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].id entifier));
3322 (yyval.expression) = new(ctx) ast_function_expression(callee);
3323 (yyval.expression)->set_location(yylloc);
3324 }
3325 break;
3326
3327 case 51:
3328
3329 /* Line 1806 of yacc.c */
3330 #line 529 "src/src/glsl/glsl_parser.yy"
3331 {
3332 (yyval.expression) = (yyvsp[(1) - (2)].expression);
3333 (yyval.expression)->set_location(yylloc);
3334 (yyval.expression)->expressions.push_tail(& (yyvsp[(2) - (2)].express ion)->link);
3335 }
3336 break;
3337
3338 case 52:
3339
3340 /* Line 1806 of yacc.c */
3341 #line 535 "src/src/glsl/glsl_parser.yy"
3342 {
3343 (yyval.expression) = (yyvsp[(1) - (3)].expression);
3344 (yyval.expression)->set_location(yylloc);
3345 (yyval.expression)->expressions.push_tail(& (yyvsp[(3) - (3)].express ion)->link);
3346 }
3347 break;
3348
3349 case 53:
3350
3351 /* Line 1806 of yacc.c */
3352 #line 547 "src/src/glsl/glsl_parser.yy"
3353 {
3354 void *ctx = state;
3355 ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (2)].id entifier));
3356 (yyval.expression) = new(ctx) ast_function_expression(callee);
3357 (yyval.expression)->set_location(yylloc);
3358 }
3359 break;
3360
3361 case 55:
3362
3363 /* Line 1806 of yacc.c */
3364 #line 559 "src/src/glsl/glsl_parser.yy"
3365 {
3366 void *ctx = state;
3367 (yyval.expression) = new(ctx) ast_expression(ast_pre_inc, (yyvsp[(2) - (2)].expression), NULL, NULL);
3368 (yyval.expression)->set_location(yylloc);
3369 }
3370 break;
3371
3372 case 56:
3373
3374 /* Line 1806 of yacc.c */
3375 #line 565 "src/src/glsl/glsl_parser.yy"
3376 {
3377 void *ctx = state;
3378 (yyval.expression) = new(ctx) ast_expression(ast_pre_dec, (yyvsp[(2) - (2)].expression), NULL, NULL);
3379 (yyval.expression)->set_location(yylloc);
3380 }
3381 break;
3382
3383 case 57:
3384
3385 /* Line 1806 of yacc.c */
3386 #line 571 "src/src/glsl/glsl_parser.yy"
3387 {
3388 void *ctx = state;
3389 (yyval.expression) = new(ctx) ast_expression((yyvsp[(1) - (2)].n), (y yvsp[(2) - (2)].expression), NULL, NULL);
3390 (yyval.expression)->set_location(yylloc);
3391 }
3392 break;
3393
3394 case 58:
3395
3396 /* Line 1806 of yacc.c */
3397 #line 580 "src/src/glsl/glsl_parser.yy"
3398 { (yyval.n) = ast_plus; }
3399 break;
3400
3401 case 59:
3402
3403 /* Line 1806 of yacc.c */
3404 #line 581 "src/src/glsl/glsl_parser.yy"
3405 { (yyval.n) = ast_neg; }
3406 break;
3407
3408 case 60:
3409
3410 /* Line 1806 of yacc.c */
3411 #line 582 "src/src/glsl/glsl_parser.yy"
3412 { (yyval.n) = ast_logic_not; }
3413 break;
3414
3415 case 61:
3416
3417 /* Line 1806 of yacc.c */
3418 #line 583 "src/src/glsl/glsl_parser.yy"
3419 { (yyval.n) = ast_bit_not; }
3420 break;
3421
3422 case 63:
3423
3424 /* Line 1806 of yacc.c */
3425 #line 589 "src/src/glsl/glsl_parser.yy"
3426 {
3427 void *ctx = state;
3428 (yyval.expression) = new(ctx) ast_expression_bin(ast_mul, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3429 (yyval.expression)->set_location(yylloc);
3430 }
3431 break;
3432
3433 case 64:
3434
3435 /* Line 1806 of yacc.c */
3436 #line 595 "src/src/glsl/glsl_parser.yy"
3437 {
3438 void *ctx = state;
3439 (yyval.expression) = new(ctx) ast_expression_bin(ast_div, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3440 (yyval.expression)->set_location(yylloc);
3441 }
3442 break;
3443
3444 case 65:
3445
3446 /* Line 1806 of yacc.c */
3447 #line 601 "src/src/glsl/glsl_parser.yy"
3448 {
3449 void *ctx = state;
3450 (yyval.expression) = new(ctx) ast_expression_bin(ast_mod, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3451 (yyval.expression)->set_location(yylloc);
3452 }
3453 break;
3454
3455 case 67:
3456
3457 /* Line 1806 of yacc.c */
3458 #line 611 "src/src/glsl/glsl_parser.yy"
3459 {
3460 void *ctx = state;
3461 (yyval.expression) = new(ctx) ast_expression_bin(ast_add, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3462 (yyval.expression)->set_location(yylloc);
3463 }
3464 break;
3465
3466 case 68:
3467
3468 /* Line 1806 of yacc.c */
3469 #line 617 "src/src/glsl/glsl_parser.yy"
3470 {
3471 void *ctx = state;
3472 (yyval.expression) = new(ctx) ast_expression_bin(ast_sub, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3473 (yyval.expression)->set_location(yylloc);
3474 }
3475 break;
3476
3477 case 70:
3478
3479 /* Line 1806 of yacc.c */
3480 #line 627 "src/src/glsl/glsl_parser.yy"
3481 {
3482 void *ctx = state;
3483 (yyval.expression) = new(ctx) ast_expression_bin(ast_lshift, (yyvsp[( 1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3484 (yyval.expression)->set_location(yylloc);
3485 }
3486 break;
3487
3488 case 71:
3489
3490 /* Line 1806 of yacc.c */
3491 #line 633 "src/src/glsl/glsl_parser.yy"
3492 {
3493 void *ctx = state;
3494 (yyval.expression) = new(ctx) ast_expression_bin(ast_rshift, (yyvsp[( 1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3495 (yyval.expression)->set_location(yylloc);
3496 }
3497 break;
3498
3499 case 73:
3500
3501 /* Line 1806 of yacc.c */
3502 #line 643 "src/src/glsl/glsl_parser.yy"
3503 {
3504 void *ctx = state;
3505 (yyval.expression) = new(ctx) ast_expression_bin(ast_less, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3506 (yyval.expression)->set_location(yylloc);
3507 }
3508 break;
3509
3510 case 74:
3511
3512 /* Line 1806 of yacc.c */
3513 #line 649 "src/src/glsl/glsl_parser.yy"
3514 {
3515 void *ctx = state;
3516 (yyval.expression) = new(ctx) ast_expression_bin(ast_greater, (yyvsp[ (1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3517 (yyval.expression)->set_location(yylloc);
3518 }
3519 break;
3520
3521 case 75:
3522
3523 /* Line 1806 of yacc.c */
3524 #line 655 "src/src/glsl/glsl_parser.yy"
3525 {
3526 void *ctx = state;
3527 (yyval.expression) = new(ctx) ast_expression_bin(ast_lequal, (yyvsp[( 1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3528 (yyval.expression)->set_location(yylloc);
3529 }
3530 break;
3531
3532 case 76:
3533
3534 /* Line 1806 of yacc.c */
3535 #line 661 "src/src/glsl/glsl_parser.yy"
3536 {
3537 void *ctx = state;
3538 (yyval.expression) = new(ctx) ast_expression_bin(ast_gequal, (yyvsp[( 1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3539 (yyval.expression)->set_location(yylloc);
3540 }
3541 break;
3542
3543 case 78:
3544
3545 /* Line 1806 of yacc.c */
3546 #line 671 "src/src/glsl/glsl_parser.yy"
3547 {
3548 void *ctx = state;
3549 (yyval.expression) = new(ctx) ast_expression_bin(ast_equal, (yyvsp[(1 ) - (3)].expression), (yyvsp[(3) - (3)].expression));
3550 (yyval.expression)->set_location(yylloc);
3551 }
3552 break;
3553
3554 case 79:
3555
3556 /* Line 1806 of yacc.c */
3557 #line 677 "src/src/glsl/glsl_parser.yy"
3558 {
3559 void *ctx = state;
3560 (yyval.expression) = new(ctx) ast_expression_bin(ast_nequal, (yyvsp[( 1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3561 (yyval.expression)->set_location(yylloc);
3562 }
3563 break;
3564
3565 case 81:
3566
3567 /* Line 1806 of yacc.c */
3568 #line 687 "src/src/glsl/glsl_parser.yy"
3569 {
3570 void *ctx = state;
3571 (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_and, (yyvsp[ (1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3572 (yyval.expression)->set_location(yylloc);
3573 }
3574 break;
3575
3576 case 83:
3577
3578 /* Line 1806 of yacc.c */
3579 #line 697 "src/src/glsl/glsl_parser.yy"
3580 {
3581 void *ctx = state;
3582 (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_xor, (yyvsp[ (1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3583 (yyval.expression)->set_location(yylloc);
3584 }
3585 break;
3586
3587 case 85:
3588
3589 /* Line 1806 of yacc.c */
3590 #line 707 "src/src/glsl/glsl_parser.yy"
3591 {
3592 void *ctx = state;
3593 (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[( 1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3594 (yyval.expression)->set_location(yylloc);
3595 }
3596 break;
3597
3598 case 87:
3599
3600 /* Line 1806 of yacc.c */
3601 #line 717 "src/src/glsl/glsl_parser.yy"
3602 {
3603 void *ctx = state;
3604 (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_and, (yyvs p[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3605 (yyval.expression)->set_location(yylloc);
3606 }
3607 break;
3608
3609 case 89:
3610
3611 /* Line 1806 of yacc.c */
3612 #line 727 "src/src/glsl/glsl_parser.yy"
3613 {
3614 void *ctx = state;
3615 (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_xor, (yyvs p[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3616 (yyval.expression)->set_location(yylloc);
3617 }
3618 break;
3619
3620 case 91:
3621
3622 /* Line 1806 of yacc.c */
3623 #line 737 "src/src/glsl/glsl_parser.yy"
3624 {
3625 void *ctx = state;
3626 (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_or, (yyvsp [(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
3627 (yyval.expression)->set_location(yylloc);
3628 }
3629 break;
3630
3631 case 93:
3632
3633 /* Line 1806 of yacc.c */
3634 #line 747 "src/src/glsl/glsl_parser.yy"
3635 {
3636 void *ctx = state;
3637 (yyval.expression) = new(ctx) ast_expression(ast_conditional, (yyvsp[ (1) - (5)].expression), (yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].express ion));
3638 (yyval.expression)->set_location(yylloc);
3639 }
3640 break;
3641
3642 case 95:
3643
3644 /* Line 1806 of yacc.c */
3645 #line 757 "src/src/glsl/glsl_parser.yy"
3646 {
3647 void *ctx = state;
3648 (yyval.expression) = new(ctx) ast_expression((yyvsp[(2) - (3)].n), (y yvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL);
3649 (yyval.expression)->set_location(yylloc);
3650 }
3651 break;
3652
3653 case 96:
3654
3655 /* Line 1806 of yacc.c */
3656 #line 765 "src/src/glsl/glsl_parser.yy"
3657 { (yyval.n) = ast_assign; }
3658 break;
3659
3660 case 97:
3661
3662 /* Line 1806 of yacc.c */
3663 #line 766 "src/src/glsl/glsl_parser.yy"
3664 { (yyval.n) = ast_mul_assign; }
3665 break;
3666
3667 case 98:
3668
3669 /* Line 1806 of yacc.c */
3670 #line 767 "src/src/glsl/glsl_parser.yy"
3671 { (yyval.n) = ast_div_assign; }
3672 break;
3673
3674 case 99:
3675
3676 /* Line 1806 of yacc.c */
3677 #line 768 "src/src/glsl/glsl_parser.yy"
3678 { (yyval.n) = ast_mod_assign; }
3679 break;
3680
3681 case 100:
3682
3683 /* Line 1806 of yacc.c */
3684 #line 769 "src/src/glsl/glsl_parser.yy"
3685 { (yyval.n) = ast_add_assign; }
3686 break;
3687
3688 case 101:
3689
3690 /* Line 1806 of yacc.c */
3691 #line 770 "src/src/glsl/glsl_parser.yy"
3692 { (yyval.n) = ast_sub_assign; }
3693 break;
3694
3695 case 102:
3696
3697 /* Line 1806 of yacc.c */
3698 #line 771 "src/src/glsl/glsl_parser.yy"
3699 { (yyval.n) = ast_ls_assign; }
3700 break;
3701
3702 case 103:
3703
3704 /* Line 1806 of yacc.c */
3705 #line 772 "src/src/glsl/glsl_parser.yy"
3706 { (yyval.n) = ast_rs_assign; }
3707 break;
3708
3709 case 104:
3710
3711 /* Line 1806 of yacc.c */
3712 #line 773 "src/src/glsl/glsl_parser.yy"
3713 { (yyval.n) = ast_and_assign; }
3714 break;
3715
3716 case 105:
3717
3718 /* Line 1806 of yacc.c */
3719 #line 774 "src/src/glsl/glsl_parser.yy"
3720 { (yyval.n) = ast_xor_assign; }
3721 break;
3722
3723 case 106:
3724
3725 /* Line 1806 of yacc.c */
3726 #line 775 "src/src/glsl/glsl_parser.yy"
3727 { (yyval.n) = ast_or_assign; }
3728 break;
3729
3730 case 107:
3731
3732 /* Line 1806 of yacc.c */
3733 #line 780 "src/src/glsl/glsl_parser.yy"
3734 {
3735 (yyval.expression) = (yyvsp[(1) - (1)].expression);
3736 }
3737 break;
3738
3739 case 108:
3740
3741 /* Line 1806 of yacc.c */
3742 #line 784 "src/src/glsl/glsl_parser.yy"
3743 {
3744 void *ctx = state;
3745 if ((yyvsp[(1) - (3)].expression)->oper != ast_sequence) {
3746 (yyval.expression) = new(ctx) ast_expression(ast_sequence, NULL, N ULL, NULL);
3747 (yyval.expression)->set_location(yylloc);
3748 (yyval.expression)->expressions.push_tail(& (yyvsp[(1) - (3)].expr ession)->link);
3749 } else {
3750 (yyval.expression) = (yyvsp[(1) - (3)].expression);
3751 }
3752
3753 (yyval.expression)->expressions.push_tail(& (yyvsp[(3) - (3)].express ion)->link);
3754 }
3755 break;
3756
3757 case 110:
3758
3759 /* Line 1806 of yacc.c */
3760 #line 804 "src/src/glsl/glsl_parser.yy"
3761 {
3762 state->symbols->pop_scope();
3763 (yyval.node) = (yyvsp[(1) - (2)].function);
3764 }
3765 break;
3766
3767 case 111:
3768
3769 /* Line 1806 of yacc.c */
3770 #line 809 "src/src/glsl/glsl_parser.yy"
3771 {
3772 (yyval.node) = (yyvsp[(1) - (2)].declarator_list);
3773 }
3774 break;
3775
3776 case 112:
3777
3778 /* Line 1806 of yacc.c */
3779 #line 813 "src/src/glsl/glsl_parser.yy"
3780 {
3781 (yyvsp[(3) - (4)].type_specifier)->precision = (yyvsp[(2) - (4)].n);
3782 (yyvsp[(3) - (4)].type_specifier)->is_precision_statement = true;
3783 (yyval.node) = (yyvsp[(3) - (4)].type_specifier);
3784 }
3785 break;
3786
3787 case 113:
3788
3789 /* Line 1806 of yacc.c */
3790 #line 819 "src/src/glsl/glsl_parser.yy"
3791 {
3792 (yyval.node) = (yyvsp[(1) - (1)].node);
3793 }
3794 break;
3795
3796 case 117:
3797
3798 /* Line 1806 of yacc.c */
3799 #line 835 "src/src/glsl/glsl_parser.yy"
3800 {
3801 (yyval.function) = (yyvsp[(1) - (2)].function);
3802 (yyval.function)->parameters.push_tail(& (yyvsp[(2) - (2)].parameter_ declarator)->link);
3803 }
3804 break;
3805
3806 case 118:
3807
3808 /* Line 1806 of yacc.c */
3809 #line 840 "src/src/glsl/glsl_parser.yy"
3810 {
3811 (yyval.function) = (yyvsp[(1) - (3)].function);
3812 (yyval.function)->parameters.push_tail(& (yyvsp[(3) - (3)].parameter_ declarator)->link);
3813 }
3814 break;
3815
3816 case 119:
3817
3818 /* Line 1806 of yacc.c */
3819 #line 848 "src/src/glsl/glsl_parser.yy"
3820 {
3821 void *ctx = state;
3822 (yyval.function) = new(ctx) ast_function();
3823 (yyval.function)->set_location(yylloc);
3824 (yyval.function)->return_type = (yyvsp[(1) - (3)].fully_specified_typ e);
3825 (yyval.function)->identifier = (yyvsp[(2) - (3)].identifier);
3826
3827 state->symbols->add_function(new(state) ir_function((yyvsp[(2) - (3)] .identifier)));
3828 state->symbols->push_scope();
3829 }
3830 break;
3831
3832 case 120:
3833
3834 /* Line 1806 of yacc.c */
3835 #line 862 "src/src/glsl/glsl_parser.yy"
3836 {
3837 void *ctx = state;
3838 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
3839 (yyval.parameter_declarator)->set_location(yylloc);
3840 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_typ e();
3841 (yyval.parameter_declarator)->type->set_location(yylloc);
3842 (yyval.parameter_declarator)->type->specifier = (yyvsp[(1) - (2)].typ e_specifier);
3843 (yyval.parameter_declarator)->identifier = (yyvsp[(2) - (2)].identifi er);
3844 }
3845 break;
3846
3847 case 121:
3848
3849 /* Line 1806 of yacc.c */
3850 #line 872 "src/src/glsl/glsl_parser.yy"
3851 {
3852 void *ctx = state;
3853 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
3854 (yyval.parameter_declarator)->set_location(yylloc);
3855 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_typ e();
3856 (yyval.parameter_declarator)->type->set_location(yylloc);
3857 (yyval.parameter_declarator)->type->specifier = (yyvsp[(1) - (5)].typ e_specifier);
3858 (yyval.parameter_declarator)->identifier = (yyvsp[(2) - (5)].identifi er);
3859 (yyval.parameter_declarator)->is_array = true;
3860 (yyval.parameter_declarator)->array_size = (yyvsp[(4) - (5)].expressi on);
3861 }
3862 break;
3863
3864 case 122:
3865
3866 /* Line 1806 of yacc.c */
3867 #line 887 "src/src/glsl/glsl_parser.yy"
3868 {
3869 (yyvsp[(1) - (3)].type_qualifier).flags.i |= (yyvsp[(2) - (3)].type_q ualifier).flags.i;
3870
3871 (yyval.parameter_declarator) = (yyvsp[(3) - (3)].parameter_declarator );
3872 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (3)].typ e_qualifier);
3873 }
3874 break;
3875
3876 case 123:
3877
3878 /* Line 1806 of yacc.c */
3879 #line 894 "src/src/glsl/glsl_parser.yy"
3880 {
3881 (yyval.parameter_declarator) = (yyvsp[(2) - (2)].parameter_declarator );
3882 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].typ e_qualifier);
3883 }
3884 break;
3885
3886 case 124:
3887
3888 /* Line 1806 of yacc.c */
3889 #line 899 "src/src/glsl/glsl_parser.yy"
3890 {
3891 void *ctx = state;
3892 (yyvsp[(1) - (3)].type_qualifier).flags.i |= (yyvsp[(2) - (3)].type_q ualifier).flags.i;
3893
3894 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
3895 (yyval.parameter_declarator)->set_location(yylloc);
3896 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_typ e();
3897 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (3)].typ e_qualifier);
3898 (yyval.parameter_declarator)->type->specifier = (yyvsp[(3) - (3)].typ e_specifier);
3899 }
3900 break;
3901
3902 case 125:
3903
3904 /* Line 1806 of yacc.c */
3905 #line 910 "src/src/glsl/glsl_parser.yy"
3906 {
3907 void *ctx = state;
3908 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
3909 (yyval.parameter_declarator)->set_location(yylloc);
3910 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_typ e();
3911 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].typ e_qualifier);
3912 (yyval.parameter_declarator)->type->specifier = (yyvsp[(2) - (2)].typ e_specifier);
3913 }
3914 break;
3915
3916 case 126:
3917
3918 /* Line 1806 of yacc.c */
3919 #line 922 "src/src/glsl/glsl_parser.yy"
3920 {
3921 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
3922 }
3923 break;
3924
3925 case 127:
3926
3927 /* Line 1806 of yacc.c */
3928 #line 926 "src/src/glsl/glsl_parser.yy"
3929 {
3930 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
3931 (yyval.type_qualifier).flags.q.in = 1;
3932 }
3933 break;
3934
3935 case 128:
3936
3937 /* Line 1806 of yacc.c */
3938 #line 931 "src/src/glsl/glsl_parser.yy"
3939 {
3940 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
3941 (yyval.type_qualifier).flags.q.out = 1;
3942 }
3943 break;
3944
3945 case 129:
3946
3947 /* Line 1806 of yacc.c */
3948 #line 936 "src/src/glsl/glsl_parser.yy"
3949 {
3950 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
3951 (yyval.type_qualifier).flags.q.in = 1;
3952 (yyval.type_qualifier).flags.q.out = 1;
3953 }
3954 break;
3955
3956 case 132:
3957
3958 /* Line 1806 of yacc.c */
3959 #line 950 "src/src/glsl/glsl_parser.yy"
3960 {
3961 void *ctx = state;
3962 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (3)].id entifier), false, NULL, NULL);
3963 decl->set_location(yylloc);
3964
3965 (yyval.declarator_list) = (yyvsp[(1) - (3)].declarator_list);
3966 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3967 state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3) - (3)].identifier), ir_var_auto));
3968 }
3969 break;
3970
3971 case 133:
3972
3973 /* Line 1806 of yacc.c */
3974 #line 960 "src/src/glsl/glsl_parser.yy"
3975 {
3976 void *ctx = state;
3977 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].id entifier), true, NULL, NULL);
3978 decl->set_location(yylloc);
3979
3980 (yyval.declarator_list) = (yyvsp[(1) - (5)].declarator_list);
3981 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3982 state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3) - (5)].identifier), ir_var_auto));
3983 }
3984 break;
3985
3986 case 134:
3987
3988 /* Line 1806 of yacc.c */
3989 #line 970 "src/src/glsl/glsl_parser.yy"
3990 {
3991 void *ctx = state;
3992 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (6)].id entifier), true, (yyvsp[(5) - (6)].expression), NULL);
3993 decl->set_location(yylloc);
3994
3995 (yyval.declarator_list) = (yyvsp[(1) - (6)].declarator_list);
3996 (yyval.declarator_list)->declarations.push_tail(&decl->link);
3997 state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3) - (6)].identifier), ir_var_auto));
3998 }
3999 break;
4000
4001 case 135:
4002
4003 /* Line 1806 of yacc.c */
4004 #line 980 "src/src/glsl/glsl_parser.yy"
4005 {
4006 void *ctx = state;
4007 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (7)].id entifier), true, NULL, (yyvsp[(7) - (7)].expression));
4008 decl->set_location(yylloc);
4009
4010 (yyval.declarator_list) = (yyvsp[(1) - (7)].declarator_list);
4011 (yyval.declarator_list)->declarations.push_tail(&decl->link);
4012 state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3) - (7)].identifier), ir_var_auto));
4013 }
4014 break;
4015
4016 case 136:
4017
4018 /* Line 1806 of yacc.c */
4019 #line 990 "src/src/glsl/glsl_parser.yy"
4020 {
4021 void *ctx = state;
4022 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (8)].id entifier), true, (yyvsp[(5) - (8)].expression), (yyvsp[(8) - (8)].expression));
4023 decl->set_location(yylloc);
4024
4025 (yyval.declarator_list) = (yyvsp[(1) - (8)].declarator_list);
4026 (yyval.declarator_list)->declarations.push_tail(&decl->link);
4027 state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3) - (8)].identifier), ir_var_auto));
4028 }
4029 break;
4030
4031 case 137:
4032
4033 /* Line 1806 of yacc.c */
4034 #line 1000 "src/src/glsl/glsl_parser.yy"
4035 {
4036 void *ctx = state;
4037 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].id entifier), false, NULL, (yyvsp[(5) - (5)].expression));
4038 decl->set_location(yylloc);
4039
4040 (yyval.declarator_list) = (yyvsp[(1) - (5)].declarator_list);
4041 (yyval.declarator_list)->declarations.push_tail(&decl->link);
4042 state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3) - (5)].identifier), ir_var_auto));
4043 }
4044 break;
4045
4046 case 138:
4047
4048 /* Line 1806 of yacc.c */
4049 #line 1014 "src/src/glsl/glsl_parser.yy"
4050 {
4051 void *ctx = state;
4052 /* Empty declaration list is valid. */
4053 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - ( 1)].fully_specified_type));
4054 (yyval.declarator_list)->set_location(yylloc);
4055 }
4056 break;
4057
4058 case 139:
4059
4060 /* Line 1806 of yacc.c */
4061 #line 1021 "src/src/glsl/glsl_parser.yy"
4062 {
4063 void *ctx = state;
4064 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].id entifier), false, NULL, NULL);
4065
4066 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - ( 2)].fully_specified_type));
4067 (yyval.declarator_list)->set_location(yylloc);
4068 (yyval.declarator_list)->declarations.push_tail(&decl->link);
4069 }
4070 break;
4071
4072 case 140:
4073
4074 /* Line 1806 of yacc.c */
4075 #line 1030 "src/src/glsl/glsl_parser.yy"
4076 {
4077 void *ctx = state;
4078 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].id entifier), true, NULL, NULL);
4079
4080 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - ( 4)].fully_specified_type));
4081 (yyval.declarator_list)->set_location(yylloc);
4082 (yyval.declarator_list)->declarations.push_tail(&decl->link);
4083 }
4084 break;
4085
4086 case 141:
4087
4088 /* Line 1806 of yacc.c */
4089 #line 1039 "src/src/glsl/glsl_parser.yy"
4090 {
4091 void *ctx = state;
4092 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (5)].id entifier), true, (yyvsp[(4) - (5)].expression), NULL);
4093
4094 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - ( 5)].fully_specified_type));
4095 (yyval.declarator_list)->set_location(yylloc);
4096 (yyval.declarator_list)->declarations.push_tail(&decl->link);
4097 }
4098 break;
4099
4100 case 142:
4101
4102 /* Line 1806 of yacc.c */
4103 #line 1048 "src/src/glsl/glsl_parser.yy"
4104 {
4105 void *ctx = state;
4106 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (6)].id entifier), true, NULL, (yyvsp[(6) - (6)].expression));
4107
4108 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - ( 6)].fully_specified_type));
4109 (yyval.declarator_list)->set_location(yylloc);
4110 (yyval.declarator_list)->declarations.push_tail(&decl->link);
4111 }
4112 break;
4113
4114 case 143:
4115
4116 /* Line 1806 of yacc.c */
4117 #line 1057 "src/src/glsl/glsl_parser.yy"
4118 {
4119 void *ctx = state;
4120 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (7)].id entifier), true, (yyvsp[(4) - (7)].expression), (yyvsp[(7) - (7)].expression));
4121
4122 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - ( 7)].fully_specified_type));
4123 (yyval.declarator_list)->set_location(yylloc);
4124 (yyval.declarator_list)->declarations.push_tail(&decl->link);
4125 }
4126 break;
4127
4128 case 144:
4129
4130 /* Line 1806 of yacc.c */
4131 #line 1066 "src/src/glsl/glsl_parser.yy"
4132 {
4133 void *ctx = state;
4134 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].id entifier), false, NULL, (yyvsp[(4) - (4)].expression));
4135
4136 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - ( 4)].fully_specified_type));
4137 (yyval.declarator_list)->set_location(yylloc);
4138 (yyval.declarator_list)->declarations.push_tail(&decl->link);
4139 }
4140 break;
4141
4142 case 145:
4143
4144 /* Line 1806 of yacc.c */
4145 #line 1075 "src/src/glsl/glsl_parser.yy"
4146 {
4147 void *ctx = state;
4148 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].id entifier), false, NULL, NULL);
4149
4150 (yyval.declarator_list) = new(ctx) ast_declarator_list(NULL);
4151 (yyval.declarator_list)->set_location(yylloc);
4152 (yyval.declarator_list)->invariant = true;
4153
4154 (yyval.declarator_list)->declarations.push_tail(&decl->link);
4155 }
4156 break;
4157
4158 case 146:
4159
4160 /* Line 1806 of yacc.c */
4161 #line 1089 "src/src/glsl/glsl_parser.yy"
4162 {
4163 void *ctx = state;
4164 (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type();
4165 (yyval.fully_specified_type)->set_location(yylloc);
4166 (yyval.fully_specified_type)->specifier = (yyvsp[(1) - (1)].type_spec ifier);
4167 }
4168 break;
4169
4170 case 147:
4171
4172 /* Line 1806 of yacc.c */
4173 #line 1096 "src/src/glsl/glsl_parser.yy"
4174 {
4175 void *ctx = state;
4176 (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type();
4177 (yyval.fully_specified_type)->set_location(yylloc);
4178 (yyval.fully_specified_type)->qualifier = (yyvsp[(1) - (2)].type_qual ifier);
4179 (yyval.fully_specified_type)->specifier = (yyvsp[(2) - (2)].type_spec ifier);
4180 }
4181 break;
4182
4183 case 148:
4184
4185 /* Line 1806 of yacc.c */
4186 #line 1107 "src/src/glsl/glsl_parser.yy"
4187 {
4188 (yyval.type_qualifier) = (yyvsp[(3) - (4)].type_qualifier);
4189 }
4190 break;
4191
4192 case 150:
4193
4194 /* Line 1806 of yacc.c */
4195 #line 1115 "src/src/glsl/glsl_parser.yy"
4196 {
4197 (yyval.type_qualifier) = (yyvsp[(1) - (3)].type_qualifier);
4198 if (!(yyval.type_qualifier).merge_qualifier(& (yylsp[(3) - (3)]), sta te, (yyvsp[(3) - (3)].type_qualifier))) {
4199 YYERROR;
4200 }
4201 }
4202 break;
4203
4204 case 151:
4205
4206 /* Line 1806 of yacc.c */
4207 #line 1125 "src/src/glsl/glsl_parser.yy"
4208 {
4209 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4210
4211 /* Layout qualifiers for ARB_fragment_coord_conventions. */
4212 if (!(yyval.type_qualifier).flags.i && state->ARB_fragment_coord_conv entions_enable) {
4213 if (strcmp((yyvsp[(1) - (1)].identifier), "origin_upper_left") == 0) {
4214 (yyval.type_qualifier).flags.q.origin_upper_left = 1;
4215 } else if (strcmp((yyvsp[(1) - (1)].identifier), "pixel_center_int eger") == 0) {
4216 (yyval.type_qualifier).flags.q.pixel_center_integer = 1;
4217 }
4218
4219 if ((yyval.type_qualifier).flags.i && state->ARB_fragment_coord_co nventions_warn) {
4220 _mesa_glsl_warning(& (yylsp[(1) - (1)]), state,
4221 "GL_ARB_fragment_coord_conventions layout "
4222 "identifier `%s' used\n", (yyvsp[(1) - (1)]. identifier));
4223 }
4224 }
4225
4226 /* Layout qualifiers for AMD/ARB_conservative_depth. */
4227 if (!(yyval.type_qualifier).flags.i &&
4228 (state->AMD_conservative_depth_enable ||
4229 state->ARB_conservative_depth_enable)) {
4230 if (strcmp((yyvsp[(1) - (1)].identifier), "depth_any") == 0) {
4231 (yyval.type_qualifier).flags.q.depth_any = 1;
4232 } else if (strcmp((yyvsp[(1) - (1)].identifier), "depth_greater") == 0) {
4233 (yyval.type_qualifier).flags.q.depth_greater = 1;
4234 } else if (strcmp((yyvsp[(1) - (1)].identifier), "depth_less") == 0) {
4235 (yyval.type_qualifier).flags.q.depth_less = 1;
4236 } else if (strcmp((yyvsp[(1) - (1)].identifier), "depth_unchanged" ) == 0) {
4237 (yyval.type_qualifier).flags.q.depth_unchanged = 1;
4238 }
4239
4240 if ((yyval.type_qualifier).flags.i && state->AMD_conservative_dept h_warn) {
4241 _mesa_glsl_warning(& (yylsp[(1) - (1)]), state,
4242 "GL_AMD_conservative_depth "
4243 "layout qualifier `%s' is used\n", (yyvsp[(1 ) - (1)].identifier));
4244 }
4245 if ((yyval.type_qualifier).flags.i && state->ARB_conservative_dept h_warn) {
4246 _mesa_glsl_warning(& (yylsp[(1) - (1)]), state,
4247 "GL_ARB_conservative_depth "
4248 "layout qualifier `%s' is used\n", (yyvsp[(1 ) - (1)].identifier));
4249 }
4250 }
4251
4252 /* See also uniform_block_layout_qualifier. */
4253 if (!(yyval.type_qualifier).flags.i && state->ARB_uniform_buffer_obje ct_enable) {
4254 if (strcmp((yyvsp[(1) - (1)].identifier), "std140") == 0) {
4255 (yyval.type_qualifier).flags.q.std140 = 1;
4256 } else if (strcmp((yyvsp[(1) - (1)].identifier), "shared") == 0) {
4257 (yyval.type_qualifier).flags.q.shared = 1;
4258 } else if (strcmp((yyvsp[(1) - (1)].identifier), "column_major") = = 0) {
4259 (yyval.type_qualifier).flags.q.column_major = 1;
4260 }
4261
4262 if ((yyval.type_qualifier).flags.i && state->ARB_uniform_buffer_ob ject_warn) {
4263 _mesa_glsl_warning(& (yylsp[(1) - (1)]), state,
4264 "#version 140 / GL_ARB_uniform_buffer_object "
4265 "layout qualifier `%s' is used\n", (yyvsp[(1 ) - (1)].identifier));
4266 }
4267 }
4268
4269 if (!(yyval.type_qualifier).flags.i) {
4270 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "unrecognized layout identifier "
4271 "`%s'\n", (yyvsp[(1) - (1)].identifier));
4272 YYERROR;
4273 }
4274 }
4275 break;
4276
4277 case 152:
4278
4279 /* Line 1806 of yacc.c */
4280 #line 1193 "src/src/glsl/glsl_parser.yy"
4281 {
4282 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4283
4284 if (state->ARB_explicit_attrib_location_enable) {
4285 /* FINISHME: Handle 'index' once GL_ARB_blend_func_exteneded and
4286 * FINISHME: GLSL 1.30 (or later) are supported.
4287 */
4288 if (strcmp("location", (yyvsp[(1) - (3)].identifier)) == 0) {
4289 (yyval.type_qualifier).flags.q.explicit_location = 1;
4290
4291 if ((yyvsp[(3) - (3)].n) >= 0) {
4292 (yyval.type_qualifier).location = (yyvsp[(3) - (3)].n);
4293 } else {
4294 _mesa_glsl_error(& (yylsp[(3) - (3)]), state,
4295 "invalid location %d specified\n", (yyvsp[( 3) - (3)].n));
4296 YYERROR;
4297 }
4298 }
4299
4300 if (strcmp("index", (yyvsp[(1) - (3)].identifier)) == 0) {
4301 (yyval.type_qualifier).flags.q.explicit_index = 1;
4302
4303 if ((yyvsp[(3) - (3)].n) >= 0) {
4304 (yyval.type_qualifier).index = (yyvsp[(3) - (3)].n);
4305 } else {
4306 _mesa_glsl_error(& (yylsp[(3) - (3)]), state,
4307 "invalid index %d specified\n", (yyvsp[(3) - (3)].n));
4308 YYERROR;
4309 }
4310 }
4311 }
4312
4313 /* If the identifier didn't match any known layout identifiers,
4314 * emit an error.
4315 */
4316 if (!(yyval.type_qualifier).flags.i) {
4317 _mesa_glsl_error(& (yylsp[(1) - (3)]), state, "unrecognized layout identifier "
4318 "`%s'\n", (yyvsp[(1) - (3)].identifier));
4319 YYERROR;
4320 } else if (state->ARB_explicit_attrib_location_warn) {
4321 _mesa_glsl_warning(& (yylsp[(1) - (3)]), state,
4322 "GL_ARB_explicit_attrib_location layout "
4323 "identifier `%s' used\n", (yyvsp[(1) - (3)].ide ntifier));
4324 }
4325 }
4326 break;
4327
4328 case 153:
4329
4330 /* Line 1806 of yacc.c */
4331 #line 1239 "src/src/glsl/glsl_parser.yy"
4332 {
4333 (yyval.type_qualifier) = (yyvsp[(1) - (1)].type_qualifier);
4334 /* Layout qualifiers for ARB_uniform_buffer_object. */
4335 if (!state->ARB_uniform_buffer_object_enable) {
4336 _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
4337 "#version 140 / GL_ARB_uniform_buffer_object "
4338 "layout qualifier `%s' is used\n", (yyvsp[(1) - ( 1)].type_qualifier));
4339 } else if (state->ARB_uniform_buffer_object_warn) {
4340 _mesa_glsl_warning(& (yylsp[(1) - (1)]), state,
4341 "#version 140 / GL_ARB_uniform_buffer_object "
4342 "layout qualifier `%s' is used\n", (yyvsp[(1) - (1)].type_qualifier));
4343 }
4344 }
4345 break;
4346
4347 case 154:
4348
4349 /* Line 1806 of yacc.c */
4350 #line 1261 "src/src/glsl/glsl_parser.yy"
4351 {
4352 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4353 (yyval.type_qualifier).flags.q.row_major = 1;
4354 }
4355 break;
4356
4357 case 155:
4358
4359 /* Line 1806 of yacc.c */
4360 #line 1266 "src/src/glsl/glsl_parser.yy"
4361 {
4362 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4363 (yyval.type_qualifier).flags.q.packed = 1;
4364 }
4365 break;
4366
4367 case 156:
4368
4369 /* Line 1806 of yacc.c */
4370 #line 1274 "src/src/glsl/glsl_parser.yy"
4371 {
4372 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4373 (yyval.type_qualifier).flags.q.smooth = 1;
4374 }
4375 break;
4376
4377 case 157:
4378
4379 /* Line 1806 of yacc.c */
4380 #line 1279 "src/src/glsl/glsl_parser.yy"
4381 {
4382 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4383 (yyval.type_qualifier).flags.q.flat = 1;
4384 }
4385 break;
4386
4387 case 158:
4388
4389 /* Line 1806 of yacc.c */
4390 #line 1284 "src/src/glsl/glsl_parser.yy"
4391 {
4392 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4393 (yyval.type_qualifier).flags.q.noperspective = 1;
4394 }
4395 break;
4396
4397 case 159:
4398
4399 /* Line 1806 of yacc.c */
4400 #line 1292 "src/src/glsl/glsl_parser.yy"
4401 {
4402 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4403 (yyval.type_qualifier).flags.q.constant = 1;
4404 }
4405 break;
4406
4407 case 162:
4408
4409 /* Line 1806 of yacc.c */
4410 #line 1302 "src/src/glsl/glsl_parser.yy"
4411 {
4412 (yyval.type_qualifier) = (yyvsp[(1) - (2)].type_qualifier);
4413 (yyval.type_qualifier).flags.i |= (yyvsp[(2) - (2)].type_qualifier).f lags.i;
4414 }
4415 break;
4416
4417 case 164:
4418
4419 /* Line 1806 of yacc.c */
4420 #line 1308 "src/src/glsl/glsl_parser.yy"
4421 {
4422 (yyval.type_qualifier) = (yyvsp[(1) - (2)].type_qualifier);
4423 (yyval.type_qualifier).flags.i |= (yyvsp[(2) - (2)].type_qualifier).f lags.i;
4424 }
4425 break;
4426
4427 case 165:
4428
4429 /* Line 1806 of yacc.c */
4430 #line 1313 "src/src/glsl/glsl_parser.yy"
4431 {
4432 (yyval.type_qualifier) = (yyvsp[(2) - (2)].type_qualifier);
4433 (yyval.type_qualifier).flags.q.invariant = 1;
4434 }
4435 break;
4436
4437 case 166:
4438
4439 /* Line 1806 of yacc.c */
4440 #line 1318 "src/src/glsl/glsl_parser.yy"
4441 {
4442 (yyval.type_qualifier) = (yyvsp[(2) - (3)].type_qualifier);
4443 (yyval.type_qualifier).flags.i |= (yyvsp[(3) - (3)].type_qualifier).f lags.i;
4444 (yyval.type_qualifier).flags.q.invariant = 1;
4445 }
4446 break;
4447
4448 case 167:
4449
4450 /* Line 1806 of yacc.c */
4451 #line 1324 "src/src/glsl/glsl_parser.yy"
4452 {
4453 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4454 (yyval.type_qualifier).flags.q.invariant = 1;
4455 }
4456 break;
4457
4458 case 168:
4459
4460 /* Line 1806 of yacc.c */
4461 #line 1332 "src/src/glsl/glsl_parser.yy"
4462 {
4463 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4464 (yyval.type_qualifier).flags.q.constant = 1;
4465 }
4466 break;
4467
4468 case 169:
4469
4470 /* Line 1806 of yacc.c */
4471 #line 1337 "src/src/glsl/glsl_parser.yy"
4472 {
4473 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4474 (yyval.type_qualifier).flags.q.attribute = 1;
4475 }
4476 break;
4477
4478 case 170:
4479
4480 /* Line 1806 of yacc.c */
4481 #line 1342 "src/src/glsl/glsl_parser.yy"
4482 {
4483 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4484 (yyval.type_qualifier).flags.q.varying = 1;
4485 }
4486 break;
4487
4488 case 171:
4489
4490 /* Line 1806 of yacc.c */
4491 #line 1347 "src/src/glsl/glsl_parser.yy"
4492 {
4493 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4494 (yyval.type_qualifier).flags.q.centroid = 1;
4495 (yyval.type_qualifier).flags.q.varying = 1;
4496 }
4497 break;
4498
4499 case 172:
4500
4501 /* Line 1806 of yacc.c */
4502 #line 1353 "src/src/glsl/glsl_parser.yy"
4503 {
4504 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4505 (yyval.type_qualifier).flags.q.in = 1;
4506 }
4507 break;
4508
4509 case 173:
4510
4511 /* Line 1806 of yacc.c */
4512 #line 1358 "src/src/glsl/glsl_parser.yy"
4513 {
4514 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4515 (yyval.type_qualifier).flags.q.out = 1;
4516 }
4517 break;
4518
4519 case 174:
4520
4521 /* Line 1806 of yacc.c */
4522 #line 1363 "src/src/glsl/glsl_parser.yy"
4523 {
4524 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4525 (yyval.type_qualifier).flags.q.centroid = 1; (yyval.type_qualifier).f lags.q.in = 1;
4526 }
4527 break;
4528
4529 case 175:
4530
4531 /* Line 1806 of yacc.c */
4532 #line 1368 "src/src/glsl/glsl_parser.yy"
4533 {
4534 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4535 (yyval.type_qualifier).flags.q.centroid = 1; (yyval.type_qualifier).f lags.q.out = 1;
4536 }
4537 break;
4538
4539 case 176:
4540
4541 /* Line 1806 of yacc.c */
4542 #line 1373 "src/src/glsl/glsl_parser.yy"
4543 {
4544 memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
4545 (yyval.type_qualifier).flags.q.uniform = 1;
4546 }
4547 break;
4548
4549 case 177:
4550
4551 /* Line 1806 of yacc.c */
4552 #line 1381 "src/src/glsl/glsl_parser.yy"
4553 {
4554 (yyval.type_specifier) = (yyvsp[(1) - (1)].type_specifier);
4555 }
4556 break;
4557
4558 case 178:
4559
4560 /* Line 1806 of yacc.c */
4561 #line 1385 "src/src/glsl/glsl_parser.yy"
4562 {
4563 (yyval.type_specifier) = (yyvsp[(2) - (2)].type_specifier);
4564 (yyval.type_specifier)->precision = (yyvsp[(1) - (2)].n);
4565 }
4566 break;
4567
4568 case 180:
4569
4570 /* Line 1806 of yacc.c */
4571 #line 1394 "src/src/glsl/glsl_parser.yy"
4572 {
4573 (yyval.type_specifier) = (yyvsp[(1) - (3)].type_specifier);
4574 (yyval.type_specifier)->is_array = true;
4575 (yyval.type_specifier)->array_size = NULL;
4576 }
4577 break;
4578
4579 case 181:
4580
4581 /* Line 1806 of yacc.c */
4582 #line 1400 "src/src/glsl/glsl_parser.yy"
4583 {
4584 (yyval.type_specifier) = (yyvsp[(1) - (4)].type_specifier);
4585 (yyval.type_specifier)->is_array = true;
4586 (yyval.type_specifier)->array_size = (yyvsp[(3) - (4)].expression);
4587 }
4588 break;
4589
4590 case 182:
4591
4592 /* Line 1806 of yacc.c */
4593 #line 1409 "src/src/glsl/glsl_parser.yy"
4594 {
4595 void *ctx = state;
4596 (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1) ].identifier));
4597 (yyval.type_specifier)->set_location(yylloc);
4598 }
4599 break;
4600
4601 case 183:
4602
4603 /* Line 1806 of yacc.c */
4604 #line 1415 "src/src/glsl/glsl_parser.yy"
4605 {
4606 void *ctx = state;
4607 (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1) ].struct_specifier));
4608 (yyval.type_specifier)->set_location(yylloc);
4609 }
4610 break;
4611
4612 case 184:
4613
4614 /* Line 1806 of yacc.c */
4615 #line 1421 "src/src/glsl/glsl_parser.yy"
4616 {
4617 void *ctx = state;
4618 (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1) ].identifier));
4619 (yyval.type_specifier)->set_location(yylloc);
4620 }
4621 break;
4622
4623 case 185:
4624
4625 /* Line 1806 of yacc.c */
4626 #line 1429 "src/src/glsl/glsl_parser.yy"
4627 { (yyval.identifier) = "void"; }
4628 break;
4629
4630 case 186:
4631
4632 /* Line 1806 of yacc.c */
4633 #line 1430 "src/src/glsl/glsl_parser.yy"
4634 { (yyval.identifier) = "float"; }
4635 break;
4636
4637 case 187:
4638
4639 /* Line 1806 of yacc.c */
4640 #line 1431 "src/src/glsl/glsl_parser.yy"
4641 { (yyval.identifier) = "int"; }
4642 break;
4643
4644 case 188:
4645
4646 /* Line 1806 of yacc.c */
4647 #line 1432 "src/src/glsl/glsl_parser.yy"
4648 { (yyval.identifier) = "uint"; }
4649 break;
4650
4651 case 189:
4652
4653 /* Line 1806 of yacc.c */
4654 #line 1433 "src/src/glsl/glsl_parser.yy"
4655 { (yyval.identifier) = "bool"; }
4656 break;
4657
4658 case 190:
4659
4660 /* Line 1806 of yacc.c */
4661 #line 1434 "src/src/glsl/glsl_parser.yy"
4662 { (yyval.identifier) = "vec2"; }
4663 break;
4664
4665 case 191:
4666
4667 /* Line 1806 of yacc.c */
4668 #line 1435 "src/src/glsl/glsl_parser.yy"
4669 { (yyval.identifier) = "vec3"; }
4670 break;
4671
4672 case 192:
4673
4674 /* Line 1806 of yacc.c */
4675 #line 1436 "src/src/glsl/glsl_parser.yy"
4676 { (yyval.identifier) = "vec4"; }
4677 break;
4678
4679 case 193:
4680
4681 /* Line 1806 of yacc.c */
4682 #line 1437 "src/src/glsl/glsl_parser.yy"
4683 { (yyval.identifier) = "bvec2"; }
4684 break;
4685
4686 case 194:
4687
4688 /* Line 1806 of yacc.c */
4689 #line 1438 "src/src/glsl/glsl_parser.yy"
4690 { (yyval.identifier) = "bvec3"; }
4691 break;
4692
4693 case 195:
4694
4695 /* Line 1806 of yacc.c */
4696 #line 1439 "src/src/glsl/glsl_parser.yy"
4697 { (yyval.identifier) = "bvec4"; }
4698 break;
4699
4700 case 196:
4701
4702 /* Line 1806 of yacc.c */
4703 #line 1440 "src/src/glsl/glsl_parser.yy"
4704 { (yyval.identifier) = "ivec2"; }
4705 break;
4706
4707 case 197:
4708
4709 /* Line 1806 of yacc.c */
4710 #line 1441 "src/src/glsl/glsl_parser.yy"
4711 { (yyval.identifier) = "ivec3"; }
4712 break;
4713
4714 case 198:
4715
4716 /* Line 1806 of yacc.c */
4717 #line 1442 "src/src/glsl/glsl_parser.yy"
4718 { (yyval.identifier) = "ivec4"; }
4719 break;
4720
4721 case 199:
4722
4723 /* Line 1806 of yacc.c */
4724 #line 1443 "src/src/glsl/glsl_parser.yy"
4725 { (yyval.identifier) = "uvec2"; }
4726 break;
4727
4728 case 200:
4729
4730 /* Line 1806 of yacc.c */
4731 #line 1444 "src/src/glsl/glsl_parser.yy"
4732 { (yyval.identifier) = "uvec3"; }
4733 break;
4734
4735 case 201:
4736
4737 /* Line 1806 of yacc.c */
4738 #line 1445 "src/src/glsl/glsl_parser.yy"
4739 { (yyval.identifier) = "uvec4"; }
4740 break;
4741
4742 case 202:
4743
4744 /* Line 1806 of yacc.c */
4745 #line 1446 "src/src/glsl/glsl_parser.yy"
4746 { (yyval.identifier) = "mat2"; }
4747 break;
4748
4749 case 203:
4750
4751 /* Line 1806 of yacc.c */
4752 #line 1447 "src/src/glsl/glsl_parser.yy"
4753 { (yyval.identifier) = "mat2x3"; }
4754 break;
4755
4756 case 204:
4757
4758 /* Line 1806 of yacc.c */
4759 #line 1448 "src/src/glsl/glsl_parser.yy"
4760 { (yyval.identifier) = "mat2x4"; }
4761 break;
4762
4763 case 205:
4764
4765 /* Line 1806 of yacc.c */
4766 #line 1449 "src/src/glsl/glsl_parser.yy"
4767 { (yyval.identifier) = "mat3x2"; }
4768 break;
4769
4770 case 206:
4771
4772 /* Line 1806 of yacc.c */
4773 #line 1450 "src/src/glsl/glsl_parser.yy"
4774 { (yyval.identifier) = "mat3"; }
4775 break;
4776
4777 case 207:
4778
4779 /* Line 1806 of yacc.c */
4780 #line 1451 "src/src/glsl/glsl_parser.yy"
4781 { (yyval.identifier) = "mat3x4"; }
4782 break;
4783
4784 case 208:
4785
4786 /* Line 1806 of yacc.c */
4787 #line 1452 "src/src/glsl/glsl_parser.yy"
4788 { (yyval.identifier) = "mat4x2"; }
4789 break;
4790
4791 case 209:
4792
4793 /* Line 1806 of yacc.c */
4794 #line 1453 "src/src/glsl/glsl_parser.yy"
4795 { (yyval.identifier) = "mat4x3"; }
4796 break;
4797
4798 case 210:
4799
4800 /* Line 1806 of yacc.c */
4801 #line 1454 "src/src/glsl/glsl_parser.yy"
4802 { (yyval.identifier) = "mat4"; }
4803 break;
4804
4805 case 211:
4806
4807 /* Line 1806 of yacc.c */
4808 #line 1455 "src/src/glsl/glsl_parser.yy"
4809 { (yyval.identifier) = "sampler1D"; }
4810 break;
4811
4812 case 212:
4813
4814 /* Line 1806 of yacc.c */
4815 #line 1456 "src/src/glsl/glsl_parser.yy"
4816 { (yyval.identifier) = "sampler2D"; }
4817 break;
4818
4819 case 213:
4820
4821 /* Line 1806 of yacc.c */
4822 #line 1457 "src/src/glsl/glsl_parser.yy"
4823 { (yyval.identifier) = "sampler2DRect"; }
4824 break;
4825
4826 case 214:
4827
4828 /* Line 1806 of yacc.c */
4829 #line 1458 "src/src/glsl/glsl_parser.yy"
4830 { (yyval.identifier) = "sampler3D"; }
4831 break;
4832
4833 case 215:
4834
4835 /* Line 1806 of yacc.c */
4836 #line 1459 "src/src/glsl/glsl_parser.yy"
4837 { (yyval.identifier) = "samplerCube"; }
4838 break;
4839
4840 case 216:
4841
4842 /* Line 1806 of yacc.c */
4843 #line 1460 "src/src/glsl/glsl_parser.yy"
4844 { (yyval.identifier) = "samplerExternalOES"; }
4845 break;
4846
4847 case 217:
4848
4849 /* Line 1806 of yacc.c */
4850 #line 1461 "src/src/glsl/glsl_parser.yy"
4851 { (yyval.identifier) = "sampler1DShadow"; }
4852 break;
4853
4854 case 218:
4855
4856 /* Line 1806 of yacc.c */
4857 #line 1462 "src/src/glsl/glsl_parser.yy"
4858 { (yyval.identifier) = "sampler2DShadow"; }
4859 break;
4860
4861 case 219:
4862
4863 /* Line 1806 of yacc.c */
4864 #line 1463 "src/src/glsl/glsl_parser.yy"
4865 { (yyval.identifier) = "sampler2DRectShadow"; }
4866 break;
4867
4868 case 220:
4869
4870 /* Line 1806 of yacc.c */
4871 #line 1464 "src/src/glsl/glsl_parser.yy"
4872 { (yyval.identifier) = "samplerCubeShadow"; }
4873 break;
4874
4875 case 221:
4876
4877 /* Line 1806 of yacc.c */
4878 #line 1465 "src/src/glsl/glsl_parser.yy"
4879 { (yyval.identifier) = "sampler1DArray"; }
4880 break;
4881
4882 case 222:
4883
4884 /* Line 1806 of yacc.c */
4885 #line 1466 "src/src/glsl/glsl_parser.yy"
4886 { (yyval.identifier) = "sampler2DArray"; }
4887 break;
4888
4889 case 223:
4890
4891 /* Line 1806 of yacc.c */
4892 #line 1467 "src/src/glsl/glsl_parser.yy"
4893 { (yyval.identifier) = "sampler1DArrayShadow"; }
4894 break;
4895
4896 case 224:
4897
4898 /* Line 1806 of yacc.c */
4899 #line 1468 "src/src/glsl/glsl_parser.yy"
4900 { (yyval.identifier) = "sampler2DArrayShadow"; }
4901 break;
4902
4903 case 225:
4904
4905 /* Line 1806 of yacc.c */
4906 #line 1469 "src/src/glsl/glsl_parser.yy"
4907 { (yyval.identifier) = "samplerBuffer"; }
4908 break;
4909
4910 case 226:
4911
4912 /* Line 1806 of yacc.c */
4913 #line 1470 "src/src/glsl/glsl_parser.yy"
4914 { (yyval.identifier) = "isampler1D"; }
4915 break;
4916
4917 case 227:
4918
4919 /* Line 1806 of yacc.c */
4920 #line 1471 "src/src/glsl/glsl_parser.yy"
4921 { (yyval.identifier) = "isampler2D"; }
4922 break;
4923
4924 case 228:
4925
4926 /* Line 1806 of yacc.c */
4927 #line 1472 "src/src/glsl/glsl_parser.yy"
4928 { (yyval.identifier) = "isampler2DRect"; }
4929 break;
4930
4931 case 229:
4932
4933 /* Line 1806 of yacc.c */
4934 #line 1473 "src/src/glsl/glsl_parser.yy"
4935 { (yyval.identifier) = "isampler3D"; }
4936 break;
4937
4938 case 230:
4939
4940 /* Line 1806 of yacc.c */
4941 #line 1474 "src/src/glsl/glsl_parser.yy"
4942 { (yyval.identifier) = "isamplerCube"; }
4943 break;
4944
4945 case 231:
4946
4947 /* Line 1806 of yacc.c */
4948 #line 1475 "src/src/glsl/glsl_parser.yy"
4949 { (yyval.identifier) = "isampler1DArray"; }
4950 break;
4951
4952 case 232:
4953
4954 /* Line 1806 of yacc.c */
4955 #line 1476 "src/src/glsl/glsl_parser.yy"
4956 { (yyval.identifier) = "isampler2DArray"; }
4957 break;
4958
4959 case 233:
4960
4961 /* Line 1806 of yacc.c */
4962 #line 1477 "src/src/glsl/glsl_parser.yy"
4963 { (yyval.identifier) = "isamplerBuffer"; }
4964 break;
4965
4966 case 234:
4967
4968 /* Line 1806 of yacc.c */
4969 #line 1478 "src/src/glsl/glsl_parser.yy"
4970 { (yyval.identifier) = "usampler1D"; }
4971 break;
4972
4973 case 235:
4974
4975 /* Line 1806 of yacc.c */
4976 #line 1479 "src/src/glsl/glsl_parser.yy"
4977 { (yyval.identifier) = "usampler2D"; }
4978 break;
4979
4980 case 236:
4981
4982 /* Line 1806 of yacc.c */
4983 #line 1480 "src/src/glsl/glsl_parser.yy"
4984 { (yyval.identifier) = "usampler2DRect"; }
4985 break;
4986
4987 case 237:
4988
4989 /* Line 1806 of yacc.c */
4990 #line 1481 "src/src/glsl/glsl_parser.yy"
4991 { (yyval.identifier) = "usampler3D"; }
4992 break;
4993
4994 case 238:
4995
4996 /* Line 1806 of yacc.c */
4997 #line 1482 "src/src/glsl/glsl_parser.yy"
4998 { (yyval.identifier) = "usamplerCube"; }
4999 break;
5000
5001 case 239:
5002
5003 /* Line 1806 of yacc.c */
5004 #line 1483 "src/src/glsl/glsl_parser.yy"
5005 { (yyval.identifier) = "usampler1DArray"; }
5006 break;
5007
5008 case 240:
5009
5010 /* Line 1806 of yacc.c */
5011 #line 1484 "src/src/glsl/glsl_parser.yy"
5012 { (yyval.identifier) = "usampler2DArray"; }
5013 break;
5014
5015 case 241:
5016
5017 /* Line 1806 of yacc.c */
5018 #line 1485 "src/src/glsl/glsl_parser.yy"
5019 { (yyval.identifier) = "usamplerBuffer"; }
5020 break;
5021
5022 case 242:
5023
5024 /* Line 1806 of yacc.c */
5025 #line 1489 "src/src/glsl/glsl_parser.yy"
5026 {
5027 if (!state->es_shader && state->language_version < 130)
5028 _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
5029 "precision qualifier forbidden "
5030 "in %s (1.30 or later "
5031 "required)\n",
5032 state->version_string);
5033
5034 (yyval.n) = ast_precision_high;
5035 }
5036 break;
5037
5038 case 243:
5039
5040 /* Line 1806 of yacc.c */
5041 #line 1499 "src/src/glsl/glsl_parser.yy"
5042 {
5043 if (!state->es_shader && state->language_version < 130)
5044 _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
5045 "precision qualifier forbidden "
5046 "in %s (1.30 or later "
5047 "required)\n",
5048 state->version_string);
5049
5050 (yyval.n) = ast_precision_medium;
5051 }
5052 break;
5053
5054 case 244:
5055
5056 /* Line 1806 of yacc.c */
5057 #line 1509 "src/src/glsl/glsl_parser.yy"
5058 {
5059 if (!state->es_shader && state->language_version < 130)
5060 _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
5061 "precision qualifier forbidden "
5062 "in %s (1.30 or later "
5063 "required)\n",
5064 state->version_string);
5065
5066 (yyval.n) = ast_precision_low;
5067 }
5068 break;
5069
5070 case 245:
5071
5072 /* Line 1806 of yacc.c */
5073 #line 1523 "src/src/glsl/glsl_parser.yy"
5074 {
5075 void *ctx = state;
5076 (yyval.struct_specifier) = new(ctx) ast_struct_specifier((yyvsp[(2) - (5)].identifier), (yyvsp[(4) - (5)].declarator_list));
5077 (yyval.struct_specifier)->set_location(yylloc);
5078 state->symbols->add_type((yyvsp[(2) - (5)].identifier), glsl_type::vo id_type);
5079 }
5080 break;
5081
5082 case 246:
5083
5084 /* Line 1806 of yacc.c */
5085 #line 1530 "src/src/glsl/glsl_parser.yy"
5086 {
5087 void *ctx = state;
5088 (yyval.struct_specifier) = new(ctx) ast_struct_specifier(NULL, (yyvsp [(3) - (4)].declarator_list));
5089 (yyval.struct_specifier)->set_location(yylloc);
5090 }
5091 break;
5092
5093 case 247:
5094
5095 /* Line 1806 of yacc.c */
5096 #line 1539 "src/src/glsl/glsl_parser.yy"
5097 {
5098 (yyval.declarator_list) = (yyvsp[(1) - (1)].declarator_list);
5099 (yyvsp[(1) - (1)].declarator_list)->link.self_link();
5100 }
5101 break;
5102
5103 case 248:
5104
5105 /* Line 1806 of yacc.c */
5106 #line 1544 "src/src/glsl/glsl_parser.yy"
5107 {
5108 (yyval.declarator_list) = (yyvsp[(1) - (2)].declarator_list);
5109 (yyval.declarator_list)->link.insert_before(& (yyvsp[(2) - (2)].decla rator_list)->link);
5110 }
5111 break;
5112
5113 case 249:
5114
5115 /* Line 1806 of yacc.c */
5116 #line 1552 "src/src/glsl/glsl_parser.yy"
5117 {
5118 void *ctx = state;
5119 ast_fully_specified_type *type = new(ctx) ast_fully_specified_type();
5120 type->set_location(yylloc);
5121
5122 type->specifier = (yyvsp[(1) - (3)].type_specifier);
5123 (yyval.declarator_list) = new(ctx) ast_declarator_list(type);
5124 (yyval.declarator_list)->set_location(yylloc);
5125
5126 (yyval.declarator_list)->declarations.push_degenerate_list_at_head(& (yyvsp[(2) - (3)].declaration)->link);
5127 }
5128 break;
5129
5130 case 250:
5131
5132 /* Line 1806 of yacc.c */
5133 #line 1567 "src/src/glsl/glsl_parser.yy"
5134 {
5135 (yyval.declaration) = (yyvsp[(1) - (1)].declaration);
5136 (yyvsp[(1) - (1)].declaration)->link.self_link();
5137 }
5138 break;
5139
5140 case 251:
5141
5142 /* Line 1806 of yacc.c */
5143 #line 1572 "src/src/glsl/glsl_parser.yy"
5144 {
5145 (yyval.declaration) = (yyvsp[(1) - (3)].declaration);
5146 (yyval.declaration)->link.insert_before(& (yyvsp[(3) - (3)].declarati on)->link);
5147 }
5148 break;
5149
5150 case 252:
5151
5152 /* Line 1806 of yacc.c */
5153 #line 1580 "src/src/glsl/glsl_parser.yy"
5154 {
5155 void *ctx = state;
5156 (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (1)].iden tifier), false, NULL, NULL);
5157 (yyval.declaration)->set_location(yylloc);
5158 }
5159 break;
5160
5161 case 253:
5162
5163 /* Line 1806 of yacc.c */
5164 #line 1586 "src/src/glsl/glsl_parser.yy"
5165 {
5166 void *ctx = state;
5167 (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (4)].iden tifier), true, (yyvsp[(3) - (4)].expression), NULL);
5168 (yyval.declaration)->set_location(yylloc);
5169 }
5170 break;
5171
5172 case 256:
5173
5174 /* Line 1806 of yacc.c */
5175 #line 1604 "src/src/glsl/glsl_parser.yy"
5176 { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); }
5177 break;
5178
5179 case 264:
5180
5181 /* Line 1806 of yacc.c */
5182 #line 1619 "src/src/glsl/glsl_parser.yy"
5183 {
5184 void *ctx = state;
5185 (yyval.compound_statement) = new(ctx) ast_compound_statement(true, NU LL);
5186 (yyval.compound_statement)->set_location(yylloc);
5187 }
5188 break;
5189
5190 case 265:
5191
5192 /* Line 1806 of yacc.c */
5193 #line 1625 "src/src/glsl/glsl_parser.yy"
5194 {
5195 state->symbols->push_scope();
5196 }
5197 break;
5198
5199 case 266:
5200
5201 /* Line 1806 of yacc.c */
5202 #line 1629 "src/src/glsl/glsl_parser.yy"
5203 {
5204 void *ctx = state;
5205 (yyval.compound_statement) = new(ctx) ast_compound_statement(true, (y yvsp[(3) - (4)].node));
5206 (yyval.compound_statement)->set_location(yylloc);
5207 state->symbols->pop_scope();
5208 }
5209 break;
5210
5211 case 267:
5212
5213 /* Line 1806 of yacc.c */
5214 #line 1638 "src/src/glsl/glsl_parser.yy"
5215 { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); }
5216 break;
5217
5218 case 269:
5219
5220 /* Line 1806 of yacc.c */
5221 #line 1644 "src/src/glsl/glsl_parser.yy"
5222 {
5223 void *ctx = state;
5224 (yyval.compound_statement) = new(ctx) ast_compound_statement(false, N ULL);
5225 (yyval.compound_statement)->set_location(yylloc);
5226 }
5227 break;
5228
5229 case 270:
5230
5231 /* Line 1806 of yacc.c */
5232 #line 1650 "src/src/glsl/glsl_parser.yy"
5233 {
5234 void *ctx = state;
5235 (yyval.compound_statement) = new(ctx) ast_compound_statement(false, ( yyvsp[(2) - (3)].node));
5236 (yyval.compound_statement)->set_location(yylloc);
5237 }
5238 break;
5239
5240 case 271:
5241
5242 /* Line 1806 of yacc.c */
5243 #line 1659 "src/src/glsl/glsl_parser.yy"
5244 {
5245 if ((yyvsp[(1) - (1)].node) == NULL) {
5246 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "<nil> statement\n") ;
5247 assert((yyvsp[(1) - (1)].node) != NULL);
5248 }
5249
5250 (yyval.node) = (yyvsp[(1) - (1)].node);
5251 (yyval.node)->link.self_link();
5252 }
5253 break;
5254
5255 case 272:
5256
5257 /* Line 1806 of yacc.c */
5258 #line 1669 "src/src/glsl/glsl_parser.yy"
5259 {
5260 if ((yyvsp[(2) - (2)].node) == NULL) {
5261 _mesa_glsl_error(& (yylsp[(2) - (2)]), state, "<nil> statement\n") ;
5262 assert((yyvsp[(2) - (2)].node) != NULL);
5263 }
5264 (yyval.node) = (yyvsp[(1) - (2)].node);
5265 (yyval.node)->link.insert_before(& (yyvsp[(2) - (2)].node)->link);
5266 }
5267 break;
5268
5269 case 273:
5270
5271 /* Line 1806 of yacc.c */
5272 #line 1681 "src/src/glsl/glsl_parser.yy"
5273 {
5274 void *ctx = state;
5275 (yyval.node) = new(ctx) ast_expression_statement(NULL);
5276 (yyval.node)->set_location(yylloc);
5277 }
5278 break;
5279
5280 case 274:
5281
5282 /* Line 1806 of yacc.c */
5283 #line 1687 "src/src/glsl/glsl_parser.yy"
5284 {
5285 void *ctx = state;
5286 (yyval.node) = new(ctx) ast_expression_statement((yyvsp[(1) - (2)].ex pression));
5287 (yyval.node)->set_location(yylloc);
5288 }
5289 break;
5290
5291 case 275:
5292
5293 /* Line 1806 of yacc.c */
5294 #line 1696 "src/src/glsl/glsl_parser.yy"
5295 {
5296 (yyval.node) = new(state) ast_selection_statement((yyvsp[(3) - (5)].e xpression), (yyvsp[(5) - (5)].selection_rest_statement).then_statement,
5297 (yyvsp[(5) - (5)].selection_r est_statement).else_statement);
5298 (yyval.node)->set_location(yylloc);
5299 }
5300 break;
5301
5302 case 276:
5303
5304 /* Line 1806 of yacc.c */
5305 #line 1705 "src/src/glsl/glsl_parser.yy"
5306 {
5307 (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (3)].n ode);
5308 (yyval.selection_rest_statement).else_statement = (yyvsp[(3) - (3)].n ode);
5309 }
5310 break;
5311
5312 case 277:
5313
5314 /* Line 1806 of yacc.c */
5315 #line 1710 "src/src/glsl/glsl_parser.yy"
5316 {
5317 (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (1)].n ode);
5318 (yyval.selection_rest_statement).else_statement = NULL;
5319 }
5320 break;
5321
5322 case 278:
5323
5324 /* Line 1806 of yacc.c */
5325 #line 1718 "src/src/glsl/glsl_parser.yy"
5326 {
5327 (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].expression);
5328 }
5329 break;
5330
5331 case 279:
5332
5333 /* Line 1806 of yacc.c */
5334 #line 1722 "src/src/glsl/glsl_parser.yy"
5335 {
5336 void *ctx = state;
5337 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].id entifier), false, NULL, (yyvsp[(4) - (4)].expression));
5338 ast_declarator_list *declarator = new(ctx) ast_declarator_list((yyvsp [(1) - (4)].fully_specified_type));
5339 decl->set_location(yylloc);
5340 declarator->set_location(yylloc);
5341
5342 declarator->declarations.push_tail(&decl->link);
5343 (yyval.node) = declarator;
5344 }
5345 break;
5346
5347 case 280:
5348
5349 /* Line 1806 of yacc.c */
5350 #line 1740 "src/src/glsl/glsl_parser.yy"
5351 {
5352 (yyval.node) = new(state) ast_switch_statement((yyvsp[(3) - (5)].expr ession), (yyvsp[(5) - (5)].switch_body));
5353 (yyval.node)->set_location(yylloc);
5354 }
5355 break;
5356
5357 case 281:
5358
5359 /* Line 1806 of yacc.c */
5360 #line 1748 "src/src/glsl/glsl_parser.yy"
5361 {
5362 (yyval.switch_body) = new(state) ast_switch_body(NULL);
5363 (yyval.switch_body)->set_location(yylloc);
5364 }
5365 break;
5366
5367 case 282:
5368
5369 /* Line 1806 of yacc.c */
5370 #line 1753 "src/src/glsl/glsl_parser.yy"
5371 {
5372 (yyval.switch_body) = new(state) ast_switch_body((yyvsp[(2) - (3)].ca se_statement_list));
5373 (yyval.switch_body)->set_location(yylloc);
5374 }
5375 break;
5376
5377 case 283:
5378
5379 /* Line 1806 of yacc.c */
5380 #line 1761 "src/src/glsl/glsl_parser.yy"
5381 {
5382 (yyval.case_label) = new(state) ast_case_label((yyvsp[(2) - (3)].expr ession));
5383 (yyval.case_label)->set_location(yylloc);
5384 }
5385 break;
5386
5387 case 284:
5388
5389 /* Line 1806 of yacc.c */
5390 #line 1766 "src/src/glsl/glsl_parser.yy"
5391 {
5392 (yyval.case_label) = new(state) ast_case_label(NULL);
5393 (yyval.case_label)->set_location(yylloc);
5394 }
5395 break;
5396
5397 case 285:
5398
5399 /* Line 1806 of yacc.c */
5400 #line 1774 "src/src/glsl/glsl_parser.yy"
5401 {
5402 ast_case_label_list *labels = new(state) ast_case_label_list();
5403
5404 labels->labels.push_tail(& (yyvsp[(1) - (1)].case_label)->link);
5405 (yyval.case_label_list) = labels;
5406 (yyval.case_label_list)->set_location(yylloc);
5407 }
5408 break;
5409
5410 case 286:
5411
5412 /* Line 1806 of yacc.c */
5413 #line 1782 "src/src/glsl/glsl_parser.yy"
5414 {
5415 (yyval.case_label_list) = (yyvsp[(1) - (2)].case_label_list);
5416 (yyval.case_label_list)->labels.push_tail(& (yyvsp[(2) - (2)].case_la bel)->link);
5417 }
5418 break;
5419
5420 case 287:
5421
5422 /* Line 1806 of yacc.c */
5423 #line 1790 "src/src/glsl/glsl_parser.yy"
5424 {
5425 ast_case_statement *stmts = new(state) ast_case_statement((yyvsp[(1) - (2)].case_label_list));
5426 stmts->set_location(yylloc);
5427
5428 stmts->stmts.push_tail(& (yyvsp[(2) - (2)].node)->link);
5429 (yyval.case_statement) = stmts;
5430 }
5431 break;
5432
5433 case 288:
5434
5435 /* Line 1806 of yacc.c */
5436 #line 1798 "src/src/glsl/glsl_parser.yy"
5437 {
5438 (yyval.case_statement) = (yyvsp[(1) - (2)].case_statement);
5439 (yyval.case_statement)->stmts.push_tail(& (yyvsp[(2) - (2)].node)->li nk);
5440 }
5441 break;
5442
5443 case 289:
5444
5445 /* Line 1806 of yacc.c */
5446 #line 1806 "src/src/glsl/glsl_parser.yy"
5447 {
5448 ast_case_statement_list *cases= new(state) ast_case_statement_list();
5449 cases->set_location(yylloc);
5450
5451 cases->cases.push_tail(& (yyvsp[(1) - (1)].case_statement)->link);
5452 (yyval.case_statement_list) = cases;
5453 }
5454 break;
5455
5456 case 290:
5457
5458 /* Line 1806 of yacc.c */
5459 #line 1814 "src/src/glsl/glsl_parser.yy"
5460 {
5461 (yyval.case_statement_list) = (yyvsp[(1) - (2)].case_statement_list);
5462 (yyval.case_statement_list)->cases.push_tail(& (yyvsp[(2) - (2)].case _statement)->link);
5463 }
5464 break;
5465
5466 case 291:
5467
5468 /* Line 1806 of yacc.c */
5469 #line 1822 "src/src/glsl/glsl_parser.yy"
5470 {
5471 void *ctx = state;
5472 (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_stateme nt::ast_while,
5473 NULL, (yyvsp[(3) - (5)].node ), NULL, (yyvsp[(5) - (5)].node));
5474 (yyval.node)->set_location(yylloc);
5475 }
5476 break;
5477
5478 case 292:
5479
5480 /* Line 1806 of yacc.c */
5481 #line 1829 "src/src/glsl/glsl_parser.yy"
5482 {
5483 void *ctx = state;
5484 (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_stateme nt::ast_do_while,
5485 NULL, (yyvsp[(5) - (7)].expr ession), NULL, (yyvsp[(2) - (7)].node));
5486 (yyval.node)->set_location(yylloc);
5487 }
5488 break;
5489
5490 case 293:
5491
5492 /* Line 1806 of yacc.c */
5493 #line 1836 "src/src/glsl/glsl_parser.yy"
5494 {
5495 void *ctx = state;
5496 (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_stateme nt::ast_for,
5497 (yyvsp[(3) - (6)].node), (yy vsp[(4) - (6)].for_rest_statement).cond, (yyvsp[(4) - (6)].for_rest_statement).r est, (yyvsp[(6) - (6)].node));
5498 (yyval.node)->set_location(yylloc);
5499 }
5500 break;
5501
5502 case 297:
5503
5504 /* Line 1806 of yacc.c */
5505 #line 1852 "src/src/glsl/glsl_parser.yy"
5506 {
5507 (yyval.node) = NULL;
5508 }
5509 break;
5510
5511 case 298:
5512
5513 /* Line 1806 of yacc.c */
5514 #line 1859 "src/src/glsl/glsl_parser.yy"
5515 {
5516 (yyval.for_rest_statement).cond = (yyvsp[(1) - (2)].node);
5517 (yyval.for_rest_statement).rest = NULL;
5518 }
5519 break;
5520
5521 case 299:
5522
5523 /* Line 1806 of yacc.c */
5524 #line 1864 "src/src/glsl/glsl_parser.yy"
5525 {
5526 (yyval.for_rest_statement).cond = (yyvsp[(1) - (3)].node);
5527 (yyval.for_rest_statement).rest = (yyvsp[(3) - (3)].expression);
5528 }
5529 break;
5530
5531 case 300:
5532
5533 /* Line 1806 of yacc.c */
5534 #line 1873 "src/src/glsl/glsl_parser.yy"
5535 {
5536 void *ctx = state;
5537 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_co ntinue, NULL);
5538 (yyval.node)->set_location(yylloc);
5539 }
5540 break;
5541
5542 case 301:
5543
5544 /* Line 1806 of yacc.c */
5545 #line 1879 "src/src/glsl/glsl_parser.yy"
5546 {
5547 void *ctx = state;
5548 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_br eak, NULL);
5549 (yyval.node)->set_location(yylloc);
5550 }
5551 break;
5552
5553 case 302:
5554
5555 /* Line 1806 of yacc.c */
5556 #line 1885 "src/src/glsl/glsl_parser.yy"
5557 {
5558 void *ctx = state;
5559 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_re turn, NULL);
5560 (yyval.node)->set_location(yylloc);
5561 }
5562 break;
5563
5564 case 303:
5565
5566 /* Line 1806 of yacc.c */
5567 #line 1891 "src/src/glsl/glsl_parser.yy"
5568 {
5569 void *ctx = state;
5570 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_re turn, (yyvsp[(2) - (3)].expression));
5571 (yyval.node)->set_location(yylloc);
5572 }
5573 break;
5574
5575 case 304:
5576
5577 /* Line 1806 of yacc.c */
5578 #line 1897 "src/src/glsl/glsl_parser.yy"
5579 {
5580 void *ctx = state;
5581 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_di scard, NULL);
5582 (yyval.node)->set_location(yylloc);
5583 }
5584 break;
5585
5586 case 305:
5587
5588 /* Line 1806 of yacc.c */
5589 #line 1905 "src/src/glsl/glsl_parser.yy"
5590 { (yyval.node) = (yyvsp[(1) - (1)].function_definition); }
5591 break;
5592
5593 case 306:
5594
5595 /* Line 1806 of yacc.c */
5596 #line 1906 "src/src/glsl/glsl_parser.yy"
5597 { (yyval.node) = (yyvsp[(1) - (1)].node); }
5598 break;
5599
5600 case 307:
5601
5602 /* Line 1806 of yacc.c */
5603 #line 1907 "src/src/glsl/glsl_parser.yy"
5604 { (yyval.node) = NULL; }
5605 break;
5606
5607 case 308:
5608
5609 /* Line 1806 of yacc.c */
5610 #line 1908 "src/src/glsl/glsl_parser.yy"
5611 { (yyval.node) = NULL; }
5612 break;
5613
5614 case 309:
5615
5616 /* Line 1806 of yacc.c */
5617 #line 1913 "src/src/glsl/glsl_parser.yy"
5618 {
5619 void *ctx = state;
5620 (yyval.function_definition) = new(ctx) ast_function_definition();
5621 (yyval.function_definition)->set_location(yylloc);
5622 (yyval.function_definition)->prototype = (yyvsp[(1) - (2)].function);
5623 (yyval.function_definition)->body = (yyvsp[(2) - (2)].compound_statem ent);
5624
5625 state->symbols->pop_scope();
5626 }
5627 break;
5628
5629 case 310:
5630
5631 /* Line 1806 of yacc.c */
5632 #line 1927 "src/src/glsl/glsl_parser.yy"
5633 {
5634 void *ctx = state;
5635 (yyval.node) = new(ctx) ast_uniform_block(*state->default_uniform_qua lifier,
5636 (yyvsp[(2) - (6)].identifier), (yyvsp [(4) - (6)].declarator_list));
5637
5638 if (!state->ARB_uniform_buffer_object_enable) {
5639 _mesa_glsl_error(& (yylsp[(1) - (6)]), state,
5640 "#version 140 / GL_ARB_uniform_buffer_object "
5641 "required for defining uniform blocks\n");
5642 } else if (state->ARB_uniform_buffer_object_warn) {
5643 _mesa_glsl_warning(& (yylsp[(1) - (6)]), state,
5644 "#version 140 / GL_ARB_uniform_buffer_object "
5645 "required for defining uniform blocks\n");
5646 }
5647 }
5648 break;
5649
5650 case 311:
5651
5652 /* Line 1806 of yacc.c */
5653 #line 1943 "src/src/glsl/glsl_parser.yy"
5654 {
5655 void *ctx = state;
5656
5657 ast_type_qualifier qual = *state->default_uniform_qualifier;
5658 if (!qual.merge_qualifier(& (yylsp[(1) - (7)]), state, (yyvsp[(1) - ( 7)].type_qualifier))) {
5659 YYERROR;
5660 }
5661 (yyval.node) = new(ctx) ast_uniform_block(qual, (yyvsp[(3) - (7)].ide ntifier), (yyvsp[(5) - (7)].declarator_list));
5662
5663 if (!state->ARB_uniform_buffer_object_enable) {
5664 _mesa_glsl_error(& (yylsp[(1) - (7)]), state,
5665 "#version 140 / GL_ARB_uniform_buffer_object "
5666 "required for defining uniform blocks\n");
5667 } else if (state->ARB_uniform_buffer_object_warn) {
5668 _mesa_glsl_warning(& (yylsp[(1) - (7)]), state,
5669 "#version 140 / GL_ARB_uniform_buffer_object "
5670 "required for defining uniform blocks\n");
5671 }
5672 }
5673 break;
5674
5675 case 312:
5676
5677 /* Line 1806 of yacc.c */
5678 #line 1966 "src/src/glsl/glsl_parser.yy"
5679 {
5680 (yyval.declarator_list) = (yyvsp[(1) - (1)].declarator_list);
5681 (yyvsp[(1) - (1)].declarator_list)->link.self_link();
5682 }
5683 break;
5684
5685 case 313:
5686
5687 /* Line 1806 of yacc.c */
5688 #line 1971 "src/src/glsl/glsl_parser.yy"
5689 {
5690 (yyval.declarator_list) = (yyvsp[(1) - (2)].declarator_list);
5691 (yyvsp[(2) - (2)].declarator_list)->link.insert_before(& (yyval.decla rator_list)->link);
5692 }
5693 break;
5694
5695 case 316:
5696
5697 /* Line 1806 of yacc.c */
5698 #line 1985 "src/src/glsl/glsl_parser.yy"
5699 {
5700 void *ctx = state;
5701 ast_fully_specified_type *type = new(ctx) ast_fully_specified_type();
5702 type->set_location(yylloc);
5703
5704 type->qualifier = (yyvsp[(1) - (5)].type_qualifier);
5705 type->qualifier.flags.q.uniform = true;
5706 type->specifier = (yyvsp[(3) - (5)].type_specifier);
5707 (yyval.declarator_list) = new(ctx) ast_declarator_list(type);
5708 (yyval.declarator_list)->set_location(yylloc);
5709 (yyval.declarator_list)->ubo_qualifiers_valid = true;
5710
5711 (yyval.declarator_list)->declarations.push_degenerate_list_at_head(& (yyvsp[(4) - (5)].declaration)->link);
5712 }
5713 break;
5714
5715 case 317:
5716
5717 /* Line 1806 of yacc.c */
5718 #line 2000 "src/src/glsl/glsl_parser.yy"
5719 {
5720 void *ctx = state;
5721 ast_fully_specified_type *type = new(ctx) ast_fully_specified_type();
5722 type->set_location(yylloc);
5723
5724 type->qualifier.flags.q.uniform = true;
5725 type->specifier = (yyvsp[(2) - (4)].type_specifier);
5726 (yyval.declarator_list) = new(ctx) ast_declarator_list(type);
5727 (yyval.declarator_list)->set_location(yylloc);
5728 (yyval.declarator_list)->ubo_qualifiers_valid = true;
5729
5730 (yyval.declarator_list)->declarations.push_degenerate_list_at_head(& (yyvsp[(3) - (4)].declaration)->link);
5731 }
5732 break;
5733
5734 case 318:
5735
5736 /* Line 1806 of yacc.c */
5737 #line 2017 "src/src/glsl/glsl_parser.yy"
5738 {
5739 if (!state->default_uniform_qualifier->merge_qualifier(& (yylsp[(1) - (3)]), state,
5740 (yyvsp[(1) - ( 3)].type_qualifier))) {
5741 YYERROR;
5742 }
5743 }
5744 break;
5745
5746
5747
5748 /* Line 1806 of yacc.c */
5749 #line 5750 "src/chromium_gensrc/mesa/glsl_parser.cc"
5750 default: break;
5751 }
5752 /* User semantic actions sometimes alter yychar, and that requires
5753 that yytoken be updated with the new translation. We take the
5754 approach of translating immediately before every use of yytoken.
5755 One alternative is translating here after every semantic action,
5756 but that translation would be missed if the semantic action invokes
5757 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
5758 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
5759 incorrect destructor might then be invoked immediately. In the
5760 case of YYERROR or YYBACKUP, subsequent parser actions might lead
5761 to an incorrect destructor call or verbose syntax error message
5762 before the lookahead is translated. */
5763 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
5764
5765 YYPOPSTACK (yylen);
5766 yylen = 0;
5767 YY_STACK_PRINT (yyss, yyssp);
5768
5769 *++yyvsp = yyval;
5770 *++yylsp = yyloc;
5771
5772 /* Now `shift' the result of the reduction. Determine what state
5773 that goes to, based on the state we popped back to and the rule
5774 number reduced by. */
5775
5776 yyn = yyr1[yyn];
5777
5778 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
5779 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5780 yystate = yytable[yystate];
5781 else
5782 yystate = yydefgoto[yyn - YYNTOKENS];
5783
5784 goto yynewstate;
5785
5786
5787 /*------------------------------------.
5788 | yyerrlab -- here on detecting error |
5789 `------------------------------------*/
5790 yyerrlab:
5791 /* Make sure we have latest lookahead translation. See comments at
5792 user semantic actions for why this is necessary. */
5793 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
5794
5795 /* If not already recovering from an error, report this error. */
5796 if (!yyerrstatus)
5797 {
5798 ++yynerrs;
5799 #if ! YYERROR_VERBOSE
5800 yyerror (&yylloc, state, YY_("syntax error"));
5801 #else
5802 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
5803 yyssp, yytoken)
5804 {
5805 char const *yymsgp = YY_("syntax error");
5806 int yysyntax_error_status;
5807 yysyntax_error_status = YYSYNTAX_ERROR;
5808 if (yysyntax_error_status == 0)
5809 yymsgp = yymsg;
5810 else if (yysyntax_error_status == 1)
5811 {
5812 if (yymsg != yymsgbuf)
5813 YYSTACK_FREE (yymsg);
5814 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
5815 if (!yymsg)
5816 {
5817 yymsg = yymsgbuf;
5818 yymsg_alloc = sizeof yymsgbuf;
5819 yysyntax_error_status = 2;
5820 }
5821 else
5822 {
5823 yysyntax_error_status = YYSYNTAX_ERROR;
5824 yymsgp = yymsg;
5825 }
5826 }
5827 yyerror (&yylloc, state, yymsgp);
5828 if (yysyntax_error_status == 2)
5829 goto yyexhaustedlab;
5830 }
5831 # undef YYSYNTAX_ERROR
5832 #endif
5833 }
5834
5835 yyerror_range[1] = yylloc;
5836
5837 if (yyerrstatus == 3)
5838 {
5839 /* If just tried and failed to reuse lookahead token after an
5840 error, discard it. */
5841
5842 if (yychar <= YYEOF)
5843 {
5844 /* Return failure if at end of input. */
5845 if (yychar == YYEOF)
5846 YYABORT;
5847 }
5848 else
5849 {
5850 yydestruct ("Error: discarding",
5851 yytoken, &yylval, &yylloc, state);
5852 yychar = YYEMPTY;
5853 }
5854 }
5855
5856 /* Else will try to reuse lookahead token after shifting the error
5857 token. */
5858 goto yyerrlab1;
5859
5860
5861 /*---------------------------------------------------.
5862 | yyerrorlab -- error raised explicitly by YYERROR. |
5863 `---------------------------------------------------*/
5864 yyerrorlab:
5865
5866 /* Pacify compilers like GCC when the user code never invokes
5867 YYERROR and the label yyerrorlab therefore never appears in user
5868 code. */
5869 if (/*CONSTCOND*/ 0)
5870 goto yyerrorlab;
5871
5872 yyerror_range[1] = yylsp[1-yylen];
5873 /* Do not reclaim the symbols of the rule which action triggered
5874 this YYERROR. */
5875 YYPOPSTACK (yylen);
5876 yylen = 0;
5877 YY_STACK_PRINT (yyss, yyssp);
5878 yystate = *yyssp;
5879 goto yyerrlab1;
5880
5881
5882 /*-------------------------------------------------------------.
5883 | yyerrlab1 -- common code for both syntax error and YYERROR. |
5884 `-------------------------------------------------------------*/
5885 yyerrlab1:
5886 yyerrstatus = 3; /* Each real token shifted decrements this. */
5887
5888 for (;;)
5889 {
5890 yyn = yypact[yystate];
5891 if (!yypact_value_is_default (yyn))
5892 {
5893 yyn += YYTERROR;
5894 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
5895 {
5896 yyn = yytable[yyn];
5897 if (0 < yyn)
5898 break;
5899 }
5900 }
5901
5902 /* Pop the current state because it cannot handle the error token. */
5903 if (yyssp == yyss)
5904 YYABORT;
5905
5906 yyerror_range[1] = *yylsp;
5907 yydestruct ("Error: popping",
5908 yystos[yystate], yyvsp, yylsp, state);
5909 YYPOPSTACK (1);
5910 yystate = *yyssp;
5911 YY_STACK_PRINT (yyss, yyssp);
5912 }
5913
5914 *++yyvsp = yylval;
5915
5916 yyerror_range[2] = yylloc;
5917 /* Using YYLLOC is tempting, but would change the location of
5918 the lookahead. YYLOC is available though. */
5919 YYLLOC_DEFAULT (yyloc, yyerror_range, 2);
5920 *++yylsp = yyloc;
5921
5922 /* Shift the error token. */
5923 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
5924
5925 yystate = yyn;
5926 goto yynewstate;
5927
5928
5929 /*-------------------------------------.
5930 | yyacceptlab -- YYACCEPT comes here. |
5931 `-------------------------------------*/
5932 yyacceptlab:
5933 yyresult = 0;
5934 goto yyreturn;
5935
5936 /*-----------------------------------.
5937 | yyabortlab -- YYABORT comes here. |
5938 `-----------------------------------*/
5939 yyabortlab:
5940 yyresult = 1;
5941 goto yyreturn;
5942
5943 #if !defined(yyoverflow) || YYERROR_VERBOSE
5944 /*-------------------------------------------------.
5945 | yyexhaustedlab -- memory exhaustion comes here. |
5946 `-------------------------------------------------*/
5947 yyexhaustedlab:
5948 yyerror (&yylloc, state, YY_("memory exhausted"));
5949 yyresult = 2;
5950 /* Fall through. */
5951 #endif
5952
5953 yyreturn:
5954 if (yychar != YYEMPTY)
5955 {
5956 /* Make sure we have latest lookahead translation. See comments at
5957 user semantic actions for why this is necessary. */
5958 yytoken = YYTRANSLATE (yychar);
5959 yydestruct ("Cleanup: discarding lookahead",
5960 yytoken, &yylval, &yylloc, state);
5961 }
5962 /* Do not reclaim the symbols of the rule which action triggered
5963 this YYABORT or YYACCEPT. */
5964 YYPOPSTACK (yylen);
5965 YY_STACK_PRINT (yyss, yyssp);
5966 while (yyssp != yyss)
5967 {
5968 yydestruct ("Cleanup: popping",
5969 yystos[*yyssp], yyvsp, yylsp, state);
5970 YYPOPSTACK (1);
5971 }
5972 #ifndef yyoverflow
5973 if (yyss != yyssa)
5974 YYSTACK_FREE (yyss);
5975 #endif
5976 #if YYERROR_VERBOSE
5977 if (yymsg != yymsgbuf)
5978 YYSTACK_FREE (yymsg);
5979 #endif
5980 /* Make sure YYID is used. */
5981 return YYID (yyresult);
5982 }
5983
5984
5985
OLDNEW
« no previous file with comments | « third_party/mesa/chromium_gensrc/mesa/glsl_parser.h ('k') | third_party/mesa/chromium_gensrc/mesa/glsl_parser.output » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698